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

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

INCLUDELIB OLDNAMES

PUBLIC	?OnEvent@CTDA9875AudioControls@@UAEXPAVCEventObject@@W4eEventType@@JJPAW43@@Z ; CTDA9875AudioControls::OnEvent
PUBLIC	??_R4CTDA9875AudioControls@@6BCEventObject@@@	; CTDA9875AudioControls::`RTTI Complete Object Locator'
PUBLIC	?GetAutoVolumeCorrection@CTDA9875AudioControls@@UAEJXZ ; CTDA9875AudioControls::GetAutoVolumeCorrection
PUBLIC	?SetAutoVolumeCorrection@CTDA9875AudioControls@@UAEXJ@Z ; CTDA9875AudioControls::SetAutoVolumeCorrection
PUBLIC	?HasAutoVolumeCorrection@CTDA9875AudioControls@@UAEHXZ ; CTDA9875AudioControls::HasAutoVolumeCorrection
PUBLIC	?HasDolby@CTDA9875AudioControls@@UAEHXZ		; CTDA9875AudioControls::HasDolby
PUBLIC	?GetSpatialEffect@CTDA9875AudioControls@@UAEHXZ	; CTDA9875AudioControls::GetSpatialEffect
PUBLIC	?SetSpatialEffect@CTDA9875AudioControls@@UAEXH@Z ; CTDA9875AudioControls::SetSpatialEffect
PUBLIC	?HasSpatialEffect@CTDA9875AudioControls@@UAEHXZ	; CTDA9875AudioControls::HasSpatialEffect
PUBLIC	?GetLoudness@CTDA9875AudioControls@@UAEGXZ	; CTDA9875AudioControls::GetLoudness
PUBLIC	?SetLoudness@CTDA9875AudioControls@@UAEXG@Z	; CTDA9875AudioControls::SetLoudness
PUBLIC	?HasLoudness@CTDA9875AudioControls@@UAEHXZ	; CTDA9875AudioControls::HasLoudness
PUBLIC	?IsBassBoosted@CTDA9875AudioControls@@UAEHXZ	; CTDA9875AudioControls::IsBassBoosted
PUBLIC	?SetBassBoost@CTDA9875AudioControls@@UAEXH@Z	; CTDA9875AudioControls::SetBassBoost
PUBLIC	?HasBassBoost@CTDA9875AudioControls@@UAEHXZ	; CTDA9875AudioControls::HasBassBoost
PUBLIC	?HasEqualizers@CTDA9875AudioControls@@UAEHXZ	; CTDA9875AudioControls::HasEqualizers
PUBLIC	?GetTreble@CTDA9875AudioControls@@UAEGXZ	; CTDA9875AudioControls::GetTreble
PUBLIC	?SetTreble@CTDA9875AudioControls@@UAEXG@Z	; CTDA9875AudioControls::SetTreble
PUBLIC	?HasTreble@CTDA9875AudioControls@@UAEHXZ	; CTDA9875AudioControls::HasTreble
PUBLIC	?GetBass@CTDA9875AudioControls@@UAEGXZ		; CTDA9875AudioControls::GetBass
PUBLIC	?SetBass@CTDA9875AudioControls@@UAEXG@Z		; CTDA9875AudioControls::SetBass
PUBLIC	?HasBass@CTDA9875AudioControls@@UAEHXZ		; CTDA9875AudioControls::HasBass
PUBLIC	?GetBalance@CTDA9875AudioControls@@UAEGXZ	; CTDA9875AudioControls::GetBalance
PUBLIC	?SetBalance@CTDA9875AudioControls@@UAEXG@Z	; CTDA9875AudioControls::SetBalance
PUBLIC	?HasBalance@CTDA9875AudioControls@@UAEHXZ	; CTDA9875AudioControls::HasBalance
PUBLIC	?GetVolume@CTDA9875AudioControls@@UAEGXZ	; CTDA9875AudioControls::GetVolume
PUBLIC	?SetVolume@CTDA9875AudioControls@@UAEXG@Z	; CTDA9875AudioControls::SetVolume
PUBLIC	?HasVolume@CTDA9875AudioControls@@UAEHXZ	; CTDA9875AudioControls::HasVolume
PUBLIC	?IsMuted@CTDA9875AudioControls@@UAEHXZ		; CTDA9875AudioControls::IsMuted
PUBLIC	?SetMute@CTDA9875AudioControls@@UAEXH@Z		; CTDA9875AudioControls::SetMute
PUBLIC	?HasMute@CTDA9875AudioControls@@UAEHXZ		; CTDA9875AudioControls::HasMute
PUBLIC	??_R4CTDA9875AudioControls@@6BCAudioControls@@@	; CTDA9875AudioControls::`RTTI Complete Object Locator'
PUBLIC	??_R4CTDA9875AudioControls@@6BCTDA9875@@@	; CTDA9875AudioControls::`RTTI Complete Object Locator'
PUBLIC	??_R3CTDA9875AudioControls@@8			; CTDA9875AudioControls::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2CTDA9875AudioControls@@8			; CTDA9875AudioControls::`RTTI Base Class Array'
PUBLIC	??_R1BA@?0A@EA@CEventObject@@8			; CEventObject::`RTTI Base Class Descriptor at (16,-1,0,64)'
PUBLIC	??_R1A@?0A@EA@CTDA9875AudioControls@@8		; CTDA9875AudioControls::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVCTDA9875AudioControls@@@8		; CTDA9875AudioControls `RTTI Type Descriptor'
PUBLIC	??_ECTDA9875AudioControls@@WM@AEPAXI@Z		; [thunk]:CTDA9875AudioControls::`vector deleting destructor'
PUBLIC	??1CTDA9875AudioControls@@UAE@XZ		; CTDA9875AudioControls::~CTDA9875AudioControls
PUBLIC	??_GCTDA9875AudioControls@@UAEPAXI@Z		; CTDA9875AudioControls::`scalar deleting destructor'
PUBLIC	??_ECTDA9875AudioControls@@WBA@AEPAXI@Z		; [thunk]:CTDA9875AudioControls::`vector deleting destructor'
PUBLIC	??_7CTDA9875AudioControls@@6BCTDA9875@@@	; CTDA9875AudioControls::`vftable'
PUBLIC	??_7CTDA9875AudioControls@@6BCAudioControls@@@	; CTDA9875AudioControls::`vftable'
PUBLIC	??_7CTDA9875AudioControls@@6BCEventObject@@@	; CTDA9875AudioControls::`vftable'
EXTRN	??_ECTDA9875AudioControls@@UAEPAXI@Z:PROC	; CTDA9875AudioControls::`vector deleting destructor'
;	COMDAT ??_7CTDA9875AudioControls@@6BCEventObject@@@
CONST	SEGMENT
??_7CTDA9875AudioControls@@6BCEventObject@@@ DD FLAT:??_R4CTDA9875AudioControls@@6BCEventObject@@@ ; CTDA9875AudioControls::`vftable'
	DD	FLAT:??_ECTDA9875AudioControls@@WBA@AEPAXI@Z
	DD	FLAT:?OnEvent@CTDA9875AudioControls@@UAEXPAVCEventObject@@W4eEventType@@JJPAW43@@Z
CONST	ENDS
;	COMDAT ??_R4CTDA9875AudioControls@@6BCEventObject@@@
rdata$r	SEGMENT
??_R4CTDA9875AudioControls@@6BCEventObject@@@ DD 00H	; CTDA9875AudioControls::`RTTI Complete Object Locator'
	DD	010H
	DD	00H
	DD	FLAT:??_R0?AVCTDA9875AudioControls@@@8
	DD	FLAT:??_R3CTDA9875AudioControls@@8
rdata$r	ENDS
;	COMDAT ??_7CTDA9875AudioControls@@6BCAudioControls@@@
CONST	SEGMENT
??_7CTDA9875AudioControls@@6BCAudioControls@@@ DD FLAT:??_R4CTDA9875AudioControls@@6BCAudioControls@@@ ; CTDA9875AudioControls::`vftable'
	DD	FLAT:??_ECTDA9875AudioControls@@WM@AEPAXI@Z
	DD	FLAT:?HasMute@CTDA9875AudioControls@@UAEHXZ
	DD	FLAT:?SetMute@CTDA9875AudioControls@@UAEXH@Z
	DD	FLAT:?IsMuted@CTDA9875AudioControls@@UAEHXZ
	DD	FLAT:?HasVolume@CTDA9875AudioControls@@UAEHXZ
	DD	FLAT:?SetVolume@CTDA9875AudioControls@@UAEXG@Z
	DD	FLAT:?GetVolume@CTDA9875AudioControls@@UAEGXZ
	DD	FLAT:?HasBalance@CTDA9875AudioControls@@UAEHXZ
	DD	FLAT:?SetBalance@CTDA9875AudioControls@@UAEXG@Z
	DD	FLAT:?GetBalance@CTDA9875AudioControls@@UAEGXZ
	DD	FLAT:?HasBass@CTDA9875AudioControls@@UAEHXZ
	DD	FLAT:?SetBass@CTDA9875AudioControls@@UAEXG@Z
	DD	FLAT:?GetBass@CTDA9875AudioControls@@UAEGXZ
	DD	FLAT:?HasTreble@CTDA9875AudioControls@@UAEHXZ
	DD	FLAT:?SetTreble@CTDA9875AudioControls@@UAEXG@Z
	DD	FLAT:?GetTreble@CTDA9875AudioControls@@UAEGXZ
	DD	FLAT:?HasEqualizers@CTDA9875AudioControls@@UAEHXZ
	DD	FLAT:?GetEqualizerCount@CAudioControls@@UAEGXZ
	DD	FLAT:?SetEqualizerLevel@CAudioControls@@UAEXGG@Z
	DD	FLAT:?GetEqualizerLevel@CAudioControls@@UAEGG@Z
	DD	FLAT:?HasBassBoost@CTDA9875AudioControls@@UAEHXZ
	DD	FLAT:?SetBassBoost@CTDA9875AudioControls@@UAEXH@Z
	DD	FLAT:?IsBassBoosted@CTDA9875AudioControls@@UAEHXZ
	DD	FLAT:?HasLoudness@CTDA9875AudioControls@@UAEHXZ
	DD	FLAT:?SetLoudness@CTDA9875AudioControls@@UAEXG@Z
	DD	FLAT:?GetLoudness@CTDA9875AudioControls@@UAEGXZ
	DD	FLAT:?HasSpatialEffect@CTDA9875AudioControls@@UAEHXZ
	DD	FLAT:?SetSpatialEffect@CTDA9875AudioControls@@UAEXH@Z
	DD	FLAT:?GetSpatialEffect@CTDA9875AudioControls@@UAEHXZ
	DD	FLAT:?HasDolby@CTDA9875AudioControls@@UAEHXZ
	DD	FLAT:?SetDolby@CAudioControls@@UAEXGGGGG@Z
	DD	FLAT:?HasAutoVolumeCorrection@CTDA9875AudioControls@@UAEHXZ
	DD	FLAT:?SetAutoVolumeCorrection@CTDA9875AudioControls@@UAEXJ@Z
	DD	FLAT:?GetAutoVolumeCorrection@CTDA9875AudioControls@@UAEJXZ
CONST	ENDS
;	COMDAT ??_R4CTDA9875AudioControls@@6BCAudioControls@@@
rdata$r	SEGMENT
??_R4CTDA9875AudioControls@@6BCAudioControls@@@ DD 00H	; CTDA9875AudioControls::`RTTI Complete Object Locator'
	DD	0cH
	DD	00H
	DD	FLAT:??_R0?AVCTDA9875AudioControls@@@8
	DD	FLAT:??_R3CTDA9875AudioControls@@8
rdata$r	ENDS
;	COMDAT ??_7CTDA9875AudioControls@@6BCTDA9875@@@
CONST	SEGMENT
??_7CTDA9875AudioControls@@6BCTDA9875@@@ DD FLAT:??_R4CTDA9875AudioControls@@6BCTDA9875@@@ ; CTDA9875AudioControls::`vftable'
	DD	FLAT:??_ECTDA9875AudioControls@@UAEPAXI@Z
	DD	FLAT:?GetDefaultAddress@CTDA9875@@MBEEXZ
CONST	ENDS
;	COMDAT ??_R4CTDA9875AudioControls@@6BCTDA9875@@@
rdata$r	SEGMENT
??_R4CTDA9875AudioControls@@6BCTDA9875@@@ DD 00H	; CTDA9875AudioControls::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVCTDA9875AudioControls@@@8
	DD	FLAT:??_R3CTDA9875AudioControls@@8
rdata$r	ENDS
;	COMDAT ??_R3CTDA9875AudioControls@@8
rdata$r	SEGMENT
??_R3CTDA9875AudioControls@@8 DD 00H			; CTDA9875AudioControls::`RTTI Class Hierarchy Descriptor'
	DD	01H
	DD	05H
	DD	FLAT:??_R2CTDA9875AudioControls@@8
rdata$r	ENDS
;	COMDAT ??_R2CTDA9875AudioControls@@8
rdata$r	SEGMENT
??_R2CTDA9875AudioControls@@8 DD FLAT:??_R1A@?0A@EA@CTDA9875AudioControls@@8 ; CTDA9875AudioControls::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@CTDA9875@@8
	DD	FLAT:??_R1A@?0A@EA@CI2CDevice@@8
	DD	FLAT:??_R1M@?0A@EA@CAudioControls@@8
	DD	FLAT:??_R1BA@?0A@EA@CEventObject@@8
rdata$r	ENDS
;	COMDAT ??_R1BA@?0A@EA@CEventObject@@8
rdata$r	SEGMENT
??_R1BA@?0A@EA@CEventObject@@8 DD FLAT:??_R0?AVCEventObject@@@8 ; CEventObject::`RTTI Base Class Descriptor at (16,-1,0,64)'
	DD	00H
	DD	010H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3CEventObject@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@CTDA9875AudioControls@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@CTDA9875AudioControls@@8 DD FLAT:??_R0?AVCTDA9875AudioControls@@@8 ; CTDA9875AudioControls::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	04H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3CTDA9875AudioControls@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVCTDA9875AudioControls@@@8
_DATA	SEGMENT
??_R0?AVCTDA9875AudioControls@@@8 DD FLAT:??_7type_info@@6B@ ; CTDA9875AudioControls `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVCTDA9875AudioControls@@', 00H
; Function compile flags: /Odtp
;	COMDAT ??_ECTDA9875AudioControls@@WBA@AEPAXI@Z
_TEXT	SEGMENT
??_ECTDA9875AudioControls@@WBA@AEPAXI@Z PROC		; [thunk]:CTDA9875AudioControls::`vector deleting destructor', COMDAT
  00000	83 e9 10	 sub	 ecx, 16			; 00000010H
  00003	e9 00 00 00 00	 jmp	 ??_ECTDA9875AudioControls@@UAEPAXI@Z
??_ECTDA9875AudioControls@@WBA@AEPAXI@Z ENDP		; [thunk]:CTDA9875AudioControls::`vector deleting destructor'
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??_ECTDA9875AudioControls@@WM@AEPAXI@Z
_TEXT	SEGMENT
??_ECTDA9875AudioControls@@WM@AEPAXI@Z PROC		; [thunk]:CTDA9875AudioControls::`vector deleting destructor', COMDAT
  00000	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00003	e9 00 00 00 00	 jmp	 ??_ECTDA9875AudioControls@@UAEPAXI@Z
??_ECTDA9875AudioControls@@WM@AEPAXI@Z ENDP		; [thunk]:CTDA9875AudioControls::`vector deleting destructor'
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\tda9875audiocontrols.cpp
_TEXT	ENDS
;	COMDAT ?GetSpatialEffect@CTDA9875AudioControls@@UAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetSpatialEffect@CTDA9875AudioControls@@UAEHXZ PROC	; CTDA9875AudioControls::GetSpatialEffect, COMDAT
; _this$ = ecx

; 336  : {

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

; 337  :     return m_nSpatialEffect;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 40 1c	 mov	 eax, DWORD PTR [eax+28]

; 338  : }

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

; 313  : {

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

; 314  :     return TRUE;

  00007	b8 01 00 00 00	 mov	 eax, 1

; 315  : }

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

; 308  : {

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

; 309  :     return m_nAVLDecay;

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

; 310  : }

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

; 277  : {

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

; 278  :     return TRUE;

  00007	b8 01 00 00 00	 mov	 eax, 1

; 279  : }

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

; 272  : {

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

; 273  :     return FALSE;

  00007	33 c0		 xor	 eax, eax

; 274  : }

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

; 267  : {

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

; 268  :     return (WORD)m_nLoudness;

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

; 269  : }

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

; 246  : {

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

; 247  :     return TRUE;

  00007	b8 01 00 00 00	 mov	 eax, 1

; 248  : }

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

; 240  : {

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

; 241  :     return m_bBassBoost;

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

; 242  : }

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

; 226  : {

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

; 227  :     return TRUE;

  00007	b8 01 00 00 00	 mov	 eax, 1

; 228  : }

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

; 221  : {

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

; 222  :     return FALSE;

  00007	33 c0		 xor	 eax, eax

; 223  : }

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

; 216  : {

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

; 217  :     return (WORD)m_nTreble;

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

; 218  : }

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

; 192  : {

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

; 193  :     return TRUE;

  00007	b8 01 00 00 00	 mov	 eax, 1

; 194  : }

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

; 187  : {

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

; 188  :     return (WORD)m_nBass;

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

; 189  : }

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

; 163  : {

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

; 164  :     return TRUE;

  00007	b8 01 00 00 00	 mov	 eax, 1

; 165  : }

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

; 158  : {

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

; 159  :     return (WORD)m_nBalance;

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

; 160  : }

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

; 145  : {

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

; 146  :     m_nBalance = (short)nBalance;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	66 8b 4d 08	 mov	 cx, WORD PTR _nBalance$[ebp]
  0000e	66 89 48 12	 mov	 WORD PTR [eax+18], cx

; 147  : 
; 148  :     // sanity check
; 149  :     if (m_nBalance < -127)

  00012	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00015	0f bf 42 12	 movsx	 eax, WORD PTR [edx+18]
  00019	83 f8 81	 cmp	 eax, -127		; ffffff81H
  0001c	7d 0c		 jge	 SHORT $LN2@SetBalance

; 150  :         m_nBalance = -127;

  0001e	b9 81 ff ff ff	 mov	 ecx, -127		; ffffff81H
  00023	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00026	66 89 4a 12	 mov	 WORD PTR [edx+18], cx
$LN2@SetBalance:

; 151  :     if (m_nBalance > 127)

  0002a	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0002d	0f bf 48 12	 movsx	 ecx, WORD PTR [eax+18]
  00031	83 f9 7f	 cmp	 ecx, 127		; 0000007fH
  00034	7e 0c		 jle	 SHORT $LN1@SetBalance

; 152  :         m_nBalance = 127;

  00036	ba 7f 00 00 00	 mov	 edx, 127		; 0000007fH
  0003b	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0003e	66 89 50 12	 mov	 WORD PTR [eax+18], dx
$LN1@SetBalance:

; 153  : 
; 154  :     SetVolume((WORD)m_nVolume);

  00042	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00045	0f b7 51 10	 movzx	 edx, WORD PTR [ecx+16]
  00049	52		 push	 edx
  0004a	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0004d	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00050	8b 10		 mov	 edx, DWORD PTR [eax]
  00052	8b 42 14	 mov	 eax, DWORD PTR [edx+20]
  00055	ff d0		 call	 eax

; 155  : }

  00057	8b e5		 mov	 esp, ebp
  00059	5d		 pop	 ebp
  0005a	c2 04 00	 ret	 4
?SetBalance@CTDA9875AudioControls@@UAEXG@Z ENDP		; CTDA9875AudioControls::SetBalance
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?HasBalance@CTDA9875AudioControls@@UAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?HasBalance@CTDA9875AudioControls@@UAEHXZ PROC		; CTDA9875AudioControls::HasBalance, COMDAT
; _this$ = ecx

; 140  : {

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

; 141  :     return TRUE;

  00007	b8 01 00 00 00	 mov	 eax, 1

; 142  : }

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

; 135  : {

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

; 136  :     return (WORD)m_nVolume;

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

; 137  : }

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

; 91   : {

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

; 92   :     return TRUE;

  00007	b8 01 00 00 00	 mov	 eax, 1

; 93   : }

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

; 86   : {

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

; 87   :     return m_bMuted;

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

; 88   : }

  0000d	8b e5		 mov	 esp, ebp
  0000f	5d		 pop	 ebp
  00010	c3		 ret	 0
?IsMuted@CTDA9875AudioControls@@UAEHXZ ENDP		; CTDA9875AudioControls::IsMuted
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?HasMute@CTDA9875AudioControls@@UAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?HasMute@CTDA9875AudioControls@@UAEHXZ PROC		; CTDA9875AudioControls::HasMute, 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 TRUE;

  00007	b8 01 00 00 00	 mov	 eax, 1

; 69   : }

  0000c	8b e5		 mov	 esp, ebp
  0000e	5d		 pop	 ebp
  0000f	c3		 ret	 0
?HasMute@CTDA9875AudioControls@@UAEHXZ ENDP		; CTDA9875AudioControls::HasMute
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?OnEvent@CTDA9875AudioControls@@UAEXPAVCEventObject@@W4eEventType@@JJPAW43@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_pEventObject$ = 8					; size = 4
_Event$ = 12						; size = 4
_OldValue$ = 16						; size = 4
_NewValue$ = 20						; size = 4
_ComingUp$ = 24						; size = 4
?OnEvent@CTDA9875AudioControls@@UAEXPAVCEventObject@@W4eEventType@@JJPAW43@@Z PROC ; CTDA9875AudioControls::OnEvent, COMDAT
; _this$ = ecx

; 58   : {

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

; 59   :     if (Event == EVENT_SOUNDCHANNEL)

  00007	83 7d 0c 12	 cmp	 DWORD PTR _Event$[ebp], 18 ; 00000012H
  0000b	75 21		 jne	 SHORT $LN2@OnEvent

; 60   :     {
; 61   :         m_SoundChannel = (eSoundChannel)NewValue;

  0000d	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00010	8b 4d 14	 mov	 ecx, DWORD PTR _NewValue$[ebp]
  00013	89 48 28	 mov	 DWORD PTR [eax+40], ecx

; 62   :         SetSpatialEffect(m_nSpatialEffect);

  00016	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00019	8b 42 18	 mov	 eax, DWORD PTR [edx+24]
  0001c	50		 push	 eax
  0001d	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00020	83 e9 04	 sub	 ecx, 4
  00023	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00026	8b 42 fc	 mov	 eax, DWORD PTR [edx-4]
  00029	8b 50 6c	 mov	 edx, DWORD PTR [eax+108]
  0002c	ff d2		 call	 edx
$LN2@OnEvent:

; 63   :     }
; 64   : }

  0002e	8b e5		 mov	 esp, ebp
  00030	5d		 pop	 ebp
  00031	c2 14 00	 ret	 20			; 00000014H
?OnEvent@CTDA9875AudioControls@@UAEXPAVCEventObject@@W4eEventType@@JJPAW43@@Z ENDP ; CTDA9875AudioControls::OnEvent
; Function compile flags: /Odtp
;	COMDAT ?SetSpatialEffect@CTDA9875AudioControls@@UAEXH@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_nLevel$ = 8						; size = 4
?SetSpatialEffect@CTDA9875AudioControls@@UAEXH@Z PROC	; CTDA9875AudioControls::SetSpatialEffect, COMDAT
; _this$ = ecx

; 318  : {

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

; 319  :     // sanity check
; 320  :     if (nLevel > 127)

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

; 321  :         nLevel = 127;

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

; 322  :     if (nLevel < -128)

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

; 323  :         nLevel = -128;

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

; 324  : 
; 325  :     m_nSpatialEffect = nLevel;

  00021	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00024	8b 4d 08	 mov	 ecx, DWORD PTR _nLevel$[ebp]
  00027	89 48 1c	 mov	 DWORD PTR [eax+28], ecx

; 326  :     m_bSpatialEffectReg = (BYTE)((abs(nLevel)+17)*5/182);

  0002a	8b 55 08	 mov	 edx, DWORD PTR _nLevel$[ebp]
  0002d	52		 push	 edx
  0002e	e8 00 00 00 00	 call	 _abs
  00033	83 c4 04	 add	 esp, 4
  00036	83 c0 11	 add	 eax, 17			; 00000011H
  00039	6b c0 05	 imul	 eax, 5
  0003c	99		 cdq
  0003d	b9 b6 00 00 00	 mov	 ecx, 182		; 000000b6H
  00042	f7 f9		 idiv	 ecx
  00044	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00047	88 42 1a	 mov	 BYTE PTR [edx+26], al

; 327  :     if (m_SoundChannel == SOUNDCHANNEL_STEREO)

  0004a	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0004d	83 78 2c 02	 cmp	 DWORD PTR [eax+44], 2
  00051	75 12		 jne	 SHORT $LN2@SetSpatial

; 328  :         m_bSpatialEffectReg = (m_bSpatialEffectReg << 4);

  00053	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00056	0f b6 51 1a	 movzx	 edx, BYTE PTR [ecx+26]
  0005a	c1 e2 04	 shl	 edx, 4
  0005d	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00060	88 50 1a	 mov	 BYTE PTR [eax+26], dl

; 329  :     else

  00063	eb 10		 jmp	 SHORT $LN1@SetSpatial
$LN2@SetSpatial:

; 330  :         m_bSpatialEffectReg = (m_bSpatialEffectReg << 2);

  00065	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00068	0f b6 51 1a	 movzx	 edx, BYTE PTR [ecx+26]
  0006c	c1 e2 02	 shl	 edx, 2
  0006f	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00072	88 50 1a	 mov	 BYTE PTR [eax+26], dl
$LN1@SetSpatial:

; 331  : 
; 332  :     WriteToSubAddress(TDA9875_AER, m_bSpatialEffectReg | m_bAVLReg);

  00075	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00078	0f b6 51 1a	 movzx	 edx, BYTE PTR [ecx+26]
  0007c	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0007f	0f b6 48 20	 movzx	 ecx, BYTE PTR [eax+32]
  00083	0b d1		 or	 edx, ecx
  00085	52		 push	 edx
  00086	6a 19		 push	 25			; 00000019H
  00088	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0008b	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  0008e	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 333  : }

  00093	8b e5		 mov	 esp, ebp
  00095	5d		 pop	 ebp
  00096	c2 04 00	 ret	 4
?SetSpatialEffect@CTDA9875AudioControls@@UAEXH@Z ENDP	; CTDA9875AudioControls::SetSpatialEffect
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?SetAutoVolumeCorrection@CTDA9875AudioControls@@UAEXJ@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_milliSeconds$ = 8					; size = 4
?SetAutoVolumeCorrection@CTDA9875AudioControls@@UAEXJ@Z PROC ; CTDA9875AudioControls::SetAutoVolumeCorrection, COMDAT
; _this$ = ecx

; 281  : {

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

; 282  :     if (milliSeconds < 1000)

  00007	81 7d 08 e8 03
	00 00		 cmp	 DWORD PTR _milliSeconds$[ebp], 1000 ; 000003e8H
  0000e	7d 13		 jge	 SHORT $LN6@SetAutoVol

; 283  :     {
; 284  :         m_bAVLReg = 0; // off

  00010	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00013	c6 40 20 00	 mov	 BYTE PTR [eax+32], 0

; 285  :         m_nAVLDecay = 0;

  00017	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0001a	c7 41 24 00 00
	00 00		 mov	 DWORD PTR [ecx+36], 0
  00021	eb 49		 jmp	 SHORT $LN5@SetAutoVol
$LN6@SetAutoVol:

; 286  :     }
; 287  :     else if (milliSeconds < 3000)

  00023	81 7d 08 b8 0b
	00 00		 cmp	 DWORD PTR _milliSeconds$[ebp], 3000 ; 00000bb8H
  0002a	7d 13		 jge	 SHORT $LN4@SetAutoVol

; 288  :     {
; 289  :         m_bAVLReg = 0x01;  //2 seconds

  0002c	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  0002f	c6 42 20 01	 mov	 BYTE PTR [edx+32], 1

; 290  :         m_nAVLDecay = 2000;

  00033	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00036	c7 40 24 d0 07
	00 00		 mov	 DWORD PTR [eax+36], 2000 ; 000007d0H
  0003d	eb 2d		 jmp	 SHORT $LN5@SetAutoVol
$LN4@SetAutoVol:

; 291  :     }
; 292  :     else if (milliSeconds < 6000)

  0003f	81 7d 08 70 17
	00 00		 cmp	 DWORD PTR _milliSeconds$[ebp], 6000 ; 00001770H
  00046	7d 13		 jge	 SHORT $LN2@SetAutoVol

; 293  :     {
; 294  :         m_bAVLReg = 0x02;  //4 seconds

  00048	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0004b	c6 41 20 02	 mov	 BYTE PTR [ecx+32], 2

; 295  :         m_nAVLDecay = 4000;

  0004f	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00052	c7 42 24 a0 0f
	00 00		 mov	 DWORD PTR [edx+36], 4000 ; 00000fa0H

; 296  :     }
; 297  :     else

  00059	eb 11		 jmp	 SHORT $LN5@SetAutoVol
$LN2@SetAutoVol:

; 298  :     {
; 299  :         m_bAVLReg = 0x03; //8 seconds

  0005b	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0005e	c6 40 20 03	 mov	 BYTE PTR [eax+32], 3

; 300  :         m_nAVLDecay = 8000;

  00062	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00065	c7 41 24 40 1f
	00 00		 mov	 DWORD PTR [ecx+36], 8000 ; 00001f40H
$LN5@SetAutoVol:

; 301  :     }
; 302  : 
; 303  :     WriteToSubAddress(TDA9875_AER, m_bSpatialEffectReg | m_bAVLReg);

  0006c	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  0006f	0f b6 42 1a	 movzx	 eax, BYTE PTR [edx+26]
  00073	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00076	0f b6 51 20	 movzx	 edx, BYTE PTR [ecx+32]
  0007a	0b c2		 or	 eax, edx
  0007c	50		 push	 eax
  0007d	6a 19		 push	 25			; 00000019H
  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	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 304  : }

  0008a	8b e5		 mov	 esp, ebp
  0008c	5d		 pop	 ebp
  0008d	c2 04 00	 ret	 4
?SetAutoVolumeCorrection@CTDA9875AudioControls@@UAEXJ@Z ENDP ; CTDA9875AudioControls::SetAutoVolumeCorrection
_TEXT	ENDS
PUBLIC	__real@3fb2122fad6cb535
;	COMDAT __real@3fb2122fad6cb535
CONST	SEGMENT
__real@3fb2122fad6cb535 DQ 03fb2122fad6cb535r	; 0.07059
; Function compile flags: /Odtp
CONST	ENDS
;	COMDAT ?SetLoudness@CTDA9875AudioControls@@UAEXG@Z
_TEXT	SEGMENT
tv149 = -24						; size = 4
tv147 = -20						; size = 4
tv144 = -14						; size = 2
tv138 = -12						; size = 4
_this$ = -8						; size = 4
_bLoudnessTDA9875$ = -1					; size = 1
_nLevel$ = 8						; size = 2
?SetLoudness@CTDA9875AudioControls@@UAEXG@Z PROC	; CTDA9875AudioControls::SetLoudness, COMDAT
; _this$ = ecx

; 251  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 18	 sub	 esp, 24			; 00000018H
  00006	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx

; 252  :     m_nLoudness = (short)nLevel;

  00009	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	66 8b 4d 08	 mov	 cx, WORD PTR _nLevel$[ebp]
  00010	66 89 48 18	 mov	 WORD PTR [eax+24], cx

; 253  : 
; 254  :     // sanity check
; 255  :     if (m_nTreble < 0)

  00014	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00017	0f bf 42 16	 movsx	 eax, WORD PTR [edx+22]
  0001b	85 c0		 test	 eax, eax
  0001d	7d 09		 jge	 SHORT $LN2@SetLoudnes

; 256  :         m_nTreble = 0;

  0001f	33 c9		 xor	 ecx, ecx
  00021	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00024	66 89 4a 16	 mov	 WORD PTR [edx+22], cx
$LN2@SetLoudnes:

; 257  :     if (m_nTreble > 255)

  00028	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0002b	0f bf 48 16	 movsx	 ecx, WORD PTR [eax+22]
  0002f	81 f9 ff 00 00
	00		 cmp	 ecx, 255		; 000000ffH
  00035	7e 0c		 jle	 SHORT $LN1@SetLoudnes

; 258  :         m_nTreble = 255;

  00037	ba ff 00 00 00	 mov	 edx, 255		; 000000ffH
  0003c	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0003f	66 89 50 16	 mov	 WORD PTR [eax+22], dx
$LN1@SetLoudnes:

; 259  : 
; 260  :     BYTE bLoudnessTDA9875 = (BYTE)floor(0.07059*m_nLoudness + 0.5);

  00043	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00046	0f bf 51 18	 movsx	 edx, WORD PTR [ecx+24]
  0004a	89 55 f4	 mov	 DWORD PTR tv138[ebp], edx
  0004d	db 45 f4	 fild	 DWORD PTR tv138[ebp]
  00050	dc 0d 00 00 00
	00		 fmul	 QWORD PTR __real@3fb2122fad6cb535
  00056	dc 05 00 00 00
	00		 fadd	 QWORD PTR __real@3fe0000000000000
  0005c	83 ec 08	 sub	 esp, 8
  0005f	dd 1c 24	 fstp	 QWORD PTR [esp]
  00062	e8 00 00 00 00	 call	 _floor
  00067	83 c4 08	 add	 esp, 8
  0006a	d9 7d f2	 fnstcw	 WORD PTR tv144[ebp]
  0006d	0f b7 45 f2	 movzx	 eax, WORD PTR tv144[ebp]
  00071	0d 00 0c 00 00	 or	 eax, 3072		; 00000c00H
  00076	89 45 ec	 mov	 DWORD PTR tv147[ebp], eax
  00079	d9 6d ec	 fldcw	 WORD PTR tv147[ebp]
  0007c	db 5d e8	 fistp	 DWORD PTR tv149[ebp]
  0007f	d9 6d f2	 fldcw	 WORD PTR tv144[ebp]
  00082	8a 45 e8	 mov	 al, BYTE PTR tv149[ebp]
  00085	88 45 ff	 mov	 BYTE PTR _bLoudnessTDA9875$[ebp], al

; 261  : 
; 262  :     WriteToSubAddress(TDA9875_LOU, bLoudnessTDA9875);

  00088	0f b6 4d ff	 movzx	 ecx, BYTE PTR _bLoudnessTDA9875$[ebp]
  0008c	51		 push	 ecx
  0008d	6a 1c		 push	 28			; 0000001cH
  0008f	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00092	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00095	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 263  : 
; 264  : }

  0009a	8b e5		 mov	 esp, ebp
  0009c	5d		 pop	 ebp
  0009d	c2 04 00	 ret	 4
?SetLoudness@CTDA9875AudioControls@@UAEXG@Z ENDP	; CTDA9875AudioControls::SetLoudness
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?SetBassBoost@CTDA9875AudioControls@@UAEXH@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_bBoost$ = 8						; size = 4
?SetBassBoost@CTDA9875AudioControls@@UAEXH@Z PROC	; CTDA9875AudioControls::SetBassBoost, COMDAT
; _this$ = ecx

; 231  : {

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

; 232  :     m_bBassBoost = bBoost;

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

; 233  :     if (bBoost)

  00010	83 7d 08 00	 cmp	 DWORD PTR _bBoost$[ebp], 0
  00014	74 11		 je	 SHORT $LN2@SetBassBoo

; 234  :         WriteToSubAddress(TDA9875_BBO, 85);

  00016	6a 55		 push	 85			; 00000055H
  00018	6a 2d		 push	 45			; 0000002dH
  0001a	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0001d	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00020	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 235  :     else

  00025	eb 0f		 jmp	 SHORT $LN3@SetBassBoo
$LN2@SetBassBoo:

; 236  :         WriteToSubAddress(TDA9875_BBO, 0);

  00027	6a 00		 push	 0
  00029	6a 2d		 push	 45			; 0000002dH
  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	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress
$LN3@SetBassBoo:

; 237  : }

  00036	8b e5		 mov	 esp, ebp
  00038	5d		 pop	 ebp
  00039	c2 04 00	 ret	 4
?SetBassBoost@CTDA9875AudioControls@@UAEXH@Z ENDP	; CTDA9875AudioControls::SetBassBoost
_TEXT	ENDS
PUBLIC	__real@3ff2b0c88a47ecff
PUBLIC	__real@3fbb8cfbfc6540cc
;	COMDAT __real@3ff2b0c88a47ecff
CONST	SEGMENT
__real@3ff2b0c88a47ecff DQ 03ff2b0c88a47ecffr	; 1.16816
CONST	ENDS
;	COMDAT __real@3fbb8cfbfc6540cc
CONST	SEGMENT
__real@3fbb8cfbfc6540cc DQ 03fbb8cfbfc6540ccr	; 0.10762
; Function compile flags: /Odtp
CONST	ENDS
;	COMDAT ?SetTreble@CTDA9875AudioControls@@UAEXG@Z
_TEXT	SEGMENT
tv157 = -24						; size = 4
tv155 = -20						; size = 4
tv152 = -14						; size = 2
tv146 = -12						; size = 4
_this$ = -8						; size = 4
_bTrebleTDA9875$ = -1					; size = 1
_nTreble$ = 8						; size = 2
?SetTreble@CTDA9875AudioControls@@UAEXG@Z PROC		; CTDA9875AudioControls::SetTreble, COMDAT
; _this$ = ecx

; 197  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 18	 sub	 esp, 24			; 00000018H
  00006	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx

; 198  :     m_nTreble = (short)nTreble;

  00009	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	66 8b 4d 08	 mov	 cx, WORD PTR _nTreble$[ebp]
  00010	66 89 48 16	 mov	 WORD PTR [eax+22], cx

; 199  : 
; 200  :     // sanity check
; 201  :     if (m_nTreble < -96)

  00014	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00017	0f bf 42 16	 movsx	 eax, WORD PTR [edx+22]
  0001b	83 f8 a0	 cmp	 eax, -96		; ffffffa0H
  0001e	7d 0c		 jge	 SHORT $LN2@SetTreble

; 202  :         m_nTreble = -96;

  00020	b9 a0 ff ff ff	 mov	 ecx, -96		; ffffffa0H
  00025	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00028	66 89 4a 16	 mov	 WORD PTR [edx+22], cx
$LN2@SetTreble:

; 203  :     if (m_nTreble > 127)

  0002c	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0002f	0f bf 48 16	 movsx	 ecx, WORD PTR [eax+22]
  00033	83 f9 7f	 cmp	 ecx, 127		; 0000007fH
  00036	7e 0c		 jle	 SHORT $LN1@SetTreble

; 204  :         m_nTreble = 127;

  00038	ba 7f 00 00 00	 mov	 edx, 127		; 0000007fH
  0003d	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00040	66 89 50 16	 mov	 WORD PTR [eax+22], dx
$LN1@SetTreble:

; 205  : 
; 206  :     BYTE bTrebleTDA9875 = (BYTE)floor(0.10762*m_nTreble - 1.16816);

  00044	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00047	0f bf 51 16	 movsx	 edx, WORD PTR [ecx+22]
  0004b	89 55 f4	 mov	 DWORD PTR tv146[ebp], edx
  0004e	db 45 f4	 fild	 DWORD PTR tv146[ebp]
  00051	dc 0d 00 00 00
	00		 fmul	 QWORD PTR __real@3fbb8cfbfc6540cc
  00057	dc 25 00 00 00
	00		 fsub	 QWORD PTR __real@3ff2b0c88a47ecff
  0005d	83 ec 08	 sub	 esp, 8
  00060	dd 1c 24	 fstp	 QWORD PTR [esp]
  00063	e8 00 00 00 00	 call	 _floor
  00068	83 c4 08	 add	 esp, 8
  0006b	d9 7d f2	 fnstcw	 WORD PTR tv152[ebp]
  0006e	0f b7 45 f2	 movzx	 eax, WORD PTR tv152[ebp]
  00072	0d 00 0c 00 00	 or	 eax, 3072		; 00000c00H
  00077	89 45 ec	 mov	 DWORD PTR tv155[ebp], eax
  0007a	d9 6d ec	 fldcw	 WORD PTR tv155[ebp]
  0007d	db 5d e8	 fistp	 DWORD PTR tv157[ebp]
  00080	d9 6d f2	 fldcw	 WORD PTR tv152[ebp]
  00083	8a 45 e8	 mov	 al, BYTE PTR tv157[ebp]
  00086	88 45 ff	 mov	 BYTE PTR _bTrebleTDA9875$[ebp], al

; 207  : 
; 208  :     // main
; 209  :     WriteToSubAddress(TDA9875_MTR, bTrebleTDA9875);

  00089	0f b6 4d ff	 movzx	 ecx, BYTE PTR _bTrebleTDA9875$[ebp]
  0008d	51		 push	 ecx
  0008e	6a 1e		 push	 30			; 0000001eH
  00090	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00093	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00096	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 210  : 
; 211  :     // aux
; 212  :     WriteToSubAddress(TDA9875_ATR, bTrebleTDA9875);

  0009b	0f b6 55 ff	 movzx	 edx, BYTE PTR _bTrebleTDA9875$[ebp]
  0009f	52		 push	 edx
  000a0	6a 23		 push	 35			; 00000023H
  000a2	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  000a5	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  000a8	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 213  : }

  000ad	8b e5		 mov	 esp, ebp
  000af	5d		 pop	 ebp
  000b0	c2 04 00	 ret	 4
?SetTreble@CTDA9875AudioControls@@UAEXG@Z ENDP		; CTDA9875AudioControls::SetTreble
_TEXT	ENDS
PUBLIC	__real@3fbf91e646f15619
PUBLIC	__real@3fbeff1950331e3a
;	COMDAT __real@3fbf91e646f15619
CONST	SEGMENT
__real@3fbf91e646f15619 DQ 03fbf91e646f15619r	; 0.12332
CONST	ENDS
;	COMDAT __real@3fbeff1950331e3a
CONST	SEGMENT
__real@3fbeff1950331e3a DQ 03fbeff1950331e3ar	; 0.12108
; Function compile flags: /Odtp
CONST	ENDS
;	COMDAT ?SetBass@CTDA9875AudioControls@@UAEXG@Z
_TEXT	SEGMENT
tv157 = -24						; size = 4
tv155 = -20						; size = 4
tv152 = -14						; size = 2
tv146 = -12						; size = 4
_this$ = -8						; size = 4
_bBassTDA9875$ = -1					; size = 1
_nBass$ = 8						; size = 2
?SetBass@CTDA9875AudioControls@@UAEXG@Z PROC		; CTDA9875AudioControls::SetBass, COMDAT
; _this$ = ecx

; 168  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 18	 sub	 esp, 24			; 00000018H
  00006	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx

; 169  : 
; 170  :     m_nBass = (short)nBass;

  00009	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	66 8b 4d 08	 mov	 cx, WORD PTR _nBass$[ebp]
  00010	66 89 48 14	 mov	 WORD PTR [eax+20], cx

; 171  : 
; 172  :     // sanity check
; 173  :     if (m_nBass < -96)

  00014	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00017	0f bf 42 14	 movsx	 eax, WORD PTR [edx+20]
  0001b	83 f8 a0	 cmp	 eax, -96		; ffffffa0H
  0001e	7d 0c		 jge	 SHORT $LN2@SetBass

; 174  :         m_nBass = -96;

  00020	b9 a0 ff ff ff	 mov	 ecx, -96		; ffffffa0H
  00025	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00028	66 89 4a 14	 mov	 WORD PTR [edx+20], cx
$LN2@SetBass:

; 175  :     if (m_nBass > 127)

  0002c	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0002f	0f bf 48 14	 movsx	 ecx, WORD PTR [eax+20]
  00033	83 f9 7f	 cmp	 ecx, 127		; 0000007fH
  00036	7e 0c		 jle	 SHORT $LN1@SetBass

; 176  :         m_nBass = 127;

  00038	ba 7f 00 00 00	 mov	 edx, 127		; 0000007fH
  0003d	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00040	66 89 50 14	 mov	 WORD PTR [eax+20], dx
$LN1@SetBass:

; 177  : 
; 178  :     BYTE bBassTDA9875 = (BYTE)floor(0.12108*m_nBass + 0.12332);

  00044	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00047	0f bf 51 14	 movsx	 edx, WORD PTR [ecx+20]
  0004b	89 55 f4	 mov	 DWORD PTR tv146[ebp], edx
  0004e	db 45 f4	 fild	 DWORD PTR tv146[ebp]
  00051	dc 0d 00 00 00
	00		 fmul	 QWORD PTR __real@3fbeff1950331e3a
  00057	dc 05 00 00 00
	00		 fadd	 QWORD PTR __real@3fbf91e646f15619
  0005d	83 ec 08	 sub	 esp, 8
  00060	dd 1c 24	 fstp	 QWORD PTR [esp]
  00063	e8 00 00 00 00	 call	 _floor
  00068	83 c4 08	 add	 esp, 8
  0006b	d9 7d f2	 fnstcw	 WORD PTR tv152[ebp]
  0006e	0f b7 45 f2	 movzx	 eax, WORD PTR tv152[ebp]
  00072	0d 00 0c 00 00	 or	 eax, 3072		; 00000c00H
  00077	89 45 ec	 mov	 DWORD PTR tv155[ebp], eax
  0007a	d9 6d ec	 fldcw	 WORD PTR tv155[ebp]
  0007d	db 5d e8	 fistp	 DWORD PTR tv157[ebp]
  00080	d9 6d f2	 fldcw	 WORD PTR tv152[ebp]
  00083	8a 45 e8	 mov	 al, BYTE PTR tv157[ebp]
  00086	88 45 ff	 mov	 BYTE PTR _bBassTDA9875$[ebp], al

; 179  : 
; 180  :     // main
; 181  :     WriteToSubAddress(TDA9875_MBA, bBassTDA9875);

  00089	0f b6 4d ff	 movzx	 ecx, BYTE PTR _bBassTDA9875$[ebp]
  0008d	51		 push	 ecx
  0008e	6a 1d		 push	 29			; 0000001dH
  00090	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00093	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00096	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 182  :     // aux
; 183  :     WriteToSubAddress(TDA9875_ABA, bBassTDA9875);

  0009b	0f b6 55 ff	 movzx	 edx, BYTE PTR _bBassTDA9875$[ebp]
  0009f	52		 push	 edx
  000a0	6a 22		 push	 34			; 00000022H
  000a2	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  000a5	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  000a8	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 184  : }

  000ad	8b e5		 mov	 esp, ebp
  000af	5d		 pop	 ebp
  000b0	c2 04 00	 ret	 4
?SetBass@CTDA9875AudioControls@@UAEXG@Z ENDP		; CTDA9875AudioControls::SetBass
_TEXT	ENDS
PUBLIC	__real@4054a00000000000
PUBLIC	__real@40409c115df6555c
PUBLIC	__real@3fe540cc78e9f6a9
PUBLIC	__real@3ffaa0663c74fb55
;	COMDAT __real@4054a00000000000
CONST	SEGMENT
__real@4054a00000000000 DQ 04054a00000000000r	; 82.5
CONST	ENDS
;	COMDAT __real@40409c115df6555c
CONST	SEGMENT
__real@40409c115df6555c DQ 040409c115df6555cr	; 33.2193
CONST	ENDS
;	COMDAT __real@3fe540cc78e9f6a9
CONST	SEGMENT
__real@3fe540cc78e9f6a9 DQ 03fe540cc78e9f6a9r	; 0.66416
CONST	ENDS
;	COMDAT __real@3ffaa0663c74fb55
CONST	SEGMENT
__real@3ffaa0663c74fb55 DQ 03ffaa0663c74fb55r	; 1.66416
; Function compile flags: /Odtp
CONST	ENDS
;	COMDAT ?SetVolume@CTDA9875AudioControls@@UAEXG@Z
_TEXT	SEGMENT
tv179 = -68						; size = 4
tv272 = -64						; size = 4
tv270 = -60						; size = 4
tv267 = -54						; size = 2
tv165 = -52						; size = 4
tv254 = -48						; size = 4
tv252 = -44						; size = 4
tv249 = -38						; size = 2
tv138 = -36						; size = 4
tv129 = -32						; size = 4
_this$ = -28						; size = 4
_nBalLeft$ = -24					; size = 4
_nBalRight$ = -20					; size = 4
_nVolRight$ = -16					; size = 4
_bVolumeTDA9875Left$ = -9				; size = 1
_nVolLeft$ = -8						; size = 4
_bVolumeTDA9875Right$ = -1				; size = 1
_nVolume$ = 8						; size = 2
?SetVolume@CTDA9875AudioControls@@UAEXG@Z PROC		; CTDA9875AudioControls::SetVolume, COMDAT
; _this$ = ecx

; 96   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 44	 sub	 esp, 68			; 00000044H
  00006	89 4d e4	 mov	 DWORD PTR _this$[ebp], ecx

; 97   : 
; 98   :     m_nVolume = (short)nVolume;

  00009	8b 45 e4	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	66 8b 4d 08	 mov	 cx, WORD PTR _nVolume$[ebp]
  00010	66 89 48 10	 mov	 WORD PTR [eax+16], cx

; 99   : 
; 100  :     // sanity check
; 101  :     if (m_nVolume < 0)

  00014	8b 55 e4	 mov	 edx, DWORD PTR _this$[ebp]
  00017	0f bf 42 10	 movsx	 eax, WORD PTR [edx+16]
  0001b	85 c0		 test	 eax, eax
  0001d	7d 09		 jge	 SHORT $LN2@SetVolume@2

; 102  :         m_nVolume = 0;

  0001f	33 c9		 xor	 ecx, ecx
  00021	8b 55 e4	 mov	 edx, DWORD PTR _this$[ebp]
  00024	66 89 4a 10	 mov	 WORD PTR [edx+16], cx
$LN2@SetVolume@2:

; 103  :     if (m_nVolume > 1000)

  00028	8b 45 e4	 mov	 eax, DWORD PTR _this$[ebp]
  0002b	0f bf 48 10	 movsx	 ecx, WORD PTR [eax+16]
  0002f	81 f9 e8 03 00
	00		 cmp	 ecx, 1000		; 000003e8H
  00035	7e 0c		 jle	 SHORT $LN1@SetVolume@2

; 104  :         m_nVolume = 1000;

  00037	ba e8 03 00 00	 mov	 edx, 1000		; 000003e8H
  0003c	8b 45 e4	 mov	 eax, DWORD PTR _this$[ebp]
  0003f	66 89 50 10	 mov	 WORD PTR [eax+16], dx
$LN1@SetVolume@2:

; 105  : 
; 106  :     SetMute(FALSE);

  00043	6a 00		 push	 0
  00045	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  00048	8b 55 e4	 mov	 edx, DWORD PTR _this$[ebp]
  0004b	8b 02		 mov	 eax, DWORD PTR [edx]
  0004d	8b 50 08	 mov	 edx, DWORD PTR [eax+8]
  00050	ff d2		 call	 edx

; 107  : 
; 108  :     int nBalLeft = (m_nBalance <= 0) ? 127 : (127 - m_nBalance);

  00052	8b 45 e4	 mov	 eax, DWORD PTR _this$[ebp]
  00055	0f bf 48 12	 movsx	 ecx, WORD PTR [eax+18]
  00059	85 c9		 test	 ecx, ecx
  0005b	7f 09		 jg	 SHORT $LN5@SetVolume@2
  0005d	c7 45 e0 7f 00
	00 00		 mov	 DWORD PTR tv129[ebp], 127 ; 0000007fH
  00064	eb 11		 jmp	 SHORT $LN6@SetVolume@2
$LN5@SetVolume@2:
  00066	8b 55 e4	 mov	 edx, DWORD PTR _this$[ebp]
  00069	0f bf 42 12	 movsx	 eax, WORD PTR [edx+18]
  0006d	b9 7f 00 00 00	 mov	 ecx, 127		; 0000007fH
  00072	2b c8		 sub	 ecx, eax
  00074	89 4d e0	 mov	 DWORD PTR tv129[ebp], ecx
$LN6@SetVolume@2:
  00077	8b 55 e0	 mov	 edx, DWORD PTR tv129[ebp]
  0007a	89 55 e8	 mov	 DWORD PTR _nBalLeft$[ebp], edx

; 109  :     int nBalRight = (m_nBalance >= 0) ? 127 : (127 + m_nBalance);

  0007d	8b 45 e4	 mov	 eax, DWORD PTR _this$[ebp]
  00080	0f bf 48 12	 movsx	 ecx, WORD PTR [eax+18]
  00084	85 c9		 test	 ecx, ecx
  00086	7c 09		 jl	 SHORT $LN7@SetVolume@2
  00088	c7 45 dc 7f 00
	00 00		 mov	 DWORD PTR tv138[ebp], 127 ; 0000007fH
  0008f	eb 0d		 jmp	 SHORT $LN8@SetVolume@2
$LN7@SetVolume@2:
  00091	8b 55 e4	 mov	 edx, DWORD PTR _this$[ebp]
  00094	0f bf 42 12	 movsx	 eax, WORD PTR [edx+18]
  00098	83 c0 7f	 add	 eax, 127		; 0000007fH
  0009b	89 45 dc	 mov	 DWORD PTR tv138[ebp], eax
$LN8@SetVolume@2:
  0009e	8b 4d dc	 mov	 ecx, DWORD PTR tv138[ebp]
  000a1	89 4d ec	 mov	 DWORD PTR _nBalRight$[ebp], ecx

; 110  : 
; 111  :     int nVolLeft = MulDiv(m_nVolume, nBalLeft, 127);

  000a4	6a 7f		 push	 127			; 0000007fH
  000a6	8b 55 e8	 mov	 edx, DWORD PTR _nBalLeft$[ebp]
  000a9	52		 push	 edx
  000aa	8b 45 e4	 mov	 eax, DWORD PTR _this$[ebp]
  000ad	0f bf 48 10	 movsx	 ecx, WORD PTR [eax+16]
  000b1	51		 push	 ecx
  000b2	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__MulDiv@12
  000b8	89 45 f8	 mov	 DWORD PTR _nVolLeft$[ebp], eax

; 112  :     int nVolRight = MulDiv(m_nVolume, nBalRight, 127);

  000bb	6a 7f		 push	 127			; 0000007fH
  000bd	8b 55 ec	 mov	 edx, DWORD PTR _nBalRight$[ebp]
  000c0	52		 push	 edx
  000c1	8b 45 e4	 mov	 eax, DWORD PTR _this$[ebp]
  000c4	0f bf 48 10	 movsx	 ecx, WORD PTR [eax+16]
  000c8	51		 push	 ecx
  000c9	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__MulDiv@12
  000cf	89 45 f0	 mov	 DWORD PTR _nVolRight$[ebp], eax

; 113  : 
; 114  :     BYTE bVolumeTDA9875Left;
; 115  :     BYTE bVolumeTDA9875Right;
; 116  : 
; 117  :     bVolumeTDA9875Left  =
; 118  :         (nVolLeft > 0) ?
; 119  :             (BYTE)floor(33.21928*log10(1.66416*nVolLeft - 0.66416) - 82.5) : -84;

  000d2	83 7d f8 00	 cmp	 DWORD PTR _nVolLeft$[ebp], 0
  000d6	7e 58		 jle	 SHORT $LN9@SetVolume@2
  000d8	db 45 f8	 fild	 DWORD PTR _nVolLeft$[ebp]
  000db	dc 0d 00 00 00
	00		 fmul	 QWORD PTR __real@3ffaa0663c74fb55
  000e1	dc 25 00 00 00
	00		 fsub	 QWORD PTR __real@3fe540cc78e9f6a9
  000e7	83 ec 08	 sub	 esp, 8
  000ea	dd 1c 24	 fstp	 QWORD PTR [esp]
  000ed	e8 00 00 00 00	 call	 _log10
  000f2	83 c4 08	 add	 esp, 8
  000f5	dc 0d 00 00 00
	00		 fmul	 QWORD PTR __real@40409c115df6555c
  000fb	dc 25 00 00 00
	00		 fsub	 QWORD PTR __real@4054a00000000000
  00101	83 ec 08	 sub	 esp, 8
  00104	dd 1c 24	 fstp	 QWORD PTR [esp]
  00107	e8 00 00 00 00	 call	 _floor
  0010c	83 c4 08	 add	 esp, 8
  0010f	d9 7d da	 fnstcw	 WORD PTR tv249[ebp]
  00112	0f b7 45 da	 movzx	 eax, WORD PTR tv249[ebp]
  00116	0d 00 0c 00 00	 or	 eax, 3072		; 00000c00H
  0011b	89 45 d4	 mov	 DWORD PTR tv252[ebp], eax
  0011e	d9 6d d4	 fldcw	 WORD PTR tv252[ebp]
  00121	db 5d d0	 fistp	 DWORD PTR tv254[ebp]
  00124	d9 6d da	 fldcw	 WORD PTR tv249[ebp]
  00127	0f b6 55 d0	 movzx	 edx, BYTE PTR tv254[ebp]
  0012b	89 55 cc	 mov	 DWORD PTR tv165[ebp], edx
  0012e	eb 07		 jmp	 SHORT $LN10@SetVolume@2
$LN9@SetVolume@2:
  00130	c7 45 cc ac ff
	ff ff		 mov	 DWORD PTR tv165[ebp], -84 ; ffffffacH
$LN10@SetVolume@2:
  00137	8a 45 cc	 mov	 al, BYTE PTR tv165[ebp]
  0013a	88 45 f7	 mov	 BYTE PTR _bVolumeTDA9875Left$[ebp], al

; 120  : 
; 121  :     bVolumeTDA9875Right =
; 122  :         (nVolRight > 0) ?
; 123  :             (BYTE)floor(33.21928*log10(1.66416*nVolRight - 0.66416) - 82.5) : -84;

  0013d	83 7d f0 00	 cmp	 DWORD PTR _nVolRight$[ebp], 0
  00141	7e 58		 jle	 SHORT $LN11@SetVolume@2
  00143	db 45 f0	 fild	 DWORD PTR _nVolRight$[ebp]
  00146	dc 0d 00 00 00
	00		 fmul	 QWORD PTR __real@3ffaa0663c74fb55
  0014c	dc 25 00 00 00
	00		 fsub	 QWORD PTR __real@3fe540cc78e9f6a9
  00152	83 ec 08	 sub	 esp, 8
  00155	dd 1c 24	 fstp	 QWORD PTR [esp]
  00158	e8 00 00 00 00	 call	 _log10
  0015d	83 c4 08	 add	 esp, 8
  00160	dc 0d 00 00 00
	00		 fmul	 QWORD PTR __real@40409c115df6555c
  00166	dc 25 00 00 00
	00		 fsub	 QWORD PTR __real@4054a00000000000
  0016c	83 ec 08	 sub	 esp, 8
  0016f	dd 1c 24	 fstp	 QWORD PTR [esp]
  00172	e8 00 00 00 00	 call	 _floor
  00177	83 c4 08	 add	 esp, 8
  0017a	d9 7d ca	 fnstcw	 WORD PTR tv267[ebp]
  0017d	0f b7 45 ca	 movzx	 eax, WORD PTR tv267[ebp]
  00181	0d 00 0c 00 00	 or	 eax, 3072		; 00000c00H
  00186	89 45 c4	 mov	 DWORD PTR tv270[ebp], eax
  00189	d9 6d c4	 fldcw	 WORD PTR tv270[ebp]
  0018c	db 5d c0	 fistp	 DWORD PTR tv272[ebp]
  0018f	d9 6d ca	 fldcw	 WORD PTR tv267[ebp]
  00192	0f b6 4d c0	 movzx	 ecx, BYTE PTR tv272[ebp]
  00196	89 4d bc	 mov	 DWORD PTR tv179[ebp], ecx
  00199	eb 07		 jmp	 SHORT $LN12@SetVolume@2
$LN11@SetVolume@2:
  0019b	c7 45 bc ac ff
	ff ff		 mov	 DWORD PTR tv179[ebp], -84 ; ffffffacH
$LN12@SetVolume@2:
  001a2	8a 55 bc	 mov	 dl, BYTE PTR tv179[ebp]
  001a5	88 55 ff	 mov	 BYTE PTR _bVolumeTDA9875Right$[ebp], dl

; 124  : 
; 125  :     // main
; 126  :     WriteToSubAddress(TDA9875_MVL, bVolumeTDA9875Left);

  001a8	0f b6 45 f7	 movzx	 eax, BYTE PTR _bVolumeTDA9875Left$[ebp]
  001ac	50		 push	 eax
  001ad	6a 1a		 push	 26			; 0000001aH
  001af	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  001b2	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  001b5	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 127  :     WriteToSubAddress(TDA9875_MVR, bVolumeTDA9875Right);

  001ba	0f b6 4d ff	 movzx	 ecx, BYTE PTR _bVolumeTDA9875Right$[ebp]
  001be	51		 push	 ecx
  001bf	6a 1b		 push	 27			; 0000001bH
  001c1	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  001c4	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  001c7	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 128  : 
; 129  :     // aux
; 130  :     WriteToSubAddress(TDA9875_AVL, bVolumeTDA9875Left);

  001cc	0f b6 55 f7	 movzx	 edx, BYTE PTR _bVolumeTDA9875Left$[ebp]
  001d0	52		 push	 edx
  001d1	6a 20		 push	 32			; 00000020H
  001d3	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  001d6	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  001d9	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 131  :     WriteToSubAddress(TDA9875_AVR, bVolumeTDA9875Right);

  001de	0f b6 45 ff	 movzx	 eax, BYTE PTR _bVolumeTDA9875Right$[ebp]
  001e2	50		 push	 eax
  001e3	6a 21		 push	 33			; 00000021H
  001e5	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  001e8	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  001eb	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 132  : }

  001f0	8b e5		 mov	 esp, ebp
  001f2	5d		 pop	 ebp
  001f3	c2 04 00	 ret	 4
?SetVolume@CTDA9875AudioControls@@UAEXG@Z ENDP		; CTDA9875AudioControls::SetVolume
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?SetMute@CTDA9875AudioControls@@UAEXH@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_mute$ = 8						; size = 4
?SetMute@CTDA9875AudioControls@@UAEXH@Z PROC		; CTDA9875AudioControls::SetMute, 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 (m_bKeepItMuted)

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	83 78 08 00	 cmp	 DWORD PTR [eax+8], 0
  0000e	74 0c		 je	 SHORT $LN3@SetMute@2

; 74   :     {
; 75   :         m_bMuted = FALSE;

  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	c7 41 0c 00 00
	00 00		 mov	 DWORD PTR [ecx+12], 0

; 76   :         return;

  0001a	eb 38		 jmp	 SHORT $LN4@SetMute@2
$LN3@SetMute@2:

; 77   :     }
; 78   :     m_bMuted = mute;

  0001c	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  0001f	8b 45 08	 mov	 eax, DWORD PTR _mute$[ebp]
  00022	89 42 0c	 mov	 DWORD PTR [edx+12], eax

; 79   :     if (m_bMuted)

  00025	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00028	83 79 0c 00	 cmp	 DWORD PTR [ecx+12], 0
  0002c	74 14		 je	 SHORT $LN2@SetMute@2

; 80   :         WriteToSubAddress(TDA9875_MUT, TDA9875_MUTE_ON);

  0002e	68 ff 00 00 00	 push	 255			; 000000ffH
  00033	6a 12		 push	 18			; 00000012H
  00035	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00038	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  0003b	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 81   :     else

  00040	eb 12		 jmp	 SHORT $LN4@SetMute@2
$LN2@SetMute@2:

; 82   :         WriteToSubAddress(TDA9875_MUT, TDA9875_MUTE_OFF);

  00042	68 cc 00 00 00	 push	 204			; 000000ccH
  00047	6a 12		 push	 18			; 00000012H
  00049	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0004c	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  0004f	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress
$LN4@SetMute@2:

; 83   : }

  00054	8b e5		 mov	 esp, ebp
  00056	5d		 pop	 ebp
  00057	c2 04 00	 ret	 4
?SetMute@CTDA9875AudioControls@@UAEXH@Z ENDP		; CTDA9875AudioControls::SetMute
PUBLIC	??0CTDA9875AudioControls@@QAE@XZ		; CTDA9875AudioControls::CTDA9875AudioControls
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0CTDA9875AudioControls@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0CTDA9875AudioControls@@QAE@XZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$??0CTDA9875AudioControls@@QAE@XZ$1
	DD	01H
	DD	FLAT:__unwindfunclet$??0CTDA9875AudioControls@@QAE@XZ$2
__ehfuncinfo$??0CTDA9875AudioControls@@QAE@XZ DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$??0CTDA9875AudioControls@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??0CTDA9875AudioControls@@QAE@XZ
_TEXT	SEGMENT
tv165 = -28						; size = 4
_this$ = -24						; size = 4
_EventList$ = -20					; size = 8
__$EHRec$ = -12						; size = 12
??0CTDA9875AudioControls@@QAE@XZ PROC			; CTDA9875AudioControls::CTDA9875AudioControls, 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$??0CTDA9875AudioControls@@QAE@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 10	 sub	 esp, 16			; 00000010H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d e8	 mov	 DWORD PTR _this$[ebp], ecx
  00028	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0002b	e8 00 00 00 00	 call	 ??0CTDA9875@@QAE@XZ	; CTDA9875::CTDA9875
  00030	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00037	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0003a	83 c1 0c	 add	 ecx, 12			; 0000000cH
  0003d	e8 00 00 00 00	 call	 ??0CAudioControls@@QAE@XZ ; CAudioControls::CAudioControls
  00042	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00046	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00049	83 c1 10	 add	 ecx, 16			; 00000010H
  0004c	e8 00 00 00 00	 call	 ??0CEventObject@@QAE@XZ	; CEventObject::CEventObject
  00051	c6 45 fc 02	 mov	 BYTE PTR __$EHRec$[ebp+8], 2
  00055	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  00058	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], OFFSET ??_7CTDA9875AudioControls@@6BCTDA9875@@@
  0005e	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00061	c7 41 0c 00 00
	00 00		 mov	 DWORD PTR [ecx+12], OFFSET ??_7CTDA9875AudioControls@@6BCAudioControls@@@
  00068	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  0006b	c7 42 10 00 00
	00 00		 mov	 DWORD PTR [edx+16], OFFSET ??_7CTDA9875AudioControls@@6BCEventObject@@@

; 39   :     m_bMuted = TRUE;

  00072	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  00075	c7 40 18 01 00
	00 00		 mov	 DWORD PTR [eax+24], 1

; 40   :     m_bKeepItMuted = FALSE;

  0007c	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0007f	c7 41 14 00 00
	00 00		 mov	 DWORD PTR [ecx+20], 0

; 41   :     m_nVolume = 900;

  00086	ba 84 03 00 00	 mov	 edx, 900		; 00000384H
  0008b	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  0008e	66 89 50 1c	 mov	 WORD PTR [eax+28], dx

; 42   :     m_nBalance = 0;

  00092	33 c9		 xor	 ecx, ecx
  00094	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  00097	66 89 4a 1e	 mov	 WORD PTR [edx+30], cx

; 43   :     m_nBass = 0;

  0009b	33 c0		 xor	 eax, eax
  0009d	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  000a0	66 89 41 20	 mov	 WORD PTR [ecx+32], ax

; 44   :     m_nTreble = 0;

  000a4	33 d2		 xor	 edx, edx
  000a6	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  000a9	66 89 50 22	 mov	 WORD PTR [eax+34], dx

; 45   :     m_nLoudness = 0;

  000ad	33 c9		 xor	 ecx, ecx
  000af	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  000b2	66 89 4a 24	 mov	 WORD PTR [edx+36], cx

; 46   :     m_nSpatialEffect = 0;

  000b6	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  000b9	c7 40 28 00 00
	00 00		 mov	 DWORD PTR [eax+40], 0

; 47   :     m_bSpatialEffectReg = 0;

  000c0	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  000c3	c6 41 26 00	 mov	 BYTE PTR [ecx+38], 0

; 48   :     m_bAVLReg = 0;

  000c7	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  000ca	c6 42 2c 00	 mov	 BYTE PTR [edx+44], 0

; 49   :     m_nAVLDecay = 0;

  000ce	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  000d1	c7 40 30 00 00
	00 00		 mov	 DWORD PTR [eax+48], 0

; 50   :     m_bBassBoost = FALSE;

  000d8	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  000db	c7 41 34 00 00
	00 00		 mov	 DWORD PTR [ecx+52], 0

; 51   :     m_SoundChannel = SOUNDCHANNEL_MONO;

  000e2	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  000e5	c7 42 38 01 00
	00 00		 mov	 DWORD PTR [edx+56], 1

; 52   : 
; 53   :     eEventType EventList[] = {EVENT_SOUNDCHANNEL, EVENT_ENDOFLIST};

  000ec	c7 45 ec 12 00
	00 00		 mov	 DWORD PTR _EventList$[ebp], 18 ; 00000012H
  000f3	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _EventList$[ebp+4], 0

; 54   :     EventCollector->Register(this, EventList);

  000fa	83 7d e8 00	 cmp	 DWORD PTR _this$[ebp], 0
  000fe	74 0b		 je	 SHORT $LN3@CTDA9875Au
  00100	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  00103	83 c0 10	 add	 eax, 16			; 00000010H
  00106	89 45 e4	 mov	 DWORD PTR tv165[ebp], eax
  00109	eb 07		 jmp	 SHORT $LN4@CTDA9875Au
$LN3@CTDA9875Au:
  0010b	c7 45 e4 00 00
	00 00		 mov	 DWORD PTR tv165[ebp], 0
$LN4@CTDA9875Au:
  00112	8d 4d ec	 lea	 ecx, DWORD PTR _EventList$[ebp]
  00115	51		 push	 ecx
  00116	8b 55 e4	 mov	 edx, DWORD PTR tv165[ebp]
  00119	52		 push	 edx
  0011a	b9 00 00 00 00	 mov	 ecx, OFFSET ?EventCollector@@3V?$SmartPtr@VCEventCollector@@@@A ; EventCollector
  0011f	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCEventCollector@@@@QBEPAVCEventCollector@@XZ ; SmartPtr<CEventCollector>::operator->
  00124	8b c8		 mov	 ecx, eax
  00126	e8 00 00 00 00	 call	 ?Register@CEventCollector@@QAEXPAVCEventObject@@PAW4eEventType@@@Z ; CEventCollector::Register

; 55   : }

  0012b	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00132	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  00135	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00138	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0013f	59		 pop	 ecx
  00140	8b e5		 mov	 esp, ebp
  00142	5d		 pop	 ebp
  00143	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0CTDA9875AudioControls@@QAE@XZ$0:
  00000	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1CTDA9875@@UAE@XZ	; CTDA9875::~CTDA9875
__unwindfunclet$??0CTDA9875AudioControls@@QAE@XZ$1:
  00008	8b 4d e8	 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
__unwindfunclet$??0CTDA9875AudioControls@@QAE@XZ$2:
  00013	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00016	83 c1 10	 add	 ecx, 16			; 00000010H
  00019	e9 00 00 00 00	 jmp	 ??1CEventObject@@UAE@XZ	; CEventObject::~CEventObject
__ehhandler$??0CTDA9875AudioControls@@QAE@XZ:
  0001e	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00022	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00025	8b 4a ec	 mov	 ecx, DWORD PTR [edx-20]
  00028	33 c8		 xor	 ecx, eax
  0002a	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002f	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??0CTDA9875AudioControls@@QAE@XZ
  00034	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??0CTDA9875AudioControls@@QAE@XZ ENDP			; CTDA9875AudioControls::CTDA9875AudioControls
;	COMDAT xdata$x
; File c:\develop\dscaler423a\dscaler\tda9875audiocontrols.h
xdata$x	SEGMENT
__unwindtable$??1CTDA9875AudioControls@@UAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1CTDA9875AudioControls@@UAE@XZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$??1CTDA9875AudioControls@@UAE@XZ$1
	DD	01H
	DD	FLAT:__unwindfunclet$??1CTDA9875AudioControls@@UAE@XZ$2
__ehfuncinfo$??1CTDA9875AudioControls@@UAE@XZ DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$??1CTDA9875AudioControls@@UAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??1CTDA9875AudioControls@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1CTDA9875AudioControls@@UAE@XZ PROC			; CTDA9875AudioControls::~CTDA9875AudioControls, COMDAT
; _this$ = ecx

; 46   :     virtual ~CTDA9875AudioControls() {};

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??1CTDA9875AudioControls@@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 ??_7CTDA9875AudioControls@@6BCTDA9875@@@
  0002f	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00032	c7 41 0c 00 00
	00 00		 mov	 DWORD PTR [ecx+12], OFFSET ??_7CTDA9875AudioControls@@6BCAudioControls@@@
  00039	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  0003c	c7 42 10 00 00
	00 00		 mov	 DWORD PTR [edx+16], OFFSET ??_7CTDA9875AudioControls@@6BCEventObject@@@
  00043	c7 45 fc 02 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 2
  0004a	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  0004e	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00051	83 c1 10	 add	 ecx, 16			; 00000010H
  00054	e8 00 00 00 00	 call	 ??1CEventObject@@UAE@XZ	; CEventObject::~CEventObject
  00059	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  0005d	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00060	83 c1 0c	 add	 ecx, 12			; 0000000cH
  00063	e8 00 00 00 00	 call	 ??1CAudioControls@@UAE@XZ ; CAudioControls::~CAudioControls
  00068	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0006f	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00072	e8 00 00 00 00	 call	 ??1CTDA9875@@UAE@XZ	; CTDA9875::~CTDA9875
  00077	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0007a	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00081	59		 pop	 ecx
  00082	8b e5		 mov	 esp, ebp
  00084	5d		 pop	 ebp
  00085	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1CTDA9875AudioControls@@UAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1CTDA9875@@UAE@XZ	; CTDA9875::~CTDA9875
__unwindfunclet$??1CTDA9875AudioControls@@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
__unwindfunclet$??1CTDA9875AudioControls@@UAE@XZ$2:
  00013	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00016	83 c1 10	 add	 ecx, 16			; 00000010H
  00019	e9 00 00 00 00	 jmp	 ??1CEventObject@@UAE@XZ	; CEventObject::~CEventObject
__ehhandler$??1CTDA9875AudioControls@@UAE@XZ:
  0001e	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00022	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00025	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  00028	33 c8		 xor	 ecx, eax
  0002a	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002f	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??1CTDA9875AudioControls@@UAE@XZ
  00034	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??1CTDA9875AudioControls@@UAE@XZ ENDP			; CTDA9875AudioControls::~CTDA9875AudioControls
; Function compile flags: /Odtp
;	COMDAT ??_GCTDA9875AudioControls@@UAEPAXI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___flags$ = 8						; size = 4
??_GCTDA9875AudioControls@@UAEPAXI@Z PROC		; CTDA9875AudioControls::`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	 ??1CTDA9875AudioControls@@UAE@XZ ; CTDA9875AudioControls::~CTDA9875AudioControls
  0000f	8b 45 08	 mov	 eax, DWORD PTR ___flags$[ebp]
  00012	83 e0 01	 and	 eax, 1
  00015	74 0c		 je	 SHORT $LN1@scalar@416
  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@416:
  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
??_GCTDA9875AudioControls@@UAEPAXI@Z ENDP		; CTDA9875AudioControls::`scalar deleting destructor'
END
