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

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

INCLUDELIB OLDNAMES

PUBLIC	??_R4CBt8x8GPIOAudioDecoder@@6B@		; CBt8x8GPIOAudioDecoder::`RTTI Complete Object Locator'
PUBLIC	?SetSoundChannel@CBt8x8GPIOAudioDecoder@@UAEXW4eSoundChannel@@@Z ; CBt8x8GPIOAudioDecoder::SetSoundChannel
PUBLIC	??_GCBt8x8GPIOAudioDecoder@@UAEPAXI@Z		; CBt8x8GPIOAudioDecoder::`scalar deleting destructor'
PUBLIC	??_7CBt8x8GPIOAudioDecoder@@6B@			; CBt8x8GPIOAudioDecoder::`vftable'
EXTRN	??_ECBt8x8GPIOAudioDecoder@@UAEPAXI@Z:PROC	; CBt8x8GPIOAudioDecoder::`vector deleting destructor'
;	COMDAT ??_7CBt8x8GPIOAudioDecoder@@6B@
CONST	SEGMENT
??_7CBt8x8GPIOAudioDecoder@@6B@ DD FLAT:??_R4CBt8x8GPIOAudioDecoder@@6B@ ; CBt8x8GPIOAudioDecoder::`vftable'
	DD	FLAT:??_ECBt8x8GPIOAudioDecoder@@UAEPAXI@Z
	DD	FLAT:?OnEvent@CEventObject@@UAEXPAV1@W4eEventType@@JJPAW42@@Z
	DD	FLAT:?SetSoundChannel@CBt8x8GPIOAudioDecoder@@UAEXW4eSoundChannel@@@Z
	DD	FLAT:?GetSoundChannel@CAudioDecoder@@UAE?AW4eSoundChannel@@XZ
	DD	FLAT:?IsAudioChannelDetected@CAudioDecoder@@UAE?AW4eSoundChannel@@W42@@Z
	DD	FLAT:?SetAudioInput@CAudioDecoder@@UAEXW4eAudioInput@@@Z
	DD	FLAT:?GetAudioInput@CAudioDecoder@@UAE?AW4eAudioInput@@XZ
	DD	FLAT:?GetAudioInputName@CAudioDecoder@@UAEPB_WW4eAudioInput@@@Z
	DD	FLAT:?SetAudioStandard@CAudioDecoder@@UAEXJW4eVideoFormat@@@Z
	DD	FLAT:?GetAudioStandardCurrent@CAudioDecoder@@UAEJXZ
	DD	FLAT:?GetAudioStandardName@CAudioDecoder@@UAEPB_WJ@Z
	DD	FLAT:?GetNumAudioStandards@CAudioDecoder@@UAEHXZ
	DD	FLAT:?GetAudioStandard@CAudioDecoder@@UAEJH@Z
	DD	FLAT:?GetAudioStandardMajorCarrier@CAudioDecoder@@UAEJJ@Z
	DD	FLAT:?GetAudioStandardMinorCarrier@CAudioDecoder@@UAEJJ@Z
	DD	FLAT:?SetAudioStandardCarriers@CAudioDecoder@@UAEXJJ@Z
	DD	FLAT:?GetAudioStandardFromVideoFormat@CAudioDecoder@@UAEJW4eVideoFormat@@@Z
	DD	FLAT:?DetectAudioStandard@CAudioDecoder@@UAEXJHW4eSoundChannel@@@Z
	DD	FLAT:?GetAudioDecoderType@CAudioDecoder@@UAE?AW4eAudioDecoderType@1@XZ
	DD	FLAT:?SetAudioDecoderValue@CAudioDecoder@@UAEHHJ@Z
	DD	FLAT:?GetAudioDecoderValue@CAudioDecoder@@UAEJH@Z
CONST	ENDS
;	COMDAT ??_R4CBt8x8GPIOAudioDecoder@@6B@
rdata$r	SEGMENT
??_R4CBt8x8GPIOAudioDecoder@@6B@ DD 00H			; CBt8x8GPIOAudioDecoder::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVCBt8x8GPIOAudioDecoder@@@8
	DD	FLAT:??_R3CBt8x8GPIOAudioDecoder@@8
PUBLIC	??0CBt8x8GPIOAudioDecoder@@QAE@PAVCPCICard@@KKKK@Z ; CBt8x8GPIOAudioDecoder::CBt8x8GPIOAudioDecoder
;	COMDAT xdata$x
; File c:\develop\dscaler423a\dscaler\bt8x8gpioaudiodecoder.cpp
xdata$x	SEGMENT
__unwindtable$??0CBt8x8GPIOAudioDecoder@@QAE@PAVCPCICard@@KKKK@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0CBt8x8GPIOAudioDecoder@@QAE@PAVCPCICard@@KKKK@Z$0
__ehfuncinfo$??0CBt8x8GPIOAudioDecoder@@QAE@PAVCPCICard@@KKKK@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0CBt8x8GPIOAudioDecoder@@QAE@PAVCPCICard@@KKKK@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??0CBt8x8GPIOAudioDecoder@@QAE@PAVCPCICard@@KKKK@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_pPCICard$ = 8						; size = 4
_dwGPOE$ = 12						; size = 4
_dwStereo$ = 16						; size = 4
_dwMono$ = 20						; size = 4
_dwLang1$ = 24						; size = 4
??0CBt8x8GPIOAudioDecoder@@QAE@PAVCPCICard@@KKKK@Z PROC	; CBt8x8GPIOAudioDecoder::CBt8x8GPIOAudioDecoder, 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$??0CBt8x8GPIOAudioDecoder@@QAE@PAVCPCICard@@KKKK@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	 ??0CAudioDecoder@@QAE@XZ ; CAudioDecoder::CAudioDecoder
  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 ??_7CBt8x8GPIOAudioDecoder@@6B@
  0003e	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00041	8b 55 08	 mov	 edx, DWORD PTR _pPCICard$[ebp]
  00044	89 51 20	 mov	 DWORD PTR [ecx+32], edx
  00047	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  0004a	8b 4d 0c	 mov	 ecx, DWORD PTR _dwGPOE$[ebp]
  0004d	89 48 24	 mov	 DWORD PTR [eax+36], ecx
  00050	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00053	8b 45 14	 mov	 eax, DWORD PTR _dwMono$[ebp]
  00056	89 42 28	 mov	 DWORD PTR [edx+40], eax
  00059	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0005c	8b 55 10	 mov	 edx, DWORD PTR _dwStereo$[ebp]
  0005f	89 51 2c	 mov	 DWORD PTR [ecx+44], edx
  00062	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00065	8b 4d 18	 mov	 ecx, DWORD PTR _dwLang1$[ebp]
  00068	89 48 30	 mov	 DWORD PTR [eax+48], ecx

; 46   : }

  0006b	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00072	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00075	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00078	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0007f	59		 pop	 ecx
  00080	8b e5		 mov	 esp, ebp
  00082	5d		 pop	 ebp
  00083	c2 14 00	 ret	 20			; 00000014H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0CBt8x8GPIOAudioDecoder@@QAE@PAVCPCICard@@KKKK@Z$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1CAudioDecoder@@UAE@XZ ; CAudioDecoder::~CAudioDecoder
__ehhandler$??0CBt8x8GPIOAudioDecoder@@QAE@PAVCPCICard@@KKKK@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$??0CBt8x8GPIOAudioDecoder@@QAE@PAVCPCICard@@KKKK@Z
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??0CBt8x8GPIOAudioDecoder@@QAE@PAVCPCICard@@KKKK@Z ENDP	; CBt8x8GPIOAudioDecoder::CBt8x8GPIOAudioDecoder
; Function compile flags: /Odtp
;	COMDAT ??_GCBt8x8GPIOAudioDecoder@@UAEPAXI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___flags$ = 8						; size = 4
??_GCBt8x8GPIOAudioDecoder@@UAEPAXI@Z PROC		; CBt8x8GPIOAudioDecoder::`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	 ??1CBt8x8GPIOAudioDecoder@@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@417
  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@417:
  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
??_GCBt8x8GPIOAudioDecoder@@UAEPAXI@Z ENDP		; CBt8x8GPIOAudioDecoder::`scalar deleting destructor'
; Function compile flags: /Odtp
;	COMDAT ?SetSoundChannel@CBt8x8GPIOAudioDecoder@@UAEXW4eSoundChannel@@@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_con$ = -4						; size = 4
_soundChannel$ = 8					; size = 4
?SetSoundChannel@CBt8x8GPIOAudioDecoder@@UAEXW4eSoundChannel@@@Z PROC ; CBt8x8GPIOAudioDecoder::SetSoundChannel, COMDAT
; _this$ = ecx

; 49   : {

  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

; 50   :     DWORD con;
; 51   : 
; 52   :     if (soundChannel == SOUNDCHANNEL_LANGUAGE1)

  00009	83 7d 08 03	 cmp	 DWORD PTR _soundChannel$[ebp], 3
  0000d	75 0b		 jne	 SHORT $LN4@SetSoundCh@5

; 53   :     {
; 54   :         con = m_GPDATA_Lang1;

  0000f	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00012	8b 48 30	 mov	 ecx, DWORD PTR [eax+48]
  00015	89 4d fc	 mov	 DWORD PTR _con$[ebp], ecx
  00018	eb 1a		 jmp	 SHORT $LN3@SetSoundCh@5
$LN4@SetSoundCh@5:

; 55   :     }
; 56   :     else if (soundChannel == SOUNDCHANNEL_STEREO)

  0001a	83 7d 08 02	 cmp	 DWORD PTR _soundChannel$[ebp], 2
  0001e	75 0b		 jne	 SHORT $LN2@SetSoundCh@5

; 57   :     {
; 58   :         con = m_GPDATA_Stereo;

  00020	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00023	8b 42 2c	 mov	 eax, DWORD PTR [edx+44]
  00026	89 45 fc	 mov	 DWORD PTR _con$[ebp], eax

; 59   :     } else

  00029	eb 09		 jmp	 SHORT $LN3@SetSoundCh@5
$LN2@SetSoundCh@5:

; 60   :     {
; 61   :         con = m_GPDATA_Mono;

  0002b	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0002e	8b 51 28	 mov	 edx, DWORD PTR [ecx+40]
  00031	89 55 fc	 mov	 DWORD PTR _con$[ebp], edx
$LN3@SetSoundCh@5:

; 62   :     }
; 63   : 
; 64   :     m_pPCICard->OrDataDword(BT848_GPIO_DATA, m_GPOE);

  00034	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00037	8b 48 24	 mov	 ecx, DWORD PTR [eax+36]
  0003a	51		 push	 ecx
  0003b	68 00 02 00 00	 push	 512			; 00000200H
  00040	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00043	8b 4a 20	 mov	 ecx, DWORD PTR [edx+32]
  00046	e8 00 00 00 00	 call	 ?OrDataDword@CPCICard@@QAEXKK@Z ; CPCICard::OrDataDword

; 65   :     m_pPCICard->AndOrDataDword(BT848_GPIO_DATA, con, ~m_GPOE);

  0004b	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0004e	8b 48 24	 mov	 ecx, DWORD PTR [eax+36]
  00051	f7 d1		 not	 ecx
  00053	51		 push	 ecx
  00054	8b 55 fc	 mov	 edx, DWORD PTR _con$[ebp]
  00057	52		 push	 edx
  00058	68 00 02 00 00	 push	 512			; 00000200H
  0005d	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00060	8b 48 20	 mov	 ecx, DWORD PTR [eax+32]
  00063	e8 00 00 00 00	 call	 ?AndOrDataDword@CPCICard@@QAEXKKK@Z ; CPCICard::AndOrDataDword

; 66   : }

  00068	8b e5		 mov	 esp, ebp
  0006a	5d		 pop	 ebp
  0006b	c2 04 00	 ret	 4
?SetSoundChannel@CBt8x8GPIOAudioDecoder@@UAEXW4eSoundChannel@@@Z ENDP ; CBt8x8GPIOAudioDecoder::SetSoundChannel
END
