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

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

INCLUDELIB OLDNAMES

PUBLIC	?GetDefaultAddress@CPIC16C54@@UBEEXZ		; CPIC16C54::GetDefaultAddress
PUBLIC	??_R4CPIC16C54@@6B@				; CPIC16C54::`RTTI Complete Object Locator'
PUBLIC	??_R3CPIC16C54@@8				; CPIC16C54::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2CPIC16C54@@8				; CPIC16C54::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@CPIC16C54@@8			; CPIC16C54::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVCPIC16C54@@@8				; CPIC16C54 `RTTI Type Descriptor'
PUBLIC	??_GCPIC16C54@@UAEPAXI@Z			; CPIC16C54::`scalar deleting destructor'
PUBLIC	??_7CPIC16C54@@6B@				; CPIC16C54::`vftable'
EXTRN	??_ECPIC16C54@@UAEPAXI@Z:PROC			; CPIC16C54::`vector deleting destructor'
;	COMDAT ??_7CPIC16C54@@6B@
CONST	SEGMENT
??_7CPIC16C54@@6B@ DD FLAT:??_R4CPIC16C54@@6B@		; CPIC16C54::`vftable'
	DD	FLAT:??_ECPIC16C54@@UAEPAXI@Z
	DD	FLAT:?GetDefaultAddress@CPIC16C54@@UBEEXZ
CONST	ENDS
;	COMDAT ??_R4CPIC16C54@@6B@
rdata$r	SEGMENT
??_R4CPIC16C54@@6B@ DD 00H				; CPIC16C54::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVCPIC16C54@@@8
	DD	FLAT:??_R3CPIC16C54@@8
rdata$r	ENDS
;	COMDAT ??_R3CPIC16C54@@8
rdata$r	SEGMENT
??_R3CPIC16C54@@8 DD 00H				; CPIC16C54::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2CPIC16C54@@8
rdata$r	ENDS
;	COMDAT ??_R2CPIC16C54@@8
rdata$r	SEGMENT
??_R2CPIC16C54@@8 DD FLAT:??_R1A@?0A@EA@CPIC16C54@@8	; CPIC16C54::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@CI2CDevice@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@CPIC16C54@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@CPIC16C54@@8 DD FLAT:??_R0?AVCPIC16C54@@@8 ; CPIC16C54::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3CPIC16C54@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVCPIC16C54@@@8
_DATA	SEGMENT
??_R0?AVCPIC16C54@@@8 DD FLAT:??_7type_info@@6B@	; CPIC16C54 `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVCPIC16C54@@', 00H
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\pic16c54.cpp
;	COMDAT ?GetDefaultAddress@CPIC16C54@@UBEEXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetDefaultAddress@CPIC16C54@@UBEEXZ PROC		; CPIC16C54::GetDefaultAddress, COMDAT
; _this$ = ecx

; 46   : {

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

; 47   :     return I2C_PIC16C54 >> 1;

  00007	b0 4b		 mov	 al, 75			; 0000004bH

; 48   : }

  00009	8b e5		 mov	 esp, ebp
  0000b	5d		 pop	 ebp
  0000c	c3		 ret	 0
?GetDefaultAddress@CPIC16C54@@UBEEXZ ENDP		; CPIC16C54::GetDefaultAddress
PUBLIC	??1CPIC16C54@@UAE@XZ				; CPIC16C54::~CPIC16C54
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1CPIC16C54@@UAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1CPIC16C54@@UAE@XZ$0
__ehfuncinfo$??1CPIC16C54@@UAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1CPIC16C54@@UAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??1CPIC16C54@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1CPIC16C54@@UAE@XZ PROC				; CPIC16C54::~CPIC16C54, COMDAT
; _this$ = ecx

; 51   : {

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

; 52   : }

  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	e8 00 00 00 00	 call	 ??1CI2CDevice@@UAE@XZ	; CI2CDevice::~CI2CDevice
  00045	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00048	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0004f	59		 pop	 ecx
  00050	8b e5		 mov	 esp, ebp
  00052	5d		 pop	 ebp
  00053	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1CPIC16C54@@UAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1CI2CDevice@@UAE@XZ	; CI2CDevice::~CI2CDevice
__ehhandler$??1CPIC16C54@@UAE@XZ:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??1CPIC16C54@@UAE@XZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??1CPIC16C54@@UAE@XZ ENDP				; CPIC16C54::~CPIC16C54
PUBLIC	?IsDevicePresent@CPIC16C54@@QAEHXZ		; CPIC16C54::IsDevicePresent
; Function compile flags: /Odtp
;	COMDAT ?IsDevicePresent@CPIC16C54@@QAEHXZ
_TEXT	SEGMENT
_this$ = -8						; size = 4
_buffer$ = -1						; size = 1
?IsDevicePresent@CPIC16C54@@QAEHXZ PROC			; CPIC16C54::IsDevicePresent, COMDAT
; _this$ = ecx

; 39   : {

  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

; 40   :     // unmute and switch audio source to tuner
; 41   :     BYTE buffer = PIC16C54_MISC_SND_NOTMUTE | PIC16C54_MISC_SWITCH_TUNER;

  00009	c6 45 ff 60	 mov	 BYTE PTR _buffer$[ebp], 96 ; 00000060H

; 42   :     return CI2CDevice::WriteToSubAddress(PIC16C54_REG_MISC, &buffer, sizeof(buffer));

  0000d	6a 01		 push	 1
  0000f	8d 45 ff	 lea	 eax, DWORD PTR _buffer$[ebp]
  00012	50		 push	 eax
  00013	6a 02		 push	 2
  00015	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00018	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEPBEI@Z ; CI2CDevice::WriteToSubAddress

; 43   : }

  0001d	8b e5		 mov	 esp, ebp
  0001f	5d		 pop	 ebp
  00020	c3		 ret	 0
?IsDevicePresent@CPIC16C54@@QAEHXZ ENDP			; CPIC16C54::IsDevicePresent
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??_GCPIC16C54@@UAEPAXI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___flags$ = 8						; size = 4
??_GCPIC16C54@@UAEPAXI@Z PROC				; CPIC16C54::`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	 ??1CPIC16C54@@UAE@XZ	; CPIC16C54::~CPIC16C54
  0000f	8b 45 08	 mov	 eax, DWORD PTR ___flags$[ebp]
  00012	83 e0 01	 and	 eax, 1
  00015	74 0c		 je	 SHORT $LN1@scalar@36
  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@36:
  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
??_GCPIC16C54@@UAEPAXI@Z ENDP				; CPIC16C54::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??0CPIC16C54@@QAE@XZ				; CPIC16C54::CPIC16C54
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0CPIC16C54@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0CPIC16C54@@QAE@XZ$0
__ehfuncinfo$??0CPIC16C54@@QAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0CPIC16C54@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??0CPIC16C54@@QAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??0CPIC16C54@@QAE@XZ PROC				; CPIC16C54::CPIC16C54, COMDAT
; _this$ = ecx

; 35   : {

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

; 36   : }

  0003e	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00045	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00048	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0004b	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00052	59		 pop	 ecx
  00053	8b e5		 mov	 esp, ebp
  00055	5d		 pop	 ebp
  00056	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0CPIC16C54@@QAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1CI2CDevice@@UAE@XZ	; CI2CDevice::~CI2CDevice
__ehhandler$??0CPIC16C54@@QAE@XZ:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??0CPIC16C54@@QAE@XZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??0CPIC16C54@@QAE@XZ ENDP				; CPIC16C54::CPIC16C54
END
