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

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

INCLUDELIB OLDNAMES

PUBLIC	??_GCVTTopText@@QAEPAXI@Z			; CVTTopText::`scalar deleting destructor'
PUBLIC	??$_Ptr_cat@PADPA_W@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPADAAPA_W@Z ; std::_Ptr_cat<char *,wchar_t *>
PUBLIC	??$_Construct@_W_W@std@@YAXPA_WAB_W@Z		; std::_Construct<wchar_t,wchar_t>
PUBLIC	?construct@?$allocator@_W@std@@QAEXPA_WAB_W@Z	; std::allocator<wchar_t>::construct
PUBLIC	??$_Destroy@_W@std@@YAXPA_W@Z			; std::_Destroy<wchar_t>
PUBLIC	?destroy@?$allocator@_W@std@@QAEXPA_W@Z		; std::allocator<wchar_t>::destroy
PUBLIC	??$_Uninit_copy@PADPA_WV?$allocator@_W@std@@@std@@YAPA_WPAD0PA_WAAV?$allocator@_W@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_copy<char *,wchar_t *,std::allocator<wchar_t> >
PUBLIC	??$unchecked_uninitialized_copy@PADPA_WV?$allocator@_W@std@@@stdext@@YAPA_WPAD0PA_WAAV?$allocator@_W@std@@@Z ; stdext::unchecked_uninitialized_copy<char *,wchar_t *,std::allocator<wchar_t> >
PUBLIC	??$_Ucopy@PAD@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WPAD0PA_W@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Ucopy<char *>
PUBLIC	??$_Insert@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@PAD1Uforward_iterator_tag@1@@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Insert<char *>
PUBLIC	??$insert@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@PAD1@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::insert<char *>
PUBLIC	??$_Assign@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXPAD0Uinput_iterator_tag@1@@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Assign<char *>
PUBLIC	??$assign@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXPAD0@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::assign<char *>
PUBLIC	??_C@_1DC@JJFKKOCC@?$AA?5?$AAD?$AAS?$AAc?$AAa?$AAl?$AAe?$AAr?$AA?5?$AAC?$AAh?$AAa?$AAr?$AAs?$AAe?$AAt?$AA?5?$AAT?$AAe?$AAs?$AAt?$AA?5?$AA?5?$AA?$AD?$AA?$AA@ ; `string'
PUBLIC	??_C@_1EO@BJJOLAPK@?$AA?$BH?$AA?5?$AA?$BO?$AAs?$AA?$BD?$AA?$BA?$AA?$BG?$AA?$BA?$AA?$BP?$AA?$BI?$AA?$AE?$AA?$AN?$AA?$BN?$AA?$AD?$AAE?$AAN?$AAG?$AAI?$AAN?$AAE?$AAE?$AAR?$AAI?$AAN?$AAG?$AA?$BK?$AA?$BC?$AA?$BM?$AA?$AM?$AA?$BO?$AAs?$AA?$BF@ ; `string'
PUBLIC	??_C@_1EO@BLJENHFN@?$AA?$BE?$AA?$BK?$AA?$BO?$AAs?$AA?$BB?$AA?$BJ?$AA?$BF?$AA?$AA?$AA?$BF?$AA?$AB?$AA?$AB?$AA?$BF?$AA?$AN?$AA?$BN?$AA?$AC?$AAT?$AAe?$AAs?$AAt?$AA?5?$AAP?$AAa?$AAg?$AAe?$AA?5?$AA?5?$AA?$BM?$AA?$AM?$AA?$BO?$AA?$BC?$AAs?$AA?$BG@ ; `string'
PUBLIC	??_C@_1EO@DJCLPGO@?$AA?$AB?$AA?$AA?$AA?$AB?$AA?$AA?$AA?$AB?$AA?$AA?$AA?$AB?$AA?$AA?$AA?$AB?$AA?$AA?$AA?$BH?$AA?$BO?$AA?0?$AA?$BD?$AA?$BA?$AA?$BG?$AA?$BA?$AA?$BC?$AA?$BO?$AA?0?$AA?$BF?$AA?$BA?$AA?$BB?$AA?$BA?$AA?$BE?$AA?$BA?$AA?$BP?$AA?$AA?$AA?$AB?$AA?$AA?$AA?$AB?$AA?$AA@ ; `string'
PUBLIC	??_C@_1FC@IOBLLPJM@?$AAW?$AAh?$AAi?$AAt?$AAe?$AA?$AD?$AAY?$AAe?$AAl?$AAl?$AAo?$AAw?$AA?$AG?$AAC?$AAy?$AAa?$AAn?$AA?$AC?$AAG?$AAr?$AAe?$AAe?$AAn?$AA?$AF?$AAM?$AAa?$AAg?$AAe?$AAn?$AAt?$AAa?$AA?$AB@ ; `string'
PUBLIC	??_C@_1FC@DACECFHH@?$AA?$AD?$AA?$BI?$AAC?$AAo?$AAn?$AAc?$AAe?$AAa?$AAl?$AA?$AI?$AAF?$AAl?$AAa?$AAs?$AAh?$AA?$AD?$AA?$CK?$AA?$AL?$AA?$AL?$AAB?$AAo?$AAx?$AA?7?$AAS?$AAt?$AAe?$AAa?$AAd?$AAy?$AA?$BI?$AAG?$AAo@ ; `string'
EXTRN	_towupper:PROC
;	COMDAT ??_C@_1FC@DACECFHH@?$AA?$AD?$AA?$BI?$AAC?$AAo?$AAn?$AAc?$AAe?$AAa?$AAl?$AA?$AI?$AAF?$AAl?$AAa?$AAs?$AAh?$AA?$AD?$AA?$CK?$AA?$AL?$AA?$AL?$AAB?$AAo?$AAx?$AA?7?$AAS?$AAt?$AAe?$AAa?$AAd?$AAy?$AA?$BI?$AAG?$AAo@
CONST	SEGMENT
??_C@_1FC@DACECFHH@?$AA?$AD?$AA?$BI?$AAC?$AAo?$AAn?$AAc?$AAe?$AAa?$AAl?$AA?$AI?$AAF?$AAl?$AAa?$AAs?$AAh?$AA?$AD?$AA?$CK?$AA?$AL?$AA?$AL?$AAB?$AAo?$AAx?$AA?7?$AAS?$AAt?$AAe?$AAa?$AAd?$AAy?$AA?$BI?$AAG?$AAo@ DB 03H
	DB	00H, 018H, 00H, 'C', 00H, 'o', 00H, 'n', 00H, 'c', 00H, 'e', 00H
	DB	'a', 00H, 'l', 00H, 08H, 00H, 'F', 00H, 'l', 00H, 'a', 00H, 's'
	DB	00H, 'h', 00H, 03H, 00H, '*', 00H, 0bH, 00H, 0bH, 00H, 'B', 00H
	DB	'o', 00H, 'x', 00H, 09H, 00H, 'S', 00H, 't', 00H, 'e', 00H, 'a'
	DB	00H, 'd', 00H, 'y', 00H, 018H, 00H, 'G', 00H, 'o', 00H, 'n', 00H
	DB	'e', 00H, 0aH, 00H, 0aH, 00H, '?', 00H, 016H, 00H, '^', 00H, 07fH
	DB	00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1FC@IOBLLPJM@?$AAW?$AAh?$AAi?$AAt?$AAe?$AA?$AD?$AAY?$AAe?$AAl?$AAl?$AAo?$AAw?$AA?$AG?$AAC?$AAy?$AAa?$AAn?$AA?$AC?$AAG?$AAr?$AAe?$AAe?$AAn?$AA?$AF?$AAM?$AAa?$AAg?$AAe?$AAn?$AAt?$AAa?$AA?$AB@
CONST	SEGMENT
??_C@_1FC@IOBLLPJM@?$AAW?$AAh?$AAi?$AAt?$AAe?$AA?$AD?$AAY?$AAe?$AAl?$AAl?$AAo?$AAw?$AA?$AG?$AAC?$AAy?$AAa?$AAn?$AA?$AC?$AAG?$AAr?$AAe?$AAe?$AAn?$AA?$AF?$AAM?$AAa?$AAg?$AAe?$AAn?$AAt?$AAa?$AA?$AB@ DB 'W'
	DB	00H, 'h', 00H, 'i', 00H, 't', 00H, 'e', 00H, 03H, 00H, 'Y', 00H
	DB	'e', 00H, 'l', 00H, 'l', 00H, 'o', 00H, 'w', 00H, 06H, 00H, 'C'
	DB	00H, 'y', 00H, 'a', 00H, 'n', 00H, 02H, 00H, 'G', 00H, 'r', 00H
	DB	'e', 00H, 'e', 00H, 'n', 00H, 05H, 00H, 'M', 00H, 'a', 00H, 'g'
	DB	00H, 'e', 00H, 'n', 00H, 't', 00H, 'a', 00H, 01H, 00H, 'R', 00H
	DB	'e', 00H, 'd', 00H, 04H, 00H, 'B', 00H, 'l', 00H, 'u', 00H, 'e'
	DB	00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1EO@DJCLPGO@?$AA?$AB?$AA?$AA?$AA?$AB?$AA?$AA?$AA?$AB?$AA?$AA?$AA?$AB?$AA?$AA?$AA?$AB?$AA?$AA?$AA?$BH?$AA?$BO?$AA?0?$AA?$BD?$AA?$BA?$AA?$BG?$AA?$BA?$AA?$BC?$AA?$BO?$AA?0?$AA?$BF?$AA?$BA?$AA?$BB?$AA?$BA?$AA?$BE?$AA?$BA?$AA?$BP?$AA?$AA?$AA?$AB?$AA?$AA?$AA?$AB?$AA?$AA@
CONST	SEGMENT
??_C@_1EO@DJCLPGO@?$AA?$AB?$AA?$AA?$AA?$AB?$AA?$AA?$AA?$AB?$AA?$AA?$AA?$AB?$AA?$AA?$AA?$AB?$AA?$AA?$AA?$BH?$AA?$BO?$AA?0?$AA?$BD?$AA?$BA?$AA?$BG?$AA?$BA?$AA?$BC?$AA?$BO?$AA?0?$AA?$BF?$AA?$BA?$AA?$BB?$AA?$BA?$AA?$BE?$AA?$BA?$AA?$BP?$AA?$AA?$AA?$AB?$AA?$AA?$AA?$AB?$AA?$AA@ DB 01H
	DB	00H, 00H, 00H, 01H, 00H, 00H, 00H, 01H, 00H, 00H, 00H, 01H, 00H
	DB	00H, 00H, 01H, 00H, 00H, 00H, 017H, 00H, 01eH, 00H, ',', 00H, 013H
	DB	00H, 010H, 00H, 016H, 00H, 010H, 00H, 012H, 00H, 01eH, 00H, ','
	DB	00H, 015H, 00H, 010H, 00H, 011H, 00H, 010H, 00H, 014H, 00H, 010H
	DB	00H, 01fH, 00H, 00H, 00H, 01H, 00H, 00H, 00H, 01H, 00H, 00H, 00H
	DB	01H, 00H, 00H, 00H, 01H, 00H, 00H, 00H, 01H, 00H, 00H, 00H, 00H
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_1EO@BLJENHFN@?$AA?$BE?$AA?$BK?$AA?$BO?$AAs?$AA?$BB?$AA?$BJ?$AA?$BF?$AA?$AA?$AA?$BF?$AA?$AB?$AA?$AB?$AA?$BF?$AA?$AN?$AA?$BN?$AA?$AC?$AAT?$AAe?$AAs?$AAt?$AA?5?$AAP?$AAa?$AAg?$AAe?$AA?5?$AA?5?$AA?$BM?$AA?$AM?$AA?$BO?$AA?$BC?$AAs?$AA?$BG@
CONST	SEGMENT
??_C@_1EO@BLJENHFN@?$AA?$BE?$AA?$BK?$AA?$BO?$AAs?$AA?$BB?$AA?$BJ?$AA?$BF?$AA?$AA?$AA?$BF?$AA?$AB?$AA?$AB?$AA?$BF?$AA?$AN?$AA?$BN?$AA?$AC?$AAT?$AAe?$AAs?$AAt?$AA?5?$AAP?$AAa?$AAg?$AAe?$AA?5?$AA?5?$AA?$BM?$AA?$AM?$AA?$BO?$AA?$BC?$AAs?$AA?$BG@ DB 014H
	DB	00H, 01aH, 00H, 01eH, 00H, 's', 00H, 011H, 00H, 019H, 00H, 015H
	DB	00H, 00H, 00H, 015H, 00H, 01H, 00H, 01H, 00H, 015H, 00H, 0dH, 00H
	DB	01dH, 00H, 02H, 00H, 'T', 00H, 'e', 00H, 's', 00H, 't', 00H, ' '
	DB	00H, 'P', 00H, 'a', 00H, 'g', 00H, 'e', 00H, ' ', 00H, ' ', 00H
	DB	01cH, 00H, 0cH, 00H, 01eH, 00H, 012H, 00H, 's', 00H, 016H, 00H
	DB	018H, 00H, 013H, 00H, 00H, 00H, 017H, 00H, 018H, 00H, 01H, 00H
	DB	00H, 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_1EO@BJJOLAPK@?$AA?$BH?$AA?5?$AA?$BO?$AAs?$AA?$BD?$AA?$BA?$AA?$BG?$AA?$BA?$AA?$BP?$AA?$BI?$AA?$AE?$AA?$AN?$AA?$BN?$AA?$AD?$AAE?$AAN?$AAG?$AAI?$AAN?$AAE?$AAE?$AAR?$AAI?$AAN?$AAG?$AA?$BK?$AA?$BC?$AA?$BM?$AA?$AM?$AA?$BO?$AAs?$AA?$BF@
CONST	SEGMENT
??_C@_1EO@BJJOLAPK@?$AA?$BH?$AA?5?$AA?$BO?$AAs?$AA?$BD?$AA?$BA?$AA?$BG?$AA?$BA?$AA?$BP?$AA?$BI?$AA?$AE?$AA?$AN?$AA?$BN?$AA?$AD?$AAE?$AAN?$AAG?$AAI?$AAN?$AAE?$AAE?$AAR?$AAI?$AAN?$AAG?$AA?$BK?$AA?$BC?$AA?$BM?$AA?$AM?$AA?$BO?$AAs?$AA?$BF@ DB 017H
	DB	00H, ' ', 00H, 01eH, 00H, 's', 00H, 013H, 00H, 010H, 00H, 016H
	DB	00H, 010H, 00H, 01fH, 00H, 018H, 00H, 04H, 00H, 0dH, 00H, 01dH
	DB	00H, 03H, 00H, 'E', 00H, 'N', 00H, 'G', 00H, 'I', 00H, 'N', 00H
	DB	'E', 00H, 'E', 00H, 'R', 00H, 'I', 00H, 'N', 00H, 'G', 00H, 01aH
	DB	00H, 012H, 00H, 01cH, 00H, 0cH, 00H, 01eH, 00H, 's', 00H, 015H
	DB	00H, 0eH, 00H, 011H, 00H, 010H, 00H, 014H, 00H, 010H, 00H, 07H
	DB	00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1DC@JJFKKOCC@?$AA?5?$AAD?$AAS?$AAc?$AAa?$AAl?$AAe?$AAr?$AA?5?$AAC?$AAh?$AAa?$AAr?$AAs?$AAe?$AAt?$AA?5?$AAT?$AAe?$AAs?$AAt?$AA?5?$AA?5?$AA?$AD?$AA?$AA@
CONST	SEGMENT
??_C@_1DC@JJFKKOCC@?$AA?5?$AAD?$AAS?$AAc?$AAa?$AAl?$AAe?$AAr?$AA?5?$AAC?$AAh?$AAa?$AAr?$AAs?$AAe?$AAt?$AA?5?$AAT?$AAe?$AAs?$AAt?$AA?5?$AA?5?$AA?$AD?$AA?$AA@ DB ' '
	DB	00H, 'D', 00H, 'S', 00H, 'c', 00H, 'a', 00H, 'l', 00H, 'e', 00H
	DB	'r', 00H, ' ', 00H, 'C', 00H, 'h', 00H, 'a', 00H, 'r', 00H, 's'
	DB	00H, 'e', 00H, 't', 00H, ' ', 00H, 'T', 00H, 'e', 00H, 's', 00H
	DB	't', 00H, ' ', 00H, ' ', 00H, 03H, 00H, 00H, 00H ; `string'
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
;	COMDAT ??$_Destroy@_W@std@@YAXPA_W@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
??$_Destroy@_W@std@@YAXPA_W@Z PROC			; std::_Destroy<wchar_t>, COMDAT

; 69   : 	{	// destroy a wchar_t (do nothing)

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

; 70   : 	}

  00003	5d		 pop	 ebp
  00004	c3		 ret	 0
??$_Destroy@_W@std@@YAXPA_W@Z ENDP			; std::_Destroy<wchar_t>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?destroy@?$allocator@_W@std@@QAEXPA_W@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Ptr$ = 8						; size = 4
?destroy@?$allocator@_W@std@@QAEXPA_W@Z PROC		; std::allocator<wchar_t>::destroy, COMDAT
; _this$ = ecx

; 159  : 		{	// destroy object at _Ptr

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

; 160  : 		_Destroy(_Ptr);

  00007	8b 45 08	 mov	 eax, DWORD PTR __Ptr$[ebp]
  0000a	50		 push	 eax
  0000b	e8 00 00 00 00	 call	 ??$_Destroy@_W@std@@YAXPA_W@Z ; std::_Destroy<wchar_t>
  00010	83 c4 04	 add	 esp, 4

; 161  : 		}

  00013	8b e5		 mov	 esp, ebp
  00015	5d		 pop	 ebp
  00016	c2 04 00	 ret	 4
?destroy@?$allocator@_W@std@@QAEXPA_W@Z ENDP		; std::allocator<wchar_t>::destroy
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility
_TEXT	ENDS
;	COMDAT ??$_Ptr_cat@PADPA_W@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPADAAPA_W@Z
_TEXT	SEGMENT
__Cat$ = -1						; size = 1
___formal$ = 8						; size = 4
___formal$ = 12						; size = 4
??$_Ptr_cat@PADPA_W@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPADAAPA_W@Z PROC ; std::_Ptr_cat<char *,wchar_t *>, COMDAT

; 1483 : 	{

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 1484 : 	typename _Ptr_cat_helper<_T1, _T2>::_Ptr_cat _Cat;
; 1485 : 	return (_Cat);

  00004	8a 45 ff	 mov	 al, BYTE PTR __Cat$[ebp]

; 1486 : 	}

  00007	8b e5		 mov	 esp, ebp
  00009	5d		 pop	 ebp
  0000a	c3		 ret	 0
??$_Ptr_cat@PADPA_W@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPADAAPA_W@Z ENDP ; std::_Ptr_cat<char *,wchar_t *>
_TEXT	ENDS
PUBLIC	?FindNextSubPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@KH@Z ; CVTDecoder::FindNextSubPage
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\vtdecoder.cpp
;	COMDAT ?FindNextSubPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@KH@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
_wPageSubCode$ = -12					; size = 2
_pPage$ = -8						; size = 4
_pNextPage$ = -4					; size = 4
_pPageList$ = 8						; size = 4
_dwPageCode$ = 12					; size = 4
_bReverse$ = 16						; size = 4
?FindNextSubPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@KH@Z PROC ; CVTDecoder::FindNextSubPage, COMDAT
; _this$ = ecx

; 1878 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 10	 sub	 esp, 16			; 00000010H
  00006	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx

; 1879 :     TVTPage* pPage = pPageList;

  00009	8b 45 08	 mov	 eax, DWORD PTR _pPageList$[ebp]
  0000c	89 45 f8	 mov	 DWORD PTR _pPage$[ebp], eax

; 1880 :     TVTPage* pNextPage = NULL;

  0000f	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _pNextPage$[ebp], 0

; 1881 : 
; 1882 :     WORD wPageSubCode = HIWORD(dwPageCode);

  00016	8b 4d 0c	 mov	 ecx, DWORD PTR _dwPageCode$[ebp]
  00019	c1 e9 10	 shr	 ecx, 16			; 00000010H
  0001c	81 e1 ff ff 00
	00		 and	 ecx, 65535		; 0000ffffH
  00022	66 89 4d f4	 mov	 WORD PTR _wPageSubCode$[ebp], cx
$LN10@FindNextSu:

; 1883 : 
; 1884 :     while (pPage != NULL && pPage->bBufferReserved != FALSE)

  00026	83 7d f8 00	 cmp	 DWORD PTR _pPage$[ebp], 0
  0002a	0f 84 f7 00 00
	00		 je	 $LN9@FindNextSu
  00030	8b 55 f8	 mov	 edx, DWORD PTR _pPage$[ebp]
  00033	83 ba 48 04 00
	00 00		 cmp	 DWORD PTR [edx+1096], 0
  0003a	0f 84 e7 00 00
	00		 je	 $LN9@FindNextSu

; 1885 :     {
; 1886 :         if (pPage->bReceived != FALSE &&
; 1887 :             LOWORD(pPage->dwPageCode) == LOWORD(dwPageCode))

  00040	8b 45 f8	 mov	 eax, DWORD PTR _pPage$[ebp]
  00043	83 b8 4c 04 00
	00 00		 cmp	 DWORD PTR [eax+1100], 0
  0004a	0f 84 c6 00 00
	00		 je	 $LN8@FindNextSu
  00050	8b 4d f8	 mov	 ecx, DWORD PTR _pPage$[ebp]
  00053	8b 11		 mov	 edx, DWORD PTR [ecx]
  00055	81 e2 ff ff 00
	00		 and	 edx, 65535		; 0000ffffH
  0005b	0f b7 c2	 movzx	 eax, dx
  0005e	8b 4d 0c	 mov	 ecx, DWORD PTR _dwPageCode$[ebp]
  00061	81 e1 ff ff 00
	00		 and	 ecx, 65535		; 0000ffffH
  00067	0f b7 d1	 movzx	 edx, cx
  0006a	3b c2		 cmp	 eax, edx
  0006c	0f 85 a4 00 00
	00		 jne	 $LN8@FindNextSu

; 1888 :         {
; 1889 :             if (bReverse == FALSE && HIWORD(pPage->dwPageCode) > wPageSubCode)

  00072	83 7d 10 00	 cmp	 DWORD PTR _bReverse$[ebp], 0
  00076	75 4d		 jne	 SHORT $LN7@FindNextSu
  00078	8b 45 f8	 mov	 eax, DWORD PTR _pPage$[ebp]
  0007b	8b 08		 mov	 ecx, DWORD PTR [eax]
  0007d	c1 e9 10	 shr	 ecx, 16			; 00000010H
  00080	81 e1 ff ff 00
	00		 and	 ecx, 65535		; 0000ffffH
  00086	0f b7 d1	 movzx	 edx, cx
  00089	0f b7 45 f4	 movzx	 eax, WORD PTR _wPageSubCode$[ebp]
  0008d	3b d0		 cmp	 edx, eax
  0008f	7e 34		 jle	 SHORT $LN7@FindNextSu

; 1890 :             {
; 1891 :                 if (pNextPage == NULL ||
; 1892 :                     HIWORD(pPage->dwPageCode) < HIWORD(pNextPage->dwPageCode))

  00091	83 7d fc 00	 cmp	 DWORD PTR _pNextPage$[ebp], 0
  00095	74 26		 je	 SHORT $LN5@FindNextSu
  00097	8b 4d f8	 mov	 ecx, DWORD PTR _pPage$[ebp]
  0009a	8b 11		 mov	 edx, DWORD PTR [ecx]
  0009c	c1 ea 10	 shr	 edx, 16			; 00000010H
  0009f	81 e2 ff ff 00
	00		 and	 edx, 65535		; 0000ffffH
  000a5	0f b7 c2	 movzx	 eax, dx
  000a8	8b 4d fc	 mov	 ecx, DWORD PTR _pNextPage$[ebp]
  000ab	8b 11		 mov	 edx, DWORD PTR [ecx]
  000ad	c1 ea 10	 shr	 edx, 16			; 00000010H
  000b0	81 e2 ff ff 00
	00		 and	 edx, 65535		; 0000ffffH
  000b6	0f b7 ca	 movzx	 ecx, dx
  000b9	3b c1		 cmp	 eax, ecx
  000bb	7d 06		 jge	 SHORT $LN6@FindNextSu
$LN5@FindNextSu:

; 1893 :                 {
; 1894 :                     pNextPage = pPage;

  000bd	8b 55 f8	 mov	 edx, DWORD PTR _pPage$[ebp]
  000c0	89 55 fc	 mov	 DWORD PTR _pNextPage$[ebp], edx
$LN6@FindNextSu:

; 1895 :                 }
; 1896 :             }

  000c3	eb 51		 jmp	 SHORT $LN8@FindNextSu
$LN7@FindNextSu:

; 1897 :             else if (bReverse != FALSE && HIWORD(pPage->dwPageCode) < wPageSubCode)

  000c5	83 7d 10 00	 cmp	 DWORD PTR _bReverse$[ebp], 0
  000c9	74 4b		 je	 SHORT $LN8@FindNextSu
  000cb	8b 45 f8	 mov	 eax, DWORD PTR _pPage$[ebp]
  000ce	8b 08		 mov	 ecx, DWORD PTR [eax]
  000d0	c1 e9 10	 shr	 ecx, 16			; 00000010H
  000d3	81 e1 ff ff 00
	00		 and	 ecx, 65535		; 0000ffffH
  000d9	0f b7 d1	 movzx	 edx, cx
  000dc	0f b7 45 f4	 movzx	 eax, WORD PTR _wPageSubCode$[ebp]
  000e0	3b d0		 cmp	 edx, eax
  000e2	7d 32		 jge	 SHORT $LN8@FindNextSu

; 1898 :             {
; 1899 :                 if (pNextPage == NULL ||
; 1900 :                     HIWORD(pPage->dwPageCode) > HIWORD(pNextPage->dwPageCode))

  000e4	83 7d fc 00	 cmp	 DWORD PTR _pNextPage$[ebp], 0
  000e8	74 26		 je	 SHORT $LN1@FindNextSu
  000ea	8b 4d f8	 mov	 ecx, DWORD PTR _pPage$[ebp]
  000ed	8b 11		 mov	 edx, DWORD PTR [ecx]
  000ef	c1 ea 10	 shr	 edx, 16			; 00000010H
  000f2	81 e2 ff ff 00
	00		 and	 edx, 65535		; 0000ffffH
  000f8	0f b7 c2	 movzx	 eax, dx
  000fb	8b 4d fc	 mov	 ecx, DWORD PTR _pNextPage$[ebp]
  000fe	8b 11		 mov	 edx, DWORD PTR [ecx]
  00100	c1 ea 10	 shr	 edx, 16			; 00000010H
  00103	81 e2 ff ff 00
	00		 and	 edx, 65535		; 0000ffffH
  00109	0f b7 ca	 movzx	 ecx, dx
  0010c	3b c1		 cmp	 eax, ecx
  0010e	7e 06		 jle	 SHORT $LN8@FindNextSu
$LN1@FindNextSu:

; 1901 :                 {
; 1902 :                     pNextPage = pPage;

  00110	8b 55 f8	 mov	 edx, DWORD PTR _pPage$[ebp]
  00113	89 55 fc	 mov	 DWORD PTR _pNextPage$[ebp], edx
$LN8@FindNextSu:

; 1903 :                 }
; 1904 :             }
; 1905 :         }
; 1906 : 
; 1907 :         pPage = pPage->pNextPage;

  00116	8b 45 f8	 mov	 eax, DWORD PTR _pPage$[ebp]
  00119	8b 88 54 04 00
	00		 mov	 ecx, DWORD PTR [eax+1108]
  0011f	89 4d f8	 mov	 DWORD PTR _pPage$[ebp], ecx

; 1908 :     }

  00122	e9 ff fe ff ff	 jmp	 $LN10@FindNextSu
$LN9@FindNextSu:

; 1909 : 
; 1910 :     return pNextPage;

  00127	8b 45 fc	 mov	 eax, DWORD PTR _pNextPage$[ebp]

; 1911 : }

  0012a	8b e5		 mov	 esp, ebp
  0012c	5d		 pop	 ebp
  0012d	c2 0c 00	 ret	 12			; 0000000cH
?FindNextSubPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@KH@Z ENDP ; CVTDecoder::FindNextSubPage
_TEXT	ENDS
PUBLIC	?FindSubPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@K@Z ; CVTDecoder::FindSubPage
; Function compile flags: /Odtp
;	COMDAT ?FindSubPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@K@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_pPage$ = -4						; size = 4
_pPageList$ = 8						; size = 4
_dwPageCode$ = 12					; size = 4
?FindSubPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@K@Z PROC	; CVTDecoder::FindSubPage, COMDAT
; _this$ = ecx

; 1858 : {

  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

; 1859 :     TVTPage* pPage = pPageList;

  00009	8b 45 08	 mov	 eax, DWORD PTR _pPageList$[ebp]
  0000c	89 45 fc	 mov	 DWORD PTR _pPage$[ebp], eax
$LN3@FindSubPag:

; 1860 : 
; 1861 :     while (pPage != NULL && pPage->bBufferReserved != FALSE)

  0000f	83 7d fc 00	 cmp	 DWORD PTR _pPage$[ebp], 0
  00013	74 35		 je	 SHORT $LN2@FindSubPag
  00015	8b 4d fc	 mov	 ecx, DWORD PTR _pPage$[ebp]
  00018	83 b9 48 04 00
	00 00		 cmp	 DWORD PTR [ecx+1096], 0
  0001f	74 29		 je	 SHORT $LN2@FindSubPag

; 1862 :     {
; 1863 :         if (pPage->bReceived != FALSE &&
; 1864 :             pPage->dwPageCode == dwPageCode)

  00021	8b 55 fc	 mov	 edx, DWORD PTR _pPage$[ebp]
  00024	83 ba 4c 04 00
	00 00		 cmp	 DWORD PTR [edx+1100], 0
  0002b	74 0f		 je	 SHORT $LN1@FindSubPag
  0002d	8b 45 fc	 mov	 eax, DWORD PTR _pPage$[ebp]
  00030	8b 08		 mov	 ecx, DWORD PTR [eax]
  00032	3b 4d 0c	 cmp	 ecx, DWORD PTR _dwPageCode$[ebp]
  00035	75 05		 jne	 SHORT $LN1@FindSubPag

; 1865 :         {
; 1866 :             return pPage;

  00037	8b 45 fc	 mov	 eax, DWORD PTR _pPage$[ebp]
  0003a	eb 10		 jmp	 SHORT $LN4@FindSubPag
$LN1@FindSubPag:

; 1867 :         }
; 1868 : 
; 1869 :         pPage = pPage->pNextPage;

  0003c	8b 55 fc	 mov	 edx, DWORD PTR _pPage$[ebp]
  0003f	8b 82 54 04 00
	00		 mov	 eax, DWORD PTR [edx+1108]
  00045	89 45 fc	 mov	 DWORD PTR _pPage$[ebp], eax

; 1870 :     }

  00048	eb c5		 jmp	 SHORT $LN3@FindSubPag
$LN2@FindSubPag:

; 1871 : 
; 1872 :     return NULL;

  0004a	33 c0		 xor	 eax, eax
$LN4@FindSubPag:

; 1873 : }

  0004c	8b e5		 mov	 esp, ebp
  0004e	5d		 pop	 ebp
  0004f	c2 08 00	 ret	 8
?FindSubPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@K@Z ENDP	; CVTDecoder::FindSubPage
_TEXT	ENDS
PUBLIC	?FindReceivedPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@@Z ; CVTDecoder::FindReceivedPage
; Function compile flags: /Odtp
;	COMDAT ?FindReceivedPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_pPageList$ = 8						; size = 4
?FindReceivedPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@@Z PROC ; CVTDecoder::FindReceivedPage, COMDAT
; _this$ = ecx

; 1842 : {

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

; 1843 :     if (pPageList == NULL || pPageList->bBufferReserved == FALSE)

  00007	83 7d 08 00	 cmp	 DWORD PTR _pPageList$[ebp], 0
  0000b	74 0c		 je	 SHORT $LN2@FindReceiv
  0000d	8b 45 08	 mov	 eax, DWORD PTR _pPageList$[ebp]
  00010	83 b8 48 04 00
	00 00		 cmp	 DWORD PTR [eax+1096], 0
  00017	75 04		 jne	 SHORT $LN3@FindReceiv
$LN2@FindReceiv:

; 1844 :     {
; 1845 :         return NULL;

  00019	33 c0		 xor	 eax, eax
  0001b	eb 23		 jmp	 SHORT $LN4@FindReceiv
$LN3@FindReceiv:

; 1846 :     }
; 1847 : 
; 1848 :     if (pPageList->bReceived != FALSE)

  0001d	8b 4d 08	 mov	 ecx, DWORD PTR _pPageList$[ebp]
  00020	83 b9 4c 04 00
	00 00		 cmp	 DWORD PTR [ecx+1100], 0
  00027	74 05		 je	 SHORT $LN1@FindReceiv

; 1849 :     {
; 1850 :         return pPageList;

  00029	8b 45 08	 mov	 eax, DWORD PTR _pPageList$[ebp]
  0002c	eb 12		 jmp	 SHORT $LN4@FindReceiv
$LN1@FindReceiv:

; 1851 :     }
; 1852 : 
; 1853 :     return FindReceivedPage(pPageList->pNextPage);

  0002e	8b 55 08	 mov	 edx, DWORD PTR _pPageList$[ebp]
  00031	8b 82 54 04 00
	00		 mov	 eax, DWORD PTR [edx+1108]
  00037	50		 push	 eax
  00038	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0003b	e8 00 00 00 00	 call	 ?FindReceivedPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@@Z ; CVTDecoder::FindReceivedPage
$LN4@FindReceiv:

; 1854 : }

  00040	8b e5		 mov	 esp, ebp
  00042	5d		 pop	 ebp
  00043	c2 04 00	 ret	 4
?FindReceivedPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@@Z ENDP ; CVTDecoder::FindReceivedPage
_TEXT	ENDS
PUBLIC	?UnsetUpdatedStates@CVTDecoder@@IAEXPAU_VTPage@@@Z ; CVTDecoder::UnsetUpdatedStates
; Function compile flags: /Odtp
;	COMDAT ?UnsetUpdatedStates@CVTDecoder@@IAEXPAU_VTPage@@@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_i$140904 = -4						; size = 4
_pPage$ = 8						; size = 4
?UnsetUpdatedStates@CVTDecoder@@IAEXPAU_VTPage@@@Z PROC	; CVTDecoder::UnsetUpdatedStates, COMDAT
; _this$ = ecx

; 1833 : {

  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

; 1834 :     for (int i(0); i < 26; i++)

  00009	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _i$140904[ebp], 0
  00010	eb 09		 jmp	 SHORT $LN3@UnsetUpdat
$LN2@UnsetUpdat:
  00012	8b 45 fc	 mov	 eax, DWORD PTR _i$140904[ebp]
  00015	83 c0 01	 add	 eax, 1
  00018	89 45 fc	 mov	 DWORD PTR _i$140904[ebp], eax
$LN3@UnsetUpdat:
  0001b	83 7d fc 1a	 cmp	 DWORD PTR _i$140904[ebp], 26 ; 0000001aH
  0001f	7d 1e		 jge	 SHORT $LN4@UnsetUpdat

; 1835 :     {
; 1836 :         pPage->LineState[i] &= ~CACHESTATE_UPDATED;

  00021	8b 4d 08	 mov	 ecx, DWORD PTR _pPage$[ebp]
  00024	03 4d fc	 add	 ecx, DWORD PTR _i$140904[ebp]
  00027	0f b6 91 16 04
	00 00		 movzx	 edx, BYTE PTR [ecx+1046]
  0002e	83 e2 fd	 and	 edx, -3			; fffffffdH
  00031	8b 45 08	 mov	 eax, DWORD PTR _pPage$[ebp]
  00034	03 45 fc	 add	 eax, DWORD PTR _i$140904[ebp]
  00037	88 90 16 04 00
	00		 mov	 BYTE PTR [eax+1046], dl
  0003d	eb d3		 jmp	 SHORT $LN2@UnsetUpdat
$LN4@UnsetUpdat:

; 1837 :     }
; 1838 : }

  0003f	8b e5		 mov	 esp, ebp
  00041	5d		 pop	 ebp
  00042	c2 04 00	 ret	 4
?UnsetUpdatedStates@CVTDecoder@@IAEXPAU_VTPage@@@Z ENDP	; CVTDecoder::UnsetUpdatedStates
_TEXT	ENDS
PUBLIC	?NotifyDecoderEvent@CVTDecoder@@IAEXEK@Z	; CVTDecoder::NotifyDecoderEvent
; Function compile flags: /Odtp
;	COMDAT ?NotifyDecoderEvent@CVTDecoder@@IAEXEK@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_uMsg$ = 8						; size = 1
_dwParam$ = 12						; size = 4
?NotifyDecoderEvent@CVTDecoder@@IAEXEK@Z PROC		; CVTDecoder::NotifyDecoderEvent, COMDAT
; _this$ = ecx

; 1776 : {

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

; 1777 :     if (m_DecoderEventProc != NULL)

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	83 b8 4c 2f 00
	00 00		 cmp	 DWORD PTR [eax+12108], 0
  00011	74 17		 je	 SHORT $LN2@NotifyDeco

; 1778 :     {
; 1779 :         (m_DecoderEventProc)(uMsg, dwParam);

  00013	8b 4d 0c	 mov	 ecx, DWORD PTR _dwParam$[ebp]
  00016	51		 push	 ecx
  00017	0f b6 55 08	 movzx	 edx, BYTE PTR _uMsg$[ebp]
  0001b	52		 push	 edx
  0001c	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0001f	8b 88 4c 2f 00
	00		 mov	 ecx, DWORD PTR [eax+12108]
  00025	ff d1		 call	 ecx
  00027	83 c4 08	 add	 esp, 8
$LN2@NotifyDeco:

; 1780 :     }
; 1781 : }

  0002a	8b e5		 mov	 esp, ebp
  0002c	5d		 pop	 ebp
  0002d	c2 08 00	 ret	 8
?NotifyDecoderEvent@CVTDecoder@@IAEXEK@Z ENDP		; CVTDecoder::NotifyDecoderEvent
_TEXT	ENDS
PUBLIC	?SetSubstituteSpacesForError@CVTDecoder@@QAEXH@Z ; CVTDecoder::SetSubstituteSpacesForError
; Function compile flags: /Odtp
;	COMDAT ?SetSubstituteSpacesForError@CVTDecoder@@QAEXH@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_bEnable$ = 8						; size = 4
?SetSubstituteSpacesForError@CVTDecoder@@QAEXH@Z PROC	; CVTDecoder::SetSubstituteSpacesForError, COMDAT
; _this$ = ecx

; 1770 : {

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

; 1771 :     m_bSubstituteSpacesForError = bEnable;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 4d 08	 mov	 ecx, DWORD PTR _bEnable$[ebp]
  0000d	89 88 58 2f 00
	00		 mov	 DWORD PTR [eax+12120], ecx

; 1772 : }

  00013	8b e5		 mov	 esp, ebp
  00015	5d		 pop	 ebp
  00016	c2 04 00	 ret	 4
?SetSubstituteSpacesForError@CVTDecoder@@QAEXH@Z ENDP	; CVTDecoder::SetSubstituteSpacesForError
_TEXT	ENDS
PUBLIC	?SetHighGranularityCaching@CVTDecoder@@QAEXH@Z	; CVTDecoder::SetHighGranularityCaching
; Function compile flags: /Odtp
;	COMDAT ?SetHighGranularityCaching@CVTDecoder@@QAEXH@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_bEnable$ = 8						; size = 4
?SetHighGranularityCaching@CVTDecoder@@QAEXH@Z PROC	; CVTDecoder::SetHighGranularityCaching, COMDAT
; _this$ = ecx

; 1764 : {

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

; 1765 :     m_bHighGranularityCaching = bEnable;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 4d 08	 mov	 ecx, DWORD PTR _bEnable$[ebp]
  0000d	89 88 54 2f 00
	00		 mov	 DWORD PTR [eax+12116], ecx

; 1766 : }

  00013	8b e5		 mov	 esp, ebp
  00015	5d		 pop	 ebp
  00016	c2 04 00	 ret	 4
?SetHighGranularityCaching@CVTDecoder@@QAEXH@Z ENDP	; CVTDecoder::SetHighGranularityCaching
_TEXT	ENDS
PUBLIC	?SetCachingControl@CVTDecoder@@QAEXE@Z		; CVTDecoder::SetCachingControl
; Function compile flags: /Odtp
;	COMDAT ?SetCachingControl@CVTDecoder@@QAEXE@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_uCachingControl$ = 8					; size = 1
?SetCachingControl@CVTDecoder@@QAEXE@Z PROC		; CVTDecoder::SetCachingControl, COMDAT
; _this$ = ecx

; 1758 : {

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

; 1759 :     m_CachingControl = uCachingControl;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8a 4d 08	 mov	 cl, BYTE PTR _uCachingControl$[ebp]
  0000d	88 88 50 2f 00
	00		 mov	 BYTE PTR [eax+12112], cl

; 1760 : }

  00013	8b e5		 mov	 esp, ebp
  00015	5d		 pop	 ebp
  00016	c2 04 00	 ret	 4
?SetCachingControl@CVTDecoder@@QAEXE@Z ENDP		; CVTDecoder::SetCachingControl
_TEXT	ENDS
PUBLIC	?GetCNIFromPDC@CVTDecoder@@QAEGXZ		; CVTDecoder::GetCNIFromPDC
; Function compile flags: /Odtp
;	COMDAT ?GetCNIFromPDC@CVTDecoder@@QAEGXZ
_TEXT	SEGMENT
_this$ = -12						; size = 4
_i$140856 = -8						; size = 4
_wCode$ = -4						; size = 2
?GetCNIFromPDC@CVTDecoder@@QAEGXZ PROC			; CVTDecoder::GetCNIFromPDC, COMDAT
; _this$ = ecx

; 1741 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH
  00006	89 4d f4	 mov	 DWORD PTR _this$[ebp], ecx

; 1742 :     WORD wCode = 0;

  00009	33 c0		 xor	 eax, eax
  0000b	66 89 45 fc	 mov	 WORD PTR _wCode$[ebp], ax

; 1743 :     EnterCriticalSection(&m_ServiceDataStoreMutex);

  0000f	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00012	81 c1 ac 2f 00
	00		 add	 ecx, 12204		; 00002facH
  00018	51		 push	 ecx
  00019	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1744 :     for (int i=0;i<4;i++)

  0001f	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _i$140856[ebp], 0
  00026	eb 09		 jmp	 SHORT $LN4@GetCNIFrom
$LN3@GetCNIFrom:
  00028	8b 55 f8	 mov	 edx, DWORD PTR _i$140856[ebp]
  0002b	83 c2 01	 add	 edx, 1
  0002e	89 55 f8	 mov	 DWORD PTR _i$140856[ebp], edx
$LN4@GetCNIFrom:
  00031	83 7d f8 04	 cmp	 DWORD PTR _i$140856[ebp], 4
  00035	7d 3b		 jge	 SHORT $LN2@GetCNIFrom

; 1745 :     {
; 1746 :         if (m_PDC[i].CNI != 0)

  00037	8b 45 f8	 mov	 eax, DWORD PTR _i$140856[ebp]
  0003a	6b c0 0c	 imul	 eax, 12			; 0000000cH
  0003d	b9 ff ff 00 00	 mov	 ecx, 65535		; 0000ffffH
  00042	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  00045	66 23 8c 02 1e
	2f 00 00	 and	 cx, WORD PTR [edx+eax+12062]
  0004d	0f b7 c1	 movzx	 eax, cx
  00050	85 c0		 test	 eax, eax
  00052	74 1c		 je	 SHORT $LN1@GetCNIFrom

; 1747 :         {
; 1748 :             wCode = m_PDC[i].CNI;

  00054	8b 4d f8	 mov	 ecx, DWORD PTR _i$140856[ebp]
  00057	6b c9 0c	 imul	 ecx, 12			; 0000000cH
  0005a	ba ff ff 00 00	 mov	 edx, 65535		; 0000ffffH
  0005f	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  00062	66 23 94 08 1e
	2f 00 00	 and	 dx, WORD PTR [eax+ecx+12062]
  0006a	66 89 55 fc	 mov	 WORD PTR _wCode$[ebp], dx

; 1749 :             break;

  0006e	eb 02		 jmp	 SHORT $LN2@GetCNIFrom
$LN1@GetCNIFrom:

; 1750 :         }
; 1751 :     }

  00070	eb b6		 jmp	 SHORT $LN3@GetCNIFrom
$LN2@GetCNIFrom:

; 1752 :     LeaveCriticalSection(&m_ServiceDataStoreMutex);

  00072	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00075	81 c1 ac 2f 00
	00		 add	 ecx, 12204		; 00002facH
  0007b	51		 push	 ecx
  0007c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1753 :     return wCode;

  00082	66 8b 45 fc	 mov	 ax, WORD PTR _wCode$[ebp]

; 1754 : }

  00086	8b e5		 mov	 esp, ebp
  00088	5d		 pop	 ebp
  00089	c3		 ret	 0
?GetCNIFromPDC@CVTDecoder@@QAEGXZ ENDP			; CVTDecoder::GetCNIFromPDC
_TEXT	ENDS
PUBLIC	?GetNetworkIDFromP8301@CVTDecoder@@QAEGXZ	; CVTDecoder::GetNetworkIDFromP8301
; Function compile flags: /Odtp
;	COMDAT ?GetNetworkIDFromP8301@CVTDecoder@@QAEGXZ
_TEXT	SEGMENT
_this$ = -8						; size = 4
_wCode$ = -4						; size = 2
?GetNetworkIDFromP8301@CVTDecoder@@QAEGXZ PROC		; CVTDecoder::GetNetworkIDFromP8301, COMDAT
; _this$ = ecx

; 1725 : {

  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

; 1726 :     WORD wCode = 0;

  00009	33 c0		 xor	 eax, eax
  0000b	66 89 45 fc	 mov	 WORD PTR _wCode$[ebp], ax

; 1727 :     EnterCriticalSection(&m_ServiceDataStoreMutex);

  0000f	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00012	81 c1 ac 2f 00
	00		 add	 ecx, 12204		; 00002facH
  00018	51		 push	 ecx
  00019	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1728 :     // Check that there are at leat two values received
; 1729 :     // and with same values
; 1730 :     if (   (m_BroadcastServiceData.NetworkIDCode[0] != 0)
; 1731 :         && (m_BroadcastServiceData.NetworkIDCode[0] == m_BroadcastServiceData.NetworkIDCode[1]) )

  0001f	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00022	0f b7 82 f8 2e
	00 00		 movzx	 eax, WORD PTR [edx+12024]
  00029	85 c0		 test	 eax, eax
  0002b	74 26		 je	 SHORT $LN1@GetNetwork
  0002d	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00030	0f b7 91 f8 2e
	00 00		 movzx	 edx, WORD PTR [ecx+12024]
  00037	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0003a	0f b7 88 fa 2e
	00 00		 movzx	 ecx, WORD PTR [eax+12026]
  00041	3b d1		 cmp	 edx, ecx
  00043	75 0e		 jne	 SHORT $LN1@GetNetwork

; 1732 :     {
; 1733 :         wCode = m_BroadcastServiceData.NetworkIDCode[0];

  00045	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00048	66 8b 82 f8 2e
	00 00		 mov	 ax, WORD PTR [edx+12024]
  0004f	66 89 45 fc	 mov	 WORD PTR _wCode$[ebp], ax
$LN1@GetNetwork:

; 1734 :     }
; 1735 :     LeaveCriticalSection(&m_ServiceDataStoreMutex);

  00053	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00056	81 c1 ac 2f 00
	00		 add	 ecx, 12204		; 00002facH
  0005c	51		 push	 ecx
  0005d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1736 :     return wCode;

  00063	66 8b 45 fc	 mov	 ax, WORD PTR _wCode$[ebp]

; 1737 : }

  00067	8b e5		 mov	 esp, ebp
  00069	5d		 pop	 ebp
  0006a	c3		 ret	 0
?GetNetworkIDFromP8301@CVTDecoder@@QAEGXZ ENDP		; CVTDecoder::GetNetworkIDFromP8301
_TEXT	ENDS
PUBLIC	?CreateTestDisplayPage@CVTDecoder@@QAEXPAU_VTPage@@@Z ; CVTDecoder::CreateTestDisplayPage
; Function compile flags: /Odtp
;	COMDAT ?CreateTestDisplayPage@CVTDecoder@@QAEXPAU_VTPage@@@Z
_TEXT	SEGMENT
tv383 = -16						; size = 4
tv272 = -12						; size = 4
_this$ = -8						; size = 4
_nRow$140493 = -2					; size = 1
_nCol$ = -1						; size = 1
_pBuffer$ = 8						; size = 4
?CreateTestDisplayPage@CVTDecoder@@QAEXPAU_VTPage@@@Z PROC ; CVTDecoder::CreateTestDisplayPage, COMDAT
; _this$ = ecx

; 1564 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 10	 sub	 esp, 16			; 00000010H
  00006	56		 push	 esi
  00007	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx

; 1565 :     pBuffer->dwPageCode = MAKELONG(0x900, 0x0000);

  0000a	8b 45 08	 mov	 eax, DWORD PTR _pBuffer$[ebp]
  0000d	c7 00 00 09 00
	00		 mov	 DWORD PTR [eax], 2304	; 00000900H

; 1566 :     pBuffer->wControlBits = VTCONTROL_INTERRUPTED;

  00013	b9 00 01 00 00	 mov	 ecx, 256		; 00000100H
  00018	8b 55 08	 mov	 edx, DWORD PTR _pBuffer$[ebp]
  0001b	66 89 4a 04	 mov	 WORD PTR [edx+4], cx

; 1567 : 
; 1568 :     BYTE nCol;
; 1569 : 
; 1570 :     for (BYTE nRow = 0; nRow < 26; nRow++)

  0001f	c6 45 fe 00	 mov	 BYTE PTR _nRow$140493[ebp], 0
  00023	eb 08		 jmp	 SHORT $LN67@CreateTest
$LN66@CreateTest:
  00025	8a 45 fe	 mov	 al, BYTE PTR _nRow$140493[ebp]
  00028	04 01		 add	 al, 1
  0002a	88 45 fe	 mov	 BYTE PTR _nRow$140493[ebp], al
$LN67@CreateTest:
  0002d	0f b6 4d fe	 movzx	 ecx, BYTE PTR _nRow$140493[ebp]
  00031	83 f9 1a	 cmp	 ecx, 26			; 0000001aH
  00034	0f 8d 43 06 00
	00		 jge	 $LN65@CreateTest

; 1571 :     {
; 1572 :         if (nRow == 0)

  0003a	0f b6 55 fe	 movzx	 edx, BYTE PTR _nRow$140493[ebp]
  0003e	85 d2		 test	 edx, edx
  00040	75 59		 jne	 SHORT $LN64@CreateTest

; 1573 :         {
; 1574 :             FillMemory(pBuffer->Frame[nRow], 8, 0x20);

  00042	6a 08		 push	 8
  00044	6a 20		 push	 32			; 00000020H
  00046	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  0004a	6b c0 28	 imul	 eax, 40			; 00000028H
  0004d	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  00050	8d 54 01 06	 lea	 edx, DWORD PTR [ecx+eax+6]
  00054	52		 push	 edx
  00055	e8 00 00 00 00	 call	 _memset
  0005a	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1575 :             CopyMemory(&pBuffer->Frame[nRow][8], _T(" DScaler Charset Test  \x03"), 24);

  0005d	6a 18		 push	 24			; 00000018H
  0005f	68 00 00 00 00	 push	 OFFSET ??_C@_1DC@JJFKKOCC@?$AA?5?$AAD?$AAS?$AAc?$AAa?$AAl?$AAe?$AAr?$AA?5?$AAC?$AAh?$AAa?$AAr?$AAs?$AAe?$AAt?$AA?5?$AAT?$AAe?$AAs?$AAt?$AA?5?$AA?5?$AA?$AD?$AA?$AA@
  00064	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  00068	6b c0 28	 imul	 eax, 40			; 00000028H
  0006b	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  0006e	8d 54 01 0e	 lea	 edx, DWORD PTR [ecx+eax+14]
  00072	52		 push	 edx
  00073	e8 00 00 00 00	 call	 _memcpy
  00078	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1576 :             FillMemory(&pBuffer->Frame[nRow][32], 8, 0x20);

  0007b	6a 08		 push	 8
  0007d	6a 20		 push	 32			; 00000020H
  0007f	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  00083	6b c0 28	 imul	 eax, 40			; 00000028H
  00086	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  00089	8d 54 01 26	 lea	 edx, DWORD PTR [ecx+eax+38]
  0008d	52		 push	 edx
  0008e	e8 00 00 00 00	 call	 _memset
  00093	83 c4 0c	 add	 esp, 12			; 0000000cH
  00096	e9 ce 05 00 00	 jmp	 $LN63@CreateTest
$LN64@CreateTest:

; 1577 :         }
; 1578 :         else if (nRow == 2)

  0009b	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  0009f	83 f8 02	 cmp	 eax, 2
  000a2	75 5d		 jne	 SHORT $LN62@CreateTest

; 1579 :         {
; 1580 :             CopyMemory(pBuffer->Frame[nRow], _T("\x17 \x1es\x13\x10\x16\x10\x1f\x18\x04\x0d\x1d\x03")_T("ENGINEERING\x1a\x12\x1c\x0c\x1es\x15\x0e\x11\x10\x14\x10\x07"), 38);

  000a4	6a 26		 push	 38			; 00000026H
  000a6	68 00 00 00 00	 push	 OFFSET ??_C@_1EO@BJJOLAPK@?$AA?$BH?$AA?5?$AA?$BO?$AAs?$AA?$BD?$AA?$BA?$AA?$BG?$AA?$BA?$AA?$BP?$AA?$BI?$AA?$AE?$AA?$AN?$AA?$BN?$AA?$AD?$AAE?$AAN?$AAG?$AAI?$AAN?$AAE?$AAE?$AAR?$AAI?$AAN?$AAG?$AA?$BK?$AA?$BC?$AA?$BM?$AA?$AM?$AA?$BO?$AAs?$AA?$BF@
  000ab	0f b6 4d fe	 movzx	 ecx, BYTE PTR _nRow$140493[ebp]
  000af	6b c9 28	 imul	 ecx, 40			; 00000028H
  000b2	8b 55 08	 mov	 edx, DWORD PTR _pBuffer$[ebp]
  000b5	8d 44 0a 06	 lea	 eax, DWORD PTR [edx+ecx+6]
  000b9	50		 push	 eax
  000ba	e8 00 00 00 00	 call	 _memcpy
  000bf	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1581 : 
; 1582 :             pBuffer->Frame[nRow][38] = '0' + (nRow / 10);

  000c2	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  000c6	99		 cdq
  000c7	b9 0a 00 00 00	 mov	 ecx, 10			; 0000000aH
  000cc	f7 f9		 idiv	 ecx
  000ce	83 c0 30	 add	 eax, 48			; 00000030H
  000d1	0f b6 55 fe	 movzx	 edx, BYTE PTR _nRow$140493[ebp]
  000d5	6b d2 28	 imul	 edx, 40			; 00000028H
  000d8	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  000db	88 44 11 2c	 mov	 BYTE PTR [ecx+edx+44], al

; 1583 :             pBuffer->Frame[nRow][39] = '0' + (nRow % 10);

  000df	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  000e3	99		 cdq
  000e4	b9 0a 00 00 00	 mov	 ecx, 10			; 0000000aH
  000e9	f7 f9		 idiv	 ecx
  000eb	83 c2 30	 add	 edx, 48			; 00000030H
  000ee	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  000f2	6b c0 28	 imul	 eax, 40			; 00000028H
  000f5	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  000f8	88 54 01 2d	 mov	 BYTE PTR [ecx+eax+45], dl
  000fc	e9 68 05 00 00	 jmp	 $LN63@CreateTest
$LN62@CreateTest:

; 1584 :         }
; 1585 :         else if (nRow == 5)

  00101	0f b6 55 fe	 movzx	 edx, BYTE PTR _nRow$140493[ebp]
  00105	83 fa 05	 cmp	 edx, 5
  00108	75 5d		 jne	 SHORT $LN60@CreateTest

; 1586 :         {
; 1587 :             CopyMemory(pBuffer->Frame[nRow], _T("\x14\x1a\x1es\x11\x19\x15\x00\x15\x01\x01\x15\x0d\x1d\x02Test Page  \x1c\x0c\x1e\x12s\x16\x18\x13\x00\x17\x18\x01"), 38);

  0010a	6a 26		 push	 38			; 00000026H
  0010c	68 00 00 00 00	 push	 OFFSET ??_C@_1EO@BLJENHFN@?$AA?$BE?$AA?$BK?$AA?$BO?$AAs?$AA?$BB?$AA?$BJ?$AA?$BF?$AA?$AA?$AA?$BF?$AA?$AB?$AA?$AB?$AA?$BF?$AA?$AN?$AA?$BN?$AA?$AC?$AAT?$AAe?$AAs?$AAt?$AA?5?$AAP?$AAa?$AAg?$AAe?$AA?5?$AA?5?$AA?$BM?$AA?$AM?$AA?$BO?$AA?$BC?$AAs?$AA?$BG@
  00111	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  00115	6b c0 28	 imul	 eax, 40			; 00000028H
  00118	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  0011b	8d 54 01 06	 lea	 edx, DWORD PTR [ecx+eax+6]
  0011f	52		 push	 edx
  00120	e8 00 00 00 00	 call	 _memcpy
  00125	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1588 : 
; 1589 :             pBuffer->Frame[nRow][38] = '0' + (nRow / 10);

  00128	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  0012c	99		 cdq
  0012d	b9 0a 00 00 00	 mov	 ecx, 10			; 0000000aH
  00132	f7 f9		 idiv	 ecx
  00134	83 c0 30	 add	 eax, 48			; 00000030H
  00137	0f b6 55 fe	 movzx	 edx, BYTE PTR _nRow$140493[ebp]
  0013b	6b d2 28	 imul	 edx, 40			; 00000028H
  0013e	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  00141	88 44 11 2c	 mov	 BYTE PTR [ecx+edx+44], al

; 1590 :             pBuffer->Frame[nRow][39] = '0' + (nRow % 10);

  00145	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  00149	99		 cdq
  0014a	b9 0a 00 00 00	 mov	 ecx, 10			; 0000000aH
  0014f	f7 f9		 idiv	 ecx
  00151	83 c2 30	 add	 edx, 48			; 00000030H
  00154	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  00158	6b c0 28	 imul	 eax, 40			; 00000028H
  0015b	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  0015e	88 54 01 2d	 mov	 BYTE PTR [ecx+eax+45], dl
  00162	e9 02 05 00 00	 jmp	 $LN63@CreateTest
$LN60@CreateTest:

; 1591 :         }
; 1592 :         else if (nRow == 7)

  00167	0f b6 55 fe	 movzx	 edx, BYTE PTR _nRow$140493[ebp]
  0016b	83 fa 07	 cmp	 edx, 7
  0016e	75 5d		 jne	 SHORT $LN58@CreateTest

; 1593 :         {
; 1594 :             CopyMemory(pBuffer->Frame[nRow], _T("\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x17\x1e,\x13\x10\x16\x10\x12\x1e,\x15\x10\x11\x10\x14\x10\x1f\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00"), 38);

  00170	6a 26		 push	 38			; 00000026H
  00172	68 00 00 00 00	 push	 OFFSET ??_C@_1EO@DJCLPGO@?$AA?$AB?$AA?$AA?$AA?$AB?$AA?$AA?$AA?$AB?$AA?$AA?$AA?$AB?$AA?$AA?$AA?$AB?$AA?$AA?$AA?$BH?$AA?$BO?$AA?0?$AA?$BD?$AA?$BA?$AA?$BG?$AA?$BA?$AA?$BC?$AA?$BO?$AA?0?$AA?$BF?$AA?$BA?$AA?$BB?$AA?$BA?$AA?$BE?$AA?$BA?$AA?$BP?$AA?$AA?$AA?$AB?$AA?$AA?$AA?$AB?$AA?$AA@
  00177	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  0017b	6b c0 28	 imul	 eax, 40			; 00000028H
  0017e	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  00181	8d 54 01 06	 lea	 edx, DWORD PTR [ecx+eax+6]
  00185	52		 push	 edx
  00186	e8 00 00 00 00	 call	 _memcpy
  0018b	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1595 : 
; 1596 :             pBuffer->Frame[nRow][38] = '0' + (nRow / 10);

  0018e	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  00192	99		 cdq
  00193	b9 0a 00 00 00	 mov	 ecx, 10			; 0000000aH
  00198	f7 f9		 idiv	 ecx
  0019a	83 c0 30	 add	 eax, 48			; 00000030H
  0019d	0f b6 55 fe	 movzx	 edx, BYTE PTR _nRow$140493[ebp]
  001a1	6b d2 28	 imul	 edx, 40			; 00000028H
  001a4	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  001a7	88 44 11 2c	 mov	 BYTE PTR [ecx+edx+44], al

; 1597 :             pBuffer->Frame[nRow][39] = '0' + (nRow % 10);

  001ab	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  001af	99		 cdq
  001b0	b9 0a 00 00 00	 mov	 ecx, 10			; 0000000aH
  001b5	f7 f9		 idiv	 ecx
  001b7	83 c2 30	 add	 edx, 48			; 00000030H
  001ba	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  001be	6b c0 28	 imul	 eax, 40			; 00000028H
  001c1	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  001c4	88 54 01 2d	 mov	 BYTE PTR [ecx+eax+45], dl
  001c8	e9 9c 04 00 00	 jmp	 $LN63@CreateTest
$LN58@CreateTest:

; 1598 :         }
; 1599 :         else if (nRow <= 16)

  001cd	0f b6 55 fe	 movzx	 edx, BYTE PTR _nRow$140493[ebp]
  001d1	83 fa 10	 cmp	 edx, 16			; 00000010H
  001d4	0f 8f ab 00 00
	00		 jg	 $LN56@CreateTest

; 1600 :         {
; 1601 :             for (nCol = 0; nCol < 38; nCol++)

  001da	c6 45 ff 00	 mov	 BYTE PTR _nCol$[ebp], 0
  001de	eb 08		 jmp	 SHORT $LN55@CreateTest
$LN54@CreateTest:
  001e0	8a 45 ff	 mov	 al, BYTE PTR _nCol$[ebp]
  001e3	04 01		 add	 al, 1
  001e5	88 45 ff	 mov	 BYTE PTR _nCol$[ebp], al
$LN55@CreateTest:
  001e8	0f b6 4d ff	 movzx	 ecx, BYTE PTR _nCol$[ebp]
  001ec	83 f9 26	 cmp	 ecx, 38			; 00000026H
  001ef	7d 55		 jge	 SHORT $LN53@CreateTest

; 1602 :             {
; 1603 :                 if (nRow & 0x1)

  001f1	0f b6 55 fe	 movzx	 edx, BYTE PTR _nRow$140493[ebp]
  001f5	83 e2 01	 and	 edx, 1
  001f8	74 25		 je	 SHORT $LN52@CreateTest

; 1604 :                 {
; 1605 :                     pBuffer->Frame[nRow][nCol] = (nCol & 0x1) ? 0x00 : 0x01;

  001fa	0f b6 45 ff	 movzx	 eax, BYTE PTR _nCol$[ebp]
  001fe	83 e0 01	 and	 eax, 1
  00201	f7 d8		 neg	 eax
  00203	1b c0		 sbb	 eax, eax
  00205	83 c0 01	 add	 eax, 1
  00208	0f b6 4d fe	 movzx	 ecx, BYTE PTR _nRow$140493[ebp]
  0020c	6b c9 28	 imul	 ecx, 40			; 00000028H
  0020f	8b 55 08	 mov	 edx, DWORD PTR _pBuffer$[ebp]
  00212	8d 4c 0a 06	 lea	 ecx, DWORD PTR [edx+ecx+6]
  00216	0f b6 55 ff	 movzx	 edx, BYTE PTR _nCol$[ebp]
  0021a	88 04 11	 mov	 BYTE PTR [ecx+edx], al

; 1606 :                 }
; 1607 :                 else

  0021d	eb 25		 jmp	 SHORT $LN51@CreateTest
$LN52@CreateTest:

; 1608 :                 {
; 1609 :                     pBuffer->Frame[nRow][nCol] = (nCol & 0x1) ? 0x7f : 0x7e;

  0021f	0f b6 45 ff	 movzx	 eax, BYTE PTR _nCol$[ebp]
  00223	83 e0 01	 and	 eax, 1
  00226	f7 d8		 neg	 eax
  00228	1b c0		 sbb	 eax, eax
  0022a	f7 d8		 neg	 eax
  0022c	83 c0 7e	 add	 eax, 126		; 0000007eH
  0022f	0f b6 4d fe	 movzx	 ecx, BYTE PTR _nRow$140493[ebp]
  00233	6b c9 28	 imul	 ecx, 40			; 00000028H
  00236	8b 55 08	 mov	 edx, DWORD PTR _pBuffer$[ebp]
  00239	8d 4c 0a 06	 lea	 ecx, DWORD PTR [edx+ecx+6]
  0023d	0f b6 55 ff	 movzx	 edx, BYTE PTR _nCol$[ebp]
  00241	88 04 11	 mov	 BYTE PTR [ecx+edx], al
$LN51@CreateTest:

; 1610 :                 }
; 1611 :             }

  00244	eb 9a		 jmp	 SHORT $LN54@CreateTest
$LN53@CreateTest:

; 1612 : 
; 1613 :             pBuffer->Frame[nRow][38] = '0' + (nRow / 10);

  00246	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  0024a	99		 cdq
  0024b	b9 0a 00 00 00	 mov	 ecx, 10			; 0000000aH
  00250	f7 f9		 idiv	 ecx
  00252	83 c0 30	 add	 eax, 48			; 00000030H
  00255	0f b6 55 fe	 movzx	 edx, BYTE PTR _nRow$140493[ebp]
  00259	6b d2 28	 imul	 edx, 40			; 00000028H
  0025c	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  0025f	88 44 11 2c	 mov	 BYTE PTR [ecx+edx+44], al

; 1614 :             pBuffer->Frame[nRow][39] = '0' + (nRow % 10);

  00263	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  00267	99		 cdq
  00268	b9 0a 00 00 00	 mov	 ecx, 10			; 0000000aH
  0026d	f7 f9		 idiv	 ecx
  0026f	83 c2 30	 add	 edx, 48			; 00000030H
  00272	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  00276	6b c0 28	 imul	 eax, 40			; 00000028H
  00279	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  0027c	88 54 01 2d	 mov	 BYTE PTR [ecx+eax+45], dl
  00280	e9 e4 03 00 00	 jmp	 $LN63@CreateTest
$LN56@CreateTest:

; 1615 :         }
; 1616 :         else if (nRow == 17)

  00285	0f b6 55 fe	 movzx	 edx, BYTE PTR _nRow$140493[ebp]
  00289	83 fa 11	 cmp	 edx, 17			; 00000011H
  0028c	75 23		 jne	 SHORT $LN49@CreateTest

; 1617 :         {
; 1618 :             CopyMemory(pBuffer->Frame[nRow], _T("White\x03")_T("Yellow\x06")_T("Cyan\x02")_T("Green\x05")_T("Magenta\x01")_T("Red\x04")_T("Blue"), 40);

  0028e	6a 28		 push	 40			; 00000028H
  00290	68 00 00 00 00	 push	 OFFSET ??_C@_1FC@IOBLLPJM@?$AAW?$AAh?$AAi?$AAt?$AAe?$AA?$AD?$AAY?$AAe?$AAl?$AAl?$AAo?$AAw?$AA?$AG?$AAC?$AAy?$AAa?$AAn?$AA?$AC?$AAG?$AAr?$AAe?$AAe?$AAn?$AA?$AF?$AAM?$AAa?$AAg?$AAe?$AAn?$AAt?$AAa?$AA?$AB@
  00295	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  00299	6b c0 28	 imul	 eax, 40			; 00000028H
  0029c	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  0029f	8d 54 01 06	 lea	 edx, DWORD PTR [ecx+eax+6]
  002a3	52		 push	 edx
  002a4	e8 00 00 00 00	 call	 _memcpy
  002a9	83 c4 0c	 add	 esp, 12			; 0000000cH
  002ac	e9 b8 03 00 00	 jmp	 $LN63@CreateTest
$LN49@CreateTest:

; 1619 :         }
; 1620 :         else if (nRow == 18)

  002b1	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  002b5	83 f8 12	 cmp	 eax, 18			; 00000012H
  002b8	0f 85 6d 01 00
	00		 jne	 $LN47@CreateTest

; 1621 :         {
; 1622 :             for (nCol = 0; nCol < 40; nCol++)

  002be	c6 45 ff 00	 mov	 BYTE PTR _nCol$[ebp], 0
  002c2	eb 09		 jmp	 SHORT $LN46@CreateTest
$LN45@CreateTest:
  002c4	8a 4d ff	 mov	 cl, BYTE PTR _nCol$[ebp]
  002c7	80 c1 01	 add	 cl, 1
  002ca	88 4d ff	 mov	 BYTE PTR _nCol$[ebp], cl
$LN46@CreateTest:
  002cd	0f b6 55 ff	 movzx	 edx, BYTE PTR _nCol$[ebp]
  002d1	83 fa 28	 cmp	 edx, 40			; 00000028H
  002d4	0f 8d 4c 01 00
	00		 jge	 $LN44@CreateTest

; 1623 :             {
; 1624 :                 if ((nCol % 5) == 0)

  002da	0f b6 45 ff	 movzx	 eax, BYTE PTR _nCol$[ebp]
  002de	99		 cdq
  002df	b9 05 00 00 00	 mov	 ecx, 5
  002e4	f7 f9		 idiv	 ecx
  002e6	85 d2		 test	 edx, edx
  002e8	0f 85 e8 00 00
	00		 jne	 $LN43@CreateTest

; 1625 :                 {
; 1626 :                     switch (nCol)

  002ee	0f b6 55 ff	 movzx	 edx, BYTE PTR _nCol$[ebp]
  002f2	89 55 f4	 mov	 DWORD PTR tv272[ebp], edx
  002f5	83 7d f4 23	 cmp	 DWORD PTR tv272[ebp], 35 ; 00000023H
  002f9	0f 87 d5 00 00
	00		 ja	 $LN41@CreateTest
  002ff	8b 45 f4	 mov	 eax, DWORD PTR tv272[ebp]
  00302	0f b6 88 00 00
	00 00		 movzx	 ecx, BYTE PTR $LN70@CreateTest[eax]
  00309	ff 24 8d 00 00
	00 00		 jmp	 DWORD PTR $LN72@CreateTest[ecx*4]
$LN40@CreateTest:

; 1627 :                     {
; 1628 :                     case 0: pBuffer->Frame[nRow][nCol] = 0x17; break;

  00310	0f b6 55 fe	 movzx	 edx, BYTE PTR _nRow$140493[ebp]
  00314	6b d2 28	 imul	 edx, 40			; 00000028H
  00317	8b 45 08	 mov	 eax, DWORD PTR _pBuffer$[ebp]
  0031a	8d 4c 10 06	 lea	 ecx, DWORD PTR [eax+edx+6]
  0031e	0f b6 55 ff	 movzx	 edx, BYTE PTR _nCol$[ebp]
  00322	c6 04 11 17	 mov	 BYTE PTR [ecx+edx], 23	; 00000017H
  00326	e9 a9 00 00 00	 jmp	 $LN41@CreateTest
$LN39@CreateTest:

; 1629 :                     case 5: pBuffer->Frame[nRow][nCol] = 0x13; break;

  0032b	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  0032f	6b c0 28	 imul	 eax, 40			; 00000028H
  00332	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  00335	8d 54 01 06	 lea	 edx, DWORD PTR [ecx+eax+6]
  00339	0f b6 45 ff	 movzx	 eax, BYTE PTR _nCol$[ebp]
  0033d	c6 04 02 13	 mov	 BYTE PTR [edx+eax], 19	; 00000013H
  00341	e9 8e 00 00 00	 jmp	 $LN41@CreateTest
$LN38@CreateTest:

; 1630 :                     case 10: pBuffer->Frame[nRow][nCol] = 0x16; break;

  00346	0f b6 4d fe	 movzx	 ecx, BYTE PTR _nRow$140493[ebp]
  0034a	6b c9 28	 imul	 ecx, 40			; 00000028H
  0034d	8b 55 08	 mov	 edx, DWORD PTR _pBuffer$[ebp]
  00350	8d 44 0a 06	 lea	 eax, DWORD PTR [edx+ecx+6]
  00354	0f b6 4d ff	 movzx	 ecx, BYTE PTR _nCol$[ebp]
  00358	c6 04 08 16	 mov	 BYTE PTR [eax+ecx], 22	; 00000016H
  0035c	eb 76		 jmp	 SHORT $LN41@CreateTest
$LN37@CreateTest:

; 1631 :                     case 15: pBuffer->Frame[nRow][nCol] = 0x12; break;

  0035e	0f b6 55 fe	 movzx	 edx, BYTE PTR _nRow$140493[ebp]
  00362	6b d2 28	 imul	 edx, 40			; 00000028H
  00365	8b 45 08	 mov	 eax, DWORD PTR _pBuffer$[ebp]
  00368	8d 4c 10 06	 lea	 ecx, DWORD PTR [eax+edx+6]
  0036c	0f b6 55 ff	 movzx	 edx, BYTE PTR _nCol$[ebp]
  00370	c6 04 11 12	 mov	 BYTE PTR [ecx+edx], 18	; 00000012H
  00374	eb 5e		 jmp	 SHORT $LN41@CreateTest
$LN36@CreateTest:

; 1632 :                     case 20: pBuffer->Frame[nRow][nCol] = 0x19; break;

  00376	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  0037a	6b c0 28	 imul	 eax, 40			; 00000028H
  0037d	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  00380	8d 54 01 06	 lea	 edx, DWORD PTR [ecx+eax+6]
  00384	0f b6 45 ff	 movzx	 eax, BYTE PTR _nCol$[ebp]
  00388	c6 04 02 19	 mov	 BYTE PTR [edx+eax], 25	; 00000019H
  0038c	eb 46		 jmp	 SHORT $LN41@CreateTest
$LN35@CreateTest:

; 1633 :                     case 25: pBuffer->Frame[nRow][nCol] = 0x15; break;

  0038e	0f b6 4d fe	 movzx	 ecx, BYTE PTR _nRow$140493[ebp]
  00392	6b c9 28	 imul	 ecx, 40			; 00000028H
  00395	8b 55 08	 mov	 edx, DWORD PTR _pBuffer$[ebp]
  00398	8d 44 0a 06	 lea	 eax, DWORD PTR [edx+ecx+6]
  0039c	0f b6 4d ff	 movzx	 ecx, BYTE PTR _nCol$[ebp]
  003a0	c6 04 08 15	 mov	 BYTE PTR [eax+ecx], 21	; 00000015H
  003a4	eb 2e		 jmp	 SHORT $LN41@CreateTest
$LN34@CreateTest:

; 1634 :                     case 30: pBuffer->Frame[nRow][nCol] = 0x11; break;

  003a6	0f b6 55 fe	 movzx	 edx, BYTE PTR _nRow$140493[ebp]
  003aa	6b d2 28	 imul	 edx, 40			; 00000028H
  003ad	8b 45 08	 mov	 eax, DWORD PTR _pBuffer$[ebp]
  003b0	8d 4c 10 06	 lea	 ecx, DWORD PTR [eax+edx+6]
  003b4	0f b6 55 ff	 movzx	 edx, BYTE PTR _nCol$[ebp]
  003b8	c6 04 11 11	 mov	 BYTE PTR [ecx+edx], 17	; 00000011H
  003bc	eb 16		 jmp	 SHORT $LN41@CreateTest
$LN33@CreateTest:

; 1635 :                     case 35: pBuffer->Frame[nRow][nCol] = 0x14; break;

  003be	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  003c2	6b c0 28	 imul	 eax, 40			; 00000028H
  003c5	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  003c8	8d 54 01 06	 lea	 edx, DWORD PTR [ecx+eax+6]
  003cc	0f b6 45 ff	 movzx	 eax, BYTE PTR _nCol$[ebp]
  003d0	c6 04 02 14	 mov	 BYTE PTR [edx+eax], 20	; 00000014H
$LN41@CreateTest:

; 1636 :                     }
; 1637 :                 }
; 1638 :                 else if (nCol == 1)

  003d4	eb 4b		 jmp	 SHORT $LN32@CreateTest
$LN43@CreateTest:
  003d6	0f b6 4d ff	 movzx	 ecx, BYTE PTR _nCol$[ebp]
  003da	83 f9 01	 cmp	 ecx, 1
  003dd	75 18		 jne	 SHORT $LN31@CreateTest

; 1639 :                 {
; 1640 :                     pBuffer->Frame[nRow][nCol] = 0x1a;

  003df	0f b6 55 fe	 movzx	 edx, BYTE PTR _nRow$140493[ebp]
  003e3	6b d2 28	 imul	 edx, 40			; 00000028H
  003e6	8b 45 08	 mov	 eax, DWORD PTR _pBuffer$[ebp]
  003e9	8d 4c 10 06	 lea	 ecx, DWORD PTR [eax+edx+6]
  003ed	0f b6 55 ff	 movzx	 edx, BYTE PTR _nCol$[ebp]
  003f1	c6 04 11 1a	 mov	 BYTE PTR [ecx+edx], 26	; 0000001aH

; 1641 :                 }
; 1642 :                 else

  003f5	eb 2a		 jmp	 SHORT $LN32@CreateTest
$LN31@CreateTest:

; 1643 :                 {
; 1644 :                     pBuffer->Frame[nRow][nCol] = 0x1F + nCol - (nCol / 5);

  003f7	0f b6 4d ff	 movzx	 ecx, BYTE PTR _nCol$[ebp]
  003fb	83 c1 1f	 add	 ecx, 31			; 0000001fH
  003fe	0f b6 45 ff	 movzx	 eax, BYTE PTR _nCol$[ebp]
  00402	99		 cdq
  00403	be 05 00 00 00	 mov	 esi, 5
  00408	f7 fe		 idiv	 esi
  0040a	2b c8		 sub	 ecx, eax
  0040c	0f b6 55 fe	 movzx	 edx, BYTE PTR _nRow$140493[ebp]
  00410	6b d2 28	 imul	 edx, 40			; 00000028H
  00413	8b 45 08	 mov	 eax, DWORD PTR _pBuffer$[ebp]
  00416	8d 54 10 06	 lea	 edx, DWORD PTR [eax+edx+6]
  0041a	0f b6 45 ff	 movzx	 eax, BYTE PTR _nCol$[ebp]
  0041e	88 0c 02	 mov	 BYTE PTR [edx+eax], cl
$LN32@CreateTest:

; 1645 :                 }
; 1646 :             }

  00421	e9 9e fe ff ff	 jmp	 $LN45@CreateTest
$LN44@CreateTest:

; 1647 :         }
; 1648 :         else if (nRow >= 19 && nRow <= 21)

  00426	e9 3e 02 00 00	 jmp	 $LN63@CreateTest
$LN47@CreateTest:
  0042b	0f b6 4d fe	 movzx	 ecx, BYTE PTR _nRow$140493[ebp]
  0042f	83 f9 13	 cmp	 ecx, 19			; 00000013H
  00432	0f 8c 85 00 00
	00		 jl	 $LN28@CreateTest
  00438	0f b6 55 fe	 movzx	 edx, BYTE PTR _nRow$140493[ebp]
  0043c	83 fa 15	 cmp	 edx, 21			; 00000015H
  0043f	7f 7c		 jg	 SHORT $LN28@CreateTest

; 1649 :         {
; 1650 :             for (nCol = 0; nCol < 40; nCol++)

  00441	c6 45 ff 00	 mov	 BYTE PTR _nCol$[ebp], 0
  00445	eb 08		 jmp	 SHORT $LN27@CreateTest
$LN26@CreateTest:
  00447	8a 45 ff	 mov	 al, BYTE PTR _nCol$[ebp]
  0044a	04 01		 add	 al, 1
  0044c	88 45 ff	 mov	 BYTE PTR _nCol$[ebp], al
$LN27@CreateTest:
  0044f	0f b6 4d ff	 movzx	 ecx, BYTE PTR _nCol$[ebp]
  00453	83 f9 28	 cmp	 ecx, 40			; 00000028H
  00456	7d 60		 jge	 SHORT $LN25@CreateTest

; 1651 :             {
; 1652 :                 if ((nCol % 5) == 0)

  00458	0f b6 45 ff	 movzx	 eax, BYTE PTR _nCol$[ebp]
  0045c	99		 cdq
  0045d	b9 05 00 00 00	 mov	 ecx, 5
  00462	f7 f9		 idiv	 ecx
  00464	85 d2		 test	 edx, edx
  00466	75 18		 jne	 SHORT $LN24@CreateTest

; 1653 :                 {
; 1654 :                     pBuffer->Frame[nRow][nCol] = 0x20;

  00468	0f b6 55 fe	 movzx	 edx, BYTE PTR _nRow$140493[ebp]
  0046c	6b d2 28	 imul	 edx, 40			; 00000028H
  0046f	8b 45 08	 mov	 eax, DWORD PTR _pBuffer$[ebp]
  00472	8d 4c 10 06	 lea	 ecx, DWORD PTR [eax+edx+6]
  00476	0f b6 55 ff	 movzx	 edx, BYTE PTR _nCol$[ebp]
  0047a	c6 04 11 20	 mov	 BYTE PTR [ecx+edx], 32	; 00000020H

; 1655 :                 }
; 1656 :                 else

  0047e	eb 36		 jmp	 SHORT $LN23@CreateTest
$LN24@CreateTest:

; 1657 :                 {
; 1658 :                     pBuffer->Frame[nRow][nCol] = (0x1F | ((nRow - 19) << 5)) + nCol - (nCol / 5);

  00480	0f b6 4d fe	 movzx	 ecx, BYTE PTR _nRow$140493[ebp]
  00484	83 e9 13	 sub	 ecx, 19			; 00000013H
  00487	c1 e1 05	 shl	 ecx, 5
  0048a	83 c9 1f	 or	 ecx, 31			; 0000001fH
  0048d	0f b6 55 ff	 movzx	 edx, BYTE PTR _nCol$[ebp]
  00491	03 ca		 add	 ecx, edx
  00493	0f b6 45 ff	 movzx	 eax, BYTE PTR _nCol$[ebp]
  00497	99		 cdq
  00498	be 05 00 00 00	 mov	 esi, 5
  0049d	f7 fe		 idiv	 esi
  0049f	2b c8		 sub	 ecx, eax
  004a1	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  004a5	6b c0 28	 imul	 eax, 40			; 00000028H
  004a8	8b 55 08	 mov	 edx, DWORD PTR _pBuffer$[ebp]
  004ab	8d 44 02 06	 lea	 eax, DWORD PTR [edx+eax+6]
  004af	0f b6 55 ff	 movzx	 edx, BYTE PTR _nCol$[ebp]
  004b3	88 0c 10	 mov	 BYTE PTR [eax+edx], cl
$LN23@CreateTest:

; 1659 :                 }
; 1660 :             }

  004b6	eb 8f		 jmp	 SHORT $LN26@CreateTest
$LN25@CreateTest:

; 1661 :         }
; 1662 :         else if (nRow == 22)

  004b8	e9 ac 01 00 00	 jmp	 $LN63@CreateTest
$LN28@CreateTest:
  004bd	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  004c1	83 f8 16	 cmp	 eax, 22			; 00000016H
  004c4	0f 85 49 01 00
	00		 jne	 $LN21@CreateTest

; 1663 :         {
; 1664 :             for (nCol = 0; nCol < 40; nCol++)

  004ca	c6 45 ff 00	 mov	 BYTE PTR _nCol$[ebp], 0
  004ce	eb 09		 jmp	 SHORT $LN20@CreateTest
$LN19@CreateTest:
  004d0	8a 4d ff	 mov	 cl, BYTE PTR _nCol$[ebp]
  004d3	80 c1 01	 add	 cl, 1
  004d6	88 4d ff	 mov	 BYTE PTR _nCol$[ebp], cl
$LN20@CreateTest:
  004d9	0f b6 55 ff	 movzx	 edx, BYTE PTR _nCol$[ebp]
  004dd	83 fa 28	 cmp	 edx, 40			; 00000028H
  004e0	0f 8d 2b 01 00
	00		 jge	 $LN18@CreateTest

; 1665 :             {
; 1666 :                 if ((nCol % 5) == 0)

  004e6	0f b6 45 ff	 movzx	 eax, BYTE PTR _nCol$[ebp]
  004ea	99		 cdq
  004eb	b9 05 00 00 00	 mov	 ecx, 5
  004f0	f7 f9		 idiv	 ecx
  004f2	85 d2		 test	 edx, edx
  004f4	0f 85 e8 00 00
	00		 jne	 $LN17@CreateTest

; 1667 :                 {
; 1668 :                     switch (nCol)

  004fa	0f b6 55 ff	 movzx	 edx, BYTE PTR _nCol$[ebp]
  004fe	89 55 f0	 mov	 DWORD PTR tv383[ebp], edx
  00501	83 7d f0 23	 cmp	 DWORD PTR tv383[ebp], 35 ; 00000023H
  00505	0f 87 d5 00 00
	00		 ja	 $LN15@CreateTest
  0050b	8b 45 f0	 mov	 eax, DWORD PTR tv383[ebp]
  0050e	0f b6 88 00 00
	00 00		 movzx	 ecx, BYTE PTR $LN71@CreateTest[eax]
  00515	ff 24 8d 00 00
	00 00		 jmp	 DWORD PTR $LN73@CreateTest[ecx*4]
$LN14@CreateTest:

; 1669 :                     {
; 1670 :                     case 0: pBuffer->Frame[nRow][nCol] = 0x14; break;

  0051c	0f b6 55 fe	 movzx	 edx, BYTE PTR _nRow$140493[ebp]
  00520	6b d2 28	 imul	 edx, 40			; 00000028H
  00523	8b 45 08	 mov	 eax, DWORD PTR _pBuffer$[ebp]
  00526	8d 4c 10 06	 lea	 ecx, DWORD PTR [eax+edx+6]
  0052a	0f b6 55 ff	 movzx	 edx, BYTE PTR _nCol$[ebp]
  0052e	c6 04 11 14	 mov	 BYTE PTR [ecx+edx], 20	; 00000014H
  00532	e9 a9 00 00 00	 jmp	 $LN15@CreateTest
$LN13@CreateTest:

; 1671 :                     case 5: pBuffer->Frame[nRow][nCol] = 0x11; break;

  00537	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  0053b	6b c0 28	 imul	 eax, 40			; 00000028H
  0053e	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  00541	8d 54 01 06	 lea	 edx, DWORD PTR [ecx+eax+6]
  00545	0f b6 45 ff	 movzx	 eax, BYTE PTR _nCol$[ebp]
  00549	c6 04 02 11	 mov	 BYTE PTR [edx+eax], 17	; 00000011H
  0054d	e9 8e 00 00 00	 jmp	 $LN15@CreateTest
$LN12@CreateTest:

; 1672 :                     case 10: pBuffer->Frame[nRow][nCol] = 0x15; break;

  00552	0f b6 4d fe	 movzx	 ecx, BYTE PTR _nRow$140493[ebp]
  00556	6b c9 28	 imul	 ecx, 40			; 00000028H
  00559	8b 55 08	 mov	 edx, DWORD PTR _pBuffer$[ebp]
  0055c	8d 44 0a 06	 lea	 eax, DWORD PTR [edx+ecx+6]
  00560	0f b6 4d ff	 movzx	 ecx, BYTE PTR _nCol$[ebp]
  00564	c6 04 08 15	 mov	 BYTE PTR [eax+ecx], 21	; 00000015H
  00568	eb 76		 jmp	 SHORT $LN15@CreateTest
$LN11@CreateTest:

; 1673 :                     case 15: pBuffer->Frame[nRow][nCol] = 0x12; break;

  0056a	0f b6 55 fe	 movzx	 edx, BYTE PTR _nRow$140493[ebp]
  0056e	6b d2 28	 imul	 edx, 40			; 00000028H
  00571	8b 45 08	 mov	 eax, DWORD PTR _pBuffer$[ebp]
  00574	8d 4c 10 06	 lea	 ecx, DWORD PTR [eax+edx+6]
  00578	0f b6 55 ff	 movzx	 edx, BYTE PTR _nCol$[ebp]
  0057c	c6 04 11 12	 mov	 BYTE PTR [ecx+edx], 18	; 00000012H
  00580	eb 5e		 jmp	 SHORT $LN15@CreateTest
$LN10@CreateTest:

; 1674 :                     case 20: pBuffer->Frame[nRow][nCol] = 0x1a; break;

  00582	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  00586	6b c0 28	 imul	 eax, 40			; 00000028H
  00589	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  0058c	8d 54 01 06	 lea	 edx, DWORD PTR [ecx+eax+6]
  00590	0f b6 45 ff	 movzx	 eax, BYTE PTR _nCol$[ebp]
  00594	c6 04 02 1a	 mov	 BYTE PTR [edx+eax], 26	; 0000001aH
  00598	eb 46		 jmp	 SHORT $LN15@CreateTest
$LN9@CreateTest:

; 1675 :                     case 25: pBuffer->Frame[nRow][nCol] = 0x16; break;

  0059a	0f b6 4d fe	 movzx	 ecx, BYTE PTR _nRow$140493[ebp]
  0059e	6b c9 28	 imul	 ecx, 40			; 00000028H
  005a1	8b 55 08	 mov	 edx, DWORD PTR _pBuffer$[ebp]
  005a4	8d 44 0a 06	 lea	 eax, DWORD PTR [edx+ecx+6]
  005a8	0f b6 4d ff	 movzx	 ecx, BYTE PTR _nCol$[ebp]
  005ac	c6 04 08 16	 mov	 BYTE PTR [eax+ecx], 22	; 00000016H
  005b0	eb 2e		 jmp	 SHORT $LN15@CreateTest
$LN8@CreateTest:

; 1676 :                     case 30: pBuffer->Frame[nRow][nCol] = 0x13; break;

  005b2	0f b6 55 fe	 movzx	 edx, BYTE PTR _nRow$140493[ebp]
  005b6	6b d2 28	 imul	 edx, 40			; 00000028H
  005b9	8b 45 08	 mov	 eax, DWORD PTR _pBuffer$[ebp]
  005bc	8d 4c 10 06	 lea	 ecx, DWORD PTR [eax+edx+6]
  005c0	0f b6 55 ff	 movzx	 edx, BYTE PTR _nCol$[ebp]
  005c4	c6 04 11 13	 mov	 BYTE PTR [ecx+edx], 19	; 00000013H
  005c8	eb 16		 jmp	 SHORT $LN15@CreateTest
$LN7@CreateTest:

; 1677 :                     case 35: pBuffer->Frame[nRow][nCol] = 0x17; break;

  005ca	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  005ce	6b c0 28	 imul	 eax, 40			; 00000028H
  005d1	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  005d4	8d 54 01 06	 lea	 edx, DWORD PTR [ecx+eax+6]
  005d8	0f b6 45 ff	 movzx	 eax, BYTE PTR _nCol$[ebp]
  005dc	c6 04 02 17	 mov	 BYTE PTR [edx+eax], 23	; 00000017H
$LN15@CreateTest:

; 1678 :                     }
; 1679 :                 }
; 1680 :                 else

  005e0	eb 2a		 jmp	 SHORT $LN6@CreateTest
$LN17@CreateTest:

; 1681 :                 {
; 1682 :                     pBuffer->Frame[nRow][nCol] = 0x5F + nCol - (nCol / 5);

  005e2	0f b6 4d ff	 movzx	 ecx, BYTE PTR _nCol$[ebp]
  005e6	83 c1 5f	 add	 ecx, 95			; 0000005fH
  005e9	0f b6 45 ff	 movzx	 eax, BYTE PTR _nCol$[ebp]
  005ed	99		 cdq
  005ee	be 05 00 00 00	 mov	 esi, 5
  005f3	f7 fe		 idiv	 esi
  005f5	2b c8		 sub	 ecx, eax
  005f7	0f b6 55 fe	 movzx	 edx, BYTE PTR _nRow$140493[ebp]
  005fb	6b d2 28	 imul	 edx, 40			; 00000028H
  005fe	8b 45 08	 mov	 eax, DWORD PTR _pBuffer$[ebp]
  00601	8d 54 10 06	 lea	 edx, DWORD PTR [eax+edx+6]
  00605	0f b6 45 ff	 movzx	 eax, BYTE PTR _nCol$[ebp]
  00609	88 0c 02	 mov	 BYTE PTR [edx+eax], cl
$LN6@CreateTest:

; 1683 :                 }
; 1684 :             }

  0060c	e9 bf fe ff ff	 jmp	 $LN19@CreateTest
$LN18@CreateTest:

; 1685 :         }
; 1686 :         else if (nRow == 23)

  00611	eb 56		 jmp	 SHORT $LN63@CreateTest
$LN21@CreateTest:
  00613	0f b6 4d fe	 movzx	 ecx, BYTE PTR _nRow$140493[ebp]
  00617	83 f9 17	 cmp	 ecx, 23			; 00000017H
  0061a	75 20		 jne	 SHORT $LN4@CreateTest

; 1687 :         {
; 1688 :             CopyMemory(pBuffer->Frame[nRow], _T("\x03\x18")_T("Conceal\x08")_T("Flash\x03\x2a\x0b\x0b")_T("Box\x09")_T("Steady\x18")_T("Gone\x0a\x0a?\x16^\x7f"), 40);

  0061c	6a 28		 push	 40			; 00000028H
  0061e	68 00 00 00 00	 push	 OFFSET ??_C@_1FC@DACECFHH@?$AA?$AD?$AA?$BI?$AAC?$AAo?$AAn?$AAc?$AAe?$AAa?$AAl?$AA?$AI?$AAF?$AAl?$AAa?$AAs?$AAh?$AA?$AD?$AA?$CK?$AA?$AL?$AA?$AL?$AAB?$AAo?$AAx?$AA?7?$AAS?$AAt?$AAe?$AAa?$AAd?$AAy?$AA?$BI?$AAG?$AAo@
  00623	0f b6 55 fe	 movzx	 edx, BYTE PTR _nRow$140493[ebp]
  00627	6b d2 28	 imul	 edx, 40			; 00000028H
  0062a	8b 45 08	 mov	 eax, DWORD PTR _pBuffer$[ebp]
  0062d	8d 4c 10 06	 lea	 ecx, DWORD PTR [eax+edx+6]
  00631	51		 push	 ecx
  00632	e8 00 00 00 00	 call	 _memcpy
  00637	83 c4 0c	 add	 esp, 12			; 0000000cH
  0063a	eb 2d		 jmp	 SHORT $LN63@CreateTest
$LN4@CreateTest:

; 1689 :         }
; 1690 :         else if (nRow == 24 || nRow == 25)

  0063c	0f b6 55 fe	 movzx	 edx, BYTE PTR _nRow$140493[ebp]
  00640	83 fa 18	 cmp	 edx, 24			; 00000018H
  00643	74 09		 je	 SHORT $LN1@CreateTest
  00645	0f b6 45 fe	 movzx	 eax, BYTE PTR _nRow$140493[ebp]
  00649	83 f8 19	 cmp	 eax, 25			; 00000019H
  0064c	75 1b		 jne	 SHORT $LN63@CreateTest
$LN1@CreateTest:

; 1691 :         {
; 1692 :             FillMemory(pBuffer->Frame[nRow], 40, 0x20);

  0064e	6a 28		 push	 40			; 00000028H
  00650	6a 20		 push	 32			; 00000020H
  00652	0f b6 4d fe	 movzx	 ecx, BYTE PTR _nRow$140493[ebp]
  00656	6b c9 28	 imul	 ecx, 40			; 00000028H
  00659	8b 55 08	 mov	 edx, DWORD PTR _pBuffer$[ebp]
  0065c	8d 44 0a 06	 lea	 eax, DWORD PTR [edx+ecx+6]
  00660	50		 push	 eax
  00661	e8 00 00 00 00	 call	 _memset
  00666	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN63@CreateTest:

; 1693 :         }
; 1694 : 
; 1695 :         pBuffer->LineState[nRow] = CACHESTATE_HASDATA | CACHESTATE_UPDATED;

  00669	0f b6 4d fe	 movzx	 ecx, BYTE PTR _nRow$140493[ebp]
  0066d	8b 55 08	 mov	 edx, DWORD PTR _pBuffer$[ebp]
  00670	c6 84 0a 16 04
	00 00 03	 mov	 BYTE PTR [edx+ecx+1046], 3

; 1696 :     }

  00678	e9 a8 f9 ff ff	 jmp	 $LN66@CreateTest
$LN65@CreateTest:

; 1697 : 
; 1698 :     ZeroMemory(pBuffer->EditorialLink, sizeof(DWORD) * 6);

  0067d	6a 18		 push	 24			; 00000018H
  0067f	6a 00		 push	 0
  00681	8b 45 08	 mov	 eax, DWORD PTR _pBuffer$[ebp]
  00684	05 30 04 00 00	 add	 eax, 1072		; 00000430H
  00689	50		 push	 eax
  0068a	e8 00 00 00 00	 call	 _memset
  0068f	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1699 : 
; 1700 :     pBuffer->bShowRow24 = FALSE;

  00692	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  00695	c7 81 50 04 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+1104], 0

; 1701 :     pBuffer->bBufferReserved = TRUE;

  0069f	8b 55 08	 mov	 edx, DWORD PTR _pBuffer$[ebp]
  006a2	c7 82 48 04 00
	00 01 00 00 00	 mov	 DWORD PTR [edx+1096], 1

; 1702 :     pBuffer->bReceived = TRUE;

  006ac	8b 45 08	 mov	 eax, DWORD PTR _pBuffer$[ebp]
  006af	c7 80 4c 04 00
	00 01 00 00 00	 mov	 DWORD PTR [eax+1100], 1

; 1703 :     pBuffer->pNextPage = NULL;

  006b9	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  006bc	c7 81 54 04 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+1108], 0

; 1704 : }

  006c6	5e		 pop	 esi
  006c7	8b e5		 mov	 esp, ebp
  006c9	5d		 pop	 ebp
  006ca	c2 04 00	 ret	 4
  006cd	8d 49 00	 npad	 3
$LN72@CreateTest:
  006d0	00 00 00 00	 DD	 $LN40@CreateTest
  006d4	00 00 00 00	 DD	 $LN39@CreateTest
  006d8	00 00 00 00	 DD	 $LN38@CreateTest
  006dc	00 00 00 00	 DD	 $LN37@CreateTest
  006e0	00 00 00 00	 DD	 $LN36@CreateTest
  006e4	00 00 00 00	 DD	 $LN35@CreateTest
  006e8	00 00 00 00	 DD	 $LN34@CreateTest
  006ec	00 00 00 00	 DD	 $LN33@CreateTest
  006f0	00 00 00 00	 DD	 $LN41@CreateTest
$LN70@CreateTest:
  006f4	00		 DB	 0
  006f5	08		 DB	 8
  006f6	08		 DB	 8
  006f7	08		 DB	 8
  006f8	08		 DB	 8
  006f9	01		 DB	 1
  006fa	08		 DB	 8
  006fb	08		 DB	 8
  006fc	08		 DB	 8
  006fd	08		 DB	 8
  006fe	02		 DB	 2
  006ff	08		 DB	 8
  00700	08		 DB	 8
  00701	08		 DB	 8
  00702	08		 DB	 8
  00703	03		 DB	 3
  00704	08		 DB	 8
  00705	08		 DB	 8
  00706	08		 DB	 8
  00707	08		 DB	 8
  00708	04		 DB	 4
  00709	08		 DB	 8
  0070a	08		 DB	 8
  0070b	08		 DB	 8
  0070c	08		 DB	 8
  0070d	05		 DB	 5
  0070e	08		 DB	 8
  0070f	08		 DB	 8
  00710	08		 DB	 8
  00711	08		 DB	 8
  00712	06		 DB	 6
  00713	08		 DB	 8
  00714	08		 DB	 8
  00715	08		 DB	 8
  00716	08		 DB	 8
  00717	07		 DB	 7
$LN73@CreateTest:
  00718	00 00 00 00	 DD	 $LN14@CreateTest
  0071c	00 00 00 00	 DD	 $LN13@CreateTest
  00720	00 00 00 00	 DD	 $LN12@CreateTest
  00724	00 00 00 00	 DD	 $LN11@CreateTest
  00728	00 00 00 00	 DD	 $LN10@CreateTest
  0072c	00 00 00 00	 DD	 $LN9@CreateTest
  00730	00 00 00 00	 DD	 $LN8@CreateTest
  00734	00 00 00 00	 DD	 $LN7@CreateTest
  00738	00 00 00 00	 DD	 $LN15@CreateTest
$LN71@CreateTest:
  0073c	00		 DB	 0
  0073d	08		 DB	 8
  0073e	08		 DB	 8
  0073f	08		 DB	 8
  00740	08		 DB	 8
  00741	01		 DB	 1
  00742	08		 DB	 8
  00743	08		 DB	 8
  00744	08		 DB	 8
  00745	08		 DB	 8
  00746	02		 DB	 2
  00747	08		 DB	 8
  00748	08		 DB	 8
  00749	08		 DB	 8
  0074a	08		 DB	 8
  0074b	03		 DB	 3
  0074c	08		 DB	 8
  0074d	08		 DB	 8
  0074e	08		 DB	 8
  0074f	08		 DB	 8
  00750	04		 DB	 4
  00751	08		 DB	 8
  00752	08		 DB	 8
  00753	08		 DB	 8
  00754	08		 DB	 8
  00755	05		 DB	 5
  00756	08		 DB	 8
  00757	08		 DB	 8
  00758	08		 DB	 8
  00759	08		 DB	 8
  0075a	06		 DB	 6
  0075b	08		 DB	 8
  0075c	08		 DB	 8
  0075d	08		 DB	 8
  0075e	08		 DB	 8
  0075f	07		 DB	 7
?CreateTestDisplayPage@CVTDecoder@@QAEXPAU_VTPage@@@Z ENDP ; CVTDecoder::CreateTestDisplayPage
_TEXT	ENDS
PUBLIC	?SearchPageProc@CVTDecoder@@CAEPAU_VTPage@@GPAGGEEPAX@Z ; CVTDecoder::SearchPageProc
; Function compile flags: /Odtp
;	COMDAT ?SearchPageProc@CVTDecoder@@CAEPAU_VTPage@@GPAGGEEPAX@Z
_TEXT	SEGMENT
_j$140470 = -20						; size = 4
_nLength$140469 = -14					; size = 1
_nRow$ = -13						; size = 1
_lpSearchString$ = -12					; size = 4
_nCol$ = -5						; size = 1
_pIndex$ = -4						; size = 4
___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
?SearchPageProc@CVTDecoder@@CAEPAU_VTPage@@GPAGGEEPAX@Z PROC ; CVTDecoder::SearchPageProc, COMDAT

; 1470 : {

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

; 1471 :     LPTSTR lpSearchString    = (LPTSTR)((LPVOID*)lpParam)[0];

  00007	8b 45 20	 mov	 eax, DWORD PTR _lpParam$[ebp]
  0000a	8b 08		 mov	 ecx, DWORD PTR [eax]
  0000c	89 4d f4	 mov	 DWORD PTR _lpSearchString$[ebp], ecx

; 1472 :     LPINT pIndex            = (LPINT)&((LPVOID*)lpParam)[1];

  0000f	8b 55 20	 mov	 edx, DWORD PTR _lpParam$[ebp]
  00012	83 c2 04	 add	 edx, 4
  00015	89 55 fc	 mov	 DWORD PTR _pIndex$[ebp], edx

; 1473 : 
; 1474 :     BYTE nRow               = LOBYTE(wPoint);

  00018	0f b7 45 0c	 movzx	 eax, WORD PTR _wPoint$[ebp]
  0001c	25 ff 00 00 00	 and	 eax, 255		; 000000ffH
  00021	88 45 f3	 mov	 BYTE PTR _nRow$[ebp], al

; 1475 :     BYTE nCol               = HIBYTE(wPoint);

  00024	0f b7 4d 0c	 movzx	 ecx, WORD PTR _wPoint$[ebp]
  00028	c1 e9 08	 shr	 ecx, 8
  0002b	81 e1 ff 00 00
	00		 and	 ecx, 255		; 000000ffH
  00031	88 4d fb	 mov	 BYTE PTR _nCol$[ebp], cl

; 1476 : 
; 1477 :     // Don't search the header or row 24
; 1478 :     if (nRow == 0 || nRow == 24)

  00034	0f b6 55 f3	 movzx	 edx, BYTE PTR _nRow$[ebp]
  00038	85 d2		 test	 edx, edx
  0003a	74 09		 je	 SHORT $LN17@SearchPage
  0003c	0f b6 45 f3	 movzx	 eax, BYTE PTR _nRow$[ebp]
  00040	83 f8 18	 cmp	 eax, 24			; 00000018H
  00043	75 07		 jne	 SHORT $LN18@SearchPage
$LN17@SearchPage:

; 1479 :     {
; 1480 :         return PARSE_CONTINUE;

  00045	32 c0		 xor	 al, al
  00047	e9 c1 01 00 00	 jmp	 $LN19@SearchPage
$LN18@SearchPage:

; 1481 :     }
; 1482 : 
; 1483 :     if (nCol == 0)

  0004c	0f b6 4d fb	 movzx	 ecx, BYTE PTR _nCol$[ebp]
  00050	85 c9		 test	 ecx, ecx
  00052	75 09		 jne	 SHORT $LN16@SearchPage

; 1484 :     {
; 1485 :         *pIndex = 0;

  00054	8b 55 fc	 mov	 edx, DWORD PTR _pIndex$[ebp]
  00057	c7 02 00 00 00
	00		 mov	 DWORD PTR [edx], 0
$LN16@SearchPage:

; 1486 :     }
; 1487 : 
; 1488 :     if ((uMode & VTMODE_GRAPHICS) != 0 && (uChar & 0x20))

  0005d	0f b6 45 1c	 movzx	 eax, BYTE PTR _uMode$[ebp]
  00061	83 e0 01	 and	 eax, 1
  00064	74 0d		 je	 SHORT $LN15@SearchPage
  00066	0f b6 4d 18	 movzx	 ecx, BYTE PTR _uChar$[ebp]
  0006a	83 e1 20	 and	 ecx, 32			; 00000020H
  0006d	74 04		 je	 SHORT $LN15@SearchPage

; 1489 :     {
; 1490 :         uChar = 0x00;

  0006f	c6 45 18 00	 mov	 BYTE PTR _uChar$[ebp], 0
$LN15@SearchPage:

; 1491 :     }
; 1492 : 
; 1493 :     if (toupper(uChar) == toupper(lpSearchString[*pIndex]))

  00073	0f b6 55 18	 movzx	 edx, BYTE PTR _uChar$[ebp]
  00077	52		 push	 edx
  00078	e8 00 00 00 00	 call	 _toupper
  0007d	83 c4 04	 add	 esp, 4
  00080	8b f0		 mov	 esi, eax
  00082	8b 45 fc	 mov	 eax, DWORD PTR _pIndex$[ebp]
  00085	8b 08		 mov	 ecx, DWORD PTR [eax]
  00087	8b 55 f4	 mov	 edx, DWORD PTR _lpSearchString$[ebp]
  0008a	0f b7 04 4a	 movzx	 eax, WORD PTR [edx+ecx*2]
  0008e	50		 push	 eax
  0008f	e8 00 00 00 00	 call	 _toupper
  00094	83 c4 04	 add	 esp, 4
  00097	3b f0		 cmp	 esi, eax
  00099	75 29		 jne	 SHORT $LN14@SearchPage

; 1494 :     {
; 1495 :         // Check if the last character was matched
; 1496 :         if (lpSearchString[++*pIndex] == '\0')

  0009b	8b 4d fc	 mov	 ecx, DWORD PTR _pIndex$[ebp]
  0009e	8b 11		 mov	 edx, DWORD PTR [ecx]
  000a0	83 c2 01	 add	 edx, 1
  000a3	8b 45 fc	 mov	 eax, DWORD PTR _pIndex$[ebp]
  000a6	89 10		 mov	 DWORD PTR [eax], edx
  000a8	8b 4d fc	 mov	 ecx, DWORD PTR _pIndex$[ebp]
  000ab	8b 11		 mov	 edx, DWORD PTR [ecx]
  000ad	8b 45 f4	 mov	 eax, DWORD PTR _lpSearchString$[ebp]
  000b0	0f b7 0c 50	 movzx	 ecx, WORD PTR [eax+edx*2]
  000b4	85 c9		 test	 ecx, ecx
  000b6	75 07		 jne	 SHORT $LN13@SearchPage

; 1497 :         {
; 1498 :             return PARSE_STOPPAGE;

  000b8	b0 02		 mov	 al, 2
  000ba	e9 4e 01 00 00	 jmp	 $LN19@SearchPage
$LN13@SearchPage:

; 1499 :         }
; 1500 :     }
; 1501 :     else

  000bf	e9 47 01 00 00	 jmp	 $LN12@SearchPage
$LN14@SearchPage:

; 1502 :     {
; 1503 :         BYTE nLength = _tcslen(&lpSearchString[*pIndex]);

  000c4	8b 55 fc	 mov	 edx, DWORD PTR _pIndex$[ebp]
  000c7	8b 02		 mov	 eax, DWORD PTR [edx]
  000c9	8b 4d f4	 mov	 ecx, DWORD PTR _lpSearchString$[ebp]
  000cc	8d 14 41	 lea	 edx, DWORD PTR [ecx+eax*2]
  000cf	52		 push	 edx
  000d0	e8 00 00 00 00	 call	 _wcslen
  000d5	83 c4 04	 add	 esp, 4
  000d8	88 45 f2	 mov	 BYTE PTR _nLength$140469[ebp], al

; 1504 : 
; 1505 :         // If the tstring has repetitive substrings, it is
; 1506 :         // necessary check if the shifting the starting point
; 1507 :         // to the start of the substrings will find a match.
; 1508 :         int j;
; 1509 :         for (j = 1; j < *pIndex; j++)

  000db	c7 45 ec 01 00
	00 00		 mov	 DWORD PTR _j$140470[ebp], 1
  000e2	eb 09		 jmp	 SHORT $LN11@SearchPage
$LN10@SearchPage:
  000e4	8b 45 ec	 mov	 eax, DWORD PTR _j$140470[ebp]
  000e7	83 c0 01	 add	 eax, 1
  000ea	89 45 ec	 mov	 DWORD PTR _j$140470[ebp], eax
$LN11@SearchPage:
  000ed	8b 4d fc	 mov	 ecx, DWORD PTR _pIndex$[ebp]
  000f0	8b 55 ec	 mov	 edx, DWORD PTR _j$140470[ebp]
  000f3	3b 11		 cmp	 edx, DWORD PTR [ecx]
  000f5	0f 8d a8 00 00
	00		 jge	 $LN9@SearchPage

; 1510 :         {
; 1511 :             if ((nLength + j) > (40 - nCol))

  000fb	0f b6 45 f2	 movzx	 eax, BYTE PTR _nLength$140469[ebp]
  000ff	03 45 ec	 add	 eax, DWORD PTR _j$140470[ebp]
  00102	0f b6 4d fb	 movzx	 ecx, BYTE PTR _nCol$[ebp]
  00106	ba 28 00 00 00	 mov	 edx, 40			; 00000028H
  0010b	2b d1		 sub	 edx, ecx
  0010d	3b c2		 cmp	 eax, edx
  0010f	7e 07		 jle	 SHORT $LN8@SearchPage

; 1512 :             {
; 1513 :                 // These is not enough chars left in the
; 1514 :                 // buffer to complete the match
; 1515 :                 return PARSE_STOPLINE;

  00111	b0 01		 mov	 al, 1
  00113	e9 f5 00 00 00	 jmp	 $LN19@SearchPage
$LN8@SearchPage:

; 1516 :             }
; 1517 : 
; 1518 :             if (_tcsnicmp(lpSearchString, &lpSearchString[j], *pIndex - j) == 0)

  00118	8b 45 fc	 mov	 eax, DWORD PTR _pIndex$[ebp]
  0011b	8b 08		 mov	 ecx, DWORD PTR [eax]
  0011d	2b 4d ec	 sub	 ecx, DWORD PTR _j$140470[ebp]
  00120	51		 push	 ecx
  00121	8b 55 ec	 mov	 edx, DWORD PTR _j$140470[ebp]
  00124	8b 45 f4	 mov	 eax, DWORD PTR _lpSearchString$[ebp]
  00127	8d 0c 50	 lea	 ecx, DWORD PTR [eax+edx*2]
  0012a	51		 push	 ecx
  0012b	8b 55 f4	 mov	 edx, DWORD PTR _lpSearchString$[ebp]
  0012e	52		 push	 edx
  0012f	e8 00 00 00 00	 call	 __wcsnicmp
  00134	83 c4 0c	 add	 esp, 12			; 0000000cH
  00137	85 c0		 test	 eax, eax
  00139	75 63		 jne	 SHORT $LN7@SearchPage

; 1519 :             {
; 1520 :                 // We found a possible substring, try to match
; 1521 :                 // the failed character again.
; 1522 :                 if (_totupper(uChar) == _totupper(lpSearchString[*pIndex - j]))

  0013b	66 0f b6 45 18	 movzx	 ax, BYTE PTR _uChar$[ebp]
  00140	0f b7 c8	 movzx	 ecx, ax
  00143	51		 push	 ecx
  00144	e8 00 00 00 00	 call	 _towupper
  00149	83 c4 04	 add	 esp, 4
  0014c	0f b7 f0	 movzx	 esi, ax
  0014f	8b 55 fc	 mov	 edx, DWORD PTR _pIndex$[ebp]
  00152	8b 02		 mov	 eax, DWORD PTR [edx]
  00154	2b 45 ec	 sub	 eax, DWORD PTR _j$140470[ebp]
  00157	8b 4d f4	 mov	 ecx, DWORD PTR _lpSearchString$[ebp]
  0015a	0f b7 14 41	 movzx	 edx, WORD PTR [ecx+eax*2]
  0015e	52		 push	 edx
  0015f	e8 00 00 00 00	 call	 _towupper
  00164	83 c4 04	 add	 esp, 4
  00167	0f b7 c0	 movzx	 eax, ax
  0016a	3b f0		 cmp	 esi, eax
  0016c	75 30		 jne	 SHORT $LN7@SearchPage

; 1523 :                 {
; 1524 :                     *pIndex -= j;

  0016e	8b 4d fc	 mov	 ecx, DWORD PTR _pIndex$[ebp]
  00171	8b 11		 mov	 edx, DWORD PTR [ecx]
  00173	2b 55 ec	 sub	 edx, DWORD PTR _j$140470[ebp]
  00176	8b 45 fc	 mov	 eax, DWORD PTR _pIndex$[ebp]
  00179	89 10		 mov	 DWORD PTR [eax], edx

; 1525 :                     if (lpSearchString[++*pIndex] == '\0')

  0017b	8b 4d fc	 mov	 ecx, DWORD PTR _pIndex$[ebp]
  0017e	8b 11		 mov	 edx, DWORD PTR [ecx]
  00180	83 c2 01	 add	 edx, 1
  00183	8b 45 fc	 mov	 eax, DWORD PTR _pIndex$[ebp]
  00186	89 10		 mov	 DWORD PTR [eax], edx
  00188	8b 4d fc	 mov	 ecx, DWORD PTR _pIndex$[ebp]
  0018b	8b 11		 mov	 edx, DWORD PTR [ecx]
  0018d	8b 45 f4	 mov	 eax, DWORD PTR _lpSearchString$[ebp]
  00190	0f b7 0c 50	 movzx	 ecx, WORD PTR [eax+edx*2]
  00194	85 c9		 test	 ecx, ecx
  00196	75 04		 jne	 SHORT $LN5@SearchPage

; 1526 :                     {
; 1527 :                         return PARSE_STOPPAGE;

  00198	b0 02		 mov	 al, 2
  0019a	eb 71		 jmp	 SHORT $LN19@SearchPage
$LN5@SearchPage:

; 1528 :                     }
; 1529 :                     break;

  0019c	eb 05		 jmp	 SHORT $LN9@SearchPage
$LN7@SearchPage:

; 1530 :                 }
; 1531 :             }
; 1532 :         }

  0019e	e9 41 ff ff ff	 jmp	 $LN10@SearchPage
$LN9@SearchPage:

; 1533 : 
; 1534 :         // No luck finding a valid substring.  Start
; 1535 :         // the matching from the first char again.
; 1536 :         if (j >= *pIndex)

  001a3	8b 55 fc	 mov	 edx, DWORD PTR _pIndex$[ebp]
  001a6	8b 45 ec	 mov	 eax, DWORD PTR _j$140470[ebp]
  001a9	3b 02		 cmp	 eax, DWORD PTR [edx]
  001ab	7c 5e		 jl	 SHORT $LN12@SearchPage

; 1537 :         {
; 1538 :             if ((nLength + *pIndex) > (40 - nCol))

  001ad	0f b6 4d f2	 movzx	 ecx, BYTE PTR _nLength$140469[ebp]
  001b1	8b 55 fc	 mov	 edx, DWORD PTR _pIndex$[ebp]
  001b4	03 0a		 add	 ecx, DWORD PTR [edx]
  001b6	0f b6 45 fb	 movzx	 eax, BYTE PTR _nCol$[ebp]
  001ba	ba 28 00 00 00	 mov	 edx, 40			; 00000028H
  001bf	2b d0		 sub	 edx, eax
  001c1	3b ca		 cmp	 ecx, edx
  001c3	7e 04		 jle	 SHORT $LN3@SearchPage

; 1539 :             {
; 1540 :                 // These is not enough chars left in the
; 1541 :                 // buffer to complete the match
; 1542 :                 return PARSE_STOPLINE;

  001c5	b0 01		 mov	 al, 1
  001c7	eb 44		 jmp	 SHORT $LN19@SearchPage
$LN3@SearchPage:

; 1543 :             }
; 1544 : 
; 1545 :             if (*pIndex != 0)

  001c9	8b 45 fc	 mov	 eax, DWORD PTR _pIndex$[ebp]
  001cc	83 38 00	 cmp	 DWORD PTR [eax], 0
  001cf	74 3a		 je	 SHORT $LN12@SearchPage

; 1546 :             {
; 1547 :                 // Start again
; 1548 :                 *pIndex = 0;

  001d1	8b 4d fc	 mov	 ecx, DWORD PTR _pIndex$[ebp]
  001d4	c7 01 00 00 00
	00		 mov	 DWORD PTR [ecx], 0

; 1549 : 
; 1550 :                 // We have restarted the matching, try to match
; 1551 :                 // the failed character one last time.
; 1552 :                 if (toupper(uChar) == toupper(lpSearchString[*pIndex]))

  001da	0f b6 55 18	 movzx	 edx, BYTE PTR _uChar$[ebp]
  001de	52		 push	 edx
  001df	e8 00 00 00 00	 call	 _toupper
  001e4	83 c4 04	 add	 esp, 4
  001e7	8b f0		 mov	 esi, eax
  001e9	8b 45 fc	 mov	 eax, DWORD PTR _pIndex$[ebp]
  001ec	8b 08		 mov	 ecx, DWORD PTR [eax]
  001ee	8b 55 f4	 mov	 edx, DWORD PTR _lpSearchString$[ebp]
  001f1	0f b7 04 4a	 movzx	 eax, WORD PTR [edx+ecx*2]
  001f5	50		 push	 eax
  001f6	e8 00 00 00 00	 call	 _toupper
  001fb	83 c4 04	 add	 esp, 4
  001fe	3b f0		 cmp	 esi, eax
  00200	75 09		 jne	 SHORT $LN12@SearchPage

; 1553 :                 {
; 1554 :                     *pIndex++;

  00202	8b 4d fc	 mov	 ecx, DWORD PTR _pIndex$[ebp]
  00205	83 c1 04	 add	 ecx, 4
  00208	89 4d fc	 mov	 DWORD PTR _pIndex$[ebp], ecx
$LN12@SearchPage:

; 1555 :                 }
; 1556 :             }
; 1557 :         }
; 1558 :     }
; 1559 :     return PARSE_CONTINUE;

  0020b	32 c0		 xor	 al, al
$LN19@SearchPage:

; 1560 : }

  0020d	5e		 pop	 esi
  0020e	8b e5		 mov	 esp, ebp
  00210	5d		 pop	 ebp
  00211	c3		 ret	 0
?SearchPageProc@CVTDecoder@@CAEPAU_VTPage@@GPAGGEEPAX@Z ENDP ; CVTDecoder::SearchPageProc
_TEXT	ENDS
PUBLIC	?GetNonVisiblePageNumbers@CVTDecoder@@QAEGPAGG@Z ; CVTDecoder::GetNonVisiblePageNumbers
; Function compile flags: /Odtp
;	COMDAT ?GetNonVisiblePageNumbers@CVTDecoder@@QAEGPAGG@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
_i$140277 = -12						; size = 2
_pPage$ = -8						; size = 4
_nPagesCount$ = -4					; size = 2
_lpNumberList$ = 8					; size = 4
_nListSize$ = 12					; size = 2
?GetNonVisiblePageNumbers@CVTDecoder@@QAEGPAGG@Z PROC	; CVTDecoder::GetNonVisiblePageNumbers, COMDAT
; _this$ = ecx

; 1097 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 10	 sub	 esp, 16			; 00000010H
  00006	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx

; 1098 :     WORD nPagesCount = 0;

  00009	33 c0		 xor	 eax, eax
  0000b	66 89 45 fc	 mov	 WORD PTR _nPagesCount$[ebp], ax

; 1099 :     TVTPage* pPage;
; 1100 : 
; 1101 :     _ASSERTE(nListSize != 0);
; 1102 : 
; 1103 :     EnterCriticalSection(&m_PageStoreMutex);

  0000f	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00012	81 c1 94 2f 00
	00		 add	 ecx, 12180		; 00002f94H
  00018	51		 push	 ecx
  00019	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1104 : 
; 1105 :     for (pPage = FindReceivedPage(m_NonVisiblePageList);

  0001f	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00022	8b 82 70 22 00
	00		 mov	 eax, DWORD PTR [edx+8816]
  00028	50		 push	 eax
  00029	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0002c	e8 00 00 00 00	 call	 ?FindReceivedPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@@Z ; CVTDecoder::FindReceivedPage
  00031	89 45 f8	 mov	 DWORD PTR _pPage$[ebp], eax

; 1106 :         pPage != NULL && nPagesCount < nListSize;

  00034	eb 15		 jmp	 SHORT $LN8@GetNonVisi
$LN7@GetNonVisi:

; 1107 :         pPage = FindReceivedPage(pPage->pNextPage))

  00036	8b 4d f8	 mov	 ecx, DWORD PTR _pPage$[ebp]
  00039	8b 91 54 04 00
	00		 mov	 edx, DWORD PTR [ecx+1108]
  0003f	52		 push	 edx
  00040	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00043	e8 00 00 00 00	 call	 ?FindReceivedPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@@Z ; CVTDecoder::FindReceivedPage
  00048	89 45 f8	 mov	 DWORD PTR _pPage$[ebp], eax
$LN8@GetNonVisi:
  0004b	83 7d f8 00	 cmp	 DWORD PTR _pPage$[ebp], 0
  0004f	0f 84 80 00 00
	00		 je	 $LN6@GetNonVisi
  00055	0f b7 45 fc	 movzx	 eax, WORD PTR _nPagesCount$[ebp]
  00059	0f b7 4d 0c	 movzx	 ecx, WORD PTR _nListSize$[ebp]
  0005d	3b c1		 cmp	 eax, ecx
  0005f	7d 74		 jge	 SHORT $LN6@GetNonVisi

; 1108 :     {
; 1109 :         WORD i;
; 1110 :         for (i = 0; i < nPagesCount; i++)

  00061	33 d2		 xor	 edx, edx
  00063	66 89 55 f4	 mov	 WORD PTR _i$140277[ebp], dx
  00067	eb 0c		 jmp	 SHORT $LN5@GetNonVisi
$LN4@GetNonVisi:
  00069	66 8b 45 f4	 mov	 ax, WORD PTR _i$140277[ebp]
  0006d	66 83 c0 01	 add	 ax, 1
  00071	66 89 45 f4	 mov	 WORD PTR _i$140277[ebp], ax
$LN5@GetNonVisi:
  00075	0f b7 4d f4	 movzx	 ecx, WORD PTR _i$140277[ebp]
  00079	0f b7 55 fc	 movzx	 edx, WORD PTR _nPagesCount$[ebp]
  0007d	3b ca		 cmp	 ecx, edx
  0007f	7d 21		 jge	 SHORT $LN3@GetNonVisi

; 1111 :         {
; 1112 :             if (lpNumberList[i] == LOWORD(pPage->dwPageCode))

  00081	0f b7 45 f4	 movzx	 eax, WORD PTR _i$140277[ebp]
  00085	8b 4d 08	 mov	 ecx, DWORD PTR _lpNumberList$[ebp]
  00088	0f b7 14 41	 movzx	 edx, WORD PTR [ecx+eax*2]
  0008c	8b 45 f8	 mov	 eax, DWORD PTR _pPage$[ebp]
  0008f	8b 08		 mov	 ecx, DWORD PTR [eax]
  00091	81 e1 ff ff 00
	00		 and	 ecx, 65535		; 0000ffffH
  00097	0f b7 c1	 movzx	 eax, cx
  0009a	3b d0		 cmp	 edx, eax
  0009c	75 02		 jne	 SHORT $LN2@GetNonVisi

; 1113 :             {
; 1114 :                 break;

  0009e	eb 02		 jmp	 SHORT $LN3@GetNonVisi
$LN2@GetNonVisi:

; 1115 :             }
; 1116 :         }

  000a0	eb c7		 jmp	 SHORT $LN4@GetNonVisi
$LN3@GetNonVisi:

; 1117 : 
; 1118 :         if (i == nPagesCount)

  000a2	0f b7 4d f4	 movzx	 ecx, WORD PTR _i$140277[ebp]
  000a6	0f b7 55 fc	 movzx	 edx, WORD PTR _nPagesCount$[ebp]
  000aa	3b ca		 cmp	 ecx, edx
  000ac	75 22		 jne	 SHORT $LN1@GetNonVisi

; 1119 :         {
; 1120 :             lpNumberList[nPagesCount] = LOWORD(pPage->dwPageCode);

  000ae	8b 45 f8	 mov	 eax, DWORD PTR _pPage$[ebp]
  000b1	8b 08		 mov	 ecx, DWORD PTR [eax]
  000b3	81 e1 ff ff 00
	00		 and	 ecx, 65535		; 0000ffffH
  000b9	0f b7 55 fc	 movzx	 edx, WORD PTR _nPagesCount$[ebp]
  000bd	8b 45 08	 mov	 eax, DWORD PTR _lpNumberList$[ebp]
  000c0	66 89 0c 50	 mov	 WORD PTR [eax+edx*2], cx

; 1121 :             nPagesCount++;

  000c4	66 8b 4d fc	 mov	 cx, WORD PTR _nPagesCount$[ebp]
  000c8	66 83 c1 01	 add	 cx, 1
  000cc	66 89 4d fc	 mov	 WORD PTR _nPagesCount$[ebp], cx
$LN1@GetNonVisi:

; 1122 :         }
; 1123 :     }

  000d0	e9 61 ff ff ff	 jmp	 $LN7@GetNonVisi
$LN6@GetNonVisi:

; 1124 : 
; 1125 :     LeaveCriticalSection(&m_PageStoreMutex);

  000d5	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  000d8	81 c2 94 2f 00
	00		 add	 edx, 12180		; 00002f94H
  000de	52		 push	 edx
  000df	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1126 : 
; 1127 :     return nPagesCount;

  000e5	66 8b 45 fc	 mov	 ax, WORD PTR _nPagesCount$[ebp]

; 1128 : }

  000e9	8b e5		 mov	 esp, ebp
  000eb	5d		 pop	 ebp
  000ec	c2 08 00	 ret	 8
?GetNonVisiblePageNumbers@CVTDecoder@@QAEGPAGG@Z ENDP	; CVTDecoder::GetNonVisiblePageNumbers
_TEXT	ENDS
PUBLIC	?GetVisiblePageNumbers@CVTDecoder@@QAEGPAGG@Z	; CVTDecoder::GetVisiblePageNumbers
; Function compile flags: /Odtp
;	COMDAT ?GetVisiblePageNumbers@CVTDecoder@@QAEGPAGG@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
_i$140259 = -12						; size = 2
_pPage$ = -8						; size = 4
_nPagesCount$ = -4					; size = 2
_lpNumberList$ = 8					; size = 4
_nListSize$ = 12					; size = 2
?GetVisiblePageNumbers@CVTDecoder@@QAEGPAGG@Z PROC	; CVTDecoder::GetVisiblePageNumbers, COMDAT
; _this$ = ecx

; 1074 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 10	 sub	 esp, 16			; 00000010H
  00006	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx

; 1075 :     WORD nPagesCount = 0;

  00009	33 c0		 xor	 eax, eax
  0000b	66 89 45 fc	 mov	 WORD PTR _nPagesCount$[ebp], ax

; 1076 :     TVTPage* pPage;
; 1077 : 
; 1078 :     EnterCriticalSection(&m_PageStoreMutex);

  0000f	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00012	81 c1 94 2f 00
	00		 add	 ecx, 12180		; 00002f94H
  00018	51		 push	 ecx
  00019	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1079 : 
; 1080 :     for (WORD i = 0; i < 800 && nPagesCount < nListSize; i++)

  0001f	33 d2		 xor	 edx, edx
  00021	66 89 55 f4	 mov	 WORD PTR _i$140259[ebp], dx
  00025	eb 0c		 jmp	 SHORT $LN4@GetVisible
$LN3@GetVisible:
  00027	66 8b 45 f4	 mov	 ax, WORD PTR _i$140259[ebp]
  0002b	66 83 c0 01	 add	 ax, 1
  0002f	66 89 45 f4	 mov	 WORD PTR _i$140259[ebp], ax
$LN4@GetVisible:
  00033	0f b7 4d f4	 movzx	 ecx, WORD PTR _i$140259[ebp]
  00037	81 f9 20 03 00
	00		 cmp	 ecx, 800		; 00000320H
  0003d	7d 50		 jge	 SHORT $LN2@GetVisible
  0003f	0f b7 55 fc	 movzx	 edx, WORD PTR _nPagesCount$[ebp]
  00043	0f b7 45 0c	 movzx	 eax, WORD PTR _nListSize$[ebp]
  00047	3b d0		 cmp	 edx, eax
  00049	7d 44		 jge	 SHORT $LN2@GetVisible

; 1081 :     {
; 1082 :         pPage = FindReceivedPage(m_VisiblePageList[i]);

  0004b	0f b7 4d f4	 movzx	 ecx, WORD PTR _i$140259[ebp]
  0004f	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00052	8b 84 8a 74 22
	00 00		 mov	 eax, DWORD PTR [edx+ecx*4+8820]
  00059	50		 push	 eax
  0005a	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0005d	e8 00 00 00 00	 call	 ?FindReceivedPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@@Z ; CVTDecoder::FindReceivedPage
  00062	89 45 f8	 mov	 DWORD PTR _pPage$[ebp], eax

; 1083 :         if (pPage != NULL)

  00065	83 7d f8 00	 cmp	 DWORD PTR _pPage$[ebp], 0
  00069	74 22		 je	 SHORT $LN1@GetVisible

; 1084 :         {
; 1085 :             lpNumberList[nPagesCount] = LOWORD(pPage->dwPageCode);

  0006b	8b 4d f8	 mov	 ecx, DWORD PTR _pPage$[ebp]
  0006e	8b 11		 mov	 edx, DWORD PTR [ecx]
  00070	81 e2 ff ff 00
	00		 and	 edx, 65535		; 0000ffffH
  00076	0f b7 45 fc	 movzx	 eax, WORD PTR _nPagesCount$[ebp]
  0007a	8b 4d 08	 mov	 ecx, DWORD PTR _lpNumberList$[ebp]
  0007d	66 89 14 41	 mov	 WORD PTR [ecx+eax*2], dx

; 1086 :             nPagesCount++;

  00081	66 8b 55 fc	 mov	 dx, WORD PTR _nPagesCount$[ebp]
  00085	66 83 c2 01	 add	 dx, 1
  00089	66 89 55 fc	 mov	 WORD PTR _nPagesCount$[ebp], dx
$LN1@GetVisible:

; 1087 :         }
; 1088 :     }

  0008d	eb 98		 jmp	 SHORT $LN3@GetVisible
$LN2@GetVisible:

; 1089 : 
; 1090 :     LeaveCriticalSection(&m_PageStoreMutex);

  0008f	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00092	05 94 2f 00 00	 add	 eax, 12180		; 00002f94H
  00097	50		 push	 eax
  00098	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1091 : 
; 1092 :     return nPagesCount;

  0009e	66 8b 45 fc	 mov	 ax, WORD PTR _nPagesCount$[ebp]

; 1093 : }

  000a2	8b e5		 mov	 esp, ebp
  000a4	5d		 pop	 ebp
  000a5	c2 08 00	 ret	 8
?GetVisiblePageNumbers@CVTDecoder@@QAEGPAGG@Z ENDP	; CVTDecoder::GetVisiblePageNumbers
_TEXT	ENDS
PUBLIC	?GetCharacterSubsetCode@CVTDecoder@@QAEEXZ	; CVTDecoder::GetCharacterSubsetCode
; Function compile flags: /Odtp
;	COMDAT ?GetCharacterSubsetCode@CVTDecoder@@QAEEXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetCharacterSubsetCode@CVTDecoder@@QAEEXZ PROC		; CVTDecoder::GetCharacterSubsetCode, COMDAT
; _this$ = ecx

; 1068 : {

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

; 1069 :     return m_CharacterSubset;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8a 80 48 22 00
	00		 mov	 al, BYTE PTR [eax+8776]

; 1070 : }

  00010	8b e5		 mov	 esp, ebp
  00012	5d		 pop	 ebp
  00013	c3		 ret	 0
?GetCharacterSubsetCode@CVTDecoder@@QAEEXZ ENDP		; CVTDecoder::GetCharacterSubsetCode
_TEXT	ENDS
PUBLIC	?GetReceivedPagesCount@CVTDecoder@@QAEKXZ	; CVTDecoder::GetReceivedPagesCount
; Function compile flags: /Odtp
;	COMDAT ?GetReceivedPagesCount@CVTDecoder@@QAEKXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetReceivedPagesCount@CVTDecoder@@QAEKXZ PROC		; CVTDecoder::GetReceivedPagesCount, COMDAT
; _this$ = ecx

; 1062 : {

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

; 1063 :     return m_ReceivedPages;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 80 6c 22 00
	00		 mov	 eax, DWORD PTR [eax+8812]

; 1064 : }

  00010	8b e5		 mov	 esp, ebp
  00012	5d		 pop	 ebp
  00013	c3		 ret	 0
?GetReceivedPagesCount@CVTDecoder@@QAEKXZ ENDP		; CVTDecoder::GetReceivedPagesCount
_TEXT	ENDS
PUBLIC	?GetProcessingPageCode@CVTDecoder@@QAEKXZ	; CVTDecoder::GetProcessingPageCode
; Function compile flags: /Odtp
;	COMDAT ?GetProcessingPageCode@CVTDecoder@@QAEKXZ
_TEXT	SEGMENT
_this$ = -8						; size = 4
_dwPageCode$ = -4					; size = 4
?GetProcessingPageCode@CVTDecoder@@QAEKXZ PROC		; CVTDecoder::GetProcessingPageCode, COMDAT
; _this$ = ecx

; 1047 : {

  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

; 1048 :     DWORD dwPageCode = 0UL;

  00009	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _dwPageCode$[ebp], 0

; 1049 : 
; 1050 :     EnterCriticalSection(&m_MagazineStateMutex);

  00010	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00013	05 7c 2f 00 00	 add	 eax, 12156		; 00002f7cH
  00018	50		 push	 eax
  00019	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1051 :     if (m_MagazineState[m_LastMagazine].bReceiving != FALSE)

  0001f	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00022	0f b6 11	 movzx	 edx, BYTE PTR [ecx]
  00025	69 d2 48 04 00
	00		 imul	 edx, 1096		; 00000448H
  0002b	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0002e	83 7c 10 08 00	 cmp	 DWORD PTR [eax+edx+8], 0
  00033	74 16		 je	 SHORT $LN1@GetProcess

; 1052 :     {
; 1053 :         dwPageCode = m_MagazineState[m_LastMagazine].dwPageCode;

  00035	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00038	0f b6 11	 movzx	 edx, BYTE PTR [ecx]
  0003b	69 d2 48 04 00
	00		 imul	 edx, 1096		; 00000448H
  00041	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00044	8b 4c 10 04	 mov	 ecx, DWORD PTR [eax+edx+4]
  00048	89 4d fc	 mov	 DWORD PTR _dwPageCode$[ebp], ecx
$LN1@GetProcess:

; 1054 :     }
; 1055 :     LeaveCriticalSection(&m_MagazineStateMutex);

  0004b	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  0004e	81 c2 7c 2f 00
	00		 add	 edx, 12156		; 00002f7cH
  00054	52		 push	 edx
  00055	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1056 : 
; 1057 :     return dwPageCode;

  0005b	8b 45 fc	 mov	 eax, DWORD PTR _dwPageCode$[ebp]

; 1058 : }

  0005e	8b e5		 mov	 esp, ebp
  00060	5d		 pop	 ebp
  00061	c3		 ret	 0
?GetProcessingPageCode@CVTDecoder@@QAEKXZ ENDP		; CVTDecoder::GetProcessingPageCode
_TEXT	ENDS
PUBLIC	?FreePageStore@CVTDecoder@@IAEXXZ		; CVTDecoder::FreePageStore
; Function compile flags: /Odtp
;	COMDAT ?FreePageStore@CVTDecoder@@IAEXXZ
_TEXT	SEGMENT
_this$ = -12						; size = 4
_i$140234 = -8						; size = 4
_pPage$ = -4						; size = 4
?FreePageStore@CVTDecoder@@IAEXXZ PROC			; CVTDecoder::FreePageStore, COMDAT
; _this$ = ecx

; 1026 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH
  00006	89 4d f4	 mov	 DWORD PTR _this$[ebp], ecx
$LN7@FreePageSt:

; 1027 :     TVTPage* pPage;
; 1028 : 
; 1029 :     while ((pPage = m_NonVisiblePageList) != NULL)

  00009	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	8b 88 70 22 00
	00		 mov	 ecx, DWORD PTR [eax+8816]
  00012	89 4d fc	 mov	 DWORD PTR _pPage$[ebp], ecx
  00015	83 7d fc 00	 cmp	 DWORD PTR _pPage$[ebp], 0
  00019	74 20		 je	 SHORT $LN6@FreePageSt

; 1030 :     {
; 1031 :         m_NonVisiblePageList = pPage->pNextPage;

  0001b	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  0001e	8b 45 fc	 mov	 eax, DWORD PTR _pPage$[ebp]
  00021	8b 88 54 04 00
	00		 mov	 ecx, DWORD PTR [eax+1108]
  00027	89 8a 70 22 00
	00		 mov	 DWORD PTR [edx+8816], ecx

; 1032 :         free(pPage);

  0002d	8b 55 fc	 mov	 edx, DWORD PTR _pPage$[ebp]
  00030	52		 push	 edx
  00031	e8 00 00 00 00	 call	 _free
  00036	83 c4 04	 add	 esp, 4

; 1033 :     }

  00039	eb ce		 jmp	 SHORT $LN7@FreePageSt
$LN6@FreePageSt:

; 1034 : 
; 1035 :     for (int i(0); i < 800; i++)

  0003b	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _i$140234[ebp], 0
  00042	eb 09		 jmp	 SHORT $LN5@FreePageSt
$LN4@FreePageSt:
  00044	8b 45 f8	 mov	 eax, DWORD PTR _i$140234[ebp]
  00047	83 c0 01	 add	 eax, 1
  0004a	89 45 f8	 mov	 DWORD PTR _i$140234[ebp], eax
$LN5@FreePageSt:
  0004d	81 7d f8 20 03
	00 00		 cmp	 DWORD PTR _i$140234[ebp], 800 ; 00000320H
  00054	7d 3c		 jge	 SHORT $LN8@FreePageSt
$LN2@FreePageSt:

; 1036 :     {
; 1037 :         while ((pPage = m_VisiblePageList[i]) != NULL)

  00056	8b 4d f8	 mov	 ecx, DWORD PTR _i$140234[ebp]
  00059	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  0005c	8b 84 8a 74 22
	00 00		 mov	 eax, DWORD PTR [edx+ecx*4+8820]
  00063	89 45 fc	 mov	 DWORD PTR _pPage$[ebp], eax
  00066	83 7d fc 00	 cmp	 DWORD PTR _pPage$[ebp], 0
  0006a	74 24		 je	 SHORT $LN1@FreePageSt

; 1038 :         {
; 1039 :             m_VisiblePageList[i] = pPage->pNextPage;

  0006c	8b 4d f8	 mov	 ecx, DWORD PTR _i$140234[ebp]
  0006f	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  00072	8b 45 fc	 mov	 eax, DWORD PTR _pPage$[ebp]
  00075	8b 80 54 04 00
	00		 mov	 eax, DWORD PTR [eax+1108]
  0007b	89 84 8a 74 22
	00 00		 mov	 DWORD PTR [edx+ecx*4+8820], eax

; 1040 :             free(pPage);

  00082	8b 4d fc	 mov	 ecx, DWORD PTR _pPage$[ebp]
  00085	51		 push	 ecx
  00086	e8 00 00 00 00	 call	 _free
  0008b	83 c4 04	 add	 esp, 4

; 1041 :         }

  0008e	eb c6		 jmp	 SHORT $LN2@FreePageSt
$LN1@FreePageSt:

; 1042 :     }

  00090	eb b2		 jmp	 SHORT $LN4@FreePageSt
$LN8@FreePageSt:

; 1043 : }

  00092	8b e5		 mov	 esp, ebp
  00094	5d		 pop	 ebp
  00095	c3		 ret	 0
?FreePageStore@CVTDecoder@@IAEXXZ ENDP			; CVTDecoder::FreePageStore
_TEXT	ENDS
PUBLIC	?ResetPageStore@CVTDecoder@@IAEXXZ		; CVTDecoder::ResetPageStore
; Function compile flags: /Odtp
;	COMDAT ?ResetPageStore@CVTDecoder@@IAEXXZ
_TEXT	SEGMENT
_this$ = -12						; size = 4
_i$140188 = -8						; size = 4
_pPage$ = -4						; size = 4
?ResetPageStore@CVTDecoder@@IAEXXZ PROC			; CVTDecoder::ResetPageStore, COMDAT
; _this$ = ecx

; 911  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH
  00006	89 4d f4	 mov	 DWORD PTR _this$[ebp], ecx

; 912  :     TVTPage* pPage;
; 913  : 
; 914  :     for (pPage = m_NonVisiblePageList; pPage != NULL; pPage = pPage->pNextPage)

  00009	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	8b 88 70 22 00
	00		 mov	 ecx, DWORD PTR [eax+8816]
  00012	89 4d fc	 mov	 DWORD PTR _pPage$[ebp], ecx
  00015	eb 0c		 jmp	 SHORT $LN9@ResetPageS
$LN8@ResetPageS:
  00017	8b 55 fc	 mov	 edx, DWORD PTR _pPage$[ebp]
  0001a	8b 82 54 04 00
	00		 mov	 eax, DWORD PTR [edx+1108]
  00020	89 45 fc	 mov	 DWORD PTR _pPage$[ebp], eax
$LN9@ResetPageS:
  00023	83 7d fc 00	 cmp	 DWORD PTR _pPage$[ebp], 0
  00027	74 1c		 je	 SHORT $LN7@ResetPageS

; 915  :     {
; 916  :         pPage->bReceived = FALSE;

  00029	8b 4d fc	 mov	 ecx, DWORD PTR _pPage$[ebp]
  0002c	c7 81 4c 04 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+1100], 0

; 917  :         pPage->bBufferReserved = FALSE;

  00036	8b 55 fc	 mov	 edx, DWORD PTR _pPage$[ebp]
  00039	c7 82 48 04 00
	00 00 00 00 00	 mov	 DWORD PTR [edx+1096], 0

; 918  :     }

  00043	eb d2		 jmp	 SHORT $LN8@ResetPageS
$LN7@ResetPageS:

; 919  : 
; 920  :     for (int i(0); i < 800; i++)

  00045	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _i$140188[ebp], 0
  0004c	eb 09		 jmp	 SHORT $LN6@ResetPageS
$LN5@ResetPageS:
  0004e	8b 45 f8	 mov	 eax, DWORD PTR _i$140188[ebp]
  00051	83 c0 01	 add	 eax, 1
  00054	89 45 f8	 mov	 DWORD PTR _i$140188[ebp], eax
$LN6@ResetPageS:
  00057	81 7d f8 20 03
	00 00		 cmp	 DWORD PTR _i$140188[ebp], 800 ; 00000320H
  0005e	7d 42		 jge	 SHORT $LN10@ResetPageS

; 921  :     {
; 922  :         pPage = m_VisiblePageList[i];

  00060	8b 4d f8	 mov	 ecx, DWORD PTR _i$140188[ebp]
  00063	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  00066	8b 84 8a 74 22
	00 00		 mov	 eax, DWORD PTR [edx+ecx*4+8820]
  0006d	89 45 fc	 mov	 DWORD PTR _pPage$[ebp], eax

; 923  :         for ( ; pPage != NULL; pPage = pPage->pNextPage)

  00070	eb 0c		 jmp	 SHORT $LN3@ResetPageS
$LN2@ResetPageS:
  00072	8b 4d fc	 mov	 ecx, DWORD PTR _pPage$[ebp]
  00075	8b 91 54 04 00
	00		 mov	 edx, DWORD PTR [ecx+1108]
  0007b	89 55 fc	 mov	 DWORD PTR _pPage$[ebp], edx
$LN3@ResetPageS:
  0007e	83 7d fc 00	 cmp	 DWORD PTR _pPage$[ebp], 0
  00082	74 1c		 je	 SHORT $LN1@ResetPageS

; 924  :         {
; 925  :             pPage->bReceived = FALSE;

  00084	8b 45 fc	 mov	 eax, DWORD PTR _pPage$[ebp]
  00087	c7 80 4c 04 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+1100], 0

; 926  :             pPage->bBufferReserved = FALSE;

  00091	8b 4d fc	 mov	 ecx, DWORD PTR _pPage$[ebp]
  00094	c7 81 48 04 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+1096], 0

; 927  :         }

  0009e	eb d2		 jmp	 SHORT $LN2@ResetPageS
$LN1@ResetPageS:

; 928  :     }

  000a0	eb ac		 jmp	 SHORT $LN5@ResetPageS
$LN10@ResetPageS:

; 929  : }

  000a2	8b e5		 mov	 esp, ebp
  000a4	5d		 pop	 ebp
  000a5	c3		 ret	 0
?ResetPageStore@CVTDecoder@@IAEXXZ ENDP			; CVTDecoder::ResetPageStore
_TEXT	ENDS
PUBLIC	?InitializePage@CVTDecoder@@IAEXPAU_VTPage@@@Z	; CVTDecoder::InitializePage
; Function compile flags: /Odtp
;	COMDAT ?InitializePage@CVTDecoder@@IAEXPAU_VTPage@@@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_i$140177 = -4						; size = 4
_pPage$ = 8						; size = 4
?InitializePage@CVTDecoder@@IAEXPAU_VTPage@@@Z PROC	; CVTDecoder::InitializePage, COMDAT
; _this$ = ecx

; 889  : {

  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

; 890  :     pPage->dwPageCode   = MAKELONG(0x1FF, 0x3F7F);

  00009	8b 45 08	 mov	 eax, DWORD PTR _pPage$[ebp]
  0000c	c7 00 ff 01 7f
	3f		 mov	 DWORD PTR [eax], 1065288191 ; 3f7f01ffH

; 891  :     pPage->wControlBits = 0x0000;

  00012	33 c9		 xor	 ecx, ecx
  00014	8b 55 08	 mov	 edx, DWORD PTR _pPage$[ebp]
  00017	66 89 4a 04	 mov	 WORD PTR [edx+4], cx

; 892  : 
; 893  :     FillMemory(pPage->LineState, 26,
; 894  :         CACHESTATE_HASDATA | CACHESTATE_HASERROR);

  0001b	6a 1a		 push	 26			; 0000001aH
  0001d	6a 05		 push	 5
  0001f	8b 45 08	 mov	 eax, DWORD PTR _pPage$[ebp]
  00022	05 16 04 00 00	 add	 eax, 1046		; 00000416H
  00027	50		 push	 eax
  00028	e8 00 00 00 00	 call	 _memset
  0002d	83 c4 0c	 add	 esp, 12			; 0000000cH

; 895  : 
; 896  :     for (int i = 0; i < 6; i++)

  00030	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _i$140177[ebp], 0
  00037	eb 09		 jmp	 SHORT $LN3@Initialize
$LN2@Initialize:
  00039	8b 4d fc	 mov	 ecx, DWORD PTR _i$140177[ebp]
  0003c	83 c1 01	 add	 ecx, 1
  0003f	89 4d fc	 mov	 DWORD PTR _i$140177[ebp], ecx
$LN3@Initialize:
  00042	83 7d fc 06	 cmp	 DWORD PTR _i$140177[ebp], 6
  00046	7d 13		 jge	 SHORT $LN1@Initialize

; 897  :     {
; 898  :         pPage->EditorialLink[i] = 0UL;

  00048	8b 55 fc	 mov	 edx, DWORD PTR _i$140177[ebp]
  0004b	8b 45 08	 mov	 eax, DWORD PTR _pPage$[ebp]
  0004e	c7 84 90 30 04
	00 00 00 00 00
	00		 mov	 DWORD PTR [eax+edx*4+1072], 0

; 899  :     }

  00059	eb de		 jmp	 SHORT $LN2@Initialize
$LN1@Initialize:

; 900  : 
; 901  :     // The first eight bytes of the header never changes
; 902  :     FillMemory(&pPage->Frame[0][0], 8, 0x20);

  0005b	6a 08		 push	 8
  0005d	6a 20		 push	 32			; 00000020H
  0005f	8b 4d 08	 mov	 ecx, DWORD PTR _pPage$[ebp]
  00062	83 c1 06	 add	 ecx, 6
  00065	51		 push	 ecx
  00066	e8 00 00 00 00	 call	 _memset
  0006b	83 c4 0c	 add	 esp, 12			; 0000000cH

; 903  : 
; 904  :     pPage->bReceived    = FALSE;

  0006e	8b 55 08	 mov	 edx, DWORD PTR _pPage$[ebp]
  00071	c7 82 4c 04 00
	00 00 00 00 00	 mov	 DWORD PTR [edx+1100], 0

; 905  :     pPage->bShowRow24   = FALSE;

  0007b	8b 45 08	 mov	 eax, DWORD PTR _pPage$[ebp]
  0007e	c7 80 50 04 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+1104], 0

; 906  :     // pNextPage must not be set NULL here
; 907  : }

  00088	8b e5		 mov	 esp, ebp
  0008a	5d		 pop	 ebp
  0008b	c2 04 00	 ret	 4
?InitializePage@CVTDecoder@@IAEXPAU_VTPage@@@Z ENDP	; CVTDecoder::InitializePage
_TEXT	ENDS
PUBLIC	?PageHex2ArrayIndex@CVTDecoder@@IAEGG@Z		; CVTDecoder::PageHex2ArrayIndex
; Function compile flags: /Odtp
;	COMDAT ?PageHex2ArrayIndex@CVTDecoder@@IAEGG@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_wArrayIndex$ = -4					; size = 2
_wPageHex$ = 8						; size = 2
?PageHex2ArrayIndex@CVTDecoder@@IAEGG@Z PROC		; CVTDecoder::PageHex2ArrayIndex, COMDAT
; _this$ = ecx

; 869  : {

  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

; 870  :     if ((wPageHex & 0xFF00) < 0x0100 ||
; 871  :         (wPageHex & 0xFF00) > 0x0800 ||
; 872  :         (wPageHex & 0x00F0) > 0x0090 ||
; 873  :         (wPageHex & 0x000F) > 0x0009)

  00009	0f b7 45 08	 movzx	 eax, WORD PTR _wPageHex$[ebp]
  0000d	25 00 ff 00 00	 and	 eax, 65280		; 0000ff00H
  00012	3d 00 01 00 00	 cmp	 eax, 256		; 00000100H
  00017	7c 30		 jl	 SHORT $LN1@PageHex2Ar
  00019	0f b7 4d 08	 movzx	 ecx, WORD PTR _wPageHex$[ebp]
  0001d	81 e1 00 ff 00
	00		 and	 ecx, 65280		; 0000ff00H
  00023	81 f9 00 08 00
	00		 cmp	 ecx, 2048		; 00000800H
  00029	7f 1e		 jg	 SHORT $LN1@PageHex2Ar
  0002b	0f b7 55 08	 movzx	 edx, WORD PTR _wPageHex$[ebp]
  0002f	81 e2 f0 00 00
	00		 and	 edx, 240		; 000000f0H
  00035	81 fa 90 00 00
	00		 cmp	 edx, 144		; 00000090H
  0003b	7f 0c		 jg	 SHORT $LN1@PageHex2Ar
  0003d	0f b7 45 08	 movzx	 eax, WORD PTR _wPageHex$[ebp]
  00041	83 e0 0f	 and	 eax, 15			; 0000000fH
  00044	83 f8 09	 cmp	 eax, 9
  00047	7e 07		 jle	 SHORT $LN2@PageHex2Ar
$LN1@PageHex2Ar:

; 874  :     {
; 875  :         return 0xFFFF;

  00049	b8 ff ff 00 00	 mov	 eax, 65535		; 0000ffffH
  0004e	eb 46		 jmp	 SHORT $LN3@PageHex2Ar
$LN2@PageHex2Ar:

; 876  :     }
; 877  : 
; 878  :     WORD wArrayIndex;
; 879  : 
; 880  :     wArrayIndex = (((wPageHex & 0xF00) >> 8) * 100) - 100;

  00050	0f b7 4d 08	 movzx	 ecx, WORD PTR _wPageHex$[ebp]
  00054	81 e1 00 0f 00
	00		 and	 ecx, 3840		; 00000f00H
  0005a	c1 f9 08	 sar	 ecx, 8
  0005d	6b c9 64	 imul	 ecx, 100		; 00000064H
  00060	83 e9 64	 sub	 ecx, 100		; 00000064H
  00063	66 89 4d fc	 mov	 WORD PTR _wArrayIndex$[ebp], cx

; 881  :     wArrayIndex += ((wPageHex & 0x0F0) >> 4) * 10;

  00067	0f b7 55 08	 movzx	 edx, WORD PTR _wPageHex$[ebp]
  0006b	81 e2 f0 00 00
	00		 and	 edx, 240		; 000000f0H
  00071	c1 fa 04	 sar	 edx, 4
  00074	6b d2 0a	 imul	 edx, 10			; 0000000aH
  00077	0f b7 45 fc	 movzx	 eax, WORD PTR _wArrayIndex$[ebp]
  0007b	03 c2		 add	 eax, edx
  0007d	66 89 45 fc	 mov	 WORD PTR _wArrayIndex$[ebp], ax

; 882  :     wArrayIndex += ((wPageHex & 0x00F));

  00081	0f b7 4d 08	 movzx	 ecx, WORD PTR _wPageHex$[ebp]
  00085	83 e1 0f	 and	 ecx, 15			; 0000000fH
  00088	0f b7 55 fc	 movzx	 edx, WORD PTR _wArrayIndex$[ebp]
  0008c	03 d1		 add	 edx, ecx
  0008e	66 89 55 fc	 mov	 WORD PTR _wArrayIndex$[ebp], dx

; 883  : 
; 884  :     return wArrayIndex;

  00092	66 8b 45 fc	 mov	 ax, WORD PTR _wArrayIndex$[ebp]
$LN3@PageHex2Ar:

; 885  : }

  00096	8b e5		 mov	 esp, ebp
  00098	5d		 pop	 ebp
  00099	c2 04 00	 ret	 4
?PageHex2ArrayIndex@CVTDecoder@@IAEGG@Z ENDP		; CVTDecoder::PageHex2ArrayIndex
_TEXT	ENDS
PUBLIC	?ResetDecoder@CVTDecoder@@QAEXXZ		; CVTDecoder::ResetDecoder
; Function compile flags: /Odtp
;	COMDAT ?ResetDecoder@CVTDecoder@@QAEXXZ
_TEXT	SEGMENT
_this$ = -12						; size = 4
_i$139955 = -8						; size = 4
_i$ = -4						; size = 4
?ResetDecoder@CVTDecoder@@QAEXXZ PROC			; CVTDecoder::ResetDecoder, COMDAT
; _this$ = ecx

; 87   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH
  00006	89 4d f4	 mov	 DWORD PTR _this$[ebp], ecx

; 88   :     EnterCriticalSection(&m_CommonHeaderMutex);

  00009	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	05 64 2f 00 00	 add	 eax, 12132		; 00002f64H
  00011	50		 push	 eax
  00012	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 89   :     {
; 90   :         FillMemory(m_CommonHeader, 32, 0x20);

  00018	6a 20		 push	 32			; 00000020H
  0001a	6a 20		 push	 32			; 00000020H
  0001c	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0001f	81 c1 49 22 00
	00		 add	 ecx, 8777		; 00002249H
  00025	51		 push	 ecx
  00026	e8 00 00 00 00	 call	 _memset
  0002b	83 c4 0c	 add	 esp, 12			; 0000000cH

; 91   :     }
; 92   :     LeaveCriticalSection(&m_CommonHeaderMutex);

  0002e	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  00031	81 c2 64 2f 00
	00		 add	 edx, 12132		; 00002f64H
  00037	52		 push	 edx
  00038	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 93   : 
; 94   :     EnterCriticalSection(&m_MagazineStateMutex);

  0003e	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  00041	05 7c 2f 00 00	 add	 eax, 12156		; 00002f7cH
  00046	50		 push	 eax
  00047	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 95   :     {
; 96   :         for (int i(0); i < 8; i++)

  0004d	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _i$139955[ebp], 0
  00054	eb 09		 jmp	 SHORT $LN9@ResetDecod
$LN8@ResetDecod:
  00056	8b 4d f8	 mov	 ecx, DWORD PTR _i$139955[ebp]
  00059	83 c1 01	 add	 ecx, 1
  0005c	89 4d f8	 mov	 DWORD PTR _i$139955[ebp], ecx
$LN9@ResetDecod:
  0005f	83 7d f8 08	 cmp	 DWORD PTR _i$139955[ebp], 8
  00063	7d 16		 jge	 SHORT $LN7@ResetDecod

; 97   :         {
; 98   :             // Doing this is enough for zeroing the state
; 99   :             m_MagazineState[i].bReceiving = FALSE;

  00065	8b 55 f8	 mov	 edx, DWORD PTR _i$139955[ebp]
  00068	69 d2 48 04 00
	00		 imul	 edx, 1096		; 00000448H
  0006e	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  00071	c7 44 10 08 00
	00 00 00	 mov	 DWORD PTR [eax+edx+8], 0

; 100  :         }

  00079	eb db		 jmp	 SHORT $LN8@ResetDecod
$LN7@ResetDecod:

; 101  :         m_LastMagazine = 0;

  0007b	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0007e	c6 01 00	 mov	 BYTE PTR [ecx], 0

; 102  :     }
; 103  :     LeaveCriticalSection(&m_MagazineStateMutex);

  00081	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  00084	81 c2 7c 2f 00
	00		 add	 edx, 12156		; 00002f7cH
  0008a	52		 push	 edx
  0008b	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 104  : 
; 105  :     EnterCriticalSection(&m_PageStoreMutex);

  00091	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  00094	05 94 2f 00 00	 add	 eax, 12180		; 00002f94H
  00099	50		 push	 eax
  0009a	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 106  :     {
; 107  :         ResetPageStore();

  000a0	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  000a3	e8 00 00 00 00	 call	 ?ResetPageStore@CVTDecoder@@IAEXXZ ; CVTDecoder::ResetPageStore

; 108  :         m_ReceivedPages = 0;

  000a8	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  000ab	c7 81 6c 22 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+8812], 0

; 109  :     }
; 110  :     LeaveCriticalSection(&m_PageStoreMutex);

  000b5	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  000b8	81 c2 94 2f 00
	00		 add	 edx, 12180		; 00002f94H
  000be	52		 push	 edx
  000bf	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 111  : 
; 112  :     m_pVTTopText->Reset();

  000c5	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  000c8	8b 88 60 2f 00
	00		 mov	 ecx, DWORD PTR [eax+12128]
  000ce	e8 00 00 00 00	 call	 ?Reset@CVTTopText@@QAEXXZ ; CVTTopText::Reset

; 113  : 
; 114  :     EnterCriticalSection(&m_ServiceDataStoreMutex);

  000d3	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  000d6	81 c1 ac 2f 00
	00		 add	 ecx, 12204		; 00002facH
  000dc	51		 push	 ecx
  000dd	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 115  :     m_BroadcastServiceData.InitialPage = 0UL;

  000e3	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  000e6	c7 82 f4 2e 00
	00 00 00 00 00	 mov	 DWORD PTR [edx+12020], 0

; 116  :     int i;
; 117  :     for (i = 0; i < 2; i++)

  000f0	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  000f7	eb 09		 jmp	 SHORT $LN6@ResetDecod
$LN5@ResetDecod:
  000f9	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  000fc	83 c0 01	 add	 eax, 1
  000ff	89 45 fc	 mov	 DWORD PTR _i$[ebp], eax
$LN6@ResetDecod:
  00102	83 7d fc 02	 cmp	 DWORD PTR _i$[ebp], 2
  00106	7d 12		 jge	 SHORT $LN4@ResetDecod

; 118  :     {
; 119  :         m_BroadcastServiceData.NetworkIDCode[i] = 0;

  00108	33 c9		 xor	 ecx, ecx
  0010a	8b 55 fc	 mov	 edx, DWORD PTR _i$[ebp]
  0010d	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  00110	66 89 8c 50 f8
	2e 00 00	 mov	 WORD PTR [eax+edx*2+12024], cx

; 120  :     }

  00118	eb df		 jmp	 SHORT $LN5@ResetDecod
$LN4@ResetDecod:

; 121  :     m_BroadcastServiceData.TimeOffset = 0;

  0011a	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0011d	c6 81 fc 2e 00
	00 00		 mov	 BYTE PTR [ecx+12028], 0

; 122  :     m_BroadcastServiceData.ModifiedJulianDate = 45000;

  00124	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  00127	c7 82 00 2f 00
	00 c8 af 00 00	 mov	 DWORD PTR [edx+12032], 45000 ; 0000afc8H

; 123  :     m_BroadcastServiceData.UTCHours = 0;

  00131	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  00134	c6 80 04 2f 00
	00 00		 mov	 BYTE PTR [eax+12036], 0

; 124  :     m_BroadcastServiceData.UTCMinutes = 0;

  0013b	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0013e	c6 81 05 2f 00
	00 00		 mov	 BYTE PTR [ecx+12037], 0

; 125  :     m_BroadcastServiceData.UTCSeconds = 0;

  00145	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  00148	c6 82 06 2f 00
	00 00		 mov	 BYTE PTR [edx+12038], 0

; 126  :     FillMemory(m_BroadcastServiceData.StatusDisplay, 20, 0x20);

  0014f	6a 14		 push	 20			; 00000014H
  00151	6a 20		 push	 32			; 00000020H
  00153	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  00156	05 07 2f 00 00	 add	 eax, 12039		; 00002f07H
  0015b	50		 push	 eax
  0015c	e8 00 00 00 00	 call	 _memset
  00161	83 c4 0c	 add	 esp, 12			; 0000000cH

; 127  :     for (i = 0; i < 4; i++)

  00164	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  0016b	eb 09		 jmp	 SHORT $LN3@ResetDecod
$LN2@ResetDecod:
  0016d	8b 4d fc	 mov	 ecx, DWORD PTR _i$[ebp]
  00170	83 c1 01	 add	 ecx, 1
  00173	89 4d fc	 mov	 DWORD PTR _i$[ebp], ecx
$LN3@ResetDecod:
  00176	83 7d fc 04	 cmp	 DWORD PTR _i$[ebp], 4
  0017a	0f 8d 20 01 00
	00		 jge	 $LN1@ResetDecod

; 128  :     {
; 129  :         m_PDC[i].LCI = 0;

  00180	8b 55 fc	 mov	 edx, DWORD PTR _i$[ebp]
  00183	6b d2 0c	 imul	 edx, 12			; 0000000cH
  00186	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  00189	8a 8c 10 1c 2f
	00 00		 mov	 cl, BYTE PTR [eax+edx+12060]
  00190	80 e1 fc	 and	 cl, 252			; 000000fcH
  00193	8b 55 fc	 mov	 edx, DWORD PTR _i$[ebp]
  00196	6b d2 0c	 imul	 edx, 12			; 0000000cH
  00199	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  0019c	88 8c 10 1c 2f
	00 00		 mov	 BYTE PTR [eax+edx+12060], cl

; 130  :         m_PDC[i].LUF = 0;

  001a3	8b 4d fc	 mov	 ecx, DWORD PTR _i$[ebp]
  001a6	6b c9 0c	 imul	 ecx, 12			; 0000000cH
  001a9	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  001ac	8a 84 0a 1c 2f
	00 00		 mov	 al, BYTE PTR [edx+ecx+12060]
  001b3	24 fb		 and	 al, 251			; 000000fbH
  001b5	8b 4d fc	 mov	 ecx, DWORD PTR _i$[ebp]
  001b8	6b c9 0c	 imul	 ecx, 12			; 0000000cH
  001bb	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  001be	88 84 0a 1c 2f
	00 00		 mov	 BYTE PTR [edx+ecx+12060], al

; 131  :         m_PDC[i].PRF = 0;

  001c5	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  001c8	6b c0 0c	 imul	 eax, 12			; 0000000cH
  001cb	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  001ce	8a 94 01 1c 2f
	00 00		 mov	 dl, BYTE PTR [ecx+eax+12060]
  001d5	80 e2 f7	 and	 dl, 247			; 000000f7H
  001d8	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  001db	6b c0 0c	 imul	 eax, 12			; 0000000cH
  001de	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  001e1	88 94 01 1c 2f
	00 00		 mov	 BYTE PTR [ecx+eax+12060], dl

; 132  :         m_PDC[i].PCS = 0;

  001e8	8b 55 fc	 mov	 edx, DWORD PTR _i$[ebp]
  001eb	6b d2 0c	 imul	 edx, 12			; 0000000cH
  001ee	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  001f1	8a 8c 10 1c 2f
	00 00		 mov	 cl, BYTE PTR [eax+edx+12060]
  001f8	80 e1 cf	 and	 cl, 207			; 000000cfH
  001fb	8b 55 fc	 mov	 edx, DWORD PTR _i$[ebp]
  001fe	6b d2 0c	 imul	 edx, 12			; 0000000cH
  00201	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  00204	88 8c 10 1c 2f
	00 00		 mov	 BYTE PTR [eax+edx+12060], cl

; 133  :         m_PDC[i].MI = 0;

  0020b	8b 4d fc	 mov	 ecx, DWORD PTR _i$[ebp]
  0020e	6b c9 0c	 imul	 ecx, 12			; 0000000cH
  00211	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  00214	8a 84 0a 1c 2f
	00 00		 mov	 al, BYTE PTR [edx+ecx+12060]
  0021b	24 bf		 and	 al, 191			; 000000bfH
  0021d	8b 4d fc	 mov	 ecx, DWORD PTR _i$[ebp]
  00220	6b c9 0c	 imul	 ecx, 12			; 0000000cH
  00223	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  00226	88 84 0a 1c 2f
	00 00		 mov	 BYTE PTR [edx+ecx+12060], al

; 134  :         m_PDC[i].CNI = 0;

  0022d	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  00230	6b c0 0c	 imul	 eax, 12			; 0000000cH
  00233	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00236	66 8b 94 01 1e
	2f 00 00	 mov	 dx, WORD PTR [ecx+eax+12062]
  0023e	66 83 e2 00	 and	 dx, 0
  00242	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  00245	6b c0 0c	 imul	 eax, 12			; 0000000cH
  00248	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0024b	66 89 94 01 1e
	2f 00 00	 mov	 WORD PTR [ecx+eax+12062], dx

; 135  :         m_PDC[i].PIL = 0;

  00253	8b 55 fc	 mov	 edx, DWORD PTR _i$[ebp]
  00256	6b d2 0c	 imul	 edx, 12			; 0000000cH
  00259	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  0025c	8b 8c 10 20 2f
	00 00		 mov	 ecx, DWORD PTR [eax+edx+12064]
  00263	81 e1 00 00 f0
	ff		 and	 ecx, -1048576		; fff00000H
  00269	8b 55 fc	 mov	 edx, DWORD PTR _i$[ebp]
  0026c	6b d2 0c	 imul	 edx, 12			; 0000000cH
  0026f	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  00272	89 8c 10 20 2f
	00 00		 mov	 DWORD PTR [eax+edx+12064], ecx

; 136  :         m_PDC[i].PTY = 0;

  00279	8b 4d fc	 mov	 ecx, DWORD PTR _i$[ebp]
  0027c	6b c9 0c	 imul	 ecx, 12			; 0000000cH
  0027f	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  00282	8a 84 0a 24 2f
	00 00		 mov	 al, BYTE PTR [edx+ecx+12068]
  00289	24 00		 and	 al, 0
  0028b	8b 4d fc	 mov	 ecx, DWORD PTR _i$[ebp]
  0028e	6b c9 0c	 imul	 ecx, 12			; 0000000cH
  00291	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  00294	88 84 0a 24 2f
	00 00		 mov	 BYTE PTR [edx+ecx+12068], al

; 137  :     }

  0029b	e9 cd fe ff ff	 jmp	 $LN2@ResetDecod
$LN1@ResetDecod:

; 138  :     LeaveCriticalSection(&m_ServiceDataStoreMutex);

  002a0	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  002a3	05 ac 2f 00 00	 add	 eax, 12204		; 00002facH
  002a8	50		 push	 eax
  002a9	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 139  : 
; 140  :     m_bMagazineSerial = FALSE;

  002af	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  002b2	c7 81 44 22 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+8772], 0

; 141  :     m_CharacterSubset = 0;

  002bc	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  002bf	c6 82 48 22 00
	00 00		 mov	 BYTE PTR [edx+8776], 0

; 142  : }

  002c6	8b e5		 mov	 esp, ebp
  002c8	5d		 pop	 ebp
  002c9	c3		 ret	 0
?ResetDecoder@CVTDecoder@@QAEXXZ ENDP			; CVTDecoder::ResetDecoder
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory
;	COMDAT ??$_Construct@_W_W@std@@YAXPA_WAB_W@Z
_TEXT	SEGMENT
tv68 = -12						; size = 4
$T303286 = -8						; size = 4
__Vptr$ = -4						; size = 4
__Ptr$ = 8						; size = 4
__Val$ = 12						; size = 4
??$_Construct@_W_W@std@@YAXPA_WAB_W@Z PROC		; std::_Construct<wchar_t,wchar_t>, COMDAT

; 50   : 	{	// construct object at _Ptr with value _Val

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

; 51   : 	void _FARQ *_Vptr = _Ptr;

  00006	8b 45 08	 mov	 eax, DWORD PTR __Ptr$[ebp]
  00009	89 45 fc	 mov	 DWORD PTR __Vptr$[ebp], eax

; 52   : 	::new (_Vptr) _T1(_Val);

  0000c	8b 4d fc	 mov	 ecx, DWORD PTR __Vptr$[ebp]
  0000f	51		 push	 ecx
  00010	6a 02		 push	 2
  00012	e8 00 00 00 00	 call	 ??2@YAPAXIPAX@Z		; operator new
  00017	83 c4 08	 add	 esp, 8
  0001a	89 45 f8	 mov	 DWORD PTR $T303286[ebp], eax
  0001d	83 7d f8 00	 cmp	 DWORD PTR $T303286[ebp], 0
  00021	74 14		 je	 SHORT $LN3@Construct@2
  00023	8b 55 f8	 mov	 edx, DWORD PTR $T303286[ebp]
  00026	8b 45 0c	 mov	 eax, DWORD PTR __Val$[ebp]
  00029	66 8b 08	 mov	 cx, WORD PTR [eax]
  0002c	66 89 0a	 mov	 WORD PTR [edx], cx
  0002f	8b 55 f8	 mov	 edx, DWORD PTR $T303286[ebp]
  00032	89 55 f4	 mov	 DWORD PTR tv68[ebp], edx
  00035	eb 07		 jmp	 SHORT $LN1@Construct@2
$LN3@Construct@2:
  00037	c7 45 f4 00 00
	00 00		 mov	 DWORD PTR tv68[ebp], 0
$LN1@Construct@2:

; 53   : 	}

  0003e	8b e5		 mov	 esp, ebp
  00040	5d		 pop	 ebp
  00041	c3		 ret	 0
??$_Construct@_W_W@std@@YAXPA_WAB_W@Z ENDP		; std::_Construct<wchar_t,wchar_t>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?construct@?$allocator@_W@std@@QAEXPA_WAB_W@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Ptr$ = 8						; size = 4
__Val$ = 12						; size = 4
?construct@?$allocator@_W@std@@QAEXPA_WAB_W@Z PROC	; std::allocator<wchar_t>::construct, COMDAT
; _this$ = ecx

; 154  : 		{	// construct object at _Ptr with value _Val

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

; 155  : 		_Construct(_Ptr, _Val);

  00007	8b 45 0c	 mov	 eax, DWORD PTR __Val$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d 08	 mov	 ecx, DWORD PTR __Ptr$[ebp]
  0000e	51		 push	 ecx
  0000f	e8 00 00 00 00	 call	 ??$_Construct@_W_W@std@@YAXPA_WAB_W@Z ; std::_Construct<wchar_t,wchar_t>
  00014	83 c4 08	 add	 esp, 8

; 156  : 		}

  00017	8b e5		 mov	 esp, ebp
  00019	5d		 pop	 ebp
  0001a	c2 08 00	 ret	 8
?construct@?$allocator@_W@std@@QAEXPA_WAB_W@Z ENDP	; std::allocator<wchar_t>::construct
_TEXT	ENDS
;	COMDAT xdata$x
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\memory
xdata$x	SEGMENT
__unwindtable$??$_Uninit_copy@PADPA_WV?$allocator@_W@std@@@std@@YAPA_WPAD0PA_WAAV?$allocator@_W@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z DD 0ffffffffH
	DD	00H
	DD	0ffffffffH
	DD	00H
__catchsym$??$_Uninit_copy@PADPA_WV?$allocator@_W@std@@@std@@YAPA_WPAD0PA_WAAV?$allocator@_W@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z$2 DD 00H
	DD	00H
	DD	00H
	DD	FLAT:__catch$??$_Uninit_copy@PADPA_WV?$allocator@_W@std@@@std@@YAPA_WPAD0PA_WAAV?$allocator@_W@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z$0
__tryblocktable$??$_Uninit_copy@PADPA_WV?$allocator@_W@std@@@std@@YAPA_WPAD0PA_WAAV?$allocator@_W@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z DD 00H
	DD	00H
	DD	01H
	DD	01H
	DD	FLAT:__catchsym$??$_Uninit_copy@PADPA_WV?$allocator@_W@std@@@std@@YAPA_WPAD0PA_WAAV?$allocator@_W@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z$2
__ehfuncinfo$??$_Uninit_copy@PADPA_WV?$allocator@_W@std@@@std@@YAPA_WPAD0PA_WAAV?$allocator@_W@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??$_Uninit_copy@PADPA_WV?$allocator@_W@std@@@std@@YAPA_WPAD0PA_WAAV?$allocator@_W@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
	DD	01H
	DD	FLAT:__tryblocktable$??$_Uninit_copy@PADPA_WV?$allocator@_W@std@@@std@@YAPA_WPAD0PA_WAAV?$allocator@_W@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??$_Uninit_copy@PADPA_WV?$allocator@_W@std@@@std@@YAPA_WPAD0PA_WAAV?$allocator@_W@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
_TEXT	SEGMENT
$T303293 = -22						; size = 2
__Next$ = -20						; size = 4
__$EHRec$ = -16						; size = 16
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
__Al$ = 20						; size = 4
___formal$ = 24						; size = 1
___formal$ = 28						; size = 1
??$_Uninit_copy@PADPA_WV?$allocator@_W@std@@@std@@YAPA_WPAD0PA_WAAV?$allocator@_W@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z PROC ; std::_Uninit_copy<char *,wchar_t *,std::allocator<wchar_t> >, COMDAT

; 122  : 	{	// copy [_First, _Last) to raw _Dest, using _Al, arbitrary type

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??$_Uninit_copy@PADPA_WV?$allocator@_W@std@@@std@@YAPA_WPAD0PA_WAAV?$allocator@_W@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	83 ec 08	 sub	 esp, 8
  00015	53		 push	 ebx
  00016	56		 push	 esi
  00017	57		 push	 edi
  00018	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001d	33 c5		 xor	 eax, ebp
  0001f	50		 push	 eax
  00020	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp+4]
  00023	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00029	89 65 f0	 mov	 DWORD PTR __$EHRec$[ebp], esp

; 123  : 	_DEBUG_RANGE(_First, _Last);
; 124  : 	_DEBUG_POINTER(_Dest);
; 125  : 	_FwdIt _Next = _Dest;

  0002c	8b 45 10	 mov	 eax, DWORD PTR __Dest$[ebp]
  0002f	89 45 ec	 mov	 DWORD PTR __Next$[ebp], eax

; 126  : 
; 127  : 	_TRY_BEGIN

  00032	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 0

; 128  : 	for (; _First != _Last; ++_Dest, ++_First)

  00039	eb 12		 jmp	 SHORT $LN6@Uninit_cop@17
$LN5@Uninit_cop@17:
  0003b	8b 4d 10	 mov	 ecx, DWORD PTR __Dest$[ebp]
  0003e	83 c1 02	 add	 ecx, 2
  00041	89 4d 10	 mov	 DWORD PTR __Dest$[ebp], ecx
  00044	8b 55 08	 mov	 edx, DWORD PTR __First$[ebp]
  00047	83 c2 01	 add	 edx, 1
  0004a	89 55 08	 mov	 DWORD PTR __First$[ebp], edx
$LN6@Uninit_cop@17:
  0004d	8b 45 08	 mov	 eax, DWORD PTR __First$[ebp]
  00050	3b 45 0c	 cmp	 eax, DWORD PTR __Last$[ebp]
  00053	74 1d		 je	 SHORT $LN4@Uninit_cop@17

; 129  : 		_Al.construct(_Dest, *_First);

  00055	8b 4d 08	 mov	 ecx, DWORD PTR __First$[ebp]
  00058	66 0f be 11	 movsx	 dx, BYTE PTR [ecx]
  0005c	66 89 55 ea	 mov	 WORD PTR $T303293[ebp], dx
  00060	8d 45 ea	 lea	 eax, DWORD PTR $T303293[ebp]
  00063	50		 push	 eax
  00064	8b 4d 10	 mov	 ecx, DWORD PTR __Dest$[ebp]
  00067	51		 push	 ecx
  00068	8b 4d 14	 mov	 ecx, DWORD PTR __Al$[ebp]
  0006b	e8 00 00 00 00	 call	 ?construct@?$allocator@_W@std@@QAEXPA_WAB_W@Z ; std::allocator<wchar_t>::construct
  00070	eb c9		 jmp	 SHORT $LN5@Uninit_cop@17
$LN4@Uninit_cop@17:
  00072	eb 37		 jmp	 SHORT $LN10@Uninit_cop@17
__catch$??$_Uninit_copy@PADPA_WV?$allocator@_W@std@@@std@@YAPA_WPAD0PA_WAAV?$allocator@_W@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z$0:

; 130  : 	_CATCH_ALL
; 131  : 	for (; _Next != _Dest; ++_Next)

  00074	eb 09		 jmp	 SHORT $LN3@Uninit_cop@17
$LN2@Uninit_cop@17:
  00076	8b 55 ec	 mov	 edx, DWORD PTR __Next$[ebp]
  00079	83 c2 02	 add	 edx, 2
  0007c	89 55 ec	 mov	 DWORD PTR __Next$[ebp], edx
$LN3@Uninit_cop@17:
  0007f	8b 45 ec	 mov	 eax, DWORD PTR __Next$[ebp]
  00082	3b 45 10	 cmp	 eax, DWORD PTR __Dest$[ebp]
  00085	74 0e		 je	 SHORT $LN1@Uninit_cop@17

; 132  : 		_Al.destroy(_Next);

  00087	8b 4d ec	 mov	 ecx, DWORD PTR __Next$[ebp]
  0008a	51		 push	 ecx
  0008b	8b 4d 14	 mov	 ecx, DWORD PTR __Al$[ebp]
  0008e	e8 00 00 00 00	 call	 ?destroy@?$allocator@_W@std@@QAEXPA_W@Z ; std::allocator<wchar_t>::destroy
  00093	eb e1		 jmp	 SHORT $LN2@Uninit_cop@17
$LN1@Uninit_cop@17:

; 133  : 	_RERAISE;

  00095	6a 00		 push	 0
  00097	6a 00		 push	 0
  00099	e8 00 00 00 00	 call	 __CxxThrowException@8

; 134  : 	_CATCH_END

  0009e	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
  000a5	b8 00 00 00 00	 mov	 eax, __tryend$??$_Uninit_copy@PADPA_WV?$allocator@_W@std@@@std@@YAPA_WPAD0PA_WAAV?$allocator@_W@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z$1
  000aa	c3		 ret	 0
$LN10@Uninit_cop@17:
  000ab	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
__tryend$??$_Uninit_copy@PADPA_WV?$allocator@_W@std@@@std@@YAPA_WPAD0PA_WAAV?$allocator@_W@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z$1:

; 135  : 	return (_Dest);

  000b2	8b 45 10	 mov	 eax, DWORD PTR __Dest$[ebp]
$LN9@Uninit_cop@17:

; 136  : 	}

  000b5	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp+4]
  000b8	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000bf	59		 pop	 ecx
  000c0	5f		 pop	 edi
  000c1	5e		 pop	 esi
  000c2	5b		 pop	 ebx
  000c3	8b e5		 mov	 esp, ebp
  000c5	5d		 pop	 ebp
  000c6	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__ehhandler$??$_Uninit_copy@PADPA_WV?$allocator@_W@std@@@std@@YAPA_WPAD0PA_WAAV?$allocator@_W@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z:
  00000	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00004	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00007	8b 4a e4	 mov	 ecx, DWORD PTR [edx-28]
  0000a	33 c8		 xor	 ecx, eax
  0000c	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00011	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??$_Uninit_copy@PADPA_WV?$allocator@_W@std@@@std@@YAPA_WPAD0PA_WAAV?$allocator@_W@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z
  00016	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??$_Uninit_copy@PADPA_WV?$allocator@_W@std@@@std@@YAPA_WPAD0PA_WAAV?$allocator@_W@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ENDP ; std::_Uninit_copy<char *,wchar_t *,std::allocator<wchar_t> >
; Function compile flags: /Odtp
;	COMDAT ??$unchecked_uninitialized_copy@PADPA_WV?$allocator@_W@std@@@stdext@@YAPA_WPAD0PA_WAAV?$allocator@_W@std@@@Z
_TEXT	SEGMENT
$T303310 = -2						; size = 1
$T303309 = -1						; size = 1
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Dest$ = 16						; size = 4
__Al$ = 20						; size = 4
??$unchecked_uninitialized_copy@PADPA_WV?$allocator@_W@std@@@stdext@@YAPA_WPAD0PA_WAAV?$allocator@_W@std@@@Z PROC ; stdext::unchecked_uninitialized_copy<char *,wchar_t *,std::allocator<wchar_t> >, COMDAT

; 809  : 	{	// copy [_First, _Last) to raw _Dest, using _Al

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 810  : 		return (_STD _Uninit_copy(_CHECKED_BASE(_First), _CHECKED_BASE(_Last), _Dest, _Al,
; 811  : 			_STD _Ptr_cat(_First, _Dest), _STD _Range_checked_iterator_tag()));

  00004	33 c0		 xor	 eax, eax
  00006	88 45 ff	 mov	 BYTE PTR $T303309[ebp], al
  00009	8d 4d 10	 lea	 ecx, DWORD PTR __Dest$[ebp]
  0000c	51		 push	 ecx
  0000d	8d 55 08	 lea	 edx, DWORD PTR __First$[ebp]
  00010	52		 push	 edx
  00011	e8 00 00 00 00	 call	 ??$_Ptr_cat@PADPA_W@std@@YA?AU_Nonscalar_ptr_iterator_tag@0@AAPADAAPA_W@Z ; std::_Ptr_cat<char *,wchar_t *>
  00016	83 c4 08	 add	 esp, 8
  00019	88 45 fe	 mov	 BYTE PTR $T303310[ebp], al
  0001c	0f b6 45 ff	 movzx	 eax, BYTE PTR $T303309[ebp]
  00020	50		 push	 eax
  00021	0f b6 4d fe	 movzx	 ecx, BYTE PTR $T303310[ebp]
  00025	51		 push	 ecx
  00026	8b 55 14	 mov	 edx, DWORD PTR __Al$[ebp]
  00029	52		 push	 edx
  0002a	8b 45 10	 mov	 eax, DWORD PTR __Dest$[ebp]
  0002d	50		 push	 eax
  0002e	8d 4d 0c	 lea	 ecx, DWORD PTR __Last$[ebp]
  00031	51		 push	 ecx
  00032	e8 00 00 00 00	 call	 ??$_Checked_base@PAD@std@@YAPADAAPAD@Z ; std::_Checked_base<char *>
  00037	83 c4 04	 add	 esp, 4
  0003a	50		 push	 eax
  0003b	8d 55 08	 lea	 edx, DWORD PTR __First$[ebp]
  0003e	52		 push	 edx
  0003f	e8 00 00 00 00	 call	 ??$_Checked_base@PAD@std@@YAPADAAPAD@Z ; std::_Checked_base<char *>
  00044	83 c4 04	 add	 esp, 4
  00047	50		 push	 eax
  00048	e8 00 00 00 00	 call	 ??$_Uninit_copy@PADPA_WV?$allocator@_W@std@@@std@@YAPA_WPAD0PA_WAAV?$allocator@_W@0@U_Nonscalar_ptr_iterator_tag@0@U_Range_checked_iterator_tag@0@@Z ; std::_Uninit_copy<char *,wchar_t *,std::allocator<wchar_t> >
  0004d	83 c4 18	 add	 esp, 24			; 00000018H

; 812  : 	}

  00050	8b e5		 mov	 esp, ebp
  00052	5d		 pop	 ebp
  00053	c3		 ret	 0
??$unchecked_uninitialized_copy@PADPA_WV?$allocator@_W@std@@@stdext@@YAPA_WPAD0PA_WAAV?$allocator@_W@std@@@Z ENDP ; stdext::unchecked_uninitialized_copy<char *,wchar_t *,std::allocator<wchar_t> >
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
_TEXT	ENDS
;	COMDAT ??$_Ucopy@PAD@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WPAD0PA_W@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
__Ptr$ = 16						; size = 4
??$_Ucopy@PAD@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WPAD0PA_W@Z PROC ; std::vector<wchar_t,std::allocator<wchar_t> >::_Ucopy<char *>, COMDAT
; _this$ = ecx

; 1143 : 		pointer _Ucopy(_Iter _First, _Iter _Last, pointer _Ptr)

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

; 1144 : 		{	// copy initializing [_First, _Last), using allocator
; 1145 : 		return (_STDEXT unchecked_uninitialized_copy(_First, _Last,
; 1146 : 			_Ptr, this->_Alval));

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	83 c0 08	 add	 eax, 8
  0000d	50		 push	 eax
  0000e	8b 4d 10	 mov	 ecx, DWORD PTR __Ptr$[ebp]
  00011	51		 push	 ecx
  00012	8b 55 0c	 mov	 edx, DWORD PTR __Last$[ebp]
  00015	52		 push	 edx
  00016	8b 45 08	 mov	 eax, DWORD PTR __First$[ebp]
  00019	50		 push	 eax
  0001a	e8 00 00 00 00	 call	 ??$unchecked_uninitialized_copy@PADPA_WV?$allocator@_W@std@@@stdext@@YAPA_WPAD0PA_WAAV?$allocator@_W@std@@@Z ; stdext::unchecked_uninitialized_copy<char *,wchar_t *,std::allocator<wchar_t> >
  0001f	83 c4 10	 add	 esp, 16			; 00000010H

; 1147 : 		}

  00022	8b e5		 mov	 esp, ebp
  00024	5d		 pop	 ebp
  00025	c2 0c 00	 ret	 12			; 0000000cH
??$_Ucopy@PAD@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WPAD0PA_W@Z ENDP ; std::vector<wchar_t,std::allocator<wchar_t> >::_Ucopy<char *>
_TEXT	ENDS
PUBLIC	?GetDisplayComment@CVTDecoder@@QAEHKPAU_VTPage@@@Z ; CVTDecoder::GetDisplayComment
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\vtdecoder.cpp
;	COMDAT ?GetDisplayComment@CVTDecoder@@QAEHKPAU_VTPage@@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_dwPageCode$ = 8					; size = 4
_pBuffer$ = 12						; size = 4
?GetDisplayComment@CVTDecoder@@QAEHKPAU_VTPage@@@Z PROC	; CVTDecoder::GetDisplayComment, COMDAT
; _this$ = ecx

; 1439 : {

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

; 1440 :     m_bTopTextForComment = TRUE;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	c7 80 5c 2f 00
	00 01 00 00 00	 mov	 DWORD PTR [eax+12124], 1

; 1441 : 
; 1442 :     if (m_pVTTopText->GetTopTextDetails(dwPageCode, pBuffer, TRUE))

  00014	6a 01		 push	 1
  00016	8b 4d 0c	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  00019	51		 push	 ecx
  0001a	8b 55 08	 mov	 edx, DWORD PTR _dwPageCode$[ebp]
  0001d	52		 push	 edx
  0001e	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00021	8b 88 60 2f 00
	00		 mov	 ecx, DWORD PTR [eax+12128]
  00027	e8 00 00 00 00	 call	 ?GetTopTextDetails@CVTTopText@@QAEHKPAU_VTPage@@H@Z ; CVTTopText::GetTopTextDetails
  0002c	85 c0		 test	 eax, eax
  0002e	74 07		 je	 SHORT $LN1@GetDisplay@2

; 1443 :     {
; 1444 :         return TRUE;

  00030	b8 01 00 00 00	 mov	 eax, 1
  00035	eb 02		 jmp	 SHORT $LN2@GetDisplay@2
$LN1@GetDisplay@2:

; 1445 :     }
; 1446 : 
; 1447 :     return FALSE;

  00037	33 c0		 xor	 eax, eax
$LN2@GetDisplay@2:

; 1448 : }

  00039	8b e5		 mov	 esp, ebp
  0003b	5d		 pop	 ebp
  0003c	c2 08 00	 ret	 8
?GetDisplayComment@CVTDecoder@@QAEHKPAU_VTPage@@@Z ENDP	; CVTDecoder::GetDisplayComment
_TEXT	ENDS
PUBLIC	?GetPageStore@CVTDecoder@@IAEPAU_VTPage@@KH@Z	; CVTDecoder::GetPageStore
; Function compile flags: /Odtp
;	COMDAT ?GetPageStore@CVTDecoder@@IAEPAU_VTPage@@KH@Z
_TEXT	SEGMENT
_this$ = -28						; size = 4
_wPageIndex$140209 = -24				; size = 2
_hList$ = -20						; size = 4
_wPageHex$ = -16					; size = 2
_pPage$ = -12						; size = 4
_hPage$ = -8						; size = 4
_nCount$ = -4						; size = 2
_dwPageCode$ = 8					; size = 4
_bUpdate$ = 12						; size = 4
?GetPageStore@CVTDecoder@@IAEPAU_VTPage@@KH@Z PROC	; CVTDecoder::GetPageStore, COMDAT
; _this$ = ecx

; 933  : {

  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

; 934  :     WORD wPageHex = LOWORD(dwPageCode);

  00009	8b 45 08	 mov	 eax, DWORD PTR _dwPageCode$[ebp]
  0000c	25 ff ff 00 00	 and	 eax, 65535		; 0000ffffH
  00011	66 89 45 f0	 mov	 WORD PTR _wPageHex$[ebp], ax

; 935  : 
; 936  :     TVTPage* pPage;
; 937  :     TVTPage** hPage;
; 938  :     TVTPage** hList;
; 939  : 
; 940  :     if (IsNonVisiblePage(wPageHex))

  00015	0f b7 4d f0	 movzx	 ecx, WORD PTR _wPageHex$[ebp]
  00019	51		 push	 ecx
  0001a	e8 00 00 00 00	 call	 ?IsNonVisiblePage@CVTCommon@@SAHG@Z ; CVTCommon::IsNonVisiblePage
  0001f	83 c4 04	 add	 esp, 4
  00022	85 c0		 test	 eax, eax
  00024	74 26		 je	 SHORT $LN17@GetPageSto

; 941  :     {
; 942  :         if ((wPageHex & 0xFF) == 0xFF)

  00026	0f b7 55 f0	 movzx	 edx, WORD PTR _wPageHex$[ebp]
  0002a	81 e2 ff 00 00
	00		 and	 edx, 255		; 000000ffH
  00030	81 fa ff 00 00
	00		 cmp	 edx, 255		; 000000ffH
  00036	75 07		 jne	 SHORT $LN16@GetPageSto

; 943  :         {
; 944  :             return NULL;

  00038	33 c0		 xor	 eax, eax
  0003a	e9 90 01 00 00	 jmp	 $LN18@GetPageSto
$LN16@GetPageSto:

; 945  :         }
; 946  : 
; 947  :         hList = &m_NonVisiblePageList;

  0003f	8b 45 e4	 mov	 eax, DWORD PTR _this$[ebp]
  00042	05 70 22 00 00	 add	 eax, 8816		; 00002270H
  00047	89 45 ec	 mov	 DWORD PTR _hList$[ebp], eax

; 948  :     }
; 949  :     else

  0004a	eb 35		 jmp	 SHORT $LN15@GetPageSto
$LN17@GetPageSto:

; 950  :     {
; 951  :         WORD wPageIndex = PageHex2ArrayIndex(wPageHex);

  0004c	0f b7 4d f0	 movzx	 ecx, WORD PTR _wPageHex$[ebp]
  00050	51		 push	 ecx
  00051	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  00054	e8 00 00 00 00	 call	 ?PageHex2ArrayIndex@CVTDecoder@@IAEGG@Z ; CVTDecoder::PageHex2ArrayIndex
  00059	66 89 45 e8	 mov	 WORD PTR _wPageIndex$140209[ebp], ax

; 952  : 
; 953  :         if (wPageIndex == 0xFFFF)

  0005d	0f b7 55 e8	 movzx	 edx, WORD PTR _wPageIndex$140209[ebp]
  00061	81 fa ff ff 00
	00		 cmp	 edx, 65535		; 0000ffffH
  00067	75 07		 jne	 SHORT $LN14@GetPageSto

; 954  :         {
; 955  :             return NULL;

  00069	33 c0		 xor	 eax, eax
  0006b	e9 5f 01 00 00	 jmp	 $LN18@GetPageSto
$LN14@GetPageSto:

; 956  :         }
; 957  : 
; 958  :         hList = &m_VisiblePageList[wPageIndex];

  00070	0f b7 45 e8	 movzx	 eax, WORD PTR _wPageIndex$140209[ebp]
  00074	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  00077	8d 94 81 74 22
	00 00		 lea	 edx, DWORD PTR [ecx+eax*4+8820]
  0007e	89 55 ec	 mov	 DWORD PTR _hList$[ebp], edx
$LN15@GetPageSto:

; 959  :     }
; 960  : 
; 961  :     WORD nCount = 0;

  00081	33 c0		 xor	 eax, eax
  00083	66 89 45 fc	 mov	 WORD PTR _nCount$[ebp], ax

; 962  : 
; 963  :     // Look for an available page buffer
; 964  :     for (hPage = hList; *hPage != NULL; hPage = &(*hPage)->pNextPage)

  00087	8b 4d ec	 mov	 ecx, DWORD PTR _hList$[ebp]
  0008a	89 4d f8	 mov	 DWORD PTR _hPage$[ebp], ecx
  0008d	eb 0d		 jmp	 SHORT $LN13@GetPageSto
$LN12@GetPageSto:
  0008f	8b 55 f8	 mov	 edx, DWORD PTR _hPage$[ebp]
  00092	8b 02		 mov	 eax, DWORD PTR [edx]
  00094	05 54 04 00 00	 add	 eax, 1108		; 00000454H
  00099	89 45 f8	 mov	 DWORD PTR _hPage$[ebp], eax
$LN13@GetPageSto:
  0009c	8b 4d f8	 mov	 ecx, DWORD PTR _hPage$[ebp]
  0009f	83 39 00	 cmp	 DWORD PTR [ecx], 0
  000a2	0f 84 8a 00 00
	00		 je	 $LN11@GetPageSto

; 965  :     {
; 966  :         if ((*hPage)->bBufferReserved == FALSE)

  000a8	8b 55 f8	 mov	 edx, DWORD PTR _hPage$[ebp]
  000ab	8b 02		 mov	 eax, DWORD PTR [edx]
  000ad	83 b8 48 04 00
	00 00		 cmp	 DWORD PTR [eax+1096], 0
  000b4	75 04		 jne	 SHORT $LN10@GetPageSto
  000b6	eb 7a		 jmp	 SHORT $LN11@GetPageSto

; 967  :         {
; 968  :             break;

  000b8	eb 73		 jmp	 SHORT $LN9@GetPageSto
$LN10@GetPageSto:

; 969  :         }
; 970  :         else if ((*hPage)->dwPageCode == dwPageCode)

  000ba	8b 4d f8	 mov	 ecx, DWORD PTR _hPage$[ebp]
  000bd	8b 11		 mov	 edx, DWORD PTR [ecx]
  000bf	8b 02		 mov	 eax, DWORD PTR [edx]
  000c1	3b 45 08	 cmp	 eax, DWORD PTR _dwPageCode$[ebp]
  000c4	75 50		 jne	 SHORT $LN8@GetPageSto

; 971  :         {
; 972  :             if (bUpdate != FALSE)

  000c6	83 7d 0c 00	 cmp	 DWORD PTR _bUpdate$[ebp], 0
  000ca	74 3e		 je	 SHORT $LN7@GetPageSto

; 973  :             {
; 974  :                 // Move the element to the front
; 975  :                 if (hPage != hList)

  000cc	8b 4d f8	 mov	 ecx, DWORD PTR _hPage$[ebp]
  000cf	3b 4d ec	 cmp	 ecx, DWORD PTR _hList$[ebp]
  000d2	74 2c		 je	 SHORT $LN6@GetPageSto

; 976  :                 {
; 977  :                     pPage = *hPage;

  000d4	8b 55 f8	 mov	 edx, DWORD PTR _hPage$[ebp]
  000d7	8b 02		 mov	 eax, DWORD PTR [edx]
  000d9	89 45 f4	 mov	 DWORD PTR _pPage$[ebp], eax

; 978  :                     *hPage = pPage->pNextPage;

  000dc	8b 4d f8	 mov	 ecx, DWORD PTR _hPage$[ebp]
  000df	8b 55 f4	 mov	 edx, DWORD PTR _pPage$[ebp]
  000e2	8b 82 54 04 00
	00		 mov	 eax, DWORD PTR [edx+1108]
  000e8	89 01		 mov	 DWORD PTR [ecx], eax

; 979  :                     pPage->pNextPage = *hList;

  000ea	8b 4d f4	 mov	 ecx, DWORD PTR _pPage$[ebp]
  000ed	8b 55 ec	 mov	 edx, DWORD PTR _hList$[ebp]
  000f0	8b 02		 mov	 eax, DWORD PTR [edx]
  000f2	89 81 54 04 00
	00		 mov	 DWORD PTR [ecx+1108], eax

; 980  :                     *hList = pPage;

  000f8	8b 4d ec	 mov	 ecx, DWORD PTR _hList$[ebp]
  000fb	8b 55 f4	 mov	 edx, DWORD PTR _pPage$[ebp]
  000fe	89 11		 mov	 DWORD PTR [ecx], edx
$LN6@GetPageSto:

; 981  :                 }
; 982  :                 return *hList;

  00100	8b 45 ec	 mov	 eax, DWORD PTR _hList$[ebp]
  00103	8b 00		 mov	 eax, DWORD PTR [eax]
  00105	e9 c5 00 00 00	 jmp	 $LN18@GetPageSto
$LN7@GetPageSto:

; 983  :             }
; 984  : 
; 985  :             return *hPage;

  0010a	8b 4d f8	 mov	 ecx, DWORD PTR _hPage$[ebp]
  0010d	8b 01		 mov	 eax, DWORD PTR [ecx]
  0010f	e9 bb 00 00 00	 jmp	 $LN18@GetPageSto
  00114	eb 17		 jmp	 SHORT $LN9@GetPageSto
$LN8@GetPageSto:

; 986  :         }
; 987  :         else if (++nCount == kMAX_PAGELIST)

  00116	66 8b 55 fc	 mov	 dx, WORD PTR _nCount$[ebp]
  0011a	66 83 c2 01	 add	 dx, 1
  0011e	66 89 55 fc	 mov	 WORD PTR _nCount$[ebp], dx
  00122	0f b7 45 fc	 movzx	 eax, WORD PTR _nCount$[ebp]
  00126	83 f8 40	 cmp	 eax, 64			; 00000040H
  00129	75 02		 jne	 SHORT $LN9@GetPageSto

; 988  :         {
; 989  :             break;

  0012b	eb 05		 jmp	 SHORT $LN11@GetPageSto
$LN9@GetPageSto:

; 990  :         }
; 991  :     }

  0012d	e9 5d ff ff ff	 jmp	 $LN12@GetPageSto
$LN11@GetPageSto:

; 992  : 
; 993  :     if (bUpdate == FALSE)

  00132	83 7d 0c 00	 cmp	 DWORD PTR _bUpdate$[ebp], 0
  00136	75 07		 jne	 SHORT $LN3@GetPageSto

; 994  :     {
; 995  :         return NULL;

  00138	33 c0		 xor	 eax, eax
  0013a	e9 90 00 00 00	 jmp	 $LN18@GetPageSto
$LN3@GetPageSto:

; 996  :     }
; 997  : 
; 998  :     // Create a new buffer if there isn't a spare
; 999  :     if (*hPage == NULL)

  0013f	8b 4d f8	 mov	 ecx, DWORD PTR _hPage$[ebp]
  00142	83 39 00	 cmp	 DWORD PTR [ecx], 0
  00145	75 30		 jne	 SHORT $LN2@GetPageSto

; 1000 :     {
; 1001 :         *hPage = (TVTPage*)malloc(sizeof(TVTPage));

  00147	68 58 04 00 00	 push	 1112			; 00000458H
  0014c	e8 00 00 00 00	 call	 _malloc
  00151	83 c4 04	 add	 esp, 4
  00154	8b 55 f8	 mov	 edx, DWORD PTR _hPage$[ebp]
  00157	89 02		 mov	 DWORD PTR [edx], eax

; 1002 :         (*hPage)->pNextPage = NULL;

  00159	8b 45 f8	 mov	 eax, DWORD PTR _hPage$[ebp]
  0015c	8b 08		 mov	 ecx, DWORD PTR [eax]
  0015e	c7 81 54 04 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+1108], 0

; 1003 :         (*hPage)->bReceived = FALSE;

  00168	8b 55 f8	 mov	 edx, DWORD PTR _hPage$[ebp]
  0016b	8b 02		 mov	 eax, DWORD PTR [edx]
  0016d	c7 80 4c 04 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+1100], 0
$LN2@GetPageSto:

; 1004 :     }
; 1005 : 
; 1006 :     pPage = *hPage;

  00177	8b 4d f8	 mov	 ecx, DWORD PTR _hPage$[ebp]
  0017a	8b 11		 mov	 edx, DWORD PTR [ecx]
  0017c	89 55 f4	 mov	 DWORD PTR _pPage$[ebp], edx

; 1007 : 
; 1008 :     // Move the new buffer to the front
; 1009 :     if (hPage != hList)

  0017f	8b 45 f8	 mov	 eax, DWORD PTR _hPage$[ebp]
  00182	3b 45 ec	 cmp	 eax, DWORD PTR _hList$[ebp]
  00185	74 24		 je	 SHORT $LN1@GetPageSto

; 1010 :     {
; 1011 :         *hPage = pPage->pNextPage;

  00187	8b 4d f8	 mov	 ecx, DWORD PTR _hPage$[ebp]
  0018a	8b 55 f4	 mov	 edx, DWORD PTR _pPage$[ebp]
  0018d	8b 82 54 04 00
	00		 mov	 eax, DWORD PTR [edx+1108]
  00193	89 01		 mov	 DWORD PTR [ecx], eax

; 1012 :         pPage->pNextPage = *hList;

  00195	8b 4d f4	 mov	 ecx, DWORD PTR _pPage$[ebp]
  00198	8b 55 ec	 mov	 edx, DWORD PTR _hList$[ebp]
  0019b	8b 02		 mov	 eax, DWORD PTR [edx]
  0019d	89 81 54 04 00
	00		 mov	 DWORD PTR [ecx+1108], eax

; 1013 :         *hList = pPage;

  001a3	8b 4d ec	 mov	 ecx, DWORD PTR _hList$[ebp]
  001a6	8b 55 f4	 mov	 edx, DWORD PTR _pPage$[ebp]
  001a9	89 11		 mov	 DWORD PTR [ecx], edx
$LN1@GetPageSto:

; 1014 :     }
; 1015 : 
; 1016 :     pPage->bBufferReserved = TRUE;

  001ab	8b 45 f4	 mov	 eax, DWORD PTR _pPage$[ebp]
  001ae	c7 80 48 04 00
	00 01 00 00 00	 mov	 DWORD PTR [eax+1096], 1

; 1017 : 
; 1018 :     InitializePage(pPage);

  001b8	8b 4d f4	 mov	 ecx, DWORD PTR _pPage$[ebp]
  001bb	51		 push	 ecx
  001bc	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  001bf	e8 00 00 00 00	 call	 ?InitializePage@CVTDecoder@@IAEXPAU_VTPage@@@Z ; CVTDecoder::InitializePage

; 1019 :     pPage->dwPageCode = dwPageCode;

  001c4	8b 55 f4	 mov	 edx, DWORD PTR _pPage$[ebp]
  001c7	8b 45 08	 mov	 eax, DWORD PTR _dwPageCode$[ebp]
  001ca	89 02		 mov	 DWORD PTR [edx], eax

; 1020 : 
; 1021 :     return pPage;

  001cc	8b 45 f4	 mov	 eax, DWORD PTR _pPage$[ebp]
$LN18@GetPageSto:

; 1022 : }

  001cf	8b e5		 mov	 esp, ebp
  001d1	5d		 pop	 ebp
  001d2	c2 08 00	 ret	 8
?GetPageStore@CVTDecoder@@IAEPAU_VTPage@@KH@Z ENDP	; CVTDecoder::GetPageStore
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??_GCVTTopText@@QAEPAXI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___flags$ = 8						; size = 4
??_GCVTTopText@@QAEPAXI@Z PROC				; CVTTopText::`scalar deleting destructor', COMDAT
; _this$ = ecx
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ??1CVTTopText@@QAE@XZ	; CVTTopText::~CVTTopText
  0000f	8b 45 08	 mov	 eax, DWORD PTR ___flags$[ebp]
  00012	83 e0 01	 and	 eax, 1
  00015	74 0c		 je	 SHORT $LN1@scalar@22
  00017	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0001a	51		 push	 ecx
  0001b	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00020	83 c4 04	 add	 esp, 4
$LN1@scalar@22:
  00023	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00026	8b e5		 mov	 esp, ebp
  00028	5d		 pop	 ebp
  00029	c2 04 00	 ret	 4
??_GCVTTopText@@QAEPAXI@Z ENDP				; CVTTopText::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??1CVTDecoder@@QAE@XZ				; CVTDecoder::~CVTDecoder
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1CVTDecoder@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1CVTDecoder@@QAE@XZ$0
__ehfuncinfo$??1CVTDecoder@@QAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1CVTDecoder@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??1CVTDecoder@@QAE@XZ
_TEXT	SEGMENT
tv79 = -28						; size = 4
_this$ = -24						; size = 4
$T303322 = -20						; size = 4
$T303321 = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1CVTDecoder@@QAE@XZ PROC				; CVTDecoder::~CVTDecoder, COMDAT
; _this$ = ecx

; 72   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??1CVTDecoder@@QAE@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 10	 sub	 esp, 16			; 00000010H
  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 e8	 mov	 DWORD PTR _this$[ebp], ecx
  00028	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0

; 73   :     EnterCriticalSection(&m_PageStoreMutex);

  0002f	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  00032	05 94 2f 00 00	 add	 eax, 12180		; 00002f94H
  00037	50		 push	 eax
  00038	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 74   :     FreePageStore();

  0003e	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00041	e8 00 00 00 00	 call	 ?FreePageStore@CVTDecoder@@IAEXXZ ; CVTDecoder::FreePageStore

; 75   :     LeaveCriticalSection(&m_PageStoreMutex);

  00046	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00049	81 c1 94 2f 00
	00		 add	 ecx, 12180		; 00002f94H
  0004f	51		 push	 ecx
  00050	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 76   : 
; 77   :     delete m_pVTTopText;

  00056	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  00059	8b 82 60 2f 00
	00		 mov	 eax, DWORD PTR [edx+12128]
  0005f	89 45 ec	 mov	 DWORD PTR $T303322[ebp], eax
  00062	8b 4d ec	 mov	 ecx, DWORD PTR $T303322[ebp]
  00065	89 4d f0	 mov	 DWORD PTR $T303321[ebp], ecx
  00068	83 7d f0 00	 cmp	 DWORD PTR $T303321[ebp], 0
  0006c	74 0f		 je	 SHORT $LN3@CVTDecoder
  0006e	6a 01		 push	 1
  00070	8b 4d f0	 mov	 ecx, DWORD PTR $T303321[ebp]
  00073	e8 00 00 00 00	 call	 ??_GCVTTopText@@QAEPAXI@Z
  00078	89 45 e4	 mov	 DWORD PTR tv79[ebp], eax
  0007b	eb 07		 jmp	 SHORT $LN4@CVTDecoder
$LN3@CVTDecoder:
  0007d	c7 45 e4 00 00
	00 00		 mov	 DWORD PTR tv79[ebp], 0
$LN4@CVTDecoder:

; 78   : 
; 79   :     DeleteCriticalSection(&m_ServiceDataStoreMutex);

  00084	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  00087	81 c2 ac 2f 00
	00		 add	 edx, 12204		; 00002facH
  0008d	52		 push	 edx
  0008e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__DeleteCriticalSection@4

; 80   :     DeleteCriticalSection(&m_PageStoreMutex);

  00094	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  00097	05 94 2f 00 00	 add	 eax, 12180		; 00002f94H
  0009c	50		 push	 eax
  0009d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__DeleteCriticalSection@4

; 81   :     DeleteCriticalSection(&m_MagazineStateMutex);

  000a3	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  000a6	81 c1 7c 2f 00
	00		 add	 ecx, 12156		; 00002f7cH
  000ac	51		 push	 ecx
  000ad	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__DeleteCriticalSection@4

; 82   :     DeleteCriticalSection(&m_CommonHeaderMutex);

  000b3	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  000b6	81 c2 64 2f 00
	00		 add	 edx, 12132		; 00002f64H
  000bc	52		 push	 edx
  000bd	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__DeleteCriticalSection@4

; 83   : }

  000c3	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  000ca	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  000cd	e8 00 00 00 00	 call	 ??1CVTCommon@@QAE@XZ	; CVTCommon::~CVTCommon
  000d2	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  000d5	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000dc	59		 pop	 ecx
  000dd	8b e5		 mov	 esp, ebp
  000df	5d		 pop	 ebp
  000e0	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1CVTDecoder@@QAE@XZ$0:
  00000	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1CVTCommon@@QAE@XZ	; CVTCommon::~CVTCommon
__ehhandler$??1CVTDecoder@@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 ec	 mov	 ecx, DWORD PTR [edx-20]
  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$??1CVTDecoder@@QAE@XZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??1CVTDecoder@@QAE@XZ ENDP				; CVTDecoder::~CVTDecoder
PUBLIC	??0CVTDecoder@@QAE@P6AXEK@Z@Z			; CVTDecoder::CVTDecoder
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0CVTDecoder@@QAE@P6AXEK@Z@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0CVTDecoder@@QAE@P6AXEK@Z@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$??0CVTDecoder@@QAE@P6AXEK@Z@Z$1
__ehfuncinfo$??0CVTDecoder@@QAE@P6AXEK@Z@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??0CVTDecoder@@QAE@P6AXEK@Z@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??0CVTDecoder@@QAE@P6AXEK@Z@Z
_TEXT	SEGMENT
tv128 = -28						; size = 4
_this$ = -24						; size = 4
$T303335 = -20						; size = 4
$T303334 = -16						; size = 4
__$EHRec$ = -12						; size = 12
_fnDecoderEventProc$ = 8				; size = 4
??0CVTDecoder@@QAE@P6AXEK@Z@Z PROC			; CVTDecoder::CVTDecoder, COMDAT
; _this$ = ecx

; 51   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??0CVTDecoder@@QAE@P6AXEK@Z@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 10	 sub	 esp, 16			; 00000010H
  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 e8	 mov	 DWORD PTR _this$[ebp], ecx
  00028	8b 4d e8	 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

; 52   :     m_NonVisiblePageList = NULL;

  00037	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  0003a	c7 80 70 22 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+8816], 0

; 53   :     m_DecoderEventProc = fnDecoderEventProc;

  00044	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00047	8b 55 08	 mov	 edx, DWORD PTR _fnDecoderEventProc$[ebp]
  0004a	89 91 4c 2f 00
	00		 mov	 DWORD PTR [ecx+12108], edx

; 54   : 
; 55   :     m_CachingControl = DECODERCACHE_NORMAL;

  00050	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  00053	c6 80 50 2f 00
	00 00		 mov	 BYTE PTR [eax+12112], 0

; 56   :     m_bHighGranularityCaching = FALSE;

  0005a	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0005d	c7 81 54 2f 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+12116], 0

; 57   : 
; 58   :     m_bSubstituteSpacesForError = FALSE;

  00067	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  0006a	c7 82 58 2f 00
	00 00 00 00 00	 mov	 DWORD PTR [edx+12120], 0

; 59   : 
; 60   :     InitializeCriticalSection(&m_CommonHeaderMutex);

  00074	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  00077	05 64 2f 00 00	 add	 eax, 12132		; 00002f64H
  0007c	50		 push	 eax
  0007d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__InitializeCriticalSection@4

; 61   :     InitializeCriticalSection(&m_MagazineStateMutex);

  00083	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00086	81 c1 7c 2f 00
	00		 add	 ecx, 12156		; 00002f7cH
  0008c	51		 push	 ecx
  0008d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__InitializeCriticalSection@4

; 62   :     InitializeCriticalSection(&m_PageStoreMutex);

  00093	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  00096	81 c2 94 2f 00
	00		 add	 edx, 12180		; 00002f94H
  0009c	52		 push	 edx
  0009d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__InitializeCriticalSection@4

; 63   :     InitializeCriticalSection(&m_ServiceDataStoreMutex);

  000a3	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  000a6	05 ac 2f 00 00	 add	 eax, 12204		; 00002facH
  000ab	50		 push	 eax
  000ac	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__InitializeCriticalSection@4

; 64   : 
; 65   :     m_pVTTopText = new CVTTopText;

  000b2	68 84 16 00 00	 push	 5764			; 00001684H
  000b7	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  000bc	83 c4 04	 add	 esp, 4
  000bf	89 45 ec	 mov	 DWORD PTR $T303335[ebp], eax
  000c2	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  000c6	83 7d ec 00	 cmp	 DWORD PTR $T303335[ebp], 0
  000ca	74 0d		 je	 SHORT $LN3@CVTDecoder@2
  000cc	8b 4d ec	 mov	 ecx, DWORD PTR $T303335[ebp]
  000cf	e8 00 00 00 00	 call	 ??0CVTTopText@@QAE@XZ	; CVTTopText::CVTTopText
  000d4	89 45 e4	 mov	 DWORD PTR tv128[ebp], eax
  000d7	eb 07		 jmp	 SHORT $LN4@CVTDecoder@2
$LN3@CVTDecoder@2:
  000d9	c7 45 e4 00 00
	00 00		 mov	 DWORD PTR tv128[ebp], 0
$LN4@CVTDecoder@2:
  000e0	8b 4d e4	 mov	 ecx, DWORD PTR tv128[ebp]
  000e3	89 4d f0	 mov	 DWORD PTR $T303334[ebp], ecx
  000e6	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  000ea	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  000ed	8b 45 f0	 mov	 eax, DWORD PTR $T303334[ebp]
  000f0	89 82 60 2f 00
	00		 mov	 DWORD PTR [edx+12128], eax

; 66   : 
; 67   :     ResetDecoder();

  000f6	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  000f9	e8 00 00 00 00	 call	 ?ResetDecoder@CVTDecoder@@QAEXXZ ; CVTDecoder::ResetDecoder

; 68   : }

  000fe	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00105	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  00108	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0010b	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00112	59		 pop	 ecx
  00113	8b e5		 mov	 esp, ebp
  00115	5d		 pop	 ebp
  00116	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0CVTDecoder@@QAE@P6AXEK@Z@Z$0:
  00000	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1CVTCommon@@QAE@XZ	; CVTCommon::~CVTCommon
__unwindfunclet$??0CVTDecoder@@QAE@P6AXEK@Z@Z$1:
  00008	8b 45 ec	 mov	 eax, DWORD PTR $T303335[ebp]
  0000b	50		 push	 eax
  0000c	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00011	59		 pop	 ecx
  00012	c3		 ret	 0
__ehhandler$??0CVTDecoder@@QAE@P6AXEK@Z@Z:
  00013	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00017	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0001a	8b 4a ec	 mov	 ecx, DWORD PTR [edx-20]
  0001d	33 c8		 xor	 ecx, eax
  0001f	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00024	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??0CVTDecoder@@QAE@P6AXEK@Z@Z
  00029	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??0CVTDecoder@@QAE@P6AXEK@Z@Z ENDP			; CVTDecoder::CVTDecoder
PUBLIC	?CopyPageForDisplay@CVTDecoder@@IAEXPAU_VTPage@@0@Z ; CVTDecoder::CopyPageForDisplay
; Function compile flags: /Odtp
;	COMDAT ?CopyPageForDisplay@CVTDecoder@@IAEXPAU_VTPage@@0@Z
_TEXT	SEGMENT
_this$ = -12						; size = 4
_j$140888 = -8						; size = 4
_i$140884 = -4						; size = 4
_pBuffer$ = 8						; size = 4
_pPage$ = 12						; size = 4
?CopyPageForDisplay@CVTDecoder@@IAEXPAU_VTPage@@0@Z PROC ; CVTDecoder::CopyPageForDisplay, COMDAT
; _this$ = ecx

; 1785 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH
  00006	89 4d f4	 mov	 DWORD PTR _this$[ebp], ecx

; 1786 :     pBuffer->bShowRow24 = pPage->bShowRow24;

  00009	8b 45 08	 mov	 eax, DWORD PTR _pBuffer$[ebp]
  0000c	8b 4d 0c	 mov	 ecx, DWORD PTR _pPage$[ebp]
  0000f	8b 91 50 04 00
	00		 mov	 edx, DWORD PTR [ecx+1104]
  00015	89 90 50 04 00
	00		 mov	 DWORD PTR [eax+1104], edx

; 1787 :     pBuffer->dwPageCode = pPage->dwPageCode;

  0001b	8b 45 08	 mov	 eax, DWORD PTR _pBuffer$[ebp]
  0001e	8b 4d 0c	 mov	 ecx, DWORD PTR _pPage$[ebp]
  00021	8b 11		 mov	 edx, DWORD PTR [ecx]
  00023	89 10		 mov	 DWORD PTR [eax], edx

; 1788 :     pBuffer->wControlBits = pPage->wControlBits;

  00025	8b 45 08	 mov	 eax, DWORD PTR _pBuffer$[ebp]
  00028	8b 4d 0c	 mov	 ecx, DWORD PTR _pPage$[ebp]
  0002b	66 8b 51 04	 mov	 dx, WORD PTR [ecx+4]
  0002f	66 89 50 04	 mov	 WORD PTR [eax+4], dx

; 1789 : 
; 1790 :     for (int i = 0; i < 26; i++)

  00033	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _i$140884[ebp], 0
  0003a	eb 09		 jmp	 SHORT $LN13@CopyPageFo
$LN12@CopyPageFo:
  0003c	8b 45 fc	 mov	 eax, DWORD PTR _i$140884[ebp]
  0003f	83 c0 01	 add	 eax, 1
  00042	89 45 fc	 mov	 DWORD PTR _i$140884[ebp], eax
$LN13@CopyPageFo:
  00045	83 7d fc 1a	 cmp	 DWORD PTR _i$140884[ebp], 26 ; 0000001aH
  00049	0f 8d f1 00 00
	00		 jge	 $LN11@CopyPageFo

; 1791 :     {
; 1792 :         for (int j = 0; j < 40; j++)

  0004f	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _j$140888[ebp], 0
  00056	eb 09		 jmp	 SHORT $LN10@CopyPageFo
$LN9@CopyPageFo:
  00058	8b 4d f8	 mov	 ecx, DWORD PTR _j$140888[ebp]
  0005b	83 c1 01	 add	 ecx, 1
  0005e	89 4d f8	 mov	 DWORD PTR _j$140888[ebp], ecx
$LN10@CopyPageFo:
  00061	83 7d f8 28	 cmp	 DWORD PTR _j$140888[ebp], 40 ; 00000028H
  00065	0f 8d b8 00 00
	00		 jge	 $LN8@CopyPageFo

; 1793 :         {
; 1794 :             if (CheckParity(&pPage->Frame[i][j]) == FALSE)

  0006b	6a 00		 push	 0
  0006d	6a 01		 push	 1
  0006f	8b 55 fc	 mov	 edx, DWORD PTR _i$140884[ebp]
  00072	6b d2 28	 imul	 edx, 40			; 00000028H
  00075	03 55 f8	 add	 edx, DWORD PTR _j$140888[ebp]
  00078	8b 45 0c	 mov	 eax, DWORD PTR _pPage$[ebp]
  0007b	8d 4c 10 06	 lea	 ecx, DWORD PTR [eax+edx+6]
  0007f	51		 push	 ecx
  00080	e8 00 00 00 00	 call	 ?CheckParity@CVTCommon@@SAHPAEKH@Z ; CVTCommon::CheckParity
  00085	83 c4 0c	 add	 esp, 12			; 0000000cH
  00088	85 c0		 test	 eax, eax
  0008a	75 6e		 jne	 SHORT $LN7@CopyPageFo

; 1795 :             {
; 1796 :                 if (pPage->Frame[i][j] < 0x20)

  0008c	8b 55 fc	 mov	 edx, DWORD PTR _i$140884[ebp]
  0008f	6b d2 28	 imul	 edx, 40			; 00000028H
  00092	03 55 f8	 add	 edx, DWORD PTR _j$140888[ebp]
  00095	8b 45 0c	 mov	 eax, DWORD PTR _pPage$[ebp]
  00098	0f b6 4c 10 06	 movzx	 ecx, BYTE PTR [eax+edx+6]
  0009d	83 f9 20	 cmp	 ecx, 32			; 00000020H
  000a0	7d 13		 jge	 SHORT $LN6@CopyPageFo

; 1797 :                 {
; 1798 :                     pPage->Frame[i][j] = 0x20;

  000a2	8b 55 fc	 mov	 edx, DWORD PTR _i$140884[ebp]
  000a5	6b d2 28	 imul	 edx, 40			; 00000028H
  000a8	03 55 f8	 add	 edx, DWORD PTR _j$140888[ebp]
  000ab	8b 45 0c	 mov	 eax, DWORD PTR _pPage$[ebp]
  000ae	c6 44 10 06 20	 mov	 BYTE PTR [eax+edx+6], 32 ; 00000020H
  000b3	eb 43		 jmp	 SHORT $LN5@CopyPageFo
$LN6@CopyPageFo:

; 1799 :                 }
; 1800 :                 else if (m_bSubstituteSpacesForError != FALSE)

  000b5	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  000b8	83 b9 58 2f 00
	00 00		 cmp	 DWORD PTR [ecx+12120], 0
  000bf	74 13		 je	 SHORT $LN4@CopyPageFo

; 1801 :                 {
; 1802 :                     pBuffer->Frame[i][j] = 0x20;

  000c1	8b 55 fc	 mov	 edx, DWORD PTR _i$140884[ebp]
  000c4	6b d2 28	 imul	 edx, 40			; 00000028H
  000c7	03 55 f8	 add	 edx, DWORD PTR _j$140888[ebp]
  000ca	8b 45 08	 mov	 eax, DWORD PTR _pBuffer$[ebp]
  000cd	c6 44 10 06 20	 mov	 BYTE PTR [eax+edx+6], 32 ; 00000020H

; 1803 :                 }
; 1804 :                 else

  000d2	eb 24		 jmp	 SHORT $LN5@CopyPageFo
$LN4@CopyPageFo:

; 1805 :                 {
; 1806 :                     pBuffer->Frame[i][j] = pPage->Frame[i][j] & 0x7F;

  000d4	8b 4d fc	 mov	 ecx, DWORD PTR _i$140884[ebp]
  000d7	6b c9 28	 imul	 ecx, 40			; 00000028H
  000da	03 4d f8	 add	 ecx, DWORD PTR _j$140888[ebp]
  000dd	8b 55 0c	 mov	 edx, DWORD PTR _pPage$[ebp]
  000e0	0f b6 44 0a 06	 movzx	 eax, BYTE PTR [edx+ecx+6]
  000e5	83 e0 7f	 and	 eax, 127		; 0000007fH
  000e8	8b 4d fc	 mov	 ecx, DWORD PTR _i$140884[ebp]
  000eb	6b c9 28	 imul	 ecx, 40			; 00000028H
  000ee	03 4d f8	 add	 ecx, DWORD PTR _j$140888[ebp]
  000f1	8b 55 08	 mov	 edx, DWORD PTR _pBuffer$[ebp]
  000f4	88 44 0a 06	 mov	 BYTE PTR [edx+ecx+6], al
$LN5@CopyPageFo:

; 1807 :                 }
; 1808 :             }
; 1809 :             else

  000f8	eb 24		 jmp	 SHORT $LN2@CopyPageFo
$LN7@CopyPageFo:

; 1810 :             {
; 1811 :                 pBuffer->Frame[i][j] = pPage->Frame[i][j] & 0x7F;

  000fa	8b 45 fc	 mov	 eax, DWORD PTR _i$140884[ebp]
  000fd	6b c0 28	 imul	 eax, 40			; 00000028H
  00100	03 45 f8	 add	 eax, DWORD PTR _j$140888[ebp]
  00103	8b 4d 0c	 mov	 ecx, DWORD PTR _pPage$[ebp]
  00106	0f b6 54 01 06	 movzx	 edx, BYTE PTR [ecx+eax+6]
  0010b	83 e2 7f	 and	 edx, 127		; 0000007fH
  0010e	8b 45 fc	 mov	 eax, DWORD PTR _i$140884[ebp]
  00111	6b c0 28	 imul	 eax, 40			; 00000028H
  00114	03 45 f8	 add	 eax, DWORD PTR _j$140888[ebp]
  00117	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  0011a	88 54 01 06	 mov	 BYTE PTR [ecx+eax+6], dl
$LN2@CopyPageFo:

; 1812 :             }
; 1813 :         }

  0011e	e9 35 ff ff ff	 jmp	 $LN9@CopyPageFo
$LN8@CopyPageFo:

; 1814 : 
; 1815 :         pBuffer->LineState[i] = pPage->LineState[i];

  00123	8b 55 08	 mov	 edx, DWORD PTR _pBuffer$[ebp]
  00126	03 55 fc	 add	 edx, DWORD PTR _i$140884[ebp]
  00129	8b 45 0c	 mov	 eax, DWORD PTR _pPage$[ebp]
  0012c	03 45 fc	 add	 eax, DWORD PTR _i$140884[ebp]
  0012f	8a 88 16 04 00
	00		 mov	 cl, BYTE PTR [eax+1046]
  00135	88 8a 16 04 00
	00		 mov	 BYTE PTR [edx+1046], cl

; 1816 :     }

  0013b	e9 fc fe ff ff	 jmp	 $LN12@CopyPageFo
$LN11@CopyPageFo:

; 1817 : 
; 1818 :     CopyMemory(pBuffer->EditorialLink, pPage->EditorialLink, sizeof(DWORD) * 6);

  00140	6a 18		 push	 24			; 00000018H
  00142	8b 55 0c	 mov	 edx, DWORD PTR _pPage$[ebp]
  00145	81 c2 30 04 00
	00		 add	 edx, 1072		; 00000430H
  0014b	52		 push	 edx
  0014c	8b 45 08	 mov	 eax, DWORD PTR _pBuffer$[ebp]
  0014f	05 30 04 00 00	 add	 eax, 1072		; 00000430H
  00154	50		 push	 eax
  00155	e8 00 00 00 00	 call	 _memcpy
  0015a	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1819 : 
; 1820 :     if (pBuffer->bShowRow24 == FALSE)

  0015d	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  00160	83 b9 50 04 00
	00 00		 cmp	 DWORD PTR [ecx+1104], 0
  00167	75 27		 jne	 SHORT $LN1@CopyPageFo

; 1821 :     {
; 1822 :         m_bTopTextForComment = FALSE;

  00169	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  0016c	c7 82 5c 2f 00
	00 00 00 00 00	 mov	 DWORD PTR [edx+12124], 0

; 1823 :         m_pVTTopText->GetTopTextDetails(pBuffer->dwPageCode, pBuffer);

  00176	6a 00		 push	 0
  00178	8b 45 08	 mov	 eax, DWORD PTR _pBuffer$[ebp]
  0017b	50		 push	 eax
  0017c	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  0017f	8b 11		 mov	 edx, DWORD PTR [ecx]
  00181	52		 push	 edx
  00182	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  00185	8b 88 60 2f 00
	00		 mov	 ecx, DWORD PTR [eax+12128]
  0018b	e8 00 00 00 00	 call	 ?GetTopTextDetails@CVTTopText@@QAEHKPAU_VTPage@@H@Z ; CVTTopText::GetTopTextDetails
$LN1@CopyPageFo:

; 1824 :     }
; 1825 : 
; 1826 :     pBuffer->bBufferReserved = TRUE;

  00190	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  00193	c7 81 48 04 00
	00 01 00 00 00	 mov	 DWORD PTR [ecx+1096], 1

; 1827 :     pBuffer->bReceived = TRUE;

  0019d	8b 55 08	 mov	 edx, DWORD PTR _pBuffer$[ebp]
  001a0	c7 82 4c 04 00
	00 01 00 00 00	 mov	 DWORD PTR [edx+1100], 1

; 1828 :     pBuffer->pNextPage = NULL;

  001aa	8b 45 08	 mov	 eax, DWORD PTR _pBuffer$[ebp]
  001ad	c7 80 54 04 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+1108], 0

; 1829 : }

  001b7	8b e5		 mov	 esp, ebp
  001b9	5d		 pop	 ebp
  001ba	c2 08 00	 ret	 8
?CopyPageForDisplay@CVTDecoder@@IAEXPAU_VTPage@@0@Z ENDP ; CVTDecoder::CopyPageForDisplay
_TEXT	ENDS
PUBLIC	?SearchPage@CVTDecoder@@IAEHPAU_VTPage@@PA_WH@Z	; CVTDecoder::SearchPage
; Function compile flags: /Odtp
;	COMDAT ?SearchPage@CVTDecoder@@IAEHPAU_VTPage@@PA_WH@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
_wFlags$ = -12						; size = 2
_lpParam$ = -8						; size = 8
_pPage$ = 8						; size = 4
_lpSearchString$ = 12					; size = 4
_bIncludeRow25$ = 16					; size = 4
?SearchPage@CVTDecoder@@IAEHPAU_VTPage@@PA_WH@Z PROC	; CVTDecoder::SearchPage, COMDAT
; _this$ = ecx

; 1453 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 10	 sub	 esp, 16			; 00000010H
  00006	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx

; 1454 :     WORD wFlags = PARSE_HASDATAONLY;

  00009	b8 01 00 00 00	 mov	 eax, 1
  0000e	66 89 45 f4	 mov	 WORD PTR _wFlags$[ebp], ax

; 1455 : 
; 1456 :     if (bIncludeRow25 != FALSE)

  00012	83 7d 10 00	 cmp	 DWORD PTR _bIncludeRow25$[ebp], 0
  00016	74 0b		 je	 SHORT $LN1@SearchPage@2

; 1457 :     {
; 1458 :         wFlags |= PARSE_ALSOKEYWORDS;

  00018	0f b7 4d f4	 movzx	 ecx, WORD PTR _wFlags$[ebp]
  0001c	83 c9 10	 or	 ecx, 16			; 00000010H
  0001f	66 89 4d f4	 mov	 WORD PTR _wFlags$[ebp], cx
$LN1@SearchPage@2:

; 1459 :     }
; 1460 : 
; 1461 :     LPVOID lpParam[2] = { lpSearchString, 0 };

  00023	8b 55 0c	 mov	 edx, DWORD PTR _lpSearchString$[ebp]
  00026	89 55 f8	 mov	 DWORD PTR _lpParam$[ebp], edx
  00029	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _lpParam$[ebp+4], 0

; 1462 : 
; 1463 :     return ParsePageElements(pPage, &wFlags,
; 1464 :         (TParserCallback*)SearchPageProc, lpParam) == PARSE_STOPPAGE;

  00030	8d 45 f8	 lea	 eax, DWORD PTR _lpParam$[ebp]
  00033	50		 push	 eax
  00034	68 00 00 00 00	 push	 OFFSET ?SearchPageProc@CVTDecoder@@CAEPAU_VTPage@@GPAGGEEPAX@Z ; CVTDecoder::SearchPageProc
  00039	8d 4d f4	 lea	 ecx, DWORD PTR _wFlags$[ebp]
  0003c	51		 push	 ecx
  0003d	8b 55 08	 mov	 edx, DWORD PTR _pPage$[ebp]
  00040	52		 push	 edx
  00041	e8 00 00 00 00	 call	 ?ParsePageElements@CVTCommon@@SAEPAU_VTPage@@PAGP6AE0G1GEEPAX@Z2@Z ; CVTCommon::ParsePageElements
  00046	83 c4 10	 add	 esp, 16			; 00000010H
  00049	0f b6 c0	 movzx	 eax, al
  0004c	33 c9		 xor	 ecx, ecx
  0004e	83 f8 02	 cmp	 eax, 2
  00051	0f 94 c1	 sete	 cl
  00054	8b c1		 mov	 eax, ecx

; 1465 : }

  00056	8b e5		 mov	 esp, ebp
  00058	5d		 pop	 ebp
  00059	c2 0c 00	 ret	 12			; 0000000cH
?SearchPage@CVTDecoder@@IAEHPAU_VTPage@@PA_WH@Z ENDP	; CVTDecoder::SearchPage
_TEXT	ENDS
PUBLIC	?FindInDisplayPage@CVTDecoder@@QAEKKHPA_WPAU_VTPage@@H@Z ; CVTDecoder::FindInDisplayPage
; Function compile flags: /Odtp
;	COMDAT ?FindInDisplayPage@CVTDecoder@@QAEKKHPA_WPAU_VTPage@@H@Z
_TEXT	SEGMENT
_this$ = -28						; size = 4
_wPageIndex$ = -24					; size = 2
_delta$ = -17						; size = 1
_bFound$ = -16						; size = 4
_wPageHex$ = -12					; size = 2
_pPage$ = -8						; size = 4
_i$ = -4						; size = 2
_dwFromPageCode$ = 8					; size = 4
_bInclusive$ = 12					; size = 4
_lpSearchString$ = 16					; size = 4
_pBuffer$ = 20						; size = 4
_bReverse$ = 24						; size = 4
?FindInDisplayPage@CVTDecoder@@QAEKKHPA_WPAU_VTPage@@H@Z PROC ; CVTDecoder::FindInDisplayPage, COMDAT
; _this$ = ecx

; 1344 : {

  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

; 1345 :     WORD wPageHex = LOWORD(dwFromPageCode);

  00009	8b 45 08	 mov	 eax, DWORD PTR _dwFromPageCode$[ebp]
  0000c	25 ff ff 00 00	 and	 eax, 65535		; 0000ffffH
  00011	66 89 45 f4	 mov	 WORD PTR _wPageHex$[ebp], ax

; 1346 :     WORD wPageIndex = PageHex2ArrayIndex(wPageHex);

  00015	0f b7 4d f4	 movzx	 ecx, WORD PTR _wPageHex$[ebp]
  00019	51		 push	 ecx
  0001a	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  0001d	e8 00 00 00 00	 call	 ?PageHex2ArrayIndex@CVTDecoder@@IAEGG@Z ; CVTDecoder::PageHex2ArrayIndex
  00022	66 89 45 e8	 mov	 WORD PTR _wPageIndex$[ebp], ax

; 1347 : 
; 1348 :     if (wPageIndex == 0xFFFF)

  00026	0f b7 55 e8	 movzx	 edx, WORD PTR _wPageIndex$[ebp]
  0002a	81 fa ff ff 00
	00		 cmp	 edx, 65535		; 0000ffffH
  00030	75 17		 jne	 SHORT $LN21@FindInDisp

; 1349 :     {
; 1350 :         if (bReverse != FALSE)

  00032	83 7d 18 00	 cmp	 DWORD PTR _bReverse$[ebp], 0
  00036	74 08		 je	 SHORT $LN20@FindInDisp

; 1351 :         {
; 1352 :             wPageIndex = 0;

  00038	33 c0		 xor	 eax, eax
  0003a	66 89 45 e8	 mov	 WORD PTR _wPageIndex$[ebp], ax

; 1353 :         }
; 1354 :         else

  0003e	eb 09		 jmp	 SHORT $LN21@FindInDisp
$LN20@FindInDisp:

; 1355 :         {
; 1356 :             wPageIndex = 799;

  00040	b9 1f 03 00 00	 mov	 ecx, 799		; 0000031fH
  00045	66 89 4d e8	 mov	 WORD PTR _wPageIndex$[ebp], cx
$LN21@FindInDisp:

; 1357 :         }
; 1358 :     }
; 1359 : 
; 1360 :     EnterCriticalSection(&m_PageStoreMutex);

  00049	8b 55 e4	 mov	 edx, DWORD PTR _this$[ebp]
  0004c	81 c2 94 2f 00
	00		 add	 edx, 12180		; 00002f94H
  00052	52		 push	 edx
  00053	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1361 : 
; 1362 :     char delta = (bReverse ? -1 : 1);

  00059	33 c0		 xor	 eax, eax
  0005b	83 7d 18 00	 cmp	 DWORD PTR _bReverse$[ebp], 0
  0005f	0f 94 c0	 sete	 al
  00062	8d 44 00 ff	 lea	 eax, DWORD PTR [eax+eax-1]
  00066	88 45 ef	 mov	 BYTE PTR _delta$[ebp], al

; 1363 :     WORD i = (800 + wPageIndex);

  00069	0f b7 4d e8	 movzx	 ecx, WORD PTR _wPageIndex$[ebp]
  0006d	81 c1 20 03 00
	00		 add	 ecx, 800		; 00000320H
  00073	66 89 4d fc	 mov	 WORD PTR _i$[ebp], cx

; 1364 :     BOOL bFound = FALSE;

  00077	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _bFound$[ebp], 0
$LN18@FindInDisp:

; 1365 :     TVTPage* pPage;
; 1366 : 
; 1367 :     do
; 1368 :     {
; 1369 :         if (bInclusive != FALSE)

  0007e	83 7d 0c 00	 cmp	 DWORD PTR _bInclusive$[ebp], 0
  00082	74 4c		 je	 SHORT $LN12@FindInDisp

; 1370 :         {
; 1371 :             pPage = FindSubPage(m_VisiblePageList[i % 800], dwFromPageCode);

  00084	8b 55 08	 mov	 edx, DWORD PTR _dwFromPageCode$[ebp]
  00087	52		 push	 edx
  00088	0f b7 45 fc	 movzx	 eax, WORD PTR _i$[ebp]
  0008c	99		 cdq
  0008d	b9 20 03 00 00	 mov	 ecx, 800		; 00000320H
  00092	f7 f9		 idiv	 ecx
  00094	8b 45 e4	 mov	 eax, DWORD PTR _this$[ebp]
  00097	8b 8c 90 74 22
	00 00		 mov	 ecx, DWORD PTR [eax+edx*4+8820]
  0009e	51		 push	 ecx
  0009f	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  000a2	e8 00 00 00 00	 call	 ?FindSubPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@K@Z ; CVTDecoder::FindSubPage
  000a7	89 45 f8	 mov	 DWORD PTR _pPage$[ebp], eax

; 1372 : 
; 1373 :             if (pPage != NULL)

  000aa	83 7d f8 00	 cmp	 DWORD PTR _pPage$[ebp], 0
  000ae	74 20		 je	 SHORT $LN12@FindInDisp

; 1374 :             {
; 1375 :                 bFound = SearchPage(pPage, lpSearchString);

  000b0	6a 01		 push	 1
  000b2	8b 55 10	 mov	 edx, DWORD PTR _lpSearchString$[ebp]
  000b5	52		 push	 edx
  000b6	8b 45 f8	 mov	 eax, DWORD PTR _pPage$[ebp]
  000b9	50		 push	 eax
  000ba	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  000bd	e8 00 00 00 00	 call	 ?SearchPage@CVTDecoder@@IAEHPAU_VTPage@@PA_WH@Z ; CVTDecoder::SearchPage
  000c2	89 45 f0	 mov	 DWORD PTR _bFound$[ebp], eax

; 1376 : 
; 1377 :                 if (bFound != FALSE)

  000c5	83 7d f0 00	 cmp	 DWORD PTR _bFound$[ebp], 0
  000c9	74 05		 je	 SHORT $LN12@FindInDisp

; 1378 :                 {
; 1379 :                     break;

  000cb	e9 17 01 00 00	 jmp	 $LN16@FindInDisp
$LN12@FindInDisp:

; 1380 :                 }
; 1381 :             }
; 1382 :         }
; 1383 : 
; 1384 :         do
; 1385 :         {
; 1386 :             pPage = FindNextSubPage(m_VisiblePageList[i % 800], dwFromPageCode, bReverse);

  000d0	8b 4d 18	 mov	 ecx, DWORD PTR _bReverse$[ebp]
  000d3	51		 push	 ecx
  000d4	8b 55 08	 mov	 edx, DWORD PTR _dwFromPageCode$[ebp]
  000d7	52		 push	 edx
  000d8	0f b7 45 fc	 movzx	 eax, WORD PTR _i$[ebp]
  000dc	99		 cdq
  000dd	b9 20 03 00 00	 mov	 ecx, 800		; 00000320H
  000e2	f7 f9		 idiv	 ecx
  000e4	8b 45 e4	 mov	 eax, DWORD PTR _this$[ebp]
  000e7	8b 8c 90 74 22
	00 00		 mov	 ecx, DWORD PTR [eax+edx*4+8820]
  000ee	51		 push	 ecx
  000ef	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  000f2	e8 00 00 00 00	 call	 ?FindNextSubPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@KH@Z ; CVTDecoder::FindNextSubPage
  000f7	89 45 f8	 mov	 DWORD PTR _pPage$[ebp], eax

; 1387 : 
; 1388 :             if (pPage == NULL)

  000fa	83 7d f8 00	 cmp	 DWORD PTR _pPage$[ebp], 0
  000fe	75 02		 jne	 SHORT $LN9@FindInDisp

; 1389 :             {
; 1390 :                 break;

  00100	eb 23		 jmp	 SHORT $LN10@FindInDisp
$LN9@FindInDisp:

; 1391 :             }
; 1392 : 
; 1393 :             dwFromPageCode = pPage->dwPageCode;

  00102	8b 55 f8	 mov	 edx, DWORD PTR _pPage$[ebp]
  00105	8b 02		 mov	 eax, DWORD PTR [edx]
  00107	89 45 08	 mov	 DWORD PTR _dwFromPageCode$[ebp], eax

; 1394 : 
; 1395 :             bFound = SearchPage(pPage, lpSearchString);

  0010a	6a 01		 push	 1
  0010c	8b 4d 10	 mov	 ecx, DWORD PTR _lpSearchString$[ebp]
  0010f	51		 push	 ecx
  00110	8b 55 f8	 mov	 edx, DWORD PTR _pPage$[ebp]
  00113	52		 push	 edx
  00114	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  00117	e8 00 00 00 00	 call	 ?SearchPage@CVTDecoder@@IAEHPAU_VTPage@@PA_WH@Z ; CVTDecoder::SearchPage
  0011c	89 45 f0	 mov	 DWORD PTR _bFound$[ebp], eax

; 1396 :         }
; 1397 :         while (bFound == FALSE);

  0011f	83 7d f0 00	 cmp	 DWORD PTR _bFound$[ebp], 0
  00123	74 ab		 je	 SHORT $LN12@FindInDisp
$LN10@FindInDisp:

; 1398 : 
; 1399 :         if (bFound != FALSE)

  00125	83 7d f0 00	 cmp	 DWORD PTR _bFound$[ebp], 0
  00129	74 05		 je	 SHORT $LN8@FindInDisp

; 1400 :         {
; 1401 :             break;

  0012b	e9 b7 00 00 00	 jmp	 $LN16@FindInDisp
$LN8@FindInDisp:

; 1402 :         }
; 1403 : 
; 1404 :         // Find the next page to search in
; 1405 :         for (i += delta; (i % 800) != wPageIndex; i += delta)

  00130	0f be 45 ef	 movsx	 eax, BYTE PTR _delta$[ebp]
  00134	0f b7 4d fc	 movzx	 ecx, WORD PTR _i$[ebp]
  00138	03 c8		 add	 ecx, eax
  0013a	66 89 4d fc	 mov	 WORD PTR _i$[ebp], cx
  0013e	eb 0e		 jmp	 SHORT $LN7@FindInDisp
$LN6@FindInDisp:
  00140	0f be 55 ef	 movsx	 edx, BYTE PTR _delta$[ebp]
  00144	0f b7 45 fc	 movzx	 eax, WORD PTR _i$[ebp]
  00148	03 c2		 add	 eax, edx
  0014a	66 89 45 fc	 mov	 WORD PTR _i$[ebp], ax
$LN7@FindInDisp:
  0014e	0f b7 45 fc	 movzx	 eax, WORD PTR _i$[ebp]
  00152	99		 cdq
  00153	b9 20 03 00 00	 mov	 ecx, 800		; 00000320H
  00158	f7 f9		 idiv	 ecx
  0015a	0f b7 45 e8	 movzx	 eax, WORD PTR _wPageIndex$[ebp]
  0015e	3b d0		 cmp	 edx, eax
  00160	74 6d		 je	 SHORT $LN17@FindInDisp

; 1406 :         {
; 1407 :             pPage = FindReceivedPage(m_VisiblePageList[i % 800]);

  00162	0f b7 45 fc	 movzx	 eax, WORD PTR _i$[ebp]
  00166	99		 cdq
  00167	b9 20 03 00 00	 mov	 ecx, 800		; 00000320H
  0016c	f7 f9		 idiv	 ecx
  0016e	8b 45 e4	 mov	 eax, DWORD PTR _this$[ebp]
  00171	8b 8c 90 74 22
	00 00		 mov	 ecx, DWORD PTR [eax+edx*4+8820]
  00178	51		 push	 ecx
  00179	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  0017c	e8 00 00 00 00	 call	 ?FindReceivedPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@@Z ; CVTDecoder::FindReceivedPage
  00181	89 45 f8	 mov	 DWORD PTR _pPage$[ebp], eax

; 1408 :             if (pPage != NULL)

  00184	83 7d f8 00	 cmp	 DWORD PTR _pPage$[ebp], 0
  00188	74 40		 je	 SHORT $LN4@FindInDisp

; 1409 :             {
; 1410 :                 wPageHex = LOWORD(pPage->dwPageCode);

  0018a	8b 55 f8	 mov	 edx, DWORD PTR _pPage$[ebp]
  0018d	8b 02		 mov	 eax, DWORD PTR [edx]
  0018f	25 ff ff 00 00	 and	 eax, 65535		; 0000ffffH
  00194	66 89 45 f4	 mov	 WORD PTR _wPageHex$[ebp], ax

; 1411 :                 dwFromPageCode = MAKELONG(wPageHex, (bReverse != FALSE) ? 0x3F7F : 0);

  00198	0f b7 4d f4	 movzx	 ecx, WORD PTR _wPageHex$[ebp]
  0019c	81 e1 ff ff 00
	00		 and	 ecx, 65535		; 0000ffffH
  001a2	0f b7 d1	 movzx	 edx, cx
  001a5	8b 45 18	 mov	 eax, DWORD PTR _bReverse$[ebp]
  001a8	f7 d8		 neg	 eax
  001aa	1b c0		 sbb	 eax, eax
  001ac	25 7f 3f 00 00	 and	 eax, 16255		; 00003f7fH
  001b1	25 ff ff 00 00	 and	 eax, 65535		; 0000ffffH
  001b6	0f b7 c8	 movzx	 ecx, ax
  001b9	c1 e1 10	 shl	 ecx, 16			; 00000010H
  001bc	0b d1		 or	 edx, ecx
  001be	89 55 08	 mov	 DWORD PTR _dwFromPageCode$[ebp], edx

; 1412 :                 bInclusive = TRUE;

  001c1	c7 45 0c 01 00
	00 00		 mov	 DWORD PTR _bInclusive$[ebp], 1

; 1413 :                 break;

  001c8	eb 05		 jmp	 SHORT $LN17@FindInDisp
$LN4@FindInDisp:

; 1414 :             }
; 1415 :         }

  001ca	e9 71 ff ff ff	 jmp	 $LN6@FindInDisp
$LN17@FindInDisp:

; 1416 :     }
; 1417 :     while ((i % 800) != wPageIndex);

  001cf	0f b7 45 fc	 movzx	 eax, WORD PTR _i$[ebp]
  001d3	99		 cdq
  001d4	b9 20 03 00 00	 mov	 ecx, 800		; 00000320H
  001d9	f7 f9		 idiv	 ecx
  001db	0f b7 45 e8	 movzx	 eax, WORD PTR _wPageIndex$[ebp]
  001df	3b d0		 cmp	 edx, eax
  001e1	0f 85 97 fe ff
	ff		 jne	 $LN18@FindInDisp
$LN16@FindInDisp:

; 1418 : 
; 1419 :     if (bFound != FALSE)

  001e7	83 7d f0 00	 cmp	 DWORD PTR _bFound$[ebp], 0
  001eb	74 24		 je	 SHORT $LN3@FindInDisp

; 1420 :     {
; 1421 :         if (pBuffer != NULL)

  001ed	83 7d 14 00	 cmp	 DWORD PTR _pBuffer$[ebp], 0
  001f1	74 1c		 je	 SHORT $LN2@FindInDisp

; 1422 :         {
; 1423 :             CopyPageForDisplay(pBuffer, pPage);

  001f3	8b 4d f8	 mov	 ecx, DWORD PTR _pPage$[ebp]
  001f6	51		 push	 ecx
  001f7	8b 55 14	 mov	 edx, DWORD PTR _pBuffer$[ebp]
  001fa	52		 push	 edx
  001fb	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  001fe	e8 00 00 00 00	 call	 ?CopyPageForDisplay@CVTDecoder@@IAEXPAU_VTPage@@0@Z ; CVTDecoder::CopyPageForDisplay

; 1424 :             UnsetUpdatedStates(pPage);

  00203	8b 45 f8	 mov	 eax, DWORD PTR _pPage$[ebp]
  00206	50		 push	 eax
  00207	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  0020a	e8 00 00 00 00	 call	 ?UnsetUpdatedStates@CVTDecoder@@IAEXPAU_VTPage@@@Z ; CVTDecoder::UnsetUpdatedStates
$LN2@FindInDisp:

; 1425 :         }
; 1426 :     }
; 1427 :     else

  0020f	eb 07		 jmp	 SHORT $LN1@FindInDisp
$LN3@FindInDisp:

; 1428 :     {
; 1429 :         dwFromPageCode = 0UL;

  00211	c7 45 08 00 00
	00 00		 mov	 DWORD PTR _dwFromPageCode$[ebp], 0
$LN1@FindInDisp:

; 1430 :     }
; 1431 : 
; 1432 :     LeaveCriticalSection(&m_PageStoreMutex);

  00218	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  0021b	81 c1 94 2f 00
	00		 add	 ecx, 12180		; 00002f94H
  00221	51		 push	 ecx
  00222	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1433 : 
; 1434 :     return dwFromPageCode;

  00228	8b 45 08	 mov	 eax, DWORD PTR _dwFromPageCode$[ebp]

; 1435 : }

  0022b	8b e5		 mov	 esp, ebp
  0022d	5d		 pop	 ebp
  0022e	c2 14 00	 ret	 20			; 00000014H
?FindInDisplayPage@CVTDecoder@@QAEKKHPA_WPAU_VTPage@@H@Z ENDP ; CVTDecoder::FindInDisplayPage
_TEXT	ENDS
PUBLIC	?GetNextDisplaySubPage@CVTDecoder@@QAEKKPAU_VTPage@@H@Z ; CVTDecoder::GetNextDisplaySubPage
; Function compile flags: /Odtp
;	COMDAT ?GetNextDisplaySubPage@CVTDecoder@@QAEKKPAU_VTPage@@H@Z
_TEXT	SEGMENT
_this$ = -24						; size = 4
_pSubPageList$ = -20					; size = 4
_wPageIndex$ = -16					; size = 2
_wPageHex$ = -12					; size = 2
_pPage$ = -8						; size = 4
_dwNextPageCode$ = -4					; size = 4
_dwPageCode$ = 8					; size = 4
_pBuffer$ = 12						; size = 4
_bReverse$ = 16						; size = 4
?GetNextDisplaySubPage@CVTDecoder@@QAEKKPAU_VTPage@@H@Z PROC ; CVTDecoder::GetNextDisplaySubPage, COMDAT
; _this$ = ecx

; 1274 : {

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

; 1275 :     WORD wPageHex = LOWORD(dwPageCode);

  00009	8b 45 08	 mov	 eax, DWORD PTR _dwPageCode$[ebp]
  0000c	25 ff ff 00 00	 and	 eax, 65535		; 0000ffffH
  00011	66 89 45 f4	 mov	 WORD PTR _wPageHex$[ebp], ax

; 1276 :     WORD wPageIndex = PageHex2ArrayIndex(wPageHex);

  00015	0f b7 4d f4	 movzx	 ecx, WORD PTR _wPageHex$[ebp]
  00019	51		 push	 ecx
  0001a	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0001d	e8 00 00 00 00	 call	 ?PageHex2ArrayIndex@CVTDecoder@@IAEGG@Z ; CVTDecoder::PageHex2ArrayIndex
  00022	66 89 45 f0	 mov	 WORD PTR _wPageIndex$[ebp], ax

; 1277 :     TVTPage* pSubPageList;
; 1278 : 
; 1279 :     if (wPageIndex == 0xFFFF)

  00026	0f b7 55 f0	 movzx	 edx, WORD PTR _wPageIndex$[ebp]
  0002a	81 fa ff ff 00
	00		 cmp	 edx, 65535		; 0000ffffH
  00030	75 26		 jne	 SHORT $LN11@GetNextDis

; 1280 :     {
; 1281 :         if (!IsNonVisiblePage(wPageHex))

  00032	0f b7 45 f4	 movzx	 eax, WORD PTR _wPageHex$[ebp]
  00036	50		 push	 eax
  00037	e8 00 00 00 00	 call	 ?IsNonVisiblePage@CVTCommon@@SAHG@Z ; CVTCommon::IsNonVisiblePage
  0003c	83 c4 04	 add	 esp, 4
  0003f	85 c0		 test	 eax, eax
  00041	75 07		 jne	 SHORT $LN10@GetNextDis

; 1282 :         {
; 1283 :             return 0UL;

  00043	33 c0		 xor	 eax, eax
  00045	e9 22 01 00 00	 jmp	 $LN12@GetNextDis
$LN10@GetNextDis:

; 1284 :         }
; 1285 : 
; 1286 :         pSubPageList = m_NonVisiblePageList;

  0004a	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0004d	8b 91 70 22 00
	00		 mov	 edx, DWORD PTR [ecx+8816]
  00053	89 55 ec	 mov	 DWORD PTR _pSubPageList$[ebp], edx

; 1287 :     }
; 1288 :     else

  00056	eb 11		 jmp	 SHORT $LN9@GetNextDis
$LN11@GetNextDis:

; 1289 :     {
; 1290 :         pSubPageList = m_VisiblePageList[wPageIndex];

  00058	0f b7 45 f0	 movzx	 eax, WORD PTR _wPageIndex$[ebp]
  0005c	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0005f	8b 94 81 74 22
	00 00		 mov	 edx, DWORD PTR [ecx+eax*4+8820]
  00066	89 55 ec	 mov	 DWORD PTR _pSubPageList$[ebp], edx
$LN9@GetNextDis:

; 1291 :     }
; 1292 : 
; 1293 :     DWORD dwNextPageCode = 0UL;

  00069	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _dwNextPageCode$[ebp], 0

; 1294 :     TVTPage* pPage = NULL;

  00070	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _pPage$[ebp], 0

; 1295 : 
; 1296 :     EnterCriticalSection(&m_PageStoreMutex);

  00077	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  0007a	05 94 2f 00 00	 add	 eax, 12180		; 00002f94H
  0007f	50		 push	 eax
  00080	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1297 : 
; 1298 :     if (pSubPageList != NULL)

  00086	83 7d ec 00	 cmp	 DWORD PTR _pSubPageList$[ebp], 0
  0008a	0f 84 99 00 00
	00		 je	 $LN8@GetNextDis

; 1299 :     {
; 1300 :         pPage = FindNextSubPage(pSubPageList, dwPageCode, bReverse);

  00090	8b 4d 10	 mov	 ecx, DWORD PTR _bReverse$[ebp]
  00093	51		 push	 ecx
  00094	8b 55 08	 mov	 edx, DWORD PTR _dwPageCode$[ebp]
  00097	52		 push	 edx
  00098	8b 45 ec	 mov	 eax, DWORD PTR _pSubPageList$[ebp]
  0009b	50		 push	 eax
  0009c	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0009f	e8 00 00 00 00	 call	 ?FindNextSubPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@KH@Z ; CVTDecoder::FindNextSubPage
  000a4	89 45 f8	 mov	 DWORD PTR _pPage$[ebp], eax

; 1301 : 
; 1302 :         if (pPage == NULL)

  000a7	83 7d f8 00	 cmp	 DWORD PTR _pPage$[ebp], 0
  000ab	75 7c		 jne	 SHORT $LN8@GetNextDis

; 1303 :         {
; 1304 :             if (bReverse == FALSE)

  000ad	83 7d 10 00	 cmp	 DWORD PTR _bReverse$[ebp], 0
  000b1	75 1d		 jne	 SHORT $LN6@GetNextDis

; 1305 :             {
; 1306 :                 pPage = FindSubPage(pSubPageList, MAKELONG(wPageHex, 0));

  000b3	0f b7 4d f4	 movzx	 ecx, WORD PTR _wPageHex$[ebp]
  000b7	81 e1 ff ff 00
	00		 and	 ecx, 65535		; 0000ffffH
  000bd	0f b7 d1	 movzx	 edx, cx
  000c0	52		 push	 edx
  000c1	8b 45 ec	 mov	 eax, DWORD PTR _pSubPageList$[ebp]
  000c4	50		 push	 eax
  000c5	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  000c8	e8 00 00 00 00	 call	 ?FindSubPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@K@Z ; CVTDecoder::FindSubPage
  000cd	89 45 f8	 mov	 DWORD PTR _pPage$[ebp], eax
$LN6@GetNextDis:

; 1307 :             }
; 1308 : 
; 1309 :             if (pPage == NULL)

  000d0	83 7d f8 00	 cmp	 DWORD PTR _pPage$[ebp], 0
  000d4	75 3c		 jne	 SHORT $LN5@GetNextDis

; 1310 :             {
; 1311 :                 pPage = FindNextSubPage(pSubPageList,
; 1312 :                     MAKELONG(wPageHex, bReverse == FALSE ? 0 : 0xFFFF), bReverse);

  000d6	8b 4d 10	 mov	 ecx, DWORD PTR _bReverse$[ebp]
  000d9	51		 push	 ecx
  000da	0f b7 55 f4	 movzx	 edx, WORD PTR _wPageHex$[ebp]
  000de	81 e2 ff ff 00
	00		 and	 edx, 65535		; 0000ffffH
  000e4	0f b7 c2	 movzx	 eax, dx
  000e7	8b 4d 10	 mov	 ecx, DWORD PTR _bReverse$[ebp]
  000ea	f7 d9		 neg	 ecx
  000ec	1b c9		 sbb	 ecx, ecx
  000ee	81 e1 ff ff 00
	00		 and	 ecx, 65535		; 0000ffffH
  000f4	81 e1 ff ff 00
	00		 and	 ecx, 65535		; 0000ffffH
  000fa	0f b7 d1	 movzx	 edx, cx
  000fd	c1 e2 10	 shl	 edx, 16			; 00000010H
  00100	0b c2		 or	 eax, edx
  00102	50		 push	 eax
  00103	8b 45 ec	 mov	 eax, DWORD PTR _pSubPageList$[ebp]
  00106	50		 push	 eax
  00107	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0010a	e8 00 00 00 00	 call	 ?FindNextSubPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@KH@Z ; CVTDecoder::FindNextSubPage
  0010f	89 45 f8	 mov	 DWORD PTR _pPage$[ebp], eax
$LN5@GetNextDis:

; 1313 :             }
; 1314 : 
; 1315 :             if (pPage != NULL)

  00112	83 7d f8 00	 cmp	 DWORD PTR _pPage$[ebp], 0
  00116	74 11		 je	 SHORT $LN8@GetNextDis

; 1316 :             {
; 1317 :                 if (pPage->dwPageCode == dwPageCode)

  00118	8b 4d f8	 mov	 ecx, DWORD PTR _pPage$[ebp]
  0011b	8b 11		 mov	 edx, DWORD PTR [ecx]
  0011d	3b 55 08	 cmp	 edx, DWORD PTR _dwPageCode$[ebp]
  00120	75 07		 jne	 SHORT $LN8@GetNextDis

; 1318 :                 {
; 1319 :                     pPage = NULL;

  00122	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _pPage$[ebp], 0
$LN8@GetNextDis:

; 1320 :                 }
; 1321 :             }
; 1322 :         }
; 1323 :     }
; 1324 : 
; 1325 :     if (pPage != NULL)

  00129	83 7d f8 00	 cmp	 DWORD PTR _pPage$[ebp], 0
  0012d	74 2a		 je	 SHORT $LN2@GetNextDis

; 1326 :     {
; 1327 :         if (pBuffer != NULL)

  0012f	83 7d 0c 00	 cmp	 DWORD PTR _pBuffer$[ebp], 0
  00133	74 1c		 je	 SHORT $LN1@GetNextDis

; 1328 :         {
; 1329 :             CopyPageForDisplay(pBuffer, pPage);

  00135	8b 45 f8	 mov	 eax, DWORD PTR _pPage$[ebp]
  00138	50		 push	 eax
  00139	8b 4d 0c	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  0013c	51		 push	 ecx
  0013d	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00140	e8 00 00 00 00	 call	 ?CopyPageForDisplay@CVTDecoder@@IAEXPAU_VTPage@@0@Z ; CVTDecoder::CopyPageForDisplay

; 1330 :             UnsetUpdatedStates(pPage);

  00145	8b 55 f8	 mov	 edx, DWORD PTR _pPage$[ebp]
  00148	52		 push	 edx
  00149	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0014c	e8 00 00 00 00	 call	 ?UnsetUpdatedStates@CVTDecoder@@IAEXPAU_VTPage@@@Z ; CVTDecoder::UnsetUpdatedStates
$LN1@GetNextDis:

; 1331 :         }
; 1332 :         dwNextPageCode = pPage->dwPageCode;

  00151	8b 45 f8	 mov	 eax, DWORD PTR _pPage$[ebp]
  00154	8b 08		 mov	 ecx, DWORD PTR [eax]
  00156	89 4d fc	 mov	 DWORD PTR _dwNextPageCode$[ebp], ecx
$LN2@GetNextDis:

; 1333 :     }
; 1334 : 
; 1335 :     LeaveCriticalSection(&m_PageStoreMutex);

  00159	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  0015c	81 c2 94 2f 00
	00		 add	 edx, 12180		; 00002f94H
  00162	52		 push	 edx
  00163	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1336 : 
; 1337 :     return dwNextPageCode;

  00169	8b 45 fc	 mov	 eax, DWORD PTR _dwNextPageCode$[ebp]
$LN12@GetNextDis:

; 1338 : }

  0016c	8b e5		 mov	 esp, ebp
  0016e	5d		 pop	 ebp
  0016f	c2 0c 00	 ret	 12			; 0000000cH
?GetNextDisplaySubPage@CVTDecoder@@QAEKKPAU_VTPage@@H@Z ENDP ; CVTDecoder::GetNextDisplaySubPage
_TEXT	ENDS
PUBLIC	?GetNextDisplayPage@CVTDecoder@@QAEKKPAU_VTPage@@H@Z ; CVTDecoder::GetNextDisplayPage
; Function compile flags: /Odtp
;	COMDAT ?GetNextDisplayPage@CVTDecoder@@QAEKKPAU_VTPage@@H@Z
_TEXT	SEGMENT
_this$ = -28						; size = 4
_i$140338 = -24						; size = 2
_delta$140337 = -17					; size = 1
_wPageIndex$ = -16					; size = 2
_wPageHex$ = -12					; size = 2
_pPage$ = -8						; size = 4
_dwNextPageCode$ = -4					; size = 4
_dwPageCode$ = 8					; size = 4
_pBuffer$ = 12						; size = 4
_bReverse$ = 16						; size = 4
?GetNextDisplayPage@CVTDecoder@@QAEKKPAU_VTPage@@H@Z PROC ; CVTDecoder::GetNextDisplayPage, COMDAT
; _this$ = ecx

; 1212 : {

  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

; 1213 :     WORD wPageHex = LOWORD(dwPageCode);

  00009	8b 45 08	 mov	 eax, DWORD PTR _dwPageCode$[ebp]
  0000c	25 ff ff 00 00	 and	 eax, 65535		; 0000ffffH
  00011	66 89 45 f4	 mov	 WORD PTR _wPageHex$[ebp], ax

; 1214 :     WORD wPageIndex = PageHex2ArrayIndex(wPageHex);

  00015	0f b7 4d f4	 movzx	 ecx, WORD PTR _wPageHex$[ebp]
  00019	51		 push	 ecx
  0001a	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  0001d	e8 00 00 00 00	 call	 ?PageHex2ArrayIndex@CVTDecoder@@IAEGG@Z ; CVTDecoder::PageHex2ArrayIndex
  00022	66 89 45 f0	 mov	 WORD PTR _wPageIndex$[ebp], ax

; 1215 : 
; 1216 :     TVTPage* pPage = NULL;

  00026	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _pPage$[ebp], 0

; 1217 :     DWORD dwNextPageCode = 0UL;

  0002d	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _dwNextPageCode$[ebp], 0

; 1218 : 
; 1219 :     EnterCriticalSection(&m_PageStoreMutex);

  00034	8b 55 e4	 mov	 edx, DWORD PTR _this$[ebp]
  00037	81 c2 94 2f 00
	00		 add	 edx, 12180		; 00002f94H
  0003d	52		 push	 edx
  0003e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1220 : 
; 1221 :     if (wPageIndex == 0xFFFF)

  00044	0f b7 45 f0	 movzx	 eax, WORD PTR _wPageIndex$[ebp]
  00048	3d ff ff 00 00	 cmp	 eax, 65535		; 0000ffffH
  0004d	75 6c		 jne	 SHORT $LN10@GetNextDis@2

; 1222 :     {
; 1223 :         // Find the closest visible page
; 1224 :         if (IsNonVisiblePage(wPageHex))

  0004f	0f b7 4d f4	 movzx	 ecx, WORD PTR _wPageHex$[ebp]
  00053	51		 push	 ecx
  00054	e8 00 00 00 00	 call	 ?IsNonVisiblePage@CVTCommon@@SAHG@Z ; CVTCommon::IsNonVisiblePage
  00059	83 c4 04	 add	 esp, 4
  0005c	85 c0		 test	 eax, eax
  0005e	74 16		 je	 SHORT $LN9@GetNextDis@2

; 1225 :         {
; 1226 :             wPageIndex = ((wPageHex & 0xF00) >> 8) * 100;

  00060	0f b7 55 f4	 movzx	 edx, WORD PTR _wPageHex$[ebp]
  00064	81 e2 00 0f 00
	00		 and	 edx, 3840		; 00000f00H
  0006a	c1 fa 08	 sar	 edx, 8
  0006d	6b d2 64	 imul	 edx, 100		; 00000064H
  00070	66 89 55 f0	 mov	 WORD PTR _wPageIndex$[ebp], dx

; 1227 :         }
; 1228 :         else

  00074	eb 09		 jmp	 SHORT $LN8@GetNextDis@2
$LN9@GetNextDis@2:

; 1229 :         {
; 1230 :             wPageIndex = 800;

  00076	b8 20 03 00 00	 mov	 eax, 800		; 00000320H
  0007b	66 89 45 f0	 mov	 WORD PTR _wPageIndex$[ebp], ax
$LN8@GetNextDis@2:

; 1231 :         }
; 1232 : 
; 1233 :         if (bReverse != FALSE)

  0007f	83 7d 10 00	 cmp	 DWORD PTR _bReverse$[ebp], 0
  00083	74 0c		 je	 SHORT $LN7@GetNextDis@2

; 1234 :         {
; 1235 :             wPageIndex--;

  00085	66 8b 4d f0	 mov	 cx, WORD PTR _wPageIndex$[ebp]
  00089	66 83 e9 01	 sub	 cx, 1
  0008d	66 89 4d f0	 mov	 WORD PTR _wPageIndex$[ebp], cx
$LN7@GetNextDis@2:

; 1236 :         }
; 1237 : 
; 1238 :         wPageIndex %= 800;

  00091	0f b7 45 f0	 movzx	 eax, WORD PTR _wPageIndex$[ebp]
  00095	99		 cdq
  00096	b9 20 03 00 00	 mov	 ecx, 800		; 00000320H
  0009b	f7 f9		 idiv	 ecx
  0009d	66 89 55 f0	 mov	 WORD PTR _wPageIndex$[ebp], dx

; 1239 : 
; 1240 :         pPage = FindReceivedPage(m_VisiblePageList[wPageIndex]);

  000a1	0f b7 55 f0	 movzx	 edx, WORD PTR _wPageIndex$[ebp]
  000a5	8b 45 e4	 mov	 eax, DWORD PTR _this$[ebp]
  000a8	8b 8c 90 74 22
	00 00		 mov	 ecx, DWORD PTR [eax+edx*4+8820]
  000af	51		 push	 ecx
  000b0	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  000b3	e8 00 00 00 00	 call	 ?FindReceivedPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@@Z ; CVTDecoder::FindReceivedPage
  000b8	89 45 f8	 mov	 DWORD PTR _pPage$[ebp], eax
$LN10@GetNextDis@2:

; 1241 :     }
; 1242 : 
; 1243 :     if (pPage == NULL)

  000bb	83 7d f8 00	 cmp	 DWORD PTR _pPage$[ebp], 0
  000bf	75 73		 jne	 SHORT $LN6@GetNextDis@2

; 1244 :     {
; 1245 :         char delta = (bReverse ? -1 : 1);

  000c1	33 d2		 xor	 edx, edx
  000c3	83 7d 10 00	 cmp	 DWORD PTR _bReverse$[ebp], 0
  000c7	0f 94 c2	 sete	 dl
  000ca	8d 54 12 ff	 lea	 edx, DWORD PTR [edx+edx-1]
  000ce	88 55 ef	 mov	 BYTE PTR _delta$140337[ebp], dl

; 1246 : 
; 1247 :         // Loop around the available pages to find the next or previous page
; 1248 :         for (WORD i = 800 + wPageIndex + delta; (i % 800) != wPageIndex; i += delta)

  000d1	0f b7 45 f0	 movzx	 eax, WORD PTR _wPageIndex$[ebp]
  000d5	0f be 4d ef	 movsx	 ecx, BYTE PTR _delta$140337[ebp]
  000d9	8d 94 08 20 03
	00 00		 lea	 edx, DWORD PTR [eax+ecx+800]
  000e0	66 89 55 e8	 mov	 WORD PTR _i$140338[ebp], dx
  000e4	eb 0e		 jmp	 SHORT $LN5@GetNextDis@2
$LN4@GetNextDis@2:
  000e6	0f be 45 ef	 movsx	 eax, BYTE PTR _delta$140337[ebp]
  000ea	0f b7 4d e8	 movzx	 ecx, WORD PTR _i$140338[ebp]
  000ee	03 c8		 add	 ecx, eax
  000f0	66 89 4d e8	 mov	 WORD PTR _i$140338[ebp], cx
$LN5@GetNextDis@2:
  000f4	0f b7 45 e8	 movzx	 eax, WORD PTR _i$140338[ebp]
  000f8	99		 cdq
  000f9	b9 20 03 00 00	 mov	 ecx, 800		; 00000320H
  000fe	f7 f9		 idiv	 ecx
  00100	0f b7 45 f0	 movzx	 eax, WORD PTR _wPageIndex$[ebp]
  00104	3b d0		 cmp	 edx, eax
  00106	74 2c		 je	 SHORT $LN6@GetNextDis@2

; 1249 :         {
; 1250 :             pPage = FindReceivedPage(m_VisiblePageList[i % 800]);

  00108	0f b7 45 e8	 movzx	 eax, WORD PTR _i$140338[ebp]
  0010c	99		 cdq
  0010d	b9 20 03 00 00	 mov	 ecx, 800		; 00000320H
  00112	f7 f9		 idiv	 ecx
  00114	8b 45 e4	 mov	 eax, DWORD PTR _this$[ebp]
  00117	8b 8c 90 74 22
	00 00		 mov	 ecx, DWORD PTR [eax+edx*4+8820]
  0011e	51		 push	 ecx
  0011f	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  00122	e8 00 00 00 00	 call	 ?FindReceivedPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@@Z ; CVTDecoder::FindReceivedPage
  00127	89 45 f8	 mov	 DWORD PTR _pPage$[ebp], eax

; 1251 :             if (pPage != NULL)

  0012a	83 7d f8 00	 cmp	 DWORD PTR _pPage$[ebp], 0
  0012e	74 02		 je	 SHORT $LN2@GetNextDis@2

; 1252 :             {
; 1253 :                 break;

  00130	eb 02		 jmp	 SHORT $LN6@GetNextDis@2
$LN2@GetNextDis@2:

; 1254 :             }
; 1255 :         }

  00132	eb b2		 jmp	 SHORT $LN4@GetNextDis@2
$LN6@GetNextDis@2:

; 1256 :     }
; 1257 : 
; 1258 :     if (pPage != NULL)

  00134	83 7d f8 00	 cmp	 DWORD PTR _pPage$[ebp], 0
  00138	74 24		 je	 SHORT $LN1@GetNextDis@2

; 1259 :     {
; 1260 :         CopyPageForDisplay(pBuffer, pPage);

  0013a	8b 55 f8	 mov	 edx, DWORD PTR _pPage$[ebp]
  0013d	52		 push	 edx
  0013e	8b 45 0c	 mov	 eax, DWORD PTR _pBuffer$[ebp]
  00141	50		 push	 eax
  00142	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  00145	e8 00 00 00 00	 call	 ?CopyPageForDisplay@CVTDecoder@@IAEXPAU_VTPage@@0@Z ; CVTDecoder::CopyPageForDisplay

; 1261 :         UnsetUpdatedStates(pPage);

  0014a	8b 4d f8	 mov	 ecx, DWORD PTR _pPage$[ebp]
  0014d	51		 push	 ecx
  0014e	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  00151	e8 00 00 00 00	 call	 ?UnsetUpdatedStates@CVTDecoder@@IAEXPAU_VTPage@@@Z ; CVTDecoder::UnsetUpdatedStates

; 1262 : 
; 1263 :         dwNextPageCode = pPage->dwPageCode;

  00156	8b 55 f8	 mov	 edx, DWORD PTR _pPage$[ebp]
  00159	8b 02		 mov	 eax, DWORD PTR [edx]
  0015b	89 45 fc	 mov	 DWORD PTR _dwNextPageCode$[ebp], eax
$LN1@GetNextDis@2:

; 1264 :     }
; 1265 : 
; 1266 :     LeaveCriticalSection(&m_PageStoreMutex);

  0015e	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  00161	81 c1 94 2f 00
	00		 add	 ecx, 12180		; 00002f94H
  00167	51		 push	 ecx
  00168	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1267 : 
; 1268 :     return dwNextPageCode;

  0016e	8b 45 fc	 mov	 eax, DWORD PTR _dwNextPageCode$[ebp]

; 1269 : }

  00171	8b e5		 mov	 esp, ebp
  00173	5d		 pop	 ebp
  00174	c2 0c 00	 ret	 12			; 0000000cH
?GetNextDisplayPage@CVTDecoder@@QAEKKPAU_VTPage@@H@Z ENDP ; CVTDecoder::GetNextDisplayPage
_TEXT	ENDS
PUBLIC	?GetDisplayPage@CVTDecoder@@QAEKKPAU_VTPage@@@Z	; CVTDecoder::GetDisplayPage
; Function compile flags: /Odtp
;	COMDAT ?GetDisplayPage@CVTDecoder@@QAEKKPAU_VTPage@@@Z
_TEXT	SEGMENT
tv147 = -24						; size = 4
_this$ = -20						; size = 4
_wPageIndex$140307 = -16				; size = 2
_wPageHex$ = -12					; size = 2
_pPage$ = -8						; size = 4
_hPageList$ = -4					; size = 4
_dwPageCode$ = 8					; size = 4
_pBuffer$ = 12						; size = 4
?GetDisplayPage@CVTDecoder@@QAEKKPAU_VTPage@@@Z PROC	; CVTDecoder::GetDisplayPage, COMDAT
; _this$ = ecx

; 1152 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 18	 sub	 esp, 24			; 00000018H
  00006	89 4d ec	 mov	 DWORD PTR _this$[ebp], ecx

; 1153 :     WORD wPageHex = LOWORD(dwPageCode);

  00009	8b 45 08	 mov	 eax, DWORD PTR _dwPageCode$[ebp]
  0000c	25 ff ff 00 00	 and	 eax, 65535		; 0000ffffH
  00011	66 89 45 f4	 mov	 WORD PTR _wPageHex$[ebp], ax

; 1154 :     TVTPage** hPageList;
; 1155 :     TVTPage* pPage;
; 1156 : 
; 1157 :     if (IsNonVisiblePage(wPageHex))

  00015	0f b7 4d f4	 movzx	 ecx, WORD PTR _wPageHex$[ebp]
  00019	51		 push	 ecx
  0001a	e8 00 00 00 00	 call	 ?IsNonVisiblePage@CVTCommon@@SAHG@Z ; CVTCommon::IsNonVisiblePage
  0001f	83 c4 04	 add	 esp, 4
  00022	85 c0		 test	 eax, eax
  00024	74 26		 je	 SHORT $LN10@GetDisplay@3

; 1158 :     {
; 1159 :         if ((wPageHex & 0xFF) == 0xFF)

  00026	0f b7 55 f4	 movzx	 edx, WORD PTR _wPageHex$[ebp]
  0002a	81 e2 ff 00 00
	00		 and	 edx, 255		; 000000ffH
  00030	81 fa ff 00 00
	00		 cmp	 edx, 255		; 000000ffH
  00036	75 07		 jne	 SHORT $LN9@GetDisplay@3

; 1160 :         {
; 1161 :             return 0UL;

  00038	33 c0		 xor	 eax, eax
  0003a	e9 10 01 00 00	 jmp	 $LN11@GetDisplay@3
$LN9@GetDisplay@3:

; 1162 :         }
; 1163 : 
; 1164 :         hPageList = &m_NonVisiblePageList;

  0003f	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  00042	05 70 22 00 00	 add	 eax, 8816		; 00002270H
  00047	89 45 fc	 mov	 DWORD PTR _hPageList$[ebp], eax

; 1165 :     }
; 1166 :     else

  0004a	eb 35		 jmp	 SHORT $LN8@GetDisplay@3
$LN10@GetDisplay@3:

; 1167 :     {
; 1168 :         WORD wPageIndex = PageHex2ArrayIndex(wPageHex);

  0004c	0f b7 4d f4	 movzx	 ecx, WORD PTR _wPageHex$[ebp]
  00050	51		 push	 ecx
  00051	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  00054	e8 00 00 00 00	 call	 ?PageHex2ArrayIndex@CVTDecoder@@IAEGG@Z ; CVTDecoder::PageHex2ArrayIndex
  00059	66 89 45 f0	 mov	 WORD PTR _wPageIndex$140307[ebp], ax

; 1169 : 
; 1170 :         if (wPageIndex == 0xFFFF)

  0005d	0f b7 55 f0	 movzx	 edx, WORD PTR _wPageIndex$140307[ebp]
  00061	81 fa ff ff 00
	00		 cmp	 edx, 65535		; 0000ffffH
  00067	75 07		 jne	 SHORT $LN7@GetDisplay@3

; 1171 :         {
; 1172 :             return 0UL;

  00069	33 c0		 xor	 eax, eax
  0006b	e9 df 00 00 00	 jmp	 $LN11@GetDisplay@3
$LN7@GetDisplay@3:

; 1173 :         }
; 1174 : 
; 1175 :         hPageList = &m_VisiblePageList[wPageIndex];

  00070	0f b7 45 f0	 movzx	 eax, WORD PTR _wPageIndex$140307[ebp]
  00074	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  00077	8d 94 81 74 22
	00 00		 lea	 edx, DWORD PTR [ecx+eax*4+8820]
  0007e	89 55 fc	 mov	 DWORD PTR _hPageList$[ebp], edx
$LN8@GetDisplay@3:

; 1176 :     }
; 1177 : 
; 1178 :     EnterCriticalSection(&m_PageStoreMutex);

  00081	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  00084	05 94 2f 00 00	 add	 eax, 12180		; 00002f94H
  00089	50		 push	 eax
  0008a	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1179 : 
; 1180 :     if (HIWORD(dwPageCode) >= 0x3F7F)

  00090	8b 4d 08	 mov	 ecx, DWORD PTR _dwPageCode$[ebp]
  00093	c1 e9 10	 shr	 ecx, 16			; 00000010H
  00096	81 e1 ff ff 00
	00		 and	 ecx, 65535		; 0000ffffH
  0009c	0f b7 d1	 movzx	 edx, cx
  0009f	81 fa 7f 3f 00
	00		 cmp	 edx, 16255		; 00003f7fH
  000a5	7c 47		 jl	 SHORT $LN6@GetDisplay@3

; 1181 :     {
; 1182 :         pPage = FindReceivedPage(*hPageList);

  000a7	8b 45 fc	 mov	 eax, DWORD PTR _hPageList$[ebp]
  000aa	8b 08		 mov	 ecx, DWORD PTR [eax]
  000ac	51		 push	 ecx
  000ad	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  000b0	e8 00 00 00 00	 call	 ?FindReceivedPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@@Z ; CVTDecoder::FindReceivedPage
  000b5	89 45 f8	 mov	 DWORD PTR _pPage$[ebp], eax
$LN5@GetDisplay@3:

; 1183 : 
; 1184 :         while (pPage != NULL)

  000b8	83 7d f8 00	 cmp	 DWORD PTR _pPage$[ebp], 0
  000bc	74 2e		 je	 SHORT $LN4@GetDisplay@3

; 1185 :         {
; 1186 :             if (LOWORD(pPage->dwPageCode) == wPageHex)

  000be	8b 55 f8	 mov	 edx, DWORD PTR _pPage$[ebp]
  000c1	8b 02		 mov	 eax, DWORD PTR [edx]
  000c3	25 ff ff 00 00	 and	 eax, 65535		; 0000ffffH
  000c8	0f b7 c8	 movzx	 ecx, ax
  000cb	0f b7 55 f4	 movzx	 edx, WORD PTR _wPageHex$[ebp]
  000cf	3b ca		 cmp	 ecx, edx
  000d1	75 02		 jne	 SHORT $LN3@GetDisplay@3

; 1187 :             {
; 1188 :                 break;

  000d3	eb 17		 jmp	 SHORT $LN4@GetDisplay@3
$LN3@GetDisplay@3:

; 1189 :             }
; 1190 :             pPage = FindReceivedPage(pPage->pNextPage);

  000d5	8b 45 f8	 mov	 eax, DWORD PTR _pPage$[ebp]
  000d8	8b 88 54 04 00
	00		 mov	 ecx, DWORD PTR [eax+1108]
  000de	51		 push	 ecx
  000df	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  000e2	e8 00 00 00 00	 call	 ?FindReceivedPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@@Z ; CVTDecoder::FindReceivedPage
  000e7	89 45 f8	 mov	 DWORD PTR _pPage$[ebp], eax

; 1191 :         }

  000ea	eb cc		 jmp	 SHORT $LN5@GetDisplay@3
$LN4@GetDisplay@3:

; 1192 :     }
; 1193 :     else

  000ec	eb 15		 jmp	 SHORT $LN2@GetDisplay@3
$LN6@GetDisplay@3:

; 1194 :     {
; 1195 :         pPage = FindSubPage(*hPageList, dwPageCode);

  000ee	8b 55 08	 mov	 edx, DWORD PTR _dwPageCode$[ebp]
  000f1	52		 push	 edx
  000f2	8b 45 fc	 mov	 eax, DWORD PTR _hPageList$[ebp]
  000f5	8b 08		 mov	 ecx, DWORD PTR [eax]
  000f7	51		 push	 ecx
  000f8	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  000fb	e8 00 00 00 00	 call	 ?FindSubPage@CVTDecoder@@IAEPAU_VTPage@@PAU2@K@Z ; CVTDecoder::FindSubPage
  00100	89 45 f8	 mov	 DWORD PTR _pPage$[ebp], eax
$LN2@GetDisplay@3:

; 1196 :     }
; 1197 : 
; 1198 :     if (pPage != NULL)

  00103	83 7d f8 00	 cmp	 DWORD PTR _pPage$[ebp], 0
  00107	74 1c		 je	 SHORT $LN1@GetDisplay@3

; 1199 :     {
; 1200 :         CopyPageForDisplay(pBuffer, pPage);

  00109	8b 55 f8	 mov	 edx, DWORD PTR _pPage$[ebp]
  0010c	52		 push	 edx
  0010d	8b 45 0c	 mov	 eax, DWORD PTR _pBuffer$[ebp]
  00110	50		 push	 eax
  00111	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  00114	e8 00 00 00 00	 call	 ?CopyPageForDisplay@CVTDecoder@@IAEXPAU_VTPage@@0@Z ; CVTDecoder::CopyPageForDisplay

; 1201 :         UnsetUpdatedStates(pPage);

  00119	8b 4d f8	 mov	 ecx, DWORD PTR _pPage$[ebp]
  0011c	51		 push	 ecx
  0011d	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  00120	e8 00 00 00 00	 call	 ?UnsetUpdatedStates@CVTDecoder@@IAEXPAU_VTPage@@@Z ; CVTDecoder::UnsetUpdatedStates
$LN1@GetDisplay@3:

; 1202 :     }
; 1203 : 
; 1204 :     LeaveCriticalSection(&m_PageStoreMutex);

  00125	8b 55 ec	 mov	 edx, DWORD PTR _this$[ebp]
  00128	81 c2 94 2f 00
	00		 add	 edx, 12180		; 00002f94H
  0012e	52		 push	 edx
  0012f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1205 : 
; 1206 :     return pPage != NULL ? pPage->dwPageCode : 0UL;

  00135	83 7d f8 00	 cmp	 DWORD PTR _pPage$[ebp], 0
  00139	74 0a		 je	 SHORT $LN13@GetDisplay@3
  0013b	8b 45 f8	 mov	 eax, DWORD PTR _pPage$[ebp]
  0013e	8b 08		 mov	 ecx, DWORD PTR [eax]
  00140	89 4d e8	 mov	 DWORD PTR tv147[ebp], ecx
  00143	eb 07		 jmp	 SHORT $LN14@GetDisplay@3
$LN13@GetDisplay@3:
  00145	c7 45 e8 00 00
	00 00		 mov	 DWORD PTR tv147[ebp], 0
$LN14@GetDisplay@3:
  0014c	8b 45 e8	 mov	 eax, DWORD PTR tv147[ebp]
$LN11@GetDisplay@3:

; 1207 : }

  0014f	8b e5		 mov	 esp, ebp
  00151	5d		 pop	 ebp
  00152	c2 08 00	 ret	 8
?GetDisplayPage@CVTDecoder@@QAEKKPAU_VTPage@@@Z ENDP	; CVTDecoder::GetDisplayPage
_TEXT	ENDS
PUBLIC	?GetDisplayHeader@CVTDecoder@@QAEXPAU_VTPage@@H@Z ; CVTDecoder::GetDisplayHeader
; Function compile flags: /Odtp
;	COMDAT ?GetDisplayHeader@CVTDecoder@@QAEXPAU_VTPage@@H@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_pBuffer$ = 8						; size = 4
_bClockOnly$ = 12					; size = 4
?GetDisplayHeader@CVTDecoder@@QAEXPAU_VTPage@@H@Z PROC	; CVTDecoder::GetDisplayHeader, COMDAT
; _this$ = ecx

; 1132 : {

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

; 1133 :     if (bClockOnly != FALSE)

  00007	83 7d 0c 00	 cmp	 DWORD PTR _bClockOnly$[ebp], 0
  0000b	74 4f		 je	 SHORT $LN2@GetDisplay@4

; 1134 :     {
; 1135 :         EnterCriticalSection(&m_CommonHeaderMutex);

  0000d	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00010	05 64 2f 00 00	 add	 eax, 12132		; 00002f64H
  00015	50		 push	 eax
  00016	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1136 :         CopyMemory(&pBuffer->Frame[0][32], &m_CommonHeader[24], 8);

  0001c	6a 08		 push	 8
  0001e	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00021	81 c1 61 22 00
	00		 add	 ecx, 8801		; 00002261H
  00027	51		 push	 ecx
  00028	8b 55 08	 mov	 edx, DWORD PTR _pBuffer$[ebp]
  0002b	83 c2 26	 add	 edx, 38			; 00000026H
  0002e	52		 push	 edx
  0002f	e8 00 00 00 00	 call	 _memcpy
  00034	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1137 :         CheckParity(&pBuffer->Frame[0][32], 8, TRUE);

  00037	6a 01		 push	 1
  00039	6a 08		 push	 8
  0003b	8b 45 08	 mov	 eax, DWORD PTR _pBuffer$[ebp]
  0003e	83 c0 26	 add	 eax, 38			; 00000026H
  00041	50		 push	 eax
  00042	e8 00 00 00 00	 call	 ?CheckParity@CVTCommon@@SAHPAEKH@Z ; CVTCommon::CheckParity
  00047	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1138 :         LeaveCriticalSection(&m_CommonHeaderMutex);

  0004a	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0004d	81 c1 64 2f 00
	00		 add	 ecx, 12132		; 00002f64H
  00053	51		 push	 ecx
  00054	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1139 :     }
; 1140 :     else

  0005a	eb 4c		 jmp	 SHORT $LN1@GetDisplay@4
$LN2@GetDisplay@4:

; 1141 :     {
; 1142 :         EnterCriticalSection(&m_CommonHeaderMutex);

  0005c	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  0005f	81 c2 64 2f 00
	00		 add	 edx, 12132		; 00002f64H
  00065	52		 push	 edx
  00066	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1143 :         CopyMemory(&pBuffer->Frame[0][8], m_CommonHeader, 32);

  0006c	6a 20		 push	 32			; 00000020H
  0006e	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00071	05 49 22 00 00	 add	 eax, 8777		; 00002249H
  00076	50		 push	 eax
  00077	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  0007a	83 c1 0e	 add	 ecx, 14			; 0000000eH
  0007d	51		 push	 ecx
  0007e	e8 00 00 00 00	 call	 _memcpy
  00083	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1144 :         CheckParity(&pBuffer->Frame[0][8], 32, TRUE);

  00086	6a 01		 push	 1
  00088	6a 20		 push	 32			; 00000020H
  0008a	8b 55 08	 mov	 edx, DWORD PTR _pBuffer$[ebp]
  0008d	83 c2 0e	 add	 edx, 14			; 0000000eH
  00090	52		 push	 edx
  00091	e8 00 00 00 00	 call	 ?CheckParity@CVTCommon@@SAHPAEKH@Z ; CVTCommon::CheckParity
  00096	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1145 :         LeaveCriticalSection(&m_CommonHeaderMutex);

  00099	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0009c	05 64 2f 00 00	 add	 eax, 12132		; 00002f64H
  000a1	50		 push	 eax
  000a2	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4
$LN1@GetDisplay@4:

; 1146 :     }
; 1147 :     pBuffer->LineState[0] |= CACHESTATE_HASDATA | CACHESTATE_UPDATED;

  000a8	8b 4d 08	 mov	 ecx, DWORD PTR _pBuffer$[ebp]
  000ab	0f b6 91 16 04
	00 00		 movzx	 edx, BYTE PTR [ecx+1046]
  000b2	83 ca 03	 or	 edx, 3
  000b5	8b 45 08	 mov	 eax, DWORD PTR _pBuffer$[ebp]
  000b8	88 90 16 04 00
	00		 mov	 BYTE PTR [eax+1046], dl

; 1148 : }

  000be	8b e5		 mov	 esp, ebp
  000c0	5d		 pop	 ebp
  000c1	c2 08 00	 ret	 8
?GetDisplayHeader@CVTDecoder@@QAEXPAU_VTPage@@H@Z ENDP	; CVTDecoder::GetDisplayHeader
_TEXT	ENDS
PUBLIC	?HighGranularityLineCache@CVTDecoder@@AAEHPAU_VTPage@@EPAE@Z ; CVTDecoder::HighGranularityLineCache
; Function compile flags: /Odtp
;	COMDAT ?HighGranularityLineCache@CVTDecoder@@AAEHPAU_VTPage@@EPAE@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
_i$140151 = -12						; size = 4
_bHasError$ = -8					; size = 4
_bLineUpdated$ = -4					; size = 4
_pPage$ = 8						; size = 4
_nRow$ = 12						; size = 1
_pSource$ = 16						; size = 4
?HighGranularityLineCache@CVTDecoder@@AAEHPAU_VTPage@@EPAE@Z PROC ; CVTDecoder::HighGranularityLineCache, COMDAT
; _this$ = ecx

; 832  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 10	 sub	 esp, 16			; 00000010H
  00006	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx

; 833  :     BOOL bLineUpdated = FALSE;

  00009	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _bLineUpdated$[ebp], 0

; 834  :     BOOL bHasError = FALSE;

  00010	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _bHasError$[ebp], 0

; 835  : 
; 836  :     for (int i = 0; i < 40; i++)

  00017	c7 45 f4 00 00
	00 00		 mov	 DWORD PTR _i$140151[ebp], 0
  0001e	eb 09		 jmp	 SHORT $LN8@HighGranul
$LN7@HighGranul:
  00020	8b 45 f4	 mov	 eax, DWORD PTR _i$140151[ebp]
  00023	83 c0 01	 add	 eax, 1
  00026	89 45 f4	 mov	 DWORD PTR _i$140151[ebp], eax
$LN8@HighGranul:
  00029	83 7d f4 28	 cmp	 DWORD PTR _i$140151[ebp], 40 ; 00000028H
  0002d	7d 64		 jge	 SHORT $LN6@HighGranul

; 837  :     {
; 838  :         if (CheckParity(&pSource[i]) != FALSE)

  0002f	6a 00		 push	 0
  00031	6a 01		 push	 1
  00033	8b 4d 10	 mov	 ecx, DWORD PTR _pSource$[ebp]
  00036	03 4d f4	 add	 ecx, DWORD PTR _i$140151[ebp]
  00039	51		 push	 ecx
  0003a	e8 00 00 00 00	 call	 ?CheckParity@CVTCommon@@SAHPAEKH@Z ; CVTCommon::CheckParity
  0003f	83 c4 0c	 add	 esp, 12			; 0000000cH
  00042	85 c0		 test	 eax, eax
  00044	74 22		 je	 SHORT $LN5@HighGranul

; 839  :         {
; 840  :             pPage->Frame[nRow][i] = pSource[i];

  00046	0f b6 55 0c	 movzx	 edx, BYTE PTR _nRow$[ebp]
  0004a	6b d2 28	 imul	 edx, 40			; 00000028H
  0004d	03 55 f4	 add	 edx, DWORD PTR _i$140151[ebp]
  00050	8b 45 10	 mov	 eax, DWORD PTR _pSource$[ebp]
  00053	03 45 f4	 add	 eax, DWORD PTR _i$140151[ebp]
  00056	8b 4d 08	 mov	 ecx, DWORD PTR _pPage$[ebp]
  00059	8a 00		 mov	 al, BYTE PTR [eax]
  0005b	88 44 11 06	 mov	 BYTE PTR [ecx+edx+6], al

; 841  :             bLineUpdated = TRUE;

  0005f	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _bLineUpdated$[ebp], 1

; 842  :         }
; 843  :         else

  00066	eb 29		 jmp	 SHORT $LN4@HighGranul
$LN5@HighGranul:

; 844  :         {
; 845  :             if (CheckParity(&pPage->Frame[nRow][i]) == FALSE)

  00068	6a 00		 push	 0
  0006a	6a 01		 push	 1
  0006c	0f b6 4d 0c	 movzx	 ecx, BYTE PTR _nRow$[ebp]
  00070	6b c9 28	 imul	 ecx, 40			; 00000028H
  00073	03 4d f4	 add	 ecx, DWORD PTR _i$140151[ebp]
  00076	8b 55 08	 mov	 edx, DWORD PTR _pPage$[ebp]
  00079	8d 44 0a 06	 lea	 eax, DWORD PTR [edx+ecx+6]
  0007d	50		 push	 eax
  0007e	e8 00 00 00 00	 call	 ?CheckParity@CVTCommon@@SAHPAEKH@Z ; CVTCommon::CheckParity
  00083	83 c4 0c	 add	 esp, 12			; 0000000cH
  00086	85 c0		 test	 eax, eax
  00088	75 07		 jne	 SHORT $LN4@HighGranul

; 846  :             {
; 847  :                 bHasError = TRUE;

  0008a	c7 45 f8 01 00
	00 00		 mov	 DWORD PTR _bHasError$[ebp], 1
$LN4@HighGranul:

; 848  :             }
; 849  :         }
; 850  :     }

  00091	eb 8d		 jmp	 SHORT $LN7@HighGranul
$LN6@HighGranul:

; 851  : 
; 852  :     pPage->LineState[nRow] = CACHESTATE_HASDATA;

  00093	0f b6 4d 0c	 movzx	 ecx, BYTE PTR _nRow$[ebp]
  00097	8b 55 08	 mov	 edx, DWORD PTR _pPage$[ebp]
  0009a	c6 84 0a 16 04
	00 00 01	 mov	 BYTE PTR [edx+ecx+1046], 1

; 853  : 
; 854  :     if (bLineUpdated != FALSE)

  000a2	83 7d fc 00	 cmp	 DWORD PTR _bLineUpdated$[ebp], 0
  000a6	74 20		 je	 SHORT $LN2@HighGranul

; 855  :     {
; 856  :         pPage->LineState[nRow] |= CACHESTATE_UPDATED;

  000a8	0f b6 45 0c	 movzx	 eax, BYTE PTR _nRow$[ebp]
  000ac	8b 4d 08	 mov	 ecx, DWORD PTR _pPage$[ebp]
  000af	0f b6 94 01 16
	04 00 00	 movzx	 edx, BYTE PTR [ecx+eax+1046]
  000b7	83 ca 02	 or	 edx, 2
  000ba	0f b6 45 0c	 movzx	 eax, BYTE PTR _nRow$[ebp]
  000be	8b 4d 08	 mov	 ecx, DWORD PTR _pPage$[ebp]
  000c1	88 94 01 16 04
	00 00		 mov	 BYTE PTR [ecx+eax+1046], dl
$LN2@HighGranul:

; 857  :     }
; 858  : 
; 859  :     if (bHasError != FALSE)

  000c8	83 7d f8 00	 cmp	 DWORD PTR _bHasError$[ebp], 0
  000cc	74 20		 je	 SHORT $LN1@HighGranul

; 860  :     {
; 861  :         pPage->LineState[nRow] |= CACHESTATE_HASERROR;

  000ce	0f b6 55 0c	 movzx	 edx, BYTE PTR _nRow$[ebp]
  000d2	8b 45 08	 mov	 eax, DWORD PTR _pPage$[ebp]
  000d5	0f b6 8c 10 16
	04 00 00	 movzx	 ecx, BYTE PTR [eax+edx+1046]
  000dd	83 c9 04	 or	 ecx, 4
  000e0	0f b6 55 0c	 movzx	 edx, BYTE PTR _nRow$[ebp]
  000e4	8b 45 08	 mov	 eax, DWORD PTR _pPage$[ebp]
  000e7	88 8c 10 16 04
	00 00		 mov	 BYTE PTR [eax+edx+1046], cl
$LN1@HighGranul:

; 862  :     }
; 863  : 
; 864  :     return bLineUpdated;

  000ee	8b 45 fc	 mov	 eax, DWORD PTR _bLineUpdated$[ebp]

; 865  : }

  000f1	8b e5		 mov	 esp, ebp
  000f3	5d		 pop	 ebp
  000f4	c2 0c 00	 ret	 12			; 0000000cH
?HighGranularityLineCache@CVTDecoder@@AAEHPAU_VTPage@@EPAE@Z ENDP ; CVTDecoder::HighGranularityLineCache
_TEXT	ENDS
PUBLIC	?CompleteMagazine@CVTDecoder@@AAEXPAU_MagazineState@1@@Z ; CVTDecoder::CompleteMagazine
; Function compile flags: /Odtp
;	COMDAT ?CompleteMagazine@CVTDecoder@@AAEXPAU_MagazineState@1@@Z
_TEXT	SEGMENT
_this$ = -52						; size = 4
_i$140134 = -48						; size = 4
_n$140125 = -44						; size = 4
_i$140105 = -40						; size = 4
_bPageChanged$ = -36					; size = 4
_bPageUpdate$ = -32					; size = 4
_wPageSubCode$ = -28					; size = 2
_bFlushLines$ = -24					; size = 4
_wPageHex$ = -20					; size = 2
_pPage$ = -16						; size = 4
_bErasePage$ = -12					; size = 4
_bLinesAdded$ = -8					; size = 4
_wControlBits$ = -4					; size = 2
_magazineState$ = 8					; size = 4
?CompleteMagazine@CVTDecoder@@AAEXPAU_MagazineState@1@@Z PROC ; CVTDecoder::CompleteMagazine, COMDAT
; _this$ = ecx

; 613  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 34	 sub	 esp, 52			; 00000034H
  00006	56		 push	 esi
  00007	89 4d cc	 mov	 DWORD PTR _this$[ebp], ecx

; 614  :     WORD wPageHex = magazineState->wPageHex;

  0000a	8b 45 08	 mov	 eax, DWORD PTR _magazineState$[ebp]
  0000d	66 8b 08	 mov	 cx, WORD PTR [eax]
  00010	66 89 4d ec	 mov	 WORD PTR _wPageHex$[ebp], cx

; 615  :     WORD wPageSubCode = magazineState->wPageSubCode;

  00014	8b 55 08	 mov	 edx, DWORD PTR _magazineState$[ebp]
  00017	66 8b 42 02	 mov	 ax, WORD PTR [edx+2]
  0001b	66 89 45 e4	 mov	 WORD PTR _wPageSubCode$[ebp], ax

; 616  :     WORD wControlBits = magazineState->wControlBits;

  0001f	8b 4d 08	 mov	 ecx, DWORD PTR _magazineState$[ebp]
  00022	66 8b 51 08	 mov	 dx, WORD PTR [ecx+8]
  00026	66 89 55 fc	 mov	 WORD PTR _wControlBits$[ebp], dx

; 617  : 
; 618  :     BOOL bErasePage = (wControlBits & VTCONTROL_ERASEPAGE) != 0;

  0002a	0f b7 45 fc	 movzx	 eax, WORD PTR _wControlBits$[ebp]
  0002e	83 e0 08	 and	 eax, 8
  00031	f7 d8		 neg	 eax
  00033	1b c0		 sbb	 eax, eax
  00035	f7 d8		 neg	 eax
  00037	89 45 f4	 mov	 DWORD PTR _bErasePage$[ebp], eax

; 619  :     BOOL bPageUpdate = (wControlBits & VTCONTROL_UPDATE) != 0;

  0003a	0f b7 4d fc	 movzx	 ecx, WORD PTR _wControlBits$[ebp]
  0003e	81 e1 80 00 00
	00		 and	 ecx, 128		; 00000080H
  00044	f7 d9		 neg	 ecx
  00046	1b c9		 sbb	 ecx, ecx
  00048	f7 d9		 neg	 ecx
  0004a	89 4d e0	 mov	 DWORD PTR _bPageUpdate$[ebp], ecx

; 620  :     BOOL bFlushLines = FALSE;

  0004d	c7 45 e8 00 00
	00 00		 mov	 DWORD PTR _bFlushLines$[ebp], 0

; 621  : 
; 622  :     BOOL bLinesAdded = FALSE;

  00054	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _bLinesAdded$[ebp], 0

; 623  :     BOOL bPageChanged = FALSE;

  0005b	c7 45 dc 00 00
	00 00		 mov	 DWORD PTR _bPageChanged$[ebp], 0

; 624  : 
; 625  :     EnterCriticalSection(&m_PageStoreMutex);

  00062	8b 55 cc	 mov	 edx, DWORD PTR _this$[ebp]
  00065	81 c2 94 2f 00
	00		 add	 edx, 12180		; 00002f94H
  0006b	52		 push	 edx
  0006c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 626  : 
; 627  :     TVTPage *pPage = GetPageStore(magazineState->dwPageCode, TRUE);

  00072	6a 01		 push	 1
  00074	8b 45 08	 mov	 eax, DWORD PTR _magazineState$[ebp]
  00077	8b 08		 mov	 ecx, DWORD PTR [eax]
  00079	51		 push	 ecx
  0007a	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  0007d	e8 00 00 00 00	 call	 ?GetPageStore@CVTDecoder@@IAEPAU_VTPage@@KH@Z ; CVTDecoder::GetPageStore
  00082	89 45 f0	 mov	 DWORD PTR _pPage$[ebp], eax

; 628  : 
; 629  :     // Erase the storage if this is the first receive
; 630  :     if (pPage->bReceived == FALSE)

  00085	8b 55 f0	 mov	 edx, DWORD PTR _pPage$[ebp]
  00088	83 ba 4c 04 00
	00 00		 cmp	 DWORD PTR [edx+1100], 0
  0008f	75 07		 jne	 SHORT $LN50@CompleteMa

; 631  :     {
; 632  :         bErasePage = TRUE;

  00091	c7 45 f4 01 00
	00 00		 mov	 DWORD PTR _bErasePage$[ebp], 1
$LN50@CompleteMa:

; 633  :     }
; 634  : 
; 635  :     // Erase the page if inhibit display is set
; 636  :     if ((wControlBits & VTCONTROL_INHIBITDISP) != 0)

  00098	0f b7 45 fc	 movzx	 eax, WORD PTR _wControlBits$[ebp]
  0009c	25 00 02 00 00	 and	 eax, 512		; 00000200H
  000a1	74 07		 je	 SHORT $LN49@CompleteMa

; 637  :     {
; 638  :         bErasePage = TRUE;

  000a3	c7 45 f4 01 00
	00 00		 mov	 DWORD PTR _bErasePage$[ebp], 1
$LN49@CompleteMa:

; 639  :     }
; 640  : 
; 641  :     // Make sure old lines aren't retained if erase page
; 642  :     if (bErasePage != FALSE)

  000aa	83 7d f4 00	 cmp	 DWORD PTR _bErasePage$[ebp], 0
  000ae	74 07		 je	 SHORT $LN48@CompleteMa

; 643  :     {
; 644  :         bPageUpdate = TRUE;

  000b0	c7 45 e0 01 00
	00 00		 mov	 DWORD PTR _bPageUpdate$[ebp], 1
$LN48@CompleteMa:

; 645  :     }
; 646  : 
; 647  :     if (bPageUpdate != FALSE)

  000b7	83 7d e0 00	 cmp	 DWORD PTR _bPageUpdate$[ebp], 0
  000bb	74 07		 je	 SHORT $LN47@CompleteMa

; 648  :     {
; 649  :         bFlushLines = TRUE;

  000bd	c7 45 e8 01 00
	00 00		 mov	 DWORD PTR _bFlushLines$[ebp], 1
$LN47@CompleteMa:

; 650  :     }
; 651  : 
; 652  :     // Copy the header if it's not suppressed
; 653  :     if ((wControlBits & VTCONTROL_SUPRESSHEADER) != 0)

  000c4	0f b7 4d fc	 movzx	 ecx, WORD PTR _wControlBits$[ebp]
  000c8	83 e1 40	 and	 ecx, 64			; 00000040H
  000cb	74 38		 je	 SHORT $LN46@CompleteMa

; 654  :     {
; 655  :         if ((pPage->LineState[0] & CACHESTATE_HASDATA) != 0)

  000cd	8b 55 f0	 mov	 edx, DWORD PTR _pPage$[ebp]
  000d0	0f b6 82 16 04
	00 00		 movzx	 eax, BYTE PTR [edx+1046]
  000d7	83 e0 01	 and	 eax, 1
  000da	74 24		 je	 SHORT $LN45@CompleteMa

; 656  :         {
; 657  :             FillMemory(&pPage->Frame[0][8], 32, 0x20);

  000dc	6a 20		 push	 32			; 00000020H
  000de	6a 20		 push	 32			; 00000020H
  000e0	8b 4d f0	 mov	 ecx, DWORD PTR _pPage$[ebp]
  000e3	83 c1 0e	 add	 ecx, 14			; 0000000eH
  000e6	51		 push	 ecx
  000e7	e8 00 00 00 00	 call	 _memset
  000ec	83 c4 0c	 add	 esp, 12			; 0000000cH

; 658  :             pPage->LineState[0] = CACHESTATE_UPDATED;

  000ef	8b 55 f0	 mov	 edx, DWORD PTR _pPage$[ebp]
  000f2	c6 82 16 04 00
	00 02		 mov	 BYTE PTR [edx+1046], 2

; 659  :             bPageChanged = TRUE;

  000f9	c7 45 dc 01 00
	00 00		 mov	 DWORD PTR _bPageChanged$[ebp], 1
$LN45@CompleteMa:

; 660  :         }
; 661  :     }
; 662  :     else

  00100	e9 cb 00 00 00	 jmp	 $LN44@CompleteMa
$LN46@CompleteMa:

; 663  :     {
; 664  :         // Only copy the header if it is an update or
; 665  :         // if the previous reception had an error
; 666  :         if (bFlushLines != FALSE ||
; 667  :             (pPage->LineState[0] & CACHESTATE_HASDATA) == 0 ||
; 668  :             (pPage->LineState[0] & CACHESTATE_HASERROR) != 0)

  00105	83 7d e8 00	 cmp	 DWORD PTR _bFlushLines$[ebp], 0
  00109	75 1e		 jne	 SHORT $LN42@CompleteMa
  0010b	8b 45 f0	 mov	 eax, DWORD PTR _pPage$[ebp]
  0010e	0f b6 88 16 04
	00 00		 movzx	 ecx, BYTE PTR [eax+1046]
  00115	83 e1 01	 and	 ecx, 1
  00118	74 0f		 je	 SHORT $LN42@CompleteMa
  0011a	8b 55 f0	 mov	 edx, DWORD PTR _pPage$[ebp]
  0011d	0f b6 82 16 04
	00 00		 movzx	 eax, BYTE PTR [edx+1046]
  00124	83 e0 04	 and	 eax, 4
  00127	74 58		 je	 SHORT $LN43@CompleteMa
$LN42@CompleteMa:

; 669  :         {
; 670  :             pPage->LineState[0] = CACHESTATE_HASDATA | CACHESTATE_UPDATED;

  00129	8b 4d f0	 mov	 ecx, DWORD PTR _pPage$[ebp]
  0012c	c6 81 16 04 00
	00 03		 mov	 BYTE PTR [ecx+1046], 3

; 671  : 
; 672  :             if (CheckParity(magazineState->Header, 32) == FALSE)

  00133	6a 00		 push	 0
  00135	6a 20		 push	 32			; 00000020H
  00137	8b 55 08	 mov	 edx, DWORD PTR _magazineState$[ebp]
  0013a	83 c2 0a	 add	 edx, 10			; 0000000aH
  0013d	52		 push	 edx
  0013e	e8 00 00 00 00	 call	 ?CheckParity@CVTCommon@@SAHPAEKH@Z ; CVTCommon::CheckParity
  00143	83 c4 0c	 add	 esp, 12			; 0000000cH
  00146	85 c0		 test	 eax, eax
  00148	75 16		 jne	 SHORT $LN41@CompleteMa

; 673  :             {
; 674  :                 pPage->LineState[0] |= CACHESTATE_HASERROR;

  0014a	8b 45 f0	 mov	 eax, DWORD PTR _pPage$[ebp]
  0014d	0f b6 88 16 04
	00 00		 movzx	 ecx, BYTE PTR [eax+1046]
  00154	83 c9 04	 or	 ecx, 4
  00157	8b 55 f0	 mov	 edx, DWORD PTR _pPage$[ebp]
  0015a	88 8a 16 04 00
	00		 mov	 BYTE PTR [edx+1046], cl
$LN41@CompleteMa:

; 675  :             }
; 676  : 
; 677  :             CopyMemory(&pPage->Frame[0][8], magazineState->Header, 32);

  00160	6a 20		 push	 32			; 00000020H
  00162	8b 45 08	 mov	 eax, DWORD PTR _magazineState$[ebp]
  00165	83 c0 0a	 add	 eax, 10			; 0000000aH
  00168	50		 push	 eax
  00169	8b 4d f0	 mov	 ecx, DWORD PTR _pPage$[ebp]
  0016c	83 c1 0e	 add	 ecx, 14			; 0000000eH
  0016f	51		 push	 ecx
  00170	e8 00 00 00 00	 call	 _memcpy
  00175	83 c4 0c	 add	 esp, 12			; 0000000cH

; 678  :             bPageChanged = TRUE;

  00178	c7 45 dc 01 00
	00 00		 mov	 DWORD PTR _bPageChanged$[ebp], 1
  0017f	eb 4f		 jmp	 SHORT $LN44@CompleteMa
$LN43@CompleteMa:

; 679  :         }
; 680  :         else if (m_CachingControl == DECODERCACHE_SECONDCHANCE)

  00181	8b 55 cc	 mov	 edx, DWORD PTR _this$[ebp]
  00184	0f b6 82 50 2f
	00 00		 movzx	 eax, BYTE PTR [edx+12112]
  0018b	83 f8 01	 cmp	 eax, 1
  0018e	75 40		 jne	 SHORT $LN44@CompleteMa

; 681  :         {
; 682  :             // If second chance error correction is on, copy the
; 683  :             // line regardless, as long as the new line is error
; 684  :             // free.
; 685  :             if (CheckParity(magazineState->Header, 32) != FALSE)

  00190	6a 00		 push	 0
  00192	6a 20		 push	 32			; 00000020H
  00194	8b 4d 08	 mov	 ecx, DWORD PTR _magazineState$[ebp]
  00197	83 c1 0a	 add	 ecx, 10			; 0000000aH
  0019a	51		 push	 ecx
  0019b	e8 00 00 00 00	 call	 ?CheckParity@CVTCommon@@SAHPAEKH@Z ; CVTCommon::CheckParity
  001a0	83 c4 0c	 add	 esp, 12			; 0000000cH
  001a3	85 c0		 test	 eax, eax
  001a5	74 29		 je	 SHORT $LN44@CompleteMa

; 686  :             {
; 687  :                 pPage->LineState[0] = CACHESTATE_HASDATA | CACHESTATE_UPDATED;

  001a7	8b 55 f0	 mov	 edx, DWORD PTR _pPage$[ebp]
  001aa	c6 82 16 04 00
	00 03		 mov	 BYTE PTR [edx+1046], 3

; 688  :                 CopyMemory(&pPage->Frame[0][8], magazineState->Header, 32);

  001b1	6a 20		 push	 32			; 00000020H
  001b3	8b 45 08	 mov	 eax, DWORD PTR _magazineState$[ebp]
  001b6	83 c0 0a	 add	 eax, 10			; 0000000aH
  001b9	50		 push	 eax
  001ba	8b 4d f0	 mov	 ecx, DWORD PTR _pPage$[ebp]
  001bd	83 c1 0e	 add	 ecx, 14			; 0000000eH
  001c0	51		 push	 ecx
  001c1	e8 00 00 00 00	 call	 _memcpy
  001c6	83 c4 0c	 add	 esp, 12			; 0000000cH

; 689  :                 bPageChanged = TRUE;

  001c9	c7 45 dc 01 00
	00 00		 mov	 DWORD PTR _bPageChanged$[ebp], 1
$LN44@CompleteMa:

; 690  :             }
; 691  :         }
; 692  :     }
; 693  : 
; 694  :     // Some broadcasters may not explicitly set update for
; 695  :     // subtitles but it needs to be set for subtitles to change
; 696  :     if ((wControlBits & VTCONTROL_SUBTITLE) != 0)

  001d0	0f b7 55 fc	 movzx	 edx, WORD PTR _wControlBits$[ebp]
  001d4	83 e2 20	 and	 edx, 32			; 00000020H
  001d7	74 07		 je	 SHORT $LN37@CompleteMa

; 697  :     {
; 698  :         bFlushLines = TRUE;

  001d9	c7 45 e8 01 00
	00 00		 mov	 DWORD PTR _bFlushLines$[ebp], 1
$LN37@CompleteMa:

; 699  :     }
; 700  : 
; 701  :     if (m_CachingControl == DECODERCACHE_ALWAYSUPDATE)

  001e0	8b 45 cc	 mov	 eax, DWORD PTR _this$[ebp]
  001e3	0f b6 88 50 2f
	00 00		 movzx	 ecx, BYTE PTR [eax+12112]
  001ea	83 f9 02	 cmp	 ecx, 2
  001ed	75 07		 jne	 SHORT $LN36@CompleteMa

; 702  :     {
; 703  :         bFlushLines = TRUE;

  001ef	c7 45 e8 01 00
	00 00		 mov	 DWORD PTR _bFlushLines$[ebp], 1
$LN36@CompleteMa:

; 704  :     }
; 705  : 
; 706  :     // Copy the display lines
; 707  :     for (int i = 1; i < 26; i++)

  001f6	c7 45 d8 01 00
	00 00		 mov	 DWORD PTR _i$140105[ebp], 1
  001fd	eb 09		 jmp	 SHORT $LN35@CompleteMa
$LN34@CompleteMa:
  001ff	8b 55 d8	 mov	 edx, DWORD PTR _i$140105[ebp]
  00202	83 c2 01	 add	 edx, 1
  00205	89 55 d8	 mov	 DWORD PTR _i$140105[ebp], edx
$LN35@CompleteMa:
  00208	83 7d d8 1a	 cmp	 DWORD PTR _i$140105[ebp], 26 ; 0000001aH
  0020c	0f 8d 0c 02 00
	00		 jge	 $LN33@CompleteMa

; 708  :     {
; 709  :         if (magazineState->bLineReceived[i-1] != FALSE &&
; 710  :             (wControlBits & VTCONTROL_INHIBITDISP) == 0)

  00212	8b 45 08	 mov	 eax, DWORD PTR _magazineState$[ebp]
  00215	03 45 d8	 add	 eax, DWORD PTR _i$140105[ebp]
  00218	0f b6 88 11 04
	00 00		 movzx	 ecx, BYTE PTR [eax+1041]
  0021f	85 c9		 test	 ecx, ecx
  00221	0f 84 ac 01 00
	00		 je	 $LN32@CompleteMa
  00227	0f b7 55 fc	 movzx	 edx, WORD PTR _wControlBits$[ebp]
  0022b	81 e2 00 02 00
	00		 and	 edx, 512		; 00000200H
  00231	0f 85 9c 01 00
	00		 jne	 $LN32@CompleteMa

; 711  :         {
; 712  :             // Only copy the line if it is an update or
; 713  :             // if the previous reception had an error
; 714  :             if (bFlushLines != FALSE ||
; 715  :                 (pPage->LineState[i] & CACHESTATE_HASDATA) == 0 ||
; 716  :                 (pPage->LineState[i] & CACHESTATE_HASERROR) != 0)

  00237	83 7d e8 00	 cmp	 DWORD PTR _bFlushLines$[ebp], 0
  0023b	75 28		 jne	 SHORT $LN30@CompleteMa
  0023d	8b 45 f0	 mov	 eax, DWORD PTR _pPage$[ebp]
  00240	03 45 d8	 add	 eax, DWORD PTR _i$140105[ebp]
  00243	0f b6 88 16 04
	00 00		 movzx	 ecx, BYTE PTR [eax+1046]
  0024a	83 e1 01	 and	 ecx, 1
  0024d	74 16		 je	 SHORT $LN30@CompleteMa
  0024f	8b 55 f0	 mov	 edx, DWORD PTR _pPage$[ebp]
  00252	03 55 d8	 add	 edx, DWORD PTR _i$140105[ebp]
  00255	0f b6 82 16 04
	00 00		 movzx	 eax, BYTE PTR [edx+1046]
  0025c	83 e0 04	 and	 eax, 4
  0025f	0f 84 c0 00 00
	00		 je	 $LN31@CompleteMa
$LN30@CompleteMa:

; 717  :             {
; 718  :                 if (m_bHighGranularityCaching != FALSE && bPageUpdate == FALSE)

  00265	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  00268	83 b9 54 2f 00
	00 00		 cmp	 DWORD PTR [ecx+12116], 0
  0026f	74 35		 je	 SHORT $LN29@CompleteMa
  00271	83 7d e0 00	 cmp	 DWORD PTR _bPageUpdate$[ebp], 0
  00275	75 2f		 jne	 SHORT $LN29@CompleteMa

; 719  :                 {
; 720  :                     if (HighGranularityLineCache(pPage, i, magazineState->Line[i-1]))

  00277	8b 55 d8	 mov	 edx, DWORD PTR _i$140105[ebp]
  0027a	83 ea 01	 sub	 edx, 1
  0027d	6b d2 28	 imul	 edx, 40			; 00000028H
  00280	8b 45 08	 mov	 eax, DWORD PTR _magazineState$[ebp]
  00283	8d 4c 10 2a	 lea	 ecx, DWORD PTR [eax+edx+42]
  00287	51		 push	 ecx
  00288	0f b6 55 d8	 movzx	 edx, BYTE PTR _i$140105[ebp]
  0028c	52		 push	 edx
  0028d	8b 45 f0	 mov	 eax, DWORD PTR _pPage$[ebp]
  00290	50		 push	 eax
  00291	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  00294	e8 00 00 00 00	 call	 ?HighGranularityLineCache@CVTDecoder@@AAEHPAU_VTPage@@EPAE@Z ; CVTDecoder::HighGranularityLineCache
  00299	85 c0		 test	 eax, eax
  0029b	74 07		 je	 SHORT $LN28@CompleteMa

; 721  :                     {
; 722  :                         bLinesAdded = TRUE;

  0029d	c7 45 f8 01 00
	00 00		 mov	 DWORD PTR _bLinesAdded$[ebp], 1
$LN28@CompleteMa:

; 723  :                     }
; 724  :                 }
; 725  :                 else

  002a4	eb 7a		 jmp	 SHORT $LN27@CompleteMa
$LN29@CompleteMa:

; 726  :                 {
; 727  :                     pPage->LineState[i] = CACHESTATE_HASDATA | CACHESTATE_UPDATED;

  002a6	8b 4d f0	 mov	 ecx, DWORD PTR _pPage$[ebp]
  002a9	03 4d d8	 add	 ecx, DWORD PTR _i$140105[ebp]
  002ac	c6 81 16 04 00
	00 03		 mov	 BYTE PTR [ecx+1046], 3

; 728  : 
; 729  :                     if (CheckParity(magazineState->Line[i-1], 40) == FALSE)

  002b3	6a 00		 push	 0
  002b5	6a 28		 push	 40			; 00000028H
  002b7	8b 55 d8	 mov	 edx, DWORD PTR _i$140105[ebp]
  002ba	83 ea 01	 sub	 edx, 1
  002bd	6b d2 28	 imul	 edx, 40			; 00000028H
  002c0	8b 45 08	 mov	 eax, DWORD PTR _magazineState$[ebp]
  002c3	8d 4c 10 2a	 lea	 ecx, DWORD PTR [eax+edx+42]
  002c7	51		 push	 ecx
  002c8	e8 00 00 00 00	 call	 ?CheckParity@CVTCommon@@SAHPAEKH@Z ; CVTCommon::CheckParity
  002cd	83 c4 0c	 add	 esp, 12			; 0000000cH
  002d0	85 c0		 test	 eax, eax
  002d2	75 1c		 jne	 SHORT $LN26@CompleteMa

; 730  :                     {
; 731  :                         pPage->LineState[i] |= CACHESTATE_HASERROR;

  002d4	8b 55 f0	 mov	 edx, DWORD PTR _pPage$[ebp]
  002d7	03 55 d8	 add	 edx, DWORD PTR _i$140105[ebp]
  002da	0f b6 82 16 04
	00 00		 movzx	 eax, BYTE PTR [edx+1046]
  002e1	83 c8 04	 or	 eax, 4
  002e4	8b 4d f0	 mov	 ecx, DWORD PTR _pPage$[ebp]
  002e7	03 4d d8	 add	 ecx, DWORD PTR _i$140105[ebp]
  002ea	88 81 16 04 00
	00		 mov	 BYTE PTR [ecx+1046], al
$LN26@CompleteMa:

; 732  :                     }
; 733  : 
; 734  :                     CopyMemory(pPage->Frame[i], magazineState->Line[i-1], 40);

  002f0	6a 28		 push	 40			; 00000028H
  002f2	8b 55 d8	 mov	 edx, DWORD PTR _i$140105[ebp]
  002f5	83 ea 01	 sub	 edx, 1
  002f8	6b d2 28	 imul	 edx, 40			; 00000028H
  002fb	8b 45 08	 mov	 eax, DWORD PTR _magazineState$[ebp]
  002fe	8d 4c 10 2a	 lea	 ecx, DWORD PTR [eax+edx+42]
  00302	51		 push	 ecx
  00303	8b 55 d8	 mov	 edx, DWORD PTR _i$140105[ebp]
  00306	6b d2 28	 imul	 edx, 40			; 00000028H
  00309	8b 45 f0	 mov	 eax, DWORD PTR _pPage$[ebp]
  0030c	8d 4c 10 06	 lea	 ecx, DWORD PTR [eax+edx+6]
  00310	51		 push	 ecx
  00311	e8 00 00 00 00	 call	 _memcpy
  00316	83 c4 0c	 add	 esp, 12			; 0000000cH

; 735  :                     bLinesAdded = TRUE;

  00319	c7 45 f8 01 00
	00 00		 mov	 DWORD PTR _bLinesAdded$[ebp], 1
$LN27@CompleteMa:

; 736  :                 }

  00320	e9 ac 00 00 00	 jmp	 $LN25@CompleteMa
$LN31@CompleteMa:

; 737  :             }
; 738  :             else if (m_CachingControl == DECODERCACHE_SECONDCHANCE)

  00325	8b 55 cc	 mov	 edx, DWORD PTR _this$[ebp]
  00328	0f b6 82 50 2f
	00 00		 movzx	 eax, BYTE PTR [edx+12112]
  0032f	83 f8 01	 cmp	 eax, 1
  00332	0f 85 99 00 00
	00		 jne	 $LN25@CompleteMa

; 739  :             {
; 740  :                 // If second chance error correction is on, copy the
; 741  :                 // line regardless, as long as the new line is error
; 742  :                 // free.
; 743  : 
; 744  :                 if (m_bHighGranularityCaching != FALSE)

  00338	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  0033b	83 b9 54 2f 00
	00 00		 cmp	 DWORD PTR [ecx+12116], 0
  00342	74 2f		 je	 SHORT $LN23@CompleteMa

; 745  :                 {
; 746  :                     if (HighGranularityLineCache(pPage, i, magazineState->Line[i-1]))

  00344	8b 55 d8	 mov	 edx, DWORD PTR _i$140105[ebp]
  00347	83 ea 01	 sub	 edx, 1
  0034a	6b d2 28	 imul	 edx, 40			; 00000028H
  0034d	8b 45 08	 mov	 eax, DWORD PTR _magazineState$[ebp]
  00350	8d 4c 10 2a	 lea	 ecx, DWORD PTR [eax+edx+42]
  00354	51		 push	 ecx
  00355	0f b6 55 d8	 movzx	 edx, BYTE PTR _i$140105[ebp]
  00359	52		 push	 edx
  0035a	8b 45 f0	 mov	 eax, DWORD PTR _pPage$[ebp]
  0035d	50		 push	 eax
  0035e	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  00361	e8 00 00 00 00	 call	 ?HighGranularityLineCache@CVTDecoder@@AAEHPAU_VTPage@@EPAE@Z ; CVTDecoder::HighGranularityLineCache
  00366	85 c0		 test	 eax, eax
  00368	74 07		 je	 SHORT $LN22@CompleteMa

; 747  :                     {
; 748  :                         bLinesAdded = TRUE;

  0036a	c7 45 f8 01 00
	00 00		 mov	 DWORD PTR _bLinesAdded$[ebp], 1
$LN22@CompleteMa:

; 749  :                     }
; 750  :                 }

  00371	eb 5e		 jmp	 SHORT $LN25@CompleteMa
$LN23@CompleteMa:

; 751  :                 else if (CheckParity(magazineState->Line[i-1], 40) != FALSE)

  00373	6a 00		 push	 0
  00375	6a 28		 push	 40			; 00000028H
  00377	8b 4d d8	 mov	 ecx, DWORD PTR _i$140105[ebp]
  0037a	83 e9 01	 sub	 ecx, 1
  0037d	6b c9 28	 imul	 ecx, 40			; 00000028H
  00380	8b 55 08	 mov	 edx, DWORD PTR _magazineState$[ebp]
  00383	8d 44 0a 2a	 lea	 eax, DWORD PTR [edx+ecx+42]
  00387	50		 push	 eax
  00388	e8 00 00 00 00	 call	 ?CheckParity@CVTCommon@@SAHPAEKH@Z ; CVTCommon::CheckParity
  0038d	83 c4 0c	 add	 esp, 12			; 0000000cH
  00390	85 c0		 test	 eax, eax
  00392	74 3d		 je	 SHORT $LN25@CompleteMa

; 752  :                 {
; 753  :                     pPage->LineState[i] = CACHESTATE_HASDATA | CACHESTATE_UPDATED;

  00394	8b 4d f0	 mov	 ecx, DWORD PTR _pPage$[ebp]
  00397	03 4d d8	 add	 ecx, DWORD PTR _i$140105[ebp]
  0039a	c6 81 16 04 00
	00 03		 mov	 BYTE PTR [ecx+1046], 3

; 754  :                     CopyMemory(pPage->Frame[i], magazineState->Line[i-1], 40);

  003a1	6a 28		 push	 40			; 00000028H
  003a3	8b 55 d8	 mov	 edx, DWORD PTR _i$140105[ebp]
  003a6	83 ea 01	 sub	 edx, 1
  003a9	6b d2 28	 imul	 edx, 40			; 00000028H
  003ac	8b 45 08	 mov	 eax, DWORD PTR _magazineState$[ebp]
  003af	8d 4c 10 2a	 lea	 ecx, DWORD PTR [eax+edx+42]
  003b3	51		 push	 ecx
  003b4	8b 55 d8	 mov	 edx, DWORD PTR _i$140105[ebp]
  003b7	6b d2 28	 imul	 edx, 40			; 00000028H
  003ba	8b 45 f0	 mov	 eax, DWORD PTR _pPage$[ebp]
  003bd	8d 4c 10 06	 lea	 ecx, DWORD PTR [eax+edx+6]
  003c1	51		 push	 ecx
  003c2	e8 00 00 00 00	 call	 _memcpy
  003c7	83 c4 0c	 add	 esp, 12			; 0000000cH

; 755  :                     bLinesAdded = TRUE;

  003ca	c7 45 f8 01 00
	00 00		 mov	 DWORD PTR _bLinesAdded$[ebp], 1
$LN25@CompleteMa:

; 756  :                 }
; 757  :             }
; 758  :         }

  003d1	eb 46		 jmp	 SHORT $LN19@CompleteMa
$LN32@CompleteMa:

; 759  :         else if (bErasePage != FALSE)

  003d3	83 7d f4 00	 cmp	 DWORD PTR _bErasePage$[ebp], 0
  003d7	74 40		 je	 SHORT $LN19@CompleteMa

; 760  :         {
; 761  :             if ((pPage->LineState[i] & CACHESTATE_HASDATA) != 0)

  003d9	8b 55 f0	 mov	 edx, DWORD PTR _pPage$[ebp]
  003dc	03 55 d8	 add	 edx, DWORD PTR _i$140105[ebp]
  003df	0f b6 82 16 04
	00 00		 movzx	 eax, BYTE PTR [edx+1046]
  003e6	83 e0 01	 and	 eax, 1
  003e9	74 2e		 je	 SHORT $LN19@CompleteMa

; 762  :             {
; 763  :                 FillMemory(pPage->Frame[i], 40, 0x20);

  003eb	6a 28		 push	 40			; 00000028H
  003ed	6a 20		 push	 32			; 00000020H
  003ef	8b 4d d8	 mov	 ecx, DWORD PTR _i$140105[ebp]
  003f2	6b c9 28	 imul	 ecx, 40			; 00000028H
  003f5	8b 55 f0	 mov	 edx, DWORD PTR _pPage$[ebp]
  003f8	8d 44 0a 06	 lea	 eax, DWORD PTR [edx+ecx+6]
  003fc	50		 push	 eax
  003fd	e8 00 00 00 00	 call	 _memset
  00402	83 c4 0c	 add	 esp, 12			; 0000000cH

; 764  :                 pPage->LineState[i] = CACHESTATE_UPDATED;

  00405	8b 4d f0	 mov	 ecx, DWORD PTR _pPage$[ebp]
  00408	03 4d d8	 add	 ecx, DWORD PTR _i$140105[ebp]
  0040b	c6 81 16 04 00
	00 02		 mov	 BYTE PTR [ecx+1046], 2

; 765  :                 bPageChanged = TRUE;

  00412	c7 45 dc 01 00
	00 00		 mov	 DWORD PTR _bPageChanged$[ebp], 1
$LN19@CompleteMa:

; 766  :             }
; 767  :         }
; 768  :     }

  00419	e9 e1 fd ff ff	 jmp	 $LN34@CompleteMa
$LN33@CompleteMa:

; 769  : 
; 770  :     // Copy packet X/27/0 (FLOF) stuff
; 771  :     for (int n = 0; n < 6; n++)

  0041e	c7 45 d4 00 00
	00 00		 mov	 DWORD PTR _n$140125[ebp], 0
  00425	eb 09		 jmp	 SHORT $LN16@CompleteMa
$LN15@CompleteMa:
  00427	8b 55 d4	 mov	 edx, DWORD PTR _n$140125[ebp]
  0042a	83 c2 01	 add	 edx, 1
  0042d	89 55 d4	 mov	 DWORD PTR _n$140125[ebp], edx
$LN16@CompleteMa:
  00430	83 7d d4 06	 cmp	 DWORD PTR _n$140125[ebp], 6
  00434	7d 34		 jge	 SHORT $LN14@CompleteMa

; 772  :     {
; 773  :         if (magazineState->LinkReceived & (1 << n))

  00436	8b 45 08	 mov	 eax, DWORD PTR _magazineState$[ebp]
  00439	0f b6 90 44 04
	00 00		 movzx	 edx, BYTE PTR [eax+1092]
  00440	b8 01 00 00 00	 mov	 eax, 1
  00445	8b 4d d4	 mov	 ecx, DWORD PTR _n$140125[ebp]
  00448	d3 e0		 shl	 eax, cl
  0044a	23 d0		 and	 edx, eax
  0044c	74 1a		 je	 SHORT $LN13@CompleteMa

; 774  :         {
; 775  :             pPage->EditorialLink[n] = magazineState->EditorialLink[n];

  0044e	8b 4d d4	 mov	 ecx, DWORD PTR _n$140125[ebp]
  00451	8b 55 f0	 mov	 edx, DWORD PTR _pPage$[ebp]
  00454	8b 45 d4	 mov	 eax, DWORD PTR _n$140125[ebp]
  00457	8b 75 08	 mov	 esi, DWORD PTR _magazineState$[ebp]
  0045a	8b 84 86 2c 04
	00 00		 mov	 eax, DWORD PTR [esi+eax*4+1068]
  00461	89 84 8a 30 04
	00 00		 mov	 DWORD PTR [edx+ecx*4+1072], eax
$LN13@CompleteMa:

; 776  :         }
; 777  :     }

  00468	eb bd		 jmp	 SHORT $LN15@CompleteMa
$LN14@CompleteMa:

; 778  : 
; 779  :     if (magazineState->LinkReceived & LINKRECV_SHOW24)

  0046a	8b 4d 08	 mov	 ecx, DWORD PTR _magazineState$[ebp]
  0046d	0f b6 91 44 04
	00 00		 movzx	 edx, BYTE PTR [ecx+1092]
  00474	83 e2 40	 and	 edx, 64			; 00000040H
  00477	74 0f		 je	 SHORT $LN12@CompleteMa

; 780  :     {
; 781  :         pPage->bShowRow24 = TRUE;

  00479	8b 45 f0	 mov	 eax, DWORD PTR _pPage$[ebp]
  0047c	c7 80 50 04 00
	00 01 00 00 00	 mov	 DWORD PTR [eax+1104], 1
  00486	eb 1f		 jmp	 SHORT $LN11@CompleteMa
$LN12@CompleteMa:

; 782  :     }
; 783  :     else if (magazineState->LinkReceived & LINKRECV_HIDE24)

  00488	8b 4d 08	 mov	 ecx, DWORD PTR _magazineState$[ebp]
  0048b	0f b6 91 44 04
	00 00		 movzx	 edx, BYTE PTR [ecx+1092]
  00492	81 e2 80 00 00
	00		 and	 edx, 128		; 00000080H
  00498	74 0d		 je	 SHORT $LN11@CompleteMa

; 784  :     {
; 785  :         pPage->bShowRow24 = FALSE;

  0049a	8b 45 f0	 mov	 eax, DWORD PTR _pPage$[ebp]
  0049d	c7 80 50 04 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+1104], 0
$LN11@CompleteMa:

; 786  :     }
; 787  : 
; 788  : 
; 789  :     // Mark all lines as updated if the subtitle or newsflash status changed
; 790  :     if ((wControlBits & (VTCONTROL_NEWSFLASH | VTCONTROL_SUBTITLE)) !=
; 791  :         (pPage->wControlBits & (VTCONTROL_NEWSFLASH | VTCONTROL_SUBTITLE)))

  004a7	0f b7 4d fc	 movzx	 ecx, WORD PTR _wControlBits$[ebp]
  004ab	83 e1 30	 and	 ecx, 48			; 00000030H
  004ae	8b 55 f0	 mov	 edx, DWORD PTR _pPage$[ebp]
  004b1	0f b7 42 04	 movzx	 eax, WORD PTR [edx+4]
  004b5	83 e0 30	 and	 eax, 48			; 00000030H
  004b8	3b c8		 cmp	 ecx, eax
  004ba	74 36		 je	 SHORT $LN9@CompleteMa

; 792  :     {
; 793  :         for (int i = 0; i < 25; i++)

  004bc	c7 45 d0 00 00
	00 00		 mov	 DWORD PTR _i$140134[ebp], 0
  004c3	eb 09		 jmp	 SHORT $LN8@CompleteMa
$LN7@CompleteMa:
  004c5	8b 4d d0	 mov	 ecx, DWORD PTR _i$140134[ebp]
  004c8	83 c1 01	 add	 ecx, 1
  004cb	89 4d d0	 mov	 DWORD PTR _i$140134[ebp], ecx
$LN8@CompleteMa:
  004ce	83 7d d0 19	 cmp	 DWORD PTR _i$140134[ebp], 25 ; 00000019H
  004d2	7d 1e		 jge	 SHORT $LN9@CompleteMa

; 794  :         {
; 795  :             pPage->LineState[i] |= CACHESTATE_UPDATED;

  004d4	8b 55 f0	 mov	 edx, DWORD PTR _pPage$[ebp]
  004d7	03 55 d0	 add	 edx, DWORD PTR _i$140134[ebp]
  004da	0f b6 82 16 04
	00 00		 movzx	 eax, BYTE PTR [edx+1046]
  004e1	83 c8 02	 or	 eax, 2
  004e4	8b 4d f0	 mov	 ecx, DWORD PTR _pPage$[ebp]
  004e7	03 4d d0	 add	 ecx, DWORD PTR _i$140134[ebp]
  004ea	88 81 16 04 00
	00		 mov	 BYTE PTR [ecx+1046], al

; 796  :         }

  004f0	eb d3		 jmp	 SHORT $LN7@CompleteMa
$LN9@CompleteMa:

; 797  :     }
; 798  : 
; 799  :     // Copy the page control bits
; 800  :     pPage->wControlBits = wControlBits;

  004f2	8b 55 f0	 mov	 edx, DWORD PTR _pPage$[ebp]
  004f5	66 8b 45 fc	 mov	 ax, WORD PTR _wControlBits$[ebp]
  004f9	66 89 42 04	 mov	 WORD PTR [edx+4], ax

; 801  : 
; 802  : 
; 803  :     // Update the cache count
; 804  :     if (pPage->bReceived == FALSE)

  004fd	8b 4d f0	 mov	 ecx, DWORD PTR _pPage$[ebp]
  00500	83 b9 4c 04 00
	00 00		 cmp	 DWORD PTR [ecx+1100], 0
  00507	75 3a		 jne	 SHORT $LN5@CompleteMa

; 805  :     {
; 806  :         // There's no point keeping the page
; 807  :         // if it came with no display lines.
; 808  :         if (bLinesAdded == FALSE)

  00509	83 7d f8 00	 cmp	 DWORD PTR _bLinesAdded$[ebp], 0
  0050d	75 12		 jne	 SHORT $LN4@CompleteMa

; 809  :         {
; 810  :             LeaveCriticalSection(&m_PageStoreMutex);

  0050f	8b 55 cc	 mov	 edx, DWORD PTR _this$[ebp]
  00512	81 c2 94 2f 00
	00		 add	 edx, 12180		; 00002f94H
  00518	52		 push	 edx
  00519	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 811  :             return;

  0051f	eb 60		 jmp	 SHORT $LN51@CompleteMa
$LN4@CompleteMa:

; 812  :         }
; 813  : 
; 814  :         pPage->bReceived = TRUE;

  00521	8b 45 f0	 mov	 eax, DWORD PTR _pPage$[ebp]
  00524	c7 80 4c 04 00
	00 01 00 00 00	 mov	 DWORD PTR [eax+1100], 1

; 815  :         m_ReceivedPages++;

  0052e	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  00531	8b 91 6c 22 00
	00		 mov	 edx, DWORD PTR [ecx+8812]
  00537	83 c2 01	 add	 edx, 1
  0053a	8b 45 cc	 mov	 eax, DWORD PTR _this$[ebp]
  0053d	89 90 6c 22 00
	00		 mov	 DWORD PTR [eax+8812], edx
$LN5@CompleteMa:

; 816  :     }
; 817  : 
; 818  :     LeaveCriticalSection(&m_PageStoreMutex);

  00543	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  00546	81 c1 94 2f 00
	00		 add	 ecx, 12180		; 00002f94H
  0054c	51		 push	 ecx
  0054d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 819  : 
; 820  :     if (bLinesAdded != FALSE || bPageChanged != FALSE)

  00553	83 7d f8 00	 cmp	 DWORD PTR _bLinesAdded$[ebp], 0
  00557	75 06		 jne	 SHORT $LN2@CompleteMa
  00559	83 7d dc 00	 cmp	 DWORD PTR _bPageChanged$[ebp], 0
  0055d	74 12		 je	 SHORT $LN3@CompleteMa
$LN2@CompleteMa:

; 821  :     {
; 822  :         NotifyDecoderEvent(DECODEREVENT_PAGEUPDATE, magazineState->dwPageCode);

  0055f	8b 55 08	 mov	 edx, DWORD PTR _magazineState$[ebp]
  00562	8b 02		 mov	 eax, DWORD PTR [edx]
  00564	50		 push	 eax
  00565	6a 02		 push	 2
  00567	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  0056a	e8 00 00 00 00	 call	 ?NotifyDecoderEvent@CVTDecoder@@IAEXEK@Z ; CVTDecoder::NotifyDecoderEvent

; 823  :     }
; 824  :     else

  0056f	eb 10		 jmp	 SHORT $LN51@CompleteMa
$LN3@CompleteMa:

; 825  :     {
; 826  :         NotifyDecoderEvent(DECODEREVENT_PAGEREFRESH, magazineState->dwPageCode);

  00571	8b 4d 08	 mov	 ecx, DWORD PTR _magazineState$[ebp]
  00574	8b 11		 mov	 edx, DWORD PTR [ecx]
  00576	52		 push	 edx
  00577	6a 03		 push	 3
  00579	8b 4d cc	 mov	 ecx, DWORD PTR _this$[ebp]
  0057c	e8 00 00 00 00	 call	 ?NotifyDecoderEvent@CVTDecoder@@IAEXEK@Z ; CVTDecoder::NotifyDecoderEvent
$LN51@CompleteMa:

; 827  :     }
; 828  : }

  00581	5e		 pop	 esi
  00582	8b e5		 mov	 esp, ebp
  00584	5d		 pop	 ebp
  00585	c2 04 00	 ret	 4
?CompleteMagazine@CVTDecoder@@AAEXPAU_MagazineState@1@@Z ENDP ; CVTDecoder::CompleteMagazine
_TEXT	ENDS
PUBLIC	?DecodeLine@CVTDecoder@@QAEXPAE@Z		; CVTDecoder::DecodeLine
; Function compile flags: /Odtp
;	COMDAT ?DecodeLine@CVTDecoder@@QAEXPAE@Z
_TEXT	SEGMENT
tv591 = -108						; size = 4
tv465 = -104						; size = 4
tv158 = -100						; size = 4
tv139 = -96						; size = 4
tv79 = -89						; size = 1
_this$ = -88						; size = 4
_CNI$140069 = -84					; size = 2
_PIL$140071 = -80					; size = 4
_b22$140068 = -75					; size = 1
_MI$140064 = -74					; size = 1
_PTY$140073 = -73					; size = 1
_b16$140065 = -72					; size = 1
_b21$140066 = -71					; size = 1
_LUF$140060 = -70					; size = 1
_PRF$140061 = -69					; size = 1
_PCS$140062 = -68					; size = 1
_LCI$140058 = -67					; size = 1
_Minutes$140055 = -66					; size = 1
_Hours$140054 = -65					; size = 1
_modifiedJulianDate$140053 = -64			; size = 4
_wNetworkIDCode$140051 = -60				; size = 2
_Seconds$140056 = -56					; size = 1
_timeOffset$140052 = -55				; size = 1
_initialMagazine$140042 = -54				; size = 1
_linkMagazine$140026 = -53				; size = 1
_n$140021 = -52						; size = 4
_linkControlByte$140033 = -46				; size = 1
_line$140008 = -45					; size = 1
_dwTTUpdate$140006 = -44				; size = 4
_processMagazine$139985 = -39				; size = 1
_s4$ = -38						; size = 1
_c7_14$ = -37						; size = 1
_wPageSubCode$ = -36					; size = 2
_s1$ = -30						; size = 1
_s2$ = -29						; size = 1
_wPageHex$ = -28					; size = 2
_magazine$ = -21					; size = 1
_bError$ = -20						; size = 4
_designationCode$ = -14					; size = 1
_packetNumber$ = -13					; size = 1
_dwPageCode$ = -12					; size = 4
_s3$ = -5						; size = 1
_wControlBits$ = -4					; size = 2
_data$ = 8						; size = 4
?DecodeLine@CVTDecoder@@QAEXPAE@Z PROC			; CVTDecoder::DecodeLine, COMDAT
; _this$ = ecx

; 146  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 6c	 sub	 esp, 108		; 0000006cH
  00006	56		 push	 esi
  00007	89 4d a8	 mov	 DWORD PTR _this$[ebp], ecx

; 147  :     BOOL bError = FALSE;

  0000a	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _bError$[ebp], 0

; 148  :     BYTE magazine;
; 149  :     BYTE packetNumber;
; 150  :     BYTE designationCode = 0;

  00011	c6 45 f2 00	 mov	 BYTE PTR _designationCode$[ebp], 0

; 151  :     BYTE s1, s2, s3, s4;
; 152  :     BYTE c7_14;
; 153  :     WORD wPageHex;
; 154  :     WORD wPageSubCode;
; 155  :     WORD wControlBits;
; 156  :     DWORD dwPageCode;
; 157  : 
; 158  :     // Caution: Remember that these offsets are zero based while indexes
; 159  :     // in the ETS Teletext specification (ETS 300 706) are one based.
; 160  :     packetNumber = UnhamTwo84_LSBF(data + 3, &bError);

  00015	8d 45 ec	 lea	 eax, DWORD PTR _bError$[ebp]
  00018	50		 push	 eax
  00019	8b 4d 08	 mov	 ecx, DWORD PTR _data$[ebp]
  0001c	83 c1 03	 add	 ecx, 3
  0001f	51		 push	 ecx
  00020	e8 00 00 00 00	 call	 ?UnhamTwo84_LSBF@CVTCommon@@SAEQAEPAH@Z ; CVTCommon::UnhamTwo84_LSBF
  00025	83 c4 08	 add	 esp, 8
  00028	88 45 f3	 mov	 BYTE PTR _packetNumber$[ebp], al

; 161  : 
; 162  :     if (bError != FALSE)

  0002b	83 7d ec 00	 cmp	 DWORD PTR _bError$[ebp], 0
  0002f	74 05		 je	 SHORT $LN49@DecodeLine

; 163  :     {
; 164  :         // This error is unrecoverable
; 165  :         return;

  00031	e9 7a 0f 00 00	 jmp	 $LN50@DecodeLine
$LN49@DecodeLine:

; 166  :     }
; 167  : 
; 168  :     magazine = (packetNumber & 0x07);

  00036	0f b6 55 f3	 movzx	 edx, BYTE PTR _packetNumber$[ebp]
  0003a	83 e2 07	 and	 edx, 7
  0003d	88 55 eb	 mov	 BYTE PTR _magazine$[ebp], dl

; 169  :     packetNumber >>= 3;

  00040	8a 45 f3	 mov	 al, BYTE PTR _packetNumber$[ebp]
  00043	c0 e8 03	 shr	 al, 3
  00046	88 45 f3	 mov	 BYTE PTR _packetNumber$[ebp], al

; 170  : 
; 171  :     // A page header terminates the last page reception
; 172  :     if (packetNumber == 0)

  00049	0f b6 4d f3	 movzx	 ecx, BYTE PTR _packetNumber$[ebp]
  0004d	85 c9		 test	 ecx, ecx
  0004f	0f 85 84 00 00
	00		 jne	 $LN48@DecodeLine

; 173  :     {
; 174  :         EnterCriticalSection(&m_MagazineStateMutex);

  00055	8b 55 a8	 mov	 edx, DWORD PTR _this$[ebp]
  00058	81 c2 7c 2f 00
	00		 add	 edx, 12156		; 00002f7cH
  0005e	52		 push	 edx
  0005f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 175  : 
; 176  :         // Check if there is a finished page
; 177  :         BYTE processMagazine = m_bMagazineSerial ? m_LastMagazine : magazine;

  00065	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  00068	83 b8 44 22 00
	00 00		 cmp	 DWORD PTR [eax+8772], 0
  0006f	74 0a		 je	 SHORT $LN52@DecodeLine
  00071	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  00074	8a 11		 mov	 dl, BYTE PTR [ecx]
  00076	88 55 a7	 mov	 BYTE PTR tv79[ebp], dl
  00079	eb 06		 jmp	 SHORT $LN53@DecodeLine
$LN52@DecodeLine:
  0007b	8a 45 eb	 mov	 al, BYTE PTR _magazine$[ebp]
  0007e	88 45 a7	 mov	 BYTE PTR tv79[ebp], al
$LN53@DecodeLine:
  00081	8a 4d a7	 mov	 cl, BYTE PTR tv79[ebp]
  00084	88 4d d9	 mov	 BYTE PTR _processMagazine$139985[ebp], cl

; 178  :         if (m_MagazineState[processMagazine].bReceiving)

  00087	0f b6 55 d9	 movzx	 edx, BYTE PTR _processMagazine$139985[ebp]
  0008b	69 d2 48 04 00
	00		 imul	 edx, 1096		; 00000448H
  00091	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  00094	83 7c 10 08 00	 cmp	 DWORD PTR [eax+edx+8], 0
  00099	74 2f		 je	 SHORT $LN47@DecodeLine

; 179  :         {
; 180  :             m_MagazineState[processMagazine].bReceiving = FALSE;

  0009b	0f b6 4d d9	 movzx	 ecx, BYTE PTR _processMagazine$139985[ebp]
  0009f	69 c9 48 04 00
	00		 imul	 ecx, 1096		; 00000448H
  000a5	8b 55 a8	 mov	 edx, DWORD PTR _this$[ebp]
  000a8	c7 44 0a 08 00
	00 00 00	 mov	 DWORD PTR [edx+ecx+8], 0

; 181  :             CompleteMagazine(&m_MagazineState[processMagazine]);

  000b0	0f b6 45 d9	 movzx	 eax, BYTE PTR _processMagazine$139985[ebp]
  000b4	69 c0 48 04 00
	00		 imul	 eax, 1096		; 00000448H
  000ba	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  000bd	8d 54 01 04	 lea	 edx, DWORD PTR [ecx+eax+4]
  000c1	52		 push	 edx
  000c2	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  000c5	e8 00 00 00 00	 call	 ?CompleteMagazine@CVTDecoder@@AAEXPAU_MagazineState@1@@Z ; CVTDecoder::CompleteMagazine
$LN47@DecodeLine:

; 182  :         }
; 183  : 
; 184  :         LeaveCriticalSection(&m_MagazineStateMutex);

  000ca	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  000cd	05 7c 2f 00 00	 add	 eax, 12156		; 00002f7cH
  000d2	50		 push	 eax
  000d3	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4
$LN48@DecodeLine:

; 185  :     }
; 186  : 
; 187  :     // A packets 26 or higher uses a designation code
; 188  :     if (packetNumber >= 26)

  000d9	0f b6 4d f3	 movzx	 ecx, BYTE PTR _packetNumber$[ebp]
  000dd	83 f9 1a	 cmp	 ecx, 26			; 0000001aH
  000e0	7c 21		 jl	 SHORT $LN46@DecodeLine

; 189  :     {
; 190  :         designationCode = Unham84(data + 5, &bError);

  000e2	8d 55 ec	 lea	 edx, DWORD PTR _bError$[ebp]
  000e5	52		 push	 edx
  000e6	8b 45 08	 mov	 eax, DWORD PTR _data$[ebp]
  000e9	83 c0 05	 add	 eax, 5
  000ec	50		 push	 eax
  000ed	e8 00 00 00 00	 call	 ?Unham84@CVTCommon@@SAEPAEPAH@Z ; CVTCommon::Unham84
  000f2	83 c4 08	 add	 esp, 8
  000f5	88 45 f2	 mov	 BYTE PTR _designationCode$[ebp], al

; 191  : 
; 192  :         if (bError != FALSE)

  000f8	83 7d ec 00	 cmp	 DWORD PTR _bError$[ebp], 0
  000fc	74 05		 je	 SHORT $LN46@DecodeLine

; 193  :         {
; 194  :             // We can't continue without this
; 195  :             return;

  000fe	e9 ad 0e 00 00	 jmp	 $LN50@DecodeLine
$LN46@DecodeLine:

; 196  :         }
; 197  :     }
; 198  : 
; 199  :     switch (packetNumber)

  00103	0f b6 4d f3	 movzx	 ecx, BYTE PTR _packetNumber$[ebp]
  00107	89 4d a0	 mov	 DWORD PTR tv139[ebp], ecx
  0010a	83 7d a0 1e	 cmp	 DWORD PTR tv139[ebp], 30 ; 0000001eH
  0010e	0f 87 9c 0e 00
	00		 ja	 $LN50@DecodeLine
  00114	8b 55 a0	 mov	 edx, DWORD PTR tv139[ebp]
  00117	0f b6 82 00 00
	00 00		 movzx	 eax, BYTE PTR $LN60@DecodeLine[edx]
  0011e	ff 24 85 00 00
	00 00		 jmp	 DWORD PTR $LN61@DecodeLine[eax*4]
$LN42@DecodeLine:

; 200  :     {
; 201  :     case 0: // page header
; 202  : 
; 203  :         // Initialize the magazine
; 204  :         EnterCriticalSection(&m_MagazineStateMutex);

  00125	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  00128	81 c1 7c 2f 00
	00		 add	 ecx, 12156		; 00002f7cH
  0012e	51		 push	 ecx
  0012f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 205  :         m_MagazineState[magazine].bReceiving = FALSE;

  00135	0f b6 55 eb	 movzx	 edx, BYTE PTR _magazine$[ebp]
  00139	69 d2 48 04 00
	00		 imul	 edx, 1096		; 00000448H
  0013f	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  00142	c7 44 10 08 00
	00 00 00	 mov	 DWORD PTR [eax+edx+8], 0

; 206  :         LeaveCriticalSection(&m_MagazineStateMutex);

  0014a	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  0014d	81 c1 7c 2f 00
	00		 add	 ecx, 12156		; 00002f7cH
  00153	51		 push	 ecx
  00154	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 207  : 
; 208  :         // Work out the page number
; 209  :         wPageHex = UnhamTwo84_LSBF(data + 5, &bError);

  0015a	8d 55 ec	 lea	 edx, DWORD PTR _bError$[ebp]
  0015d	52		 push	 edx
  0015e	8b 45 08	 mov	 eax, DWORD PTR _data$[ebp]
  00161	83 c0 05	 add	 eax, 5
  00164	50		 push	 eax
  00165	e8 00 00 00 00	 call	 ?UnhamTwo84_LSBF@CVTCommon@@SAEQAEPAH@Z ; CVTCommon::UnhamTwo84_LSBF
  0016a	83 c4 08	 add	 esp, 8
  0016d	66 0f b6 c8	 movzx	 cx, al
  00171	66 89 4d e4	 mov	 WORD PTR _wPageHex$[ebp], cx

; 210  :         wPageHex |= (magazine == 0 ? 0x800 : magazine * 0x100);

  00175	0f b6 55 eb	 movzx	 edx, BYTE PTR _magazine$[ebp]
  00179	85 d2		 test	 edx, edx
  0017b	75 09		 jne	 SHORT $LN54@DecodeLine
  0017d	c7 45 9c 00 08
	00 00		 mov	 DWORD PTR tv158[ebp], 2048 ; 00000800H
  00184	eb 0a		 jmp	 SHORT $LN55@DecodeLine
$LN54@DecodeLine:
  00186	0f b6 45 eb	 movzx	 eax, BYTE PTR _magazine$[ebp]
  0018a	c1 e0 08	 shl	 eax, 8
  0018d	89 45 9c	 mov	 DWORD PTR tv158[ebp], eax
$LN55@DecodeLine:
  00190	0f b7 4d e4	 movzx	 ecx, WORD PTR _wPageHex$[ebp]
  00194	0b 4d 9c	 or	 ecx, DWORD PTR tv158[ebp]
  00197	66 89 4d e4	 mov	 WORD PTR _wPageHex$[ebp], cx

; 211  : 
; 212  :         // Caution: Remember that these offsets are zero based while indexes
; 213  :         // in the ETS Teletext specification (ETS 300 706) are one based.
; 214  :         s1 = Unham84(data + 7, &bError);

  0019b	8d 55 ec	 lea	 edx, DWORD PTR _bError$[ebp]
  0019e	52		 push	 edx
  0019f	8b 45 08	 mov	 eax, DWORD PTR _data$[ebp]
  001a2	83 c0 07	 add	 eax, 7
  001a5	50		 push	 eax
  001a6	e8 00 00 00 00	 call	 ?Unham84@CVTCommon@@SAEPAEPAH@Z ; CVTCommon::Unham84
  001ab	83 c4 08	 add	 esp, 8
  001ae	88 45 e2	 mov	 BYTE PTR _s1$[ebp], al

; 215  :         s2 = Unham84(data + 8, &bError);

  001b1	8d 4d ec	 lea	 ecx, DWORD PTR _bError$[ebp]
  001b4	51		 push	 ecx
  001b5	8b 55 08	 mov	 edx, DWORD PTR _data$[ebp]
  001b8	83 c2 08	 add	 edx, 8
  001bb	52		 push	 edx
  001bc	e8 00 00 00 00	 call	 ?Unham84@CVTCommon@@SAEPAEPAH@Z ; CVTCommon::Unham84
  001c1	83 c4 08	 add	 esp, 8
  001c4	88 45 e3	 mov	 BYTE PTR _s2$[ebp], al

; 216  :         s3 = Unham84(data + 9, &bError);

  001c7	8d 45 ec	 lea	 eax, DWORD PTR _bError$[ebp]
  001ca	50		 push	 eax
  001cb	8b 4d 08	 mov	 ecx, DWORD PTR _data$[ebp]
  001ce	83 c1 09	 add	 ecx, 9
  001d1	51		 push	 ecx
  001d2	e8 00 00 00 00	 call	 ?Unham84@CVTCommon@@SAEPAEPAH@Z ; CVTCommon::Unham84
  001d7	83 c4 08	 add	 esp, 8
  001da	88 45 fb	 mov	 BYTE PTR _s3$[ebp], al

; 217  :         s4 = Unham84(data + 10, &bError);

  001dd	8d 55 ec	 lea	 edx, DWORD PTR _bError$[ebp]
  001e0	52		 push	 edx
  001e1	8b 45 08	 mov	 eax, DWORD PTR _data$[ebp]
  001e4	83 c0 0a	 add	 eax, 10			; 0000000aH
  001e7	50		 push	 eax
  001e8	e8 00 00 00 00	 call	 ?Unham84@CVTCommon@@SAEPAEPAH@Z ; CVTCommon::Unham84
  001ed	83 c4 08	 add	 esp, 8
  001f0	88 45 da	 mov	 BYTE PTR _s4$[ebp], al

; 218  : 
; 219  :         c7_14 = UnhamTwo84_LSBF(data + 11, &bError);

  001f3	8d 4d ec	 lea	 ecx, DWORD PTR _bError$[ebp]
  001f6	51		 push	 ecx
  001f7	8b 55 08	 mov	 edx, DWORD PTR _data$[ebp]
  001fa	83 c2 0b	 add	 edx, 11			; 0000000bH
  001fd	52		 push	 edx
  001fe	e8 00 00 00 00	 call	 ?UnhamTwo84_LSBF@CVTCommon@@SAEQAEPAH@Z ; CVTCommon::UnhamTwo84_LSBF
  00203	83 c4 08	 add	 esp, 8
  00206	88 45 db	 mov	 BYTE PTR _c7_14$[ebp], al

; 220  : 
; 221  :         if (bError != FALSE)

  00209	83 7d ec 00	 cmp	 DWORD PTR _bError$[ebp], 0
  0020d	74 05		 je	 SHORT $LN41@DecodeLine

; 222  :         {
; 223  :             // Cannot proceed without a valid page number
; 224  :             return;

  0020f	e9 9c 0d 00 00	 jmp	 $LN50@DecodeLine
$LN41@DecodeLine:

; 225  :         }
; 226  :         // Work out the page sub-code
; 227  :         wPageSubCode = (s1 | ((s2 & 0x7) << 4) | (s3 << 8) | ((s4 & 0x3) << 12));

  00214	0f b6 45 e2	 movzx	 eax, BYTE PTR _s1$[ebp]
  00218	0f b6 4d e3	 movzx	 ecx, BYTE PTR _s2$[ebp]
  0021c	83 e1 07	 and	 ecx, 7
  0021f	c1 e1 04	 shl	 ecx, 4
  00222	0b c1		 or	 eax, ecx
  00224	0f b6 55 fb	 movzx	 edx, BYTE PTR _s3$[ebp]
  00228	c1 e2 08	 shl	 edx, 8
  0022b	0b c2		 or	 eax, edx
  0022d	0f b6 4d da	 movzx	 ecx, BYTE PTR _s4$[ebp]
  00231	83 e1 03	 and	 ecx, 3
  00234	c1 e1 0c	 shl	 ecx, 12			; 0000000cH
  00237	0b c1		 or	 eax, ecx
  00239	66 89 45 dc	 mov	 WORD PTR _wPageSubCode$[ebp], ax

; 228  : 
; 229  :         // Get the page control bits
; 230  :         wControlBits = (magazine | (s2 & 0x8) | ((s4 & 0xC) << 2) | (c7_14 << 6));

  0023d	0f b6 55 eb	 movzx	 edx, BYTE PTR _magazine$[ebp]
  00241	0f b6 45 e3	 movzx	 eax, BYTE PTR _s2$[ebp]
  00245	83 e0 08	 and	 eax, 8
  00248	0b d0		 or	 edx, eax
  0024a	0f b6 4d da	 movzx	 ecx, BYTE PTR _s4$[ebp]
  0024e	83 e1 0c	 and	 ecx, 12			; 0000000cH
  00251	c1 e1 02	 shl	 ecx, 2
  00254	0b d1		 or	 edx, ecx
  00256	0f b6 45 db	 movzx	 eax, BYTE PTR _c7_14$[ebp]
  0025a	c1 e0 06	 shl	 eax, 6
  0025d	0b d0		 or	 edx, eax
  0025f	66 89 55 fc	 mov	 WORD PTR _wControlBits$[ebp], dx

; 231  : 
; 232  :         m_bMagazineSerial = (wControlBits & VTCONTROL_MAGSERIAL) != 0;

  00263	0f b7 4d fc	 movzx	 ecx, WORD PTR _wControlBits$[ebp]
  00267	81 e1 00 04 00
	00		 and	 ecx, 1024		; 00000400H
  0026d	f7 d9		 neg	 ecx
  0026f	1b c9		 sbb	 ecx, ecx
  00271	f7 d9		 neg	 ecx
  00273	8b 55 a8	 mov	 edx, DWORD PTR _this$[ebp]
  00276	89 8a 44 22 00
	00		 mov	 DWORD PTR [edx+8772], ecx

; 233  :         m_CharacterSubset = (wControlBits & VTCONTROL_CHARSUBSET) >> 11;

  0027c	0f b7 45 fc	 movzx	 eax, WORD PTR _wControlBits$[ebp]
  00280	25 00 38 00 00	 and	 eax, 14336		; 00003800H
  00285	c1 f8 0b	 sar	 eax, 11			; 0000000bH
  00288	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  0028b	88 81 48 22 00
	00		 mov	 BYTE PTR [ecx+8776], al

; 234  : 
; 235  :         // Update the rolling header if this header is usable
; 236  :         if ((wControlBits & VTCONTROL_SUPRESSHEADER) == 0 &&
; 237  :             (wControlBits & VTCONTROL_INTERRUPTED) == 0)

  00291	0f b7 55 fc	 movzx	 edx, WORD PTR _wControlBits$[ebp]
  00295	83 e2 40	 and	 edx, 64			; 00000040H
  00298	75 78		 jne	 SHORT $LN40@DecodeLine
  0029a	0f b7 45 fc	 movzx	 eax, WORD PTR _wControlBits$[ebp]
  0029e	25 00 01 00 00	 and	 eax, 256		; 00000100H
  002a3	75 6d		 jne	 SHORT $LN40@DecodeLine

; 238  :         {
; 239  :             // Don't use non-visible page headers because
; 240  :             // some on them are missing the clock.
; 241  :             if (IsNonVisiblePage(wPageHex) == FALSE)

  002a5	0f b7 4d e4	 movzx	 ecx, WORD PTR _wPageHex$[ebp]
  002a9	51		 push	 ecx
  002aa	e8 00 00 00 00	 call	 ?IsNonVisiblePage@CVTCommon@@SAHG@Z ; CVTCommon::IsNonVisiblePage
  002af	83 c4 04	 add	 esp, 4
  002b2	85 c0		 test	 eax, eax
  002b4	75 5c		 jne	 SHORT $LN40@DecodeLine

; 242  :             {
; 243  :                 if (CheckParity(data + 13, 32) != FALSE)

  002b6	6a 00		 push	 0
  002b8	6a 20		 push	 32			; 00000020H
  002ba	8b 55 08	 mov	 edx, DWORD PTR _data$[ebp]
  002bd	83 c2 0d	 add	 edx, 13			; 0000000dH
  002c0	52		 push	 edx
  002c1	e8 00 00 00 00	 call	 ?CheckParity@CVTCommon@@SAHPAEKH@Z ; CVTCommon::CheckParity
  002c6	83 c4 0c	 add	 esp, 12			; 0000000cH
  002c9	85 c0		 test	 eax, eax
  002cb	74 45		 je	 SHORT $LN40@DecodeLine

; 244  :                 {
; 245  :                     EnterCriticalSection(&m_CommonHeaderMutex);

  002cd	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  002d0	05 64 2f 00 00	 add	 eax, 12132		; 00002f64H
  002d5	50		 push	 eax
  002d6	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 246  :                     CopyMemory(m_CommonHeader, data + 13, 32);

  002dc	6a 20		 push	 32			; 00000020H
  002de	8b 4d 08	 mov	 ecx, DWORD PTR _data$[ebp]
  002e1	83 c1 0d	 add	 ecx, 13			; 0000000dH
  002e4	51		 push	 ecx
  002e5	8b 55 a8	 mov	 edx, DWORD PTR _this$[ebp]
  002e8	81 c2 49 22 00
	00		 add	 edx, 8777		; 00002249H
  002ee	52		 push	 edx
  002ef	e8 00 00 00 00	 call	 _memcpy
  002f4	83 c4 0c	 add	 esp, 12			; 0000000cH

; 247  :                     LeaveCriticalSection(&m_CommonHeaderMutex);

  002f7	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  002fa	05 64 2f 00 00	 add	 eax, 12132		; 00002f64H
  002ff	50		 push	 eax
  00300	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 248  : 
; 249  :                     NotifyDecoderEvent(DECODEREVENT_HEADERUPDATE, 0);

  00306	6a 00		 push	 0
  00308	6a 00		 push	 0
  0030a	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  0030d	e8 00 00 00 00	 call	 ?NotifyDecoderEvent@CVTDecoder@@IAEXEK@Z ; CVTDecoder::NotifyDecoderEvent
$LN40@DecodeLine:

; 250  :                 }
; 251  :             }
; 252  :         }
; 253  : 
; 254  :         // See if this is an invalid page
; 255  :         if ((wPageHex & 0xFF) == 0xFF)

  00312	0f b7 4d e4	 movzx	 ecx, WORD PTR _wPageHex$[ebp]
  00316	81 e1 ff 00 00
	00		 and	 ecx, 255		; 000000ffH
  0031c	81 f9 ff 00 00
	00		 cmp	 ecx, 255		; 000000ffH
  00322	75 05		 jne	 SHORT $LN37@DecodeLine

; 256  :         {
; 257  :             // Time filling page
; 258  :             return;

  00324	e9 87 0c 00 00	 jmp	 $LN50@DecodeLine
$LN37@DecodeLine:

; 259  :         }
; 260  : 
; 261  :         EnterCriticalSection(&m_MagazineStateMutex);

  00329	8b 55 a8	 mov	 edx, DWORD PTR _this$[ebp]
  0032c	81 c2 7c 2f 00
	00		 add	 edx, 12156		; 00002f7cH
  00332	52		 push	 edx
  00333	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 262  : 
; 263  :         m_MagazineState[magazine].bReceiving = TRUE;

  00339	0f b6 45 eb	 movzx	 eax, BYTE PTR _magazine$[ebp]
  0033d	69 c0 48 04 00
	00		 imul	 eax, 1096		; 00000448H
  00343	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  00346	c7 44 01 08 01
	00 00 00	 mov	 DWORD PTR [ecx+eax+8], 1

; 264  :         m_MagazineState[magazine].wPageHex = wPageHex;

  0034e	0f b6 55 eb	 movzx	 edx, BYTE PTR _magazine$[ebp]
  00352	69 d2 48 04 00
	00		 imul	 edx, 1096		; 00000448H
  00358	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  0035b	66 8b 4d e4	 mov	 cx, WORD PTR _wPageHex$[ebp]
  0035f	66 89 4c 10 04	 mov	 WORD PTR [eax+edx+4], cx

; 265  :         m_MagazineState[magazine].wPageSubCode = wPageSubCode;

  00364	0f b6 55 eb	 movzx	 edx, BYTE PTR _magazine$[ebp]
  00368	69 d2 48 04 00
	00		 imul	 edx, 1096		; 00000448H
  0036e	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  00371	66 8b 4d dc	 mov	 cx, WORD PTR _wPageSubCode$[ebp]
  00375	66 89 4c 10 06	 mov	 WORD PTR [eax+edx+6], cx

; 266  :         m_MagazineState[magazine].wControlBits = wControlBits;

  0037a	0f b6 55 eb	 movzx	 edx, BYTE PTR _magazine$[ebp]
  0037e	69 d2 48 04 00
	00		 imul	 edx, 1096		; 00000448H
  00384	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  00387	66 8b 4d fc	 mov	 cx, WORD PTR _wControlBits$[ebp]
  0038b	66 89 4c 10 0c	 mov	 WORD PTR [eax+edx+12], cx

; 267  : 
; 268  :         CopyMemory(m_MagazineState[magazine].Header, data + 13, 32);

  00390	6a 20		 push	 32			; 00000020H
  00392	8b 55 08	 mov	 edx, DWORD PTR _data$[ebp]
  00395	83 c2 0d	 add	 edx, 13			; 0000000dH
  00398	52		 push	 edx
  00399	0f b6 45 eb	 movzx	 eax, BYTE PTR _magazine$[ebp]
  0039d	69 c0 48 04 00
	00		 imul	 eax, 1096		; 00000448H
  003a3	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  003a6	8d 54 01 0e	 lea	 edx, DWORD PTR [ecx+eax+14]
  003aa	52		 push	 edx
  003ab	e8 00 00 00 00	 call	 _memcpy
  003b0	83 c4 0c	 add	 esp, 12			; 0000000cH

; 269  :         ZeroMemory(m_MagazineState[magazine].bLineReceived, 25);

  003b3	6a 19		 push	 25			; 00000019H
  003b5	6a 00		 push	 0
  003b7	0f b6 45 eb	 movzx	 eax, BYTE PTR _magazine$[ebp]
  003bb	69 c0 48 04 00
	00		 imul	 eax, 1096		; 00000448H
  003c1	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  003c4	8d 94 01 16 04
	00 00		 lea	 edx, DWORD PTR [ecx+eax+1046]
  003cb	52		 push	 edx
  003cc	e8 00 00 00 00	 call	 _memset
  003d1	83 c4 0c	 add	 esp, 12			; 0000000cH

; 270  :         m_MagazineState[magazine].LinkReceived = 0x00;

  003d4	0f b6 45 eb	 movzx	 eax, BYTE PTR _magazine$[ebp]
  003d8	69 c0 48 04 00
	00		 imul	 eax, 1096		; 00000448H
  003de	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  003e1	c6 84 01 48 04
	00 00 00	 mov	 BYTE PTR [ecx+eax+1096], 0

; 271  : 
; 272  :         m_LastMagazine = magazine;

  003e9	8b 55 a8	 mov	 edx, DWORD PTR _this$[ebp]
  003ec	8a 45 eb	 mov	 al, BYTE PTR _magazine$[ebp]
  003ef	88 02		 mov	 BYTE PTR [edx], al

; 273  : 
; 274  :         LeaveCriticalSection(&m_MagazineStateMutex);

  003f1	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  003f4	81 c1 7c 2f 00
	00		 add	 ecx, 12156		; 00002f7cH
  003fa	51		 push	 ecx
  003fb	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 275  : 
; 276  :         NotifyDecoderEvent(DECODEREVENT_PAGEBEGIN, MAKELONG(wPageHex, wPageSubCode));

  00401	0f b7 55 e4	 movzx	 edx, WORD PTR _wPageHex$[ebp]
  00405	81 e2 ff ff 00
	00		 and	 edx, 65535		; 0000ffffH
  0040b	0f b7 c2	 movzx	 eax, dx
  0040e	0f b7 4d dc	 movzx	 ecx, WORD PTR _wPageSubCode$[ebp]
  00412	81 e1 ff ff 00
	00		 and	 ecx, 65535		; 0000ffffH
  00418	0f b7 d1	 movzx	 edx, cx
  0041b	c1 e2 10	 shl	 edx, 16			; 00000010H
  0041e	0b c2		 or	 eax, edx
  00420	50		 push	 eax
  00421	6a 01		 push	 1
  00423	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  00426	e8 00 00 00 00	 call	 ?NotifyDecoderEvent@CVTDecoder@@IAEXEK@Z ; CVTDecoder::NotifyDecoderEvent

; 277  :         break;

  0042b	e9 80 0b 00 00	 jmp	 $LN50@DecodeLine
$LN36@DecodeLine:

; 278  : 
; 279  :     case 1:
; 280  :     case 2:
; 281  :     case 3:
; 282  :     case 4:
; 283  :     case 5:
; 284  :     case 6:
; 285  :     case 7:
; 286  :     case 8:
; 287  :     case 9:
; 288  :     case 10:
; 289  :     case 11:
; 290  :     case 12:
; 291  :     case 13:
; 292  :     case 14:
; 293  :     case 15:
; 294  :     case 16:
; 295  :     case 17:
; 296  :     case 18:
; 297  :     case 19:
; 298  :     case 20:
; 299  :     case 21:
; 300  :     case 22:
; 301  :     case 23:
; 302  :     case 24:
; 303  :     case 25:
; 304  :         {
; 305  :             DWORD dwTTUpdate = 0UL;

  00430	c7 45 d4 00 00
	00 00		 mov	 DWORD PTR _dwTTUpdate$140006[ebp], 0

; 306  : 
; 307  :             EnterCriticalSection(&m_MagazineStateMutex);

  00437	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  0043a	05 7c 2f 00 00	 add	 eax, 12156		; 00002f7cH
  0043f	50		 push	 eax
  00440	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 308  : 
; 309  :             if (m_MagazineState[magazine].bReceiving != FALSE)

  00446	0f b6 4d eb	 movzx	 ecx, BYTE PTR _magazine$[ebp]
  0044a	69 c9 48 04 00
	00		 imul	 ecx, 1096		; 00000448H
  00450	8b 55 a8	 mov	 edx, DWORD PTR _this$[ebp]
  00453	83 7c 0a 08 00	 cmp	 DWORD PTR [edx+ecx+8], 0
  00458	0f 84 0b 01 00
	00		 je	 $LN35@DecodeLine

; 310  :             {
; 311  :                 BYTE line = packetNumber - 1;

  0045e	0f b6 45 f3	 movzx	 eax, BYTE PTR _packetNumber$[ebp]
  00462	83 e8 01	 sub	 eax, 1
  00465	88 45 d3	 mov	 BYTE PTR _line$140008[ebp], al

; 312  : 
; 313  :                 // 2004/05/10 atnak: do not override an existing line
; 314  :                 if (m_MagazineState[magazine].bLineReceived[line] != FALSE)

  00468	0f b6 4d eb	 movzx	 ecx, BYTE PTR _magazine$[ebp]
  0046c	69 c9 48 04 00
	00		 imul	 ecx, 1096		; 00000448H
  00472	8b 55 a8	 mov	 edx, DWORD PTR _this$[ebp]
  00475	8d 44 0a 04	 lea	 eax, DWORD PTR [edx+ecx+4]
  00479	0f b6 4d d3	 movzx	 ecx, BYTE PTR _line$140008[ebp]
  0047d	0f b6 94 08 12
	04 00 00	 movzx	 edx, BYTE PTR [eax+ecx+1042]
  00485	85 d2		 test	 edx, edx
  00487	74 34		 je	 SHORT $LN34@DecodeLine

; 315  :                 {
; 316  :                     // Assume that a new header was missed and close the magazine
; 317  :                     m_MagazineState[magazine].bReceiving = FALSE;

  00489	0f b6 45 eb	 movzx	 eax, BYTE PTR _magazine$[ebp]
  0048d	69 c0 48 04 00
	00		 imul	 eax, 1096		; 00000448H
  00493	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  00496	c7 44 01 08 00
	00 00 00	 mov	 DWORD PTR [ecx+eax+8], 0

; 318  :                     CompleteMagazine(&m_MagazineState[magazine]);

  0049e	0f b6 55 eb	 movzx	 edx, BYTE PTR _magazine$[ebp]
  004a2	69 d2 48 04 00
	00		 imul	 edx, 1096		; 00000448H
  004a8	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  004ab	8d 4c 10 04	 lea	 ecx, DWORD PTR [eax+edx+4]
  004af	51		 push	 ecx
  004b0	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  004b3	e8 00 00 00 00	 call	 ?CompleteMagazine@CVTDecoder@@AAEXPAU_MagazineState@1@@Z ; CVTDecoder::CompleteMagazine

; 319  :                 }
; 320  :                 else

  004b8	e9 ac 00 00 00	 jmp	 $LN35@DecodeLine
$LN34@DecodeLine:

; 321  :                 {
; 322  :                     CopyMemory(m_MagazineState[magazine].Line[line], data + 5, 40);

  004bd	6a 28		 push	 40			; 00000028H
  004bf	8b 55 08	 mov	 edx, DWORD PTR _data$[ebp]
  004c2	83 c2 05	 add	 edx, 5
  004c5	52		 push	 edx
  004c6	0f b6 45 eb	 movzx	 eax, BYTE PTR _magazine$[ebp]
  004ca	69 c0 48 04 00
	00		 imul	 eax, 1096		; 00000448H
  004d0	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  004d3	8d 54 01 04	 lea	 edx, DWORD PTR [ecx+eax+4]
  004d7	0f b6 45 d3	 movzx	 eax, BYTE PTR _line$140008[ebp]
  004db	6b c0 28	 imul	 eax, 40			; 00000028H
  004de	8d 4c 02 2a	 lea	 ecx, DWORD PTR [edx+eax+42]
  004e2	51		 push	 ecx
  004e3	e8 00 00 00 00	 call	 _memcpy
  004e8	83 c4 0c	 add	 esp, 12			; 0000000cH

; 323  :                     m_MagazineState[magazine].bLineReceived[line] = TRUE;

  004eb	0f b6 55 eb	 movzx	 edx, BYTE PTR _magazine$[ebp]
  004ef	69 d2 48 04 00
	00		 imul	 edx, 1096		; 00000448H
  004f5	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  004f8	8d 4c 10 04	 lea	 ecx, DWORD PTR [eax+edx+4]
  004fc	0f b6 55 d3	 movzx	 edx, BYTE PTR _line$140008[ebp]
  00500	c6 84 11 12 04
	00 00 01	 mov	 BYTE PTR [ecx+edx+1042], 1

; 324  : 
; 325  :                     dwPageCode = m_MagazineState[magazine].dwPageCode;

  00508	0f b6 45 eb	 movzx	 eax, BYTE PTR _magazine$[ebp]
  0050c	69 c0 48 04 00
	00		 imul	 eax, 1096		; 00000448H
  00512	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  00515	8b 54 01 04	 mov	 edx, DWORD PTR [ecx+eax+4]
  00519	89 55 f4	 mov	 DWORD PTR _dwPageCode$[ebp], edx

; 326  : 
; 327  :                     if (m_pVTTopText->IsTopTextPage(dwPageCode))

  0051c	8b 45 f4	 mov	 eax, DWORD PTR _dwPageCode$[ebp]
  0051f	50		 push	 eax
  00520	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  00523	8b 89 60 2f 00
	00		 mov	 ecx, DWORD PTR [ecx+12128]
  00529	e8 00 00 00 00	 call	 ?IsTopTextPage@CVTTopText@@QAEHK@Z ; CVTTopText::IsTopTextPage
  0052e	85 c0		 test	 eax, eax
  00530	74 37		 je	 SHORT $LN35@DecodeLine

; 328  :                     {
; 329  :                         dwTTUpdate = m_pVTTopText->DecodePageRow(dwPageCode,
; 330  :                             packetNumber, m_MagazineState[magazine].Line[line]);

  00532	0f b6 55 eb	 movzx	 edx, BYTE PTR _magazine$[ebp]
  00536	69 d2 48 04 00
	00		 imul	 edx, 1096		; 00000448H
  0053c	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  0053f	8d 4c 10 04	 lea	 ecx, DWORD PTR [eax+edx+4]
  00543	0f b6 55 d3	 movzx	 edx, BYTE PTR _line$140008[ebp]
  00547	6b d2 28	 imul	 edx, 40			; 00000028H
  0054a	8d 44 11 2a	 lea	 eax, DWORD PTR [ecx+edx+42]
  0054e	50		 push	 eax
  0054f	0f b6 4d f3	 movzx	 ecx, BYTE PTR _packetNumber$[ebp]
  00553	51		 push	 ecx
  00554	8b 55 f4	 mov	 edx, DWORD PTR _dwPageCode$[ebp]
  00557	52		 push	 edx
  00558	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  0055b	8b 88 60 2f 00
	00		 mov	 ecx, DWORD PTR [eax+12128]
  00561	e8 00 00 00 00	 call	 ?DecodePageRow@CVTTopText@@QAEKKEPAE@Z ; CVTTopText::DecodePageRow
  00566	89 45 d4	 mov	 DWORD PTR _dwTTUpdate$140006[ebp], eax
$LN35@DecodeLine:

; 331  :                     }
; 332  :                 }
; 333  :             }
; 334  : 
; 335  :             LeaveCriticalSection(&m_MagazineStateMutex);

  00569	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  0056c	81 c1 7c 2f 00
	00		 add	 ecx, 12156		; 00002f7cH
  00572	51		 push	 ecx
  00573	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 336  : 
; 337  :             if (dwTTUpdate != 0UL)

  00579	83 7d d4 00	 cmp	 DWORD PTR _dwTTUpdate$140006[ebp], 0
  0057d	74 2a		 je	 SHORT $LN31@DecodeLine

; 338  :             {
; 339  :                 if (m_bTopTextForComment != FALSE)

  0057f	8b 55 a8	 mov	 edx, DWORD PTR _this$[ebp]
  00582	83 ba 5c 2f 00
	00 00		 cmp	 DWORD PTR [edx+12124], 0
  00589	74 10		 je	 SHORT $LN30@DecodeLine

; 340  :                 {
; 341  :                     NotifyDecoderEvent(DECODEREVENT_COMMENTUPDATE, dwTTUpdate);

  0058b	8b 45 d4	 mov	 eax, DWORD PTR _dwTTUpdate$140006[ebp]
  0058e	50		 push	 eax
  0058f	6a 05		 push	 5
  00591	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  00594	e8 00 00 00 00	 call	 ?NotifyDecoderEvent@CVTDecoder@@IAEXEK@Z ; CVTDecoder::NotifyDecoderEvent

; 342  :                 }
; 343  :                 else

  00599	eb 0e		 jmp	 SHORT $LN31@DecodeLine
$LN30@DecodeLine:

; 344  :                 {
; 345  :                     NotifyDecoderEvent(DECODEREVENT_PAGEUPDATE, dwTTUpdate);

  0059b	8b 4d d4	 mov	 ecx, DWORD PTR _dwTTUpdate$140006[ebp]
  0059e	51		 push	 ecx
  0059f	6a 02		 push	 2
  005a1	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  005a4	e8 00 00 00 00	 call	 ?NotifyDecoderEvent@CVTDecoder@@IAEXEK@Z ; CVTDecoder::NotifyDecoderEvent
$LN31@DecodeLine:

; 346  :                 }
; 347  :             }
; 348  :         }
; 349  :         break;

  005a9	e9 02 0a 00 00	 jmp	 $LN50@DecodeLine

; 350  : 
; 351  :     case 26:
; 352  :         break;

  005ae	e9 fd 09 00 00	 jmp	 $LN50@DecodeLine
$LN27@DecodeLine:

; 353  : 
; 354  :     case 27:
; 355  :         EnterCriticalSection(&m_MagazineStateMutex);

  005b3	8b 55 a8	 mov	 edx, DWORD PTR _this$[ebp]
  005b6	81 c2 7c 2f 00
	00		 add	 edx, 12156		; 00002f7cH
  005bc	52		 push	 edx
  005bd	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 356  : 
; 357  :         if (m_MagazineState[magazine].bReceiving != FALSE)

  005c3	0f b6 45 eb	 movzx	 eax, BYTE PTR _magazine$[ebp]
  005c7	69 c0 48 04 00
	00		 imul	 eax, 1096		; 00000448H
  005cd	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  005d0	83 7c 01 08 00	 cmp	 DWORD PTR [ecx+eax+8], 0
  005d5	0f 84 8a 02 00
	00		 je	 $LN26@DecodeLine

; 358  :         {
; 359  :             // Packet X/27/0 for FLOF Editorial Linking
; 360  :             if (designationCode == 0)

  005db	0f b6 55 f2	 movzx	 edx, BYTE PTR _designationCode$[ebp]
  005df	85 d2		 test	 edx, edx
  005e1	0f 85 7e 02 00
	00		 jne	 $LN26@DecodeLine

; 361  :             {
; 362  :                 // 2004/05/10 atnak: do not override existing information
; 363  :                 if (m_MagazineState[magazine].LinkReceived != 0x00)

  005e7	0f b6 45 eb	 movzx	 eax, BYTE PTR _magazine$[ebp]
  005eb	69 c0 48 04 00
	00		 imul	 eax, 1096		; 00000448H
  005f1	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  005f4	0f b6 94 01 48
	04 00 00	 movzx	 edx, BYTE PTR [ecx+eax+1096]
  005fc	85 d2		 test	 edx, edx
  005fe	74 34		 je	 SHORT $LN24@DecodeLine

; 364  :                 {
; 365  :                     // Assume that a new header was missed and close the magazine
; 366  :                     m_MagazineState[magazine].bReceiving = FALSE;

  00600	0f b6 45 eb	 movzx	 eax, BYTE PTR _magazine$[ebp]
  00604	69 c0 48 04 00
	00		 imul	 eax, 1096		; 00000448H
  0060a	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  0060d	c7 44 01 08 00
	00 00 00	 mov	 DWORD PTR [ecx+eax+8], 0

; 367  :                     CompleteMagazine(&m_MagazineState[magazine]);

  00615	0f b6 55 eb	 movzx	 edx, BYTE PTR _magazine$[ebp]
  00619	69 d2 48 04 00
	00		 imul	 edx, 1096		; 00000448H
  0061f	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  00622	8d 4c 10 04	 lea	 ecx, DWORD PTR [eax+edx+4]
  00626	51		 push	 ecx
  00627	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  0062a	e8 00 00 00 00	 call	 ?CompleteMagazine@CVTDecoder@@AAEXPAU_MagazineState@1@@Z ; CVTDecoder::CompleteMagazine

; 368  :                 }
; 369  :                 else

  0062f	e9 31 02 00 00	 jmp	 $LN26@DecodeLine
$LN24@DecodeLine:

; 370  :                 {
; 371  :                     for (int n(0); n < 6; n++)

  00634	c7 45 cc 00 00
	00 00		 mov	 DWORD PTR _n$140021[ebp], 0
  0063b	eb 09		 jmp	 SHORT $LN22@DecodeLine
$LN21@DecodeLine:
  0063d	8b 55 cc	 mov	 edx, DWORD PTR _n$140021[ebp]
  00640	83 c2 01	 add	 edx, 1
  00643	89 55 cc	 mov	 DWORD PTR _n$140021[ebp], edx
$LN22@DecodeLine:
  00646	83 7d cc 06	 cmp	 DWORD PTR _n$140021[ebp], 6
  0064a	0f 8d 94 01 00
	00		 jge	 $LN20@DecodeLine

; 372  :                     {
; 373  :                         bError = FALSE;

  00650	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _bError$[ebp], 0

; 374  :                         s1 = Unham84(data + 6*n + 8, &bError);

  00657	8d 45 ec	 lea	 eax, DWORD PTR _bError$[ebp]
  0065a	50		 push	 eax
  0065b	8b 4d cc	 mov	 ecx, DWORD PTR _n$140021[ebp]
  0065e	6b c9 06	 imul	 ecx, 6
  00661	8b 55 08	 mov	 edx, DWORD PTR _data$[ebp]
  00664	8d 44 0a 08	 lea	 eax, DWORD PTR [edx+ecx+8]
  00668	50		 push	 eax
  00669	e8 00 00 00 00	 call	 ?Unham84@CVTCommon@@SAEPAEPAH@Z ; CVTCommon::Unham84
  0066e	83 c4 08	 add	 esp, 8
  00671	88 45 e2	 mov	 BYTE PTR _s1$[ebp], al

; 375  :                         s2 = Unham84(data + 6*n + 9, &bError);

  00674	8d 4d ec	 lea	 ecx, DWORD PTR _bError$[ebp]
  00677	51		 push	 ecx
  00678	8b 55 cc	 mov	 edx, DWORD PTR _n$140021[ebp]
  0067b	6b d2 06	 imul	 edx, 6
  0067e	8b 45 08	 mov	 eax, DWORD PTR _data$[ebp]
  00681	8d 4c 10 09	 lea	 ecx, DWORD PTR [eax+edx+9]
  00685	51		 push	 ecx
  00686	e8 00 00 00 00	 call	 ?Unham84@CVTCommon@@SAEPAEPAH@Z ; CVTCommon::Unham84
  0068b	83 c4 08	 add	 esp, 8
  0068e	88 45 e3	 mov	 BYTE PTR _s2$[ebp], al

; 376  :                         s3 = Unham84(data + 6*n + 10, &bError);

  00691	8d 55 ec	 lea	 edx, DWORD PTR _bError$[ebp]
  00694	52		 push	 edx
  00695	8b 45 cc	 mov	 eax, DWORD PTR _n$140021[ebp]
  00698	6b c0 06	 imul	 eax, 6
  0069b	8b 4d 08	 mov	 ecx, DWORD PTR _data$[ebp]
  0069e	8d 54 01 0a	 lea	 edx, DWORD PTR [ecx+eax+10]
  006a2	52		 push	 edx
  006a3	e8 00 00 00 00	 call	 ?Unham84@CVTCommon@@SAEPAEPAH@Z ; CVTCommon::Unham84
  006a8	83 c4 08	 add	 esp, 8
  006ab	88 45 fb	 mov	 BYTE PTR _s3$[ebp], al

; 377  :                         s4 = Unham84(data + 6*n + 11, &bError);

  006ae	8d 45 ec	 lea	 eax, DWORD PTR _bError$[ebp]
  006b1	50		 push	 eax
  006b2	8b 4d cc	 mov	 ecx, DWORD PTR _n$140021[ebp]
  006b5	6b c9 06	 imul	 ecx, 6
  006b8	8b 55 08	 mov	 edx, DWORD PTR _data$[ebp]
  006bb	8d 44 0a 0b	 lea	 eax, DWORD PTR [edx+ecx+11]
  006bf	50		 push	 eax
  006c0	e8 00 00 00 00	 call	 ?Unham84@CVTCommon@@SAEPAEPAH@Z ; CVTCommon::Unham84
  006c5	83 c4 08	 add	 esp, 8
  006c8	88 45 da	 mov	 BYTE PTR _s4$[ebp], al

; 378  : 
; 379  :                         wPageHex = UnhamTwo84_LSBF(data + 6*n + 6, &bError);

  006cb	8d 4d ec	 lea	 ecx, DWORD PTR _bError$[ebp]
  006ce	51		 push	 ecx
  006cf	8b 55 cc	 mov	 edx, DWORD PTR _n$140021[ebp]
  006d2	6b d2 06	 imul	 edx, 6
  006d5	8b 45 08	 mov	 eax, DWORD PTR _data$[ebp]
  006d8	8d 4c 10 06	 lea	 ecx, DWORD PTR [eax+edx+6]
  006dc	51		 push	 ecx
  006dd	e8 00 00 00 00	 call	 ?UnhamTwo84_LSBF@CVTCommon@@SAEQAEPAH@Z ; CVTCommon::UnhamTwo84_LSBF
  006e2	83 c4 08	 add	 esp, 8
  006e5	66 0f b6 d0	 movzx	 dx, al
  006e9	66 89 55 e4	 mov	 WORD PTR _wPageHex$[ebp], dx

; 380  : 
; 381  :                         if (bError != FALSE)

  006ed	83 7d ec 00	 cmp	 DWORD PTR _bError$[ebp], 0
  006f1	74 05		 je	 SHORT $LN19@DecodeLine

; 382  :                         {
; 383  :                             continue;

  006f3	e9 45 ff ff ff	 jmp	 $LN21@DecodeLine
$LN19@DecodeLine:

; 384  :                         }
; 385  : 
; 386  :                         BYTE linkMagazine = magazine ^ (s2 >> 3 | (s4 & 0xC) >> 1);

  006f8	0f b6 45 eb	 movzx	 eax, BYTE PTR _magazine$[ebp]
  006fc	0f b6 4d e3	 movzx	 ecx, BYTE PTR _s2$[ebp]
  00700	c1 f9 03	 sar	 ecx, 3
  00703	0f b6 55 da	 movzx	 edx, BYTE PTR _s4$[ebp]
  00707	83 e2 0c	 and	 edx, 12			; 0000000cH
  0070a	d1 fa		 sar	 edx, 1
  0070c	0b ca		 or	 ecx, edx
  0070e	33 c1		 xor	 eax, ecx
  00710	88 45 cb	 mov	 BYTE PTR _linkMagazine$140026[ebp], al

; 387  : 
; 388  :                         wPageHex |= (linkMagazine == 0 ? 0x800 : linkMagazine * 0x100);

  00713	0f b6 45 cb	 movzx	 eax, BYTE PTR _linkMagazine$140026[ebp]
  00717	85 c0		 test	 eax, eax
  00719	75 09		 jne	 SHORT $LN56@DecodeLine
  0071b	c7 45 98 00 08
	00 00		 mov	 DWORD PTR tv465[ebp], 2048 ; 00000800H
  00722	eb 0a		 jmp	 SHORT $LN57@DecodeLine
$LN56@DecodeLine:
  00724	0f b6 4d cb	 movzx	 ecx, BYTE PTR _linkMagazine$140026[ebp]
  00728	c1 e1 08	 shl	 ecx, 8
  0072b	89 4d 98	 mov	 DWORD PTR tv465[ebp], ecx
$LN57@DecodeLine:
  0072e	0f b7 55 e4	 movzx	 edx, WORD PTR _wPageHex$[ebp]
  00732	0b 55 98	 or	 edx, DWORD PTR tv465[ebp]
  00735	66 89 55 e4	 mov	 WORD PTR _wPageHex$[ebp], dx

; 389  :                         wPageSubCode = (s1 | ((s2 & 0x7) << 4));

  00739	0f b6 45 e2	 movzx	 eax, BYTE PTR _s1$[ebp]
  0073d	0f b6 4d e3	 movzx	 ecx, BYTE PTR _s2$[ebp]
  00741	83 e1 07	 and	 ecx, 7
  00744	c1 e1 04	 shl	 ecx, 4
  00747	0b c1		 or	 eax, ecx
  00749	66 89 45 dc	 mov	 WORD PTR _wPageSubCode$[ebp], ax

; 390  :                         wPageSubCode |= ((s3 << 8) | ((s4 & 0x3) << 12));

  0074d	0f b6 55 fb	 movzx	 edx, BYTE PTR _s3$[ebp]
  00751	c1 e2 08	 shl	 edx, 8
  00754	0f b6 45 da	 movzx	 eax, BYTE PTR _s4$[ebp]
  00758	83 e0 03	 and	 eax, 3
  0075b	c1 e0 0c	 shl	 eax, 12			; 0000000cH
  0075e	0b d0		 or	 edx, eax
  00760	0f b7 4d dc	 movzx	 ecx, WORD PTR _wPageSubCode$[ebp]
  00764	0b ca		 or	 ecx, edx
  00766	66 89 4d dc	 mov	 WORD PTR _wPageSubCode$[ebp], cx

; 391  : 
; 392  :                         dwPageCode = MAKELONG(wPageHex, wPageSubCode);

  0076a	0f b7 55 e4	 movzx	 edx, WORD PTR _wPageHex$[ebp]
  0076e	81 e2 ff ff 00
	00		 and	 edx, 65535		; 0000ffffH
  00774	0f b7 c2	 movzx	 eax, dx
  00777	0f b7 4d dc	 movzx	 ecx, WORD PTR _wPageSubCode$[ebp]
  0077b	81 e1 ff ff 00
	00		 and	 ecx, 65535		; 0000ffffH
  00781	0f b7 d1	 movzx	 edx, cx
  00784	c1 e2 10	 shl	 edx, 16			; 00000010H
  00787	0b c2		 or	 eax, edx
  00789	89 45 f4	 mov	 DWORD PTR _dwPageCode$[ebp], eax

; 393  : 
; 394  :                         m_MagazineState[magazine].EditorialLink[n] = dwPageCode;

  0078c	0f b6 45 eb	 movzx	 eax, BYTE PTR _magazine$[ebp]
  00790	69 c0 48 04 00
	00		 imul	 eax, 1096		; 00000448H
  00796	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  00799	8d 54 01 04	 lea	 edx, DWORD PTR [ecx+eax+4]
  0079d	8b 45 cc	 mov	 eax, DWORD PTR _n$140021[ebp]
  007a0	8b 4d f4	 mov	 ecx, DWORD PTR _dwPageCode$[ebp]
  007a3	89 8c 82 2c 04
	00 00		 mov	 DWORD PTR [edx+eax*4+1068], ecx

; 395  :                         m_MagazineState[magazine].LinkReceived |= (1 << n);

  007aa	0f b6 55 eb	 movzx	 edx, BYTE PTR _magazine$[ebp]
  007ae	69 d2 48 04 00
	00		 imul	 edx, 1096		; 00000448H
  007b4	b8 01 00 00 00	 mov	 eax, 1
  007b9	8b 4d cc	 mov	 ecx, DWORD PTR _n$140021[ebp]
  007bc	d3 e0		 shl	 eax, cl
  007be	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  007c1	0f b6 94 11 48
	04 00 00	 movzx	 edx, BYTE PTR [ecx+edx+1096]
  007c9	0b d0		 or	 edx, eax
  007cb	0f b6 45 eb	 movzx	 eax, BYTE PTR _magazine$[ebp]
  007cf	69 c0 48 04 00
	00		 imul	 eax, 1096		; 00000448H
  007d5	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  007d8	88 94 01 48 04
	00 00		 mov	 BYTE PTR [ecx+eax+1096], dl

; 396  :                     }

  007df	e9 59 fe ff ff	 jmp	 $LN21@DecodeLine
$LN20@DecodeLine:

; 397  : 
; 398  :                     BYTE linkControlByte = Unham84(data + 42, &bError);

  007e4	8d 55 ec	 lea	 edx, DWORD PTR _bError$[ebp]
  007e7	52		 push	 edx
  007e8	8b 45 08	 mov	 eax, DWORD PTR _data$[ebp]
  007eb	83 c0 2a	 add	 eax, 42			; 0000002aH
  007ee	50		 push	 eax
  007ef	e8 00 00 00 00	 call	 ?Unham84@CVTCommon@@SAEPAEPAH@Z ; CVTCommon::Unham84
  007f4	83 c4 08	 add	 esp, 8
  007f7	88 45 d2	 mov	 BYTE PTR _linkControlByte$140033[ebp], al

; 399  : 
; 400  :                     if (bError == FALSE)

  007fa	83 7d ec 00	 cmp	 DWORD PTR _bError$[ebp], 0
  007fe	75 65		 jne	 SHORT $LN26@DecodeLine

; 401  :                     {
; 402  :                         if ((linkControlByte & 0x08) != 0)

  00800	0f b6 4d d2	 movzx	 ecx, BYTE PTR _linkControlByte$140033[ebp]
  00804	83 e1 08	 and	 ecx, 8
  00807	74 2e		 je	 SHORT $LN17@DecodeLine

; 403  :                         {
; 404  :                             m_MagazineState[magazine].LinkReceived |= LINKRECV_SHOW24;

  00809	0f b6 55 eb	 movzx	 edx, BYTE PTR _magazine$[ebp]
  0080d	69 d2 48 04 00
	00		 imul	 edx, 1096		; 00000448H
  00813	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  00816	0f b6 8c 10 48
	04 00 00	 movzx	 ecx, BYTE PTR [eax+edx+1096]
  0081e	83 c9 40	 or	 ecx, 64			; 00000040H
  00821	0f b6 55 eb	 movzx	 edx, BYTE PTR _magazine$[ebp]
  00825	69 d2 48 04 00
	00		 imul	 edx, 1096		; 00000448H
  0082b	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  0082e	88 8c 10 48 04
	00 00		 mov	 BYTE PTR [eax+edx+1096], cl

; 405  :                         }
; 406  :                         else

  00835	eb 2e		 jmp	 SHORT $LN26@DecodeLine
$LN17@DecodeLine:

; 407  :                         {
; 408  :                             m_MagazineState[magazine].LinkReceived |= LINKRECV_HIDE24;

  00837	0f b6 4d eb	 movzx	 ecx, BYTE PTR _magazine$[ebp]
  0083b	69 c9 48 04 00
	00		 imul	 ecx, 1096		; 00000448H
  00841	8b 55 a8	 mov	 edx, DWORD PTR _this$[ebp]
  00844	0f b6 84 0a 48
	04 00 00	 movzx	 eax, BYTE PTR [edx+ecx+1096]
  0084c	0d 80 00 00 00	 or	 eax, 128		; 00000080H
  00851	0f b6 4d eb	 movzx	 ecx, BYTE PTR _magazine$[ebp]
  00855	69 c9 48 04 00
	00		 imul	 ecx, 1096		; 00000448H
  0085b	8b 55 a8	 mov	 edx, DWORD PTR _this$[ebp]
  0085e	88 84 0a 48 04
	00 00		 mov	 BYTE PTR [edx+ecx+1096], al
$LN26@DecodeLine:

; 409  :                         }
; 410  :                     }
; 411  :                 }
; 412  :             }
; 413  :         }
; 414  : 
; 415  :         LeaveCriticalSection(&m_MagazineStateMutex);

  00865	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  00868	05 7c 2f 00 00	 add	 eax, 12156		; 00002f7cH
  0086d	50		 push	 eax
  0086e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 416  :         break;

  00874	e9 37 07 00 00	 jmp	 $LN50@DecodeLine

; 417  : 
; 418  :     case 28:
; 419  :         /* don't see it; keep level 1 only
; 420  :         {
; 421  :             // X/28/0
; 422  :             BYTE c1 = *(dat + 5);
; 423  :             BYTE c2 = *(dat + 6);
; 424  :             BYTE c3 = *(dat + 7);
; 425  : 
; 426  :             BYTE DesignationCode = ((c1 & 0x02) >> 1 )|((c1 & 0x08) >> 2 )|((c1 & 0x20) >> 3 )|((c1 & 0x80) >> 4 );
; 427  :             BYTE PageFunction = c2 & 0x0F;
; 428  : 
; 429  :             //  format 1 and            basic level 1
; 430  :             if( DesignationCode != 0 || PageFunction != 0 )
; 431  :             {
; 432  :                 VTCodePageX28 = -1;
; 433  :                 C12C13C14 = -1;
; 434  :             }
; 435  :             else
; 436  :             {
; 437  :                 C12C13C14 = ((c2 & 0x80) >> 6)|((c3 & 0x01) << 1)|((c3 & 0x02) >> 1); // 1>(8 9 10)>16 => 7>(2 1 0)>0
; 438  :                 VTCodePageX28 = ((c3 & 0x04) >> 2)|((c3 & 0x08) >> 2)|((c3 & 0x10) >> 2)|((c3 & 0x20) >> 2);
; 439  :             }
; 440  :             char xx[40];
; 441  :             LOG(1, xx, _T("TELETEXT CO 28 %X %X %X - %X %X %X %X"), c1, c2, c3, DesignationCode, PageFunction, VTCodePageX28, C12C13C14);
; 442  :         }
; 443  :         */
; 444  :         break;

  00879	e9 32 07 00 00	 jmp	 $LN50@DecodeLine

; 445  : 
; 446  :     case 29:
; 447  :         /* don't see it; keep level 1 only
; 448  :         LOG(1, xx, _T("TELETEXT CO 29"));
; 449  :         */
; 450  :         break;

  0087e	e9 2d 07 00 00	 jmp	 $LN50@DecodeLine
$LN13@DecodeLine:

; 451  : 
; 452  :     case 30:
; 453  :         EnterCriticalSection(&m_ServiceDataStoreMutex);

  00883	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  00886	81 c1 ac 2f 00
	00		 add	 ecx, 12204		; 00002facH
  0088c	51		 push	 ecx
  0088d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 454  : 
; 455  :         // 8/30/0,1 is Format 1 Broadcast Service Data
; 456  :         // 8/30/2,3 is Format 2 Broadcast Service Data
; 457  :         if (magazine == 0 && (designationCode & 0xC) == 0x0)

  00893	0f b6 55 eb	 movzx	 edx, BYTE PTR _magazine$[ebp]
  00897	85 d2		 test	 edx, edx
  00899	0f 85 02 07 00
	00		 jne	 $LN12@DecodeLine
  0089f	0f b6 45 f2	 movzx	 eax, BYTE PTR _designationCode$[ebp]
  008a3	83 e0 0c	 and	 eax, 12			; 0000000cH
  008a6	0f 85 f5 06 00
	00		 jne	 $LN12@DecodeLine

; 458  :         {
; 459  :             // Caution: Remember that these offsets are zero based while indexes
; 460  :             // in the ETS Teletext specification (ETS 300 706) are one based.
; 461  :             s1 = Unham84(data + 8, &bError);

  008ac	8d 4d ec	 lea	 ecx, DWORD PTR _bError$[ebp]
  008af	51		 push	 ecx
  008b0	8b 55 08	 mov	 edx, DWORD PTR _data$[ebp]
  008b3	83 c2 08	 add	 edx, 8
  008b6	52		 push	 edx
  008b7	e8 00 00 00 00	 call	 ?Unham84@CVTCommon@@SAEPAEPAH@Z ; CVTCommon::Unham84
  008bc	83 c4 08	 add	 esp, 8
  008bf	88 45 e2	 mov	 BYTE PTR _s1$[ebp], al

; 462  :             s2 = Unham84(data + 9, &bError);

  008c2	8d 45 ec	 lea	 eax, DWORD PTR _bError$[ebp]
  008c5	50		 push	 eax
  008c6	8b 4d 08	 mov	 ecx, DWORD PTR _data$[ebp]
  008c9	83 c1 09	 add	 ecx, 9
  008cc	51		 push	 ecx
  008cd	e8 00 00 00 00	 call	 ?Unham84@CVTCommon@@SAEPAEPAH@Z ; CVTCommon::Unham84
  008d2	83 c4 08	 add	 esp, 8
  008d5	88 45 e3	 mov	 BYTE PTR _s2$[ebp], al

; 463  :             s3 = Unham84(data + 10, &bError);

  008d8	8d 55 ec	 lea	 edx, DWORD PTR _bError$[ebp]
  008db	52		 push	 edx
  008dc	8b 45 08	 mov	 eax, DWORD PTR _data$[ebp]
  008df	83 c0 0a	 add	 eax, 10			; 0000000aH
  008e2	50		 push	 eax
  008e3	e8 00 00 00 00	 call	 ?Unham84@CVTCommon@@SAEPAEPAH@Z ; CVTCommon::Unham84
  008e8	83 c4 08	 add	 esp, 8
  008eb	88 45 fb	 mov	 BYTE PTR _s3$[ebp], al

; 464  :             s4 = Unham84(data + 11, &bError);

  008ee	8d 4d ec	 lea	 ecx, DWORD PTR _bError$[ebp]
  008f1	51		 push	 ecx
  008f2	8b 55 08	 mov	 edx, DWORD PTR _data$[ebp]
  008f5	83 c2 0b	 add	 edx, 11			; 0000000bH
  008f8	52		 push	 edx
  008f9	e8 00 00 00 00	 call	 ?Unham84@CVTCommon@@SAEPAEPAH@Z ; CVTCommon::Unham84
  008fe	83 c4 08	 add	 esp, 8
  00901	88 45 da	 mov	 BYTE PTR _s4$[ebp], al

; 465  : 
; 466  :             wPageHex = UnhamTwo84_LSBF(data + 6, &bError);

  00904	8d 45 ec	 lea	 eax, DWORD PTR _bError$[ebp]
  00907	50		 push	 eax
  00908	8b 4d 08	 mov	 ecx, DWORD PTR _data$[ebp]
  0090b	83 c1 06	 add	 ecx, 6
  0090e	51		 push	 ecx
  0090f	e8 00 00 00 00	 call	 ?UnhamTwo84_LSBF@CVTCommon@@SAEQAEPAH@Z ; CVTCommon::UnhamTwo84_LSBF
  00914	83 c4 08	 add	 esp, 8
  00917	66 0f b6 d0	 movzx	 dx, al
  0091b	66 89 55 e4	 mov	 WORD PTR _wPageHex$[ebp], dx

; 467  : 
; 468  :             if (bError == FALSE)

  0091f	83 7d ec 00	 cmp	 DWORD PTR _bError$[ebp], 0
  00923	0f 85 99 00 00
	00		 jne	 $LN11@DecodeLine

; 469  :             {
; 470  :                 BYTE initialMagazine = (s2 >> 3 | (s4 & 0xC) >> 1);

  00929	0f b6 45 e3	 movzx	 eax, BYTE PTR _s2$[ebp]
  0092d	c1 f8 03	 sar	 eax, 3
  00930	0f b6 4d da	 movzx	 ecx, BYTE PTR _s4$[ebp]
  00934	83 e1 0c	 and	 ecx, 12			; 0000000cH
  00937	d1 f9		 sar	 ecx, 1
  00939	0b c1		 or	 eax, ecx
  0093b	88 45 ca	 mov	 BYTE PTR _initialMagazine$140042[ebp], al

; 471  : 
; 472  :                 wPageHex |= (initialMagazine == 0 ? 0x800 : initialMagazine * 0x100);

  0093e	0f b6 55 ca	 movzx	 edx, BYTE PTR _initialMagazine$140042[ebp]
  00942	85 d2		 test	 edx, edx
  00944	75 09		 jne	 SHORT $LN58@DecodeLine
  00946	c7 45 94 00 08
	00 00		 mov	 DWORD PTR tv591[ebp], 2048 ; 00000800H
  0094d	eb 0a		 jmp	 SHORT $LN59@DecodeLine
$LN58@DecodeLine:
  0094f	0f b6 45 ca	 movzx	 eax, BYTE PTR _initialMagazine$140042[ebp]
  00953	c1 e0 08	 shl	 eax, 8
  00956	89 45 94	 mov	 DWORD PTR tv591[ebp], eax
$LN59@DecodeLine:
  00959	0f b7 4d e4	 movzx	 ecx, WORD PTR _wPageHex$[ebp]
  0095d	0b 4d 94	 or	 ecx, DWORD PTR tv591[ebp]
  00960	66 89 4d e4	 mov	 WORD PTR _wPageHex$[ebp], cx

; 473  :                 wPageSubCode = (s1 | ((s2 & 0x7) << 4));

  00964	0f b6 55 e2	 movzx	 edx, BYTE PTR _s1$[ebp]
  00968	0f b6 45 e3	 movzx	 eax, BYTE PTR _s2$[ebp]
  0096c	83 e0 07	 and	 eax, 7
  0096f	c1 e0 04	 shl	 eax, 4
  00972	0b d0		 or	 edx, eax
  00974	66 89 55 dc	 mov	 WORD PTR _wPageSubCode$[ebp], dx

; 474  :                 wPageSubCode |= ((s3 << 8) | ((s4 & 0x3) << 12));

  00978	0f b6 4d fb	 movzx	 ecx, BYTE PTR _s3$[ebp]
  0097c	c1 e1 08	 shl	 ecx, 8
  0097f	0f b6 55 da	 movzx	 edx, BYTE PTR _s4$[ebp]
  00983	83 e2 03	 and	 edx, 3
  00986	c1 e2 0c	 shl	 edx, 12			; 0000000cH
  00989	0b ca		 or	 ecx, edx
  0098b	0f b7 45 dc	 movzx	 eax, WORD PTR _wPageSubCode$[ebp]
  0098f	0b c1		 or	 eax, ecx
  00991	66 89 45 dc	 mov	 WORD PTR _wPageSubCode$[ebp], ax

; 475  : 
; 476  :                 dwPageCode = (DWORD)MAKELONG(wPageHex, wPageSubCode);

  00995	0f b7 4d e4	 movzx	 ecx, WORD PTR _wPageHex$[ebp]
  00999	81 e1 ff ff 00
	00		 and	 ecx, 65535		; 0000ffffH
  0099f	0f b7 d1	 movzx	 edx, cx
  009a2	0f b7 45 dc	 movzx	 eax, WORD PTR _wPageSubCode$[ebp]
  009a6	25 ff ff 00 00	 and	 eax, 65535		; 0000ffffH
  009ab	0f b7 c8	 movzx	 ecx, ax
  009ae	c1 e1 10	 shl	 ecx, 16			; 00000010H
  009b1	0b d1		 or	 edx, ecx
  009b3	89 55 f4	 mov	 DWORD PTR _dwPageCode$[ebp], edx

; 477  : 
; 478  :                 m_BroadcastServiceData.InitialPage = dwPageCode;

  009b6	8b 55 a8	 mov	 edx, DWORD PTR _this$[ebp]
  009b9	8b 45 f4	 mov	 eax, DWORD PTR _dwPageCode$[ebp]
  009bc	89 82 f4 2e 00
	00		 mov	 DWORD PTR [edx+12020], eax
$LN11@DecodeLine:

; 479  :             }
; 480  : 
; 481  :             // Format 1 and Format 2 are different from here
; 482  :             if ((designationCode & 0x2) == 0)

  009c2	0f b6 4d f2	 movzx	 ecx, BYTE PTR _designationCode$[ebp]
  009c6	83 e1 02	 and	 ecx, 2
  009c9	0f 85 8e 01 00
	00		 jne	 $LN10@DecodeLine

; 483  :             {
; 484  :                 // The Network Identification Code has bits in reverse
; 485  :                 WORD wNetworkIDCode = ReverseBits(data[13]) | ReverseBits(data[12]) << 8;

  009cf	8b 55 08	 mov	 edx, DWORD PTR _data$[ebp]
  009d2	0f b6 42 0d	 movzx	 eax, BYTE PTR [edx+13]
  009d6	50		 push	 eax
  009d7	e8 00 00 00 00	 call	 ?ReverseBits@CVTCommon@@SAEE@Z ; CVTCommon::ReverseBits
  009dc	83 c4 04	 add	 esp, 4
  009df	0f b6 f0	 movzx	 esi, al
  009e2	8b 4d 08	 mov	 ecx, DWORD PTR _data$[ebp]
  009e5	0f b6 51 0c	 movzx	 edx, BYTE PTR [ecx+12]
  009e9	52		 push	 edx
  009ea	e8 00 00 00 00	 call	 ?ReverseBits@CVTCommon@@SAEE@Z ; CVTCommon::ReverseBits
  009ef	83 c4 04	 add	 esp, 4
  009f2	0f b6 c0	 movzx	 eax, al
  009f5	c1 e0 08	 shl	 eax, 8
  009f8	0b f0		 or	 esi, eax
  009fa	66 89 75 c4	 mov	 WORD PTR _wNetworkIDCode$140051[ebp], si

; 486  :                 m_BroadcastServiceData.NetworkIDCode[1] = m_BroadcastServiceData.NetworkIDCode[0];

  009fe	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  00a01	8b 55 a8	 mov	 edx, DWORD PTR _this$[ebp]
  00a04	66 8b 82 f8 2e
	00 00		 mov	 ax, WORD PTR [edx+12024]
  00a0b	66 89 81 fa 2e
	00 00		 mov	 WORD PTR [ecx+12026], ax

; 487  :                 m_BroadcastServiceData.NetworkIDCode[0] = wNetworkIDCode;

  00a12	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  00a15	66 8b 55 c4	 mov	 dx, WORD PTR _wNetworkIDCode$140051[ebp]
  00a19	66 89 91 f8 2e
	00 00		 mov	 WORD PTR [ecx+12024], dx

; 488  :                 /*
; 489  :                 LOG(1, _T("m_BroadcastServiceData.NetworkIDCode[0] %x"), m_BroadcastServiceData.NetworkIDCode[0]);
; 490  :                 */
; 491  : 
; 492  :                 // Time offset from UTC in half hour units
; 493  :                 char timeOffset = (data[14] >> 1) * ((data[14] & 0x40) ? -1 : 1);

  00a20	8b 45 08	 mov	 eax, DWORD PTR _data$[ebp]
  00a23	0f b6 48 0e	 movzx	 ecx, BYTE PTR [eax+14]
  00a27	d1 f9		 sar	 ecx, 1
  00a29	8b 55 08	 mov	 edx, DWORD PTR _data$[ebp]
  00a2c	0f b6 42 0e	 movzx	 eax, BYTE PTR [edx+14]
  00a30	83 e0 40	 and	 eax, 64			; 00000040H
  00a33	f7 d8		 neg	 eax
  00a35	1b c0		 sbb	 eax, eax
  00a37	83 e0 fe	 and	 eax, -2			; fffffffeH
  00a3a	83 c0 01	 add	 eax, 1
  00a3d	0f af c8	 imul	 ecx, eax
  00a40	88 4d c9	 mov	 BYTE PTR _timeOffset$140052[ebp], cl

; 494  :                 m_BroadcastServiceData.TimeOffset = timeOffset;

  00a43	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  00a46	8a 55 c9	 mov	 dl, BYTE PTR _timeOffset$140052[ebp]
  00a49	88 91 fc 2e 00
	00		 mov	 BYTE PTR [ecx+12028], dl

; 495  : 
; 496  :                 // Modified Julian Date 45000 is 31 January 1982
; 497  :                 ULONG modifiedJulianDate = 0L;

  00a4f	c7 45 c0 00 00
	00 00		 mov	 DWORD PTR _modifiedJulianDate$140053[ebp], 0

; 498  : 
; 499  :                 modifiedJulianDate += ((data[15] & 0x0F) >> 0) * 10000;

  00a56	8b 45 08	 mov	 eax, DWORD PTR _data$[ebp]
  00a59	0f b6 48 0f	 movzx	 ecx, BYTE PTR [eax+15]
  00a5d	83 e1 0f	 and	 ecx, 15			; 0000000fH
  00a60	69 c9 10 27 00
	00		 imul	 ecx, 10000		; 00002710H
  00a66	03 4d c0	 add	 ecx, DWORD PTR _modifiedJulianDate$140053[ebp]
  00a69	89 4d c0	 mov	 DWORD PTR _modifiedJulianDate$140053[ebp], ecx

; 500  :                 modifiedJulianDate += ((data[16] & 0xF0) >> 4) * 1000;

  00a6c	8b 55 08	 mov	 edx, DWORD PTR _data$[ebp]
  00a6f	0f b6 42 10	 movzx	 eax, BYTE PTR [edx+16]
  00a73	25 f0 00 00 00	 and	 eax, 240		; 000000f0H
  00a78	c1 f8 04	 sar	 eax, 4
  00a7b	69 c0 e8 03 00
	00		 imul	 eax, 1000		; 000003e8H
  00a81	03 45 c0	 add	 eax, DWORD PTR _modifiedJulianDate$140053[ebp]
  00a84	89 45 c0	 mov	 DWORD PTR _modifiedJulianDate$140053[ebp], eax

; 501  :                 modifiedJulianDate += ((data[16] & 0x0F) >> 0) * 100;

  00a87	8b 4d 08	 mov	 ecx, DWORD PTR _data$[ebp]
  00a8a	0f b6 51 10	 movzx	 edx, BYTE PTR [ecx+16]
  00a8e	83 e2 0f	 and	 edx, 15			; 0000000fH
  00a91	6b d2 64	 imul	 edx, 100		; 00000064H
  00a94	03 55 c0	 add	 edx, DWORD PTR _modifiedJulianDate$140053[ebp]
  00a97	89 55 c0	 mov	 DWORD PTR _modifiedJulianDate$140053[ebp], edx

; 502  :                 modifiedJulianDate += ((data[17] & 0xF0) >> 4) * 10;

  00a9a	8b 45 08	 mov	 eax, DWORD PTR _data$[ebp]
  00a9d	0f b6 48 11	 movzx	 ecx, BYTE PTR [eax+17]
  00aa1	81 e1 f0 00 00
	00		 and	 ecx, 240		; 000000f0H
  00aa7	c1 f9 04	 sar	 ecx, 4
  00aaa	6b c9 0a	 imul	 ecx, 10			; 0000000aH
  00aad	03 4d c0	 add	 ecx, DWORD PTR _modifiedJulianDate$140053[ebp]
  00ab0	89 4d c0	 mov	 DWORD PTR _modifiedJulianDate$140053[ebp], ecx

; 503  :                 modifiedJulianDate += ((data[17] & 0x0F) >> 0) * 1;

  00ab3	8b 55 08	 mov	 edx, DWORD PTR _data$[ebp]
  00ab6	0f b6 42 11	 movzx	 eax, BYTE PTR [edx+17]
  00aba	83 e0 0f	 and	 eax, 15			; 0000000fH
  00abd	03 45 c0	 add	 eax, DWORD PTR _modifiedJulianDate$140053[ebp]
  00ac0	89 45 c0	 mov	 DWORD PTR _modifiedJulianDate$140053[ebp], eax

; 504  : 
; 505  :                 m_BroadcastServiceData.ModifiedJulianDate = modifiedJulianDate;

  00ac3	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  00ac6	8b 55 c0	 mov	 edx, DWORD PTR _modifiedJulianDate$140053[ebp]
  00ac9	89 91 00 2f 00
	00		 mov	 DWORD PTR [ecx+12032], edx

; 506  : 
; 507  :                 BYTE Hours   = (data[18] & 0x0F) + ((data[18] & 0xF0) >> 4) * 10;

  00acf	8b 45 08	 mov	 eax, DWORD PTR _data$[ebp]
  00ad2	0f b6 48 12	 movzx	 ecx, BYTE PTR [eax+18]
  00ad6	83 e1 0f	 and	 ecx, 15			; 0000000fH
  00ad9	8b 55 08	 mov	 edx, DWORD PTR _data$[ebp]
  00adc	0f b6 42 12	 movzx	 eax, BYTE PTR [edx+18]
  00ae0	25 f0 00 00 00	 and	 eax, 240		; 000000f0H
  00ae5	c1 f8 04	 sar	 eax, 4
  00ae8	6b c0 0a	 imul	 eax, 10			; 0000000aH
  00aeb	03 c8		 add	 ecx, eax
  00aed	88 4d bf	 mov	 BYTE PTR _Hours$140054[ebp], cl

; 508  :                 BYTE Minutes = (data[19] & 0x0F) + ((data[19] & 0xF0) >> 4) * 10;

  00af0	8b 4d 08	 mov	 ecx, DWORD PTR _data$[ebp]
  00af3	0f b6 51 13	 movzx	 edx, BYTE PTR [ecx+19]
  00af7	83 e2 0f	 and	 edx, 15			; 0000000fH
  00afa	8b 45 08	 mov	 eax, DWORD PTR _data$[ebp]
  00afd	0f b6 48 13	 movzx	 ecx, BYTE PTR [eax+19]
  00b01	81 e1 f0 00 00
	00		 and	 ecx, 240		; 000000f0H
  00b07	c1 f9 04	 sar	 ecx, 4
  00b0a	6b c9 0a	 imul	 ecx, 10			; 0000000aH
  00b0d	03 d1		 add	 edx, ecx
  00b0f	88 55 be	 mov	 BYTE PTR _Minutes$140055[ebp], dl

; 509  :                 BYTE Seconds = (data[20] & 0x0F) + ((data[20] & 0xF0) >> 4) * 10;

  00b12	8b 55 08	 mov	 edx, DWORD PTR _data$[ebp]
  00b15	0f b6 42 14	 movzx	 eax, BYTE PTR [edx+20]
  00b19	83 e0 0f	 and	 eax, 15			; 0000000fH
  00b1c	8b 4d 08	 mov	 ecx, DWORD PTR _data$[ebp]
  00b1f	0f b6 51 14	 movzx	 edx, BYTE PTR [ecx+20]
  00b23	81 e2 f0 00 00
	00		 and	 edx, 240		; 000000f0H
  00b29	c1 fa 04	 sar	 edx, 4
  00b2c	6b d2 0a	 imul	 edx, 10			; 0000000aH
  00b2f	03 c2		 add	 eax, edx
  00b31	88 45 c8	 mov	 BYTE PTR _Seconds$140056[ebp], al

; 510  : 
; 511  :                 m_BroadcastServiceData.UTCHours = Hours;

  00b34	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  00b37	8a 4d bf	 mov	 cl, BYTE PTR _Hours$140054[ebp]
  00b3a	88 88 04 2f 00
	00		 mov	 BYTE PTR [eax+12036], cl

; 512  :                 m_BroadcastServiceData.UTCMinutes = Minutes;

  00b40	8b 55 a8	 mov	 edx, DWORD PTR _this$[ebp]
  00b43	8a 45 be	 mov	 al, BYTE PTR _Minutes$140055[ebp]
  00b46	88 82 05 2f 00
	00		 mov	 BYTE PTR [edx+12037], al

; 513  :                 m_BroadcastServiceData.UTCSeconds = Seconds;

  00b4c	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  00b4f	8a 55 c8	 mov	 dl, BYTE PTR _Seconds$140056[ebp]
  00b52	88 91 06 2f 00
	00		 mov	 BYTE PTR [ecx+12038], dl

; 514  :             }
; 515  :             else

  00b58	e9 29 04 00 00	 jmp	 $LN9@DecodeLine
$LN10@DecodeLine:

; 516  :             {
; 517  :                 // Programme Identification Data
; 518  : 
; 519  :                 BYTE LCI = Unham84(data + 12, &(bError = FALSE));

  00b5d	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _bError$[ebp], 0
  00b64	8d 45 ec	 lea	 eax, DWORD PTR _bError$[ebp]
  00b67	50		 push	 eax
  00b68	8b 4d 08	 mov	 ecx, DWORD PTR _data$[ebp]
  00b6b	83 c1 0c	 add	 ecx, 12			; 0000000cH
  00b6e	51		 push	 ecx
  00b6f	e8 00 00 00 00	 call	 ?Unham84@CVTCommon@@SAEPAEPAH@Z ; CVTCommon::Unham84
  00b74	83 c4 08	 add	 esp, 8
  00b77	88 45 bd	 mov	 BYTE PTR _LCI$140058[ebp], al

; 520  :                 if (bError == FALSE)

  00b7a	83 7d ec 00	 cmp	 DWORD PTR _bError$[ebp], 0
  00b7e	0f 85 02 04 00
	00		 jne	 $LN9@DecodeLine

; 521  :                 {
; 522  :                     BYTE LUF = (LCI & 0x4) != 0;

  00b84	0f b6 55 bd	 movzx	 edx, BYTE PTR _LCI$140058[ebp]
  00b88	83 e2 04	 and	 edx, 4
  00b8b	0f 95 c0	 setne	 al
  00b8e	88 45 ba	 mov	 BYTE PTR _LUF$140060[ebp], al

; 523  :                     BYTE PRF = (LCI & 0x8) != 0;

  00b91	0f b6 4d bd	 movzx	 ecx, BYTE PTR _LCI$140058[ebp]
  00b95	83 e1 08	 and	 ecx, 8
  00b98	0f 95 c2	 setne	 dl
  00b9b	88 55 bb	 mov	 BYTE PTR _PRF$140061[ebp], dl

; 524  :                     LCI &= 0x3;

  00b9e	0f b6 45 bd	 movzx	 eax, BYTE PTR _LCI$140058[ebp]
  00ba2	83 e0 03	 and	 eax, 3
  00ba5	88 45 bd	 mov	 BYTE PTR _LCI$140058[ebp], al

; 525  : 
; 526  :                     m_PDC[LCI].LCI = LCI;

  00ba8	0f b6 4d bd	 movzx	 ecx, BYTE PTR _LCI$140058[ebp]
  00bac	6b c9 0c	 imul	 ecx, 12			; 0000000cH
  00baf	8a 55 bd	 mov	 dl, BYTE PTR _LCI$140058[ebp]
  00bb2	80 e2 03	 and	 dl, 3
  00bb5	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  00bb8	8a 8c 08 1c 2f
	00 00		 mov	 cl, BYTE PTR [eax+ecx+12060]
  00bbf	80 e1 fc	 and	 cl, 252			; 000000fcH
  00bc2	0a ca		 or	 cl, dl
  00bc4	0f b6 55 bd	 movzx	 edx, BYTE PTR _LCI$140058[ebp]
  00bc8	6b d2 0c	 imul	 edx, 12			; 0000000cH
  00bcb	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  00bce	88 8c 10 1c 2f
	00 00		 mov	 BYTE PTR [eax+edx+12060], cl

; 527  :                     m_PDC[LCI].LUF = LUF;

  00bd5	0f b6 4d bd	 movzx	 ecx, BYTE PTR _LCI$140058[ebp]
  00bd9	6b c9 0c	 imul	 ecx, 12			; 0000000cH
  00bdc	8a 55 ba	 mov	 dl, BYTE PTR _LUF$140060[ebp]
  00bdf	80 e2 01	 and	 dl, 1
  00be2	c0 e2 02	 shl	 dl, 2
  00be5	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  00be8	8a 8c 08 1c 2f
	00 00		 mov	 cl, BYTE PTR [eax+ecx+12060]
  00bef	80 e1 fb	 and	 cl, 251			; 000000fbH
  00bf2	0a ca		 or	 cl, dl
  00bf4	0f b6 55 bd	 movzx	 edx, BYTE PTR _LCI$140058[ebp]
  00bf8	6b d2 0c	 imul	 edx, 12			; 0000000cH
  00bfb	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  00bfe	88 8c 10 1c 2f
	00 00		 mov	 BYTE PTR [eax+edx+12060], cl

; 528  :                     m_PDC[LCI].PRF = PRF;

  00c05	0f b6 4d bd	 movzx	 ecx, BYTE PTR _LCI$140058[ebp]
  00c09	6b c9 0c	 imul	 ecx, 12			; 0000000cH
  00c0c	8a 55 bb	 mov	 dl, BYTE PTR _PRF$140061[ebp]
  00c0f	80 e2 01	 and	 dl, 1
  00c12	c0 e2 03	 shl	 dl, 3
  00c15	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  00c18	8a 8c 08 1c 2f
	00 00		 mov	 cl, BYTE PTR [eax+ecx+12060]
  00c1f	80 e1 f7	 and	 cl, 247			; 000000f7H
  00c22	0a ca		 or	 cl, dl
  00c24	0f b6 55 bd	 movzx	 edx, BYTE PTR _LCI$140058[ebp]
  00c28	6b d2 0c	 imul	 edx, 12			; 0000000cH
  00c2b	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  00c2e	88 8c 10 1c 2f
	00 00		 mov	 BYTE PTR [eax+edx+12060], cl

; 529  : 
; 530  :                     BYTE PCS = Unham84(data + 13, &(bError = FALSE));

  00c35	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _bError$[ebp], 0
  00c3c	8d 4d ec	 lea	 ecx, DWORD PTR _bError$[ebp]
  00c3f	51		 push	 ecx
  00c40	8b 55 08	 mov	 edx, DWORD PTR _data$[ebp]
  00c43	83 c2 0d	 add	 edx, 13			; 0000000dH
  00c46	52		 push	 edx
  00c47	e8 00 00 00 00	 call	 ?Unham84@CVTCommon@@SAEPAEPAH@Z ; CVTCommon::Unham84
  00c4c	83 c4 08	 add	 esp, 8
  00c4f	88 45 bc	 mov	 BYTE PTR _PCS$140062[ebp], al

; 531  :                     if (bError == FALSE)

  00c52	83 7d ec 00	 cmp	 DWORD PTR _bError$[ebp], 0
  00c56	75 75		 jne	 SHORT $LN7@DecodeLine

; 532  :                     {
; 533  :                         BYTE MI = (PCS & 0x4) != 0;

  00c58	0f b6 45 bc	 movzx	 eax, BYTE PTR _PCS$140062[ebp]
  00c5c	83 e0 04	 and	 eax, 4
  00c5f	0f 95 c1	 setne	 cl
  00c62	88 4d b6	 mov	 BYTE PTR _MI$140064[ebp], cl

; 534  :                         PCS &= 0x3;

  00c65	0f b6 55 bc	 movzx	 edx, BYTE PTR _PCS$140062[ebp]
  00c69	83 e2 03	 and	 edx, 3
  00c6c	88 55 bc	 mov	 BYTE PTR _PCS$140062[ebp], dl

; 535  : 
; 536  :                         m_PDC[LCI].PCS = PCS;

  00c6f	0f b6 45 bd	 movzx	 eax, BYTE PTR _LCI$140058[ebp]
  00c73	6b c0 0c	 imul	 eax, 12			; 0000000cH
  00c76	8a 4d bc	 mov	 cl, BYTE PTR _PCS$140062[ebp]
  00c79	80 e1 03	 and	 cl, 3
  00c7c	c0 e1 04	 shl	 cl, 4
  00c7f	8b 55 a8	 mov	 edx, DWORD PTR _this$[ebp]
  00c82	8a 84 02 1c 2f
	00 00		 mov	 al, BYTE PTR [edx+eax+12060]
  00c89	24 cf		 and	 al, 207			; 000000cfH
  00c8b	0a c1		 or	 al, cl
  00c8d	0f b6 4d bd	 movzx	 ecx, BYTE PTR _LCI$140058[ebp]
  00c91	6b c9 0c	 imul	 ecx, 12			; 0000000cH
  00c94	8b 55 a8	 mov	 edx, DWORD PTR _this$[ebp]
  00c97	88 84 0a 1c 2f
	00 00		 mov	 BYTE PTR [edx+ecx+12060], al

; 537  :                         m_PDC[LCI].MI = MI;

  00c9e	0f b6 45 bd	 movzx	 eax, BYTE PTR _LCI$140058[ebp]
  00ca2	6b c0 0c	 imul	 eax, 12			; 0000000cH
  00ca5	8a 4d b6	 mov	 cl, BYTE PTR _MI$140064[ebp]
  00ca8	80 e1 01	 and	 cl, 1
  00cab	c0 e1 06	 shl	 cl, 6
  00cae	8b 55 a8	 mov	 edx, DWORD PTR _this$[ebp]
  00cb1	8a 84 02 1c 2f
	00 00		 mov	 al, BYTE PTR [edx+eax+12060]
  00cb8	24 bf		 and	 al, 191			; 000000bfH
  00cba	0a c1		 or	 al, cl
  00cbc	0f b6 4d bd	 movzx	 ecx, BYTE PTR _LCI$140058[ebp]
  00cc0	6b c9 0c	 imul	 ecx, 12			; 0000000cH
  00cc3	8b 55 a8	 mov	 edx, DWORD PTR _this$[ebp]
  00cc6	88 84 0a 1c 2f
	00 00		 mov	 BYTE PTR [edx+ecx+12060], al
$LN7@DecodeLine:

; 538  :                     }
; 539  : 
; 540  :                     bError = FALSE;

  00ccd	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _bError$[ebp], 0

; 541  :                     BYTE b16 = Unham84(data + 15, &bError);

  00cd4	8d 45 ec	 lea	 eax, DWORD PTR _bError$[ebp]
  00cd7	50		 push	 eax
  00cd8	8b 4d 08	 mov	 ecx, DWORD PTR _data$[ebp]
  00cdb	83 c1 0f	 add	 ecx, 15			; 0000000fH
  00cde	51		 push	 ecx
  00cdf	e8 00 00 00 00	 call	 ?Unham84@CVTCommon@@SAEPAEPAH@Z ; CVTCommon::Unham84
  00ce4	83 c4 08	 add	 esp, 8
  00ce7	88 45 b8	 mov	 BYTE PTR _b16$140065[ebp], al

; 542  :                     BYTE b21 = Unham84(data + 20, &bError);

  00cea	8d 55 ec	 lea	 edx, DWORD PTR _bError$[ebp]
  00ced	52		 push	 edx
  00cee	8b 45 08	 mov	 eax, DWORD PTR _data$[ebp]
  00cf1	83 c0 14	 add	 eax, 20			; 00000014H
  00cf4	50		 push	 eax
  00cf5	e8 00 00 00 00	 call	 ?Unham84@CVTCommon@@SAEPAEPAH@Z ; CVTCommon::Unham84
  00cfa	83 c4 08	 add	 esp, 8
  00cfd	88 45 b9	 mov	 BYTE PTR _b21$140066[ebp], al

; 543  : 
; 544  :                     if (bError == FALSE)

  00d00	83 7d ec 00	 cmp	 DWORD PTR _bError$[ebp], 0
  00d04	0f 85 23 02 00
	00		 jne	 $LN6@DecodeLine

; 545  :                     {
; 546  :                         BYTE b22 = Unham84(data + 21, &bError);

  00d0a	8d 4d ec	 lea	 ecx, DWORD PTR _bError$[ebp]
  00d0d	51		 push	 ecx
  00d0e	8b 55 08	 mov	 edx, DWORD PTR _data$[ebp]
  00d11	83 c2 15	 add	 edx, 21			; 00000015H
  00d14	52		 push	 edx
  00d15	e8 00 00 00 00	 call	 ?Unham84@CVTCommon@@SAEPAEPAH@Z ; CVTCommon::Unham84
  00d1a	83 c4 08	 add	 esp, 8
  00d1d	88 45 b5	 mov	 BYTE PTR _b22$140068[ebp], al

; 547  :                         WORD CNI = Unham84(data + 14, &bError);

  00d20	8d 45 ec	 lea	 eax, DWORD PTR _bError$[ebp]
  00d23	50		 push	 eax
  00d24	8b 4d 08	 mov	 ecx, DWORD PTR _data$[ebp]
  00d27	83 c1 0e	 add	 ecx, 14			; 0000000eH
  00d2a	51		 push	 ecx
  00d2b	e8 00 00 00 00	 call	 ?Unham84@CVTCommon@@SAEPAEPAH@Z ; CVTCommon::Unham84
  00d30	83 c4 08	 add	 esp, 8
  00d33	66 0f b6 d0	 movzx	 dx, al
  00d37	66 89 55 ac	 mov	 WORD PTR _CNI$140069[ebp], dx

; 548  : 
; 549  :                         CNI |= ((b21 & 0xC) << 2) | ((b22 & 0x3) << 6);

  00d3b	0f b6 45 b9	 movzx	 eax, BYTE PTR _b21$140066[ebp]
  00d3f	83 e0 0c	 and	 eax, 12			; 0000000cH
  00d42	c1 e0 02	 shl	 eax, 2
  00d45	0f b6 4d b5	 movzx	 ecx, BYTE PTR _b22$140068[ebp]
  00d49	83 e1 03	 and	 ecx, 3
  00d4c	c1 e1 06	 shl	 ecx, 6
  00d4f	0b c1		 or	 eax, ecx
  00d51	0f b7 55 ac	 movzx	 edx, WORD PTR _CNI$140069[ebp]
  00d55	0b d0		 or	 edx, eax
  00d57	66 89 55 ac	 mov	 WORD PTR _CNI$140069[ebp], dx

; 550  :                         CNI |= ((b16 & 0x3) << 8) | ((b22 & 0xC) << 8);

  00d5b	0f b6 45 b8	 movzx	 eax, BYTE PTR _b16$140065[ebp]
  00d5f	83 e0 03	 and	 eax, 3
  00d62	c1 e0 08	 shl	 eax, 8
  00d65	0f b6 4d b5	 movzx	 ecx, BYTE PTR _b22$140068[ebp]
  00d69	83 e1 0c	 and	 ecx, 12			; 0000000cH
  00d6c	c1 e1 08	 shl	 ecx, 8
  00d6f	0b c1		 or	 eax, ecx
  00d71	0f b7 55 ac	 movzx	 edx, WORD PTR _CNI$140069[ebp]
  00d75	0b d0		 or	 edx, eax
  00d77	66 89 55 ac	 mov	 WORD PTR _CNI$140069[ebp], dx

; 551  :                         CNI |= Unham84(data + 22, &bError) << 12;

  00d7b	8d 45 ec	 lea	 eax, DWORD PTR _bError$[ebp]
  00d7e	50		 push	 eax
  00d7f	8b 4d 08	 mov	 ecx, DWORD PTR _data$[ebp]
  00d82	83 c1 16	 add	 ecx, 22			; 00000016H
  00d85	51		 push	 ecx
  00d86	e8 00 00 00 00	 call	 ?Unham84@CVTCommon@@SAEPAEPAH@Z ; CVTCommon::Unham84
  00d8b	83 c4 08	 add	 esp, 8
  00d8e	0f b6 d0	 movzx	 edx, al
  00d91	c1 e2 0c	 shl	 edx, 12			; 0000000cH
  00d94	0f b7 45 ac	 movzx	 eax, WORD PTR _CNI$140069[ebp]
  00d98	0b c2		 or	 eax, edx
  00d9a	66 89 45 ac	 mov	 WORD PTR _CNI$140069[ebp], ax

; 552  : 
; 553  :                         if (bError == FALSE)

  00d9e	83 7d ec 00	 cmp	 DWORD PTR _bError$[ebp], 0
  00da2	0f 85 b0 00 00
	00		 jne	 $LN5@DecodeLine

; 554  :                         {
; 555  :                             // Reverse the bits in the WORD
; 556  :                             CNI = (CNI & 0x00FF) << 8 | (CNI & 0xFF00) >> 8;

  00da8	0f b7 4d ac	 movzx	 ecx, WORD PTR _CNI$140069[ebp]
  00dac	81 e1 ff 00 00
	00		 and	 ecx, 255		; 000000ffH
  00db2	c1 e1 08	 shl	 ecx, 8
  00db5	0f b7 55 ac	 movzx	 edx, WORD PTR _CNI$140069[ebp]
  00db9	81 e2 00 ff 00
	00		 and	 edx, 65280		; 0000ff00H
  00dbf	c1 fa 08	 sar	 edx, 8
  00dc2	0b ca		 or	 ecx, edx
  00dc4	66 89 4d ac	 mov	 WORD PTR _CNI$140069[ebp], cx

; 557  :                             CNI = (CNI & 0x0F0F) << 4 | (CNI & 0xF0F0) >> 4;

  00dc8	0f b7 45 ac	 movzx	 eax, WORD PTR _CNI$140069[ebp]
  00dcc	25 0f 0f 00 00	 and	 eax, 3855		; 00000f0fH
  00dd1	c1 e0 04	 shl	 eax, 4
  00dd4	0f b7 4d ac	 movzx	 ecx, WORD PTR _CNI$140069[ebp]
  00dd8	81 e1 f0 f0 00
	00		 and	 ecx, 61680		; 0000f0f0H
  00dde	c1 f9 04	 sar	 ecx, 4
  00de1	0b c1		 or	 eax, ecx
  00de3	66 89 45 ac	 mov	 WORD PTR _CNI$140069[ebp], ax

; 558  :                             CNI = (CNI & 0x3333) << 2 | (CNI & 0xCCCC) >> 2;

  00de7	0f b7 55 ac	 movzx	 edx, WORD PTR _CNI$140069[ebp]
  00deb	81 e2 33 33 00
	00		 and	 edx, 13107		; 00003333H
  00df1	c1 e2 02	 shl	 edx, 2
  00df4	0f b7 45 ac	 movzx	 eax, WORD PTR _CNI$140069[ebp]
  00df8	25 cc cc 00 00	 and	 eax, 52428		; 0000ccccH
  00dfd	c1 f8 02	 sar	 eax, 2
  00e00	0b d0		 or	 edx, eax
  00e02	66 89 55 ac	 mov	 WORD PTR _CNI$140069[ebp], dx

; 559  :                             CNI = (CNI & 0x5555) << 1 | (CNI & 0xAAAA) >> 1;

  00e06	0f b7 4d ac	 movzx	 ecx, WORD PTR _CNI$140069[ebp]
  00e0a	81 e1 55 55 00
	00		 and	 ecx, 21845		; 00005555H
  00e10	d1 e1		 shl	 ecx, 1
  00e12	0f b7 55 ac	 movzx	 edx, WORD PTR _CNI$140069[ebp]
  00e16	81 e2 aa aa 00
	00		 and	 edx, 43690		; 0000aaaaH
  00e1c	d1 fa		 sar	 edx, 1
  00e1e	0b ca		 or	 ecx, edx
  00e20	66 89 4d ac	 mov	 WORD PTR _CNI$140069[ebp], cx

; 560  : 
; 561  :                             m_PDC[LCI].CNI = CNI;

  00e24	0f b6 45 bd	 movzx	 eax, BYTE PTR _LCI$140058[ebp]
  00e28	6b c0 0c	 imul	 eax, 12			; 0000000cH
  00e2b	b9 ff ff 00 00	 mov	 ecx, 65535		; 0000ffffH
  00e30	66 23 4d ac	 and	 cx, WORD PTR _CNI$140069[ebp]
  00e34	8b 55 a8	 mov	 edx, DWORD PTR _this$[ebp]
  00e37	66 8b 84 02 1e
	2f 00 00	 mov	 ax, WORD PTR [edx+eax+12062]
  00e3f	66 83 e0 00	 and	 ax, 0
  00e43	66 0b c1	 or	 ax, cx
  00e46	0f b6 4d bd	 movzx	 ecx, BYTE PTR _LCI$140058[ebp]
  00e4a	6b c9 0c	 imul	 ecx, 12			; 0000000cH
  00e4d	8b 55 a8	 mov	 edx, DWORD PTR _this$[ebp]
  00e50	66 89 84 0a 1e
	2f 00 00	 mov	 WORD PTR [edx+ecx+12062], ax
$LN5@DecodeLine:

; 562  :                         }
; 563  : 
; 564  :                         bError = FALSE;

  00e58	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _bError$[ebp], 0

; 565  : 
; 566  :                         DWORD PIL = (b16 >> 2);

  00e5f	0f b6 45 b8	 movzx	 eax, BYTE PTR _b16$140065[ebp]
  00e63	c1 f8 02	 sar	 eax, 2
  00e66	89 45 b0	 mov	 DWORD PTR _PIL$140071[ebp], eax

; 567  :                         PIL |= Unham84(data + 16, &bError) << 2;

  00e69	8d 4d ec	 lea	 ecx, DWORD PTR _bError$[ebp]
  00e6c	51		 push	 ecx
  00e6d	8b 55 08	 mov	 edx, DWORD PTR _data$[ebp]
  00e70	83 c2 10	 add	 edx, 16			; 00000010H
  00e73	52		 push	 edx
  00e74	e8 00 00 00 00	 call	 ?Unham84@CVTCommon@@SAEPAEPAH@Z ; CVTCommon::Unham84
  00e79	83 c4 08	 add	 esp, 8
  00e7c	0f b6 c0	 movzx	 eax, al
  00e7f	c1 e0 02	 shl	 eax, 2
  00e82	0b 45 b0	 or	 eax, DWORD PTR _PIL$140071[ebp]
  00e85	89 45 b0	 mov	 DWORD PTR _PIL$140071[ebp], eax

; 568  :                         PIL |= Unham84(data + 17, &bError) << 6;

  00e88	8d 4d ec	 lea	 ecx, DWORD PTR _bError$[ebp]
  00e8b	51		 push	 ecx
  00e8c	8b 55 08	 mov	 edx, DWORD PTR _data$[ebp]
  00e8f	83 c2 11	 add	 edx, 17			; 00000011H
  00e92	52		 push	 edx
  00e93	e8 00 00 00 00	 call	 ?Unham84@CVTCommon@@SAEPAEPAH@Z ; CVTCommon::Unham84
  00e98	83 c4 08	 add	 esp, 8
  00e9b	0f b6 c0	 movzx	 eax, al
  00e9e	c1 e0 06	 shl	 eax, 6
  00ea1	0b 45 b0	 or	 eax, DWORD PTR _PIL$140071[ebp]
  00ea4	89 45 b0	 mov	 DWORD PTR _PIL$140071[ebp], eax

; 569  :                         PIL |= Unham84(data + 18, &bError) << 10;

  00ea7	8d 4d ec	 lea	 ecx, DWORD PTR _bError$[ebp]
  00eaa	51		 push	 ecx
  00eab	8b 55 08	 mov	 edx, DWORD PTR _data$[ebp]
  00eae	83 c2 12	 add	 edx, 18			; 00000012H
  00eb1	52		 push	 edx
  00eb2	e8 00 00 00 00	 call	 ?Unham84@CVTCommon@@SAEPAEPAH@Z ; CVTCommon::Unham84
  00eb7	83 c4 08	 add	 esp, 8
  00eba	0f b6 c0	 movzx	 eax, al
  00ebd	c1 e0 0a	 shl	 eax, 10			; 0000000aH
  00ec0	0b 45 b0	 or	 eax, DWORD PTR _PIL$140071[ebp]
  00ec3	89 45 b0	 mov	 DWORD PTR _PIL$140071[ebp], eax

; 570  :                         PIL |= Unham84(data + 19, &bError) << 14;

  00ec6	8d 4d ec	 lea	 ecx, DWORD PTR _bError$[ebp]
  00ec9	51		 push	 ecx
  00eca	8b 55 08	 mov	 edx, DWORD PTR _data$[ebp]
  00ecd	83 c2 13	 add	 edx, 19			; 00000013H
  00ed0	52		 push	 edx
  00ed1	e8 00 00 00 00	 call	 ?Unham84@CVTCommon@@SAEPAEPAH@Z ; CVTCommon::Unham84
  00ed6	83 c4 08	 add	 esp, 8
  00ed9	0f b6 c0	 movzx	 eax, al
  00edc	c1 e0 0e	 shl	 eax, 14			; 0000000eH
  00edf	0b 45 b0	 or	 eax, DWORD PTR _PIL$140071[ebp]
  00ee2	89 45 b0	 mov	 DWORD PTR _PIL$140071[ebp], eax

; 571  :                         PIL |= (b21 & 0x3) << 18;

  00ee5	0f b6 4d b9	 movzx	 ecx, BYTE PTR _b21$140066[ebp]
  00ee9	83 e1 03	 and	 ecx, 3
  00eec	c1 e1 12	 shl	 ecx, 18			; 00000012H
  00eef	0b 4d b0	 or	 ecx, DWORD PTR _PIL$140071[ebp]
  00ef2	89 4d b0	 mov	 DWORD PTR _PIL$140071[ebp], ecx

; 572  : 
; 573  :                         if (bError == FALSE)

  00ef5	83 7d ec 00	 cmp	 DWORD PTR _bError$[ebp], 0
  00ef9	75 32		 jne	 SHORT $LN6@DecodeLine

; 574  :                         {
; 575  :                             m_PDC[LCI].PIL = PIL;

  00efb	0f b6 55 bd	 movzx	 edx, BYTE PTR _LCI$140058[ebp]
  00eff	6b d2 0c	 imul	 edx, 12			; 0000000cH
  00f02	8b 45 b0	 mov	 eax, DWORD PTR _PIL$140071[ebp]
  00f05	25 ff ff 0f 00	 and	 eax, 1048575		; 000fffffH
  00f0a	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  00f0d	8b 94 11 20 2f
	00 00		 mov	 edx, DWORD PTR [ecx+edx+12064]
  00f14	81 e2 00 00 f0
	ff		 and	 edx, -1048576		; fff00000H
  00f1a	0b d0		 or	 edx, eax
  00f1c	0f b6 45 bd	 movzx	 eax, BYTE PTR _LCI$140058[ebp]
  00f20	6b c0 0c	 imul	 eax, 12			; 0000000cH
  00f23	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  00f26	89 94 01 20 2f
	00 00		 mov	 DWORD PTR [ecx+eax+12064], edx
$LN6@DecodeLine:

; 576  :                         }
; 577  :                     }
; 578  : 
; 579  :                     BYTE PTY = UnhamTwo84_LSBF(data + 23, &(bError = FALSE));

  00f2d	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _bError$[ebp], 0
  00f34	8d 55 ec	 lea	 edx, DWORD PTR _bError$[ebp]
  00f37	52		 push	 edx
  00f38	8b 45 08	 mov	 eax, DWORD PTR _data$[ebp]
  00f3b	83 c0 17	 add	 eax, 23			; 00000017H
  00f3e	50		 push	 eax
  00f3f	e8 00 00 00 00	 call	 ?UnhamTwo84_LSBF@CVTCommon@@SAEQAEPAH@Z ; CVTCommon::UnhamTwo84_LSBF
  00f44	83 c4 08	 add	 esp, 8
  00f47	88 45 b7	 mov	 BYTE PTR _PTY$140073[ebp], al

; 580  :                     if (bError == FALSE)

  00f4a	83 7d ec 00	 cmp	 DWORD PTR _bError$[ebp], 0
  00f4e	75 2a		 jne	 SHORT $LN3@DecodeLine

; 581  :                     {
; 582  :                         m_PDC[LCI].PTY = PTY;

  00f50	0f b6 4d bd	 movzx	 ecx, BYTE PTR _LCI$140058[ebp]
  00f54	6b c9 0c	 imul	 ecx, 12			; 0000000cH
  00f57	8a 55 b7	 mov	 dl, BYTE PTR _PTY$140073[ebp]
  00f5a	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  00f5d	8a 8c 08 24 2f
	00 00		 mov	 cl, BYTE PTR [eax+ecx+12068]
  00f64	80 e1 00	 and	 cl, 0
  00f67	0a ca		 or	 cl, dl
  00f69	0f b6 55 bd	 movzx	 edx, BYTE PTR _LCI$140058[ebp]
  00f6d	6b d2 0c	 imul	 edx, 12			; 0000000cH
  00f70	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  00f73	88 8c 10 24 2f
	00 00		 mov	 BYTE PTR [eax+edx+12068], cl
$LN3@DecodeLine:

; 583  :                     }
; 584  : 
; 585  :                     /*
; 586  :                     LOG(1, _T("LCI = %d, Country = %x, Network = %x"), LCI, (m_PDC[LCI].CNI >> 8) & 0xFF, (m_PDC[LCI].CNI & 0xFF));
; 587  :                     LOG(1, _T("Day = %d, Month = %d, %d:%d"), (m_PDC[LCI].PIL & 0x1F), (m_PDC[LCI].PIL >> 5) & 0x0F,
; 588  :                                                           (m_PDC[LCI].PIL >> 9) & 0x1F, (m_PDC[LCI].PIL >> 14) & 0x3F);
; 589  :                     LOG(1, _T("Program Type = %d"), m_PDC[LCI].PTY);
; 590  :                     */
; 591  : 
; 592  :                     NotifyDecoderEvent(DECODEREVENT_PDCUPDATE, 0);

  00f7a	6a 00		 push	 0
  00f7c	6a 04		 push	 4
  00f7e	8b 4d a8	 mov	 ecx, DWORD PTR _this$[ebp]
  00f81	e8 00 00 00 00	 call	 ?NotifyDecoderEvent@CVTDecoder@@IAEXEK@Z ; CVTDecoder::NotifyDecoderEvent
$LN9@DecodeLine:

; 593  : 
; 594  :                 }
; 595  :             }
; 596  : 
; 597  :             CopyMemory(m_BroadcastServiceData.StatusDisplay, data + 25, 20);

  00f86	6a 14		 push	 20			; 00000014H
  00f88	8b 4d 08	 mov	 ecx, DWORD PTR _data$[ebp]
  00f8b	83 c1 19	 add	 ecx, 25			; 00000019H
  00f8e	51		 push	 ecx
  00f8f	8b 55 a8	 mov	 edx, DWORD PTR _this$[ebp]
  00f92	81 c2 07 2f 00
	00		 add	 edx, 12039		; 00002f07H
  00f98	52		 push	 edx
  00f99	e8 00 00 00 00	 call	 _memcpy
  00f9e	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN12@DecodeLine:

; 598  :         }
; 599  : 
; 600  :         LeaveCriticalSection(&m_ServiceDataStoreMutex);

  00fa1	8b 45 a8	 mov	 eax, DWORD PTR _this$[ebp]
  00fa4	05 ac 2f 00 00	 add	 eax, 12204		; 00002facH
  00fa9	50		 push	 eax
  00faa	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4
$LN50@DecodeLine:

; 601  :         break;
; 602  : 
; 603  :     case 31:  // Independent data services
; 604  :         break;
; 605  : 
; 606  :     default:
; 607  :         break;
; 608  :     }
; 609  : }

  00fb0	5e		 pop	 esi
  00fb1	8b e5		 mov	 esp, ebp
  00fb3	5d		 pop	 ebp
  00fb4	c2 04 00	 ret	 4
  00fb7	90		 npad	 1
$LN61@DecodeLine:
  00fb8	00 00 00 00	 DD	 $LN42@DecodeLine
  00fbc	00 00 00 00	 DD	 $LN36@DecodeLine
  00fc0	00 00 00 00	 DD	 $LN27@DecodeLine
  00fc4	00 00 00 00	 DD	 $LN13@DecodeLine
  00fc8	00 00 00 00	 DD	 $LN50@DecodeLine
$LN60@DecodeLine:
  00fcc	00		 DB	 0
  00fcd	01		 DB	 1
  00fce	01		 DB	 1
  00fcf	01		 DB	 1
  00fd0	01		 DB	 1
  00fd1	01		 DB	 1
  00fd2	01		 DB	 1
  00fd3	01		 DB	 1
  00fd4	01		 DB	 1
  00fd5	01		 DB	 1
  00fd6	01		 DB	 1
  00fd7	01		 DB	 1
  00fd8	01		 DB	 1
  00fd9	01		 DB	 1
  00fda	01		 DB	 1
  00fdb	01		 DB	 1
  00fdc	01		 DB	 1
  00fdd	01		 DB	 1
  00fde	01		 DB	 1
  00fdf	01		 DB	 1
  00fe0	01		 DB	 1
  00fe1	01		 DB	 1
  00fe2	01		 DB	 1
  00fe3	01		 DB	 1
  00fe4	01		 DB	 1
  00fe5	01		 DB	 1
  00fe6	04		 DB	 4
  00fe7	02		 DB	 2
  00fe8	04		 DB	 4
  00fe9	04		 DB	 4
  00fea	03		 DB	 3
?DecodeLine@CVTDecoder@@QAEXPAE@Z ENDP			; CVTDecoder::DecodeLine
;	COMDAT xdata$x
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector
xdata$x	SEGMENT
__unwindtable$??$_Insert@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@PAD1Uforward_iterator_tag@1@@Z DD 0ffffffffH
	DD	00H
	DD	0ffffffffH
	DD	00H
__catchsym$??$_Insert@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@PAD1Uforward_iterator_tag@1@@Z$2 DD 00H
	DD	00H
	DD	00H
	DD	FLAT:__catch$??$_Insert@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@PAD1Uforward_iterator_tag@1@@Z$0
__tryblocktable$??$_Insert@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@PAD1Uforward_iterator_tag@1@@Z DD 00H
	DD	00H
	DD	01H
	DD	01H
	DD	FLAT:__catchsym$??$_Insert@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@PAD1Uforward_iterator_tag@1@@Z$2
__ehfuncinfo$??$_Insert@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@PAD1Uforward_iterator_tag@1@@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??$_Insert@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@PAD1Uforward_iterator_tag@1@@Z
	DD	01H
	DD	FLAT:__tryblocktable$??$_Insert@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@PAD1Uforward_iterator_tag@1@@Z
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??$_Insert@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@PAD1Uforward_iterator_tag@1@@Z
_TEXT	SEGMENT
tv87 = -40						; size = 4
_this$ = -36						; size = 4
__Newvec$141577 = -32					; size = 4
__Ptr$141578 = -28					; size = 4
__Capacity$ = -24					; size = 4
__Count$ = -20						; size = 4
__$EHRec$ = -16						; size = 16
__Where$ = 8						; size = 8
__First$ = 16						; size = 4
__Last$ = 20						; size = 4
___formal$ = 24						; size = 1
??$_Insert@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@PAD1Uforward_iterator_tag@1@@Z PROC ; std::vector<wchar_t,std::allocator<wchar_t> >::_Insert<char *>, COMDAT
; _this$ = ecx

; 925  : 		void _Insert(const_iterator _Where,

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??$_Insert@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@PAD1Uforward_iterator_tag@1@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	83 ec 18	 sub	 esp, 24			; 00000018H
  00015	53		 push	 ebx
  00016	56		 push	 esi
  00017	57		 push	 edi
  00018	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001d	33 c5		 xor	 eax, ebp
  0001f	50		 push	 eax
  00020	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp+4]
  00023	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00029	89 65 f0	 mov	 DWORD PTR __$EHRec$[ebp], esp
  0002c	89 4d dc	 mov	 DWORD PTR _this$[ebp], ecx

; 926  : 			_Iter _First, _Iter _Last, forward_iterator_tag)
; 927  : 		{	// insert [_First, _Last) at _Where, forward iterators
; 928  : 
; 929  :  #if _HAS_ITERATOR_DEBUGGING
; 930  : 		if (_Where._Mycont != this
; 931  : 			|| _Where._Myptr < _Myfirst || _Mylast < _Where._Myptr)
; 932  : 			_DEBUG_ERROR("vector insert iterator outside range");
; 933  : 		_DEBUG_RANGE(_First, _Last);
; 934  :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 935  : 
; 936  : 		size_type _Count = 0;

  0002f	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR __Count$[ebp], 0

; 937  : 		_Distance(_First, _Last, _Count);

  00036	8d 45 ec	 lea	 eax, DWORD PTR __Count$[ebp]
  00039	50		 push	 eax
  0003a	8b 4d 14	 mov	 ecx, DWORD PTR __Last$[ebp]
  0003d	51		 push	 ecx
  0003e	8b 55 10	 mov	 edx, DWORD PTR __First$[ebp]
  00041	52		 push	 edx
  00042	e8 00 00 00 00	 call	 ??$_Distance@PADI@std@@YAXPAD0AAI@Z ; std::_Distance<char *,unsigned int>
  00047	83 c4 0c	 add	 esp, 12			; 0000000cH

; 938  : 		size_type _Capacity = capacity();

  0004a	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  0004d	e8 00 00 00 00	 call	 ?capacity@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::capacity
  00052	89 45 e8	 mov	 DWORD PTR __Capacity$[ebp], eax

; 939  : 
; 940  : 		if (_Count == 0)

  00055	83 7d ec 00	 cmp	 DWORD PTR __Count$[ebp], 0
  00059	75 05		 jne	 SHORT $LN9@Insert@5
  0005b	e9 14 02 00 00	 jmp	 $LN11@Insert@5
$LN9@Insert@5:

; 941  : 			;
; 942  : 		else if (max_size() - size() < _Count)

  00060	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  00063	e8 00 00 00 00	 call	 ?max_size@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::max_size
  00068	8b f0		 mov	 esi, eax
  0006a	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  0006d	e8 00 00 00 00	 call	 ?size@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::size
  00072	2b f0		 sub	 esi, eax
  00074	3b 75 ec	 cmp	 esi, DWORD PTR __Count$[ebp]
  00077	73 0a		 jae	 SHORT $LN7@Insert@5

; 943  : 			_Xlen();	// result too long

  00079	e8 00 00 00 00	 call	 ?_Xlen@?$vector@_WV?$allocator@_W@std@@@std@@KAXXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::_Xlen
  0007e	e9 f1 01 00 00	 jmp	 $LN11@Insert@5
$LN7@Insert@5:

; 944  : 		else if (_Capacity < size() + _Count)

  00083	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  00086	e8 00 00 00 00	 call	 ?size@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::size
  0008b	03 45 ec	 add	 eax, DWORD PTR __Count$[ebp]
  0008e	39 45 e8	 cmp	 DWORD PTR __Capacity$[ebp], eax
  00091	0f 83 6c 01 00
	00		 jae	 $LN5@Insert@5

; 945  : 			{	// not enough room, reallocate
; 946  : 			_Capacity = max_size() - _Capacity / 2 < _Capacity
; 947  : 				? 0 : _Capacity + _Capacity / 2;	// try to grow by 50%

  00097	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  0009a	e8 00 00 00 00	 call	 ?max_size@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::max_size
  0009f	8b 4d e8	 mov	 ecx, DWORD PTR __Capacity$[ebp]
  000a2	d1 e9		 shr	 ecx, 1
  000a4	2b c1		 sub	 eax, ecx
  000a6	3b 45 e8	 cmp	 eax, DWORD PTR __Capacity$[ebp]
  000a9	73 09		 jae	 SHORT $LN12@Insert@5
  000ab	c7 45 d8 00 00
	00 00		 mov	 DWORD PTR tv87[ebp], 0
  000b2	eb 0b		 jmp	 SHORT $LN13@Insert@5
$LN12@Insert@5:
  000b4	8b 55 e8	 mov	 edx, DWORD PTR __Capacity$[ebp]
  000b7	d1 ea		 shr	 edx, 1
  000b9	03 55 e8	 add	 edx, DWORD PTR __Capacity$[ebp]
  000bc	89 55 d8	 mov	 DWORD PTR tv87[ebp], edx
$LN13@Insert@5:
  000bf	8b 45 d8	 mov	 eax, DWORD PTR tv87[ebp]
  000c2	89 45 e8	 mov	 DWORD PTR __Capacity$[ebp], eax

; 948  : 			if (_Capacity < size() + _Count)

  000c5	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  000c8	e8 00 00 00 00	 call	 ?size@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::size
  000cd	03 45 ec	 add	 eax, DWORD PTR __Count$[ebp]
  000d0	39 45 e8	 cmp	 DWORD PTR __Capacity$[ebp], eax
  000d3	73 0e		 jae	 SHORT $LN4@Insert@5

; 949  : 				_Capacity = size() + _Count;

  000d5	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  000d8	e8 00 00 00 00	 call	 ?size@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::size
  000dd	03 45 ec	 add	 eax, DWORD PTR __Count$[ebp]
  000e0	89 45 e8	 mov	 DWORD PTR __Capacity$[ebp], eax
$LN4@Insert@5:

; 950  : 			pointer _Newvec = this->_Alval.allocate(_Capacity);

  000e3	8b 4d e8	 mov	 ecx, DWORD PTR __Capacity$[ebp]
  000e6	51		 push	 ecx
  000e7	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  000ea	83 c1 08	 add	 ecx, 8
  000ed	e8 00 00 00 00	 call	 ?allocate@?$allocator@_W@std@@QAEPA_WI@Z ; std::allocator<wchar_t>::allocate
  000f2	89 45 e0	 mov	 DWORD PTR __Newvec$141577[ebp], eax

; 951  : 			pointer _Ptr = _Newvec;

  000f5	8b 55 e0	 mov	 edx, DWORD PTR __Newvec$141577[ebp]
  000f8	89 55 e4	 mov	 DWORD PTR __Ptr$141578[ebp], edx

; 952  : 
; 953  : 			_TRY_BEGIN

  000fb	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 0

; 954  : 			_Ptr = _Umove(_Myfirst, _VEC_ITER_BASE(_Where),
; 955  : 				_Newvec);	// copy prefix

  00102	8b 45 e0	 mov	 eax, DWORD PTR __Newvec$141577[ebp]
  00105	50		 push	 eax
  00106	8b 4d 0c	 mov	 ecx, DWORD PTR __Where$[ebp+4]
  00109	51		 push	 ecx
  0010a	8b 55 dc	 mov	 edx, DWORD PTR _this$[ebp]
  0010d	8b 42 0c	 mov	 eax, DWORD PTR [edx+12]
  00110	50		 push	 eax
  00111	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  00114	e8 00 00 00 00	 call	 ??$_Umove@PA_W@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WPA_W00@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Umove<wchar_t *>
  00119	89 45 e4	 mov	 DWORD PTR __Ptr$141578[ebp], eax

; 956  : 			_Ptr = _Ucopy(_First, _Last, _Ptr);	// add new stuff

  0011c	8b 4d e4	 mov	 ecx, DWORD PTR __Ptr$141578[ebp]
  0011f	51		 push	 ecx
  00120	8b 55 14	 mov	 edx, DWORD PTR __Last$[ebp]
  00123	52		 push	 edx
  00124	8b 45 10	 mov	 eax, DWORD PTR __First$[ebp]
  00127	50		 push	 eax
  00128	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  0012b	e8 00 00 00 00	 call	 ??$_Ucopy@PAD@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WPAD0PA_W@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Ucopy<char *>
  00130	89 45 e4	 mov	 DWORD PTR __Ptr$141578[ebp], eax

; 957  : 			_Umove(_VEC_ITER_BASE(_Where), _Mylast, _Ptr);	// copy suffix

  00133	8b 4d e4	 mov	 ecx, DWORD PTR __Ptr$141578[ebp]
  00136	51		 push	 ecx
  00137	8b 55 dc	 mov	 edx, DWORD PTR _this$[ebp]
  0013a	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  0013d	50		 push	 eax
  0013e	8b 4d 0c	 mov	 ecx, DWORD PTR __Where$[ebp+4]
  00141	51		 push	 ecx
  00142	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  00145	e8 00 00 00 00	 call	 ??$_Umove@PA_W@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WPA_W00@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Umove<wchar_t *>
  0014a	eb 39		 jmp	 SHORT $LN14@Insert@5
__catch$??$_Insert@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@PAD1Uforward_iterator_tag@1@@Z$0:

; 958  : 			_CATCH_ALL
; 959  : 			_Destroy(_Newvec, _Ptr);

  0014c	8b 55 e4	 mov	 edx, DWORD PTR __Ptr$141578[ebp]
  0014f	52		 push	 edx
  00150	8b 45 e0	 mov	 eax, DWORD PTR __Newvec$141577[ebp]
  00153	50		 push	 eax
  00154	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  00157	e8 00 00 00 00	 call	 ?_Destroy@?$vector@_WV?$allocator@_W@std@@@std@@IAEXPA_W0@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Destroy

; 960  : 			this->_Alval.deallocate(_Newvec, _Capacity);

  0015c	8b 4d e8	 mov	 ecx, DWORD PTR __Capacity$[ebp]
  0015f	51		 push	 ecx
  00160	8b 55 e0	 mov	 edx, DWORD PTR __Newvec$141577[ebp]
  00163	52		 push	 edx
  00164	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  00167	83 c1 08	 add	 ecx, 8
  0016a	e8 00 00 00 00	 call	 ?deallocate@?$allocator@_W@std@@QAEXPA_WI@Z ; std::allocator<wchar_t>::deallocate

; 961  : 			_RERAISE;

  0016f	6a 00		 push	 0
  00171	6a 00		 push	 0
  00173	e8 00 00 00 00	 call	 __CxxThrowException@8

; 962  : 			_CATCH_END

  00178	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
  0017f	b8 00 00 00 00	 mov	 eax, __tryend$??$_Insert@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@PAD1Uforward_iterator_tag@1@@Z$1
  00184	c3		 ret	 0
$LN14@Insert@5:
  00185	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
__tryend$??$_Insert@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@PAD1Uforward_iterator_tag@1@@Z$1:

; 963  : 
; 964  : 			_Count += size();

  0018c	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  0018f	e8 00 00 00 00	 call	 ?size@?$vector@_WV?$allocator@_W@std@@@std@@QBEIXZ ; std::vector<wchar_t,std::allocator<wchar_t> >::size
  00194	03 45 ec	 add	 eax, DWORD PTR __Count$[ebp]
  00197	89 45 ec	 mov	 DWORD PTR __Count$[ebp], eax

; 965  : 			if (_Myfirst != 0)

  0019a	8b 45 dc	 mov	 eax, DWORD PTR _this$[ebp]
  0019d	83 78 0c 00	 cmp	 DWORD PTR [eax+12], 0
  001a1	74 37		 je	 SHORT $LN2@Insert@5

; 966  : 				{	// destroy and deallocate old array
; 967  : 				_Destroy(_Myfirst, _Mylast);

  001a3	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  001a6	8b 51 10	 mov	 edx, DWORD PTR [ecx+16]
  001a9	52		 push	 edx
  001aa	8b 45 dc	 mov	 eax, DWORD PTR _this$[ebp]
  001ad	8b 48 0c	 mov	 ecx, DWORD PTR [eax+12]
  001b0	51		 push	 ecx
  001b1	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  001b4	e8 00 00 00 00	 call	 ?_Destroy@?$vector@_WV?$allocator@_W@std@@@std@@IAEXPA_W0@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Destroy

; 968  : 				this->_Alval.deallocate(_Myfirst, _Myend - _Myfirst);

  001b9	8b 55 dc	 mov	 edx, DWORD PTR _this$[ebp]
  001bc	8b 45 dc	 mov	 eax, DWORD PTR _this$[ebp]
  001bf	8b 4a 14	 mov	 ecx, DWORD PTR [edx+20]
  001c2	2b 48 0c	 sub	 ecx, DWORD PTR [eax+12]
  001c5	d1 f9		 sar	 ecx, 1
  001c7	51		 push	 ecx
  001c8	8b 55 dc	 mov	 edx, DWORD PTR _this$[ebp]
  001cb	8b 42 0c	 mov	 eax, DWORD PTR [edx+12]
  001ce	50		 push	 eax
  001cf	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  001d2	83 c1 08	 add	 ecx, 8
  001d5	e8 00 00 00 00	 call	 ?deallocate@?$allocator@_W@std@@QAEXPA_WI@Z ; std::allocator<wchar_t>::deallocate
$LN2@Insert@5:

; 969  : 				}
; 970  : 
; 971  :  #if _HAS_ITERATOR_DEBUGGING
; 972  : 			this->_Orphan_all();
; 973  :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 974  : 
; 975  : 			_Myend = _Newvec + _Capacity;

  001da	8b 4d e8	 mov	 ecx, DWORD PTR __Capacity$[ebp]
  001dd	8b 55 e0	 mov	 edx, DWORD PTR __Newvec$141577[ebp]
  001e0	8d 04 4a	 lea	 eax, DWORD PTR [edx+ecx*2]
  001e3	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  001e6	89 41 14	 mov	 DWORD PTR [ecx+20], eax

; 976  : 			_Mylast = _Newvec + _Count;

  001e9	8b 55 ec	 mov	 edx, DWORD PTR __Count$[ebp]
  001ec	8b 45 e0	 mov	 eax, DWORD PTR __Newvec$141577[ebp]
  001ef	8d 0c 50	 lea	 ecx, DWORD PTR [eax+edx*2]
  001f2	8b 55 dc	 mov	 edx, DWORD PTR _this$[ebp]
  001f5	89 4a 10	 mov	 DWORD PTR [edx+16], ecx

; 977  : 			_Myfirst = _Newvec;

  001f8	8b 45 dc	 mov	 eax, DWORD PTR _this$[ebp]
  001fb	8b 4d e0	 mov	 ecx, DWORD PTR __Newvec$141577[ebp]
  001fe	89 48 0c	 mov	 DWORD PTR [eax+12], ecx

; 978  : 			}
; 979  : 		else

  00201	eb 71		 jmp	 SHORT $LN11@Insert@5
$LN5@Insert@5:

; 980  : 			{	// new stuff fits, append and rotate into place
; 981  : 			_Ucopy(_First, _Last, _Mylast);

  00203	8b 55 dc	 mov	 edx, DWORD PTR _this$[ebp]
  00206	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  00209	50		 push	 eax
  0020a	8b 4d 14	 mov	 ecx, DWORD PTR __Last$[ebp]
  0020d	51		 push	 ecx
  0020e	8b 55 10	 mov	 edx, DWORD PTR __First$[ebp]
  00211	52		 push	 edx
  00212	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  00215	e8 00 00 00 00	 call	 ??$_Ucopy@PAD@?$vector@_WV?$allocator@_W@std@@@std@@IAEPA_WPAD0PA_W@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Ucopy<char *>

; 982  : 
; 983  : 			_Reverse(_Where._Myptr, _Mylast);

  0021a	8b 45 dc	 mov	 eax, DWORD PTR _this$[ebp]
  0021d	8b 48 10	 mov	 ecx, DWORD PTR [eax+16]
  00220	51		 push	 ecx
  00221	8b 55 0c	 mov	 edx, DWORD PTR __Where$[ebp+4]
  00224	52		 push	 edx
  00225	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  00228	e8 00 00 00 00	 call	 ?_Reverse@?$vector@_WV?$allocator@_W@std@@@std@@QAEXPA_W0@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Reverse

; 984  : 			_Reverse(_Mylast, _Mylast + _Count);

  0022d	8b 45 dc	 mov	 eax, DWORD PTR _this$[ebp]
  00230	8b 48 10	 mov	 ecx, DWORD PTR [eax+16]
  00233	8b 55 ec	 mov	 edx, DWORD PTR __Count$[ebp]
  00236	8d 04 51	 lea	 eax, DWORD PTR [ecx+edx*2]
  00239	50		 push	 eax
  0023a	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  0023d	8b 51 10	 mov	 edx, DWORD PTR [ecx+16]
  00240	52		 push	 edx
  00241	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  00244	e8 00 00 00 00	 call	 ?_Reverse@?$vector@_WV?$allocator@_W@std@@@std@@QAEXPA_W0@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Reverse

; 985  : 			_Reverse(_Where._Myptr, _Mylast + _Count);

  00249	8b 45 dc	 mov	 eax, DWORD PTR _this$[ebp]
  0024c	8b 48 10	 mov	 ecx, DWORD PTR [eax+16]
  0024f	8b 55 ec	 mov	 edx, DWORD PTR __Count$[ebp]
  00252	8d 04 51	 lea	 eax, DWORD PTR [ecx+edx*2]
  00255	50		 push	 eax
  00256	8b 4d 0c	 mov	 ecx, DWORD PTR __Where$[ebp+4]
  00259	51		 push	 ecx
  0025a	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  0025d	e8 00 00 00 00	 call	 ?_Reverse@?$vector@_WV?$allocator@_W@std@@@std@@QAEXPA_W0@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Reverse

; 986  : 
; 987  : 			_Mylast += _Count;

  00262	8b 55 dc	 mov	 edx, DWORD PTR _this$[ebp]
  00265	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  00268	8b 4d ec	 mov	 ecx, DWORD PTR __Count$[ebp]
  0026b	8d 14 48	 lea	 edx, DWORD PTR [eax+ecx*2]
  0026e	8b 45 dc	 mov	 eax, DWORD PTR _this$[ebp]
  00271	89 50 10	 mov	 DWORD PTR [eax+16], edx
$LN11@Insert@5:

; 988  : 
; 989  :  #if _HAS_ITERATOR_DEBUGGING
; 990  : 			_Orphan_range(_Where._Myptr, _Mylast);
; 991  :  #endif /* _HAS_ITERATOR_DEBUGGING */
; 992  : 
; 993  : 			}
; 994  : 		}

  00274	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp+4]
  00277	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0027e	59		 pop	 ecx
  0027f	5f		 pop	 edi
  00280	5e		 pop	 esi
  00281	5b		 pop	 ebx
  00282	8b e5		 mov	 esp, ebp
  00284	5d		 pop	 ebp
  00285	c2 14 00	 ret	 20			; 00000014H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__ehhandler$??$_Insert@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@PAD1Uforward_iterator_tag@1@@Z:
  00000	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00004	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00007	8b 4a d4	 mov	 ecx, DWORD PTR [edx-44]
  0000a	33 c8		 xor	 ecx, eax
  0000c	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00011	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??$_Insert@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@PAD1Uforward_iterator_tag@1@@Z
  00016	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??$_Insert@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@PAD1Uforward_iterator_tag@1@@Z ENDP ; std::vector<wchar_t,std::allocator<wchar_t> >::_Insert<char *>
; Function compile flags: /Odtp
;	COMDAT ??$insert@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@PAD1@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
$T340587 = -2						; size = 1
$T340586 = -1						; size = 1
__Where$ = 8						; size = 8
__First$ = 16						; size = 4
__Last$ = 20						; size = 4
??$insert@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@PAD1@Z PROC ; std::vector<wchar_t,std::allocator<wchar_t> >::insert<char *>, COMDAT
; _this$ = ecx

; 887  : 		void insert(const_iterator _Where, _Iter _First, _Iter _Last)

  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

; 888  : 		{	// insert [_First, _Last) at _Where
; 889  : 		_Insert(_Where, _First, _Last, _Iter_cat(_First));

  00009	8d 45 10	 lea	 eax, DWORD PTR __First$[ebp]
  0000c	50		 push	 eax
  0000d	8d 4d ff	 lea	 ecx, DWORD PTR $T340586[ebp]
  00010	51		 push	 ecx
  00011	e8 00 00 00 00	 call	 ??$_Iter_cat@PAD@std@@YA?AUrandom_access_iterator_tag@0@ABQAD@Z ; std::_Iter_cat<char *>
  00016	83 c4 08	 add	 esp, 8
  00019	0f b6 55 fe	 movzx	 edx, BYTE PTR $T340587[ebp]
  0001d	52		 push	 edx
  0001e	8b 45 14	 mov	 eax, DWORD PTR __Last$[ebp]
  00021	50		 push	 eax
  00022	8b 4d 10	 mov	 ecx, DWORD PTR __First$[ebp]
  00025	51		 push	 ecx
  00026	8b 55 0c	 mov	 edx, DWORD PTR __Where$[ebp+4]
  00029	52		 push	 edx
  0002a	8b 45 08	 mov	 eax, DWORD PTR __Where$[ebp]
  0002d	50		 push	 eax
  0002e	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00031	e8 00 00 00 00	 call	 ??$_Insert@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@PAD1Uforward_iterator_tag@1@@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Insert<char *>

; 890  : 		}

  00036	8b e5		 mov	 esp, ebp
  00038	5d		 pop	 ebp
  00039	c2 10 00	 ret	 16			; 00000010H
??$insert@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@PAD1@Z ENDP ; std::vector<wchar_t,std::allocator<wchar_t> >::insert<char *>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??$_Assign@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXPAD0Uinput_iterator_tag@1@@Z
_TEXT	SEGMENT
_this$ = -60						; size = 4
$T340596 = -56						; size = 8
$T340595 = -48						; size = 8
$T340594 = -40						; size = 8
$T340593 = -32						; size = 8
$T340592 = -24						; size = 8
$T340591 = -16						; size = 8
$T340590 = -8						; size = 8
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
___formal$ = 16						; size = 1
??$_Assign@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXPAD0Uinput_iterator_tag@1@@Z PROC ; std::vector<wchar_t,std::allocator<wchar_t> >::_Assign<char *>, COMDAT
; _this$ = ecx

; 863  : 		void _Assign(_Iter _First, _Iter _Last, input_iterator_tag)

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 3c	 sub	 esp, 60			; 0000003cH
  00006	89 4d c4	 mov	 DWORD PTR _this$[ebp], ecx

; 864  : 		{	// assign [_First, _Last), input iterators
; 865  : 		erase(begin(), end());

  00009	8d 45 f0	 lea	 eax, DWORD PTR $T340591[ebp]
  0000c	50		 push	 eax
  0000d	8b 4d c4	 mov	 ecx, DWORD PTR _this$[ebp]
  00010	e8 00 00 00 00	 call	 ?end@?$vector@_WV?$allocator@_W@std@@@std@@QAE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::end
  00015	8b 08		 mov	 ecx, DWORD PTR [eax]
  00017	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  0001a	89 4d f8	 mov	 DWORD PTR $T340590[ebp], ecx
  0001d	89 55 fc	 mov	 DWORD PTR $T340590[ebp+4], edx
  00020	8d 45 e0	 lea	 eax, DWORD PTR $T340593[ebp]
  00023	50		 push	 eax
  00024	8b 4d c4	 mov	 ecx, DWORD PTR _this$[ebp]
  00027	e8 00 00 00 00	 call	 ?begin@?$vector@_WV?$allocator@_W@std@@@std@@QAE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::begin
  0002c	8b 08		 mov	 ecx, DWORD PTR [eax]
  0002e	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  00031	89 4d e8	 mov	 DWORD PTR $T340592[ebp], ecx
  00034	89 55 ec	 mov	 DWORD PTR $T340592[ebp+4], edx
  00037	8b 45 fc	 mov	 eax, DWORD PTR $T340590[ebp+4]
  0003a	50		 push	 eax
  0003b	8b 4d f8	 mov	 ecx, DWORD PTR $T340590[ebp]
  0003e	51		 push	 ecx
  0003f	8b 55 ec	 mov	 edx, DWORD PTR $T340592[ebp+4]
  00042	52		 push	 edx
  00043	8b 45 e8	 mov	 eax, DWORD PTR $T340592[ebp]
  00046	50		 push	 eax
  00047	8d 4d d8	 lea	 ecx, DWORD PTR $T340594[ebp]
  0004a	51		 push	 ecx
  0004b	8b 4d c4	 mov	 ecx, DWORD PTR _this$[ebp]
  0004e	e8 00 00 00 00	 call	 ?erase@?$vector@_WV?$allocator@_W@std@@@std@@QAE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@V?$_Vector_const_iterator@_WV?$allocator@_W@std@@@2@0@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::erase

; 866  : 		insert(begin(), _First, _Last);

  00053	8d 55 c8	 lea	 edx, DWORD PTR $T340596[ebp]
  00056	52		 push	 edx
  00057	8b 4d c4	 mov	 ecx, DWORD PTR _this$[ebp]
  0005a	e8 00 00 00 00	 call	 ?begin@?$vector@_WV?$allocator@_W@std@@@std@@QAE?AV?$_Vector_iterator@_WV?$allocator@_W@std@@@2@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::begin
  0005f	8b 08		 mov	 ecx, DWORD PTR [eax]
  00061	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  00064	89 4d d0	 mov	 DWORD PTR $T340595[ebp], ecx
  00067	89 55 d4	 mov	 DWORD PTR $T340595[ebp+4], edx
  0006a	8b 45 0c	 mov	 eax, DWORD PTR __Last$[ebp]
  0006d	50		 push	 eax
  0006e	8b 4d 08	 mov	 ecx, DWORD PTR __First$[ebp]
  00071	51		 push	 ecx
  00072	8b 55 d4	 mov	 edx, DWORD PTR $T340595[ebp+4]
  00075	52		 push	 edx
  00076	8b 45 d0	 mov	 eax, DWORD PTR $T340595[ebp]
  00079	50		 push	 eax
  0007a	8b 4d c4	 mov	 ecx, DWORD PTR _this$[ebp]
  0007d	e8 00 00 00 00	 call	 ??$insert@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXV?$_Vector_const_iterator@_WV?$allocator@_W@std@@@1@PAD1@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::insert<char *>

; 867  : 		}

  00082	8b e5		 mov	 esp, ebp
  00084	5d		 pop	 ebp
  00085	c2 0c 00	 ret	 12			; 0000000cH
??$_Assign@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXPAD0Uinput_iterator_tag@1@@Z ENDP ; std::vector<wchar_t,std::allocator<wchar_t> >::_Assign<char *>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??$assign@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXPAD0@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
$T340600 = -2						; size = 1
$T340599 = -1						; size = 1
__First$ = 8						; size = 4
__Last$ = 12						; size = 4
??$assign@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXPAD0@Z PROC ; std::vector<wchar_t,std::allocator<wchar_t> >::assign<char *>, COMDAT
; _this$ = ecx

; 851  : 		void assign(_Iter _First, _Iter _Last)

  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

; 852  : 		{	// assign [_First, _Last)
; 853  : 		_Assign(_First, _Last, _Iter_cat(_First));

  00009	8d 45 08	 lea	 eax, DWORD PTR __First$[ebp]
  0000c	50		 push	 eax
  0000d	8d 4d ff	 lea	 ecx, DWORD PTR $T340599[ebp]
  00010	51		 push	 ecx
  00011	e8 00 00 00 00	 call	 ??$_Iter_cat@PAD@std@@YA?AUrandom_access_iterator_tag@0@ABQAD@Z ; std::_Iter_cat<char *>
  00016	83 c4 08	 add	 esp, 8
  00019	0f b6 55 fe	 movzx	 edx, BYTE PTR $T340600[ebp]
  0001d	52		 push	 edx
  0001e	8b 45 0c	 mov	 eax, DWORD PTR __Last$[ebp]
  00021	50		 push	 eax
  00022	8b 4d 08	 mov	 ecx, DWORD PTR __First$[ebp]
  00025	51		 push	 ecx
  00026	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00029	e8 00 00 00 00	 call	 ??$_Assign@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXPAD0Uinput_iterator_tag@1@@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::_Assign<char *>

; 854  : 		}

  0002e	8b e5		 mov	 esp, ebp
  00030	5d		 pop	 ebp
  00031	c2 08 00	 ret	 8
??$assign@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXPAD0@Z ENDP ; std::vector<wchar_t,std::allocator<wchar_t> >::assign<char *>
_TEXT	ENDS
PUBLIC	?GetStatusDisplay@CVTDecoder@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ; CVTDecoder::GetStatusDisplay
;	COMDAT xdata$x
; File c:\develop\dscaler423a\dscaler\vtdecoder.cpp
xdata$x	SEGMENT
__unwindtable$?GetStatusDisplay@CVTDecoder@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?GetStatusDisplay@CVTDecoder@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ$1
	DD	00H
	DD	FLAT:__unwindfunclet$?GetStatusDisplay@CVTDecoder@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ$0
__ehfuncinfo$?GetStatusDisplay@CVTDecoder@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?GetStatusDisplay@CVTDecoder@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?GetStatusDisplay@CVTDecoder@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ
_TEXT	SEGMENT
_this$ = -48						; size = 4
$T340605 = -44						; size = 4
_nLength$ = -40						; size = 4
_Buffer$ = -36						; size = 24
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
?GetStatusDisplay@CVTDecoder@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ PROC ; CVTDecoder::GetStatusDisplay, COMDAT
; _this$ = ecx

; 1708 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?GetStatusDisplay@CVTDecoder@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 24	 sub	 esp, 36			; 00000024H
  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 d0	 mov	 DWORD PTR _this$[ebp], ecx
  00028	c7 45 d4 00 00
	00 00		 mov	 DWORD PTR $T340605[ebp], 0

; 1709 :     vector<TCHAR> Buffer(sizeof(m_BroadcastServiceData.StatusDisplay) + 1);

  0002f	6a 15		 push	 21			; 00000015H
  00031	8d 4d dc	 lea	 ecx, DWORD PTR _Buffer$[ebp]
  00034	e8 00 00 00 00	 call	 ??0?$vector@_WV?$allocator@_W@std@@@std@@QAE@I@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::vector<wchar_t,std::allocator<wchar_t> >
  00039	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1

; 1710 :     EnterCriticalSection(&m_ServiceDataStoreMutex);

  00040	8b 45 d0	 mov	 eax, DWORD PTR _this$[ebp]
  00043	05 ac 2f 00 00	 add	 eax, 12204		; 00002facH
  00048	50		 push	 eax
  00049	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1711 :     CheckParity((BYTE*)m_BroadcastServiceData.StatusDisplay, sizeof(m_BroadcastServiceData.StatusDisplay), TRUE);

  0004f	6a 01		 push	 1
  00051	6a 14		 push	 20			; 00000014H
  00053	8b 4d d0	 mov	 ecx, DWORD PTR _this$[ebp]
  00056	81 c1 07 2f 00
	00		 add	 ecx, 12039		; 00002f07H
  0005c	51		 push	 ecx
  0005d	e8 00 00 00 00	 call	 ?CheckParity@CVTCommon@@SAHPAEKH@Z ; CVTCommon::CheckParity
  00062	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1712 :     Buffer.assign((char*)m_BroadcastServiceData.StatusDisplay, (char*)m_BroadcastServiceData.StatusDisplay + sizeof(m_BroadcastServiceData.StatusDisplay));

  00065	8b 55 d0	 mov	 edx, DWORD PTR _this$[ebp]
  00068	81 c2 1b 2f 00
	00		 add	 edx, 12059		; 00002f1bH
  0006e	52		 push	 edx
  0006f	8b 45 d0	 mov	 eax, DWORD PTR _this$[ebp]
  00072	05 07 2f 00 00	 add	 eax, 12039		; 00002f07H
  00077	50		 push	 eax
  00078	8d 4d dc	 lea	 ecx, DWORD PTR _Buffer$[ebp]
  0007b	e8 00 00 00 00	 call	 ??$assign@PAD@?$vector@_WV?$allocator@_W@std@@@std@@QAEXPAD0@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::assign<char *>

; 1713 :     LeaveCriticalSection(&m_ServiceDataStoreMutex);

  00080	8b 4d d0	 mov	 ecx, DWORD PTR _this$[ebp]
  00083	81 c1 ac 2f 00
	00		 add	 ecx, 12204		; 00002facH
  00089	51		 push	 ecx
  0008a	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1714 : 
; 1715 :     int nLength(sizeof(m_BroadcastServiceData.StatusDisplay));

  00090	c7 45 d8 14 00
	00 00		 mov	 DWORD PTR _nLength$[ebp], 20 ; 00000014H
$LN2@GetStatusD:

; 1716 :     while (nLength-- > 0 && Buffer[nLength] == 0x20)

  00097	8b 55 d8	 mov	 edx, DWORD PTR _nLength$[ebp]
  0009a	8b 45 d8	 mov	 eax, DWORD PTR _nLength$[ebp]
  0009d	83 e8 01	 sub	 eax, 1
  000a0	89 45 d8	 mov	 DWORD PTR _nLength$[ebp], eax
  000a3	85 d2		 test	 edx, edx
  000a5	7e 27		 jle	 SHORT $LN1@GetStatusD
  000a7	8b 4d d8	 mov	 ecx, DWORD PTR _nLength$[ebp]
  000aa	51		 push	 ecx
  000ab	8d 4d dc	 lea	 ecx, DWORD PTR _Buffer$[ebp]
  000ae	e8 00 00 00 00	 call	 ??A?$vector@_WV?$allocator@_W@std@@@std@@QAEAA_WI@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::operator[]
  000b3	0f b7 10	 movzx	 edx, WORD PTR [eax]
  000b6	83 fa 20	 cmp	 edx, 32			; 00000020H
  000b9	75 13		 jne	 SHORT $LN1@GetStatusD

; 1717 :     {
; 1718 :         Buffer[nLength] = '\0';

  000bb	8b 45 d8	 mov	 eax, DWORD PTR _nLength$[ebp]
  000be	50		 push	 eax
  000bf	8d 4d dc	 lea	 ecx, DWORD PTR _Buffer$[ebp]
  000c2	e8 00 00 00 00	 call	 ??A?$vector@_WV?$allocator@_W@std@@@std@@QAEAA_WI@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::operator[]
  000c7	33 c9		 xor	 ecx, ecx
  000c9	66 89 08	 mov	 WORD PTR [eax], cx

; 1719 :     }

  000cc	eb c9		 jmp	 SHORT $LN2@GetStatusD
$LN1@GetStatusD:

; 1720 :     return &Buffer[0];

  000ce	6a 00		 push	 0
  000d0	8d 4d dc	 lea	 ecx, DWORD PTR _Buffer$[ebp]
  000d3	e8 00 00 00 00	 call	 ??A?$vector@_WV?$allocator@_W@std@@@std@@QAEAA_WI@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::operator[]
  000d8	50		 push	 eax
  000d9	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  000dc	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  000e1	8b 55 d4	 mov	 edx, DWORD PTR $T340605[ebp]
  000e4	83 ca 01	 or	 edx, 1
  000e7	89 55 d4	 mov	 DWORD PTR $T340605[ebp], edx
  000ea	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  000ee	8d 4d dc	 lea	 ecx, DWORD PTR _Buffer$[ebp]
  000f1	e8 00 00 00 00	 call	 ??1?$vector@_WV?$allocator@_W@std@@@std@@QAE@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::~vector<wchar_t,std::allocator<wchar_t> >
  000f6	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 1721 : }

  000f9	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  000fc	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00103	59		 pop	 ecx
  00104	8b e5		 mov	 esp, ebp
  00106	5d		 pop	 ebp
  00107	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?GetStatusDisplay@CVTDecoder@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ$0:
  00000	8d 4d dc	 lea	 ecx, DWORD PTR _Buffer$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$vector@_WV?$allocator@_W@std@@@std@@QAE@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::~vector<wchar_t,std::allocator<wchar_t> >
__unwindfunclet$?GetStatusDisplay@CVTDecoder@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ$1:
  00008	8b 45 d4	 mov	 eax, DWORD PTR $T340605[ebp]
  0000b	83 e0 01	 and	 eax, 1
  0000e	0f 84 0c 00 00
	00		 je	 $LN7@GetStatusD
  00014	83 65 d4 fe	 and	 DWORD PTR $T340605[ebp], -2 ; fffffffeH
  00018	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  0001b	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
$LN7@GetStatusD:
  00020	c3		 ret	 0
__ehhandler$?GetStatusDisplay@CVTDecoder@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ:
  00021	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00025	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00028	8b 4a d8	 mov	 ecx, DWORD PTR [edx-40]
  0002b	33 c8		 xor	 ecx, eax
  0002d	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00032	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?GetStatusDisplay@CVTDecoder@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ
  00037	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?GetStatusDisplay@CVTDecoder@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ENDP ; CVTDecoder::GetStatusDisplay
END
