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

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

INCLUDELIB OLDNAMES

PUBLIC	?GetBalanceMinMax@CDShowGenericAudioControls@@UAEXAAJ0@Z ; CDShowGenericAudioControls::GetBalanceMinMax
PUBLIC	?SetBalance@CDShowGenericAudioControls@@UAEXJ@Z	; CDShowGenericAudioControls::SetBalance
PUBLIC	?GetBalance@CDShowGenericAudioControls@@UAEJXZ	; CDShowGenericAudioControls::GetBalance
PUBLIC	?GetVolumeMinMax@CDShowGenericAudioControls@@UAEXAAJ0@Z ; CDShowGenericAudioControls::GetVolumeMinMax
PUBLIC	?SetVolume@CDShowGenericAudioControls@@UAEXJ@Z	; CDShowGenericAudioControls::SetVolume
PUBLIC	?GetVolume@CDShowGenericAudioControls@@UAEJXZ	; CDShowGenericAudioControls::GetVolume
PUBLIC	?GetAudioCaps@CDShowGenericAudioControls@@UAEHXZ ; CDShowGenericAudioControls::GetAudioCaps
PUBLIC	??_R4CDShowGenericAudioControls@@6B@		; CDShowGenericAudioControls::`RTTI Complete Object Locator'
PUBLIC	??_R3CDShowGenericAudioControls@@8		; CDShowGenericAudioControls::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2CDShowGenericAudioControls@@8		; CDShowGenericAudioControls::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@CDShowGenericAudioControls@@8	; CDShowGenericAudioControls::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVCDShowGenericAudioControls@@@8		; CDShowGenericAudioControls `RTTI Type Descriptor'
PUBLIC	??_GCDShowGenericAudioControls@@UAEPAXI@Z	; CDShowGenericAudioControls::`scalar deleting destructor'
PUBLIC	??B?$CComPtr@UIBasicAudio@@@ATL@@QBEPAUIBasicAudio@@XZ ; ATL::CComPtr<IBasicAudio>::operator IBasicAudio *
PUBLIC	??C?$CComPtr@UIBasicAudio@@@ATL@@QBEPAV?$_NoAddRefReleaseOnCComPtr@UIBasicAudio@@@1@XZ ; ATL::CComPtr<IBasicAudio>::operator->
PUBLIC	??8?$CComPtr@UIBasicAudio@@@ATL@@QBE_NPAUIBasicAudio@@@Z ; ATL::CComPtr<IBasicAudio>::operator==
PUBLIC	??_C@_0BC@NGGBLHPP@get_Volume?5failed?$AA@	; `string'
PUBLIC	??_C@_0BC@OLNHIPO@put_Volume?5failed?$AA@	; `string'
PUBLIC	??_C@_0BD@FEALNEPM@get_Balance?5failed?$AA@	; `string'
PUBLIC	??_C@_0BD@CDNEDIKF@put_Balance?5failed?$AA@	; `string'
PUBLIC	??_7CDShowGenericAudioControls@@6B@		; CDShowGenericAudioControls::`vftable'
EXTRN	??_ECDShowGenericAudioControls@@UAEPAXI@Z:PROC	; CDShowGenericAudioControls::`vector deleting destructor'
;	COMDAT ??_7CDShowGenericAudioControls@@6B@
CONST	SEGMENT
??_7CDShowGenericAudioControls@@6B@ DD FLAT:??_R4CDShowGenericAudioControls@@6B@ ; CDShowGenericAudioControls::`vftable'
	DD	FLAT:??_ECDShowGenericAudioControls@@UAEPAXI@Z
	DD	FLAT:?GetAudioCaps@CDShowGenericAudioControls@@UAEHXZ
	DD	FLAT:?GetVolume@CDShowGenericAudioControls@@UAEJXZ
	DD	FLAT:?SetVolume@CDShowGenericAudioControls@@UAEXJ@Z
	DD	FLAT:?GetVolumeMinMax@CDShowGenericAudioControls@@UAEXAAJ0@Z
	DD	FLAT:?GetBalance@CDShowGenericAudioControls@@UAEJXZ
	DD	FLAT:?SetBalance@CDShowGenericAudioControls@@UAEXJ@Z
	DD	FLAT:?GetBalanceMinMax@CDShowGenericAudioControls@@UAEXAAJ0@Z
CONST	ENDS
;	COMDAT ??_R4CDShowGenericAudioControls@@6B@
rdata$r	SEGMENT
??_R4CDShowGenericAudioControls@@6B@ DD 00H		; CDShowGenericAudioControls::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVCDShowGenericAudioControls@@@8
	DD	FLAT:??_R3CDShowGenericAudioControls@@8
rdata$r	ENDS
;	COMDAT ??_R3CDShowGenericAudioControls@@8
rdata$r	SEGMENT
??_R3CDShowGenericAudioControls@@8 DD 00H		; CDShowGenericAudioControls::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2CDShowGenericAudioControls@@8
rdata$r	ENDS
;	COMDAT ??_R2CDShowGenericAudioControls@@8
rdata$r	SEGMENT
??_R2CDShowGenericAudioControls@@8 DD FLAT:??_R1A@?0A@EA@CDShowGenericAudioControls@@8 ; CDShowGenericAudioControls::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@CDShowAudioControls@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@CDShowGenericAudioControls@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@CDShowGenericAudioControls@@8 DD FLAT:??_R0?AVCDShowGenericAudioControls@@@8 ; CDShowGenericAudioControls::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3CDShowGenericAudioControls@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVCDShowGenericAudioControls@@@8
_DATA	SEGMENT
??_R0?AVCDShowGenericAudioControls@@@8 DD FLAT:??_7type_info@@6B@ ; CDShowGenericAudioControls `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVCDShowGenericAudioControls@@', 00H
_DATA	ENDS
;	COMDAT ??_C@_0BD@CDNEDIKF@put_Balance?5failed?$AA@
CONST	SEGMENT
??_C@_0BD@CDNEDIKF@put_Balance?5failed?$AA@ DB 'put_Balance failed', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BD@FEALNEPM@get_Balance?5failed?$AA@
CONST	SEGMENT
??_C@_0BD@FEALNEPM@get_Balance?5failed?$AA@ DB 'get_Balance failed', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BC@OLNHIPO@put_Volume?5failed?$AA@
CONST	SEGMENT
??_C@_0BC@OLNHIPO@put_Volume?5failed?$AA@ DB 'put_Volume failed', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BC@NGGBLHPP@get_Volume?5failed?$AA@
CONST	SEGMENT
??_C@_0BC@NGGBLHPP@get_Volume?5failed?$AA@ DB 'get_Volume failed', 00H ; `string'
; Function compile flags: /Odtp
; File c:\tools\winddk\3790.1830\inc\atl30\atlbase.h
;	COMDAT ??8?$CComPtr@UIBasicAudio@@@ATL@@QBE_NPAUIBasicAudio@@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_pT$ = 8						; size = 4
??8?$CComPtr@UIBasicAudio@@@ATL@@QBE_NPAUIBasicAudio@@@Z PROC ; ATL::CComPtr<IBasicAudio>::operator==, COMDAT
; _this$ = ecx

; 736  :         {

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

; 737  :                 return p == pT;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 08		 mov	 ecx, DWORD PTR [eax]
  0000c	33 c0		 xor	 eax, eax
  0000e	3b 4d 08	 cmp	 ecx, DWORD PTR _pT$[ebp]
  00011	0f 94 c0	 sete	 al

; 738  :         }

  00014	8b e5		 mov	 esp, ebp
  00016	5d		 pop	 ebp
  00017	c2 04 00	 ret	 4
??8?$CComPtr@UIBasicAudio@@@ATL@@QBE_NPAUIBasicAudio@@@Z ENDP ; ATL::CComPtr<IBasicAudio>::operator==
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??C?$CComPtr@UIBasicAudio@@@ATL@@QBEPAV?$_NoAddRefReleaseOnCComPtr@UIBasicAudio@@@1@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??C?$CComPtr@UIBasicAudio@@@ATL@@QBEPAV?$_NoAddRefReleaseOnCComPtr@UIBasicAudio@@@1@XZ PROC ; ATL::CComPtr<IBasicAudio>::operator->, COMDAT
; _this$ = ecx

; 715  :         {

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

; 716  :                 ATLASSERT(p!=NULL);
; 717  :                 return (_NoAddRefReleaseOnCComPtr<T>*)p;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 00		 mov	 eax, DWORD PTR [eax]

; 718  :         }

  0000c	8b e5		 mov	 esp, ebp
  0000e	5d		 pop	 ebp
  0000f	c3		 ret	 0
??C?$CComPtr@UIBasicAudio@@@ATL@@QBEPAV?$_NoAddRefReleaseOnCComPtr@UIBasicAudio@@@1@XZ ENDP ; ATL::CComPtr<IBasicAudio>::operator->
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??B?$CComPtr@UIBasicAudio@@@ATL@@QBEPAUIBasicAudio@@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??B?$CComPtr@UIBasicAudio@@@ATL@@QBEPAUIBasicAudio@@XZ PROC ; ATL::CComPtr<IBasicAudio>::operator IBasicAudio *, COMDAT
; _this$ = ecx

; 699  :         {

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

; 700  :                 return (T*)p;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 00		 mov	 eax, DWORD PTR [eax]

; 701  :         }

  0000c	8b e5		 mov	 esp, ebp
  0000e	5d		 pop	 ebp
  0000f	c3		 ret	 0
??B?$CComPtr@UIBasicAudio@@@ATL@@QBEPAUIBasicAudio@@XZ ENDP ; ATL::CComPtr<IBasicAudio>::operator IBasicAudio *
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\dshowsource\dshowgenericaudiocontrols.cpp
_TEXT	ENDS
;	COMDAT ?GetBalanceMinMax@CDShowGenericAudioControls@@UAEXAAJ0@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_min$ = 8						; size = 4
_max$ = 12						; size = 4
?GetBalanceMinMax@CDShowGenericAudioControls@@UAEXAAJ0@Z PROC ; CDShowGenericAudioControls::GetBalanceMinMax, COMDAT
; _this$ = ecx

; 127  : {

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

; 128  :     min=-10000/100;

  00007	8b 45 08	 mov	 eax, DWORD PTR _min$[ebp]
  0000a	c7 00 9c ff ff
	ff		 mov	 DWORD PTR [eax], -100	; ffffff9cH

; 129  :     max=10000/100;

  00010	8b 4d 0c	 mov	 ecx, DWORD PTR _max$[ebp]
  00013	c7 01 64 00 00
	00		 mov	 DWORD PTR [ecx], 100	; 00000064H

; 130  : }

  00019	8b e5		 mov	 esp, ebp
  0001b	5d		 pop	 ebp
  0001c	c2 08 00	 ret	 8
?GetBalanceMinMax@CDShowGenericAudioControls@@UAEXAAJ0@Z ENDP ; CDShowGenericAudioControls::GetBalanceMinMax
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?GetVolumeMinMax@CDShowGenericAudioControls@@UAEXAAJ0@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_min$ = 8						; size = 4
_max$ = 12						; size = 4
?GetVolumeMinMax@CDShowGenericAudioControls@@UAEXAAJ0@Z PROC ; CDShowGenericAudioControls::GetVolumeMinMax, COMDAT
; _this$ = ecx

; 92   : {

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

; 93   :     max=0;

  00007	8b 45 0c	 mov	 eax, DWORD PTR _max$[ebp]
  0000a	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], 0

; 94   :     min=-10000/100;

  00010	8b 4d 08	 mov	 ecx, DWORD PTR _min$[ebp]
  00013	c7 01 9c ff ff
	ff		 mov	 DWORD PTR [ecx], -100	; ffffff9cH

; 95   : }

  00019	8b e5		 mov	 esp, ebp
  0001b	5d		 pop	 ebp
  0001c	c2 08 00	 ret	 8
?GetVolumeMinMax@CDShowGenericAudioControls@@UAEXAAJ0@Z ENDP ; CDShowGenericAudioControls::GetVolumeMinMax
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?GetAudioCaps@CDShowGenericAudioControls@@UAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetAudioCaps@CDShowGenericAudioControls@@UAEHXZ PROC	; CDShowGenericAudioControls::GetAudioCaps, COMDAT
; _this$ = ecx

; 43   : {

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

; 44   :     if(m_pAudio!=NULL)

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	83 c1 04	 add	 ecx, 4
  0000d	e8 00 00 00 00	 call	 ??B?$CComPtr@UIBasicAudio@@@ATL@@QBEPAUIBasicAudio@@XZ ; ATL::CComPtr<IBasicAudio>::operator IBasicAudio *
  00012	85 c0		 test	 eax, eax
  00014	74 09		 je	 SHORT $LN2@GetAudioCa

; 45   :     {
; 46   :         return DSHOW_AUDIOCAPS_HAS_VOLUME|DSHOW_AUDIOCAPS_HAS_BALANCE;

  00016	b8 03 00 00 00	 mov	 eax, 3
  0001b	eb 04		 jmp	 SHORT $LN3@GetAudioCa

; 47   :     }
; 48   :     else

  0001d	eb 02		 jmp	 SHORT $LN3@GetAudioCa
$LN2@GetAudioCa:

; 49   :     {
; 50   :         return 0;

  0001f	33 c0		 xor	 eax, eax
$LN3@GetAudioCa:

; 51   :     }
; 52   : }

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

; 38   : {

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

; 39   : 
; 40   : }

  00036	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  0003a	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0003d	83 c1 04	 add	 ecx, 4
  00040	e8 00 00 00 00	 call	 ??1?$CComPtr@UIBasicAudio@@@ATL@@QAE@XZ ; ATL::CComPtr<IBasicAudio>::~CComPtr<IBasicAudio>
  00045	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0004c	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0004f	e8 00 00 00 00	 call	 ??1CDShowAudioControls@@UAE@XZ ; CDShowAudioControls::~CDShowAudioControls
  00054	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00057	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0005e	59		 pop	 ecx
  0005f	8b e5		 mov	 esp, ebp
  00061	5d		 pop	 ebp
  00062	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1CDShowGenericAudioControls@@UAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1CDShowAudioControls@@UAE@XZ ; CDShowAudioControls::~CDShowAudioControls
__unwindfunclet$??1CDShowGenericAudioControls@@UAE@XZ$1:
  00008	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0000b	83 c1 04	 add	 ecx, 4
  0000e	e9 00 00 00 00	 jmp	 ??1?$CComPtr@UIBasicAudio@@@ATL@@QAE@XZ ; ATL::CComPtr<IBasicAudio>::~CComPtr<IBasicAudio>
__ehhandler$??1CDShowGenericAudioControls@@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$??1CDShowGenericAudioControls@@UAE@XZ
  00029	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??1CDShowGenericAudioControls@@UAE@XZ ENDP		; CDShowGenericAudioControls::~CDShowGenericAudioControls
; Function compile flags: /Odtp
;	COMDAT ??_GCDShowGenericAudioControls@@UAEPAXI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___flags$ = 8						; size = 4
??_GCDShowGenericAudioControls@@UAEPAXI@Z PROC		; CDShowGenericAudioControls::`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	 ??1CDShowGenericAudioControls@@UAE@XZ ; CDShowGenericAudioControls::~CDShowGenericAudioControls
  0000f	8b 45 08	 mov	 eax, DWORD PTR ___flags$[ebp]
  00012	83 e0 01	 and	 eax, 1
  00015	74 0c		 je	 SHORT $LN1@scalar@55
  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@55:
  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
??_GCDShowGenericAudioControls@@UAEPAXI@Z ENDP		; CDShowGenericAudioControls::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??0CDShowGenericAudioControls@@QAE@V?$CComPtr@UIBasicAudio@@@ATL@@@Z ; CDShowGenericAudioControls::CDShowGenericAudioControls
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0CDShowGenericAudioControls@@QAE@V?$CComPtr@UIBasicAudio@@@ATL@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0CDShowGenericAudioControls@@QAE@V?$CComPtr@UIBasicAudio@@@ATL@@@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$??0CDShowGenericAudioControls@@QAE@V?$CComPtr@UIBasicAudio@@@ATL@@@Z$1
	DD	01H
	DD	FLAT:__unwindfunclet$??0CDShowGenericAudioControls@@QAE@V?$CComPtr@UIBasicAudio@@@ATL@@@Z$2
__ehfuncinfo$??0CDShowGenericAudioControls@@QAE@V?$CComPtr@UIBasicAudio@@@ATL@@@Z DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$??0CDShowGenericAudioControls@@QAE@V?$CComPtr@UIBasicAudio@@@ATL@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??0CDShowGenericAudioControls@@QAE@V?$CComPtr@UIBasicAudio@@@ATL@@@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_pAudio$ = 8						; size = 4
??0CDShowGenericAudioControls@@QAE@V?$CComPtr@UIBasicAudio@@@ATL@@@Z PROC ; CDShowGenericAudioControls::CDShowGenericAudioControls, COMDAT
; _this$ = ecx

; 33   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??0CDShowGenericAudioControls@@QAE@V?$CComPtr@UIBasicAudio@@@ATL@@@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
  0002d	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00030	e8 00 00 00 00	 call	 ??0CDShowAudioControls@@QAE@XZ ; CDShowAudioControls::CDShowAudioControls
  00035	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00039	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  0003c	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], OFFSET ??_7CDShowGenericAudioControls@@6B@
  00042	8d 4d 08	 lea	 ecx, DWORD PTR _pAudio$[ebp]
  00045	51		 push	 ecx
  00046	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00049	83 c1 04	 add	 ecx, 4
  0004c	e8 00 00 00 00	 call	 ??0?$CComPtr@UIBasicAudio@@@ATL@@QAE@ABV01@@Z ; ATL::CComPtr<IBasicAudio>::CComPtr<IBasicAudio>
  00051	c6 45 fc 02	 mov	 BYTE PTR __$EHRec$[ebp+8], 2

; 34   :     _ASSERTE(pAudio!=NULL);
; 35   : }

  00055	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0005c	8d 4d 08	 lea	 ecx, DWORD PTR _pAudio$[ebp]
  0005f	e8 00 00 00 00	 call	 ??1?$CComPtr@UIBasicAudio@@@ATL@@QAE@XZ ; ATL::CComPtr<IBasicAudio>::~CComPtr<IBasicAudio>
  00064	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00067	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0006a	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00071	59		 pop	 ecx
  00072	8b e5		 mov	 esp, ebp
  00074	5d		 pop	 ebp
  00075	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0CDShowGenericAudioControls@@QAE@V?$CComPtr@UIBasicAudio@@@ATL@@@Z$0:
  00000	8d 4d 08	 lea	 ecx, DWORD PTR _pAudio$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$CComPtr@UIBasicAudio@@@ATL@@QAE@XZ ; ATL::CComPtr<IBasicAudio>::~CComPtr<IBasicAudio>
__unwindfunclet$??0CDShowGenericAudioControls@@QAE@V?$CComPtr@UIBasicAudio@@@ATL@@@Z$1:
  00008	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0000b	e9 00 00 00 00	 jmp	 ??1CDShowAudioControls@@UAE@XZ ; CDShowAudioControls::~CDShowAudioControls
__unwindfunclet$??0CDShowGenericAudioControls@@QAE@V?$CComPtr@UIBasicAudio@@@ATL@@@Z$2:
  00010	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	83 c1 04	 add	 ecx, 4
  00016	e9 00 00 00 00	 jmp	 ??1?$CComPtr@UIBasicAudio@@@ATL@@QAE@XZ ; ATL::CComPtr<IBasicAudio>::~CComPtr<IBasicAudio>
__ehhandler$??0CDShowGenericAudioControls@@QAE@V?$CComPtr@UIBasicAudio@@@ATL@@@Z:
  0001b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0001f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00022	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  00025	33 c8		 xor	 ecx, eax
  00027	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??0CDShowGenericAudioControls@@QAE@V?$CComPtr@UIBasicAudio@@@ATL@@@Z
  00031	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??0CDShowGenericAudioControls@@QAE@V?$CComPtr@UIBasicAudio@@@ATL@@@Z ENDP ; CDShowGenericAudioControls::CDShowGenericAudioControls
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?SetBalance@CDShowGenericAudioControls@@UAEXJ@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?SetBalance@CDShowGenericAudioControls@@UAEXJ@Z$0
__ehfuncinfo$?SetBalance@CDShowGenericAudioControls@@UAEXJ@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?SetBalance@CDShowGenericAudioControls@@UAEXJ@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?SetBalance@CDShowGenericAudioControls@@UAEXJ@Z
_TEXT	SEGMENT
tv78 = -96						; size = 4
_this$ = -92						; size = 4
$T333522 = -88						; size = 28
$T333521 = -60						; size = 44
_hr$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_balance$ = 8						; size = 4
?SetBalance@CDShowGenericAudioControls@@UAEXJ@Z PROC	; CDShowGenericAudioControls::SetBalance, COMDAT
; _this$ = ecx

; 113  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?SetBalance@CDShowGenericAudioControls@@UAEXJ@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 54	 sub	 esp, 84			; 00000054H
  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 a4	 mov	 DWORD PTR _this$[ebp], ecx

; 114  :     _ASSERTE((balance/100)<=10000 && (balance/100)>=-10000);
; 115  :     if(m_pAudio==NULL)

  00028	6a 00		 push	 0
  0002a	8b 4d a4	 mov	 ecx, DWORD PTR _this$[ebp]
  0002d	83 c1 04	 add	 ecx, 4
  00030	e8 00 00 00 00	 call	 ??8?$CComPtr@UIBasicAudio@@@ATL@@QBE_NPAUIBasicAudio@@@Z ; ATL::CComPtr<IBasicAudio>::operator==
  00035	0f b6 c0	 movzx	 eax, al
  00038	85 c0		 test	 eax, eax
  0003a	74 02		 je	 SHORT $LN2@SetBalance@2

; 116  :     {
; 117  :         return;

  0003c	eb 6d		 jmp	 SHORT $LN4@SetBalance@2
$LN2@SetBalance@2:

; 118  :     }
; 119  :     HRESULT hr=m_pAudio->put_Balance(balance*100);

  0003e	8b 4d a4	 mov	 ecx, DWORD PTR _this$[ebp]
  00041	83 c1 04	 add	 ecx, 4
  00044	e8 00 00 00 00	 call	 ??C?$CComPtr@UIBasicAudio@@@ATL@@QBEPAV?$_NoAddRefReleaseOnCComPtr@UIBasicAudio@@@1@XZ ; ATL::CComPtr<IBasicAudio>::operator->
  00049	89 45 a0	 mov	 DWORD PTR tv78[ebp], eax
  0004c	8b 4d 08	 mov	 ecx, DWORD PTR _balance$[ebp]
  0004f	6b c9 64	 imul	 ecx, 100		; 00000064H
  00052	51		 push	 ecx
  00053	8b 55 a0	 mov	 edx, DWORD PTR tv78[ebp]
  00056	52		 push	 edx
  00057	8b 45 a0	 mov	 eax, DWORD PTR tv78[ebp]
  0005a	8b 08		 mov	 ecx, DWORD PTR [eax]
  0005c	8b 51 24	 mov	 edx, DWORD PTR [ecx+36]
  0005f	ff d2		 call	 edx
  00061	89 45 f0	 mov	 DWORD PTR _hr$[ebp], eax

; 120  :     if(FAILED(hr))

  00064	83 7d f0 00	 cmp	 DWORD PTR _hr$[ebp], 0
  00068	7d 41		 jge	 SHORT $LN4@SetBalance@2

; 121  :     {
; 122  :         throw CDShowException("put_Balance failed",hr);

  0006a	68 00 00 00 00	 push	 OFFSET ??_C@_0BD@CDNEDIKF@put_Balance?5failed?$AA@
  0006f	8d 4d a8	 lea	 ecx, DWORD PTR $T333522[ebp]
  00072	e8 00 00 00 00	 call	 ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
  00077	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0007e	8b 45 f0	 mov	 eax, DWORD PTR _hr$[ebp]
  00081	50		 push	 eax
  00082	8d 4d a8	 lea	 ecx, DWORD PTR $T333522[ebp]
  00085	51		 push	 ecx
  00086	8d 4d c4	 lea	 ecx, DWORD PTR $T333521[ebp]
  00089	e8 00 00 00 00	 call	 ??0CDShowException@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@J@Z ; CDShowException::CDShowException
  0008e	68 00 00 00 00	 push	 OFFSET __TI3?AVCDShowException@@
  00093	8d 55 c4	 lea	 edx, DWORD PTR $T333521[ebp]
  00096	52		 push	 edx
  00097	e8 00 00 00 00	 call	 __CxxThrowException@8
  0009c	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  000a3	8d 4d a8	 lea	 ecx, DWORD PTR $T333522[ebp]
  000a6	e8 00 00 00 00	 call	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
$LN4@SetBalance@2:

; 123  :     }
; 124  : }

  000ab	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  000ae	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000b5	59		 pop	 ecx
  000b6	8b e5		 mov	 esp, ebp
  000b8	5d		 pop	 ebp
  000b9	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?SetBalance@CDShowGenericAudioControls@@UAEXJ@Z$0:
  00000	8d 4d a8	 lea	 ecx, DWORD PTR $T333522[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__ehhandler$?SetBalance@CDShowGenericAudioControls@@UAEXJ@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 a8	 mov	 ecx, DWORD PTR [edx-88]
  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$?SetBalance@CDShowGenericAudioControls@@UAEXJ@Z
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?SetBalance@CDShowGenericAudioControls@@UAEXJ@Z ENDP	; CDShowGenericAudioControls::SetBalance
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?GetBalance@CDShowGenericAudioControls@@UAEJXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?GetBalance@CDShowGenericAudioControls@@UAEJXZ$0
__ehfuncinfo$?GetBalance@CDShowGenericAudioControls@@UAEJXZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?GetBalance@CDShowGenericAudioControls@@UAEJXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?GetBalance@CDShowGenericAudioControls@@UAEJXZ
_TEXT	SEGMENT
tv78 = -100						; size = 4
_this$ = -96						; size = 4
$T333533 = -92						; size = 28
$T333532 = -64						; size = 44
_hr$ = -20						; size = 4
_balance$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
?GetBalance@CDShowGenericAudioControls@@UAEJXZ PROC	; CDShowGenericAudioControls::GetBalance, COMDAT
; _this$ = ecx

; 98   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?GetBalance@CDShowGenericAudioControls@@UAEJXZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 58	 sub	 esp, 88			; 00000058H
  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 a0	 mov	 DWORD PTR _this$[ebp], ecx

; 99   :     if(m_pAudio==NULL)

  00028	6a 00		 push	 0
  0002a	8b 4d a0	 mov	 ecx, DWORD PTR _this$[ebp]
  0002d	83 c1 04	 add	 ecx, 4
  00030	e8 00 00 00 00	 call	 ??8?$CComPtr@UIBasicAudio@@@ATL@@QBE_NPAUIBasicAudio@@@Z ; ATL::CComPtr<IBasicAudio>::operator==
  00035	0f b6 c0	 movzx	 eax, al
  00038	85 c0		 test	 eax, eax
  0003a	74 04		 je	 SHORT $LN2@GetBalance

; 100  :     {
; 101  :         return 0;

  0003c	33 c0		 xor	 eax, eax
  0003e	eb 7c		 jmp	 SHORT $LN4@GetBalance
$LN2@GetBalance:

; 102  :     }
; 103  :     long balance=0;

  00040	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _balance$[ebp], 0

; 104  :     HRESULT hr=m_pAudio->get_Balance(&balance);

  00047	8b 4d a0	 mov	 ecx, DWORD PTR _this$[ebp]
  0004a	83 c1 04	 add	 ecx, 4
  0004d	e8 00 00 00 00	 call	 ??C?$CComPtr@UIBasicAudio@@@ATL@@QBEPAV?$_NoAddRefReleaseOnCComPtr@UIBasicAudio@@@1@XZ ; ATL::CComPtr<IBasicAudio>::operator->
  00052	89 45 9c	 mov	 DWORD PTR tv78[ebp], eax
  00055	8d 4d f0	 lea	 ecx, DWORD PTR _balance$[ebp]
  00058	51		 push	 ecx
  00059	8b 55 9c	 mov	 edx, DWORD PTR tv78[ebp]
  0005c	52		 push	 edx
  0005d	8b 45 9c	 mov	 eax, DWORD PTR tv78[ebp]
  00060	8b 08		 mov	 ecx, DWORD PTR [eax]
  00062	8b 51 28	 mov	 edx, DWORD PTR [ecx+40]
  00065	ff d2		 call	 edx
  00067	89 45 ec	 mov	 DWORD PTR _hr$[ebp], eax

; 105  :     if(FAILED(hr))

  0006a	83 7d ec 00	 cmp	 DWORD PTR _hr$[ebp], 0
  0006e	7d 41		 jge	 SHORT $LN1@GetBalance

; 106  :     {
; 107  :         throw CDShowException("get_Balance failed",hr);

  00070	68 00 00 00 00	 push	 OFFSET ??_C@_0BD@FEALNEPM@get_Balance?5failed?$AA@
  00075	8d 4d a4	 lea	 ecx, DWORD PTR $T333533[ebp]
  00078	e8 00 00 00 00	 call	 ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
  0007d	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00084	8b 45 ec	 mov	 eax, DWORD PTR _hr$[ebp]
  00087	50		 push	 eax
  00088	8d 4d a4	 lea	 ecx, DWORD PTR $T333533[ebp]
  0008b	51		 push	 ecx
  0008c	8d 4d c0	 lea	 ecx, DWORD PTR $T333532[ebp]
  0008f	e8 00 00 00 00	 call	 ??0CDShowException@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@J@Z ; CDShowException::CDShowException
  00094	68 00 00 00 00	 push	 OFFSET __TI3?AVCDShowException@@
  00099	8d 55 c0	 lea	 edx, DWORD PTR $T333532[ebp]
  0009c	52		 push	 edx
  0009d	e8 00 00 00 00	 call	 __CxxThrowException@8
  000a2	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  000a9	8d 4d a4	 lea	 ecx, DWORD PTR $T333533[ebp]
  000ac	e8 00 00 00 00	 call	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
$LN1@GetBalance:

; 108  :     }
; 109  :     return balance/100;

  000b1	8b 45 f0	 mov	 eax, DWORD PTR _balance$[ebp]
  000b4	99		 cdq
  000b5	b9 64 00 00 00	 mov	 ecx, 100		; 00000064H
  000ba	f7 f9		 idiv	 ecx
$LN4@GetBalance:

; 110  : }

  000bc	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  000bf	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000c6	59		 pop	 ecx
  000c7	8b e5		 mov	 esp, ebp
  000c9	5d		 pop	 ebp
  000ca	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?GetBalance@CDShowGenericAudioControls@@UAEJXZ$0:
  00000	8d 4d a4	 lea	 ecx, DWORD PTR $T333533[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__ehhandler$?GetBalance@CDShowGenericAudioControls@@UAEJXZ:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a a4	 mov	 ecx, DWORD PTR [edx-92]
  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$?GetBalance@CDShowGenericAudioControls@@UAEJXZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?GetBalance@CDShowGenericAudioControls@@UAEJXZ ENDP	; CDShowGenericAudioControls::GetBalance
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?SetVolume@CDShowGenericAudioControls@@UAEXJ@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?SetVolume@CDShowGenericAudioControls@@UAEXJ@Z$0
__ehfuncinfo$?SetVolume@CDShowGenericAudioControls@@UAEXJ@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?SetVolume@CDShowGenericAudioControls@@UAEXJ@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?SetVolume@CDShowGenericAudioControls@@UAEXJ@Z
_TEXT	SEGMENT
tv78 = -96						; size = 4
_this$ = -92						; size = 4
$T333544 = -88						; size = 28
$T333543 = -60						; size = 44
_hr$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_volume$ = 8						; size = 4
?SetVolume@CDShowGenericAudioControls@@UAEXJ@Z PROC	; CDShowGenericAudioControls::SetVolume, COMDAT
; _this$ = ecx

; 77   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?SetVolume@CDShowGenericAudioControls@@UAEXJ@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 54	 sub	 esp, 84			; 00000054H
  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 a4	 mov	 DWORD PTR _this$[ebp], ecx

; 78   :     _ASSERTE((volume/100)<=0 && (volume/100)>=-10000);
; 79   :     if(m_pAudio==NULL)

  00028	6a 00		 push	 0
  0002a	8b 4d a4	 mov	 ecx, DWORD PTR _this$[ebp]
  0002d	83 c1 04	 add	 ecx, 4
  00030	e8 00 00 00 00	 call	 ??8?$CComPtr@UIBasicAudio@@@ATL@@QBE_NPAUIBasicAudio@@@Z ; ATL::CComPtr<IBasicAudio>::operator==
  00035	0f b6 c0	 movzx	 eax, al
  00038	85 c0		 test	 eax, eax
  0003a	74 02		 je	 SHORT $LN2@SetVolume@3

; 80   :     {
; 81   :         return;

  0003c	eb 76		 jmp	 SHORT $LN4@SetVolume@3
$LN2@SetVolume@3:

; 82   :     }
; 83   :     HRESULT hr=m_pAudio->put_Volume(volume*100);

  0003e	8b 4d a4	 mov	 ecx, DWORD PTR _this$[ebp]
  00041	83 c1 04	 add	 ecx, 4
  00044	e8 00 00 00 00	 call	 ??C?$CComPtr@UIBasicAudio@@@ATL@@QBEPAV?$_NoAddRefReleaseOnCComPtr@UIBasicAudio@@@1@XZ ; ATL::CComPtr<IBasicAudio>::operator->
  00049	89 45 a0	 mov	 DWORD PTR tv78[ebp], eax
  0004c	8b 4d 08	 mov	 ecx, DWORD PTR _volume$[ebp]
  0004f	6b c9 64	 imul	 ecx, 100		; 00000064H
  00052	51		 push	 ecx
  00053	8b 55 a0	 mov	 edx, DWORD PTR tv78[ebp]
  00056	52		 push	 edx
  00057	8b 45 a0	 mov	 eax, DWORD PTR tv78[ebp]
  0005a	8b 08		 mov	 ecx, DWORD PTR [eax]
  0005c	8b 51 1c	 mov	 edx, DWORD PTR [ecx+28]
  0005f	ff d2		 call	 edx
  00061	89 45 f0	 mov	 DWORD PTR _hr$[ebp], eax

; 84   :     // if there is no audio path can get E_NOTIMPL
; 85   :     if(hr != E_NOTIMPL && FAILED(hr))

  00064	81 7d f0 01 40
	00 80		 cmp	 DWORD PTR _hr$[ebp], -2147467263 ; 80004001H
  0006b	74 47		 je	 SHORT $LN4@SetVolume@3
  0006d	83 7d f0 00	 cmp	 DWORD PTR _hr$[ebp], 0
  00071	7d 41		 jge	 SHORT $LN4@SetVolume@3

; 86   :     {
; 87   :         throw CDShowException("put_Volume failed",hr);

  00073	68 00 00 00 00	 push	 OFFSET ??_C@_0BC@OLNHIPO@put_Volume?5failed?$AA@
  00078	8d 4d a8	 lea	 ecx, DWORD PTR $T333544[ebp]
  0007b	e8 00 00 00 00	 call	 ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
  00080	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00087	8b 45 f0	 mov	 eax, DWORD PTR _hr$[ebp]
  0008a	50		 push	 eax
  0008b	8d 4d a8	 lea	 ecx, DWORD PTR $T333544[ebp]
  0008e	51		 push	 ecx
  0008f	8d 4d c4	 lea	 ecx, DWORD PTR $T333543[ebp]
  00092	e8 00 00 00 00	 call	 ??0CDShowException@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@J@Z ; CDShowException::CDShowException
  00097	68 00 00 00 00	 push	 OFFSET __TI3?AVCDShowException@@
  0009c	8d 55 c4	 lea	 edx, DWORD PTR $T333543[ebp]
  0009f	52		 push	 edx
  000a0	e8 00 00 00 00	 call	 __CxxThrowException@8
  000a5	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  000ac	8d 4d a8	 lea	 ecx, DWORD PTR $T333544[ebp]
  000af	e8 00 00 00 00	 call	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
$LN4@SetVolume@3:

; 88   :     }
; 89   : }

  000b4	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  000b7	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000be	59		 pop	 ecx
  000bf	8b e5		 mov	 esp, ebp
  000c1	5d		 pop	 ebp
  000c2	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?SetVolume@CDShowGenericAudioControls@@UAEXJ@Z$0:
  00000	8d 4d a8	 lea	 ecx, DWORD PTR $T333544[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__ehhandler$?SetVolume@CDShowGenericAudioControls@@UAEXJ@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 a8	 mov	 ecx, DWORD PTR [edx-88]
  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$?SetVolume@CDShowGenericAudioControls@@UAEXJ@Z
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?SetVolume@CDShowGenericAudioControls@@UAEXJ@Z ENDP	; CDShowGenericAudioControls::SetVolume
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?GetVolume@CDShowGenericAudioControls@@UAEJXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?GetVolume@CDShowGenericAudioControls@@UAEJXZ$0
__ehfuncinfo$?GetVolume@CDShowGenericAudioControls@@UAEJXZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?GetVolume@CDShowGenericAudioControls@@UAEJXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?GetVolume@CDShowGenericAudioControls@@UAEJXZ
_TEXT	SEGMENT
tv78 = -100						; size = 4
_this$ = -96						; size = 4
$T333555 = -92						; size = 28
$T333554 = -64						; size = 44
_volume$ = -20						; size = 4
_hr$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
?GetVolume@CDShowGenericAudioControls@@UAEJXZ PROC	; CDShowGenericAudioControls::GetVolume, 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$?GetVolume@CDShowGenericAudioControls@@UAEJXZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 58	 sub	 esp, 88			; 00000058H
  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 a0	 mov	 DWORD PTR _this$[ebp], ecx

; 56   :     if(m_pAudio==NULL)

  00028	6a 00		 push	 0
  0002a	8b 4d a0	 mov	 ecx, DWORD PTR _this$[ebp]
  0002d	83 c1 04	 add	 ecx, 4
  00030	e8 00 00 00 00	 call	 ??8?$CComPtr@UIBasicAudio@@@ATL@@QBE_NPAUIBasicAudio@@@Z ; ATL::CComPtr<IBasicAudio>::operator==
  00035	0f b6 c0	 movzx	 eax, al
  00038	85 c0		 test	 eax, eax
  0003a	74 07		 je	 SHORT $LN3@GetVolume@2

; 57   :     {
; 58   :         return 0;

  0003c	33 c0		 xor	 eax, eax
  0003e	e9 89 00 00 00	 jmp	 $LN5@GetVolume@2
$LN3@GetVolume@2:

; 59   :     }
; 60   :     long volume=0;

  00043	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _volume$[ebp], 0

; 61   :     HRESULT hr=m_pAudio->get_Volume(&volume);

  0004a	8b 4d a0	 mov	 ecx, DWORD PTR _this$[ebp]
  0004d	83 c1 04	 add	 ecx, 4
  00050	e8 00 00 00 00	 call	 ??C?$CComPtr@UIBasicAudio@@@ATL@@QBEPAV?$_NoAddRefReleaseOnCComPtr@UIBasicAudio@@@1@XZ ; ATL::CComPtr<IBasicAudio>::operator->
  00055	89 45 9c	 mov	 DWORD PTR tv78[ebp], eax
  00058	8d 4d ec	 lea	 ecx, DWORD PTR _volume$[ebp]
  0005b	51		 push	 ecx
  0005c	8b 55 9c	 mov	 edx, DWORD PTR tv78[ebp]
  0005f	52		 push	 edx
  00060	8b 45 9c	 mov	 eax, DWORD PTR tv78[ebp]
  00063	8b 08		 mov	 ecx, DWORD PTR [eax]
  00065	8b 51 20	 mov	 edx, DWORD PTR [ecx+32]
  00068	ff d2		 call	 edx
  0006a	89 45 f0	 mov	 DWORD PTR _hr$[ebp], eax

; 62   : 
; 63   :     // if there is no audio path can get this error
; 64   :     if(hr == E_NOTIMPL)

  0006d	81 7d f0 01 40
	00 80		 cmp	 DWORD PTR _hr$[ebp], -2147467263 ; 80004001H
  00074	75 04		 jne	 SHORT $LN2@GetVolume@2

; 65   :     {
; 66   :         return 0;

  00076	33 c0		 xor	 eax, eax
  00078	eb 52		 jmp	 SHORT $LN5@GetVolume@2
$LN2@GetVolume@2:

; 67   :     }
; 68   : 
; 69   :     if(FAILED(hr))

  0007a	83 7d f0 00	 cmp	 DWORD PTR _hr$[ebp], 0
  0007e	7d 41		 jge	 SHORT $LN1@GetVolume@2

; 70   :     {
; 71   :         throw CDShowException("get_Volume failed",hr);

  00080	68 00 00 00 00	 push	 OFFSET ??_C@_0BC@NGGBLHPP@get_Volume?5failed?$AA@
  00085	8d 4d a4	 lea	 ecx, DWORD PTR $T333555[ebp]
  00088	e8 00 00 00 00	 call	 ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
  0008d	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00094	8b 45 f0	 mov	 eax, DWORD PTR _hr$[ebp]
  00097	50		 push	 eax
  00098	8d 4d a4	 lea	 ecx, DWORD PTR $T333555[ebp]
  0009b	51		 push	 ecx
  0009c	8d 4d c0	 lea	 ecx, DWORD PTR $T333554[ebp]
  0009f	e8 00 00 00 00	 call	 ??0CDShowException@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@J@Z ; CDShowException::CDShowException
  000a4	68 00 00 00 00	 push	 OFFSET __TI3?AVCDShowException@@
  000a9	8d 55 c0	 lea	 edx, DWORD PTR $T333554[ebp]
  000ac	52		 push	 edx
  000ad	e8 00 00 00 00	 call	 __CxxThrowException@8
  000b2	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  000b9	8d 4d a4	 lea	 ecx, DWORD PTR $T333555[ebp]
  000bc	e8 00 00 00 00	 call	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
$LN1@GetVolume@2:

; 72   :     }
; 73   :     return volume/100;

  000c1	8b 45 ec	 mov	 eax, DWORD PTR _volume$[ebp]
  000c4	99		 cdq
  000c5	b9 64 00 00 00	 mov	 ecx, 100		; 00000064H
  000ca	f7 f9		 idiv	 ecx
$LN5@GetVolume@2:

; 74   : }

  000cc	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  000cf	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000d6	59		 pop	 ecx
  000d7	8b e5		 mov	 esp, ebp
  000d9	5d		 pop	 ebp
  000da	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?GetVolume@CDShowGenericAudioControls@@UAEJXZ$0:
  00000	8d 4d a4	 lea	 ecx, DWORD PTR $T333555[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__ehhandler$?GetVolume@CDShowGenericAudioControls@@UAEJXZ:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a a4	 mov	 ecx, DWORD PTR [edx-92]
  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$?GetVolume@CDShowGenericAudioControls@@UAEJXZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?GetVolume@CDShowGenericAudioControls@@UAEJXZ ENDP	; CDShowGenericAudioControls::GetVolume
END
