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

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

INCLUDELIB OLDNAMES

PUBLIC	??_R4II2CTuner@@6BCI2CDevice@@@			; II2CTuner::`RTTI Complete Object Locator'
PUBLIC	??_R4II2CTuner@@6BITuner@@@			; II2CTuner::`RTTI Complete Object Locator'
PUBLIC	??_R4ITuner@@6B@				; ITuner::`RTTI Complete Object Locator'
PUBLIC	?AttachIFDem@ITuner@@UAEXV?$SmartPtr@VIExternalIFDemodulator@@@@@Z ; ITuner::AttachIFDem
PUBLIC	?SetDetectedI2CAddress@IExternalIFDemodulator@@UAEHPAVCI2CBus@@@Z ; IExternalIFDemodulator::SetDetectedI2CAddress
PUBLIC	?SetDetectedI2CAddress@IExternalIFDemodulator@@UAEHPAVCI2CBus@@PAEI@Z ; IExternalIFDemodulator::SetDetectedI2CAddress
PUBLIC	??_GITuner@@UAEPAXI@Z				; ITuner::`scalar deleting destructor'
PUBLIC	??_GII2CTuner@@UAEPAXI@Z			; II2CTuner::`scalar deleting destructor'
PUBLIC	??_EII2CTuner@@WM@AEPAXI@Z			; [thunk]:II2CTuner::`vector deleting destructor'
PUBLIC	??_7ITuner@@6B@					; ITuner::`vftable'
PUBLIC	??_7II2CTuner@@6BITuner@@@			; II2CTuner::`vftable'
PUBLIC	??_7II2CTuner@@6BCI2CDevice@@@			; II2CTuner::`vftable'
EXTRN	??_EITuner@@UAEPAXI@Z:PROC			; ITuner::`vector deleting destructor'
EXTRN	??_EII2CTuner@@UAEPAXI@Z:PROC			; II2CTuner::`vector deleting destructor'
;	COMDAT ??_7II2CTuner@@6BCI2CDevice@@@
CONST	SEGMENT
??_7II2CTuner@@6BCI2CDevice@@@ DD FLAT:??_R4II2CTuner@@6BCI2CDevice@@@ ; II2CTuner::`vftable'
	DD	FLAT:??_EII2CTuner@@WM@AEPAXI@Z
	DD	FLAT:__purecall
CONST	ENDS
;	COMDAT ??_R4II2CTuner@@6BCI2CDevice@@@
rdata$r	SEGMENT
??_R4II2CTuner@@6BCI2CDevice@@@ DD 00H			; II2CTuner::`RTTI Complete Object Locator'
	DD	0cH
	DD	00H
	DD	FLAT:??_R0?AVII2CTuner@@@8
	DD	FLAT:??_R3II2CTuner@@8
rdata$r	ENDS
;	COMDAT ??_7II2CTuner@@6BITuner@@@
CONST	SEGMENT
??_7II2CTuner@@6BITuner@@@ DD FLAT:??_R4II2CTuner@@6BITuner@@@ ; II2CTuner::`vftable'
	DD	FLAT:??_EII2CTuner@@UAEPAXI@Z
	DD	FLAT:?InitializeTuner@ITuner@@UAEHXZ
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:?AttachIFDem@ITuner@@UAEXV?$SmartPtr@VIExternalIFDemodulator@@@@@Z
CONST	ENDS
;	COMDAT ??_R4II2CTuner@@6BITuner@@@
rdata$r	SEGMENT
??_R4II2CTuner@@6BITuner@@@ DD 00H			; II2CTuner::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVII2CTuner@@@8
	DD	FLAT:??_R3II2CTuner@@8
rdata$r	ENDS
;	COMDAT ??_7ITuner@@6B@
CONST	SEGMENT
??_7ITuner@@6B@ DD FLAT:??_R4ITuner@@6B@		; ITuner::`vftable'
	DD	FLAT:??_EITuner@@UAEPAXI@Z
	DD	FLAT:?InitializeTuner@ITuner@@UAEHXZ
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:?AttachIFDem@ITuner@@UAEXV?$SmartPtr@VIExternalIFDemodulator@@@@@Z
CONST	ENDS
;	COMDAT ??_R4ITuner@@6B@
rdata$r	SEGMENT
??_R4ITuner@@6B@ DD 00H					; ITuner::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVITuner@@@8
	DD	FLAT:??_R3ITuner@@8
; Function compile flags: /Odtp
;	COMDAT ??_EII2CTuner@@WM@AEPAXI@Z
_TEXT	SEGMENT
??_EII2CTuner@@WM@AEPAXI@Z PROC				; [thunk]:II2CTuner::`vector deleting destructor', COMDAT
  00000	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00003	e9 00 00 00 00	 jmp	 ??_EII2CTuner@@UAEPAXI@Z
??_EII2CTuner@@WM@AEPAXI@Z ENDP				; [thunk]:II2CTuner::`vector deleting destructor'
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\ituner.cpp
_TEXT	ENDS
;	COMDAT ?SetDetectedI2CAddress@IExternalIFDemodulator@@UAEHPAVCI2CBus@@@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_addresses$ = -1					; size = 1
_i2cBus$ = 8						; size = 4
?SetDetectedI2CAddress@IExternalIFDemodulator@@UAEHPAVCI2CBus@@@Z PROC ; IExternalIFDemodulator::SetDetectedI2CAddress, COMDAT
; _this$ = ecx

; 68   : {

  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

; 69   :     BYTE addresses = GetDefaultAddress();

  00009	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	8b 10		 mov	 edx, DWORD PTR [eax]
  0000e	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00011	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00014	ff d0		 call	 eax
  00016	88 45 ff	 mov	 BYTE PTR _addresses$[ebp], al

; 70   :     return SetDetectedI2CAddress(i2cBus, &addresses, 1);

  00019	6a 01		 push	 1
  0001b	8d 4d ff	 lea	 ecx, DWORD PTR _addresses$[ebp]
  0001e	51		 push	 ecx
  0001f	8b 55 08	 mov	 edx, DWORD PTR _i2cBus$[ebp]
  00022	52		 push	 edx
  00023	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00026	8b 10		 mov	 edx, DWORD PTR [eax]
  00028	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0002b	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  0002e	ff d0		 call	 eax

; 71   : }

  00030	8b e5		 mov	 esp, ebp
  00032	5d		 pop	 ebp
  00033	c2 04 00	 ret	 4
?SetDetectedI2CAddress@IExternalIFDemodulator@@UAEHPAVCI2CBus@@@Z ENDP ; IExternalIFDemodulator::SetDetectedI2CAddress
; Function compile flags: /Odtp
;	COMDAT ?SetDetectedI2CAddress@IExternalIFDemodulator@@UAEHPAVCI2CBus@@PAEI@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_i$139717 = -4						; size = 4
_i2cBus$ = 8						; size = 4
_addresses$ = 12					; size = 4
_count$ = 16						; size = 4
?SetDetectedI2CAddress@IExternalIFDemodulator@@UAEHPAVCI2CBus@@PAEI@Z PROC ; IExternalIFDemodulator::SetDetectedI2CAddress, COMDAT
; _this$ = ecx

; 75   : {

  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

; 76   :     for (size_t i = 0; i < count; ++i)

  00009	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _i$139717[ebp], 0
  00010	eb 09		 jmp	 SHORT $LN5@SetDetecte
$LN4@SetDetecte:
  00012	8b 45 fc	 mov	 eax, DWORD PTR _i$139717[ebp]
  00015	83 c0 01	 add	 eax, 1
  00018	89 45 fc	 mov	 DWORD PTR _i$139717[ebp], eax
$LN5@SetDetecte:
  0001b	8b 4d fc	 mov	 ecx, DWORD PTR _i$139717[ebp]
  0001e	3b 4d 10	 cmp	 ecx, DWORD PTR _count$[ebp]
  00021	73 3d		 jae	 SHORT $LN3@SetDetecte

; 77   :     {
; 78   :         if (addresses[i] != 0x00)

  00023	8b 55 0c	 mov	 edx, DWORD PTR _addresses$[ebp]
  00026	03 55 fc	 add	 edx, DWORD PTR _i$139717[ebp]
  00029	0f b6 02	 movzx	 eax, BYTE PTR [edx]
  0002c	85 c0		 test	 eax, eax
  0002e	74 2e		 je	 SHORT $LN2@SetDetecte

; 79   :         {
; 80   :             SetI2CBus(i2cBus, addresses[i]);

  00030	8b 4d 0c	 mov	 ecx, DWORD PTR _addresses$[ebp]
  00033	03 4d fc	 add	 ecx, DWORD PTR _i$139717[ebp]
  00036	0f b6 11	 movzx	 edx, BYTE PTR [ecx]
  00039	52		 push	 edx
  0003a	8b 45 08	 mov	 eax, DWORD PTR _i2cBus$[ebp]
  0003d	50		 push	 eax
  0003e	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00041	e8 00 00 00 00	 call	 ?SetI2CBus@CI2CDevice@@QAEXPAVCI2CBus@@E@Z ; CI2CDevice::SetI2CBus

; 81   : 
; 82   :             if (Detect())

  00046	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00049	8b 11		 mov	 edx, DWORD PTR [ecx]
  0004b	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0004e	8b 42 18	 mov	 eax, DWORD PTR [edx+24]
  00051	ff d0		 call	 eax
  00053	85 c0		 test	 eax, eax
  00055	74 07		 je	 SHORT $LN2@SetDetecte

; 83   :             {
; 84   :                 return TRUE;

  00057	b8 01 00 00 00	 mov	 eax, 1
  0005c	eb 04		 jmp	 SHORT $LN6@SetDetecte
$LN2@SetDetecte:

; 85   :             }
; 86   :         }
; 87   :     }

  0005e	eb b2		 jmp	 SHORT $LN4@SetDetecte
$LN3@SetDetecte:

; 88   :     return FALSE;

  00060	33 c0		 xor	 eax, eax
$LN6@SetDetecte:

; 89   : }

  00062	8b e5		 mov	 esp, ebp
  00064	5d		 pop	 ebp
  00065	c2 0c 00	 ret	 12			; 0000000cH
?SetDetectedI2CAddress@IExternalIFDemodulator@@UAEHPAVCI2CBus@@PAEI@Z ENDP ; IExternalIFDemodulator::SetDetectedI2CAddress
_TEXT	ENDS
PUBLIC	??1ITuner@@UAE@XZ				; ITuner::~ITuner
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1ITuner@@UAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1ITuner@@UAE@XZ$0
__ehfuncinfo$??1ITuner@@UAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1ITuner@@UAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??1ITuner@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1ITuner@@UAE@XZ PROC					; ITuner::~ITuner, COMDAT
; _this$ = ecx

; 41   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??1ITuner@@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	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00029	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], OFFSET ??_7ITuner@@6B@
  0002f	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0

; 42   : }

  00036	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0003d	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00040	83 c1 04	 add	 ecx, 4
  00043	e8 00 00 00 00	 call	 ??1?$SmartPtr@VIExternalIFDemodulator@@@@QAE@XZ ; SmartPtr<IExternalIFDemodulator>::~SmartPtr<IExternalIFDemodulator>
  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$??1ITuner@@UAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	83 c1 04	 add	 ecx, 4
  00006	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VIExternalIFDemodulator@@@@QAE@XZ ; SmartPtr<IExternalIFDemodulator>::~SmartPtr<IExternalIFDemodulator>
__ehhandler$??1ITuner@@UAE@XZ:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  00015	33 c8		 xor	 ecx, eax
  00017	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??1ITuner@@UAE@XZ
  00021	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??1ITuner@@UAE@XZ ENDP					; ITuner::~ITuner
; Function compile flags: /Odtp
;	COMDAT ??_GITuner@@UAEPAXI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___flags$ = 8						; size = 4
??_GITuner@@UAEPAXI@Z PROC				; ITuner::`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	 ??1ITuner@@UAE@XZ	; ITuner::~ITuner
  0000f	8b 45 08	 mov	 eax, DWORD PTR ___flags$[ebp]
  00012	83 e0 01	 and	 eax, 1
  00015	74 0c		 je	 SHORT $LN1@scalar@49
  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@49:
  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
??_GITuner@@UAEPAXI@Z ENDP				; ITuner::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??0ITuner@@QAE@XZ				; ITuner::ITuner
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0ITuner@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0ITuner@@QAE@XZ$0
__ehfuncinfo$??0ITuner@@QAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0ITuner@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??0ITuner@@QAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??0ITuner@@QAE@XZ PROC					; ITuner::ITuner, COMDAT
; _this$ = ecx

; 37   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??0ITuner@@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 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00029	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], OFFSET ??_7ITuner@@6B@
  0002f	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00032	83 c1 04	 add	 ecx, 4
  00035	e8 00 00 00 00	 call	 ??0?$SmartPtr@VIExternalIFDemodulator@@@@QAE@XZ ; SmartPtr<IExternalIFDemodulator>::SmartPtr<IExternalIFDemodulator>
  0003a	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0

; 38   : }

  00041	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00048	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  0004b	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0004e	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00055	59		 pop	 ecx
  00056	8b e5		 mov	 esp, ebp
  00058	5d		 pop	 ebp
  00059	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0ITuner@@QAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	83 c1 04	 add	 ecx, 4
  00006	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VIExternalIFDemodulator@@@@QAE@XZ ; SmartPtr<IExternalIFDemodulator>::~SmartPtr<IExternalIFDemodulator>
__ehhandler$??0ITuner@@QAE@XZ:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  00015	33 c8		 xor	 ecx, eax
  00017	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??0ITuner@@QAE@XZ
  00021	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??0ITuner@@QAE@XZ ENDP					; ITuner::ITuner
PUBLIC	??1II2CTuner@@UAE@XZ				; II2CTuner::~II2CTuner
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1II2CTuner@@UAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1II2CTuner@@UAE@XZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$??1II2CTuner@@UAE@XZ$1
__ehfuncinfo$??1II2CTuner@@UAE@XZ DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??1II2CTuner@@UAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??1II2CTuner@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1II2CTuner@@UAE@XZ PROC				; II2CTuner::~II2CTuner, COMDAT
; _this$ = ecx

; 59   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??1II2CTuner@@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	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00029	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], OFFSET ??_7II2CTuner@@6BITuner@@@
  0002f	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00032	c7 41 0c 00 00
	00 00		 mov	 DWORD PTR [ecx+12], OFFSET ??_7II2CTuner@@6BCI2CDevice@@@
  00039	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1

; 60   : }

  00040	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  00044	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00047	83 c1 0c	 add	 ecx, 12			; 0000000cH
  0004a	e8 00 00 00 00	 call	 ??1CI2CDevice@@UAE@XZ	; CI2CDevice::~CI2CDevice
  0004f	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00056	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00059	e8 00 00 00 00	 call	 ??1ITuner@@UAE@XZ	; ITuner::~ITuner
  0005e	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00061	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00068	59		 pop	 ecx
  00069	8b e5		 mov	 esp, ebp
  0006b	5d		 pop	 ebp
  0006c	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1II2CTuner@@UAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1ITuner@@UAE@XZ	; ITuner::~ITuner
__unwindfunclet$??1II2CTuner@@UAE@XZ$1:
  00008	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0000b	83 c1 0c	 add	 ecx, 12			; 0000000cH
  0000e	e9 00 00 00 00	 jmp	 ??1CI2CDevice@@UAE@XZ	; CI2CDevice::~CI2CDevice
__ehhandler$??1II2CTuner@@UAE@XZ:
  00013	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00017	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0001a	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  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$??1II2CTuner@@UAE@XZ
  00029	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??1II2CTuner@@UAE@XZ ENDP				; II2CTuner::~II2CTuner
; Function compile flags: /Odtp
;	COMDAT ??_GII2CTuner@@UAEPAXI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___flags$ = 8						; size = 4
??_GII2CTuner@@UAEPAXI@Z PROC				; II2CTuner::`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	 ??1II2CTuner@@UAE@XZ	; II2CTuner::~II2CTuner
  0000f	8b 45 08	 mov	 eax, DWORD PTR ___flags$[ebp]
  00012	83 e0 01	 and	 eax, 1
  00015	74 0c		 je	 SHORT $LN1@scalar@101
  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@101:
  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
??_GII2CTuner@@UAEPAXI@Z ENDP				; II2CTuner::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??0II2CTuner@@QAE@XZ				; II2CTuner::II2CTuner
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0II2CTuner@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0II2CTuner@@QAE@XZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$??0II2CTuner@@QAE@XZ$1
__ehfuncinfo$??0II2CTuner@@QAE@XZ DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??0II2CTuner@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??0II2CTuner@@QAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??0II2CTuner@@QAE@XZ PROC				; II2CTuner::II2CTuner, COMDAT
; _this$ = ecx

; 55   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??0II2CTuner@@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	 ??0ITuner@@QAE@XZ	; ITuner::ITuner
  0002e	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00035	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00038	83 c1 0c	 add	 ecx, 12			; 0000000cH
  0003b	e8 00 00 00 00	 call	 ??0CI2CDevice@@QAE@XZ	; CI2CDevice::CI2CDevice
  00040	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00044	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00047	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], OFFSET ??_7II2CTuner@@6BITuner@@@
  0004d	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00050	c7 41 0c 00 00
	00 00		 mov	 DWORD PTR [ecx+12], OFFSET ??_7II2CTuner@@6BCI2CDevice@@@

; 56   : }

  00057	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0005e	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00061	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00064	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0006b	59		 pop	 ecx
  0006c	8b e5		 mov	 esp, ebp
  0006e	5d		 pop	 ebp
  0006f	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0II2CTuner@@QAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1ITuner@@UAE@XZ	; ITuner::~ITuner
__unwindfunclet$??0II2CTuner@@QAE@XZ$1:
  00008	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0000b	83 c1 0c	 add	 ecx, 12			; 0000000cH
  0000e	e9 00 00 00 00	 jmp	 ??1CI2CDevice@@UAE@XZ	; CI2CDevice::~CI2CDevice
__ehhandler$??0II2CTuner@@QAE@XZ:
  00013	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00017	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0001a	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  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$??0II2CTuner@@QAE@XZ
  00029	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??0II2CTuner@@QAE@XZ ENDP				; II2CTuner::II2CTuner
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?AttachIFDem@ITuner@@UAEXV?$SmartPtr@VIExternalIFDemodulator@@@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?AttachIFDem@ITuner@@UAEXV?$SmartPtr@VIExternalIFDemodulator@@@@@Z$0
__ehfuncinfo$?AttachIFDem@ITuner@@UAEXV?$SmartPtr@VIExternalIFDemodulator@@@@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?AttachIFDem@ITuner@@UAEXV?$SmartPtr@VIExternalIFDemodulator@@@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?AttachIFDem@ITuner@@UAEXV?$SmartPtr@VIExternalIFDemodulator@@@@@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_pExternalIFDemodulator$ = 8				; size = 8
?AttachIFDem@ITuner@@UAEXV?$SmartPtr@VIExternalIFDemodulator@@@@@Z PROC ; ITuner::AttachIFDem, COMDAT
; _this$ = ecx

; 45   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?AttachIFDem@ITuner@@UAEXV?$SmartPtr@VIExternalIFDemodulator@@@@@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	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0

; 46   :     m_ExternalIFDemodulator = pExternalIFDemodulator;

  0002d	8d 45 08	 lea	 eax, DWORD PTR _pExternalIFDemodulator$[ebp]
  00030	50		 push	 eax
  00031	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00034	83 c1 04	 add	 ecx, 4
  00037	e8 00 00 00 00	 call	 ??4?$SmartPtr@VIExternalIFDemodulator@@@@QAEAAV0@ABV0@@Z ; SmartPtr<IExternalIFDemodulator>::operator=

; 47   : }

  0003c	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00043	8d 4d 08	 lea	 ecx, DWORD PTR _pExternalIFDemodulator$[ebp]
  00046	e8 00 00 00 00	 call	 ??1?$SmartPtr@VIExternalIFDemodulator@@@@QAE@XZ ; SmartPtr<IExternalIFDemodulator>::~SmartPtr<IExternalIFDemodulator>
  0004b	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0004e	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00055	59		 pop	 ecx
  00056	8b e5		 mov	 esp, ebp
  00058	5d		 pop	 ebp
  00059	c2 08 00	 ret	 8
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?AttachIFDem@ITuner@@UAEXV?$SmartPtr@VIExternalIFDemodulator@@@@@Z$0:
  00000	8d 4d 08	 lea	 ecx, DWORD PTR _pExternalIFDemodulator$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VIExternalIFDemodulator@@@@QAE@XZ ; SmartPtr<IExternalIFDemodulator>::~SmartPtr<IExternalIFDemodulator>
__ehhandler$?AttachIFDem@ITuner@@UAEXV?$SmartPtr@VIExternalIFDemodulator@@@@@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$?AttachIFDem@ITuner@@UAEXV?$SmartPtr@VIExternalIFDemodulator@@@@@Z
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?AttachIFDem@ITuner@@UAEXV?$SmartPtr@VIExternalIFDemodulator@@@@@Z ENDP ; ITuner::AttachIFDem
END
