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

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

INCLUDELIB OLDNAMES

PUBLIC	?GetAutoVolumeCorrection@CMSP34x0AudioControls@@UAEJXZ ; CMSP34x0AudioControls::GetAutoVolumeCorrection
PUBLIC	?SetAutoVolumeCorrection@CMSP34x0AudioControls@@UAEXJ@Z ; CMSP34x0AudioControls::SetAutoVolumeCorrection
PUBLIC	?HasAutoVolumeCorrection@CMSP34x0AudioControls@@UAEHXZ ; CMSP34x0AudioControls::HasAutoVolumeCorrection
PUBLIC	?GetSpatialEffect@CMSP34x0AudioControls@@UAEHXZ	; CMSP34x0AudioControls::GetSpatialEffect
PUBLIC	?SetSpatialEffect@CMSP34x0AudioControls@@UAEXH@Z ; CMSP34x0AudioControls::SetSpatialEffect
PUBLIC	?HasSpatialEffect@CMSP34x0AudioControls@@UAEHXZ	; CMSP34x0AudioControls::HasSpatialEffect
PUBLIC	?GetLoudness@CMSP34x0AudioControls@@UAEGXZ	; CMSP34x0AudioControls::GetLoudness
PUBLIC	?SetLoudness@CMSP34x0AudioControls@@UAEXG@Z	; CMSP34x0AudioControls::SetLoudness
PUBLIC	?HasLoudness@CMSP34x0AudioControls@@UAEHXZ	; CMSP34x0AudioControls::HasLoudness
PUBLIC	?IsBassBoosted@CMSP34x0AudioControls@@UAEHXZ	; CMSP34x0AudioControls::IsBassBoosted
PUBLIC	?SetBassBoost@CMSP34x0AudioControls@@UAEXH@Z	; CMSP34x0AudioControls::SetBassBoost
PUBLIC	?HasBassBoost@CMSP34x0AudioControls@@UAEHXZ	; CMSP34x0AudioControls::HasBassBoost
PUBLIC	?GetEqualizerLevel@CMSP34x0AudioControls@@UAEGG@Z ; CMSP34x0AudioControls::GetEqualizerLevel
PUBLIC	?SetEqualizerLevel@CMSP34x0AudioControls@@UAEXGG@Z ; CMSP34x0AudioControls::SetEqualizerLevel
PUBLIC	?GetEqualizerCount@CMSP34x0AudioControls@@UAEGXZ ; CMSP34x0AudioControls::GetEqualizerCount
PUBLIC	?HasEqualizers@CMSP34x0AudioControls@@UAEHXZ	; CMSP34x0AudioControls::HasEqualizers
PUBLIC	?GetTreble@CMSP34x0AudioControls@@UAEGXZ	; CMSP34x0AudioControls::GetTreble
PUBLIC	?SetTreble@CMSP34x0AudioControls@@UAEXG@Z	; CMSP34x0AudioControls::SetTreble
PUBLIC	?GetBass@CMSP34x0AudioControls@@UAEGXZ		; CMSP34x0AudioControls::GetBass
PUBLIC	?SetBass@CMSP34x0AudioControls@@UAEXG@Z		; CMSP34x0AudioControls::SetBass
PUBLIC	?GetBalance@CMSP34x0AudioControls@@UAEGXZ	; CMSP34x0AudioControls::GetBalance
PUBLIC	?SetBalance@CMSP34x0AudioControls@@UAEXG@Z	; CMSP34x0AudioControls::SetBalance
PUBLIC	?GetVolume@CMSP34x0AudioControls@@UAEGXZ	; CMSP34x0AudioControls::GetVolume
PUBLIC	?SetVolume@CMSP34x0AudioControls@@UAEXG@Z	; CMSP34x0AudioControls::SetVolume
PUBLIC	?IsMuted@CMSP34x0AudioControls@@UAEHXZ		; CMSP34x0AudioControls::IsMuted
PUBLIC	?SetMute@CMSP34x0AudioControls@@UAEXH@Z		; CMSP34x0AudioControls::SetMute
PUBLIC	?HasMute@CMSP34x0AudioControls@@UAEHXZ		; CMSP34x0AudioControls::HasMute
PUBLIC	??_R4CMSP34x0AudioControls@@6BCAudioControls@@@	; CMSP34x0AudioControls::`RTTI Complete Object Locator'
PUBLIC	??_R4CMSP34x0AudioControls@@6BCMSP34x0@@@	; CMSP34x0AudioControls::`RTTI Complete Object Locator'
PUBLIC	??_R3CMSP34x0AudioControls@@8			; CMSP34x0AudioControls::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2CMSP34x0AudioControls@@8			; CMSP34x0AudioControls::`RTTI Base Class Array'
PUBLIC	??_R1M@?0A@EA@CAudioControls@@8			; CAudioControls::`RTTI Base Class Descriptor at (12,-1,0,64)'
PUBLIC	??_R1A@?0A@EA@CMSP34x0AudioControls@@8		; CMSP34x0AudioControls::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVCMSP34x0AudioControls@@@8		; CMSP34x0AudioControls `RTTI Type Descriptor'
PUBLIC	??1CMSP34x0AudioControls@@UAE@XZ		; CMSP34x0AudioControls::~CMSP34x0AudioControls
PUBLIC	??_GCMSP34x0AudioControls@@UAEPAXI@Z		; CMSP34x0AudioControls::`scalar deleting destructor'
PUBLIC	??_ECMSP34x0AudioControls@@WM@AEPAXI@Z		; [thunk]:CMSP34x0AudioControls::`vector deleting destructor'
PUBLIC	??_7CMSP34x0AudioControls@@6BCMSP34x0@@@	; CMSP34x0AudioControls::`vftable'
PUBLIC	??_7CMSP34x0AudioControls@@6BCAudioControls@@@	; CMSP34x0AudioControls::`vftable'
EXTRN	??_ECMSP34x0AudioControls@@UAEPAXI@Z:PROC	; CMSP34x0AudioControls::`vector deleting destructor'
;	COMDAT ??_7CMSP34x0AudioControls@@6BCAudioControls@@@
CONST	SEGMENT
??_7CMSP34x0AudioControls@@6BCAudioControls@@@ DD FLAT:??_R4CMSP34x0AudioControls@@6BCAudioControls@@@ ; CMSP34x0AudioControls::`vftable'
	DD	FLAT:??_ECMSP34x0AudioControls@@WM@AEPAXI@Z
	DD	FLAT:?HasMute@CMSP34x0AudioControls@@UAEHXZ
	DD	FLAT:?SetMute@CMSP34x0AudioControls@@UAEXH@Z
	DD	FLAT:?IsMuted@CMSP34x0AudioControls@@UAEHXZ
	DD	FLAT:?HasVolume@CAudioControls@@UAEHXZ
	DD	FLAT:?SetVolume@CMSP34x0AudioControls@@UAEXG@Z
	DD	FLAT:?GetVolume@CMSP34x0AudioControls@@UAEGXZ
	DD	FLAT:?HasBalance@CAudioControls@@UAEHXZ
	DD	FLAT:?SetBalance@CMSP34x0AudioControls@@UAEXG@Z
	DD	FLAT:?GetBalance@CMSP34x0AudioControls@@UAEGXZ
	DD	FLAT:?HasBass@CAudioControls@@UAEHXZ
	DD	FLAT:?SetBass@CMSP34x0AudioControls@@UAEXG@Z
	DD	FLAT:?GetBass@CMSP34x0AudioControls@@UAEGXZ
	DD	FLAT:?HasTreble@CAudioControls@@UAEHXZ
	DD	FLAT:?SetTreble@CMSP34x0AudioControls@@UAEXG@Z
	DD	FLAT:?GetTreble@CMSP34x0AudioControls@@UAEGXZ
	DD	FLAT:?HasEqualizers@CMSP34x0AudioControls@@UAEHXZ
	DD	FLAT:?GetEqualizerCount@CMSP34x0AudioControls@@UAEGXZ
	DD	FLAT:?SetEqualizerLevel@CMSP34x0AudioControls@@UAEXGG@Z
	DD	FLAT:?GetEqualizerLevel@CMSP34x0AudioControls@@UAEGG@Z
	DD	FLAT:?HasBassBoost@CMSP34x0AudioControls@@UAEHXZ
	DD	FLAT:?SetBassBoost@CMSP34x0AudioControls@@UAEXH@Z
	DD	FLAT:?IsBassBoosted@CMSP34x0AudioControls@@UAEHXZ
	DD	FLAT:?HasLoudness@CMSP34x0AudioControls@@UAEHXZ
	DD	FLAT:?SetLoudness@CMSP34x0AudioControls@@UAEXG@Z
	DD	FLAT:?GetLoudness@CMSP34x0AudioControls@@UAEGXZ
	DD	FLAT:?HasSpatialEffect@CMSP34x0AudioControls@@UAEHXZ
	DD	FLAT:?SetSpatialEffect@CMSP34x0AudioControls@@UAEXH@Z
	DD	FLAT:?GetSpatialEffect@CMSP34x0AudioControls@@UAEHXZ
	DD	FLAT:?HasDolby@CAudioControls@@UAEHXZ
	DD	FLAT:?SetDolby@CAudioControls@@UAEXGGGGG@Z
	DD	FLAT:?HasAutoVolumeCorrection@CMSP34x0AudioControls@@UAEHXZ
	DD	FLAT:?SetAutoVolumeCorrection@CMSP34x0AudioControls@@UAEXJ@Z
	DD	FLAT:?GetAutoVolumeCorrection@CMSP34x0AudioControls@@UAEJXZ
CONST	ENDS
;	COMDAT ??_R4CMSP34x0AudioControls@@6BCAudioControls@@@
rdata$r	SEGMENT
??_R4CMSP34x0AudioControls@@6BCAudioControls@@@ DD 00H	; CMSP34x0AudioControls::`RTTI Complete Object Locator'
	DD	0cH
	DD	00H
	DD	FLAT:??_R0?AVCMSP34x0AudioControls@@@8
	DD	FLAT:??_R3CMSP34x0AudioControls@@8
rdata$r	ENDS
;	COMDAT ??_7CMSP34x0AudioControls@@6BCMSP34x0@@@
CONST	SEGMENT
??_7CMSP34x0AudioControls@@6BCMSP34x0@@@ DD FLAT:??_R4CMSP34x0AudioControls@@6BCMSP34x0@@@ ; CMSP34x0AudioControls::`vftable'
	DD	FLAT:??_ECMSP34x0AudioControls@@UAEPAXI@Z
	DD	FLAT:?GetDefaultAddress@CMSP34x0@@MBEEXZ
CONST	ENDS
;	COMDAT ??_R4CMSP34x0AudioControls@@6BCMSP34x0@@@
rdata$r	SEGMENT
??_R4CMSP34x0AudioControls@@6BCMSP34x0@@@ DD 00H	; CMSP34x0AudioControls::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVCMSP34x0AudioControls@@@8
	DD	FLAT:??_R3CMSP34x0AudioControls@@8
rdata$r	ENDS
;	COMDAT ??_R3CMSP34x0AudioControls@@8
rdata$r	SEGMENT
??_R3CMSP34x0AudioControls@@8 DD 00H			; CMSP34x0AudioControls::`RTTI Class Hierarchy Descriptor'
	DD	01H
	DD	04H
	DD	FLAT:??_R2CMSP34x0AudioControls@@8
rdata$r	ENDS
;	COMDAT ??_R2CMSP34x0AudioControls@@8
rdata$r	SEGMENT
??_R2CMSP34x0AudioControls@@8 DD FLAT:??_R1A@?0A@EA@CMSP34x0AudioControls@@8 ; CMSP34x0AudioControls::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@CMSP34x0@@8
	DD	FLAT:??_R1A@?0A@EA@CI2CDevice@@8
	DD	FLAT:??_R1M@?0A@EA@CAudioControls@@8
rdata$r	ENDS
;	COMDAT ??_R1M@?0A@EA@CAudioControls@@8
rdata$r	SEGMENT
??_R1M@?0A@EA@CAudioControls@@8 DD FLAT:??_R0?AVCAudioControls@@@8 ; CAudioControls::`RTTI Base Class Descriptor at (12,-1,0,64)'
	DD	00H
	DD	0cH
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3CAudioControls@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@CMSP34x0AudioControls@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@CMSP34x0AudioControls@@8 DD FLAT:??_R0?AVCMSP34x0AudioControls@@@8 ; CMSP34x0AudioControls::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	03H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3CMSP34x0AudioControls@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVCMSP34x0AudioControls@@@8
_DATA	SEGMENT
??_R0?AVCMSP34x0AudioControls@@@8 DD FLAT:??_7type_info@@6B@ ; CMSP34x0AudioControls `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVCMSP34x0AudioControls@@', 00H
; Function compile flags: /Odtp
;	COMDAT ??_ECMSP34x0AudioControls@@WM@AEPAXI@Z
_TEXT	SEGMENT
??_ECMSP34x0AudioControls@@WM@AEPAXI@Z PROC		; [thunk]:CMSP34x0AudioControls::`vector deleting destructor', COMDAT
  00000	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00003	e9 00 00 00 00	 jmp	 ??_ECMSP34x0AudioControls@@UAEPAXI@Z
??_ECMSP34x0AudioControls@@WM@AEPAXI@Z ENDP		; [thunk]:CMSP34x0AudioControls::`vector deleting destructor'
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\msp34x0audiocontrols.cpp
_TEXT	ENDS
;	COMDAT ?HasAutoVolumeCorrection@CMSP34x0AudioControls@@UAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?HasAutoVolumeCorrection@CMSP34x0AudioControls@@UAEHXZ PROC ; CMSP34x0AudioControls::HasAutoVolumeCorrection, COMDAT
; _this$ = ecx

; 337  : {

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

; 338  :     ///\todo Which MSP chips support this?
; 339  :     return TRUE;

  00007	b8 01 00 00 00	 mov	 eax, 1

; 340  : }

  0000c	8b e5		 mov	 esp, ebp
  0000e	5d		 pop	 ebp
  0000f	c3		 ret	 0
?HasAutoVolumeCorrection@CMSP34x0AudioControls@@UAEHXZ ENDP ; CMSP34x0AudioControls::HasAutoVolumeCorrection
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?HasSpatialEffect@CMSP34x0AudioControls@@UAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?HasSpatialEffect@CMSP34x0AudioControls@@UAEHXZ PROC	; CMSP34x0AudioControls::HasSpatialEffect, COMDAT
; _this$ = ecx

; 320  : {

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

; 321  :     return TRUE;

  00007	b8 01 00 00 00	 mov	 eax, 1

; 322  : }

  0000c	8b e5		 mov	 esp, ebp
  0000e	5d		 pop	 ebp
  0000f	c3		 ret	 0
?HasSpatialEffect@CMSP34x0AudioControls@@UAEHXZ ENDP	; CMSP34x0AudioControls::HasSpatialEffect
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?HasLoudness@CMSP34x0AudioControls@@UAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?HasLoudness@CMSP34x0AudioControls@@UAEHXZ PROC		; CMSP34x0AudioControls::HasLoudness, COMDAT
; _this$ = ecx

; 211  : {

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

; 212  :     return TRUE;

  00007	b8 01 00 00 00	 mov	 eax, 1

; 213  : }

  0000c	8b e5		 mov	 esp, ebp
  0000e	5d		 pop	 ebp
  0000f	c3		 ret	 0
?HasLoudness@CMSP34x0AudioControls@@UAEHXZ ENDP		; CMSP34x0AudioControls::HasLoudness
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?HasBassBoost@CMSP34x0AudioControls@@UAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?HasBassBoost@CMSP34x0AudioControls@@UAEHXZ PROC	; CMSP34x0AudioControls::HasBassBoost, COMDAT
; _this$ = ecx

; 180  : {

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

; 181  :     return TRUE;

  00007	b8 01 00 00 00	 mov	 eax, 1

; 182  : }

  0000c	8b e5		 mov	 esp, ebp
  0000e	5d		 pop	 ebp
  0000f	c3		 ret	 0
?HasBassBoost@CMSP34x0AudioControls@@UAEHXZ ENDP	; CMSP34x0AudioControls::HasBassBoost
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?GetEqualizerLevel@CMSP34x0AudioControls@@UAEGG@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_nIndex$ = 8						; size = 2
?GetEqualizerLevel@CMSP34x0AudioControls@@UAEGG@Z PROC	; CMSP34x0AudioControls::GetEqualizerLevel, COMDAT
; _this$ = ecx

; 152  : {

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

; 153  :     return 0; // \todo: fix this

  00007	33 c0		 xor	 eax, eax

; 154  : }

  00009	8b e5		 mov	 esp, ebp
  0000b	5d		 pop	 ebp
  0000c	c2 04 00	 ret	 4
?GetEqualizerLevel@CMSP34x0AudioControls@@UAEGG@Z ENDP	; CMSP34x0AudioControls::GetEqualizerLevel
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?GetEqualizerCount@CMSP34x0AudioControls@@UAEGXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetEqualizerCount@CMSP34x0AudioControls@@UAEGXZ PROC	; CMSP34x0AudioControls::GetEqualizerCount, COMDAT
; _this$ = ecx

; 147  : {

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

; 148  :     return HasEqualizers() ? 5 : 0;

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000d	8b 10		 mov	 edx, DWORD PTR [eax]
  0000f	8b 42 40	 mov	 eax, DWORD PTR [edx+64]
  00012	ff d0		 call	 eax
  00014	f7 d8		 neg	 eax
  00016	1b c0		 sbb	 eax, eax
  00018	83 e0 05	 and	 eax, 5

; 149  : }

  0001b	8b e5		 mov	 esp, ebp
  0001d	5d		 pop	 ebp
  0001e	c3		 ret	 0
?GetEqualizerCount@CMSP34x0AudioControls@@UAEGXZ ENDP	; CMSP34x0AudioControls::GetEqualizerCount
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?HasEqualizers@CMSP34x0AudioControls@@UAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?HasEqualizers@CMSP34x0AudioControls@@UAEHXZ PROC	; CMSP34x0AudioControls::HasEqualizers, COMDAT
; _this$ = ecx

; 142  : {

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

; 143  :     return TRUE; // \todo: fix this

  00007	b8 01 00 00 00	 mov	 eax, 1

; 144  : }

  0000c	8b e5		 mov	 esp, ebp
  0000e	5d		 pop	 ebp
  0000f	c3		 ret	 0
?HasEqualizers@CMSP34x0AudioControls@@UAEHXZ ENDP	; CMSP34x0AudioControls::HasEqualizers
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?GetTreble@CMSP34x0AudioControls@@UAEGXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetTreble@CMSP34x0AudioControls@@UAEGXZ PROC		; CMSP34x0AudioControls::GetTreble, COMDAT
; _this$ = ecx

; 136  : {

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

; 137  :     return m_nTreble;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	66 8b 40 14	 mov	 ax, WORD PTR [eax+20]

; 138  : }

  0000e	8b e5		 mov	 esp, ebp
  00010	5d		 pop	 ebp
  00011	c3		 ret	 0
?GetTreble@CMSP34x0AudioControls@@UAEGXZ ENDP		; CMSP34x0AudioControls::GetTreble
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?GetBass@CMSP34x0AudioControls@@UAEGXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetBass@CMSP34x0AudioControls@@UAEGXZ PROC		; CMSP34x0AudioControls::GetBass, COMDAT
; _this$ = ecx

; 120  : {

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

; 121  :     return m_nBass;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	66 8b 40 10	 mov	 ax, WORD PTR [eax+16]

; 122  : }

  0000e	8b e5		 mov	 esp, ebp
  00010	5d		 pop	 ebp
  00011	c3		 ret	 0
?GetBass@CMSP34x0AudioControls@@UAEGXZ ENDP		; CMSP34x0AudioControls::GetBass
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?GetBalance@CMSP34x0AudioControls@@UAEGXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetBalance@CMSP34x0AudioControls@@UAEGXZ PROC		; CMSP34x0AudioControls::GetBalance, COMDAT
; _this$ = ecx

; 104  : {

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

; 105  :     return m_nBalance;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	66 8b 40 0c	 mov	 ax, WORD PTR [eax+12]

; 106  : }

  0000e	8b e5		 mov	 esp, ebp
  00010	5d		 pop	 ebp
  00011	c3		 ret	 0
?GetBalance@CMSP34x0AudioControls@@UAEGXZ ENDP		; CMSP34x0AudioControls::GetBalance
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?GetVolume@CMSP34x0AudioControls@@UAEGXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetVolume@CMSP34x0AudioControls@@UAEGXZ PROC		; CMSP34x0AudioControls::GetVolume, 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   :     return m_nVolume;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	66 8b 40 08	 mov	 ax, WORD PTR [eax+8]

; 94   : }

  0000e	8b e5		 mov	 esp, ebp
  00010	5d		 pop	 ebp
  00011	c3		 ret	 0
?GetVolume@CMSP34x0AudioControls@@UAEGXZ ENDP		; CMSP34x0AudioControls::GetVolume
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?IsMuted@CMSP34x0AudioControls@@UAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?IsMuted@CMSP34x0AudioControls@@UAEHXZ PROC		; CMSP34x0AudioControls::IsMuted, COMDAT
; _this$ = ecx

; 67   : {

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

; 68   :     return m_bMuted;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 40 04	 mov	 eax, DWORD PTR [eax+4]

; 69   : }

  0000d	8b e5		 mov	 esp, ebp
  0000f	5d		 pop	 ebp
  00010	c3		 ret	 0
?IsMuted@CMSP34x0AudioControls@@UAEHXZ ENDP		; CMSP34x0AudioControls::IsMuted
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?HasMute@CMSP34x0AudioControls@@UAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?HasMute@CMSP34x0AudioControls@@UAEHXZ PROC		; CMSP34x0AudioControls::HasMute, COMDAT
; _this$ = ecx

; 48   : {

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

; 49   :     return TRUE;

  00007	b8 01 00 00 00	 mov	 eax, 1

; 50   : }

  0000c	8b e5		 mov	 esp, ebp
  0000e	5d		 pop	 ebp
  0000f	c3		 ret	 0
?HasMute@CMSP34x0AudioControls@@UAEHXZ ENDP		; CMSP34x0AudioControls::HasMute
PUBLIC	??0CMSP34x0AudioControls@@QAE@XZ		; CMSP34x0AudioControls::CMSP34x0AudioControls
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0CMSP34x0AudioControls@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0CMSP34x0AudioControls@@QAE@XZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$??0CMSP34x0AudioControls@@QAE@XZ$1
__ehfuncinfo$??0CMSP34x0AudioControls@@QAE@XZ DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??0CMSP34x0AudioControls@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??0CMSP34x0AudioControls@@QAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??0CMSP34x0AudioControls@@QAE@XZ PROC			; CMSP34x0AudioControls::CMSP34x0AudioControls, 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$??0CMSP34x0AudioControls@@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	 ??0CMSP34x0@@QAE@XZ	; CMSP34x0::CMSP34x0
  0002e	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00035	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00038	83 c1 0c	 add	 ecx, 12			; 0000000cH
  0003b	e8 00 00 00 00	 call	 ??0CAudioControls@@QAE@XZ ; CAudioControls::CAudioControls
  00040	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00044	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00047	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], OFFSET ??_7CMSP34x0AudioControls@@6BCMSP34x0@@@
  0004d	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00050	c7 41 0c 00 00
	00 00		 mov	 DWORD PTR [ecx+12], OFFSET ??_7CMSP34x0AudioControls@@6BCAudioControls@@@

; 39   :     m_bMuted = FALSE;

  00057	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  0005a	c7 42 10 00 00
	00 00		 mov	 DWORD PTR [edx+16], 0

; 40   :     m_nVolume = 900;

  00061	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00064	c7 40 14 84 03
	00 00		 mov	 DWORD PTR [eax+20], 900	; 00000384H

; 41   :     m_nBalance = 0;

  0006b	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0006e	c7 41 18 00 00
	00 00		 mov	 DWORD PTR [ecx+24], 0

; 42   :     m_nBass = 0;

  00075	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00078	c7 42 1c 00 00
	00 00		 mov	 DWORD PTR [edx+28], 0

; 43   :     m_nTreble = 0;

  0007f	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00082	c7 40 20 00 00
	00 00		 mov	 DWORD PTR [eax+32], 0

; 44   :     m_bBassBoost = FALSE;

  00089	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0008c	c7 41 24 00 00
	00 00		 mov	 DWORD PTR [ecx+36], 0

; 45   : }

  00093	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0009a	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  0009d	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  000a0	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000a7	59		 pop	 ecx
  000a8	8b e5		 mov	 esp, ebp
  000aa	5d		 pop	 ebp
  000ab	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0CMSP34x0AudioControls@@QAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1CMSP34x0@@UAE@XZ	; CMSP34x0::~CMSP34x0
__unwindfunclet$??0CMSP34x0AudioControls@@QAE@XZ$1:
  00008	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0000b	83 c1 0c	 add	 ecx, 12			; 0000000cH
  0000e	e9 00 00 00 00	 jmp	 ??1CAudioControls@@UAE@XZ ; CAudioControls::~CAudioControls
__ehhandler$??0CMSP34x0AudioControls@@QAE@XZ:
  00013	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00017	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0001a	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  0001d	33 c8		 xor	 ecx, eax
  0001f	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00024	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??0CMSP34x0AudioControls@@QAE@XZ
  00029	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??0CMSP34x0AudioControls@@QAE@XZ ENDP			; CMSP34x0AudioControls::CMSP34x0AudioControls
;	COMDAT xdata$x
; File c:\develop\dscaler423a\dscaler\msp34x0audiocontrols.h
xdata$x	SEGMENT
__unwindtable$??1CMSP34x0AudioControls@@UAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1CMSP34x0AudioControls@@UAE@XZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$??1CMSP34x0AudioControls@@UAE@XZ$1
__ehfuncinfo$??1CMSP34x0AudioControls@@UAE@XZ DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??1CMSP34x0AudioControls@@UAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??1CMSP34x0AudioControls@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1CMSP34x0AudioControls@@UAE@XZ PROC			; CMSP34x0AudioControls::~CMSP34x0AudioControls, COMDAT
; _this$ = ecx

; 46   :     virtual ~CMSP34x0AudioControls() {};

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??1CMSP34x0AudioControls@@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 ??_7CMSP34x0AudioControls@@6BCMSP34x0@@@
  0002f	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00032	c7 41 0c 00 00
	00 00		 mov	 DWORD PTR [ecx+12], OFFSET ??_7CMSP34x0AudioControls@@6BCAudioControls@@@
  00039	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1
  00040	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  00044	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00047	83 c1 0c	 add	 ecx, 12			; 0000000cH
  0004a	e8 00 00 00 00	 call	 ??1CAudioControls@@UAE@XZ ; CAudioControls::~CAudioControls
  0004f	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00056	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00059	e8 00 00 00 00	 call	 ??1CMSP34x0@@UAE@XZ	; CMSP34x0::~CMSP34x0
  0005e	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00061	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00068	59		 pop	 ecx
  00069	8b e5		 mov	 esp, ebp
  0006b	5d		 pop	 ebp
  0006c	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1CMSP34x0AudioControls@@UAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1CMSP34x0@@UAE@XZ	; CMSP34x0::~CMSP34x0
__unwindfunclet$??1CMSP34x0AudioControls@@UAE@XZ$1:
  00008	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0000b	83 c1 0c	 add	 ecx, 12			; 0000000cH
  0000e	e9 00 00 00 00	 jmp	 ??1CAudioControls@@UAE@XZ ; CAudioControls::~CAudioControls
__ehhandler$??1CMSP34x0AudioControls@@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$??1CMSP34x0AudioControls@@UAE@XZ
  00029	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??1CMSP34x0AudioControls@@UAE@XZ ENDP			; CMSP34x0AudioControls::~CMSP34x0AudioControls
; Function compile flags: /Odtp
;	COMDAT ??_GCMSP34x0AudioControls@@UAEPAXI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___flags$ = 8						; size = 4
??_GCMSP34x0AudioControls@@UAEPAXI@Z PROC		; CMSP34x0AudioControls::`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	 ??1CMSP34x0AudioControls@@UAE@XZ ; CMSP34x0AudioControls::~CMSP34x0AudioControls
  0000f	8b 45 08	 mov	 eax, DWORD PTR ___flags$[ebp]
  00012	83 e0 01	 and	 eax, 1
  00015	74 0c		 je	 SHORT $LN1@scalar@123
  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@123:
  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
??_GCMSP34x0AudioControls@@UAEPAXI@Z ENDP		; CMSP34x0AudioControls::`scalar deleting destructor'
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\msp34x0audiocontrols.cpp
;	COMDAT ?GetAutoVolumeCorrection@CMSP34x0AudioControls@@UAEJXZ
_TEXT	SEGMENT
_this$ = -8						; size = 4
_Result$ = -4						; size = 2
?GetAutoVolumeCorrection@CMSP34x0AudioControls@@UAEJXZ PROC ; CMSP34x0AudioControls::GetAutoVolumeCorrection, COMDAT
; _this$ = ecx

; 343  : {

  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

; 344  :     WORD Result = GetDSPRegister(DSP_RD_AVC);

  00009	6a 29		 push	 41			; 00000029H
  0000b	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0000e	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00011	e8 00 00 00 00	 call	 ?GetDSPRegister@CMSP34x0@@IAEGW4eDSPReadRegister@1@@Z ; CMSP34x0::GetDSPRegister
  00016	66 89 45 fc	 mov	 WORD PTR _Result$[ebp], ax

; 345  :     if (Result&0x8000)

  0001a	0f b7 45 fc	 movzx	 eax, WORD PTR _Result$[ebp]
  0001e	25 00 80 00 00	 and	 eax, 32768		; 00008000H
  00023	74 4d		 je	 SHORT $LN8@GetAutoVol

; 346  :     {
; 347  :         if (Result&0x0010)

  00025	0f b7 4d fc	 movzx	 ecx, WORD PTR _Result$[ebp]
  00029	83 e1 10	 and	 ecx, 16			; 00000010H
  0002c	74 09		 je	 SHORT $LN7@GetAutoVol

; 348  :         {
; 349  :             return 20;

  0002e	b8 14 00 00 00	 mov	 eax, 20			; 00000014H
  00033	eb 3f		 jmp	 SHORT $LN9@GetAutoVol
  00035	eb 37		 jmp	 SHORT $LN6@GetAutoVol
$LN7@GetAutoVol:

; 350  :         }
; 351  :         else if (Result&0x0020)

  00037	0f b7 55 fc	 movzx	 edx, WORD PTR _Result$[ebp]
  0003b	83 e2 20	 and	 edx, 32			; 00000020H
  0003e	74 09		 je	 SHORT $LN5@GetAutoVol

; 352  :         {
; 353  :             return 2000;

  00040	b8 d0 07 00 00	 mov	 eax, 2000		; 000007d0H
  00045	eb 2d		 jmp	 SHORT $LN9@GetAutoVol
  00047	eb 25		 jmp	 SHORT $LN6@GetAutoVol
$LN5@GetAutoVol:

; 354  :         }
; 355  :         else if (Result&0x0040)

  00049	0f b7 45 fc	 movzx	 eax, WORD PTR _Result$[ebp]
  0004d	83 e0 40	 and	 eax, 64			; 00000040H
  00050	74 09		 je	 SHORT $LN3@GetAutoVol

; 356  :         {
; 357  :             return 4000;

  00052	b8 a0 0f 00 00	 mov	 eax, 4000		; 00000fa0H
  00057	eb 1b		 jmp	 SHORT $LN9@GetAutoVol
  00059	eb 13		 jmp	 SHORT $LN6@GetAutoVol
$LN3@GetAutoVol:

; 358  :         }
; 359  :         else if (Result&0x0080)

  0005b	0f b7 4d fc	 movzx	 ecx, WORD PTR _Result$[ebp]
  0005f	81 e1 80 00 00
	00		 and	 ecx, 128		; 00000080H
  00065	74 07		 je	 SHORT $LN6@GetAutoVol

; 360  :         {
; 361  :             return 8000;

  00067	b8 40 1f 00 00	 mov	 eax, 8000		; 00001f40H
  0006c	eb 06		 jmp	 SHORT $LN9@GetAutoVol
$LN6@GetAutoVol:

; 362  :         }
; 363  :         return 0;

  0006e	33 c0		 xor	 eax, eax
  00070	eb 02		 jmp	 SHORT $LN9@GetAutoVol
$LN8@GetAutoVol:

; 364  :     }
; 365  :     return 0;

  00072	33 c0		 xor	 eax, eax
$LN9@GetAutoVol:

; 366  : }

  00074	8b e5		 mov	 esp, ebp
  00076	5d		 pop	 ebp
  00077	c3		 ret	 0
?GetAutoVolumeCorrection@CMSP34x0AudioControls@@UAEJXZ ENDP ; CMSP34x0AudioControls::GetAutoVolumeCorrection
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?GetSpatialEffect@CMSP34x0AudioControls@@UAEHXZ
_TEXT	SEGMENT
_this$ = -12						; size = 4
_nLevel$ = -8						; size = 4
_Result$ = -4						; size = 2
?GetSpatialEffect@CMSP34x0AudioControls@@UAEHXZ PROC	; CMSP34x0AudioControls::GetSpatialEffect, COMDAT
; _this$ = ecx

; 325  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH
  00006	89 4d f4	 mov	 DWORD PTR _this$[ebp], ecx

; 326  :     WORD Result = GetDSPRegister(DSP_RD_LDSPK_SPATIALEFF);

  00009	6a 05		 push	 5
  0000b	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0000e	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00011	e8 00 00 00 00	 call	 ?GetDSPRegister@CMSP34x0@@IAEGW4eDSPReadRegister@1@@Z ; CMSP34x0::GetDSPRegister
  00016	66 89 45 fc	 mov	 WORD PTR _Result$[ebp], ax

; 327  :     int nLevel = ((Result >> 8) & 0xFF);

  0001a	0f b7 45 fc	 movzx	 eax, WORD PTR _Result$[ebp]
  0001e	c1 f8 08	 sar	 eax, 8
  00021	25 ff 00 00 00	 and	 eax, 255		; 000000ffH
  00026	89 45 f8	 mov	 DWORD PTR _nLevel$[ebp], eax

; 328  :     if (nLevel>=128)

  00029	81 7d f8 80 00
	00 00		 cmp	 DWORD PTR _nLevel$[ebp], 128 ; 00000080H
  00030	7c 0c		 jl	 SHORT $LN1@GetSpatial

; 329  :     {
; 330  :         nLevel-=256;

  00032	8b 4d f8	 mov	 ecx, DWORD PTR _nLevel$[ebp]
  00035	81 e9 00 01 00
	00		 sub	 ecx, 256		; 00000100H
  0003b	89 4d f8	 mov	 DWORD PTR _nLevel$[ebp], ecx
$LN1@GetSpatial:

; 331  :     }
; 332  :     return nLevel;

  0003e	8b 45 f8	 mov	 eax, DWORD PTR _nLevel$[ebp]

; 333  : }

  00041	8b e5		 mov	 esp, ebp
  00043	5d		 pop	 ebp
  00044	c3		 ret	 0
?GetSpatialEffect@CMSP34x0AudioControls@@UAEHXZ ENDP	; CMSP34x0AudioControls::GetSpatialEffect
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?SetSpatialEffect@CMSP34x0AudioControls@@UAEXH@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_nLevel$ = 8						; size = 4
?SetSpatialEffect@CMSP34x0AudioControls@@UAEXH@Z PROC	; CMSP34x0AudioControls::SetSpatialEffect, COMDAT
; _this$ = ecx

; 302  : {

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

; 303  :     if (nLevel > 127)

  00007	83 7d 08 7f	 cmp	 DWORD PTR _nLevel$[ebp], 127 ; 0000007fH
  0000b	7e 07		 jle	 SHORT $LN3@SetSpatial@2

; 304  :     {
; 305  :         nLevel = 127;

  0000d	c7 45 08 7f 00
	00 00		 mov	 DWORD PTR _nLevel$[ebp], 127 ; 0000007fH
$LN3@SetSpatial@2:

; 306  :     }
; 307  :     if (nLevel < -128)

  00014	83 7d 08 80	 cmp	 DWORD PTR _nLevel$[ebp], -128 ; ffffff80H
  00018	7d 07		 jge	 SHORT $LN2@SetSpatial@2

; 308  :     {
; 309  :         nLevel = -128;

  0001a	c7 45 08 80 ff
	ff ff		 mov	 DWORD PTR _nLevel$[ebp], -128 ; ffffff80H
$LN2@SetSpatial@2:

; 310  :     }
; 311  :     if (nLevel < 0)

  00021	83 7d 08 00	 cmp	 DWORD PTR _nLevel$[ebp], 0
  00025	7d 0b		 jge	 SHORT $LN1@SetSpatial@2

; 312  :     {
; 313  :         nLevel += 256;

  00027	8b 45 08	 mov	 eax, DWORD PTR _nLevel$[ebp]
  0002a	05 00 01 00 00	 add	 eax, 256		; 00000100H
  0002f	89 45 08	 mov	 DWORD PTR _nLevel$[ebp], eax
$LN1@SetSpatial@2:

; 314  :     }
; 315  :     // Mode A, Automatic high pass gain
; 316  :     SetDSPRegister(DSP_WR_LDSPK_SPATIALEFF, ((nLevel & 0xFF) << 8) | 0x8);

  00032	8b 4d 08	 mov	 ecx, DWORD PTR _nLevel$[ebp]
  00035	81 e1 ff 00 00
	00		 and	 ecx, 255		; 000000ffH
  0003b	c1 e1 08	 shl	 ecx, 8
  0003e	83 c9 08	 or	 ecx, 8
  00041	51		 push	 ecx
  00042	6a 05		 push	 5
  00044	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00047	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  0004a	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister

; 317  : }

  0004f	8b e5		 mov	 esp, ebp
  00051	5d		 pop	 ebp
  00052	c2 04 00	 ret	 4
?SetSpatialEffect@CMSP34x0AudioControls@@UAEXH@Z ENDP	; CMSP34x0AudioControls::SetSpatialEffect
_TEXT	ENDS
PUBLIC	?SetDolby@CMSP34x0AudioControls@@QAEXJJJJJ@Z	; CMSP34x0AudioControls::SetDolby
; Function compile flags: /Odtp
;	COMDAT ?SetDolby@CMSP34x0AudioControls@@QAEXJJJJJ@Z
_TEXT	SEGMENT
tv178 = -12						; size = 4
tv71 = -8						; size = 4
_this$ = -4						; size = 4
_Mode$ = 8						; size = 4
_nNoise$ = 12						; size = 4
_nSpatial$ = 16						; size = 4
_nPan$ = 20						; size = 4
_Panorama$ = 24						; size = 4
?SetDolby@CMSP34x0AudioControls@@QAEXJJJJJ@Z PROC	; CMSP34x0AudioControls::SetDolby, COMDAT
; _this$ = ecx

; 264  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH
  00006	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 265  :     //if (!m_HasDolby)
; 266  :     //{
; 267  :     //    return;
; 268  :     //}
; 269  : 
; 270  :    // Disable spatial effects
; 271  :    SetDSPRegister(DSP_WR_LDSPK_SPATIALEFF, 0);

  00009	6a 00		 push	 0
  0000b	6a 05		 push	 5
  0000d	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00010	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister

; 272  : 
; 273  :     switch (Mode)

  00015	8b 45 08	 mov	 eax, DWORD PTR _Mode$[ebp]
  00018	89 45 f8	 mov	 DWORD PTR tv71[ebp], eax
  0001b	83 7d f8 01	 cmp	 DWORD PTR tv71[ebp], 1
  0001f	74 0e		 je	 SHORT $LN3@SetDolby
  00021	83 7d f8 02	 cmp	 DWORD PTR tv71[ebp], 2
  00025	74 22		 je	 SHORT $LN2@SetDolby
  00027	83 7d f8 03	 cmp	 DWORD PTR tv71[ebp], 3
  0002b	74 39		 je	 SHORT $LN1@SetDolby
  0002d	eb 5d		 jmp	 SHORT $LN4@SetDolby
$LN3@SetDolby:

; 274  :     {
; 275  :       case 1: //through
; 276  :          SetDSPRegister(DSP_WR_SURROUND_PROCESSING, 0);

  0002f	6a 00		 push	 0
  00031	6a 48		 push	 72			; 00000048H
  00033	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00036	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister

; 277  :          SetDSPRegister(DSP_WR_SURROUND_NOISE, 0);

  0003b	6a 00		 push	 0
  0003d	6a 4d		 push	 77			; 0000004dH
  0003f	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00042	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister

; 278  :          break;

  00047	eb 43		 jmp	 SHORT $LN4@SetDolby
$LN2@SetDolby:

; 279  :       case 2: //prologic
; 280  :          SetDSPRegister(DSP_WR_SURROUND_PROCESSING, 0x0100);

  00049	68 00 01 00 00	 push	 256			; 00000100H
  0004e	6a 48		 push	 72			; 00000048H
  00050	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00053	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister

; 281  :          SetDSPRegister(DSP_WR_SURROUND_NOISE, 0);

  00058	6a 00		 push	 0
  0005a	6a 4d		 push	 77			; 0000004dH
  0005c	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0005f	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister

; 282  :          break;

  00064	eb 26		 jmp	 SHORT $LN4@SetDolby
$LN1@SetDolby:

; 283  :       case 3: //noise mode
; 284  :          SetDSPRegister(DSP_WR_SURROUND_PROCESSING, 0);

  00066	6a 00		 push	 0
  00068	6a 48		 push	 72			; 00000048H
  0006a	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0006d	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister

; 285  :          SetDSPRegister(DSP_WR_SURROUND_NOISE, WORD(0x8000 | (nNoise&0xF0)));

  00072	8b 4d 0c	 mov	 ecx, DWORD PTR _nNoise$[ebp]
  00075	81 e1 f0 00 00
	00		 and	 ecx, 240		; 000000f0H
  0007b	81 c9 00 80 00
	00		 or	 ecx, 32768		; 00008000H
  00081	51		 push	 ecx
  00082	6a 4d		 push	 77			; 0000004dH
  00084	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00087	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister
$LN4@SetDolby:

; 286  :          break;
; 287  :     }
; 288  : 
; 289  :     // Set Virtual surround Spatial effects
; 290  :     SetDSPRegister(DSP_WR_SURROUND_SPATIAL, WORD(int(nSpatial) << 8) );

  0008c	8b 55 10	 mov	 edx, DWORD PTR _nSpatial$[ebp]
  0008f	c1 e2 08	 shl	 edx, 8
  00092	52		 push	 edx
  00093	6a 49		 push	 73			; 00000049H
  00095	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00098	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister

; 291  : 
; 292  :     // Set Panorama effect...
; 293  :     SetDSPRegister(DSP_WR_SURROUND_PANORAMA, WORD(int(nPan)     << 8) );

  0009d	8b 45 14	 mov	 eax, DWORD PTR _nPan$[ebp]
  000a0	c1 e0 08	 shl	 eax, 8
  000a3	50		 push	 eax
  000a4	6a 4a		 push	 74			; 0000004aH
  000a6	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  000a9	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister

; 294  : 
; 295  :     // Based on requested mode, set it.
; 296  :     SetDSPRegister(DSP_WR_SURROUND_PANORAMA_MODE, ((Panorama==1) ? 0x50 :
; 297  :             ((Panorama==2) ? 0x60 : 0)));

  000ae	83 7d 18 01	 cmp	 DWORD PTR _Panorama$[ebp], 1
  000b2	75 09		 jne	 SHORT $LN8@SetDolby
  000b4	c7 45 f4 50 00
	00 00		 mov	 DWORD PTR tv178[ebp], 80 ; 00000050H
  000bb	eb 12		 jmp	 SHORT $LN9@SetDolby
$LN8@SetDolby:
  000bd	33 c9		 xor	 ecx, ecx
  000bf	83 7d 18 02	 cmp	 DWORD PTR _Panorama$[ebp], 2
  000c3	0f 95 c1	 setne	 cl
  000c6	83 e9 01	 sub	 ecx, 1
  000c9	83 e1 60	 and	 ecx, 96			; 00000060H
  000cc	89 4d f4	 mov	 DWORD PTR tv178[ebp], ecx
$LN9@SetDolby:
  000cf	0f b7 55 f4	 movzx	 edx, WORD PTR tv178[ebp]
  000d3	52		 push	 edx
  000d4	6a 4b		 push	 75			; 0000004bH
  000d6	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  000d9	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister

; 298  : 
; 299  : }

  000de	8b e5		 mov	 esp, ebp
  000e0	5d		 pop	 ebp
  000e1	c2 14 00	 ret	 20			; 00000014H
?SetDolby@CMSP34x0AudioControls@@QAEXJJJJJ@Z ENDP	; CMSP34x0AudioControls::SetDolby
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?SetAutoVolumeCorrection@CMSP34x0AudioControls@@UAEXJ@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_Val$140608 = -4					; size = 2
_milliSeconds$ = 8					; size = 4
?SetAutoVolumeCorrection@CMSP34x0AudioControls@@UAEXJ@Z PROC ; CMSP34x0AudioControls::SetAutoVolumeCorrection, COMDAT
; _this$ = ecx

; 238  : {

  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

; 239  :     if (milliSeconds == 0)

  00009	83 7d 08 00	 cmp	 DWORD PTR _milliSeconds$[ebp], 0
  0000d	75 11		 jne	 SHORT $LN5@SetAutoVol@2

; 240  :     {
; 241  :         SetDSPRegister(DSP_WR_AVC, 0x0000);

  0000f	6a 00		 push	 0
  00011	6a 29		 push	 41			; 00000029H
  00013	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00016	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00019	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister

; 242  :     }
; 243  :     else

  0001e	eb 5d		 jmp	 SHORT $LN6@SetAutoVol@2
$LN5@SetAutoVol@2:

; 244  :     {
; 245  :         WORD Val = 0x08; //8 seconds

  00020	b8 08 00 00 00	 mov	 eax, 8
  00025	66 89 45 fc	 mov	 WORD PTR _Val$140608[ebp], ax

; 246  :         if (milliSeconds <= 4000)

  00029	81 7d 08 a0 0f
	00 00		 cmp	 DWORD PTR _milliSeconds$[ebp], 4000 ; 00000fa0H
  00030	7f 09		 jg	 SHORT $LN3@SetAutoVol@2

; 247  :         {
; 248  :             Val = 0x04;  //4 seconds

  00032	b9 04 00 00 00	 mov	 ecx, 4
  00037	66 89 4d fc	 mov	 WORD PTR _Val$140608[ebp], cx
$LN3@SetAutoVol@2:

; 249  :         }
; 250  :         if (milliSeconds <= 2000)

  0003b	81 7d 08 d0 07
	00 00		 cmp	 DWORD PTR _milliSeconds$[ebp], 2000 ; 000007d0H
  00042	7f 09		 jg	 SHORT $LN2@SetAutoVol@2

; 251  :         {
; 252  :             Val = 0x02;  //2 seconds

  00044	ba 02 00 00 00	 mov	 edx, 2
  00049	66 89 55 fc	 mov	 WORD PTR _Val$140608[ebp], dx
$LN2@SetAutoVol@2:

; 253  :         }
; 254  :         if (milliSeconds < 1000)

  0004d	81 7d 08 e8 03
	00 00		 cmp	 DWORD PTR _milliSeconds$[ebp], 1000 ; 000003e8H
  00054	7d 09		 jge	 SHORT $LN1@SetAutoVol@2

; 255  :         {
; 256  :             Val = 0x01;  //20 ms

  00056	b8 01 00 00 00	 mov	 eax, 1
  0005b	66 89 45 fc	 mov	 WORD PTR _Val$140608[ebp], ax
$LN1@SetAutoVol@2:

; 257  :         }
; 258  : 
; 259  :         SetDSPRegister(DSP_WR_AVC, 0x8000 | ((Val&0x0F) << 8));

  0005f	0f b7 4d fc	 movzx	 ecx, WORD PTR _Val$140608[ebp]
  00063	83 e1 0f	 and	 ecx, 15			; 0000000fH
  00066	c1 e1 08	 shl	 ecx, 8
  00069	81 c9 00 80 00
	00		 or	 ecx, 32768		; 00008000H
  0006f	51		 push	 ecx
  00070	6a 29		 push	 41			; 00000029H
  00072	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00075	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00078	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister
$LN6@SetAutoVol@2:

; 260  :     }
; 261  : }

  0007d	8b e5		 mov	 esp, ebp
  0007f	5d		 pop	 ebp
  00080	c2 04 00	 ret	 4
?SetAutoVolumeCorrection@CMSP34x0AudioControls@@UAEXJ@Z ENDP ; CMSP34x0AudioControls::SetAutoVolumeCorrection
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?GetLoudness@CMSP34x0AudioControls@@UAEGXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetLoudness@CMSP34x0AudioControls@@UAEGXZ PROC		; CMSP34x0AudioControls::GetLoudness, COMDAT
; _this$ = ecx

; 233  : {

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

; 234  :     return (GetDSPRegister(DSP_RD_LDSPK_LOUDNESS) >> 8) & 0xFF;

  00007	6a 04		 push	 4
  00009	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000c	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  0000f	e8 00 00 00 00	 call	 ?GetDSPRegister@CMSP34x0@@IAEGW4eDSPReadRegister@1@@Z ; CMSP34x0::GetDSPRegister
  00014	0f b7 c0	 movzx	 eax, ax
  00017	c1 f8 08	 sar	 eax, 8
  0001a	25 ff 00 00 00	 and	 eax, 255		; 000000ffH

; 235  : }

  0001f	8b e5		 mov	 esp, ebp
  00021	5d		 pop	 ebp
  00022	c3		 ret	 0
?GetLoudness@CMSP34x0AudioControls@@UAEGXZ ENDP		; CMSP34x0AudioControls::GetLoudness
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?SetLoudness@CMSP34x0AudioControls@@UAEXG@Z
_TEXT	SEGMENT
_this$ = -12						; size = 4
_headph$ = -8						; size = 2
_ldspkr$ = -4						; size = 2
_nLevel$ = 8						; size = 2
?SetLoudness@CMSP34x0AudioControls@@UAEXG@Z PROC	; CMSP34x0AudioControls::SetLoudness, COMDAT
; _this$ = ecx

; 216  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH
  00006	89 4d f4	 mov	 DWORD PTR _this$[ebp], ecx

; 217  :     WORD ldspkr, headph;
; 218  : 
; 219  :     if (nLevel > 68)

  00009	0f b7 45 08	 movzx	 eax, WORD PTR _nLevel$[ebp]
  0000d	83 f8 44	 cmp	 eax, 68			; 00000044H
  00010	7e 02		 jle	 SHORT $LN1@SetLoudnes@2

; 220  :     {
; 221  :         return;

  00012	eb 75		 jmp	 SHORT $LN2@SetLoudnes@2
$LN1@SetLoudnes@2:

; 222  :     }
; 223  : 
; 224  :     ldspkr = (GetDSPRegister(DSP_RD_LDSPK_LOUDNESS) & 0xFF) | ((nLevel & 0xFF) << 8);

  00014	6a 04		 push	 4
  00016	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00019	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  0001c	e8 00 00 00 00	 call	 ?GetDSPRegister@CMSP34x0@@IAEGW4eDSPReadRegister@1@@Z ; CMSP34x0::GetDSPRegister
  00021	0f b7 c8	 movzx	 ecx, ax
  00024	81 e1 ff 00 00
	00		 and	 ecx, 255		; 000000ffH
  0002a	0f b7 55 08	 movzx	 edx, WORD PTR _nLevel$[ebp]
  0002e	81 e2 ff 00 00
	00		 and	 edx, 255		; 000000ffH
  00034	c1 e2 08	 shl	 edx, 8
  00037	0b ca		 or	 ecx, edx
  00039	66 89 4d fc	 mov	 WORD PTR _ldspkr$[ebp], cx

; 225  :     headph = (GetDSPRegister(DSP_RD_HEADPH_LOUDNESS) & 0xFF) | ((nLevel & 0xFF) << 8);

  0003d	6a 33		 push	 51			; 00000033H
  0003f	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00042	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00045	e8 00 00 00 00	 call	 ?GetDSPRegister@CMSP34x0@@IAEGW4eDSPReadRegister@1@@Z ; CMSP34x0::GetDSPRegister
  0004a	0f b7 c0	 movzx	 eax, ax
  0004d	25 ff 00 00 00	 and	 eax, 255		; 000000ffH
  00052	0f b7 4d 08	 movzx	 ecx, WORD PTR _nLevel$[ebp]
  00056	81 e1 ff 00 00
	00		 and	 ecx, 255		; 000000ffH
  0005c	c1 e1 08	 shl	 ecx, 8
  0005f	0b c1		 or	 eax, ecx
  00061	66 89 45 f8	 mov	 WORD PTR _headph$[ebp], ax

; 226  : 
; 227  :     SetDSPRegister(DSP_WR_LDSPK_LOUDNESS, ldspkr);

  00065	0f b7 55 fc	 movzx	 edx, WORD PTR _ldspkr$[ebp]
  00069	52		 push	 edx
  0006a	6a 04		 push	 4
  0006c	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0006f	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00072	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister

; 228  :     SetDSPRegister(DSP_WR_HEADPH_LOUDNESS, headph);

  00077	0f b7 45 f8	 movzx	 eax, WORD PTR _headph$[ebp]
  0007b	50		 push	 eax
  0007c	6a 33		 push	 51			; 00000033H
  0007e	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00081	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00084	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister
$LN2@SetLoudnes@2:

; 229  : }

  00089	8b e5		 mov	 esp, ebp
  0008b	5d		 pop	 ebp
  0008c	c2 04 00	 ret	 4
?SetLoudness@CMSP34x0AudioControls@@UAEXG@Z ENDP	; CMSP34x0AudioControls::SetLoudness
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?IsBassBoosted@CMSP34x0AudioControls@@UAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?IsBassBoosted@CMSP34x0AudioControls@@UAEHXZ PROC	; CMSP34x0AudioControls::IsBassBoosted, COMDAT
; _this$ = ecx

; 205  : {

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

; 206  :     return (GetDSPRegister(DSP_RD_LDSPK_LOUDNESS) & 4) == 4;

  00007	6a 04		 push	 4
  00009	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000c	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  0000f	e8 00 00 00 00	 call	 ?GetDSPRegister@CMSP34x0@@IAEGW4eDSPReadRegister@1@@Z ; CMSP34x0::GetDSPRegister
  00014	0f b7 c0	 movzx	 eax, ax
  00017	83 e0 04	 and	 eax, 4
  0001a	33 c9		 xor	 ecx, ecx
  0001c	83 f8 04	 cmp	 eax, 4
  0001f	0f 94 c1	 sete	 cl
  00022	8b c1		 mov	 eax, ecx

; 207  : }

  00024	8b e5		 mov	 esp, ebp
  00026	5d		 pop	 ebp
  00027	c3		 ret	 0
?IsBassBoosted@CMSP34x0AudioControls@@UAEHXZ ENDP	; CMSP34x0AudioControls::IsBassBoosted
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?SetBassBoost@CMSP34x0AudioControls@@UAEXH@Z
_TEXT	SEGMENT
_this$ = -12						; size = 4
_headph$ = -8						; size = 2
_ldspkr$ = -4						; size = 2
_bBoost$ = 8						; size = 4
?SetBassBoost@CMSP34x0AudioControls@@UAEXH@Z PROC	; CMSP34x0AudioControls::SetBassBoost, COMDAT
; _this$ = ecx

; 185  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH
  00006	89 4d f4	 mov	 DWORD PTR _this$[ebp], ecx

; 186  :     WORD ldspkr, headph;
; 187  : 
; 188  :     ldspkr = GetDSPRegister(DSP_RD_LDSPK_LOUDNESS);

  00009	6a 04		 push	 4
  0000b	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0000e	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00011	e8 00 00 00 00	 call	 ?GetDSPRegister@CMSP34x0@@IAEGW4eDSPReadRegister@1@@Z ; CMSP34x0::GetDSPRegister
  00016	66 89 45 fc	 mov	 WORD PTR _ldspkr$[ebp], ax

; 189  :     headph = GetDSPRegister(DSP_RD_HEADPH_LOUDNESS);

  0001a	6a 33		 push	 51			; 00000033H
  0001c	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0001f	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00022	e8 00 00 00 00	 call	 ?GetDSPRegister@CMSP34x0@@IAEGW4eDSPReadRegister@1@@Z ; CMSP34x0::GetDSPRegister
  00027	66 89 45 f8	 mov	 WORD PTR _headph$[ebp], ax

; 190  :     if (bBoost)

  0002b	83 7d 08 00	 cmp	 DWORD PTR _bBoost$[ebp], 0
  0002f	74 18		 je	 SHORT $LN2@SetBassBoo@2

; 191  :     {
; 192  :         ldspkr |= 4;

  00031	0f b7 45 fc	 movzx	 eax, WORD PTR _ldspkr$[ebp]
  00035	83 c8 04	 or	 eax, 4
  00038	66 89 45 fc	 mov	 WORD PTR _ldspkr$[ebp], ax

; 193  :         headph |= 4;

  0003c	0f b7 4d f8	 movzx	 ecx, WORD PTR _headph$[ebp]
  00040	83 c9 04	 or	 ecx, 4
  00043	66 89 4d f8	 mov	 WORD PTR _headph$[ebp], cx

; 194  :     }
; 195  :     else

  00047	eb 1b		 jmp	 SHORT $LN1@SetBassBoo@2
$LN2@SetBassBoo@2:

; 196  :     {
; 197  :         ldspkr &= 0xFFFB;

  00049	0f b7 55 fc	 movzx	 edx, WORD PTR _ldspkr$[ebp]
  0004d	81 e2 fb ff 00
	00		 and	 edx, 65531		; 0000fffbH
  00053	66 89 55 fc	 mov	 WORD PTR _ldspkr$[ebp], dx

; 198  :         headph &= 0xFFFB;

  00057	0f b7 45 f8	 movzx	 eax, WORD PTR _headph$[ebp]
  0005b	25 fb ff 00 00	 and	 eax, 65531		; 0000fffbH
  00060	66 89 45 f8	 mov	 WORD PTR _headph$[ebp], ax
$LN1@SetBassBoo@2:

; 199  :     }
; 200  :     SetDSPRegister(DSP_WR_LDSPK_LOUDNESS, ldspkr);

  00064	0f b7 4d fc	 movzx	 ecx, WORD PTR _ldspkr$[ebp]
  00068	51		 push	 ecx
  00069	6a 04		 push	 4
  0006b	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0006e	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00071	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister

; 201  :     SetDSPRegister(DSP_WR_HEADPH_LOUDNESS, headph);

  00076	0f b7 55 f8	 movzx	 edx, WORD PTR _headph$[ebp]
  0007a	52		 push	 edx
  0007b	6a 33		 push	 51			; 00000033H
  0007d	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00080	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00083	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister

; 202  : }

  00088	8b e5		 mov	 esp, ebp
  0008a	5d		 pop	 ebp
  0008b	c2 04 00	 ret	 4
?SetBassBoost@CMSP34x0AudioControls@@UAEXH@Z ENDP	; CMSP34x0AudioControls::SetBassBoost
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?SetEqualizerLevel@CMSP34x0AudioControls@@UAEXGG@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_nIndex$ = 8						; size = 2
_nLevel$ = 12						; size = 2
?SetEqualizerLevel@CMSP34x0AudioControls@@UAEXGG@Z PROC	; CMSP34x0AudioControls::SetEqualizerLevel, COMDAT
; _this$ = ecx

; 157  : {

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

; 158  :     if ((nIndex < 0) || (nIndex>32767))

  00007	0f b7 45 08	 movzx	 eax, WORD PTR _nIndex$[ebp]
  0000b	85 c0		 test	 eax, eax
  0000d	7c 0c		 jl	 SHORT $LN5@SetEqualiz
  0000f	0f b7 4d 08	 movzx	 ecx, WORD PTR _nIndex$[ebp]
  00013	81 f9 ff 7f 00
	00		 cmp	 ecx, 32767		; 00007fffH
  00019	7e 1e		 jle	 SHORT $LN6@SetEqualiz
$LN5@SetEqualiz:

; 159  :     {
; 160  :         //Enable/disable equalizer
; 161  :         //Disable means: bass & treble control is active
; 162  :         SetDSPRegister(DSP_WR_MODE_TONE_CTL, nLevel ? 0xFF00 : 0x0000);

  0001b	0f b7 55 0c	 movzx	 edx, WORD PTR _nLevel$[ebp]
  0001f	f7 da		 neg	 edx
  00021	1b d2		 sbb	 edx, edx
  00023	81 e2 00 ff 00
	00		 and	 edx, 65280		; 0000ff00H
  00029	52		 push	 edx
  0002a	6a 20		 push	 32			; 00000020H
  0002c	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0002f	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00032	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister

; 163  :         return;

  00037	eb 51		 jmp	 SHORT $LN7@SetEqualiz
$LN6@SetEqualiz:

; 164  :     }
; 165  : 
; 166  :     if (!HasEqualizers() || nIndex > 4)

  00039	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0003c	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0003f	8b 10		 mov	 edx, DWORD PTR [eax]
  00041	8b 42 40	 mov	 eax, DWORD PTR [edx+64]
  00044	ff d0		 call	 eax
  00046	85 c0		 test	 eax, eax
  00048	74 09		 je	 SHORT $LN3@SetEqualiz
  0004a	0f b7 4d 08	 movzx	 ecx, WORD PTR _nIndex$[ebp]
  0004e	83 f9 04	 cmp	 ecx, 4
  00051	7e 02		 jle	 SHORT $LN4@SetEqualiz
$LN3@SetEqualiz:

; 167  :     {
; 168  :         return;

  00053	eb 35		 jmp	 SHORT $LN7@SetEqualiz
$LN4@SetEqualiz:

; 169  :     }
; 170  :     if (nLevel < -96 || nLevel > 96)

  00055	0f b7 55 0c	 movzx	 edx, WORD PTR _nLevel$[ebp]
  00059	83 fa a0	 cmp	 edx, -96		; ffffffa0H
  0005c	7c 09		 jl	 SHORT $LN1@SetEqualiz
  0005e	0f b7 45 0c	 movzx	 eax, WORD PTR _nLevel$[ebp]
  00062	83 f8 60	 cmp	 eax, 96			; 00000060H
  00065	7e 02		 jle	 SHORT $LN2@SetEqualiz
$LN1@SetEqualiz:

; 171  :     {
; 172  :         return;

  00067	eb 21		 jmp	 SHORT $LN7@SetEqualiz
$LN2@SetEqualiz:

; 173  :     }
; 174  : 
; 175  :     SetDSPRegister((eDSPWriteRegister)(DSP_WR_LDSPK_EQ1 + nIndex), (nLevel & 0xFF) << 8);

  00069	0f b7 4d 0c	 movzx	 ecx, WORD PTR _nLevel$[ebp]
  0006d	81 e1 ff 00 00
	00		 and	 ecx, 255		; 000000ffH
  00073	c1 e1 08	 shl	 ecx, 8
  00076	51		 push	 ecx
  00077	0f b7 55 08	 movzx	 edx, WORD PTR _nIndex$[ebp]
  0007b	83 c2 21	 add	 edx, 33			; 00000021H
  0007e	52		 push	 edx
  0007f	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00082	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00085	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister
$LN7@SetEqualiz:

; 176  : }

  0008a	8b e5		 mov	 esp, ebp
  0008c	5d		 pop	 ebp
  0008d	c2 08 00	 ret	 8
?SetEqualizerLevel@CMSP34x0AudioControls@@UAEXGG@Z ENDP	; CMSP34x0AudioControls::SetEqualizerLevel
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?SetTreble@CMSP34x0AudioControls@@UAEXG@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_nTreble$ = 8						; size = 2
?SetTreble@CMSP34x0AudioControls@@UAEXG@Z PROC		; CMSP34x0AudioControls::SetTreble, COMDAT
; _this$ = ecx

; 125  : {

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

; 126  :     if (nTreble < -96)

  00007	0f b7 45 08	 movzx	 eax, WORD PTR _nTreble$[ebp]
  0000b	83 f8 a0	 cmp	 eax, -96		; ffffffa0H
  0000e	7d 02		 jge	 SHORT $LN1@SetTreble@2

; 127  :     {
; 128  :         return;

  00010	eb 3f		 jmp	 SHORT $LN2@SetTreble@2
$LN1@SetTreble@2:

; 129  :     }
; 130  :     m_nTreble = nTreble;

  00012	0f b7 4d 08	 movzx	 ecx, WORD PTR _nTreble$[ebp]
  00016	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00019	89 4a 14	 mov	 DWORD PTR [edx+20], ecx

; 131  :     SetDSPRegister(DSP_WR_LDSPK_TREBLE, (nTreble & 0xFF) << 8);

  0001c	0f b7 45 08	 movzx	 eax, WORD PTR _nTreble$[ebp]
  00020	25 ff 00 00 00	 and	 eax, 255		; 000000ffH
  00025	c1 e0 08	 shl	 eax, 8
  00028	50		 push	 eax
  00029	6a 03		 push	 3
  0002b	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0002e	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00031	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister

; 132  :     SetDSPRegister(DSP_WR_HEADPH_TREBLE, (nTreble & 0xFF) << 8);

  00036	0f b7 4d 08	 movzx	 ecx, WORD PTR _nTreble$[ebp]
  0003a	81 e1 ff 00 00
	00		 and	 ecx, 255		; 000000ffH
  00040	c1 e1 08	 shl	 ecx, 8
  00043	51		 push	 ecx
  00044	6a 32		 push	 50			; 00000032H
  00046	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00049	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  0004c	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister
$LN2@SetTreble@2:

; 133  : }

  00051	8b e5		 mov	 esp, ebp
  00053	5d		 pop	 ebp
  00054	c2 04 00	 ret	 4
?SetTreble@CMSP34x0AudioControls@@UAEXG@Z ENDP		; CMSP34x0AudioControls::SetTreble
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?SetBass@CMSP34x0AudioControls@@UAEXG@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_nBass$ = 8						; size = 2
?SetBass@CMSP34x0AudioControls@@UAEXG@Z PROC		; CMSP34x0AudioControls::SetBass, COMDAT
; _this$ = ecx

; 109  : {

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

; 110  :     if (nBass < -96)

  00007	0f b7 45 08	 movzx	 eax, WORD PTR _nBass$[ebp]
  0000b	83 f8 a0	 cmp	 eax, -96		; ffffffa0H
  0000e	7d 02		 jge	 SHORT $LN1@SetBass@2

; 111  :     {
; 112  :         return;

  00010	eb 3f		 jmp	 SHORT $LN2@SetBass@2
$LN1@SetBass@2:

; 113  :     }
; 114  :     m_nBass = nBass;

  00012	0f b7 4d 08	 movzx	 ecx, WORD PTR _nBass$[ebp]
  00016	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00019	89 4a 10	 mov	 DWORD PTR [edx+16], ecx

; 115  :     SetDSPRegister(DSP_WR_LDSPK_BASS, (nBass & 0xFF) << 8);

  0001c	0f b7 45 08	 movzx	 eax, WORD PTR _nBass$[ebp]
  00020	25 ff 00 00 00	 and	 eax, 255		; 000000ffH
  00025	c1 e0 08	 shl	 eax, 8
  00028	50		 push	 eax
  00029	6a 02		 push	 2
  0002b	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0002e	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00031	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister

; 116  :     SetDSPRegister(DSP_WR_HEADPH_BASS, (nBass & 0xFF) << 8);

  00036	0f b7 4d 08	 movzx	 ecx, WORD PTR _nBass$[ebp]
  0003a	81 e1 ff 00 00
	00		 and	 ecx, 255		; 000000ffH
  00040	c1 e1 08	 shl	 ecx, 8
  00043	51		 push	 ecx
  00044	6a 31		 push	 49			; 00000031H
  00046	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00049	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  0004c	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister
$LN2@SetBass@2:

; 117  : }

  00051	8b e5		 mov	 esp, ebp
  00053	5d		 pop	 ebp
  00054	c2 04 00	 ret	 4
?SetBass@CMSP34x0AudioControls@@UAEXG@Z ENDP		; CMSP34x0AudioControls::SetBass
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?SetBalance@CMSP34x0AudioControls@@UAEXG@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_nBalance$ = 8						; size = 2
?SetBalance@CMSP34x0AudioControls@@UAEXG@Z PROC		; CMSP34x0AudioControls::SetBalance, COMDAT
; _this$ = ecx

; 97   : {

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

; 98   :     m_nBalance = nBalance;

  00007	0f b7 45 08	 movzx	 eax, WORD PTR _nBalance$[ebp]
  0000b	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000e	89 41 0c	 mov	 DWORD PTR [ecx+12], eax

; 99   :     SetDSPRegister(DSP_WR_LDSPK_BALANCE, (nBalance & 0xFF) << 8);

  00011	0f b7 55 08	 movzx	 edx, WORD PTR _nBalance$[ebp]
  00015	81 e2 ff 00 00
	00		 and	 edx, 255		; 000000ffH
  0001b	c1 e2 08	 shl	 edx, 8
  0001e	52		 push	 edx
  0001f	6a 01		 push	 1
  00021	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00024	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00027	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister

; 100  :     SetDSPRegister(DSP_WR_HEADPH_BALANCE, (nBalance & 0xFF) << 8);

  0002c	0f b7 45 08	 movzx	 eax, WORD PTR _nBalance$[ebp]
  00030	25 ff 00 00 00	 and	 eax, 255		; 000000ffH
  00035	c1 e0 08	 shl	 eax, 8
  00038	50		 push	 eax
  00039	6a 30		 push	 48			; 00000030H
  0003b	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0003e	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00041	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister

; 101  : }

  00046	8b e5		 mov	 esp, ebp
  00048	5d		 pop	 ebp
  00049	c2 04 00	 ret	 4
?SetBalance@CMSP34x0AudioControls@@UAEXG@Z ENDP		; CMSP34x0AudioControls::SetBalance
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?SetVolume@CMSP34x0AudioControls@@UAEXG@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_nVolume$ = 8						; size = 2
?SetVolume@CMSP34x0AudioControls@@UAEXG@Z PROC		; CMSP34x0AudioControls::SetVolume, COMDAT
; _this$ = ecx

; 72   : {

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

; 73   :     if (nVolume < 0 || nVolume > 1000)

  00007	0f b7 45 08	 movzx	 eax, WORD PTR _nVolume$[ebp]
  0000b	85 c0		 test	 eax, eax
  0000d	7c 0c		 jl	 SHORT $LN2@SetVolume@4
  0000f	0f b7 4d 08	 movzx	 ecx, WORD PTR _nVolume$[ebp]
  00013	81 f9 e8 03 00
	00		 cmp	 ecx, 1000		; 000003e8H
  00019	7e 05		 jle	 SHORT $LN3@SetVolume@4
$LN2@SetVolume@4:

; 74   :     {
; 75   :         return;

  0001b	e9 93 00 00 00	 jmp	 $LN4@SetVolume@4
$LN3@SetVolume@4:

; 76   :     }
; 77   :     m_nVolume = nVolume;

  00020	0f b7 55 08	 movzx	 edx, WORD PTR _nVolume$[ebp]
  00024	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00027	89 50 08	 mov	 DWORD PTR [eax+8], edx

; 78   :     nVolume = MulDiv(nVolume, 0x7f0, 1000);

  0002a	68 e8 03 00 00	 push	 1000			; 000003e8H
  0002f	68 f0 07 00 00	 push	 2032			; 000007f0H
  00034	0f b7 4d 08	 movzx	 ecx, WORD PTR _nVolume$[ebp]
  00038	51		 push	 ecx
  00039	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__MulDiv@12
  0003f	66 89 45 08	 mov	 WORD PTR _nVolume$[ebp], ax

; 79   :     // Use Mute if less than 0x10
; 80   :     if(nVolume < 0x10)

  00043	0f b7 55 08	 movzx	 edx, WORD PTR _nVolume$[ebp]
  00047	83 fa 10	 cmp	 edx, 16			; 00000010H
  0004a	7d 06		 jge	 SHORT $LN1@SetVolume@4

; 81   :     {
; 82   :         nVolume = 0;

  0004c	33 c0		 xor	 eax, eax
  0004e	66 89 45 08	 mov	 WORD PTR _nVolume$[ebp], ax
$LN1@SetVolume@4:

; 83   :     }
; 84   :     SetDSPRegister(DSP_WR_LDSPK_VOLUME, nVolume << 4);

  00052	0f b7 4d 08	 movzx	 ecx, WORD PTR _nVolume$[ebp]
  00056	c1 e1 04	 shl	 ecx, 4
  00059	51		 push	 ecx
  0005a	6a 00		 push	 0
  0005c	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0005f	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00062	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister

; 85   :     SetDSPRegister(DSP_WR_HEADPH_VOLUME, nVolume << 4);

  00067	0f b7 55 08	 movzx	 edx, WORD PTR _nVolume$[ebp]
  0006b	c1 e2 04	 shl	 edx, 4
  0006e	52		 push	 edx
  0006f	6a 06		 push	 6
  00071	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00074	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00077	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister

; 86   : 
; 87   :     SetDSPRegister(DSP_WR_SCART1_VOLUME, (nVolume!=0) ? 0x4000 : 0);

  0007c	0f b7 45 08	 movzx	 eax, WORD PTR _nVolume$[ebp]
  00080	f7 d8		 neg	 eax
  00082	1b c0		 sbb	 eax, eax
  00084	25 00 40 00 00	 and	 eax, 16384		; 00004000H
  00089	50		 push	 eax
  0008a	6a 07		 push	 7
  0008c	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0008f	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00092	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister

; 88   :     SetDSPRegister(DSP_WR_SCART2_VOLUME, (nVolume!=0) ? 0x4000 : 0);

  00097	0f b7 4d 08	 movzx	 ecx, WORD PTR _nVolume$[ebp]
  0009b	f7 d9		 neg	 ecx
  0009d	1b c9		 sbb	 ecx, ecx
  0009f	81 e1 00 40 00
	00		 and	 ecx, 16384		; 00004000H
  000a5	51		 push	 ecx
  000a6	6a 40		 push	 64			; 00000040H
  000a8	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  000ab	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  000ae	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister
$LN4@SetVolume@4:

; 89   : }

  000b3	8b e5		 mov	 esp, ebp
  000b5	5d		 pop	 ebp
  000b6	c2 04 00	 ret	 4
?SetVolume@CMSP34x0AudioControls@@UAEXG@Z ENDP		; CMSP34x0AudioControls::SetVolume
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?SetMute@CMSP34x0AudioControls@@UAEXH@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_mute$ = 8						; size = 4
?SetMute@CMSP34x0AudioControls@@UAEXH@Z PROC		; CMSP34x0AudioControls::SetMute, COMDAT
; _this$ = ecx

; 53   : {

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

; 54   :     m_bMuted = mute;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 4d 08	 mov	 ecx, DWORD PTR _mute$[ebp]
  0000d	89 48 04	 mov	 DWORD PTR [eax+4], ecx

; 55   :     if (m_bMuted)

  00010	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00013	83 7a 04 00	 cmp	 DWORD PTR [edx+4], 0
  00017	74 26		 je	 SHORT $LN2@SetMute@3

; 56   :     {
; 57   :         SetDSPRegister(DSP_WR_LDSPK_VOLUME, 0xFF00);

  00019	68 00 ff 00 00	 push	 65280			; 0000ff00H
  0001e	6a 00		 push	 0
  00020	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00023	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00026	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister

; 58   :         SetDSPRegister(DSP_WR_HEADPH_VOLUME, 0xFF00);

  0002b	68 00 ff 00 00	 push	 65280			; 0000ff00H
  00030	6a 06		 push	 6
  00032	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00035	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00038	e8 00 00 00 00	 call	 ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister

; 59   :     }
; 60   :     else

  0003d	eb 15		 jmp	 SHORT $LN3@SetMute@3
$LN2@SetMute@3:

; 61   :     {
; 62   :         SetVolume(m_nVolume);

  0003f	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00042	0f b7 48 08	 movzx	 ecx, WORD PTR [eax+8]
  00046	51		 push	 ecx
  00047	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0004a	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  0004d	8b 02		 mov	 eax, DWORD PTR [edx]
  0004f	8b 50 14	 mov	 edx, DWORD PTR [eax+20]
  00052	ff d2		 call	 edx
$LN3@SetMute@3:

; 63   :     }
; 64   : }

  00054	8b e5		 mov	 esp, ebp
  00056	5d		 pop	 ebp
  00057	c2 04 00	 ret	 4
?SetMute@CMSP34x0AudioControls@@UAEXH@Z ENDP		; CMSP34x0AudioControls::SetMute
END
