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

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

INCLUDELIB OLDNAMES

PUBLIC	?Detect@CPreTuneVoodooFM@@UAEHXZ		; CPreTuneVoodooFM::Detect
PUBLIC	?TunerSet@CPreTuneVoodooFM@@UAEXHW4eVideoFormat@@@Z ; CPreTuneVoodooFM::TunerSet
PUBLIC	??_R4CPreTuneVoodooFM@@6B@			; CPreTuneVoodooFM::`RTTI Complete Object Locator'
PUBLIC	??_R3CPreTuneVoodooFM@@8			; CPreTuneVoodooFM::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2CPreTuneVoodooFM@@8			; CPreTuneVoodooFM::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@CPreTuneVoodooFM@@8		; CPreTuneVoodooFM::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVCPreTuneVoodooFM@@@8			; CPreTuneVoodooFM `RTTI Type Descriptor'
PUBLIC	??_R4IExternalIFDemodulator@@6B@		; IExternalIFDemodulator::`RTTI Complete Object Locator'
PUBLIC	??_R3IExternalIFDemodulator@@8			; IExternalIFDemodulator::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2IExternalIFDemodulator@@8			; IExternalIFDemodulator::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@IExternalIFDemodulator@@8		; IExternalIFDemodulator::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVIExternalIFDemodulator@@@8		; IExternalIFDemodulator `RTTI Type Descriptor'
PUBLIC	??_GIExternalIFDemodulator@@UAEPAXI@Z		; IExternalIFDemodulator::`scalar deleting destructor'
PUBLIC	??0IExternalIFDemodulator@@QAE@XZ		; IExternalIFDemodulator::IExternalIFDemodulator
PUBLIC	?Init@CPreTuneVoodooFM@@UAEXHW4eVideoFormat@@@Z	; CPreTuneVoodooFM::Init
PUBLIC	?GetAFCStatus@CPreTuneVoodooFM@@UAE?AW4eTunerAFCStatus@@AAJ@Z ; CPreTuneVoodooFM::GetAFCStatus
PUBLIC	?GetDefaultAddress@CPreTuneVoodooFM@@MBEEXZ	; CPreTuneVoodooFM::GetDefaultAddress
PUBLIC	??1IExternalIFDemodulator@@UAE@XZ		; IExternalIFDemodulator::~IExternalIFDemodulator
PUBLIC	??1CPreTuneVoodooFM@@UAE@XZ			; CPreTuneVoodooFM::~CPreTuneVoodooFM
PUBLIC	??_GCPreTuneVoodooFM@@UAEPAXI@Z			; CPreTuneVoodooFM::`scalar deleting destructor'
PUBLIC	??_7IExternalIFDemodulator@@6B@			; IExternalIFDemodulator::`vftable'
PUBLIC	??_7CPreTuneVoodooFM@@6B@			; CPreTuneVoodooFM::`vftable'
EXTRN	??_EIExternalIFDemodulator@@UAEPAXI@Z:PROC	; IExternalIFDemodulator::`vector deleting destructor'
EXTRN	??_ECPreTuneVoodooFM@@UAEPAXI@Z:PROC		; CPreTuneVoodooFM::`vector deleting destructor'
;	COMDAT ??_7CPreTuneVoodooFM@@6B@
CONST	SEGMENT
??_7CPreTuneVoodooFM@@6B@ DD FLAT:??_R4CPreTuneVoodooFM@@6B@ ; CPreTuneVoodooFM::`vftable'
	DD	FLAT:??_ECPreTuneVoodooFM@@UAEPAXI@Z
	DD	FLAT:?GetDefaultAddress@CPreTuneVoodooFM@@MBEEXZ
	DD	FLAT:?SetDetectedI2CAddress@IExternalIFDemodulator@@UAEHPAVCI2CBus@@PAEI@Z
	DD	FLAT:?SetDetectedI2CAddress@IExternalIFDemodulator@@UAEHPAVCI2CBus@@@Z
	DD	FLAT:?Init@CPreTuneVoodooFM@@UAEXHW4eVideoFormat@@@Z
	DD	FLAT:?TunerSet@CPreTuneVoodooFM@@UAEXHW4eVideoFormat@@@Z
	DD	FLAT:?Detect@CPreTuneVoodooFM@@UAEHXZ
	DD	FLAT:?GetAFCStatus@CPreTuneVoodooFM@@UAE?AW4eTunerAFCStatus@@AAJ@Z
CONST	ENDS
;	COMDAT ??_R4CPreTuneVoodooFM@@6B@
rdata$r	SEGMENT
??_R4CPreTuneVoodooFM@@6B@ DD 00H			; CPreTuneVoodooFM::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVCPreTuneVoodooFM@@@8
	DD	FLAT:??_R3CPreTuneVoodooFM@@8
rdata$r	ENDS
;	COMDAT ??_R3CPreTuneVoodooFM@@8
rdata$r	SEGMENT
??_R3CPreTuneVoodooFM@@8 DD 00H				; CPreTuneVoodooFM::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	03H
	DD	FLAT:??_R2CPreTuneVoodooFM@@8
rdata$r	ENDS
;	COMDAT ??_R2CPreTuneVoodooFM@@8
rdata$r	SEGMENT
??_R2CPreTuneVoodooFM@@8 DD FLAT:??_R1A@?0A@EA@CPreTuneVoodooFM@@8 ; CPreTuneVoodooFM::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@IExternalIFDemodulator@@8
	DD	FLAT:??_R1A@?0A@EA@CI2CDevice@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@CPreTuneVoodooFM@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@CPreTuneVoodooFM@@8 DD FLAT:??_R0?AVCPreTuneVoodooFM@@@8 ; CPreTuneVoodooFM::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	02H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3CPreTuneVoodooFM@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVCPreTuneVoodooFM@@@8
_DATA	SEGMENT
??_R0?AVCPreTuneVoodooFM@@@8 DD FLAT:??_7type_info@@6B@	; CPreTuneVoodooFM `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVCPreTuneVoodooFM@@', 00H
_DATA	ENDS
;	COMDAT ??_7IExternalIFDemodulator@@6B@
CONST	SEGMENT
??_7IExternalIFDemodulator@@6B@ DD FLAT:??_R4IExternalIFDemodulator@@6B@ ; IExternalIFDemodulator::`vftable'
	DD	FLAT:??_EIExternalIFDemodulator@@UAEPAXI@Z
	DD	FLAT:__purecall
	DD	FLAT:?SetDetectedI2CAddress@IExternalIFDemodulator@@UAEHPAVCI2CBus@@PAEI@Z
	DD	FLAT:?SetDetectedI2CAddress@IExternalIFDemodulator@@UAEHPAVCI2CBus@@@Z
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
CONST	ENDS
;	COMDAT ??_R4IExternalIFDemodulator@@6B@
rdata$r	SEGMENT
??_R4IExternalIFDemodulator@@6B@ DD 00H			; IExternalIFDemodulator::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVIExternalIFDemodulator@@@8
	DD	FLAT:??_R3IExternalIFDemodulator@@8
rdata$r	ENDS
;	COMDAT ??_R3IExternalIFDemodulator@@8
rdata$r	SEGMENT
??_R3IExternalIFDemodulator@@8 DD 00H			; IExternalIFDemodulator::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2IExternalIFDemodulator@@8
rdata$r	ENDS
;	COMDAT ??_R2IExternalIFDemodulator@@8
rdata$r	SEGMENT
??_R2IExternalIFDemodulator@@8 DD FLAT:??_R1A@?0A@EA@IExternalIFDemodulator@@8 ; IExternalIFDemodulator::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@CI2CDevice@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@IExternalIFDemodulator@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@IExternalIFDemodulator@@8 DD FLAT:??_R0?AVIExternalIFDemodulator@@@8 ; IExternalIFDemodulator::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3IExternalIFDemodulator@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVIExternalIFDemodulator@@@8
_DATA	SEGMENT
??_R0?AVIExternalIFDemodulator@@@8 DD FLAT:??_7type_info@@6B@ ; IExternalIFDemodulator `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVIExternalIFDemodulator@@', 00H
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\bt848_voodootv_ifdem.cpp
;	COMDAT ?Detect@CPreTuneVoodooFM@@UAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?Detect@CPreTuneVoodooFM@@UAEHXZ PROC			; CPreTuneVoodooFM::Detect, COMDAT
; _this$ = ecx

; 41   : {

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

; 42   :     if ((m_pBT848Card != NULL) &&
; 43   :         ((m_pBT848Card->GetCardType() == TVCARD_VOODOOTV_200)  ||
; 44   :          (m_pBT848Card->GetCardType() == TVCARD_VOODOOTV_FM)))

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	83 78 0c 00	 cmp	 DWORD PTR [eax+12], 0
  0000e	74 27		 je	 SHORT $LN2@Detect
  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	8b 49 0c	 mov	 ecx, DWORD PTR [ecx+12]
  00016	e8 00 00 00 00	 call	 ?GetCardType@CBT848Card@@QAE?AW4eTVCardId@@XZ ; CBT848Card::GetCardType
  0001b	83 f8 4c	 cmp	 eax, 76			; 0000004cH
  0001e	74 10		 je	 SHORT $LN1@Detect
  00020	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00023	8b 4a 0c	 mov	 ecx, DWORD PTR [edx+12]
  00026	e8 00 00 00 00	 call	 ?GetCardType@CBT848Card@@QAE?AW4eTVCardId@@XZ ; CBT848Card::GetCardType
  0002b	83 f8 4d	 cmp	 eax, 77			; 0000004dH
  0002e	75 07		 jne	 SHORT $LN2@Detect
$LN1@Detect:

; 45   :     {
; 46   :         return TRUE;

  00030	b8 01 00 00 00	 mov	 eax, 1
  00035	eb 02		 jmp	 SHORT $LN3@Detect
$LN2@Detect:

; 47   :     }
; 48   :     return FALSE;

  00037	33 c0		 xor	 eax, eax
$LN3@Detect:

; 49   : }

  00039	8b e5		 mov	 esp, ebp
  0003b	5d		 pop	 ebp
  0003c	c3		 ret	 0
?Detect@CPreTuneVoodooFM@@UAEHXZ ENDP			; CPreTuneVoodooFM::Detect
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\bt848_voodootv_ifdem.h
_TEXT	ENDS
;	COMDAT ?GetDefaultAddress@CPreTuneVoodooFM@@MBEEXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetDefaultAddress@CPreTuneVoodooFM@@MBEEXZ PROC	; CPreTuneVoodooFM::GetDefaultAddress, COMDAT
; _this$ = ecx

; 48   :     virtual BYTE GetDefaultAddress() const { return 0; }

  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	32 c0		 xor	 al, al
  00009	8b e5		 mov	 esp, ebp
  0000b	5d		 pop	 ebp
  0000c	c3		 ret	 0
?GetDefaultAddress@CPreTuneVoodooFM@@MBEEXZ ENDP	; CPreTuneVoodooFM::GetDefaultAddress
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?GetAFCStatus@CPreTuneVoodooFM@@UAE?AW4eTunerAFCStatus@@AAJ@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_nFreqDeviation$ = 8					; size = 4
?GetAFCStatus@CPreTuneVoodooFM@@UAE?AW4eTunerAFCStatus@@AAJ@Z PROC ; CPreTuneVoodooFM::GetAFCStatus, COMDAT
; _this$ = ecx

; 45   :     eTunerAFCStatus GetAFCStatus(long &nFreqDeviation) { return TUNER_AFC_NOTSUPPORTED; }

  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	83 c8 ff	 or	 eax, -1
  0000a	8b e5		 mov	 esp, ebp
  0000c	5d		 pop	 ebp
  0000d	c2 04 00	 ret	 4
?GetAFCStatus@CPreTuneVoodooFM@@UAE?AW4eTunerAFCStatus@@AAJ@Z ENDP ; CPreTuneVoodooFM::GetAFCStatus
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?Init@CPreTuneVoodooFM@@UAEXHW4eVideoFormat@@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_bPreInit$ = 8						; size = 4
_videoFormat$ = 12					; size = 4
?Init@CPreTuneVoodooFM@@UAEXHW4eVideoFormat@@@Z PROC	; CPreTuneVoodooFM::Init, COMDAT
; _this$ = ecx

; 44   :     void Init(BOOL bPreInit, eVideoFormat videoFormat) { TunerSet(bPreInit, videoFormat); }

  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 45 0c	 mov	 eax, DWORD PTR _videoFormat$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d 08	 mov	 ecx, DWORD PTR _bPreInit$[ebp]
  0000e	51		 push	 ecx
  0000f	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00012	8b 02		 mov	 eax, DWORD PTR [edx]
  00014	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00017	8b 50 14	 mov	 edx, DWORD PTR [eax+20]
  0001a	ff d2		 call	 edx
  0001c	8b e5		 mov	 esp, ebp
  0001e	5d		 pop	 ebp
  0001f	c2 08 00	 ret	 8
?Init@CPreTuneVoodooFM@@UAEXHW4eVideoFormat@@@Z ENDP	; CPreTuneVoodooFM::Init
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1IExternalIFDemodulator@@UAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1IExternalIFDemodulator@@UAE@XZ$0
__ehfuncinfo$??1IExternalIFDemodulator@@UAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1IExternalIFDemodulator@@UAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??1IExternalIFDemodulator@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1IExternalIFDemodulator@@UAE@XZ PROC			; IExternalIFDemodulator::~IExternalIFDemodulator, COMDAT
; _this$ = ecx
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??1IExternalIFDemodulator@@UAE@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00017	33 c5		 xor	 eax, ebp
  00019	50		 push	 eax
  0001a	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001d	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00023	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx
  00026	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0002d	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00034	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00037	e8 00 00 00 00	 call	 ??1CI2CDevice@@UAE@XZ	; CI2CDevice::~CI2CDevice
  0003c	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0003f	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00046	59		 pop	 ecx
  00047	8b e5		 mov	 esp, ebp
  00049	5d		 pop	 ebp
  0004a	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1IExternalIFDemodulator@@UAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1CI2CDevice@@UAE@XZ	; CI2CDevice::~CI2CDevice
__ehhandler$??1IExternalIFDemodulator@@UAE@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 f8	 mov	 ecx, DWORD PTR [edx-8]
  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$??1IExternalIFDemodulator@@UAE@XZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??1IExternalIFDemodulator@@UAE@XZ ENDP			; IExternalIFDemodulator::~IExternalIFDemodulator
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0IExternalIFDemodulator@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0IExternalIFDemodulator@@QAE@XZ$0
__ehfuncinfo$??0IExternalIFDemodulator@@QAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0IExternalIFDemodulator@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??0IExternalIFDemodulator@@QAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??0IExternalIFDemodulator@@QAE@XZ PROC			; IExternalIFDemodulator::IExternalIFDemodulator, COMDAT
; _this$ = ecx
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??0IExternalIFDemodulator@@QAE@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00017	33 c5		 xor	 eax, ebp
  00019	50		 push	 eax
  0001a	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001d	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00023	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx
  00026	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00029	e8 00 00 00 00	 call	 ??0CI2CDevice@@QAE@XZ	; CI2CDevice::CI2CDevice
  0002e	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00035	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00038	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], OFFSET ??_7IExternalIFDemodulator@@6B@
  0003e	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00045	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00048	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0004b	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00052	59		 pop	 ecx
  00053	8b e5		 mov	 esp, ebp
  00055	5d		 pop	 ebp
  00056	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0IExternalIFDemodulator@@QAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1CI2CDevice@@UAE@XZ	; CI2CDevice::~CI2CDevice
__ehhandler$??0IExternalIFDemodulator@@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 f8	 mov	 ecx, DWORD PTR [edx-8]
  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$??0IExternalIFDemodulator@@QAE@XZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??0IExternalIFDemodulator@@QAE@XZ ENDP			; IExternalIFDemodulator::IExternalIFDemodulator
PUBLIC	??0CPreTuneVoodooFM@@QAE@PAVCBT848Card@@@Z	; CPreTuneVoodooFM::CPreTuneVoodooFM
;	COMDAT xdata$x
; File c:\develop\dscaler423a\dscaler\bt848_voodootv_ifdem.cpp
xdata$x	SEGMENT
__unwindtable$??0CPreTuneVoodooFM@@QAE@PAVCBT848Card@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0CPreTuneVoodooFM@@QAE@PAVCBT848Card@@@Z$0
__ehfuncinfo$??0CPreTuneVoodooFM@@QAE@PAVCBT848Card@@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0CPreTuneVoodooFM@@QAE@PAVCBT848Card@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??0CPreTuneVoodooFM@@QAE@PAVCBT848Card@@@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_pBT848Card$ = 8					; size = 4
??0CPreTuneVoodooFM@@QAE@PAVCBT848Card@@@Z PROC		; CPreTuneVoodooFM::CPreTuneVoodooFM, COMDAT
; _this$ = ecx

; 36   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??0CPreTuneVoodooFM@@QAE@PAVCBT848Card@@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00017	33 c5		 xor	 eax, ebp
  00019	50		 push	 eax
  0001a	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001d	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00023	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx
  00026	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00029	e8 00 00 00 00	 call	 ??0IExternalIFDemodulator@@QAE@XZ
  0002e	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00035	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00038	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], OFFSET ??_7CPreTuneVoodooFM@@6B@

; 37   :     m_pBT848Card = pBT848Card;

  0003e	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00041	8b 55 08	 mov	 edx, DWORD PTR _pBT848Card$[ebp]
  00044	89 51 0c	 mov	 DWORD PTR [ecx+12], edx

; 38   : }

  00047	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0004e	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00051	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00054	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0005b	59		 pop	 ecx
  0005c	8b e5		 mov	 esp, ebp
  0005e	5d		 pop	 ebp
  0005f	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0CPreTuneVoodooFM@@QAE@PAVCBT848Card@@@Z$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1IExternalIFDemodulator@@UAE@XZ
__ehhandler$??0CPreTuneVoodooFM@@QAE@PAVCBT848Card@@@Z:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  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$??0CPreTuneVoodooFM@@QAE@PAVCBT848Card@@@Z
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??0CPreTuneVoodooFM@@QAE@PAVCBT848Card@@@Z ENDP		; CPreTuneVoodooFM::CPreTuneVoodooFM
; Function compile flags: /Odtp
;	COMDAT ??_GIExternalIFDemodulator@@UAEPAXI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___flags$ = 8						; size = 4
??_GIExternalIFDemodulator@@UAEPAXI@Z PROC		; IExternalIFDemodulator::`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	 ??1IExternalIFDemodulator@@UAE@XZ
  0000f	8b 45 08	 mov	 eax, DWORD PTR ___flags$[ebp]
  00012	83 e0 01	 and	 eax, 1
  00015	74 0c		 je	 SHORT $LN1@scalar@113
  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@113:
  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
??_GIExternalIFDemodulator@@UAEPAXI@Z ENDP		; IExternalIFDemodulator::`scalar deleting destructor'
_TEXT	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1CPreTuneVoodooFM@@UAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1CPreTuneVoodooFM@@UAE@XZ$0
__ehfuncinfo$??1CPreTuneVoodooFM@@UAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1CPreTuneVoodooFM@@UAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??1CPreTuneVoodooFM@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1CPreTuneVoodooFM@@UAE@XZ PROC			; CPreTuneVoodooFM::~CPreTuneVoodooFM, COMDAT
; _this$ = ecx
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??1CPreTuneVoodooFM@@UAE@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00017	33 c5		 xor	 eax, ebp
  00019	50		 push	 eax
  0001a	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001d	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00023	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx
  00026	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0002d	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00034	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00037	e8 00 00 00 00	 call	 ??1IExternalIFDemodulator@@UAE@XZ
  0003c	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0003f	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00046	59		 pop	 ecx
  00047	8b e5		 mov	 esp, ebp
  00049	5d		 pop	 ebp
  0004a	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1CPreTuneVoodooFM@@UAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1IExternalIFDemodulator@@UAE@XZ
__ehhandler$??1CPreTuneVoodooFM@@UAE@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 f8	 mov	 ecx, DWORD PTR [edx-8]
  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$??1CPreTuneVoodooFM@@UAE@XZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??1CPreTuneVoodooFM@@UAE@XZ ENDP			; CPreTuneVoodooFM::~CPreTuneVoodooFM
; Function compile flags: /Odtp
;	COMDAT ??_GCPreTuneVoodooFM@@UAEPAXI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___flags$ = 8						; size = 4
??_GCPreTuneVoodooFM@@UAEPAXI@Z PROC			; CPreTuneVoodooFM::`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	 ??1CPreTuneVoodooFM@@UAE@XZ
  0000f	8b 45 08	 mov	 eax, DWORD PTR ___flags$[ebp]
  00012	83 e0 01	 and	 eax, 1
  00015	74 0c		 je	 SHORT $LN1@scalar@114
  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@114:
  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
??_GCPreTuneVoodooFM@@UAEPAXI@Z ENDP			; CPreTuneVoodooFM::`scalar deleting destructor'
; Function compile flags: /Odtp
;	COMDAT ?TunerSet@CPreTuneVoodooFM@@UAEXHW4eVideoFormat@@@Z
_TEXT	SEGMENT
tv77 = -12						; size = 4
_this$ = -8						; size = 4
_Val$141589 = -4					; size = 4
_bPreSet$ = 8						; size = 4
_videoFormat$ = 12					; size = 4
?TunerSet@CPreTuneVoodooFM@@UAEXHW4eVideoFormat@@@Z PROC ; CPreTuneVoodooFM::TunerSet, COMDAT
; _this$ = ecx

; 52   : {

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

; 53   :     if (bPreSet && (m_pBT848Card!=NULL))

  00009	83 7d 08 00	 cmp	 DWORD PTR _bPreSet$[ebp], 0
  0000d	74 75		 je	 SHORT $LN6@TunerSet@6
  0000f	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00012	83 78 0c 00	 cmp	 DWORD PTR [eax+12], 0
  00016	74 6c		 je	 SHORT $LN6@TunerSet@6

; 54   :     {
; 55   :         //Set the demodulator using the GPIO port
; 56   : 
; 57   :         ULONG Val;
; 58   :         m_pBT848Card->SetGPOE( m_pBT848Card->GetGPOE() | (1<<16));

  00018	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0001b	8b 49 0c	 mov	 ecx, DWORD PTR [ecx+12]
  0001e	e8 00 00 00 00	 call	 ?GetGPOE@CBT848Card@@QAEKXZ ; CBT848Card::GetGPOE
  00023	0d 00 00 01 00	 or	 eax, 65536		; 00010000H
  00028	50		 push	 eax
  00029	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  0002c	8b 4a 0c	 mov	 ecx, DWORD PTR [edx+12]
  0002f	e8 00 00 00 00	 call	 ?SetGPOE@CBT848Card@@QAEXK@Z ; CBT848Card::SetGPOE

; 59   :         Val = m_pBT848Card->GetGPDATA();

  00034	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00037	8b 48 0c	 mov	 ecx, DWORD PTR [eax+12]
  0003a	e8 00 00 00 00	 call	 ?GetGPDATA@CBT848Card@@QAEKXZ ; CBT848Card::GetGPDATA
  0003f	89 45 fc	 mov	 DWORD PTR _Val$141589[ebp], eax

; 60   : 
; 61   :         switch (videoFormat)

  00042	8b 4d 0c	 mov	 ecx, DWORD PTR _videoFormat$[ebp]
  00045	89 4d f4	 mov	 DWORD PTR tv77[ebp], ecx
  00048	83 7d f4 08	 cmp	 DWORD PTR tv77[ebp], 8
  0004c	74 0e		 je	 SHORT $LN2@TunerSet@6
  0004e	83 7d f4 10	 cmp	 DWORD PTR tv77[ebp], 16	; 00000010H
  00052	7e 16		 jle	 SHORT $LN1@TunerSet@6
  00054	83 7d f4 13	 cmp	 DWORD PTR tv77[ebp], 19	; 00000013H
  00058	7e 02		 jle	 SHORT $LN2@TunerSet@6
  0005a	eb 0e		 jmp	 SHORT $LN1@TunerSet@6
$LN2@TunerSet@6:

; 62   :         {
; 63   :             case VIDEOFORMAT_PAL_N_COMBO:
; 64   :             case VIDEOFORMAT_NTSC_M:
; 65   :             case VIDEOFORMAT_NTSC_M_Japan:
; 66   :             case VIDEOFORMAT_NTSC_50:
; 67   :                 Val |= (1<<16);

  0005c	8b 55 fc	 mov	 edx, DWORD PTR _Val$141589[ebp]
  0005f	81 ca 00 00 01
	00		 or	 edx, 65536		; 00010000H
  00065	89 55 fc	 mov	 DWORD PTR _Val$141589[ebp], edx

; 68   :                 break;

  00068	eb 0b		 jmp	 SHORT $LN3@TunerSet@6
$LN1@TunerSet@6:

; 69   :             default:
; 70   :                 Val &= ~(1<<16);

  0006a	8b 45 fc	 mov	 eax, DWORD PTR _Val$141589[ebp]
  0006d	25 ff ff fe ff	 and	 eax, -65537		; fffeffffH
  00072	89 45 fc	 mov	 DWORD PTR _Val$141589[ebp], eax
$LN3@TunerSet@6:

; 71   :         }
; 72   : 
; 73   :         m_pBT848Card->SetGPDATA(Val);

  00075	8b 4d fc	 mov	 ecx, DWORD PTR _Val$141589[ebp]
  00078	51		 push	 ecx
  00079	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  0007c	8b 4a 0c	 mov	 ecx, DWORD PTR [edx+12]
  0007f	e8 00 00 00 00	 call	 ?SetGPDATA@CBT848Card@@QAEXK@Z ; CBT848Card::SetGPDATA
$LN6@TunerSet@6:

; 74   :     }
; 75   : }

  00084	8b e5		 mov	 esp, ebp
  00086	5d		 pop	 ebp
  00087	c2 08 00	 ret	 8
?TunerSet@CPreTuneVoodooFM@@UAEXHW4eVideoFormat@@@Z ENDP ; CPreTuneVoodooFM::TunerSet
END
