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

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

INCLUDELIB OLDNAMES

PUBLIC	?GetTuner@CSAA7134Card@@QAE?AV?$SmartPtr@VITuner@@@@XZ ; CSAA7134Card::GetTuner
;	COMDAT xdata$x
; File c:\develop\dscaler423a\dscaler\saa7134card_tuner.cpp
xdata$x	SEGMENT
__unwindtable$?GetTuner@CSAA7134Card@@QAE?AV?$SmartPtr@VITuner@@@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?GetTuner@CSAA7134Card@@QAE?AV?$SmartPtr@VITuner@@@@XZ$1
	DD	00H
	DD	FLAT:__unwindfunclet$?GetTuner@CSAA7134Card@@QAE?AV?$SmartPtr@VITuner@@@@XZ$0
__ehfuncinfo$?GetTuner@CSAA7134Card@@QAE?AV?$SmartPtr@VITuner@@@@XZ DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?GetTuner@CSAA7134Card@@QAE?AV?$SmartPtr@VITuner@@@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?GetTuner@CSAA7134Card@@QAE?AV?$SmartPtr@VITuner@@@@XZ
_TEXT	SEGMENT
tv84 = -36						; size = 4
tv83 = -32						; size = 4
tv89 = -28						; size = 4
_this$ = -24						; size = 4
$T325272 = -20						; size = 4
$T325269 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
?GetTuner@CSAA7134Card@@QAE?AV?$SmartPtr@VITuner@@@@XZ PROC ; CSAA7134Card::GetTuner, COMDAT
; _this$ = ecx

; 181  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?GetTuner@CSAA7134Card@@QAE?AV?$SmartPtr@VITuner@@@@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 18	 sub	 esp, 24			; 00000018H
  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 ec 00 00
	00 00		 mov	 DWORD PTR $T325272[ebp], 0

; 182  :     return DynamicPtrCast<ITuner>(m_Tuner);

  0002f	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  00032	05 80 00 00 00	 add	 eax, 128		; 00000080H
  00037	83 ec 08	 sub	 esp, 8
  0003a	8b cc		 mov	 ecx, esp
  0003c	89 65 f0	 mov	 DWORD PTR $T325269[ebp], esp
  0003f	50		 push	 eax
  00040	e8 00 00 00 00	 call	 ??0?$SmartPtr@VII2CTuner@@@@QAE@ABV0@@Z ; SmartPtr<II2CTuner>::SmartPtr<II2CTuner>
  00045	89 45 e4	 mov	 DWORD PTR tv89[ebp], eax
  00048	8b 4d e4	 mov	 ecx, DWORD PTR tv89[ebp]
  0004b	89 4d e0	 mov	 DWORD PTR tv83[ebp], ecx
  0004e	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1
  00055	8b 55 08	 mov	 edx, DWORD PTR ___$ReturnUdt$[ebp]
  00058	52		 push	 edx
  00059	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  0005d	e8 00 00 00 00	 call	 ??$DynamicPtrCast@VITuner@@VII2CTuner@@@@YA?AV?$SmartPtr@VITuner@@@@V?$SmartPtr@VII2CTuner@@@@@Z ; DynamicPtrCast<ITuner,II2CTuner>
  00062	83 c4 0c	 add	 esp, 12			; 0000000cH
  00065	89 45 dc	 mov	 DWORD PTR tv84[ebp], eax
  00068	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0006f	8b 45 ec	 mov	 eax, DWORD PTR $T325272[ebp]
  00072	83 c8 01	 or	 eax, 1
  00075	89 45 ec	 mov	 DWORD PTR $T325272[ebp], eax
  00078	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 183  : }

  0007b	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0007e	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00085	59		 pop	 ecx
  00086	8b e5		 mov	 esp, ebp
  00088	5d		 pop	 ebp
  00089	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?GetTuner@CSAA7134Card@@QAE?AV?$SmartPtr@VITuner@@@@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR $T325269[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VII2CTuner@@@@QAE@XZ ; SmartPtr<II2CTuner>::~SmartPtr<II2CTuner>
__unwindfunclet$?GetTuner@CSAA7134Card@@QAE?AV?$SmartPtr@VITuner@@@@XZ$1:
  00008	8b 45 ec	 mov	 eax, DWORD PTR $T325272[ebp]
  0000b	83 e0 01	 and	 eax, 1
  0000e	0f 84 0c 00 00
	00		 je	 $LN5@GetTuner@5
  00014	83 65 ec fe	 and	 DWORD PTR $T325272[ebp], -2 ; fffffffeH
  00018	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  0001b	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VITuner@@@@QAE@XZ ; SmartPtr<ITuner>::~SmartPtr<ITuner>
$LN5@GetTuner@5:
  00020	c3		 ret	 0
__ehhandler$?GetTuner@CSAA7134Card@@QAE?AV?$SmartPtr@VITuner@@@@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 e4	 mov	 ecx, DWORD PTR [edx-28]
  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$?GetTuner@CSAA7134Card@@QAE?AV?$SmartPtr@VITuner@@@@XZ
  00037	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?GetTuner@CSAA7134Card@@QAE?AV?$SmartPtr@VITuner@@@@XZ ENDP ; CSAA7134Card::GetTuner
PUBLIC	?GetTunerType@CSAA7134Card@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ; CSAA7134Card::GetTunerType
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?GetTunerType@CSAA7134Card@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?GetTunerType@CSAA7134Card@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ$0
__ehfuncinfo$?GetTunerType@CSAA7134Card@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?GetTunerType@CSAA7134Card@@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 ?GetTunerType@CSAA7134Card@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ
_TEXT	SEGMENT
_this$ = -20						; size = 4
$T328605 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
?GetTunerType@CSAA7134Card@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ PROC ; CSAA7134Card::GetTunerType, COMDAT
; _this$ = ecx

; 187  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?GetTunerType@CSAA7134Card@@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 08	 sub	 esp, 8
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d ec	 mov	 DWORD PTR _this$[ebp], ecx
  00028	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR $T328605[ebp], 0

; 188  :     return m_TunerType;

  0002f	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  00032	83 c0 5c	 add	 eax, 92			; 0000005cH
  00035	50		 push	 eax
  00036	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00039	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@@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> >
  0003e	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00045	8b 4d f0	 mov	 ecx, DWORD PTR $T328605[ebp]
  00048	83 c9 01	 or	 ecx, 1
  0004b	89 4d f0	 mov	 DWORD PTR $T328605[ebp], ecx
  0004e	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 189  : }

  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$?GetTunerType@CSAA7134Card@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ$0:
  00000	8b 45 f0	 mov	 eax, DWORD PTR $T328605[ebp]
  00003	83 e0 01	 and	 eax, 1
  00006	0f 84 0c 00 00
	00		 je	 $LN4@GetTunerTy
  0000c	83 65 f0 fe	 and	 DWORD PTR $T328605[ebp], -2 ; fffffffeH
  00010	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00013	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> >
$LN4@GetTunerTy:
  00018	c3		 ret	 0
__ehhandler$?GetTunerType@CSAA7134Card@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ:
  00019	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0001d	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00020	8b 4a f4	 mov	 ecx, DWORD PTR [edx-12]
  00023	33 c8		 xor	 ecx, eax
  00025	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002a	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?GetTunerType@CSAA7134Card@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ
  0002f	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?GetTunerType@CSAA7134Card@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ENDP ; CSAA7134Card::GetTunerType
PUBLIC	?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z	; CSAA7134Card::InitTuner
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$0
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$1
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$2
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$3
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$4
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$5
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$6
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$7
	DD	07H
	DD	FLAT:__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$8
	DD	08H
	DD	FLAT:__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$9
	DD	08H
	DD	FLAT:__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$10
	DD	07H
	DD	FLAT:__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$11
	DD	07H
	DD	FLAT:__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$12
	DD	0cH
	DD	FLAT:__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$13
	DD	07H
	DD	FLAT:__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$14
__ehfuncinfo$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z DD 019930522H
	DD	0fH
	DD	FLAT:__unwindtable$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z
_TEXT	SEGMENT
tv517 = -404						; size = 4
tv464 = -400						; size = 4
tv540 = -396						; size = 4
tv420 = -392						; size = 4
tv411 = -388						; size = 4
tv380 = -384						; size = 4
tv358 = -380						; size = 4
tv537 = -376						; size = 4
tv551 = -372						; size = 4
tv338 = -368						; size = 4
tv323 = -364						; size = 4
tv534 = -360						; size = 4
tv532 = -356						; size = 4
tv531 = -352						; size = 4
tv259 = -348						; size = 4
tv283 = -344						; size = 4
tv224 = -340						; size = 4
tv206 = -336						; size = 4
tv189 = -332						; size = 4
tv171 = -328						; size = 4
tv153 = -324						; size = 4
tv135 = -320						; size = 4
tv85 = -316						; size = 4
tv70 = -312						; size = 4
_this$ = -308						; size = 4
$T347736 = -304						; size = 4
$T347733 = -300						; size = 4
$T347732 = -296						; size = 4
$T347731 = -292						; size = 28
$T347730 = -264						; size = 8
$T347729 = -254						; size = 2
$T347728 = -252						; size = 4
$T347727 = -248						; size = 8
$T347726 = -240						; size = 4
$T347723 = -236						; size = 4
$T347722 = -232						; size = 4
$T347719 = -228						; size = 4
$T347718 = -224						; size = 4
$T347715 = -220						; size = 4
$T347714 = -216						; size = 4
$T347711 = -212						; size = 4
$T347710 = -208						; size = 4
$T347707 = -204						; size = 4
$T347706 = -200						; size = 4
$T347703 = -196						; size = 4
$T347702 = -192						; size = 4
$T347699 = -188						; size = 4
$T347698 = -184						; size = 4
_oss$147165 = -180					; size = 128
_i$147140 = -48						; size = 4
_count$147139 = -44					; size = 4
_pTDA9887Ex$147137 = -40				; size = 8
_bFoundTuner$ = -32					; size = 4
_test$ = -25						; size = 1
_pExternalIFDemodulator$ = -24				; size = 8
_videoFormat$ = -16					; size = 4
__$EHRec$ = -12						; size = 12
_tunerId$ = 8						; size = 4
?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z PROC	; CSAA7134Card::InitTuner, COMDAT
; _this$ = ecx

; 50   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	81 ec 88 01 00
	00		 sub	 esp, 392		; 00000188H
  00017	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001c	33 c5		 xor	 eax, ebp
  0001e	50		 push	 eax
  0001f	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  00022	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00028	89 8d cc fe ff
	ff		 mov	 DWORD PTR _this$[ebp], ecx

; 51   :     // clean up if we get called twice
; 52   :     if (m_Tuner.IsValid())

  0002e	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00034	81 c1 80 00 00
	00		 add	 ecx, 128		; 00000080H
  0003a	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VII2CTuner@@@@QBEHXZ ; SmartPtr<II2CTuner>::IsValid
  0003f	85 c0		 test	 eax, eax
  00041	74 13		 je	 SHORT $LN25@InitTuner

; 53   :     {
; 54   :         m_Tuner = 0L;

  00043	6a 00		 push	 0
  00045	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0004b	81 c1 80 00 00
	00		 add	 ecx, 128		; 00000080H
  00051	e8 00 00 00 00	 call	 ??4?$SmartPtr@VII2CTuner@@@@QAEAAV0@PAVII2CTuner@@@Z ; SmartPtr<II2CTuner>::operator=
$LN25@InitTuner:

; 55   :     }
; 56   : 
; 57   :     // Create a tuner object for the selected tuner.
; 58   :     switch (tunerId)

  00056	8b 45 08	 mov	 eax, DWORD PTR _tunerId$[ebp]
  00059	89 85 c8 fe ff
	ff		 mov	 DWORD PTR tv70[ebp], eax
  0005f	8b 8d c8 fe ff
	ff		 mov	 ecx, DWORD PTR tv70[ebp]
  00065	83 c1 02	 add	 ecx, 2
  00068	89 8d c8 fe ff
	ff		 mov	 DWORD PTR tv70[ebp], ecx
  0006e	83 bd c8 fe ff
	ff 3d		 cmp	 DWORD PTR tv70[ebp], 61	; 0000003dH
  00075	0f 87 1e 03 00
	00		 ja	 $LN16@InitTuner
  0007b	8b 95 c8 fe ff
	ff		 mov	 edx, DWORD PTR tv70[ebp]
  00081	0f b6 82 00 00
	00 00		 movzx	 eax, BYTE PTR $LN59@InitTuner[edx]
  00088	ff 24 85 00 00
	00 00		 jmp	 DWORD PTR $LN61@InitTuner[eax*4]
$LN22@InitTuner:

; 59   :     {
; 60   :     case TUNER_AUTODETECT:
; 61   :     case TUNER_USER_SETUP:
; 62   :     case TUNER_ABSENT:
; 63   :         m_Tuner = new CNoTuner();

  0008f	6a 18		 push	 24			; 00000018H
  00091	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  00096	83 c4 04	 add	 esp, 4
  00099	89 85 44 ff ff
	ff		 mov	 DWORD PTR $T347699[ebp], eax
  0009f	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  000a6	83 bd 44 ff ff
	ff 00		 cmp	 DWORD PTR $T347699[ebp], 0
  000ad	74 13		 je	 SHORT $LN28@InitTuner
  000af	8b 8d 44 ff ff
	ff		 mov	 ecx, DWORD PTR $T347699[ebp]
  000b5	e8 00 00 00 00	 call	 ??0CNoTuner@@QAE@XZ	; CNoTuner::CNoTuner
  000ba	89 85 c4 fe ff
	ff		 mov	 DWORD PTR tv85[ebp], eax
  000c0	eb 0a		 jmp	 SHORT $LN29@InitTuner
$LN28@InitTuner:
  000c2	c7 85 c4 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR tv85[ebp], 0
$LN29@InitTuner:
  000cc	8b 8d c4 fe ff
	ff		 mov	 ecx, DWORD PTR tv85[ebp]
  000d2	89 8d 48 ff ff
	ff		 mov	 DWORD PTR $T347698[ebp], ecx
  000d8	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  000df	8b 95 48 ff ff
	ff		 mov	 edx, DWORD PTR $T347698[ebp]
  000e5	52		 push	 edx
  000e6	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  000ec	81 c1 80 00 00
	00		 add	 ecx, 128		; 00000080H
  000f2	e8 00 00 00 00	 call	 ??4?$SmartPtr@VII2CTuner@@@@QAEAAV0@PAVII2CTuner@@@Z ; SmartPtr<II2CTuner>::operator=

; 64   :         m_TunerType = _T("None ");

  000f7	68 00 00 00 00	 push	 OFFSET ??_C@_1M@EAPOIBNN@?$AAN?$AAo?$AAn?$AAe?$AA?5?$AA?$AA@
  000fc	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00102	83 c1 5c	 add	 ecx, 92			; 0000005cH
  00105	e8 00 00 00 00	 call	 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=

; 65   :         // There is nothing more to do with this tuner.
; 66   :         return TRUE;

  0010a	b8 01 00 00 00	 mov	 eax, 1
  0010f	e9 0f 08 00 00	 jmp	 $LN26@InitTuner
$LN21@InitTuner:

; 67   : 
; 68   :     case TUNER_MT2032:
; 69   :         m_Tuner = new CMT2032(VIDEOFORMAT_NTSC_M);

  00114	6a 2c		 push	 44			; 0000002cH
  00116	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  0011b	83 c4 04	 add	 esp, 4
  0011e	89 85 3c ff ff
	ff		 mov	 DWORD PTR $T347703[ebp], eax
  00124	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1
  0012b	83 bd 3c ff ff
	ff 00		 cmp	 DWORD PTR $T347703[ebp], 0
  00132	74 15		 je	 SHORT $LN30@InitTuner
  00134	6a 11		 push	 17			; 00000011H
  00136	8b 8d 3c ff ff
	ff		 mov	 ecx, DWORD PTR $T347703[ebp]
  0013c	e8 00 00 00 00	 call	 ??0CMT2032@@QAE@W4eVideoFormat@@@Z ; CMT2032::CMT2032
  00141	89 85 c0 fe ff
	ff		 mov	 DWORD PTR tv135[ebp], eax
  00147	eb 0a		 jmp	 SHORT $LN31@InitTuner
$LN30@InitTuner:
  00149	c7 85 c0 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR tv135[ebp], 0
$LN31@InitTuner:
  00153	8b 85 c0 fe ff
	ff		 mov	 eax, DWORD PTR tv135[ebp]
  00159	89 85 40 ff ff
	ff		 mov	 DWORD PTR $T347702[ebp], eax
  0015f	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00166	8b 8d 40 ff ff
	ff		 mov	 ecx, DWORD PTR $T347702[ebp]
  0016c	51		 push	 ecx
  0016d	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00173	81 c1 80 00 00
	00		 add	 ecx, 128		; 00000080H
  00179	e8 00 00 00 00	 call	 ??4?$SmartPtr@VII2CTuner@@@@QAEAAV0@PAVII2CTuner@@@Z ; SmartPtr<II2CTuner>::operator=

; 70   :         m_TunerType = _T("MT2032 ");

  0017e	68 00 00 00 00	 push	 OFFSET ??_C@_1BA@HIPEDDCK@?$AAM?$AAT?$AA2?$AA0?$AA3?$AA2?$AA?5?$AA?$AA@
  00183	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00189	83 c1 5c	 add	 ecx, 92			; 0000005cH
  0018c	e8 00 00 00 00	 call	 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=

; 71   :         break;

  00191	e9 82 02 00 00	 jmp	 $LN23@InitTuner
$LN20@InitTuner:

; 72   :     case TUNER_MT2032_PAL:
; 73   :         m_Tuner = new CMT2032(VIDEOFORMAT_PAL_B);

  00196	6a 2c		 push	 44			; 0000002cH
  00198	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  0019d	83 c4 04	 add	 esp, 4
  001a0	89 85 34 ff ff
	ff		 mov	 DWORD PTR $T347707[ebp], eax
  001a6	c7 45 fc 02 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 2
  001ad	83 bd 34 ff ff
	ff 00		 cmp	 DWORD PTR $T347707[ebp], 0
  001b4	74 15		 je	 SHORT $LN32@InitTuner
  001b6	6a 00		 push	 0
  001b8	8b 8d 34 ff ff
	ff		 mov	 ecx, DWORD PTR $T347707[ebp]
  001be	e8 00 00 00 00	 call	 ??0CMT2032@@QAE@W4eVideoFormat@@@Z ; CMT2032::CMT2032
  001c3	89 85 bc fe ff
	ff		 mov	 DWORD PTR tv153[ebp], eax
  001c9	eb 0a		 jmp	 SHORT $LN33@InitTuner
$LN32@InitTuner:
  001cb	c7 85 bc fe ff
	ff 00 00 00 00	 mov	 DWORD PTR tv153[ebp], 0
$LN33@InitTuner:
  001d5	8b 95 bc fe ff
	ff		 mov	 edx, DWORD PTR tv153[ebp]
  001db	89 95 38 ff ff
	ff		 mov	 DWORD PTR $T347706[ebp], edx
  001e1	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  001e8	8b 85 38 ff ff
	ff		 mov	 eax, DWORD PTR $T347706[ebp]
  001ee	50		 push	 eax
  001ef	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  001f5	81 c1 80 00 00
	00		 add	 ecx, 128		; 00000080H
  001fb	e8 00 00 00 00	 call	 ??4?$SmartPtr@VII2CTuner@@@@QAEAAV0@PAVII2CTuner@@@Z ; SmartPtr<II2CTuner>::operator=

; 74   :         m_TunerType = _T("MT2032 ");

  00200	68 00 00 00 00	 push	 OFFSET ??_C@_1BA@HIPEDDCK@?$AAM?$AAT?$AA2?$AA0?$AA3?$AA2?$AA?5?$AA?$AA@
  00205	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0020b	83 c1 5c	 add	 ecx, 92			; 0000005cH
  0020e	e8 00 00 00 00	 call	 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=

; 75   :         break;

  00213	e9 00 02 00 00	 jmp	 $LN23@InitTuner
$LN19@InitTuner:

; 76   :     case TUNER_MT2050:
; 77   :         m_Tuner = new CMT2050(VIDEOFORMAT_NTSC_M);

  00218	6a 28		 push	 40			; 00000028H
  0021a	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  0021f	83 c4 04	 add	 esp, 4
  00222	89 85 2c ff ff
	ff		 mov	 DWORD PTR $T347711[ebp], eax
  00228	c7 45 fc 03 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 3
  0022f	83 bd 2c ff ff
	ff 00		 cmp	 DWORD PTR $T347711[ebp], 0
  00236	74 15		 je	 SHORT $LN34@InitTuner
  00238	6a 11		 push	 17			; 00000011H
  0023a	8b 8d 2c ff ff
	ff		 mov	 ecx, DWORD PTR $T347711[ebp]
  00240	e8 00 00 00 00	 call	 ??0CMT2050@@QAE@W4eVideoFormat@@@Z ; CMT2050::CMT2050
  00245	89 85 b8 fe ff
	ff		 mov	 DWORD PTR tv171[ebp], eax
  0024b	eb 0a		 jmp	 SHORT $LN35@InitTuner
$LN34@InitTuner:
  0024d	c7 85 b8 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR tv171[ebp], 0
$LN35@InitTuner:
  00257	8b 8d b8 fe ff
	ff		 mov	 ecx, DWORD PTR tv171[ebp]
  0025d	89 8d 30 ff ff
	ff		 mov	 DWORD PTR $T347710[ebp], ecx
  00263	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0026a	8b 95 30 ff ff
	ff		 mov	 edx, DWORD PTR $T347710[ebp]
  00270	52		 push	 edx
  00271	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00277	81 c1 80 00 00
	00		 add	 ecx, 128		; 00000080H
  0027d	e8 00 00 00 00	 call	 ??4?$SmartPtr@VII2CTuner@@@@QAEAAV0@PAVII2CTuner@@@Z ; SmartPtr<II2CTuner>::operator=

; 78   :         m_TunerType = _T("MT2050 ");

  00282	68 00 00 00 00	 push	 OFFSET ??_C@_1BA@PDFDJLKG@?$AAM?$AAT?$AA2?$AA0?$AA5?$AA0?$AA?5?$AA?$AA@
  00287	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0028d	83 c1 5c	 add	 ecx, 92			; 0000005cH
  00290	e8 00 00 00 00	 call	 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=

; 79   :         break;

  00295	e9 7e 01 00 00	 jmp	 $LN23@InitTuner
$LN18@InitTuner:

; 80   :     case TUNER_MT2050_PAL:
; 81   :         m_Tuner = new CMT2050(VIDEOFORMAT_PAL_B);

  0029a	6a 28		 push	 40			; 00000028H
  0029c	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  002a1	83 c4 04	 add	 esp, 4
  002a4	89 85 24 ff ff
	ff		 mov	 DWORD PTR $T347715[ebp], eax
  002aa	c7 45 fc 04 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 4
  002b1	83 bd 24 ff ff
	ff 00		 cmp	 DWORD PTR $T347715[ebp], 0
  002b8	74 15		 je	 SHORT $LN36@InitTuner
  002ba	6a 00		 push	 0
  002bc	8b 8d 24 ff ff
	ff		 mov	 ecx, DWORD PTR $T347715[ebp]
  002c2	e8 00 00 00 00	 call	 ??0CMT2050@@QAE@W4eVideoFormat@@@Z ; CMT2050::CMT2050
  002c7	89 85 b4 fe ff
	ff		 mov	 DWORD PTR tv189[ebp], eax
  002cd	eb 0a		 jmp	 SHORT $LN37@InitTuner
$LN36@InitTuner:
  002cf	c7 85 b4 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR tv189[ebp], 0
$LN37@InitTuner:
  002d9	8b 85 b4 fe ff
	ff		 mov	 eax, DWORD PTR tv189[ebp]
  002df	89 85 28 ff ff
	ff		 mov	 DWORD PTR $T347714[ebp], eax
  002e5	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  002ec	8b 8d 28 ff ff
	ff		 mov	 ecx, DWORD PTR $T347714[ebp]
  002f2	51		 push	 ecx
  002f3	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  002f9	81 c1 80 00 00
	00		 add	 ecx, 128		; 00000080H
  002ff	e8 00 00 00 00	 call	 ??4?$SmartPtr@VII2CTuner@@@@QAEAAV0@PAVII2CTuner@@@Z ; SmartPtr<II2CTuner>::operator=

; 82   :         m_TunerType = _T("MT2050 ");

  00304	68 00 00 00 00	 push	 OFFSET ??_C@_1BA@PDFDJLKG@?$AAM?$AAT?$AA2?$AA0?$AA5?$AA0?$AA?5?$AA?$AA@
  00309	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0030f	83 c1 5c	 add	 ecx, 92			; 0000005cH
  00312	e8 00 00 00 00	 call	 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=

; 83   :         break;

  00317	e9 fc 00 00 00	 jmp	 $LN23@InitTuner
$LN17@InitTuner:

; 84   :     case TUNER_TDA8275:
; 85   :         m_Tuner = new CTDA8275();

  0031c	6a 1c		 push	 28			; 0000001cH
  0031e	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  00323	83 c4 04	 add	 esp, 4
  00326	89 85 1c ff ff
	ff		 mov	 DWORD PTR $T347719[ebp], eax
  0032c	c7 45 fc 05 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 5
  00333	83 bd 1c ff ff
	ff 00		 cmp	 DWORD PTR $T347719[ebp], 0
  0033a	74 13		 je	 SHORT $LN38@InitTuner
  0033c	8b 8d 1c ff ff
	ff		 mov	 ecx, DWORD PTR $T347719[ebp]
  00342	e8 00 00 00 00	 call	 ??0CTDA8275@@QAE@XZ	; CTDA8275::CTDA8275
  00347	89 85 b0 fe ff
	ff		 mov	 DWORD PTR tv206[ebp], eax
  0034d	eb 0a		 jmp	 SHORT $LN39@InitTuner
$LN38@InitTuner:
  0034f	c7 85 b0 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR tv206[ebp], 0
$LN39@InitTuner:
  00359	8b 95 b0 fe ff
	ff		 mov	 edx, DWORD PTR tv206[ebp]
  0035f	89 95 20 ff ff
	ff		 mov	 DWORD PTR $T347718[ebp], edx
  00365	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0036c	8b 85 20 ff ff
	ff		 mov	 eax, DWORD PTR $T347718[ebp]
  00372	50		 push	 eax
  00373	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00379	81 c1 80 00 00
	00		 add	 ecx, 128		; 00000080H
  0037f	e8 00 00 00 00	 call	 ??4?$SmartPtr@VII2CTuner@@@@QAEAAV0@PAVII2CTuner@@@Z ; SmartPtr<II2CTuner>::operator=

; 86   :         m_TunerType = _T("TDA8275 ");

  00384	68 00 00 00 00	 push	 OFFSET ??_C@_1BC@CEDFBGIN@?$AAT?$AAD?$AAA?$AA8?$AA2?$AA7?$AA5?$AA?5?$AA?$AA@
  00389	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0038f	83 c1 5c	 add	 ecx, 92			; 0000005cH
  00392	e8 00 00 00 00	 call	 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=

; 87   :         break;

  00397	eb 7f		 jmp	 SHORT $LN23@InitTuner
$LN16@InitTuner:

; 88   : 
; 89   :     default:
; 90   :         // The rest are handled by CGenericTuner.
; 91   :         m_Tuner = new CGenericTuner(tunerId);

  00399	6a 30		 push	 48			; 00000030H
  0039b	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  003a0	83 c4 04	 add	 esp, 4
  003a3	89 85 14 ff ff
	ff		 mov	 DWORD PTR $T347723[ebp], eax
  003a9	c7 45 fc 06 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 6
  003b0	83 bd 14 ff ff
	ff 00		 cmp	 DWORD PTR $T347723[ebp], 0
  003b7	74 17		 je	 SHORT $LN40@InitTuner
  003b9	8b 4d 08	 mov	 ecx, DWORD PTR _tunerId$[ebp]
  003bc	51		 push	 ecx
  003bd	8b 8d 14 ff ff
	ff		 mov	 ecx, DWORD PTR $T347723[ebp]
  003c3	e8 00 00 00 00	 call	 ??0CGenericTuner@@QAE@W4eTunerId@@@Z ; CGenericTuner::CGenericTuner
  003c8	89 85 ac fe ff
	ff		 mov	 DWORD PTR tv224[ebp], eax
  003ce	eb 0a		 jmp	 SHORT $LN41@InitTuner
$LN40@InitTuner:
  003d0	c7 85 ac fe ff
	ff 00 00 00 00	 mov	 DWORD PTR tv224[ebp], 0
$LN41@InitTuner:
  003da	8b 95 ac fe ff
	ff		 mov	 edx, DWORD PTR tv224[ebp]
  003e0	89 95 18 ff ff
	ff		 mov	 DWORD PTR $T347722[ebp], edx
  003e6	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  003ed	8b 85 18 ff ff
	ff		 mov	 eax, DWORD PTR $T347722[ebp]
  003f3	50		 push	 eax
  003f4	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  003fa	81 c1 80 00 00
	00		 add	 ecx, 128		; 00000080H
  00400	e8 00 00 00 00	 call	 ??4?$SmartPtr@VII2CTuner@@@@QAEAAV0@PAVII2CTuner@@@Z ; SmartPtr<II2CTuner>::operator=

; 92   :         m_TunerType = _T("Generic ");

  00405	68 00 00 00 00	 push	 OFFSET ??_C@_1BC@GEKCOHGJ@?$AAG?$AAe?$AAn?$AAe?$AAr?$AAi?$AAc?$AA?5?$AA?$AA@
  0040a	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00410	83 c1 5c	 add	 ecx, 92			; 0000005cH
  00413	e8 00 00 00 00	 call	 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=
$LN23@InitTuner:

; 93   :         break;
; 94   :     }
; 95   : 
; 96   :     // Look for possible external IF demodulator
; 97   :     SmartPtr<IExternalIFDemodulator> pExternalIFDemodulator;

  00418	8d 4d e8	 lea	 ecx, DWORD PTR _pExternalIFDemodulator$[ebp]
  0041b	e8 00 00 00 00	 call	 ??0?$SmartPtr@VIExternalIFDemodulator@@@@QAE@XZ ; SmartPtr<IExternalIFDemodulator>::SmartPtr<IExternalIFDemodulator>
  00420	c7 45 fc 07 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 7

; 98   : 
; 99   :     // TDA8275s are paired with a TDA8290.
; 100  :     if (tunerId == TUNER_TDA8275)

  00427	83 7d 08 3b	 cmp	 DWORD PTR _tunerId$[ebp], 59 ; 0000003bH
  0042b	75 20		 jne	 SHORT $LN15@InitTuner

; 101  :     {
; 102  :         // Have a TDA8290 object detected and created.
; 103  :         pExternalIFDemodulator = CTDA8290::CreateDetectedTDA8290(m_I2CBus.GetRawPointer());

  0042d	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00433	83 c1 78	 add	 ecx, 120		; 00000078H
  00436	e8 00 00 00 00	 call	 ?GetRawPointer@?$SmartPtr@VCI2CBus@@@@QBEPAVCI2CBus@@XZ ; SmartPtr<CI2CBus>::GetRawPointer
  0043b	50		 push	 eax
  0043c	e8 00 00 00 00	 call	 ?CreateDetectedTDA8290@CTDA8290@@SAPAV1@PAVCI2CBus@@@Z ; CTDA8290::CreateDetectedTDA8290
  00441	83 c4 04	 add	 esp, 4
  00444	50		 push	 eax
  00445	8d 4d e8	 lea	 ecx, DWORD PTR _pExternalIFDemodulator$[ebp]
  00448	e8 00 00 00 00	 call	 ??4?$SmartPtr@VIExternalIFDemodulator@@@@QAEAAV0@PAVIExternalIFDemodulator@@@Z ; SmartPtr<IExternalIFDemodulator>::operator=
$LN15@InitTuner:

; 104  :     }
; 105  : 
; 106  :     if (!pExternalIFDemodulator.IsValid())

  0044d	8d 4d e8	 lea	 ecx, DWORD PTR _pExternalIFDemodulator$[ebp]
  00450	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VIExternalIFDemodulator@@@@QBEHXZ ; SmartPtr<IExternalIFDemodulator>::IsValid
  00455	85 c0		 test	 eax, eax
  00457	0f 85 59 01 00
	00		 jne	 $LN14@InitTuner

; 107  :     {
; 108  :         // bUseTDA9887 is the setting in SAA713xCards.ini.
; 109  :         if (m_SAA713xCards[m_CardType].bUseTDA9887)

  0045d	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00463	8b 51 58	 mov	 edx, DWORD PTR [ecx+88]
  00466	52		 push	 edx
  00467	b9 00 00 00 00	 mov	 ecx, OFFSET ?m_SAA713xCards@CSAA7134Card@@0V?$vector@VCCardTypeEx@CSAA7134Card@@V?$allocator@VCCardTypeEx@CSAA7134Card@@@std@@@std@@A ; CSAA7134Card::m_SAA713xCards
  0046c	e8 00 00 00 00	 call	 ??A?$vector@VCCardTypeEx@CSAA7134Card@@V?$allocator@VCCardTypeEx@CSAA7134Card@@@std@@@std@@QAEAAVCCardTypeEx@CSAA7134Card@@I@Z ; std::vector<CSAA7134Card::CCardTypeEx,std::allocator<CSAA7134Card::CCardTypeEx> >::operator[]
  00471	83 b8 2c 05 00
	00 00		 cmp	 DWORD PTR [eax+1324], 0
  00478	0f 84 38 01 00
	00		 je	 $LN14@InitTuner

; 110  :         {
; 111  :             // Have a TDA9887 object detected and created.
; 112  :             SmartPtr<CTDA9887Ex> pTDA9887Ex(CTDA9887Ex::CreateDetectedTDA9887Ex(m_I2CBus.GetRawPointer()));

  0047e	6a 00		 push	 0
  00480	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00486	83 c1 78	 add	 ecx, 120		; 00000078H
  00489	e8 00 00 00 00	 call	 ?GetRawPointer@?$SmartPtr@VCI2CBus@@@@QBEPAVCI2CBus@@XZ ; SmartPtr<CI2CBus>::GetRawPointer
  0048e	50		 push	 eax
  0048f	e8 00 00 00 00	 call	 ?CreateDetectedTDA9887Ex@CTDA9887Ex@@SAPAV1@PAVCI2CBus@@@Z ; CTDA9887Ex::CreateDetectedTDA9887Ex
  00494	83 c4 04	 add	 esp, 4
  00497	50		 push	 eax
  00498	8d 4d d8	 lea	 ecx, DWORD PTR _pTDA9887Ex$147137[ebp]
  0049b	e8 00 00 00 00	 call	 ??0?$SmartPtr@VCTDA9887Ex@@@@QAE@PAVCTDA9887Ex@@PAUCounter@@@Z ; SmartPtr<CTDA9887Ex>::SmartPtr<CTDA9887Ex>
  004a0	c6 45 fc 08	 mov	 BYTE PTR __$EHRec$[ebp+8], 8

; 113  : 
; 114  :             // If a TDA9887 was found.
; 115  :             if (pTDA9887Ex.IsValid())

  004a4	8d 4d d8	 lea	 ecx, DWORD PTR _pTDA9887Ex$147137[ebp]
  004a7	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VCTDA9887Ex@@@@QBEHXZ ; SmartPtr<CTDA9887Ex>::IsValid
  004ac	85 c0		 test	 eax, eax
  004ae	0f 84 f6 00 00
	00		 je	 $LN12@InitTuner

; 116  :             {
; 117  :                 // Set card specific modes that were parsed from SAA713xCards.ini.
; 118  :                 size_t count = m_SAA713xCards[m_CardType].tda9887Modes.size();

  004b4	8b 85 cc fe ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  004ba	8b 48 58	 mov	 ecx, DWORD PTR [eax+88]
  004bd	51		 push	 ecx
  004be	b9 00 00 00 00	 mov	 ecx, OFFSET ?m_SAA713xCards@CSAA7134Card@@0V?$vector@VCCardTypeEx@CSAA7134Card@@V?$allocator@VCCardTypeEx@CSAA7134Card@@@std@@@std@@A ; CSAA7134Card::m_SAA713xCards
  004c3	e8 00 00 00 00	 call	 ??A?$vector@VCCardTypeEx@CSAA7134Card@@V?$allocator@VCCardTypeEx@CSAA7134Card@@@std@@@std@@QAEAAVCCardTypeEx@CSAA7134Card@@I@Z ; std::vector<CSAA7134Card::CCardTypeEx,std::allocator<CSAA7134Card::CCardTypeEx> >::operator[]
  004c8	05 30 05 00 00	 add	 eax, 1328		; 00000530H
  004cd	8b c8		 mov	 ecx, eax
  004cf	e8 00 00 00 00	 call	 ?size@?$vector@UTTDA9887FormatModes@@V?$allocator@UTTDA9887FormatModes@@@std@@@std@@QBEIXZ ; std::vector<TTDA9887FormatModes,std::allocator<TTDA9887FormatModes> >::size
  004d4	89 45 d4	 mov	 DWORD PTR _count$147139[ebp], eax

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

  004d7	c7 45 d0 00 00
	00 00		 mov	 DWORD PTR _i$147140[ebp], 0
  004de	eb 09		 jmp	 SHORT $LN11@InitTuner
$LN10@InitTuner:
  004e0	8b 55 d0	 mov	 edx, DWORD PTR _i$147140[ebp]
  004e3	83 c2 01	 add	 edx, 1
  004e6	89 55 d0	 mov	 DWORD PTR _i$147140[ebp], edx
$LN11@InitTuner:
  004e9	8b 45 d0	 mov	 eax, DWORD PTR _i$147140[ebp]
  004ec	3b 45 d4	 cmp	 eax, DWORD PTR _count$147139[ebp]
  004ef	73 48		 jae	 SHORT $LN9@InitTuner

; 120  :                 {
; 121  :                     pTDA9887Ex->SetModes(&m_SAA713xCards[m_CardType].tda9887Modes[i]);

  004f1	8d 4d d8	 lea	 ecx, DWORD PTR _pTDA9887Ex$147137[ebp]
  004f4	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCTDA9887Ex@@@@QBEPAVCTDA9887Ex@@XZ ; SmartPtr<CTDA9887Ex>::operator->
  004f9	89 85 a8 fe ff
	ff		 mov	 DWORD PTR tv283[ebp], eax
  004ff	8b 4d d0	 mov	 ecx, DWORD PTR _i$147140[ebp]
  00502	51		 push	 ecx
  00503	8b 95 cc fe ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00509	8b 42 58	 mov	 eax, DWORD PTR [edx+88]
  0050c	50		 push	 eax
  0050d	b9 00 00 00 00	 mov	 ecx, OFFSET ?m_SAA713xCards@CSAA7134Card@@0V?$vector@VCCardTypeEx@CSAA7134Card@@V?$allocator@VCCardTypeEx@CSAA7134Card@@@std@@@std@@A ; CSAA7134Card::m_SAA713xCards
  00512	e8 00 00 00 00	 call	 ??A?$vector@VCCardTypeEx@CSAA7134Card@@V?$allocator@VCCardTypeEx@CSAA7134Card@@@std@@@std@@QAEAAVCCardTypeEx@CSAA7134Card@@I@Z ; std::vector<CSAA7134Card::CCardTypeEx,std::allocator<CSAA7134Card::CCardTypeEx> >::operator[]
  00517	05 30 05 00 00	 add	 eax, 1328		; 00000530H
  0051c	8b c8		 mov	 ecx, eax
  0051e	e8 00 00 00 00	 call	 ??A?$vector@UTTDA9887FormatModes@@V?$allocator@UTTDA9887FormatModes@@@std@@@std@@QAEAAUTTDA9887FormatModes@@I@Z ; std::vector<TTDA9887FormatModes,std::allocator<TTDA9887FormatModes> >::operator[]
  00523	50		 push	 eax
  00524	8b 8d a8 fe ff
	ff		 mov	 ecx, DWORD PTR tv283[ebp]
  0052a	8b 11		 mov	 edx, DWORD PTR [ecx]
  0052c	8b 8d a8 fe ff
	ff		 mov	 ecx, DWORD PTR tv283[ebp]
  00532	8b 42 24	 mov	 eax, DWORD PTR [edx+36]
  00535	ff d0		 call	 eax

; 122  :                 }

  00537	eb a7		 jmp	 SHORT $LN10@InitTuner
$LN9@InitTuner:

; 123  : 
; 124  :                 // Found a valid external IF demodulator.
; 125  :                 pExternalIFDemodulator = DynamicPtrCast<IExternalIFDemodulator>(pTDA9887Ex);

  00539	83 ec 08	 sub	 esp, 8
  0053c	8b cc		 mov	 ecx, esp
  0053e	89 a5 10 ff ff
	ff		 mov	 DWORD PTR $T347726[ebp], esp
  00544	8d 55 d8	 lea	 edx, DWORD PTR _pTDA9887Ex$147137[ebp]
  00547	52		 push	 edx
  00548	e8 00 00 00 00	 call	 ??0?$SmartPtr@VCTDA9887Ex@@@@QAE@ABV0@@Z ; SmartPtr<CTDA9887Ex>::SmartPtr<CTDA9887Ex>
  0054d	89 85 a4 fe ff
	ff		 mov	 DWORD PTR tv259[ebp], eax
  00553	8b 85 a4 fe ff
	ff		 mov	 eax, DWORD PTR tv259[ebp]
  00559	89 85 a0 fe ff
	ff		 mov	 DWORD PTR tv531[ebp], eax
  0055f	c6 45 fc 09	 mov	 BYTE PTR __$EHRec$[ebp+8], 9
  00563	8d 8d 08 ff ff
	ff		 lea	 ecx, DWORD PTR $T347727[ebp]
  00569	51		 push	 ecx
  0056a	c6 45 fc 08	 mov	 BYTE PTR __$EHRec$[ebp+8], 8
  0056e	e8 00 00 00 00	 call	 ??$DynamicPtrCast@VIExternalIFDemodulator@@VCTDA9887Ex@@@@YA?AV?$SmartPtr@VIExternalIFDemodulator@@@@V?$SmartPtr@VCTDA9887Ex@@@@@Z ; DynamicPtrCast<IExternalIFDemodulator,CTDA9887Ex>
  00573	83 c4 0c	 add	 esp, 12			; 0000000cH
  00576	89 85 9c fe ff
	ff		 mov	 DWORD PTR tv532[ebp], eax
  0057c	8b 95 9c fe ff
	ff		 mov	 edx, DWORD PTR tv532[ebp]
  00582	89 95 98 fe ff
	ff		 mov	 DWORD PTR tv534[ebp], edx
  00588	c6 45 fc 0a	 mov	 BYTE PTR __$EHRec$[ebp+8], 10 ; 0000000aH
  0058c	8b 85 98 fe ff
	ff		 mov	 eax, DWORD PTR tv534[ebp]
  00592	50		 push	 eax
  00593	8d 4d e8	 lea	 ecx, DWORD PTR _pExternalIFDemodulator$[ebp]
  00596	e8 00 00 00 00	 call	 ??4?$SmartPtr@VIExternalIFDemodulator@@@@QAEAAV0@ABV0@@Z ; SmartPtr<IExternalIFDemodulator>::operator=
  0059b	c6 45 fc 08	 mov	 BYTE PTR __$EHRec$[ebp+8], 8
  0059f	8d 8d 08 ff ff
	ff		 lea	 ecx, DWORD PTR $T347727[ebp]
  005a5	e8 00 00 00 00	 call	 ??1?$SmartPtr@VIExternalIFDemodulator@@@@QAE@XZ ; SmartPtr<IExternalIFDemodulator>::~SmartPtr<IExternalIFDemodulator>
$LN12@InitTuner:

; 126  :             }
; 127  :         }

  005aa	c6 45 fc 07	 mov	 BYTE PTR __$EHRec$[ebp+8], 7
  005ae	8d 4d d8	 lea	 ecx, DWORD PTR _pTDA9887Ex$147137[ebp]
  005b1	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCTDA9887Ex@@@@QAE@XZ ; SmartPtr<CTDA9887Ex>::~SmartPtr<CTDA9887Ex>
$LN14@InitTuner:

; 128  :     }
; 129  : 
; 130  :     eVideoFormat videoFormat = m_Tuner->GetDefaultVideoFormat();

  005b6	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  005bc	81 c1 80 00 00
	00		 add	 ecx, 128		; 00000080H
  005c2	e8 00 00 00 00	 call	 ??C?$SmartPtr@VII2CTuner@@@@QBEPAVII2CTuner@@XZ ; SmartPtr<II2CTuner>::operator->
  005c7	89 85 94 fe ff
	ff		 mov	 DWORD PTR tv323[ebp], eax
  005cd	8b 8d 94 fe ff
	ff		 mov	 ecx, DWORD PTR tv323[ebp]
  005d3	8b 11		 mov	 edx, DWORD PTR [ecx]
  005d5	8b 8d 94 fe ff
	ff		 mov	 ecx, DWORD PTR tv323[ebp]
  005db	8b 42 0c	 mov	 eax, DWORD PTR [edx+12]
  005de	ff d0		 call	 eax
  005e0	89 45 f0	 mov	 DWORD PTR _videoFormat$[ebp], eax

; 131  : 
; 132  :     if (pExternalIFDemodulator.IsValid())

  005e3	8d 4d e8	 lea	 ecx, DWORD PTR _pExternalIFDemodulator$[ebp]
  005e6	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VIExternalIFDemodulator@@@@QBEHXZ ; SmartPtr<IExternalIFDemodulator>::IsValid
  005eb	85 c0		 test	 eax, eax
  005ed	74 7f		 je	 SHORT $LN8@InitTuner

; 133  :     {
; 134  :         // Attach the IF demodulator to the tuner.
; 135  :         m_Tuner->AttachIFDem(pExternalIFDemodulator);

  005ef	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  005f5	81 c1 80 00 00
	00		 add	 ecx, 128		; 00000080H
  005fb	e8 00 00 00 00	 call	 ??C?$SmartPtr@VII2CTuner@@@@QBEPAVII2CTuner@@XZ ; SmartPtr<II2CTuner>::operator->
  00600	89 85 90 fe ff
	ff		 mov	 DWORD PTR tv338[ebp], eax
  00606	83 ec 08	 sub	 esp, 8
  00609	8b cc		 mov	 ecx, esp
  0060b	89 a5 04 ff ff
	ff		 mov	 DWORD PTR $T347728[ebp], esp
  00611	8d 55 e8	 lea	 edx, DWORD PTR _pExternalIFDemodulator$[ebp]
  00614	52		 push	 edx
  00615	e8 00 00 00 00	 call	 ??0?$SmartPtr@VIExternalIFDemodulator@@@@QAE@ABV0@@Z ; SmartPtr<IExternalIFDemodulator>::SmartPtr<IExternalIFDemodulator>
  0061a	89 85 8c fe ff
	ff		 mov	 DWORD PTR tv551[ebp], eax
  00620	8b 85 8c fe ff
	ff		 mov	 eax, DWORD PTR tv551[ebp]
  00626	89 85 88 fe ff
	ff		 mov	 DWORD PTR tv537[ebp], eax
  0062c	c6 45 fc 0b	 mov	 BYTE PTR __$EHRec$[ebp+8], 11 ; 0000000bH
  00630	8b 8d 90 fe ff
	ff		 mov	 ecx, DWORD PTR tv338[ebp]
  00636	8b 11		 mov	 edx, DWORD PTR [ecx]
  00638	c6 45 fc 07	 mov	 BYTE PTR __$EHRec$[ebp+8], 7
  0063c	8b 8d 90 fe ff
	ff		 mov	 ecx, DWORD PTR tv338[ebp]
  00642	8b 42 28	 mov	 eax, DWORD PTR [edx+40]
  00645	ff d0		 call	 eax

; 136  :         // Let the IF demodulator know of pre-initialization.
; 137  :         pExternalIFDemodulator->Init(TRUE, videoFormat);

  00647	8d 4d e8	 lea	 ecx, DWORD PTR _pExternalIFDemodulator$[ebp]
  0064a	e8 00 00 00 00	 call	 ??C?$SmartPtr@VIExternalIFDemodulator@@@@QBEPAVIExternalIFDemodulator@@XZ ; SmartPtr<IExternalIFDemodulator>::operator->
  0064f	89 85 84 fe ff
	ff		 mov	 DWORD PTR tv358[ebp], eax
  00655	8b 4d f0	 mov	 ecx, DWORD PTR _videoFormat$[ebp]
  00658	51		 push	 ecx
  00659	6a 01		 push	 1
  0065b	8b 95 84 fe ff
	ff		 mov	 edx, DWORD PTR tv358[ebp]
  00661	8b 02		 mov	 eax, DWORD PTR [edx]
  00663	8b 8d 84 fe ff
	ff		 mov	 ecx, DWORD PTR tv358[ebp]
  00669	8b 50 10	 mov	 edx, DWORD PTR [eax+16]
  0066c	ff d2		 call	 edx
$LN8@InitTuner:

; 138  :     }
; 139  : 
; 140  :     BOOL bFoundTuner = FALSE;

  0066e	c7 45 e0 00 00
	00 00		 mov	 DWORD PTR _bFoundTuner$[ebp], 0

; 141  : 
; 142  :     // Scan the I2C bus addresses 0xC0 - 0xCF for tuners.
; 143  :     BYTE test = IsTEA5767PresentAtC0(m_I2CBus.GetRawPointer()) ? 0xC2 : 0xC0;

  00675	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0067b	83 c1 78	 add	 ecx, 120		; 00000078H
  0067e	e8 00 00 00 00	 call	 ?GetRawPointer@?$SmartPtr@VCI2CBus@@@@QBEPAVCI2CBus@@XZ ; SmartPtr<CI2CBus>::GetRawPointer
  00683	50		 push	 eax
  00684	e8 00 00 00 00	 call	 ?IsTEA5767PresentAtC0@@YAHPAVCI2CBus@@@Z ; IsTEA5767PresentAtC0
  00689	83 c4 04	 add	 esp, 4
  0068c	f7 d8		 neg	 eax
  0068e	1b c0		 sbb	 eax, eax
  00690	83 e0 02	 and	 eax, 2
  00693	05 c0 00 00 00	 add	 eax, 192		; 000000c0H
  00698	88 45 e7	 mov	 BYTE PTR _test$[ebp], al

; 144  :     for ( ; test < 0xCF; test += 0x02)

  0069b	eb 0a		 jmp	 SHORT $LN7@InitTuner
$LN6@InitTuner:
  0069d	0f b6 45 e7	 movzx	 eax, BYTE PTR _test$[ebp]
  006a1	83 c0 02	 add	 eax, 2
  006a4	88 45 e7	 mov	 BYTE PTR _test$[ebp], al
$LN7@InitTuner:
  006a7	0f b6 4d e7	 movzx	 ecx, BYTE PTR _test$[ebp]
  006ab	81 f9 cf 00 00
	00		 cmp	 ecx, 207		; 000000cfH
  006b1	0f 8d 8d 01 00
	00		 jge	 $LN5@InitTuner

; 145  :     {
; 146  :         if (m_I2CBus->Write(&test, sizeof(test)))

  006b7	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  006bd	83 c1 78	 add	 ecx, 120		; 00000078H
  006c0	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCI2CBus@@@@QBEPAVCI2CBus@@XZ ; SmartPtr<CI2CBus>::operator->
  006c5	89 85 80 fe ff
	ff		 mov	 DWORD PTR tv380[ebp], eax
  006cb	6a 01		 push	 1
  006cd	8d 55 e7	 lea	 edx, DWORD PTR _test$[ebp]
  006d0	52		 push	 edx
  006d1	8b 85 80 fe ff
	ff		 mov	 eax, DWORD PTR tv380[ebp]
  006d7	8b 10		 mov	 edx, DWORD PTR [eax]
  006d9	8b 8d 80 fe ff
	ff		 mov	 ecx, DWORD PTR tv380[ebp]
  006df	8b 42 0c	 mov	 eax, DWORD PTR [edx+12]
  006e2	ff d0		 call	 eax
  006e4	85 c0		 test	 eax, eax
  006e6	0f 84 53 01 00
	00		 je	 $LN4@InitTuner

; 147  :         {
; 148  :             m_Tuner->SetI2CBus(m_I2CBus.GetRawPointer(), test>>1);

  006ec	0f b6 4d e7	 movzx	 ecx, BYTE PTR _test$[ebp]
  006f0	d1 f9		 sar	 ecx, 1
  006f2	51		 push	 ecx
  006f3	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  006f9	83 c1 78	 add	 ecx, 120		; 00000078H
  006fc	e8 00 00 00 00	 call	 ?GetRawPointer@?$SmartPtr@VCI2CBus@@@@QBEPAVCI2CBus@@XZ ; SmartPtr<CI2CBus>::GetRawPointer
  00701	50		 push	 eax
  00702	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00708	81 c1 80 00 00
	00		 add	 ecx, 128		; 00000080H
  0070e	e8 00 00 00 00	 call	 ??C?$SmartPtr@VII2CTuner@@@@QBEPAVII2CTuner@@XZ ; SmartPtr<II2CTuner>::operator->
  00713	83 c0 0c	 add	 eax, 12			; 0000000cH
  00716	8b c8		 mov	 ecx, eax
  00718	e8 00 00 00 00	 call	 ?SetI2CBus@CI2CDevice@@QAEXPAVCI2CBus@@E@Z ; CI2CDevice::SetI2CBus

; 149  : 
; 150  :             if (m_Tuner->InitializeTuner())

  0071d	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00723	81 c1 80 00 00
	00		 add	 ecx, 128		; 00000080H
  00729	e8 00 00 00 00	 call	 ??C?$SmartPtr@VII2CTuner@@@@QBEPAVII2CTuner@@XZ ; SmartPtr<II2CTuner>::operator->
  0072e	89 85 7c fe ff
	ff		 mov	 DWORD PTR tv411[ebp], eax
  00734	8b 95 7c fe ff
	ff		 mov	 edx, DWORD PTR tv411[ebp]
  0073a	8b 02		 mov	 eax, DWORD PTR [edx]
  0073c	8b 8d 7c fe ff
	ff		 mov	 ecx, DWORD PTR tv411[ebp]
  00742	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  00745	ff d2		 call	 edx
  00747	85 c0		 test	 eax, eax
  00749	0f 84 f0 00 00
	00		 je	 $LN4@InitTuner

; 151  :             {
; 152  :                 bFoundTuner = TRUE;

  0074f	c7 45 e0 01 00
	00 00		 mov	 DWORD PTR _bFoundTuner$[ebp], 1

; 153  :                 m_TunerType += _T("@ I2C address 0x");

  00756	68 00 00 00 00	 push	 OFFSET ??_C@_1CC@HNAFPJNP@?$AA?$EA?$AA?5?$AAI?$AA2?$AAC?$AA?5?$AAa?$AAd?$AAd?$AAr?$AAe?$AAs?$AAs?$AA?5?$AA0?$AAx?$AA?$AA@
  0075b	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00761	83 c1 5c	 add	 ecx, 92			; 0000005cH
  00764	e8 00 00 00 00	 call	 ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator+=

; 154  :                 tostringstream oss;

  00769	6a 01		 push	 1
  0076b	6a 02		 push	 2
  0076d	8d 8d 4c ff ff
	ff		 lea	 ecx, DWORD PTR _oss$147165[ebp]
  00773	e8 00 00 00 00	 call	 ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z ; std::basic_ostringstream<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_ostringstream<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00778	c6 45 fc 0c	 mov	 BYTE PTR __$EHRec$[ebp+8], 12 ; 0000000cH

; 155  :                 oss << hex << setw(2) << setfill((TCHAR)'0') << test;

  0077c	0f b6 45 e7	 movzx	 eax, BYTE PTR _test$[ebp]
  00780	50		 push	 eax
  00781	6a 30		 push	 48			; 00000030H
  00783	8d 8d 02 ff ff
	ff		 lea	 ecx, DWORD PTR $T347729[ebp]
  00789	51		 push	 ecx
  0078a	e8 00 00 00 00	 call	 ??$setfill@_W@std@@YA?AU?$_Fillobj@_W@0@_W@Z ; std::setfill<wchar_t>
  0078f	83 c4 08	 add	 esp, 8
  00792	50		 push	 eax
  00793	6a 02		 push	 2
  00795	8d 95 f8 fe ff
	ff		 lea	 edx, DWORD PTR $T347730[ebp]
  0079b	52		 push	 edx
  0079c	e8 00 00 00 00	 call	 ?setw@std@@YA?AU?$_Smanip@H@1@H@Z ; std::setw
  007a1	83 c4 08	 add	 esp, 8
  007a4	50		 push	 eax
  007a5	68 00 00 00 00	 push	 OFFSET ?hex@std@@YAAAVios_base@1@AAV21@@Z ; std::hex
  007aa	8d 8d 4c ff ff
	ff		 lea	 ecx, DWORD PTR _oss$147165[ebp]
  007b0	e8 00 00 00 00	 call	 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z ; std::basic_ostream<wchar_t,std::char_traits<wchar_t> >::operator<<
  007b5	50		 push	 eax
  007b6	e8 00 00 00 00	 call	 ??$?6_WU?$char_traits@_W@std@@H@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@ABU?$_Smanip@H@0@@Z ; std::operator<<<wchar_t,std::char_traits<wchar_t>,int>
  007bb	83 c4 08	 add	 esp, 8
  007be	50		 push	 eax
  007bf	e8 00 00 00 00	 call	 ??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@ABU?$_Fillobj@_W@0@@Z ; std::operator<<<wchar_t,std::char_traits<wchar_t> >
  007c4	83 c4 08	 add	 esp, 8
  007c7	8b c8		 mov	 ecx, eax
  007c9	e8 00 00 00 00	 call	 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@H@Z ; std::basic_ostream<wchar_t,std::char_traits<wchar_t> >::operator<<

; 156  :                 m_TunerType += oss.str();

  007ce	8d 85 dc fe ff
	ff		 lea	 eax, DWORD PTR $T347731[ebp]
  007d4	50		 push	 eax
  007d5	8d 8d 4c ff ff
	ff		 lea	 ecx, DWORD PTR _oss$147165[ebp]
  007db	e8 00 00 00 00	 call	 ?str@?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ ; std::basic_ostringstream<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::str
  007e0	89 85 78 fe ff
	ff		 mov	 DWORD PTR tv420[ebp], eax
  007e6	8b 8d 78 fe ff
	ff		 mov	 ecx, DWORD PTR tv420[ebp]
  007ec	89 8d 74 fe ff
	ff		 mov	 DWORD PTR tv540[ebp], ecx
  007f2	c6 45 fc 0d	 mov	 BYTE PTR __$EHRec$[ebp+8], 13 ; 0000000dH
  007f6	8b 95 74 fe ff
	ff		 mov	 edx, DWORD PTR tv540[ebp]
  007fc	52		 push	 edx
  007fd	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00803	83 c1 5c	 add	 ecx, 92			; 0000005cH
  00806	e8 00 00 00 00	 call	 ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator+=
  0080b	c6 45 fc 0c	 mov	 BYTE PTR __$EHRec$[ebp+8], 12 ; 0000000cH
  0080f	8d 8d dc fe ff
	ff		 lea	 ecx, DWORD PTR $T347731[ebp]
  00815	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >

; 157  :                 LOG(1,_T("Tuner: Found at I2C address 0x%02x"), test);

  0081a	0f b6 45 e7	 movzx	 eax, BYTE PTR _test$[ebp]
  0081e	50		 push	 eax
  0081f	68 00 00 00 00	 push	 OFFSET ??_C@_1EG@MPAJNMPO@?$AAT?$AAu?$AAn?$AAe?$AAr?$AA?3?$AA?5?$AAF?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAa?$AAt?$AA?5?$AAI?$AA2?$AAC?$AA?5?$AAa?$AAd?$AAd?$AAr?$AAe?$AAs?$AAs?$AA?5?$AA0?$AAx?$AA?$CF?$AA0@
  00824	6a 01		 push	 1
  00826	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  0082b	83 c4 0c	 add	 esp, 12			; 0000000cH

; 158  :                 break;

  0082e	c6 45 fc 07	 mov	 BYTE PTR __$EHRec$[ebp+8], 7
  00832	8d 8d 4c ff ff
	ff		 lea	 ecx, DWORD PTR _oss$147165[ebp]
  00838	e8 00 00 00 00	 call	 ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ
  0083d	eb 05		 jmp	 SHORT $LN5@InitTuner
$LN4@InitTuner:

; 159  :             }
; 160  :         }
; 161  :     }

  0083f	e9 59 fe ff ff	 jmp	 $LN6@InitTuner
$LN5@InitTuner:

; 162  : 
; 163  :     if (pExternalIFDemodulator.IsValid())

  00844	8d 4d e8	 lea	 ecx, DWORD PTR _pExternalIFDemodulator$[ebp]
  00847	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VIExternalIFDemodulator@@@@QBEHXZ ; SmartPtr<IExternalIFDemodulator>::IsValid
  0084c	85 c0		 test	 eax, eax
  0084e	74 27		 je	 SHORT $LN2@InitTuner

; 164  :     {
; 165  :         // End initialization
; 166  :         pExternalIFDemodulator->Init(FALSE, videoFormat);

  00850	8d 4d e8	 lea	 ecx, DWORD PTR _pExternalIFDemodulator$[ebp]
  00853	e8 00 00 00 00	 call	 ??C?$SmartPtr@VIExternalIFDemodulator@@@@QBEPAVIExternalIFDemodulator@@XZ ; SmartPtr<IExternalIFDemodulator>::operator->
  00858	89 85 70 fe ff
	ff		 mov	 DWORD PTR tv464[ebp], eax
  0085e	8b 4d f0	 mov	 ecx, DWORD PTR _videoFormat$[ebp]
  00861	51		 push	 ecx
  00862	6a 00		 push	 0
  00864	8b 95 70 fe ff
	ff		 mov	 edx, DWORD PTR tv464[ebp]
  0086a	8b 02		 mov	 eax, DWORD PTR [edx]
  0086c	8b 8d 70 fe ff
	ff		 mov	 ecx, DWORD PTR tv464[ebp]
  00872	8b 50 10	 mov	 edx, DWORD PTR [eax+16]
  00875	ff d2		 call	 edx
$LN2@InitTuner:

; 167  :     }
; 168  : 
; 169  :     if (!bFoundTuner)

  00877	83 7d e0 00	 cmp	 DWORD PTR _bFoundTuner$[ebp], 0
  0087b	0f 85 84 00 00
	00		 jne	 $LN1@InitTuner

; 170  :     {
; 171  :         LOG(1,_T("Tuner: No tuner found at I2C addresses 0xC0-0xCF"));

  00881	68 00 00 00 00	 push	 OFFSET ??_C@_1GC@PDEKIALD@?$AAT?$AAu?$AAn?$AAe?$AAr?$AA?3?$AA?5?$AAN?$AAo?$AA?5?$AAt?$AAu?$AAn?$AAe?$AAr?$AA?5?$AAf?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAa?$AAt?$AA?5?$AAI?$AA2?$AAC?$AA?5?$AAa?$AAd?$AAd@
  00886	6a 01		 push	 1
  00888	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  0088d	83 c4 08	 add	 esp, 8

; 172  : 
; 173  :         m_Tuner = new CNoTuner();

  00890	6a 18		 push	 24			; 00000018H
  00892	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  00897	83 c4 04	 add	 esp, 4
  0089a	89 85 d4 fe ff
	ff		 mov	 DWORD PTR $T347733[ebp], eax
  008a0	c6 45 fc 0e	 mov	 BYTE PTR __$EHRec$[ebp+8], 14 ; 0000000eH
  008a4	83 bd d4 fe ff
	ff 00		 cmp	 DWORD PTR $T347733[ebp], 0
  008ab	74 13		 je	 SHORT $LN42@InitTuner
  008ad	8b 8d d4 fe ff
	ff		 mov	 ecx, DWORD PTR $T347733[ebp]
  008b3	e8 00 00 00 00	 call	 ??0CNoTuner@@QAE@XZ	; CNoTuner::CNoTuner
  008b8	89 85 6c fe ff
	ff		 mov	 DWORD PTR tv517[ebp], eax
  008be	eb 0a		 jmp	 SHORT $LN43@InitTuner
$LN42@InitTuner:
  008c0	c7 85 6c fe ff
	ff 00 00 00 00	 mov	 DWORD PTR tv517[ebp], 0
$LN43@InitTuner:
  008ca	8b 85 6c fe ff
	ff		 mov	 eax, DWORD PTR tv517[ebp]
  008d0	89 85 d8 fe ff
	ff		 mov	 DWORD PTR $T347732[ebp], eax
  008d6	c6 45 fc 07	 mov	 BYTE PTR __$EHRec$[ebp+8], 7
  008da	8b 8d d8 fe ff
	ff		 mov	 ecx, DWORD PTR $T347732[ebp]
  008e0	51		 push	 ecx
  008e1	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  008e7	81 c1 80 00 00
	00		 add	 ecx, 128		; 00000080H
  008ed	e8 00 00 00 00	 call	 ??4?$SmartPtr@VII2CTuner@@@@QAEAAV0@PAVII2CTuner@@@Z ; SmartPtr<II2CTuner>::operator=

; 174  :         m_TunerType = _T("None ");

  008f2	68 00 00 00 00	 push	 OFFSET ??_C@_1M@EAPOIBNN@?$AAN?$AAo?$AAn?$AAe?$AA?5?$AA?$AA@
  008f7	8b 8d cc fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  008fd	83 c1 5c	 add	 ecx, 92			; 0000005cH
  00900	e8 00 00 00 00	 call	 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=
$LN1@InitTuner:

; 175  :     }
; 176  :     return bFoundTuner;

  00905	8b 55 e0	 mov	 edx, DWORD PTR _bFoundTuner$[ebp]
  00908	89 95 d0 fe ff
	ff		 mov	 DWORD PTR $T347736[ebp], edx
  0090e	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00915	8d 4d e8	 lea	 ecx, DWORD PTR _pExternalIFDemodulator$[ebp]
  00918	e8 00 00 00 00	 call	 ??1?$SmartPtr@VIExternalIFDemodulator@@@@QAE@XZ ; SmartPtr<IExternalIFDemodulator>::~SmartPtr<IExternalIFDemodulator>
  0091d	8b 85 d0 fe ff
	ff		 mov	 eax, DWORD PTR $T347736[ebp]
$LN26@InitTuner:

; 177  : }

  00923	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00926	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0092d	59		 pop	 ecx
  0092e	8b e5		 mov	 esp, ebp
  00930	5d		 pop	 ebp
  00931	c2 04 00	 ret	 4
$LN61@InitTuner:
  00934	00 00 00 00	 DD	 $LN22@InitTuner
  00938	00 00 00 00	 DD	 $LN21@InitTuner
  0093c	00 00 00 00	 DD	 $LN20@InitTuner
  00940	00 00 00 00	 DD	 $LN19@InitTuner
  00944	00 00 00 00	 DD	 $LN18@InitTuner
  00948	00 00 00 00	 DD	 $LN17@InitTuner
  0094c	00 00 00 00	 DD	 $LN16@InitTuner
$LN59@InitTuner:
  00950	00		 DB	 0
  00951	00		 DB	 0
  00952	00		 DB	 0
  00953	06		 DB	 6
  00954	06		 DB	 6
  00955	06		 DB	 6
  00956	06		 DB	 6
  00957	06		 DB	 6
  00958	06		 DB	 6
  00959	06		 DB	 6
  0095a	06		 DB	 6
  0095b	06		 DB	 6
  0095c	06		 DB	 6
  0095d	06		 DB	 6
  0095e	06		 DB	 6
  0095f	06		 DB	 6
  00960	06		 DB	 6
  00961	06		 DB	 6
  00962	06		 DB	 6
  00963	06		 DB	 6
  00964	06		 DB	 6
  00965	06		 DB	 6
  00966	06		 DB	 6
  00967	06		 DB	 6
  00968	06		 DB	 6
  00969	06		 DB	 6
  0096a	06		 DB	 6
  0096b	06		 DB	 6
  0096c	06		 DB	 6
  0096d	06		 DB	 6
  0096e	06		 DB	 6
  0096f	06		 DB	 6
  00970	06		 DB	 6
  00971	06		 DB	 6
  00972	06		 DB	 6
  00973	01		 DB	 1
  00974	06		 DB	 6
  00975	06		 DB	 6
  00976	06		 DB	 6
  00977	06		 DB	 6
  00978	06		 DB	 6
  00979	06		 DB	 6
  0097a	06		 DB	 6
  0097b	06		 DB	 6
  0097c	06		 DB	 6
  0097d	02		 DB	 2
  0097e	06		 DB	 6
  0097f	03		 DB	 3
  00980	04		 DB	 4
  00981	06		 DB	 6
  00982	06		 DB	 6
  00983	06		 DB	 6
  00984	06		 DB	 6
  00985	06		 DB	 6
  00986	06		 DB	 6
  00987	06		 DB	 6
  00988	06		 DB	 6
  00989	06		 DB	 6
  0098a	06		 DB	 6
  0098b	06		 DB	 6
  0098c	06		 DB	 6
  0098d	05		 DB	 5
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$0:
  00000	8b 85 44 ff ff
	ff		 mov	 eax, DWORD PTR $T347699[ebp]
  00006	50		 push	 eax
  00007	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  0000c	59		 pop	 ecx
  0000d	c3		 ret	 0
__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$1:
  0000e	8b 85 3c ff ff
	ff		 mov	 eax, DWORD PTR $T347703[ebp]
  00014	50		 push	 eax
  00015	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  0001a	59		 pop	 ecx
  0001b	c3		 ret	 0
__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$2:
  0001c	8b 85 34 ff ff
	ff		 mov	 eax, DWORD PTR $T347707[ebp]
  00022	50		 push	 eax
  00023	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00028	59		 pop	 ecx
  00029	c3		 ret	 0
__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$3:
  0002a	8b 85 2c ff ff
	ff		 mov	 eax, DWORD PTR $T347711[ebp]
  00030	50		 push	 eax
  00031	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00036	59		 pop	 ecx
  00037	c3		 ret	 0
__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$4:
  00038	8b 85 24 ff ff
	ff		 mov	 eax, DWORD PTR $T347715[ebp]
  0003e	50		 push	 eax
  0003f	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00044	59		 pop	 ecx
  00045	c3		 ret	 0
__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$5:
  00046	8b 85 1c ff ff
	ff		 mov	 eax, DWORD PTR $T347719[ebp]
  0004c	50		 push	 eax
  0004d	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00052	59		 pop	 ecx
  00053	c3		 ret	 0
__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$6:
  00054	8b 85 14 ff ff
	ff		 mov	 eax, DWORD PTR $T347723[ebp]
  0005a	50		 push	 eax
  0005b	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00060	59		 pop	 ecx
  00061	c3		 ret	 0
__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$7:
  00062	8d 4d e8	 lea	 ecx, DWORD PTR _pExternalIFDemodulator$[ebp]
  00065	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VIExternalIFDemodulator@@@@QAE@XZ ; SmartPtr<IExternalIFDemodulator>::~SmartPtr<IExternalIFDemodulator>
__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$8:
  0006a	8d 4d d8	 lea	 ecx, DWORD PTR _pTDA9887Ex$147137[ebp]
  0006d	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCTDA9887Ex@@@@QAE@XZ ; SmartPtr<CTDA9887Ex>::~SmartPtr<CTDA9887Ex>
__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$9:
  00072	8b 8d 10 ff ff
	ff		 mov	 ecx, DWORD PTR $T347726[ebp]
  00078	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCTDA9887Ex@@@@QAE@XZ ; SmartPtr<CTDA9887Ex>::~SmartPtr<CTDA9887Ex>
__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$10:
  0007d	8d 8d 08 ff ff
	ff		 lea	 ecx, DWORD PTR $T347727[ebp]
  00083	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VIExternalIFDemodulator@@@@QAE@XZ ; SmartPtr<IExternalIFDemodulator>::~SmartPtr<IExternalIFDemodulator>
__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$11:
  00088	8b 8d 04 ff ff
	ff		 mov	 ecx, DWORD PTR $T347728[ebp]
  0008e	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VIExternalIFDemodulator@@@@QAE@XZ ; SmartPtr<IExternalIFDemodulator>::~SmartPtr<IExternalIFDemodulator>
__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$12:
  00093	8d 8d 4c ff ff
	ff		 lea	 ecx, DWORD PTR _oss$147165[ebp]
  00099	e9 00 00 00 00	 jmp	 ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ
__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$13:
  0009e	8d 8d dc fe ff
	ff		 lea	 ecx, DWORD PTR $T347731[ebp]
  000a4	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z$14:
  000a9	8b 85 d4 fe ff
	ff		 mov	 eax, DWORD PTR $T347733[ebp]
  000af	50		 push	 eax
  000b0	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  000b5	59		 pop	 ecx
  000b6	c3		 ret	 0
__ehhandler$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z:
  000b7	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  000bb	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  000be	8b 8a 74 fe ff
	ff		 mov	 ecx, DWORD PTR [edx-396]
  000c4	33 c8		 xor	 ecx, eax
  000c6	e8 00 00 00 00	 call	 @__security_check_cookie@4
  000cb	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z
  000d0	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?InitTuner@CSAA7134Card@@QAEHW4eTunerId@@@Z ENDP	; CSAA7134Card::InitTuner
END
