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

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

INCLUDELIB OLDNAMES

PUBLIC	??_C@_0L@DHKBIPLI@Mixer?5Name?$AA@		; `string'
PUBLIC	??_C@_0M@JHHNANCG@Input6Index?$AA@		; `string'
PUBLIC	??_C@_0O@HMCGOLOM@Input?56?5Index?$AA@		; `string'
PUBLIC	??_C@_0M@KGJFBHLL@Input5Index?$AA@		; `string'
PUBLIC	??_C@_0O@PCKJOMAP@Input?55?5Index?$AA@		; `string'
PUBLIC	??_C@_0M@OEAJNKMO@ResetOnExit?$AA@		; `string'
PUBLIC	??_C@_0BE@HGGFODAH@Reset?5Mixer?5on?5Exit?$AA@	; `string'
PUBLIC	??_C@_0M@OCBMAP@Input4Index?$AA@		; `string'
PUBLIC	??_C@_0O@DOADOMJB@Input?54?5Index?$AA@		; `string'
PUBLIC	??_C@_0M@MFEFCCIB@Input3Index?$AA@		; `string'
PUBLIC	??_C@_0O@DEMGOFII@Input?53?5Index?$AA@		; `string'
PUBLIC	??_C@_0M@GDDCCJDF@Input2Index?$AA@		; `string'
PUBLIC	??_C@_0O@PIGMOFBG@Input?52?5Index?$AA@		; `string'
PUBLIC	??_C@_0M@FCNKDDKI@Input1Index?$AA@		; `string'
PUBLIC	??_C@_0O@HGODOCPF@Input?51?5Index?$AA@		; `string'
PUBLIC	??_C@_09LEMDJOBK@DestIndex?$AA@			; `string'
PUBLIC	??_C@_08BIIMBL@UseMixer?$AA@			; `string'
PUBLIC	??_C@_05JEEHMIBO@Mixer?$AA@			; `string'
PUBLIC	??_C@_09HKKCEJE@Use?5Mixer?$AA@			; `string'
PUBLIC	??4?$SmartPtr@VCSettingsHolder@@@@QAEAAV0@PAVCSettingsHolder@@@Z ; SmartPtr<CSettingsHolder>::operator=
PUBLIC	?IsValid@?$SmartPtr@VCSettingsHolder@@@@QBEHXZ	; SmartPtr<CSettingsHolder>::IsValid
PUBLIC	??_C@_1GG@FNMMFMJJ@?$AAN?$AAo?$AA?5?$AAa?$AAu?$AAd?$AAi?$AAo?$AA?5?$AAm?$AAi?$AAx?$AAe?$AAr?$AA?5?$AAs?$AAe?$AAt?$AAu?$AAp?$AA?5?$AAn?$AAe?$AAe?$AAd?$AAe?$AAd?$AA?5?$AAf?$AAo?$AAr?$AA?5@ ; `string'
PUBLIC	??_C@_1DA@NDCMJBEC@?$AAN?$AAo?$AA?5?$AAm?$AAi?$AAx?$AAe?$AAr?$AA?5?$AAh?$AAa?$AAr?$AAd?$AAw?$AAa?$AAr?$AAe?$AA?5?$AAf?$AAo?$AAu?$AAn?$AAd?$AA?$AA@ ; `string'
PUBLIC	??_C@_1O@CCLAMLBK@?$AAI?$AAn?$AAp?$AAu?$AAt?$AA?5?$AA?$AA@ ; `string'
PUBLIC	??_C@_1O@NLHFMLEA@?$AA?$DM?$AAN?$AAo?$AAn?$AAe?$AA?$DO?$AA?$AA@ ; `string'
PUBLIC	??_C@_0P@ODGLELLM@NoHardwareMute?$AA@		; `string'
PUBLIC	??_C@_0BB@EEMPDPGJ@No?5Hardware?5Mute?$AA@	; `string'
PUBLIC	??_C@_09FLPMNIBE@MixerName?$AA@			; `string'
PUBLIC	??_C@_1BI@JKDALEMH@?$AAM?$AAi?$AAx?$AAe?$AAr?$AAI?$AAn?$AAp?$AAu?$AAt?$AA_?$AA?$AA@ ; `string'
_g_nSourceIndexes DD 06H DUP (?)
_g_nDestinationIndex DD 01H DUP (?)
_g_pCurrentMixer DD 01H DUP (?)
_g_nActiveInputsCount DD 01H DUP (?)
_g_bUseMixer DD	01H DUP (?)
_g_bResetOnExit DD 01H DUP (?)
_g_bNoHardwareMute DD 01H DUP (?)
_g_pDlgActiveMixer DD 01H DUP (?)
;	COMDAT ??_C@_1BI@JKDALEMH@?$AAM?$AAi?$AAx?$AAe?$AAr?$AAI?$AAn?$AAp?$AAu?$AAt?$AA_?$AA?$AA@
CONST	SEGMENT
??_C@_1BI@JKDALEMH@?$AAM?$AAi?$AAx?$AAe?$AAr?$AAI?$AAn?$AAp?$AAu?$AAt?$AA_?$AA?$AA@ DB 'M'
	DB	00H, 'i', 00H, 'x', 00H, 'e', 00H, 'r', 00H, 'I', 00H, 'n', 00H
	DB	'p', 00H, 'u', 00H, 't', 00H, '_', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_09FLPMNIBE@MixerName?$AA@
CONST	SEGMENT
??_C@_09FLPMNIBE@MixerName?$AA@ DB 'MixerName', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0BB@EEMPDPGJ@No?5Hardware?5Mute?$AA@
CONST	SEGMENT
??_C@_0BB@EEMPDPGJ@No?5Hardware?5Mute?$AA@ DB 'No Hardware Mute', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0P@ODGLELLM@NoHardwareMute?$AA@
CONST	SEGMENT
??_C@_0P@ODGLELLM@NoHardwareMute?$AA@ DB 'NoHardwareMute', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0L@DHKBIPLI@Mixer?5Name?$AA@
CONST	SEGMENT
??_C@_0L@DHKBIPLI@Mixer?5Name?$AA@ DB 'Mixer Name', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@JHHNANCG@Input6Index?$AA@
CONST	SEGMENT
??_C@_0M@JHHNANCG@Input6Index?$AA@ DB 'Input6Index', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@HMCGOLOM@Input?56?5Index?$AA@
CONST	SEGMENT
??_C@_0O@HMCGOLOM@Input?56?5Index?$AA@ DB 'Input 6 Index', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@KGJFBHLL@Input5Index?$AA@
CONST	SEGMENT
??_C@_0M@KGJFBHLL@Input5Index?$AA@ DB 'Input5Index', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@PCKJOMAP@Input?55?5Index?$AA@
CONST	SEGMENT
??_C@_0O@PCKJOMAP@Input?55?5Index?$AA@ DB 'Input 5 Index', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@OEAJNKMO@ResetOnExit?$AA@
CONST	SEGMENT
??_C@_0M@OEAJNKMO@ResetOnExit?$AA@ DB 'ResetOnExit', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BE@HGGFODAH@Reset?5Mixer?5on?5Exit?$AA@
CONST	SEGMENT
??_C@_0BE@HGGFODAH@Reset?5Mixer?5on?5Exit?$AA@ DB 'Reset Mixer on Exit', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@OCBMAP@Input4Index?$AA@
CONST	SEGMENT
??_C@_0M@OCBMAP@Input4Index?$AA@ DB 'Input4Index', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@DOADOMJB@Input?54?5Index?$AA@
CONST	SEGMENT
??_C@_0O@DOADOMJB@Input?54?5Index?$AA@ DB 'Input 4 Index', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@MFEFCCIB@Input3Index?$AA@
CONST	SEGMENT
??_C@_0M@MFEFCCIB@Input3Index?$AA@ DB 'Input3Index', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@DEMGOFII@Input?53?5Index?$AA@
CONST	SEGMENT
??_C@_0O@DEMGOFII@Input?53?5Index?$AA@ DB 'Input 3 Index', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@GDDCCJDF@Input2Index?$AA@
CONST	SEGMENT
??_C@_0M@GDDCCJDF@Input2Index?$AA@ DB 'Input2Index', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@PIGMOFBG@Input?52?5Index?$AA@
CONST	SEGMENT
??_C@_0O@PIGMOFBG@Input?52?5Index?$AA@ DB 'Input 2 Index', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@FCNKDDKI@Input1Index?$AA@
CONST	SEGMENT
??_C@_0M@FCNKDDKI@Input1Index?$AA@ DB 'Input1Index', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@HGODOCPF@Input?51?5Index?$AA@
CONST	SEGMENT
??_C@_0O@HGODOCPF@Input?51?5Index?$AA@ DB 'Input 1 Index', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_09LEMDJOBK@DestIndex?$AA@
CONST	SEGMENT
??_C@_09LEMDJOBK@DestIndex?$AA@ DB 'DestIndex', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_08BIIMBL@UseMixer?$AA@
CONST	SEGMENT
??_C@_08BIIMBL@UseMixer?$AA@ DB 'UseMixer', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_05JEEHMIBO@Mixer?$AA@
CONST	SEGMENT
??_C@_05JEEHMIBO@Mixer?$AA@ DB 'Mixer', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_09HKKCEJE@Use?5Mixer?$AA@
CONST	SEGMENT
??_C@_09HKKCEJE@Use?5Mixer?$AA@ DB 'Use Mixer', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1O@NLHFMLEA@?$AA?$DM?$AAN?$AAo?$AAn?$AAe?$AA?$DO?$AA?$AA@
CONST	SEGMENT
??_C@_1O@NLHFMLEA@?$AA?$DM?$AAN?$AAo?$AAn?$AAe?$AA?$DO?$AA?$AA@ DB '<', 00H
	DB	'N', 00H, 'o', 00H, 'n', 00H, 'e', 00H, '>', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1O@CCLAMLBK@?$AAI?$AAn?$AAp?$AAu?$AAt?$AA?5?$AA?$AA@
CONST	SEGMENT
??_C@_1O@CCLAMLBK@?$AAI?$AAn?$AAp?$AAu?$AAt?$AA?5?$AA?$AA@ DB 'I', 00H, 'n'
	DB	00H, 'p', 00H, 'u', 00H, 't', 00H, ' ', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1DA@NDCMJBEC@?$AAN?$AAo?$AA?5?$AAm?$AAi?$AAx?$AAe?$AAr?$AA?5?$AAh?$AAa?$AAr?$AAd?$AAw?$AAa?$AAr?$AAe?$AA?5?$AAf?$AAo?$AAu?$AAn?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_1DA@NDCMJBEC@?$AAN?$AAo?$AA?5?$AAm?$AAi?$AAx?$AAe?$AAr?$AA?5?$AAh?$AAa?$AAr?$AAd?$AAw?$AAa?$AAr?$AAe?$AA?5?$AAf?$AAo?$AAu?$AAn?$AAd?$AA?$AA@ DB 'N'
	DB	00H, 'o', 00H, ' ', 00H, 'm', 00H, 'i', 00H, 'x', 00H, 'e', 00H
	DB	'r', 00H, ' ', 00H, 'h', 00H, 'a', 00H, 'r', 00H, 'd', 00H, 'w'
	DB	00H, 'a', 00H, 'r', 00H, 'e', 00H, ' ', 00H, 'f', 00H, 'o', 00H
	DB	'u', 00H, 'n', 00H, 'd', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1GG@FNMMFMJJ@?$AAN?$AAo?$AA?5?$AAa?$AAu?$AAd?$AAi?$AAo?$AA?5?$AAm?$AAi?$AAx?$AAe?$AAr?$AA?5?$AAs?$AAe?$AAt?$AAu?$AAp?$AA?5?$AAn?$AAe?$AAe?$AAd?$AAe?$AAd?$AA?5?$AAf?$AAo?$AAr?$AA?5@
CONST	SEGMENT
??_C@_1GG@FNMMFMJJ@?$AAN?$AAo?$AA?5?$AAa?$AAu?$AAd?$AAi?$AAo?$AA?5?$AAm?$AAi?$AAx?$AAe?$AAr?$AA?5?$AAs?$AAe?$AAt?$AAu?$AAp?$AA?5?$AAn?$AAe?$AAe?$AAd?$AAe?$AAd?$AA?5?$AAf?$AAo?$AAr?$AA?5@ DB 'N'
	DB	00H, 'o', 00H, ' ', 00H, 'a', 00H, 'u', 00H, 'd', 00H, 'i', 00H
	DB	'o', 00H, ' ', 00H, 'm', 00H, 'i', 00H, 'x', 00H, 'e', 00H, 'r'
	DB	00H, ' ', 00H, 's', 00H, 'e', 00H, 't', 00H, 'u', 00H, 'p', 00H
	DB	' ', 00H, 'n', 00H, 'e', 00H, 'e', 00H, 'd', 00H, 'e', 00H, 'd'
	DB	00H, ' ', 00H, 'f', 00H, 'o', 00H, 'r', 00H, ' ', 00H, 't', 00H
	DB	'h', 00H, 'e', 00H, ' ', 00H, 'c', 00H, 'u', 00H, 'r', 00H, 'r'
	DB	00H, 'e', 00H, 'n', 00H, 't', 00H, ' ', 00H, 's', 00H, 'o', 00H
	DB	'u', 00H, 'r', 00H, 'c', 00H, 'e', 00H, 00H, 00H ; `string'
_g_bMixerDevInvalidSection DD 01H
	ORG $+2
_g_nActiveInput DD 0ffffffffH
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\smartptr.h
;	COMDAT ?IsValid@?$SmartPtr@VCSettingsHolder@@@@QBEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?IsValid@?$SmartPtr@VCSettingsHolder@@@@QBEHXZ PROC	; SmartPtr<CSettingsHolder>::IsValid, 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  :         if (counter && rawPtr) return TRUE;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	83 78 04 00	 cmp	 DWORD PTR [eax+4], 0
  0000e	74 0f		 je	 SHORT $LN1@IsValid@11
  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	83 39 00	 cmp	 DWORD PTR [ecx], 0
  00016	74 07		 je	 SHORT $LN1@IsValid@11
  00018	b8 01 00 00 00	 mov	 eax, 1
  0001d	eb 02		 jmp	 SHORT $LN2@IsValid@11
$LN1@IsValid@11:

; 223  :         return FALSE;

  0001f	33 c0		 xor	 eax, eax
$LN2@IsValid@11:

; 224  :     }

  00021	8b e5		 mov	 esp, ebp
  00023	5d		 pop	 ebp
  00024	c3		 ret	 0
?IsValid@?$SmartPtr@VCSettingsHolder@@@@QBEHXZ ENDP	; SmartPtr<CSettingsHolder>::IsValid
_TEXT	ENDS
PUBLIC	?MixerDev_SetMenu@@YAXPAUHMENU__@@@Z		; MixerDev_SetMenu
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\mixerdev.cpp
;	COMDAT ?MixerDev_SetMenu@@YAXPAUHMENU__@@@Z
_TEXT	SEGMENT
_hMenu$ = 8						; size = 4
?MixerDev_SetMenu@@YAXPAUHMENU__@@@Z PROC		; MixerDev_SetMenu, COMDAT

; 1521 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 1522 : 
; 1523 : }

  00003	5d		 pop	 ebp
  00004	c3		 ret	 0
?MixerDev_SetMenu@@YAXPAUHMENU__@@@Z ENDP		; MixerDev_SetMenu
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?LongArrayDivide@@YAXPAJ000@Z
_TEXT	SEGMENT
_j$ = -12						; size = 4
_i$ = -8						; size = 4
_resultCount$ = -4					; size = 4
_dividend$ = 8						; size = 4
_dividendSize$ = 12					; size = 4
_divisor$ = 16						; size = 4
_divisorSize$ = 20					; size = 4
?LongArrayDivide@@YAXPAJ000@Z PROC			; LongArrayDivide, COMDAT

; 1374 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH
  00006	56		 push	 esi

; 1375 :     long resultCount = 0;

  00007	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _resultCount$[ebp], 0

; 1376 :     int i, j;
; 1377 : 
; 1378 :     // Run through every element in the array 'dividend'.
; 1379 :     for (i = 0; i < *dividendSize; i++)

  0000e	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  00015	eb 09		 jmp	 SHORT $LN10@LongArrayD
$LN9@LongArrayD:
  00017	8b 45 f8	 mov	 eax, DWORD PTR _i$[ebp]
  0001a	83 c0 01	 add	 eax, 1
  0001d	89 45 f8	 mov	 DWORD PTR _i$[ebp], eax
$LN10@LongArrayD:
  00020	8b 4d 0c	 mov	 ecx, DWORD PTR _dividendSize$[ebp]
  00023	8b 55 f8	 mov	 edx, DWORD PTR _i$[ebp]
  00026	3b 11		 cmp	 edx, DWORD PTR [ecx]
  00028	0f 8d 8b 00 00
	00		 jge	 $LN8@LongArrayD

; 1380 :     {
; 1381 :         // See if this dividend[i] value is also in 'divisor'.
; 1382 :         for (j = 0; j < *divisorSize; j++)

  0002e	c7 45 f4 00 00
	00 00		 mov	 DWORD PTR _j$[ebp], 0
  00035	eb 09		 jmp	 SHORT $LN7@LongArrayD
$LN6@LongArrayD:
  00037	8b 45 f4	 mov	 eax, DWORD PTR _j$[ebp]
  0003a	83 c0 01	 add	 eax, 1
  0003d	89 45 f4	 mov	 DWORD PTR _j$[ebp], eax
$LN7@LongArrayD:
  00040	8b 4d 14	 mov	 ecx, DWORD PTR _divisorSize$[ebp]
  00043	8b 55 f4	 mov	 edx, DWORD PTR _j$[ebp]
  00046	3b 11		 cmp	 edx, DWORD PTR [ecx]
  00048	7d 18		 jge	 SHORT $LN5@LongArrayD

; 1383 :         {
; 1384 :             if (divisor[j] == dividend[i])

  0004a	8b 45 f4	 mov	 eax, DWORD PTR _j$[ebp]
  0004d	8b 4d 10	 mov	 ecx, DWORD PTR _divisor$[ebp]
  00050	8b 55 f8	 mov	 edx, DWORD PTR _i$[ebp]
  00053	8b 75 08	 mov	 esi, DWORD PTR _dividend$[ebp]
  00056	8b 04 81	 mov	 eax, DWORD PTR [ecx+eax*4]
  00059	3b 04 96	 cmp	 eax, DWORD PTR [esi+edx*4]
  0005c	75 02		 jne	 SHORT $LN4@LongArrayD

; 1385 :             {
; 1386 :                 break;

  0005e	eb 02		 jmp	 SHORT $LN5@LongArrayD
$LN4@LongArrayD:

; 1387 :             }
; 1388 :         }

  00060	eb d5		 jmp	 SHORT $LN6@LongArrayD
$LN5@LongArrayD:

; 1389 : 
; 1390 :         // If the value was not also in 'divisor'.
; 1391 :         if (j == *divisorSize)

  00062	8b 4d 14	 mov	 ecx, DWORD PTR _divisorSize$[ebp]
  00065	8b 55 f4	 mov	 edx, DWORD PTR _j$[ebp]
  00068	3b 11		 cmp	 edx, DWORD PTR [ecx]
  0006a	75 1d		 jne	 SHORT $LN3@LongArrayD

; 1392 :         {
; 1393 :             // Put the value in the result array.
; 1394 :             dividend[resultCount++] = dividend[i];

  0006c	8b 45 fc	 mov	 eax, DWORD PTR _resultCount$[ebp]
  0006f	8b 4d 08	 mov	 ecx, DWORD PTR _dividend$[ebp]
  00072	8b 55 f8	 mov	 edx, DWORD PTR _i$[ebp]
  00075	8b 75 08	 mov	 esi, DWORD PTR _dividend$[ebp]
  00078	8b 14 96	 mov	 edx, DWORD PTR [esi+edx*4]
  0007b	89 14 81	 mov	 DWORD PTR [ecx+eax*4], edx
  0007e	8b 45 fc	 mov	 eax, DWORD PTR _resultCount$[ebp]
  00081	83 c0 01	 add	 eax, 1
  00084	89 45 fc	 mov	 DWORD PTR _resultCount$[ebp], eax

; 1395 :         }
; 1396 :         // If the value was also in 'divisor'.
; 1397 :         else

  00087	eb 2b		 jmp	 SHORT $LN2@LongArrayD
$LN3@LongArrayD:

; 1398 :         {
; 1399 :             // Remove the value from 'divisor' in the same way
; 1400 :             // commented in LongArraySubstract().  (i.e. reduce the
; 1401 :             // size of the array and shuffle the last element into the
; 1402 :             // newly created gap.)
; 1403 :             if (--(*divisorSize) != j)

  00089	8b 4d 14	 mov	 ecx, DWORD PTR _divisorSize$[ebp]
  0008c	8b 11		 mov	 edx, DWORD PTR [ecx]
  0008e	83 ea 01	 sub	 edx, 1
  00091	8b 45 14	 mov	 eax, DWORD PTR _divisorSize$[ebp]
  00094	89 10		 mov	 DWORD PTR [eax], edx
  00096	8b 4d 14	 mov	 ecx, DWORD PTR _divisorSize$[ebp]
  00099	8b 11		 mov	 edx, DWORD PTR [ecx]
  0009b	3b 55 f4	 cmp	 edx, DWORD PTR _j$[ebp]
  0009e	74 14		 je	 SHORT $LN2@LongArrayD

; 1404 :             {
; 1405 :                 divisor[j] = divisor[*divisorSize];

  000a0	8b 45 14	 mov	 eax, DWORD PTR _divisorSize$[ebp]
  000a3	8b 08		 mov	 ecx, DWORD PTR [eax]
  000a5	8b 55 f4	 mov	 edx, DWORD PTR _j$[ebp]
  000a8	8b 45 10	 mov	 eax, DWORD PTR _divisor$[ebp]
  000ab	8b 75 10	 mov	 esi, DWORD PTR _divisor$[ebp]
  000ae	8b 0c 8e	 mov	 ecx, DWORD PTR [esi+ecx*4]
  000b1	89 0c 90	 mov	 DWORD PTR [eax+edx*4], ecx
$LN2@LongArrayD:

; 1406 :             }
; 1407 :         }
; 1408 :     }

  000b4	e9 5e ff ff ff	 jmp	 $LN9@LongArrayD
$LN8@LongArrayD:

; 1409 : 
; 1410 :     // The resulting array was created _T("in place") over the 'dividend'
; 1411 :     // array.  Update the correct size of 'dividend' before returning.
; 1412 :     *dividendSize = resultCount;

  000b9	8b 55 0c	 mov	 edx, DWORD PTR _dividendSize$[ebp]
  000bc	8b 45 fc	 mov	 eax, DWORD PTR _resultCount$[ebp]
  000bf	89 02		 mov	 DWORD PTR [edx], eax

; 1413 : }

  000c1	5e		 pop	 esi
  000c2	8b e5		 mov	 esp, ebp
  000c4	5d		 pop	 ebp
  000c5	c3		 ret	 0
?LongArrayDivide@@YAXPAJ000@Z ENDP			; LongArrayDivide
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?LongArraySubstract@@YAXPAJ0PBJJ@Z
_TEXT	SEGMENT
_j$ = -8						; size = 4
_i$ = -4						; size = 4
_values$ = 8						; size = 4
_valuesSize$ = 12					; size = 4
_subtract$ = 16						; size = 4
_substractSize$ = 20					; size = 4
?LongArraySubstract@@YAXPAJ0PBJJ@Z PROC			; LongArraySubstract, COMDAT

; 1327 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8
  00006	56		 push	 esi

; 1328 :     int i, j;
; 1329 : 
; 1330 :     // Run through every value in the array 'subtract'.
; 1331 :     for (i = 0; i < substractSize; i++)

  00007	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  0000e	eb 09		 jmp	 SHORT $LN9@LongArrayS
$LN8@LongArrayS:
  00010	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  00013	83 c0 01	 add	 eax, 1
  00016	89 45 fc	 mov	 DWORD PTR _i$[ebp], eax
$LN9@LongArrayS:
  00019	8b 4d fc	 mov	 ecx, DWORD PTR _i$[ebp]
  0001c	3b 4d 14	 cmp	 ecx, DWORD PTR _substractSize$[ebp]
  0001f	7d 6b		 jge	 SHORT $LN10@LongArrayS

; 1332 :     {
; 1333 :         // See if this subtract[i] value is also in 'values'.
; 1334 :         for (j = 0; j < *valuesSize; j++)

  00021	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _j$[ebp], 0
  00028	eb 09		 jmp	 SHORT $LN6@LongArrayS
$LN5@LongArrayS:
  0002a	8b 55 f8	 mov	 edx, DWORD PTR _j$[ebp]
  0002d	83 c2 01	 add	 edx, 1
  00030	89 55 f8	 mov	 DWORD PTR _j$[ebp], edx
$LN6@LongArrayS:
  00033	8b 45 0c	 mov	 eax, DWORD PTR _valuesSize$[ebp]
  00036	8b 4d f8	 mov	 ecx, DWORD PTR _j$[ebp]
  00039	3b 08		 cmp	 ecx, DWORD PTR [eax]
  0003b	7d 18		 jge	 SHORT $LN4@LongArrayS

; 1335 :         {
; 1336 :             if (values[j] == subtract[i])

  0003d	8b 55 f8	 mov	 edx, DWORD PTR _j$[ebp]
  00040	8b 45 08	 mov	 eax, DWORD PTR _values$[ebp]
  00043	8b 4d fc	 mov	 ecx, DWORD PTR _i$[ebp]
  00046	8b 75 10	 mov	 esi, DWORD PTR _subtract$[ebp]
  00049	8b 14 90	 mov	 edx, DWORD PTR [eax+edx*4]
  0004c	3b 14 8e	 cmp	 edx, DWORD PTR [esi+ecx*4]
  0004f	75 02		 jne	 SHORT $LN3@LongArrayS

; 1337 :             {
; 1338 :                 break;

  00051	eb 02		 jmp	 SHORT $LN4@LongArrayS
$LN3@LongArrayS:

; 1339 :             }
; 1340 :         }

  00053	eb d5		 jmp	 SHORT $LN5@LongArrayS
$LN4@LongArrayS:

; 1341 : 
; 1342 :         // If the value WAS found (i.e. the above loop broke early).
; 1343 :         if (j != *valuesSize)

  00055	8b 45 0c	 mov	 eax, DWORD PTR _valuesSize$[ebp]
  00058	8b 4d f8	 mov	 ecx, DWORD PTR _j$[ebp]
  0005b	3b 08		 cmp	 ecx, DWORD PTR [eax]
  0005d	74 2b		 je	 SHORT $LN2@LongArrayS

; 1344 :         {
; 1345 :             // Subtract one from the size of 'values' array.
; 1346 :             *valuesSize -= 1;

  0005f	8b 55 0c	 mov	 edx, DWORD PTR _valuesSize$[ebp]
  00062	8b 02		 mov	 eax, DWORD PTR [edx]
  00064	83 e8 01	 sub	 eax, 1
  00067	8b 4d 0c	 mov	 ecx, DWORD PTR _valuesSize$[ebp]
  0006a	89 01		 mov	 DWORD PTR [ecx], eax

; 1347 : 
; 1348 :             // 'j' is the index of the value that is being removed.
; 1349 :             // *valueSize is now representing the new size of the array
; 1350 :             // where there is one less element.  This new size value is
; 1351 :             // also the same as the index of the last element from the
; 1352 :             // previous/ size (i.e. because: last index = size - 1).  If
; 1353 :             // 'j' was not the last index, put the value at the last index
; 1354 :             // where 'j' is.
; 1355 :             if (j != *valuesSize)

  0006c	8b 55 0c	 mov	 edx, DWORD PTR _valuesSize$[ebp]
  0006f	8b 45 f8	 mov	 eax, DWORD PTR _j$[ebp]
  00072	3b 02		 cmp	 eax, DWORD PTR [edx]
  00074	74 14		 je	 SHORT $LN2@LongArrayS

; 1356 :             {
; 1357 :                 values[j] = values[*valuesSize];

  00076	8b 4d 0c	 mov	 ecx, DWORD PTR _valuesSize$[ebp]
  00079	8b 11		 mov	 edx, DWORD PTR [ecx]
  0007b	8b 45 f8	 mov	 eax, DWORD PTR _j$[ebp]
  0007e	8b 4d 08	 mov	 ecx, DWORD PTR _values$[ebp]
  00081	8b 75 08	 mov	 esi, DWORD PTR _values$[ebp]
  00084	8b 14 96	 mov	 edx, DWORD PTR [esi+edx*4]
  00087	89 14 81	 mov	 DWORD PTR [ecx+eax*4], edx
$LN2@LongArrayS:

; 1358 :             }
; 1359 :         }

  0008a	eb 84		 jmp	 SHORT $LN8@LongArrayS
$LN10@LongArrayS:

; 1360 :     }
; 1361 : }

  0008c	5e		 pop	 esi
  0008d	8b e5		 mov	 esp, ebp
  0008f	5d		 pop	 ebp
  00090	c3		 ret	 0
?LongArraySubstract@@YAXPAJ0PBJJ@Z ENDP			; LongArraySubstract
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?LongArrayUnique@@YAJPBJJPAJ@Z
_TEXT	SEGMENT
_j$ = -12						; size = 4
_i$ = -8						; size = 4
_resultCount$ = -4					; size = 4
_source$ = 8						; size = 4
_size$ = 12						; size = 4
_dest$ = 16						; size = 4
?LongArrayUnique@@YAJPBJJPAJ@Z PROC			; LongArrayUnique, COMDAT

; 1285 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH
  00006	56		 push	 esi

; 1286 :     long resultCount(0);

  00007	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _resultCount$[ebp], 0

; 1287 :     int i, j;
; 1288 : 
; 1289 :     if (size > 0)

  0000e	83 7d 0c 00	 cmp	 DWORD PTR _size$[ebp], 0
  00012	0f 8e 82 00 00
	00		 jle	 $LN9@LongArrayU

; 1290 :     {
; 1291 :         // Copy the first element over.
; 1292 :         dest[0] = source[0];

  00018	8b 45 10	 mov	 eax, DWORD PTR _dest$[ebp]
  0001b	8b 4d 08	 mov	 ecx, DWORD PTR _source$[ebp]
  0001e	8b 11		 mov	 edx, DWORD PTR [ecx]
  00020	89 10		 mov	 DWORD PTR [eax], edx

; 1293 :         resultCount = 1;

  00022	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _resultCount$[ebp], 1

; 1294 : 
; 1295 :         // Run through every value in source.
; 1296 :         for (i = 1; i < size; i++)

  00029	c7 45 f8 01 00
	00 00		 mov	 DWORD PTR _i$[ebp], 1
  00030	eb 09		 jmp	 SHORT $LN8@LongArrayU
$LN7@LongArrayU:
  00032	8b 45 f8	 mov	 eax, DWORD PTR _i$[ebp]
  00035	83 c0 01	 add	 eax, 1
  00038	89 45 f8	 mov	 DWORD PTR _i$[ebp], eax
$LN8@LongArrayU:
  0003b	8b 4d f8	 mov	 ecx, DWORD PTR _i$[ebp]
  0003e	3b 4d 0c	 cmp	 ecx, DWORD PTR _size$[ebp]
  00041	7d 57		 jge	 SHORT $LN9@LongArrayU

; 1297 :         {
; 1298 :             // See if this source[i] value is already in the destination.
; 1299 :             for (j = 0; j < resultCount; j++)

  00043	c7 45 f4 00 00
	00 00		 mov	 DWORD PTR _j$[ebp], 0
  0004a	eb 09		 jmp	 SHORT $LN5@LongArrayU
$LN4@LongArrayU:
  0004c	8b 55 f4	 mov	 edx, DWORD PTR _j$[ebp]
  0004f	83 c2 01	 add	 edx, 1
  00052	89 55 f4	 mov	 DWORD PTR _j$[ebp], edx
$LN5@LongArrayU:
  00055	8b 45 f4	 mov	 eax, DWORD PTR _j$[ebp]
  00058	3b 45 fc	 cmp	 eax, DWORD PTR _resultCount$[ebp]
  0005b	7d 18		 jge	 SHORT $LN3@LongArrayU

; 1300 :             {
; 1301 :                 if (dest[j] == source[i])

  0005d	8b 4d f4	 mov	 ecx, DWORD PTR _j$[ebp]
  00060	8b 55 10	 mov	 edx, DWORD PTR _dest$[ebp]
  00063	8b 45 f8	 mov	 eax, DWORD PTR _i$[ebp]
  00066	8b 75 08	 mov	 esi, DWORD PTR _source$[ebp]
  00069	8b 0c 8a	 mov	 ecx, DWORD PTR [edx+ecx*4]
  0006c	3b 0c 86	 cmp	 ecx, DWORD PTR [esi+eax*4]
  0006f	75 02		 jne	 SHORT $LN2@LongArrayU

; 1302 :                 {
; 1303 :                     break;

  00071	eb 02		 jmp	 SHORT $LN3@LongArrayU
$LN2@LongArrayU:

; 1304 :                 }
; 1305 :             }

  00073	eb d7		 jmp	 SHORT $LN4@LongArrayU
$LN3@LongArrayU:

; 1306 : 
; 1307 :             // If the value was not already in the destination, add it.
; 1308 :             if (j == resultCount)

  00075	8b 55 f4	 mov	 edx, DWORD PTR _j$[ebp]
  00078	3b 55 fc	 cmp	 edx, DWORD PTR _resultCount$[ebp]
  0007b	75 1b		 jne	 SHORT $LN1@LongArrayU

; 1309 :             {
; 1310 :                 dest[resultCount++] = source[i];

  0007d	8b 45 fc	 mov	 eax, DWORD PTR _resultCount$[ebp]
  00080	8b 4d 10	 mov	 ecx, DWORD PTR _dest$[ebp]
  00083	8b 55 f8	 mov	 edx, DWORD PTR _i$[ebp]
  00086	8b 75 08	 mov	 esi, DWORD PTR _source$[ebp]
  00089	8b 14 96	 mov	 edx, DWORD PTR [esi+edx*4]
  0008c	89 14 81	 mov	 DWORD PTR [ecx+eax*4], edx
  0008f	8b 45 fc	 mov	 eax, DWORD PTR _resultCount$[ebp]
  00092	83 c0 01	 add	 eax, 1
  00095	89 45 fc	 mov	 DWORD PTR _resultCount$[ebp], eax
$LN1@LongArrayU:

; 1311 :             }
; 1312 :         }

  00098	eb 98		 jmp	 SHORT $LN7@LongArrayU
$LN9@LongArrayU:

; 1313 :     }
; 1314 : 
; 1315 :     return resultCount;

  0009a	8b 45 fc	 mov	 eax, DWORD PTR _resultCount$[ebp]

; 1316 : }

  0009d	5e		 pop	 esi
  0009e	8b e5		 mov	 esp, ebp
  000a0	5d		 pop	 ebp
  000a1	c3		 ret	 0
?LongArrayUnique@@YAJPBJJPAJ@Z ENDP			; LongArrayUnique
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?ComboBox_GetCurSelItemData@@YAHPAUHWND__@@@Z
_TEXT	SEGMENT
_nIndex$ = -4						; size = 4
_hControl$ = 8						; size = 4
?ComboBox_GetCurSelItemData@@YAHPAUHWND__@@@Z PROC	; ComboBox_GetCurSelItemData, COMDAT

; 1265 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 1266 :     int nIndex = ComboBox_GetCurSel(hControl);

  00004	6a 00		 push	 0
  00006	6a 00		 push	 0
  00008	68 47 01 00 00	 push	 327			; 00000147H
  0000d	8b 45 08	 mov	 eax, DWORD PTR _hControl$[ebp]
  00010	50		 push	 eax
  00011	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
  00017	89 45 fc	 mov	 DWORD PTR _nIndex$[ebp], eax

; 1267 : 
; 1268 :     if (nIndex != CB_ERR)

  0001a	83 7d fc ff	 cmp	 DWORD PTR _nIndex$[ebp], -1
  0001e	74 17		 je	 SHORT $LN1@ComboBox_G

; 1269 :     {
; 1270 :         return ComboBox_GetItemData(hControl, nIndex);

  00020	6a 00		 push	 0
  00022	8b 4d fc	 mov	 ecx, DWORD PTR _nIndex$[ebp]
  00025	51		 push	 ecx
  00026	68 50 01 00 00	 push	 336			; 00000150H
  0002b	8b 55 08	 mov	 edx, DWORD PTR _hControl$[ebp]
  0002e	52		 push	 edx
  0002f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
  00035	eb 03		 jmp	 SHORT $LN2@ComboBox_G
$LN1@ComboBox_G:

; 1271 :     }
; 1272 : 
; 1273 :     return -1;

  00037	83 c8 ff	 or	 eax, -1
$LN2@ComboBox_G:

; 1274 : }

  0003a	8b e5		 mov	 esp, ebp
  0003c	5d		 pop	 ebp
  0003d	c3		 ret	 0
?ComboBox_GetCurSelItemData@@YAHPAUHWND__@@@Z ENDP	; ComboBox_GetCurSelItemData
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?RefillSourceBox@@YAXPAUHWND__@@JJ@Z
_TEXT	SEGMENT
tv141 = -32						; size = 4
_pName$143384 = -28					; size = 4
_i$143380 = -24						; size = 4
_sourceCount$143362 = -20				; size = 4
_index$143363 = -16					; size = 4
_pLineDst$143378 = -12					; size = 4
_hSourceControl$ = -8					; size = 4
_nDestinationIndex$ = -4				; size = 4
_hDlg$ = 8						; size = 4
_nSourceControlId$ = 12					; size = 4
_nSelectIndex$ = 16					; size = 4
?RefillSourceBox@@YAXPAUHWND__@@JJ@Z PROC		; RefillSourceBox, COMDAT

; 1160 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 20	 sub	 esp, 32			; 00000020H

; 1161 :     HWND hSourceControl = GetDlgItem(hDlg, nSourceControlId);

  00006	8b 45 0c	 mov	 eax, DWORD PTR _nSourceControlId$[ebp]
  00009	50		 push	 eax
  0000a	8b 4d 08	 mov	 ecx, DWORD PTR _hDlg$[ebp]
  0000d	51		 push	 ecx
  0000e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  00014	89 45 f8	 mov	 DWORD PTR _hSourceControl$[ebp], eax

; 1162 : 
; 1163 :     ComboBox_ResetContent(hSourceControl);

  00017	6a 00		 push	 0
  00019	6a 00		 push	 0
  0001b	68 4b 01 00 00	 push	 331			; 0000014bH
  00020	8b 55 f8	 mov	 edx, DWORD PTR _hSourceControl$[ebp]
  00023	52		 push	 edx
  00024	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16

; 1164 : 
; 1165 :     if (g_pDlgActiveMixer == NULL)

  0002a	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _g_pDlgActiveMixer, 0
  00031	75 05		 jne	 SHORT $LN9@RefillSour

; 1166 :     {
; 1167 :         return;

  00033	e9 4f 01 00 00	 jmp	 $LN10@RefillSour
$LN9@RefillSour:

; 1168 :     }
; 1169 : 
; 1170 :     int nDestinationIndex = ComboBox_GetCurSelItemData(GetDlgItem(hDlg, IDC_DEST));

  00038	68 c8 05 00 00	 push	 1480			; 000005c8H
  0003d	8b 45 08	 mov	 eax, DWORD PTR _hDlg$[ebp]
  00040	50		 push	 eax
  00041	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  00047	50		 push	 eax
  00048	e8 00 00 00 00	 call	 ?ComboBox_GetCurSelItemData@@YAHPAUHWND__@@@Z ; ComboBox_GetCurSelItemData
  0004d	83 c4 04	 add	 esp, 4
  00050	89 45 fc	 mov	 DWORD PTR _nDestinationIndex$[ebp], eax

; 1171 : 
; 1172 :     if (nDestinationIndex != -1)

  00053	83 7d fc ff	 cmp	 DWORD PTR _nDestinationIndex$[ebp], -1
  00057	0f 84 2a 01 00
	00		 je	 $LN10@RefillSour

; 1173 :     {
; 1174 :         int sourceCount = 0;

  0005d	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _sourceCount$143362[ebp], 0

; 1175 :         int index;
; 1176 : 
; 1177 :         index = ComboBox_AddString(hSourceControl, _T("<None>"));

  00064	68 00 00 00 00	 push	 OFFSET ??_C@_1O@NLHFMLEA@?$AA?$DM?$AAN?$AAo?$AAn?$AAe?$AA?$DO?$AA?$AA@
  00069	6a 00		 push	 0
  0006b	68 43 01 00 00	 push	 323			; 00000143H
  00070	8b 4d f8	 mov	 ecx, DWORD PTR _hSourceControl$[ebp]
  00073	51		 push	 ecx
  00074	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
  0007a	89 45 f0	 mov	 DWORD PTR _index$143363[ebp], eax

; 1178 :         ComboBox_SetItemData(hSourceControl, index, -1);

  0007d	6a ff		 push	 -1
  0007f	8b 55 f0	 mov	 edx, DWORD PTR _index$143363[ebp]
  00082	52		 push	 edx
  00083	68 51 01 00 00	 push	 337			; 00000151H
  00088	8b 45 f8	 mov	 eax, DWORD PTR _hSourceControl$[ebp]
  0008b	50		 push	 eax
  0008c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16

; 1179 : 
; 1180 :         ComboBox_SetCurSel(hSourceControl, index);

  00092	6a 00		 push	 0
  00094	8b 4d f0	 mov	 ecx, DWORD PTR _index$143363[ebp]
  00097	51		 push	 ecx
  00098	68 4e 01 00 00	 push	 334			; 0000014eH
  0009d	8b 55 f8	 mov	 edx, DWORD PTR _hSourceControl$[ebp]
  000a0	52		 push	 edx
  000a1	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16

; 1181 : 
; 1182 :         IMixerLineDst* pLineDst = g_pDlgActiveMixer->GetDestinationLine(nDestinationIndex);

  000a7	8b 45 fc	 mov	 eax, DWORD PTR _nDestinationIndex$[ebp]
  000aa	50		 push	 eax
  000ab	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_pDlgActiveMixer
  000b1	8b 11		 mov	 edx, DWORD PTR [ecx]
  000b3	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_pDlgActiveMixer
  000b9	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  000bc	ff d0		 call	 eax
  000be	89 45 f4	 mov	 DWORD PTR _pLineDst$143378[ebp], eax

; 1183 : 
; 1184 :         if (pLineDst != NULL)

  000c1	83 7d f4 00	 cmp	 DWORD PTR _pLineDst$143378[ebp], 0
  000c5	74 10		 je	 SHORT $LN7@RefillSour

; 1185 :         {
; 1186 :             sourceCount = pLineDst->GetSourceCount();

  000c7	8b 4d f4	 mov	 ecx, DWORD PTR _pLineDst$143378[ebp]
  000ca	8b 11		 mov	 edx, DWORD PTR [ecx]
  000cc	8b 4d f4	 mov	 ecx, DWORD PTR _pLineDst$143378[ebp]
  000cf	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  000d2	ff d0		 call	 eax
  000d4	89 45 ec	 mov	 DWORD PTR _sourceCount$143362[ebp], eax
$LN7@RefillSour:

; 1187 :         }
; 1188 : 
; 1189 :         for (int i = 0; i < sourceCount; i++)

  000d7	c7 45 e8 00 00
	00 00		 mov	 DWORD PTR _i$143380[ebp], 0
  000de	eb 09		 jmp	 SHORT $LN6@RefillSour
$LN5@RefillSour:
  000e0	8b 4d e8	 mov	 ecx, DWORD PTR _i$143380[ebp]
  000e3	83 c1 01	 add	 ecx, 1
  000e6	89 4d e8	 mov	 DWORD PTR _i$143380[ebp], ecx
$LN6@RefillSour:
  000e9	8b 55 e8	 mov	 edx, DWORD PTR _i$143380[ebp]
  000ec	3b 55 ec	 cmp	 edx, DWORD PTR _sourceCount$143362[ebp]
  000ef	0f 8d 92 00 00
	00		 jge	 $LN10@RefillSour

; 1190 :         {
; 1191 :             const TCHAR* pName = pLineDst->GetSourceLine(i)->GetName();

  000f5	8b 45 e8	 mov	 eax, DWORD PTR _i$143380[ebp]
  000f8	50		 push	 eax
  000f9	8b 4d f4	 mov	 ecx, DWORD PTR _pLineDst$143378[ebp]
  000fc	8b 11		 mov	 edx, DWORD PTR [ecx]
  000fe	8b 4d f4	 mov	 ecx, DWORD PTR _pLineDst$143378[ebp]
  00101	8b 42 0c	 mov	 eax, DWORD PTR [edx+12]
  00104	ff d0		 call	 eax
  00106	89 45 e0	 mov	 DWORD PTR tv141[ebp], eax
  00109	8b 4d e0	 mov	 ecx, DWORD PTR tv141[ebp]
  0010c	8b 11		 mov	 edx, DWORD PTR [ecx]
  0010e	8b 4d e0	 mov	 ecx, DWORD PTR tv141[ebp]
  00111	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00114	ff d0		 call	 eax
  00116	89 45 e4	 mov	 DWORD PTR _pName$143384[ebp], eax

; 1192 : 
; 1193 :             if (pName == NULL || _tcscmp(pName, _T("Error")) == 0)

  00119	83 7d e4 00	 cmp	 DWORD PTR _pName$143384[ebp], 0
  0011d	74 15		 je	 SHORT $LN2@RefillSour
  0011f	68 00 00 00 00	 push	 OFFSET ??_C@_1M@ILHOPKA@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?$AA@
  00124	8b 4d e4	 mov	 ecx, DWORD PTR _pName$143384[ebp]
  00127	51		 push	 ecx
  00128	e8 00 00 00 00	 call	 _wcscmp
  0012d	83 c4 08	 add	 esp, 8
  00130	85 c0		 test	 eax, eax
  00132	75 02		 jne	 SHORT $LN3@RefillSour
$LN2@RefillSour:

; 1194 :             {
; 1195 :                 continue;

  00134	eb aa		 jmp	 SHORT $LN5@RefillSour
$LN3@RefillSour:

; 1196 :             }
; 1197 : 
; 1198 :             index = ComboBox_AddString(hSourceControl, pName);

  00136	8b 55 e4	 mov	 edx, DWORD PTR _pName$143384[ebp]
  00139	52		 push	 edx
  0013a	6a 00		 push	 0
  0013c	68 43 01 00 00	 push	 323			; 00000143H
  00141	8b 45 f8	 mov	 eax, DWORD PTR _hSourceControl$[ebp]
  00144	50		 push	 eax
  00145	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
  0014b	89 45 f0	 mov	 DWORD PTR _index$143363[ebp], eax

; 1199 :             ComboBox_SetItemData(hSourceControl, index, i);

  0014e	8b 4d e8	 mov	 ecx, DWORD PTR _i$143380[ebp]
  00151	51		 push	 ecx
  00152	8b 55 f0	 mov	 edx, DWORD PTR _index$143363[ebp]
  00155	52		 push	 edx
  00156	68 51 01 00 00	 push	 337			; 00000151H
  0015b	8b 45 f8	 mov	 eax, DWORD PTR _hSourceControl$[ebp]
  0015e	50		 push	 eax
  0015f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16

; 1200 : 
; 1201 :             if (i == nSelectIndex)

  00165	8b 4d e8	 mov	 ecx, DWORD PTR _i$143380[ebp]
  00168	3b 4d 10	 cmp	 ecx, DWORD PTR _nSelectIndex$[ebp]
  0016b	75 15		 jne	 SHORT $LN1@RefillSour

; 1202 :             {
; 1203 :                 ComboBox_SetCurSel(hSourceControl, index);

  0016d	6a 00		 push	 0
  0016f	8b 55 f0	 mov	 edx, DWORD PTR _index$143363[ebp]
  00172	52		 push	 edx
  00173	68 4e 01 00 00	 push	 334			; 0000014eH
  00178	8b 45 f8	 mov	 eax, DWORD PTR _hSourceControl$[ebp]
  0017b	50		 push	 eax
  0017c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
$LN1@RefillSour:

; 1204 :             }
; 1205 :         }

  00182	e9 59 ff ff ff	 jmp	 $LN5@RefillSour
$LN10@RefillSour:

; 1206 :     }
; 1207 : }

  00187	8b e5		 mov	 esp, ebp
  00189	5d		 pop	 ebp
  0018a	c3		 ret	 0
?RefillSourceBox@@YAXPAUHWND__@@JJ@Z ENDP		; RefillSourceBox
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?RefillDestinationBox@@YAXPAUHWND__@@J@Z
_TEXT	SEGMENT
_pLineDst$143327 = -32					; size = 4
_i$143323 = -28						; size = 4
_hDestinationControl$ = -24				; size = 4
_bSelected$ = -20					; size = 4
_pValidName$ = -16					; size = 4
_index$ = -12						; size = 4
_recordingLines$ = -8					; size = 4
_destinationCount$ = -4					; size = 4
_hDlg$ = 8						; size = 4
_nSelectIndex$ = 12					; size = 4
?RefillDestinationBox@@YAXPAUHWND__@@J@Z PROC		; RefillDestinationBox, COMDAT

; 1098 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 20	 sub	 esp, 32			; 00000020H

; 1099 :     HWND hDestinationControl = GetDlgItem(hDlg, IDC_DEST);

  00006	68 c8 05 00 00	 push	 1480			; 000005c8H
  0000b	8b 45 08	 mov	 eax, DWORD PTR _hDlg$[ebp]
  0000e	50		 push	 eax
  0000f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  00015	89 45 e8	 mov	 DWORD PTR _hDestinationControl$[ebp], eax

; 1100 : 
; 1101 :     ComboBox_ResetContent(hDestinationControl);

  00018	6a 00		 push	 0
  0001a	6a 00		 push	 0
  0001c	68 4b 01 00 00	 push	 331			; 0000014bH
  00021	8b 4d e8	 mov	 ecx, DWORD PTR _hDestinationControl$[ebp]
  00024	51		 push	 ecx
  00025	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16

; 1102 : 
; 1103 :     if (g_pDlgActiveMixer == NULL)

  0002b	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _g_pDlgActiveMixer, 0
  00032	75 05		 jne	 SHORT $LN10@RefillDest

; 1104 :     {
; 1105 :         return;

  00034	e9 72 01 00 00	 jmp	 $LN11@RefillDest
$LN10@RefillDest:

; 1106 :     }
; 1107 : 
; 1108 :     int destinationCount = g_pDlgActiveMixer->GetDestinationCount();

  00039	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR _g_pDlgActiveMixer
  0003f	8b 02		 mov	 eax, DWORD PTR [edx]
  00041	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_pDlgActiveMixer
  00047	8b 50 0c	 mov	 edx, DWORD PTR [eax+12]
  0004a	ff d2		 call	 edx
  0004c	89 45 fc	 mov	 DWORD PTR _destinationCount$[ebp], eax

; 1109 :     int recordingLines = 0;

  0004f	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _recordingLines$[ebp], 0

; 1110 : 
; 1111 :     const TCHAR* pValidName = _T("");

  00056	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _pValidName$[ebp], OFFSET ??_C@_11LOCGONAA@?$AA?$AA@

; 1112 :     int bSelected = FALSE;

  0005d	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _bSelected$[ebp], 0

; 1113 :     int index;
; 1114 : 
; 1115 :     for (int i = 0; i < destinationCount; i++)

  00064	c7 45 e4 00 00
	00 00		 mov	 DWORD PTR _i$143323[ebp], 0
  0006b	eb 09		 jmp	 SHORT $LN9@RefillDest
$LN8@RefillDest:
  0006d	8b 45 e4	 mov	 eax, DWORD PTR _i$143323[ebp]
  00070	83 c0 01	 add	 eax, 1
  00073	89 45 e4	 mov	 DWORD PTR _i$143323[ebp], eax
$LN9@RefillDest:
  00076	8b 4d e4	 mov	 ecx, DWORD PTR _i$143323[ebp]
  00079	3b 4d fc	 cmp	 ecx, DWORD PTR _destinationCount$[ebp]
  0007c	0f 8d a8 00 00
	00		 jge	 $LN7@RefillDest

; 1116 :     {
; 1117 :         IMixerLineDst* pLineDst = g_pDlgActiveMixer->GetDestinationLine(i);

  00082	8b 55 e4	 mov	 edx, DWORD PTR _i$143323[ebp]
  00085	52		 push	 edx
  00086	a1 00 00 00 00	 mov	 eax, DWORD PTR _g_pDlgActiveMixer
  0008b	8b 10		 mov	 edx, DWORD PTR [eax]
  0008d	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_pDlgActiveMixer
  00093	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  00096	ff d0		 call	 eax
  00098	89 45 e0	 mov	 DWORD PTR _pLineDst$143327[ebp], eax

; 1118 : 
; 1119 :         if (pLineDst->IsTypicalRecordingLine() &&
; 1120 :             destinationCount - recordingLines > 1)

  0009b	8b 4d e0	 mov	 ecx, DWORD PTR _pLineDst$143327[ebp]
  0009e	8b 11		 mov	 edx, DWORD PTR [ecx]
  000a0	8b 4d e0	 mov	 ecx, DWORD PTR _pLineDst$143327[ebp]
  000a3	8b 42 1c	 mov	 eax, DWORD PTR [edx+28]
  000a6	ff d0		 call	 eax
  000a8	85 c0		 test	 eax, eax
  000aa	74 16		 je	 SHORT $LN6@RefillDest
  000ac	8b 4d fc	 mov	 ecx, DWORD PTR _destinationCount$[ebp]
  000af	2b 4d f8	 sub	 ecx, DWORD PTR _recordingLines$[ebp]
  000b2	83 f9 01	 cmp	 ecx, 1
  000b5	7e 0b		 jle	 SHORT $LN6@RefillDest

; 1121 :         {
; 1122 :             recordingLines++;

  000b7	8b 55 f8	 mov	 edx, DWORD PTR _recordingLines$[ebp]
  000ba	83 c2 01	 add	 edx, 1
  000bd	89 55 f8	 mov	 DWORD PTR _recordingLines$[ebp], edx

; 1123 :         }
; 1124 :         else

  000c0	eb 63		 jmp	 SHORT $LN5@RefillDest
$LN6@RefillDest:

; 1125 :         {
; 1126 :             pValidName = pLineDst->GetName();

  000c2	8b 45 e0	 mov	 eax, DWORD PTR _pLineDst$143327[ebp]
  000c5	8b 10		 mov	 edx, DWORD PTR [eax]
  000c7	8b 4d e0	 mov	 ecx, DWORD PTR _pLineDst$143327[ebp]
  000ca	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  000cd	ff d0		 call	 eax
  000cf	89 45 f0	 mov	 DWORD PTR _pValidName$[ebp], eax

; 1127 : 
; 1128 :             index = ComboBox_AddString(hDestinationControl, pValidName);

  000d2	8b 4d f0	 mov	 ecx, DWORD PTR _pValidName$[ebp]
  000d5	51		 push	 ecx
  000d6	6a 00		 push	 0
  000d8	68 43 01 00 00	 push	 323			; 00000143H
  000dd	8b 55 e8	 mov	 edx, DWORD PTR _hDestinationControl$[ebp]
  000e0	52		 push	 edx
  000e1	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
  000e7	89 45 f4	 mov	 DWORD PTR _index$[ebp], eax

; 1129 :             ComboBox_SetItemData(hDestinationControl, index, i);

  000ea	8b 45 e4	 mov	 eax, DWORD PTR _i$143323[ebp]
  000ed	50		 push	 eax
  000ee	8b 4d f4	 mov	 ecx, DWORD PTR _index$[ebp]
  000f1	51		 push	 ecx
  000f2	68 51 01 00 00	 push	 337			; 00000151H
  000f7	8b 55 e8	 mov	 edx, DWORD PTR _hDestinationControl$[ebp]
  000fa	52		 push	 edx
  000fb	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16

; 1130 : 
; 1131 :             if (i == nSelectIndex)

  00101	8b 45 e4	 mov	 eax, DWORD PTR _i$143323[ebp]
  00104	3b 45 0c	 cmp	 eax, DWORD PTR _nSelectIndex$[ebp]
  00107	75 1c		 jne	 SHORT $LN5@RefillDest

; 1132 :             {
; 1133 :                 ComboBox_SetCurSel(hDestinationControl, index);

  00109	6a 00		 push	 0
  0010b	8b 4d f4	 mov	 ecx, DWORD PTR _index$[ebp]
  0010e	51		 push	 ecx
  0010f	68 4e 01 00 00	 push	 334			; 0000014eH
  00114	8b 55 e8	 mov	 edx, DWORD PTR _hDestinationControl$[ebp]
  00117	52		 push	 edx
  00118	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16

; 1134 :                 bSelected = TRUE;

  0011e	c7 45 ec 01 00
	00 00		 mov	 DWORD PTR _bSelected$[ebp], 1
$LN5@RefillDest:

; 1135 :             }
; 1136 :         }
; 1137 :     }

  00125	e9 43 ff ff ff	 jmp	 $LN8@RefillDest
$LN7@RefillDest:

; 1138 : 
; 1139 :     if (!bSelected)

  0012a	83 7d ec 00	 cmp	 DWORD PTR _bSelected$[ebp], 0
  0012e	75 13		 jne	 SHORT $LN3@RefillDest

; 1140 :     {
; 1141 :         ComboBox_SetCurSel(hDestinationControl, 0);

  00130	6a 00		 push	 0
  00132	6a 00		 push	 0
  00134	68 4e 01 00 00	 push	 334			; 0000014eH
  00139	8b 45 e8	 mov	 eax, DWORD PTR _hDestinationControl$[ebp]
  0013c	50		 push	 eax
  0013d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
$LN3@RefillDest:

; 1142 :     }
; 1143 : 
; 1144 :     // Hide the destination field if there is only one destination
; 1145 :     if(destinationCount - recordingLines == 1)

  00143	8b 4d fc	 mov	 ecx, DWORD PTR _destinationCount$[ebp]
  00146	2b 4d f8	 sub	 ecx, DWORD PTR _recordingLines$[ebp]
  00149	83 f9 01	 cmp	 ecx, 1
  0014c	75 39		 jne	 SHORT $LN2@RefillDest

; 1146 :     {
; 1147 :         SetDlgItemText(hDlg, IDC_DEST_STATIC, pValidName);

  0014e	8b 55 f0	 mov	 edx, DWORD PTR _pValidName$[ebp]
  00151	52		 push	 edx
  00152	68 92 1f 00 00	 push	 8082			; 00001f92H
  00157	8b 45 08	 mov	 eax, DWORD PTR _hDlg$[ebp]
  0015a	50		 push	 eax
  0015b	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SetDlgItemTextW@12

; 1148 :         ShowWindow(hDestinationControl, SW_HIDE);

  00161	6a 00		 push	 0
  00163	8b 4d e8	 mov	 ecx, DWORD PTR _hDestinationControl$[ebp]
  00166	51		 push	 ecx
  00167	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__ShowWindow@8

; 1149 :         ShowWindow(GetDlgItem(hDlg, IDC_DEST_STATIC), SW_SHOW);

  0016d	6a 05		 push	 5
  0016f	68 92 1f 00 00	 push	 8082			; 00001f92H
  00174	8b 55 08	 mov	 edx, DWORD PTR _hDlg$[ebp]
  00177	52		 push	 edx
  00178	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  0017e	50		 push	 eax
  0017f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__ShowWindow@8

; 1150 :     }
; 1151 :     else

  00185	eb 24		 jmp	 SHORT $LN11@RefillDest
$LN2@RefillDest:

; 1152 :     {
; 1153 :         ShowWindow(GetDlgItem(hDlg, IDC_DEST_STATIC), SW_HIDE);

  00187	6a 00		 push	 0
  00189	68 92 1f 00 00	 push	 8082			; 00001f92H
  0018e	8b 45 08	 mov	 eax, DWORD PTR _hDlg$[ebp]
  00191	50		 push	 eax
  00192	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  00198	50		 push	 eax
  00199	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__ShowWindow@8

; 1154 :         ShowWindow(hDestinationControl, SW_SHOW);

  0019f	6a 05		 push	 5
  001a1	8b 4d e8	 mov	 ecx, DWORD PTR _hDestinationControl$[ebp]
  001a4	51		 push	 ecx
  001a5	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__ShowWindow@8
$LN11@RefillDest:

; 1155 :     }
; 1156 : }

  001ab	8b e5		 mov	 esp, ebp
  001ad	5d		 pop	 ebp
  001ae	c3		 ret	 0
?RefillDestinationBox@@YAXPAUHWND__@@J@Z ENDP		; RefillDestinationBox
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?SwitchSameForAllInputsMode@@YAXPAUHWND__@@H@Z
_TEXT	SEGMENT
_i$143266 = -4						; size = 4
_hDlg$ = 8						; size = 4
_iOneSameZeroNot$ = 12					; size = 4
?SwitchSameForAllInputsMode@@YAXPAUHWND__@@H@Z PROC	; SwitchSameForAllInputsMode, COMDAT

; 1038 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 1039 :     EnableWindow(GetDlgItem(hDlg, IDC_MIXER_INPUT_ALL), iOneSameZeroNot == 1);

  00004	33 c0		 xor	 eax, eax
  00006	83 7d 0c 01	 cmp	 DWORD PTR _iOneSameZeroNot$[ebp], 1
  0000a	0f 94 c0	 sete	 al
  0000d	50		 push	 eax
  0000e	68 a4 06 00 00	 push	 1700			; 000006a4H
  00013	8b 4d 08	 mov	 ecx, DWORD PTR _hDlg$[ebp]
  00016	51		 push	 ecx
  00017	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  0001d	50		 push	 eax
  0001e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnableWindow@8

; 1040 :     EnableWindow(GetDlgItem(hDlg, IDC_MIXER_INPUTNAME_ALL), iOneSameZeroNot == 1);

  00024	33 d2		 xor	 edx, edx
  00026	83 7d 0c 01	 cmp	 DWORD PTR _iOneSameZeroNot$[ebp], 1
  0002a	0f 94 c2	 sete	 dl
  0002d	52		 push	 edx
  0002e	68 94 1f 00 00	 push	 8084			; 00001f94H
  00033	8b 45 08	 mov	 eax, DWORD PTR _hDlg$[ebp]
  00036	50		 push	 eax
  00037	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  0003d	50		 push	 eax
  0003e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnableWindow@8

; 1041 : 
; 1042 :     for (int i = 0; i < g_nActiveInputsCount; i++)

  00044	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _i$143266[ebp], 0
  0004b	eb 09		 jmp	 SHORT $LN3@SwitchSame
$LN2@SwitchSame:
  0004d	8b 4d fc	 mov	 ecx, DWORD PTR _i$143266[ebp]
  00050	83 c1 01	 add	 ecx, 1
  00053	89 4d fc	 mov	 DWORD PTR _i$143266[ebp], ecx
$LN3@SwitchSame:
  00056	8b 55 fc	 mov	 edx, DWORD PTR _i$143266[ebp]
  00059	3b 15 00 00 00
	00		 cmp	 edx, DWORD PTR _g_nActiveInputsCount
  0005f	7d 4c		 jge	 SHORT $LN4@SwitchSame

; 1043 :     {
; 1044 :         EnableWindow(GetDlgItem(hDlg, IDC_MIXER_INPUT0+i), iOneSameZeroNot == 0);

  00061	33 c0		 xor	 eax, eax
  00063	83 7d 0c 00	 cmp	 DWORD PTR _iOneSameZeroNot$[ebp], 0
  00067	0f 94 c0	 sete	 al
  0006a	50		 push	 eax
  0006b	8b 4d fc	 mov	 ecx, DWORD PTR _i$143266[ebp]
  0006e	81 c1 b5 05 00
	00		 add	 ecx, 1461		; 000005b5H
  00074	51		 push	 ecx
  00075	8b 55 08	 mov	 edx, DWORD PTR _hDlg$[ebp]
  00078	52		 push	 edx
  00079	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  0007f	50		 push	 eax
  00080	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnableWindow@8

; 1045 :         EnableWindow(GetDlgItem(hDlg, IDC_MIXER_INPUT0NAME+i), iOneSameZeroNot == 0);

  00086	33 c0		 xor	 eax, eax
  00088	83 7d 0c 00	 cmp	 DWORD PTR _iOneSameZeroNot$[ebp], 0
  0008c	0f 94 c0	 sete	 al
  0008f	50		 push	 eax
  00090	8b 4d fc	 mov	 ecx, DWORD PTR _i$143266[ebp]
  00093	81 c1 40 1f 00
	00		 add	 ecx, 8000		; 00001f40H
  00099	51		 push	 ecx
  0009a	8b 55 08	 mov	 edx, DWORD PTR _hDlg$[ebp]
  0009d	52		 push	 edx
  0009e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  000a4	50		 push	 eax
  000a5	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnableWindow@8
  000ab	eb a0		 jmp	 SHORT $LN2@SwitchSame
$LN4@SwitchSame:

; 1046 :     }
; 1047 : }

  000ad	8b e5		 mov	 esp, ebp
  000af	5d		 pop	 ebp
  000b0	c3		 ret	 0
?SwitchSameForAllInputsMode@@YAXPAUHWND__@@H@Z ENDP	; SwitchSameForAllInputsMode
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?AdjustSameForAllInputsBox@@YAXPAUHWND__@@@Z
_TEXT	SEGMENT
_nFirstIndex$ = -12					; size = 4
_nIndex$ = -8						; size = 4
_i$ = -4						; size = 4
_hDlg$ = 8						; size = 4
?AdjustSameForAllInputsBox@@YAXPAUHWND__@@@Z PROC	; AdjustSameForAllInputsBox, COMDAT

; 997  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH

; 998  :     int nFirstIndex;
; 999  :     int nIndex;
; 1000 :     int i;
; 1001 : 
; 1002 :     if (g_nActiveInputsCount == 0)

  00006	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _g_nActiveInputsCount, 0
  0000d	75 05		 jne	 SHORT $LN8@AdjustSame

; 1003 :     {
; 1004 :         return;

  0000f	e9 e3 00 00 00	 jmp	 $LN9@AdjustSame
$LN8@AdjustSame:

; 1005 :     }
; 1006 : 
; 1007 :     nFirstIndex = ComboBox_GetCurSelItemData(GetDlgItem(hDlg, IDC_MIXER_INPUT0));

  00014	68 b5 05 00 00	 push	 1461			; 000005b5H
  00019	8b 45 08	 mov	 eax, DWORD PTR _hDlg$[ebp]
  0001c	50		 push	 eax
  0001d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  00023	50		 push	 eax
  00024	e8 00 00 00 00	 call	 ?ComboBox_GetCurSelItemData@@YAHPAUHWND__@@@Z ; ComboBox_GetCurSelItemData
  00029	83 c4 04	 add	 esp, 4
  0002c	89 45 f4	 mov	 DWORD PTR _nFirstIndex$[ebp], eax

; 1008 : 
; 1009 :     for (i = 1; i < g_nActiveInputsCount; i++)

  0002f	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _i$[ebp], 1
  00036	eb 09		 jmp	 SHORT $LN7@AdjustSame
$LN6@AdjustSame:
  00038	8b 4d fc	 mov	 ecx, DWORD PTR _i$[ebp]
  0003b	83 c1 01	 add	 ecx, 1
  0003e	89 4d fc	 mov	 DWORD PTR _i$[ebp], ecx
$LN7@AdjustSame:
  00041	8b 55 fc	 mov	 edx, DWORD PTR _i$[ebp]
  00044	3b 15 00 00 00
	00		 cmp	 edx, DWORD PTR _g_nActiveInputsCount
  0004a	7d 2b		 jge	 SHORT $LN5@AdjustSame

; 1010 :     {
; 1011 :         nIndex = ComboBox_GetCurSelItemData(GetDlgItem(hDlg, IDC_MIXER_INPUT0+i));

  0004c	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  0004f	05 b5 05 00 00	 add	 eax, 1461		; 000005b5H
  00054	50		 push	 eax
  00055	8b 4d 08	 mov	 ecx, DWORD PTR _hDlg$[ebp]
  00058	51		 push	 ecx
  00059	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  0005f	50		 push	 eax
  00060	e8 00 00 00 00	 call	 ?ComboBox_GetCurSelItemData@@YAHPAUHWND__@@@Z ; ComboBox_GetCurSelItemData
  00065	83 c4 04	 add	 esp, 4
  00068	89 45 f8	 mov	 DWORD PTR _nIndex$[ebp], eax

; 1012 : 
; 1013 :         if (nIndex != nFirstIndex)

  0006b	8b 55 f8	 mov	 edx, DWORD PTR _nIndex$[ebp]
  0006e	3b 55 f4	 cmp	 edx, DWORD PTR _nFirstIndex$[ebp]
  00071	74 02		 je	 SHORT $LN4@AdjustSame

; 1014 :         {
; 1015 :             break;

  00073	eb 02		 jmp	 SHORT $LN5@AdjustSame
$LN4@AdjustSame:

; 1016 :         }
; 1017 :     }

  00075	eb c1		 jmp	 SHORT $LN6@AdjustSame
$LN5@AdjustSame:

; 1018 : 
; 1019 :     if (i == g_nActiveInputsCount)

  00077	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  0007a	3b 05 00 00 00
	00		 cmp	 eax, DWORD PTR _g_nActiveInputsCount
  00080	75 43		 jne	 SHORT $LN3@AdjustSame

; 1020 :     {
; 1021 :         if (nFirstIndex == -1)

  00082	83 7d f4 ff	 cmp	 DWORD PTR _nFirstIndex$[ebp], -1
  00086	75 07		 jne	 SHORT $LN2@AdjustSame

; 1022 :         {
; 1023 :             nFirstIndex = -1;

  00088	c7 45 f4 ff ff
	ff ff		 mov	 DWORD PTR _nFirstIndex$[ebp], -1
$LN2@AdjustSame:

; 1024 :         }
; 1025 : 
; 1026 :         RefillSourceBox(hDlg, IDC_MIXER_INPUT_ALL, nFirstIndex);

  0008f	8b 4d f4	 mov	 ecx, DWORD PTR _nFirstIndex$[ebp]
  00092	51		 push	 ecx
  00093	68 a4 06 00 00	 push	 1700			; 000006a4H
  00098	8b 55 08	 mov	 edx, DWORD PTR _hDlg$[ebp]
  0009b	52		 push	 edx
  0009c	e8 00 00 00 00	 call	 ?RefillSourceBox@@YAXPAUHWND__@@JJ@Z ; RefillSourceBox
  000a1	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1027 :         Button_SetCheck(GetDlgItem(hDlg, IDC_SEPARATE_INPUT), FALSE);

  000a4	6a 00		 push	 0
  000a6	6a 00		 push	 0
  000a8	68 f1 00 00 00	 push	 241			; 000000f1H
  000ad	68 8f 1f 00 00	 push	 8079			; 00001f8fH
  000b2	8b 45 08	 mov	 eax, DWORD PTR _hDlg$[ebp]
  000b5	50		 push	 eax
  000b6	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  000bc	50		 push	 eax
  000bd	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16

; 1028 :     }
; 1029 :     else

  000c3	eb 32		 jmp	 SHORT $LN9@AdjustSame
$LN3@AdjustSame:

; 1030 :     {
; 1031 :         RefillSourceBox(hDlg, IDC_MIXER_INPUT_ALL, -1);

  000c5	6a ff		 push	 -1
  000c7	68 a4 06 00 00	 push	 1700			; 000006a4H
  000cc	8b 4d 08	 mov	 ecx, DWORD PTR _hDlg$[ebp]
  000cf	51		 push	 ecx
  000d0	e8 00 00 00 00	 call	 ?RefillSourceBox@@YAXPAUHWND__@@JJ@Z ; RefillSourceBox
  000d5	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1032 :         Button_SetCheck(GetDlgItem(hDlg, IDC_SEPARATE_INPUT), TRUE);

  000d8	6a 00		 push	 0
  000da	6a 01		 push	 1
  000dc	68 f1 00 00 00	 push	 241			; 000000f1H
  000e1	68 8f 1f 00 00	 push	 8079			; 00001f8fH
  000e6	8b 55 08	 mov	 edx, DWORD PTR _hDlg$[ebp]
  000e9	52		 push	 edx
  000ea	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  000f0	50		 push	 eax
  000f1	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
$LN9@AdjustSame:

; 1033 :     }
; 1034 : }

  000f7	8b e5		 mov	 esp, ebp
  000f9	5d		 pop	 ebp
  000fa	c3		 ret	 0
?AdjustSameForAllInputsBox@@YAXPAUHWND__@@@Z ENDP	; AdjustSameForAllInputsBox
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?Mixer_StoreRestoreInputs@@YAXJPAJJH@Z
_TEXT	SEGMENT
_i$143051 = -12						; size = 4
_pLineSrc$ = -8						; size = 4
_pLineDst$ = -4						; size = 4
_nDestinationIndex$ = 8					; size = 4
_pIndexes$ = 12						; size = 4
_nCount$ = 16						; size = 4
_bRestore$ = 20						; size = 4
?Mixer_StoreRestoreInputs@@YAXJPAJJH@Z PROC		; Mixer_StoreRestoreInputs, COMDAT

; 533  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH

; 534  :     IMixerLineDst* pLineDst;
; 535  :     IMixerLineSrc* pLineSrc;
; 536  : 
; 537  :     if (g_pCurrentMixer == NULL || nDestinationIndex == -1 || nCount == 0)

  00006	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _g_pCurrentMixer, 0
  0000d	74 0c		 je	 SHORT $LN9@Mixer_Stor
  0000f	83 7d 08 ff	 cmp	 DWORD PTR _nDestinationIndex$[ebp], -1
  00013	74 06		 je	 SHORT $LN9@Mixer_Stor
  00015	83 7d 10 00	 cmp	 DWORD PTR _nCount$[ebp], 0
  00019	75 05		 jne	 SHORT $LN10@Mixer_Stor
$LN9@Mixer_Stor:

; 538  :     {
; 539  :         return;

  0001b	e9 8e 00 00 00	 jmp	 $LN11@Mixer_Stor
$LN10@Mixer_Stor:

; 540  :     }
; 541  : 
; 542  :     if ((pLineDst = g_pCurrentMixer->GetDestinationLine(nDestinationIndex)) == NULL)

  00020	8b 45 08	 mov	 eax, DWORD PTR _nDestinationIndex$[ebp]
  00023	50		 push	 eax
  00024	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_pCurrentMixer
  0002a	8b 11		 mov	 edx, DWORD PTR [ecx]
  0002c	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_pCurrentMixer
  00032	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  00035	ff d0		 call	 eax
  00037	89 45 fc	 mov	 DWORD PTR _pLineDst$[ebp], eax
  0003a	83 7d fc 00	 cmp	 DWORD PTR _pLineDst$[ebp], 0
  0003e	75 02		 jne	 SHORT $LN8@Mixer_Stor

; 543  :     {
; 544  :         return;

  00040	eb 6c		 jmp	 SHORT $LN11@Mixer_Stor
$LN8@Mixer_Stor:

; 545  :     }
; 546  : 
; 547  :     for (int i = 0; i < nCount; i++)

  00042	c7 45 f4 00 00
	00 00		 mov	 DWORD PTR _i$143051[ebp], 0
  00049	eb 09		 jmp	 SHORT $LN7@Mixer_Stor
$LN6@Mixer_Stor:
  0004b	8b 4d f4	 mov	 ecx, DWORD PTR _i$143051[ebp]
  0004e	83 c1 01	 add	 ecx, 1
  00051	89 4d f4	 mov	 DWORD PTR _i$143051[ebp], ecx
$LN7@Mixer_Stor:
  00054	8b 55 f4	 mov	 edx, DWORD PTR _i$143051[ebp]
  00057	3b 55 10	 cmp	 edx, DWORD PTR _nCount$[ebp]
  0005a	7d 52		 jge	 SHORT $LN11@Mixer_Stor

; 548  :     {
; 549  :         if (pIndexes[i] == -1)

  0005c	8b 45 f4	 mov	 eax, DWORD PTR _i$143051[ebp]
  0005f	8b 4d 0c	 mov	 ecx, DWORD PTR _pIndexes$[ebp]
  00062	83 3c 81 ff	 cmp	 DWORD PTR [ecx+eax*4], -1
  00066	75 02		 jne	 SHORT $LN4@Mixer_Stor

; 550  :         {
; 551  :             continue;

  00068	eb e1		 jmp	 SHORT $LN6@Mixer_Stor
$LN4@Mixer_Stor:

; 552  :         }
; 553  : 
; 554  :         if ((pLineSrc = pLineDst->GetSourceLine(pIndexes[i])) != NULL)

  0006a	8b 55 f4	 mov	 edx, DWORD PTR _i$143051[ebp]
  0006d	8b 45 0c	 mov	 eax, DWORD PTR _pIndexes$[ebp]
  00070	8b 0c 90	 mov	 ecx, DWORD PTR [eax+edx*4]
  00073	51		 push	 ecx
  00074	8b 55 fc	 mov	 edx, DWORD PTR _pLineDst$[ebp]
  00077	8b 02		 mov	 eax, DWORD PTR [edx]
  00079	8b 4d fc	 mov	 ecx, DWORD PTR _pLineDst$[ebp]
  0007c	8b 50 0c	 mov	 edx, DWORD PTR [eax+12]
  0007f	ff d2		 call	 edx
  00081	89 45 f8	 mov	 DWORD PTR _pLineSrc$[ebp], eax
  00084	83 7d f8 00	 cmp	 DWORD PTR _pLineSrc$[ebp], 0
  00088	74 22		 je	 SHORT $LN3@Mixer_Stor

; 555  :         {
; 556  :             if (bRestore)

  0008a	83 7d 14 00	 cmp	 DWORD PTR _bRestore$[ebp], 0
  0008e	74 0f		 je	 SHORT $LN2@Mixer_Stor

; 557  :             {
; 558  :                 pLineSrc->RestoreState();

  00090	8b 45 f8	 mov	 eax, DWORD PTR _pLineSrc$[ebp]
  00093	8b 10		 mov	 edx, DWORD PTR [eax]
  00095	8b 4d f8	 mov	 ecx, DWORD PTR _pLineSrc$[ebp]
  00098	8b 42 1c	 mov	 eax, DWORD PTR [edx+28]
  0009b	ff d0		 call	 eax

; 559  :             }
; 560  :             else

  0009d	eb 0d		 jmp	 SHORT $LN3@Mixer_Stor
$LN2@Mixer_Stor:

; 561  :             {
; 562  :                 pLineSrc->StoreState();

  0009f	8b 4d f8	 mov	 ecx, DWORD PTR _pLineSrc$[ebp]
  000a2	8b 11		 mov	 edx, DWORD PTR [ecx]
  000a4	8b 4d f8	 mov	 ecx, DWORD PTR _pLineSrc$[ebp]
  000a7	8b 42 18	 mov	 eax, DWORD PTR [edx+24]
  000aa	ff d0		 call	 eax
$LN3@Mixer_Stor:

; 563  :             }
; 564  :         }

  000ac	eb 9d		 jmp	 SHORT $LN6@Mixer_Stor
$LN11@Mixer_Stor:

; 565  :     }
; 566  : }

  000ae	8b e5		 mov	 esp, ebp
  000b0	5d		 pop	 ebp
  000b1	c3		 ret	 0
?Mixer_StoreRestoreInputs@@YAXJPAJJH@Z ENDP		; Mixer_StoreRestoreInputs
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?Mixer_MuteInputs@@YAXJPAJJH@Z
_TEXT	SEGMENT
_i$143034 = -12						; size = 4
_pLineSrc$ = -8						; size = 4
_pLineDst$ = -4						; size = 4
_nDestinationIndex$ = 8					; size = 4
_pIndexes$ = 12						; size = 4
_nCount$ = 16						; size = 4
_bMute$ = 20						; size = 4
?Mixer_MuteInputs@@YAXJPAJJH@Z PROC			; Mixer_MuteInputs, COMDAT

; 503  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH

; 504  :     IMixerLineDst* pLineDst;
; 505  :     IMixerLineSrc* pLineSrc;
; 506  : 
; 507  :     if (g_pCurrentMixer == NULL || nDestinationIndex == -1 || nCount == 0)

  00006	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _g_pCurrentMixer, 0
  0000d	74 0c		 je	 SHORT $LN7@Mixer_Mute
  0000f	83 7d 08 ff	 cmp	 DWORD PTR _nDestinationIndex$[ebp], -1
  00013	74 06		 je	 SHORT $LN7@Mixer_Mute
  00015	83 7d 10 00	 cmp	 DWORD PTR _nCount$[ebp], 0
  00019	75 02		 jne	 SHORT $LN8@Mixer_Mute
$LN7@Mixer_Mute:

; 508  :     {
; 509  :         return;

  0001b	eb 7d		 jmp	 SHORT $LN9@Mixer_Mute
$LN8@Mixer_Mute:

; 510  :     }
; 511  : 
; 512  :     if ((pLineDst = g_pCurrentMixer->GetDestinationLine(nDestinationIndex)) == NULL)

  0001d	8b 45 08	 mov	 eax, DWORD PTR _nDestinationIndex$[ebp]
  00020	50		 push	 eax
  00021	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_pCurrentMixer
  00027	8b 11		 mov	 edx, DWORD PTR [ecx]
  00029	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_pCurrentMixer
  0002f	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  00032	ff d0		 call	 eax
  00034	89 45 fc	 mov	 DWORD PTR _pLineDst$[ebp], eax
  00037	83 7d fc 00	 cmp	 DWORD PTR _pLineDst$[ebp], 0
  0003b	75 02		 jne	 SHORT $LN6@Mixer_Mute

; 513  :     {
; 514  :         return;

  0003d	eb 5b		 jmp	 SHORT $LN9@Mixer_Mute
$LN6@Mixer_Mute:

; 515  :     }
; 516  : 
; 517  :     for (int i = 0; i < nCount; i++)

  0003f	c7 45 f4 00 00
	00 00		 mov	 DWORD PTR _i$143034[ebp], 0
  00046	eb 09		 jmp	 SHORT $LN5@Mixer_Mute
$LN4@Mixer_Mute:
  00048	8b 4d f4	 mov	 ecx, DWORD PTR _i$143034[ebp]
  0004b	83 c1 01	 add	 ecx, 1
  0004e	89 4d f4	 mov	 DWORD PTR _i$143034[ebp], ecx
$LN5@Mixer_Mute:
  00051	8b 55 f4	 mov	 edx, DWORD PTR _i$143034[ebp]
  00054	3b 55 10	 cmp	 edx, DWORD PTR _nCount$[ebp]
  00057	7d 41		 jge	 SHORT $LN9@Mixer_Mute

; 518  :     {
; 519  :         if (pIndexes[i] == -1)

  00059	8b 45 f4	 mov	 eax, DWORD PTR _i$143034[ebp]
  0005c	8b 4d 0c	 mov	 ecx, DWORD PTR _pIndexes$[ebp]
  0005f	83 3c 81 ff	 cmp	 DWORD PTR [ecx+eax*4], -1
  00063	75 02		 jne	 SHORT $LN2@Mixer_Mute

; 520  :         {
; 521  :             continue;

  00065	eb e1		 jmp	 SHORT $LN4@Mixer_Mute
$LN2@Mixer_Mute:

; 522  :         }
; 523  : 
; 524  :         if ((pLineSrc = pLineDst->GetSourceLine(pIndexes[i])) != NULL)

  00067	8b 55 f4	 mov	 edx, DWORD PTR _i$143034[ebp]
  0006a	8b 45 0c	 mov	 eax, DWORD PTR _pIndexes$[ebp]
  0006d	8b 0c 90	 mov	 ecx, DWORD PTR [eax+edx*4]
  00070	51		 push	 ecx
  00071	8b 55 fc	 mov	 edx, DWORD PTR _pLineDst$[ebp]
  00074	8b 02		 mov	 eax, DWORD PTR [edx]
  00076	8b 4d fc	 mov	 ecx, DWORD PTR _pLineDst$[ebp]
  00079	8b 50 0c	 mov	 edx, DWORD PTR [eax+12]
  0007c	ff d2		 call	 edx
  0007e	89 45 f8	 mov	 DWORD PTR _pLineSrc$[ebp], eax
  00081	83 7d f8 00	 cmp	 DWORD PTR _pLineSrc$[ebp], 0
  00085	74 11		 je	 SHORT $LN1@Mixer_Mute

; 525  :         {
; 526  :             pLineSrc->SetMute(bMute);

  00087	8b 45 14	 mov	 eax, DWORD PTR _bMute$[ebp]
  0008a	50		 push	 eax
  0008b	8b 4d f8	 mov	 ecx, DWORD PTR _pLineSrc$[ebp]
  0008e	8b 11		 mov	 edx, DWORD PTR [ecx]
  00090	8b 4d f8	 mov	 ecx, DWORD PTR _pLineSrc$[ebp]
  00093	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  00096	ff d0		 call	 eax
$LN1@Mixer_Mute:

; 527  :         }

  00098	eb ae		 jmp	 SHORT $LN4@Mixer_Mute
$LN9@Mixer_Mute:

; 528  :     }
; 529  : }

  0009a	8b e5		 mov	 esp, ebp
  0009c	5d		 pop	 ebp
  0009d	c3		 ret	 0
?Mixer_MuteInputs@@YAXJPAJJH@Z ENDP			; Mixer_MuteInputs
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?Mixer_SetupActiveInputs@@YAXPAVCSource@@@Z
_TEXT	SEGMENT
_pCurrentSource$ = 8					; size = 4
?Mixer_SetupActiveInputs@@YAXPAVCSource@@@Z PROC	; Mixer_SetupActiveInputs, COMDAT

; 478  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 479  :     if (pCurrentSource != NULL)

  00003	83 7d 08 00	 cmp	 DWORD PTR _pCurrentSource$[ebp], 0
  00007	74 64		 je	 SHORT $LN5@Mixer_Setu

; 480  :     {
; 481  :         g_nActiveInputsCount = pCurrentSource->NumInputs(VIDEOINPUT);

  00009	6a 00		 push	 0
  0000b	8b 45 08	 mov	 eax, DWORD PTR _pCurrentSource$[ebp]
  0000e	8b 10		 mov	 edx, DWORD PTR [eax]
  00010	8b 4d 08	 mov	 ecx, DWORD PTR _pCurrentSource$[ebp]
  00013	8b 82 b8 00 00
	00		 mov	 eax, DWORD PTR [edx+184]
  00019	ff d0		 call	 eax
  0001b	a3 00 00 00 00	 mov	 DWORD PTR _g_nActiveInputsCount, eax

; 482  :         g_nActiveInput = pCurrentSource->GetInput(VIDEOINPUT);

  00020	6a 00		 push	 0
  00022	8b 4d 08	 mov	 ecx, DWORD PTR _pCurrentSource$[ebp]
  00025	8b 11		 mov	 edx, DWORD PTR [ecx]
  00027	8b 4d 08	 mov	 ecx, DWORD PTR _pCurrentSource$[ebp]
  0002a	8b 82 c0 00 00
	00		 mov	 eax, DWORD PTR [edx+192]
  00030	ff d0		 call	 eax
  00032	a3 00 00 00 00	 mov	 DWORD PTR _g_nActiveInput, eax

; 483  : 
; 484  :         if (g_nActiveInputsCount > MAX_SUPPORTED_INPUTS)

  00037	83 3d 00 00 00
	00 06		 cmp	 DWORD PTR _g_nActiveInputsCount, 6
  0003e	7e 0a		 jle	 SHORT $LN4@Mixer_Setu

; 485  :         {
; 486  :             g_nActiveInputsCount = MAX_SUPPORTED_INPUTS;

  00040	c7 05 00 00 00
	00 06 00 00 00	 mov	 DWORD PTR _g_nActiveInputsCount, 6
$LN4@Mixer_Setu:

; 487  :         }
; 488  : 
; 489  :         if (g_nActiveInput < -1 || g_nActiveInput >= g_nActiveInputsCount)

  0004a	83 3d 00 00 00
	00 ff		 cmp	 DWORD PTR _g_nActiveInput, -1
  00051	7c 0e		 jl	 SHORT $LN2@Mixer_Setu
  00053	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_nActiveInput
  00059	3b 0d 00 00 00
	00		 cmp	 ecx, DWORD PTR _g_nActiveInputsCount
  0005f	7c 0a		 jl	 SHORT $LN3@Mixer_Setu
$LN2@Mixer_Setu:

; 490  :         {
; 491  :             g_nActiveInput = -1;

  00061	c7 05 00 00 00
	00 ff ff ff ff	 mov	 DWORD PTR _g_nActiveInput, -1
$LN3@Mixer_Setu:

; 492  :         }
; 493  :     }
; 494  :     else

  0006b	eb 14		 jmp	 SHORT $LN6@Mixer_Setu
$LN5@Mixer_Setu:

; 495  :     {
; 496  :         g_nActiveInputsCount = 0;

  0006d	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR _g_nActiveInputsCount, 0

; 497  :         g_nActiveInput = -1;

  00077	c7 05 00 00 00
	00 ff ff ff ff	 mov	 DWORD PTR _g_nActiveInput, -1
$LN6@Mixer_Setu:

; 498  :     }
; 499  : }

  00081	5d		 pop	 ebp
  00082	c3		 ret	 0
?Mixer_SetupActiveInputs@@YAXPAVCSource@@@Z ENDP	; Mixer_SetupActiveInputs
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?Mixer_GetCurrentDestination@@YAPAVIMixerLineDst@@XZ
_TEXT	SEGMENT
?Mixer_GetCurrentDestination@@YAPAVIMixerLineDst@@XZ PROC ; Mixer_GetCurrentDestination, COMDAT

; 332  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 333  :     if (g_bUseMixer && g_pCurrentMixer != NULL && g_nDestinationIndex != -1)

  00003	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _g_bUseMixer, 0
  0000a	74 2d		 je	 SHORT $LN1@Mixer_GetC
  0000c	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _g_pCurrentMixer, 0
  00013	74 24		 je	 SHORT $LN1@Mixer_GetC
  00015	83 3d 00 00 00
	00 ff		 cmp	 DWORD PTR _g_nDestinationIndex, -1
  0001c	74 1b		 je	 SHORT $LN1@Mixer_GetC

; 334  :     {
; 335  :         return g_pCurrentMixer->GetDestinationLine(g_nDestinationIndex);

  0001e	a1 00 00 00 00	 mov	 eax, DWORD PTR _g_nDestinationIndex
  00023	50		 push	 eax
  00024	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_pCurrentMixer
  0002a	8b 11		 mov	 edx, DWORD PTR [ecx]
  0002c	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_pCurrentMixer
  00032	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  00035	ff d0		 call	 eax
  00037	eb 02		 jmp	 SHORT $LN2@Mixer_GetC
$LN1@Mixer_GetC:

; 336  :     }
; 337  : 
; 338  :     return NULL;

  00039	33 c0		 xor	 eax, eax
$LN2@Mixer_GetC:

; 339  : }

  0003b	5d		 pop	 ebp
  0003c	c3		 ret	 0
?Mixer_GetCurrentDestination@@YAPAVIMixerLineDst@@XZ ENDP ; Mixer_GetCurrentDestination
_TEXT	ENDS
PUBLIC	?Mixer_IsNoHardwareMute@@YAHXZ			; Mixer_IsNoHardwareMute
; Function compile flags: /Odtp
;	COMDAT ?Mixer_IsNoHardwareMute@@YAHXZ
_TEXT	SEGMENT
tv66 = -4						; size = 4
?Mixer_IsNoHardwareMute@@YAHXZ PROC			; Mixer_IsNoHardwareMute, COMDAT

; 139  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 140  :     return g_bUseMixer && g_bNoHardwareMute;

  00004	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _g_bUseMixer, 0
  0000b	74 12		 je	 SHORT $LN3@Mixer_IsNo
  0000d	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _g_bNoHardwareMute, 0
  00014	74 09		 je	 SHORT $LN3@Mixer_IsNo
  00016	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR tv66[ebp], 1
  0001d	eb 07		 jmp	 SHORT $LN4@Mixer_IsNo
$LN3@Mixer_IsNo:
  0001f	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR tv66[ebp], 0
$LN4@Mixer_IsNo:
  00026	8b 45 fc	 mov	 eax, DWORD PTR tv66[ebp]

; 141  : }

  00029	8b e5		 mov	 esp, ebp
  0002b	5d		 pop	 ebp
  0002c	c3		 ret	 0
?Mixer_IsNoHardwareMute@@YAHXZ ENDP			; Mixer_IsNoHardwareMute
_TEXT	ENDS
PUBLIC	?Mixer_IsEnabled@@YAHXZ				; Mixer_IsEnabled
; Function compile flags: /Odtp
;	COMDAT ?Mixer_IsEnabled@@YAHXZ
_TEXT	SEGMENT
?Mixer_IsEnabled@@YAHXZ PROC				; Mixer_IsEnabled, COMDAT

; 133  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 134  :     return g_bUseMixer;

  00003	a1 00 00 00 00	 mov	 eax, DWORD PTR _g_bUseMixer

; 135  : }

  00008	5d		 pop	 ebp
  00009	c3		 ret	 0
?Mixer_IsEnabled@@YAHXZ ENDP				; Mixer_IsEnabled
;	COMDAT xdata$x
; File c:\develop\dscaler423a\dscaler\smartptr.h
xdata$x	SEGMENT
__unwindtable$??4?$SmartPtr@VCSettingsHolder@@@@QAEAAV0@PAVCSettingsHolder@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??4?$SmartPtr@VCSettingsHolder@@@@QAEAAV0@PAVCSettingsHolder@@@Z$0
__ehfuncinfo$??4?$SmartPtr@VCSettingsHolder@@@@QAEAAV0@PAVCSettingsHolder@@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??4?$SmartPtr@VCSettingsHolder@@@@QAEAAV0@PAVCSettingsHolder@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??4?$SmartPtr@VCSettingsHolder@@@@QAEAAV0@PAVCSettingsHolder@@@Z
_TEXT	SEGMENT
tv75 = -28						; size = 4
_this$ = -24						; size = 4
$T308199 = -20						; size = 4
$T308198 = -16						; size = 4
__$EHRec$ = -12						; size = 12
_raw$ = 8						; size = 4
??4?$SmartPtr@VCSettingsHolder@@@@QAEAAV0@PAVCSettingsHolder@@@Z PROC ; SmartPtr<CSettingsHolder>::operator=, COMDAT
; _this$ = ecx

; 153  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??4?$SmartPtr@VCSettingsHolder@@@@QAEAAV0@PAVCSettingsHolder@@@Z
  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

; 154  : 
; 155  :         Clear();

  00028	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0002b	e8 00 00 00 00	 call	 ?Clear@?$SmartPtr@VCSettingsHolder@@@@QAEXXZ ; SmartPtr<CSettingsHolder>::Clear

; 156  :         if (raw)

  00030	83 7d 08 00	 cmp	 DWORD PTR _raw$[ebp], 0
  00034	74 4e		 je	 SHORT $LN1@operator@143

; 157  :         {
; 158  :             counter = new Counter;

  00036	6a 04		 push	 4
  00038	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  0003d	83 c4 04	 add	 esp, 4
  00040	89 45 ec	 mov	 DWORD PTR $T308199[ebp], eax
  00043	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0004a	83 7d ec 00	 cmp	 DWORD PTR $T308199[ebp], 0
  0004e	74 0f		 je	 SHORT $LN4@operator@143
  00050	6a 01		 push	 1
  00052	8b 4d ec	 mov	 ecx, DWORD PTR $T308199[ebp]
  00055	e8 00 00 00 00	 call	 ??0Counter@@QAE@I@Z	; Counter::Counter
  0005a	89 45 e4	 mov	 DWORD PTR tv75[ebp], eax
  0005d	eb 07		 jmp	 SHORT $LN5@operator@143
$LN4@operator@143:
  0005f	c7 45 e4 00 00
	00 00		 mov	 DWORD PTR tv75[ebp], 0
$LN5@operator@143:
  00066	8b 45 e4	 mov	 eax, DWORD PTR tv75[ebp]
  00069	89 45 f0	 mov	 DWORD PTR $T308198[ebp], eax
  0006c	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00073	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00076	8b 55 f0	 mov	 edx, DWORD PTR $T308198[ebp]
  00079	89 51 04	 mov	 DWORD PTR [ecx+4], edx

; 159  :             rawPtr = raw;

  0007c	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  0007f	8b 4d 08	 mov	 ecx, DWORD PTR _raw$[ebp]
  00082	89 08		 mov	 DWORD PTR [eax], ecx
$LN1@operator@143:

; 160  :         }
; 161  :         return *this;

  00084	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]

; 162  :     }

  00087	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0008a	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00091	59		 pop	 ecx
  00092	8b e5		 mov	 esp, ebp
  00094	5d		 pop	 ebp
  00095	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??4?$SmartPtr@VCSettingsHolder@@@@QAEAAV0@PAVCSettingsHolder@@@Z$0:
  00000	8b 45 ec	 mov	 eax, DWORD PTR $T308199[ebp]
  00003	50		 push	 eax
  00004	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00009	59		 pop	 ecx
  0000a	c3		 ret	 0
__ehhandler$??4?$SmartPtr@VCSettingsHolder@@@@QAEAAV0@PAVCSettingsHolder@@@Z:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 4a ec	 mov	 ecx, DWORD PTR [edx-20]
  00015	33 c8		 xor	 ecx, eax
  00017	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??4?$SmartPtr@VCSettingsHolder@@@@QAEAAV0@PAVCSettingsHolder@@@Z
  00021	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??4?$SmartPtr@VCSettingsHolder@@@@QAEAAV0@PAVCSettingsHolder@@@Z ENDP ; SmartPtr<CSettingsHolder>::operator=
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\mixerdev.cpp
;	COMDAT ?EnableDisableMixerControls@@YAXPAUHWND__@@H@Z
_TEXT	SEGMENT
tv95 = -4						; size = 4
_hDlg$ = 8						; size = 4
_bEnable$ = 12						; size = 4
?EnableDisableMixerControls@@YAXPAUHWND__@@H@Z PROC	; EnableDisableMixerControls, COMDAT

; 1051 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 1052 :     EnableWindow(GetDlgItem(hDlg, IDC_MIXER), bEnable);

  00004	8b 45 0c	 mov	 eax, DWORD PTR _bEnable$[ebp]
  00007	50		 push	 eax
  00008	68 8b 06 00 00	 push	 1675			; 0000068bH
  0000d	8b 4d 08	 mov	 ecx, DWORD PTR _hDlg$[ebp]
  00010	51		 push	 ecx
  00011	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  00017	50		 push	 eax
  00018	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnableWindow@8

; 1053 :     EnableWindow(GetDlgItem(hDlg, IDC_DEST), bEnable);

  0001e	8b 55 0c	 mov	 edx, DWORD PTR _bEnable$[ebp]
  00021	52		 push	 edx
  00022	68 c8 05 00 00	 push	 1480			; 000005c8H
  00027	8b 45 08	 mov	 eax, DWORD PTR _hDlg$[ebp]
  0002a	50		 push	 eax
  0002b	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  00031	50		 push	 eax
  00032	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnableWindow@8

; 1054 :     EnableWindow(GetDlgItem(hDlg, IDC_DEST_STATIC), bEnable);

  00038	8b 4d 0c	 mov	 ecx, DWORD PTR _bEnable$[ebp]
  0003b	51		 push	 ecx
  0003c	68 92 1f 00 00	 push	 8082			; 00001f92H
  00041	8b 55 08	 mov	 edx, DWORD PTR _hDlg$[ebp]
  00044	52		 push	 edx
  00045	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  0004b	50		 push	 eax
  0004c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnableWindow@8

; 1055 : 
; 1056 :     EnableWindow(GetDlgItem(hDlg, IDC_SEPARATE_INPUT), bEnable);

  00052	8b 45 0c	 mov	 eax, DWORD PTR _bEnable$[ebp]
  00055	50		 push	 eax
  00056	68 8f 1f 00 00	 push	 8079			; 00001f8fH
  0005b	8b 4d 08	 mov	 ecx, DWORD PTR _hDlg$[ebp]
  0005e	51		 push	 ecx
  0005f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  00065	50		 push	 eax
  00066	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnableWindow@8

; 1057 : 
; 1058 :     SwitchSameForAllInputsMode(hDlg, bEnable == FALSE ? -1 :
; 1059 :         Button_GetCheck(GetDlgItem(hDlg, IDC_SEPARATE_INPUT)) != BST_CHECKED);

  0006c	83 7d 0c 00	 cmp	 DWORD PTR _bEnable$[ebp], 0
  00070	75 09		 jne	 SHORT $LN3@EnableDisa
  00072	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR tv95[ebp], -1
  00079	eb 2b		 jmp	 SHORT $LN4@EnableDisa
$LN3@EnableDisa:
  0007b	6a 00		 push	 0
  0007d	6a 00		 push	 0
  0007f	68 f0 00 00 00	 push	 240			; 000000f0H
  00084	68 8f 1f 00 00	 push	 8079			; 00001f8fH
  00089	8b 55 08	 mov	 edx, DWORD PTR _hDlg$[ebp]
  0008c	52		 push	 edx
  0008d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  00093	50		 push	 eax
  00094	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
  0009a	83 e8 01	 sub	 eax, 1
  0009d	f7 d8		 neg	 eax
  0009f	1b c0		 sbb	 eax, eax
  000a1	f7 d8		 neg	 eax
  000a3	89 45 fc	 mov	 DWORD PTR tv95[ebp], eax
$LN4@EnableDisa:
  000a6	8b 45 fc	 mov	 eax, DWORD PTR tv95[ebp]
  000a9	50		 push	 eax
  000aa	8b 4d 08	 mov	 ecx, DWORD PTR _hDlg$[ebp]
  000ad	51		 push	 ecx
  000ae	e8 00 00 00 00	 call	 ?SwitchSameForAllInputsMode@@YAXPAUHWND__@@H@Z ; SwitchSameForAllInputsMode
  000b3	83 c4 08	 add	 esp, 8

; 1060 : 
; 1061 :     EnableWindow(GetDlgItem(hDlg, IDC_DISABLE_HW_MUTE), bEnable);

  000b6	8b 55 0c	 mov	 edx, DWORD PTR _bEnable$[ebp]
  000b9	52		 push	 edx
  000ba	68 9a 05 00 00	 push	 1434			; 0000059aH
  000bf	8b 45 08	 mov	 eax, DWORD PTR _hDlg$[ebp]
  000c2	50		 push	 eax
  000c3	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  000c9	50		 push	 eax
  000ca	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnableWindow@8

; 1062 :     EnableWindow(GetDlgItem(hDlg, IDC_RESETONEXIT), bEnable);

  000d0	8b 4d 0c	 mov	 ecx, DWORD PTR _bEnable$[ebp]
  000d3	51		 push	 ecx
  000d4	68 e1 06 00 00	 push	 1761			; 000006e1H
  000d9	8b 55 08	 mov	 edx, DWORD PTR _hDlg$[ebp]
  000dc	52		 push	 edx
  000dd	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  000e3	50		 push	 eax
  000e4	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnableWindow@8

; 1063 : }

  000ea	8b e5		 mov	 esp, ebp
  000ec	5d		 pop	 ebp
  000ed	c3		 ret	 0
?EnableDisableMixerControls@@YAXPAUHWND__@@H@Z ENDP	; EnableDisableMixerControls
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?Mixer_GetCurrentActiveSource@@YAPAVIMixerLineSrc@@XZ
_TEXT	SEGMENT
_pLineDst$ = -4						; size = 4
?Mixer_GetCurrentActiveSource@@YAPAVIMixerLineSrc@@XZ PROC ; Mixer_GetCurrentActiveSource, COMDAT

; 343  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 344  :     if (g_nActiveInput == -1 || g_nSourceIndexes[g_nActiveInput] == -1)

  00004	83 3d 00 00 00
	00 ff		 cmp	 DWORD PTR _g_nActiveInput, -1
  0000b	74 0f		 je	 SHORT $LN2@Mixer_GetC@2
  0000d	a1 00 00 00 00	 mov	 eax, DWORD PTR _g_nActiveInput
  00012	83 3c 85 00 00
	00 00 ff	 cmp	 DWORD PTR _g_nSourceIndexes[eax*4], -1
  0001a	75 04		 jne	 SHORT $LN3@Mixer_GetC@2
$LN2@Mixer_GetC@2:

; 345  :     {
; 346  :         return NULL;

  0001c	33 c0		 xor	 eax, eax
  0001e	eb 2d		 jmp	 SHORT $LN4@Mixer_GetC@2
$LN3@Mixer_GetC@2:

; 347  :     }
; 348  : 
; 349  :     IMixerLineDst* pLineDst = Mixer_GetCurrentDestination();

  00020	e8 00 00 00 00	 call	 ?Mixer_GetCurrentDestination@@YAPAVIMixerLineDst@@XZ ; Mixer_GetCurrentDestination
  00025	89 45 fc	 mov	 DWORD PTR _pLineDst$[ebp], eax

; 350  : 
; 351  :     if (pLineDst != NULL)

  00028	83 7d fc 00	 cmp	 DWORD PTR _pLineDst$[ebp], 0
  0002c	74 1d		 je	 SHORT $LN1@Mixer_GetC@2

; 352  :     {
; 353  :         return pLineDst->GetSourceLine(g_nSourceIndexes[g_nActiveInput]);

  0002e	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_nActiveInput
  00034	8b 14 8d 00 00
	00 00		 mov	 edx, DWORD PTR _g_nSourceIndexes[ecx*4]
  0003b	52		 push	 edx
  0003c	8b 45 fc	 mov	 eax, DWORD PTR _pLineDst$[ebp]
  0003f	8b 10		 mov	 edx, DWORD PTR [eax]
  00041	8b 4d fc	 mov	 ecx, DWORD PTR _pLineDst$[ebp]
  00044	8b 42 0c	 mov	 eax, DWORD PTR [edx+12]
  00047	ff d0		 call	 eax
  00049	eb 02		 jmp	 SHORT $LN4@Mixer_GetC@2
$LN1@Mixer_GetC@2:

; 354  :     }
; 355  : 
; 356  :     return NULL;

  0004b	33 c0		 xor	 eax, eax
$LN4@Mixer_GetC@2:

; 357  : }

  0004d	8b e5		 mov	 esp, ebp
  0004f	5d		 pop	 ebp
  00050	c3		 ret	 0
?Mixer_GetCurrentActiveSource@@YAPAVIMixerLineSrc@@XZ ENDP ; Mixer_GetCurrentActiveSource
_TEXT	ENDS
PUBLIC	?Mixer_GetVolume@@YAJXZ				; Mixer_GetVolume
; Function compile flags: /Odtp
;	COMDAT ?Mixer_GetVolume@@YAJXZ
_TEXT	SEGMENT
_pLineSrc$ = -4						; size = 4
?Mixer_GetVolume@@YAJXZ PROC				; Mixer_GetVolume, COMDAT

; 205  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 206  :     IMixerLineSrc* pLineSrc = Mixer_GetCurrentActiveSource();

  00004	e8 00 00 00 00	 call	 ?Mixer_GetCurrentActiveSource@@YAPAVIMixerLineSrc@@XZ ; Mixer_GetCurrentActiveSource
  00009	89 45 fc	 mov	 DWORD PTR _pLineSrc$[ebp], eax

; 207  : 
; 208  :     if (pLineSrc != NULL)

  0000c	83 7d fc 00	 cmp	 DWORD PTR _pLineSrc$[ebp], 0
  00010	74 0f		 je	 SHORT $LN1@Mixer_GetV

; 209  :     {
; 210  :         return pLineSrc->GetVolume();

  00012	8b 45 fc	 mov	 eax, DWORD PTR _pLineSrc$[ebp]
  00015	8b 10		 mov	 edx, DWORD PTR [eax]
  00017	8b 4d fc	 mov	 ecx, DWORD PTR _pLineSrc$[ebp]
  0001a	8b 42 14	 mov	 eax, DWORD PTR [edx+20]
  0001d	ff d0		 call	 eax
  0001f	eb 03		 jmp	 SHORT $LN2@Mixer_GetV
$LN1@Mixer_GetV:

; 211  :     }
; 212  : 
; 213  :     return -1;

  00021	83 c8 ff	 or	 eax, -1
$LN2@Mixer_GetV:

; 214  : }

  00024	8b e5		 mov	 esp, ebp
  00026	5d		 pop	 ebp
  00027	c3		 ret	 0
?Mixer_GetVolume@@YAJXZ ENDP				; Mixer_GetVolume
_TEXT	ENDS
PUBLIC	?Mixer_GetMute@@YAHXZ				; Mixer_GetMute
; Function compile flags: /Odtp
;	COMDAT ?Mixer_GetMute@@YAHXZ
_TEXT	SEGMENT
_pLineSrc$ = -4						; size = 4
?Mixer_GetMute@@YAHXZ PROC				; Mixer_GetMute, COMDAT

; 156  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 157  :     IMixerLineSrc* pLineSrc = Mixer_GetCurrentActiveSource();

  00004	e8 00 00 00 00	 call	 ?Mixer_GetCurrentActiveSource@@YAPAVIMixerLineSrc@@XZ ; Mixer_GetCurrentActiveSource
  00009	89 45 fc	 mov	 DWORD PTR _pLineSrc$[ebp], eax

; 158  : 
; 159  :     if (pLineSrc != NULL)

  0000c	83 7d fc 00	 cmp	 DWORD PTR _pLineSrc$[ebp], 0
  00010	74 15		 je	 SHORT $LN1@Mixer_GetM

; 160  :     {
; 161  :         return pLineSrc->GetMute() != FALSE;

  00012	8b 45 fc	 mov	 eax, DWORD PTR _pLineSrc$[ebp]
  00015	8b 10		 mov	 edx, DWORD PTR [eax]
  00017	8b 4d fc	 mov	 ecx, DWORD PTR _pLineSrc$[ebp]
  0001a	8b 42 0c	 mov	 eax, DWORD PTR [edx+12]
  0001d	ff d0		 call	 eax
  0001f	f7 d8		 neg	 eax
  00021	1b c0		 sbb	 eax, eax
  00023	f7 d8		 neg	 eax
  00025	eb 03		 jmp	 SHORT $LN2@Mixer_GetM
$LN1@Mixer_GetM:

; 162  :     }
; 163  : 
; 164  :     return -1;

  00027	83 c8 ff	 or	 eax, -1
$LN2@Mixer_GetM:

; 165  : }

  0002a	8b e5		 mov	 esp, ebp
  0002c	5d		 pop	 ebp
  0002d	c3		 ret	 0
?Mixer_GetMute@@YAHXZ ENDP				; Mixer_GetMute
_TEXT	ENDS
PUBLIC	?Mixer_SetMute@@YAXH@Z				; Mixer_SetMute
; Function compile flags: /Odtp
;	COMDAT ?Mixer_SetMute@@YAXH@Z
_TEXT	SEGMENT
_pLineSrc$ = -4						; size = 4
_bEnabled$ = 8						; size = 4
?Mixer_SetMute@@YAXH@Z PROC				; Mixer_SetMute, COMDAT

; 145  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 146  :     IMixerLineSrc* pLineSrc = Mixer_GetCurrentActiveSource();

  00004	e8 00 00 00 00	 call	 ?Mixer_GetCurrentActiveSource@@YAPAVIMixerLineSrc@@XZ ; Mixer_GetCurrentActiveSource
  00009	89 45 fc	 mov	 DWORD PTR _pLineSrc$[ebp], eax

; 147  : 
; 148  :     if (pLineSrc != NULL)

  0000c	83 7d fc 00	 cmp	 DWORD PTR _pLineSrc$[ebp], 0
  00010	74 11		 je	 SHORT $LN2@Mixer_SetM

; 149  :     {
; 150  :         pLineSrc->SetMute(bEnabled);

  00012	8b 45 08	 mov	 eax, DWORD PTR _bEnabled$[ebp]
  00015	50		 push	 eax
  00016	8b 4d fc	 mov	 ecx, DWORD PTR _pLineSrc$[ebp]
  00019	8b 11		 mov	 edx, DWORD PTR [ecx]
  0001b	8b 4d fc	 mov	 ecx, DWORD PTR _pLineSrc$[ebp]
  0001e	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  00021	ff d0		 call	 eax
$LN2@Mixer_SetM:

; 151  :     }
; 152  : }

  00023	8b e5		 mov	 esp, ebp
  00025	5d		 pop	 ebp
  00026	c3		 ret	 0
?Mixer_SetMute@@YAXH@Z ENDP				; Mixer_SetMute
PUBLIC	?Mixer_UnMute@@YAXXZ				; Mixer_UnMute
; Function compile flags: /Odtp
;	COMDAT ?Mixer_UnMute@@YAXXZ
_TEXT	SEGMENT
?Mixer_UnMute@@YAXXZ PROC				; Mixer_UnMute, COMDAT

; 175  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 176  :     Mixer_SetMute(FALSE);

  00003	6a 00		 push	 0
  00005	e8 00 00 00 00	 call	 ?Mixer_SetMute@@YAXH@Z	; Mixer_SetMute
  0000a	83 c4 04	 add	 esp, 4

; 177  : }

  0000d	5d		 pop	 ebp
  0000e	c3		 ret	 0
?Mixer_UnMute@@YAXXZ ENDP				; Mixer_UnMute
_TEXT	ENDS
PUBLIC	?Mixer_Mute@@YAXXZ				; Mixer_Mute
; Function compile flags: /Odtp
;	COMDAT ?Mixer_Mute@@YAXXZ
_TEXT	SEGMENT
?Mixer_Mute@@YAXXZ PROC					; Mixer_Mute, COMDAT

; 169  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 170  :     Mixer_SetMute(TRUE);

  00003	6a 01		 push	 1
  00005	e8 00 00 00 00	 call	 ?Mixer_SetMute@@YAXH@Z	; Mixer_SetMute
  0000a	83 c4 04	 add	 esp, 4

; 171  : }

  0000d	5d		 pop	 ebp
  0000e	c3		 ret	 0
?Mixer_Mute@@YAXXZ ENDP					; Mixer_Mute
PUBLIC	__$ArrayPad$
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?InitAndNameActiveInputs@@YAXPAUHWND__@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?InitAndNameActiveInputs@@YAXPAUHWND__@@@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?InitAndNameActiveInputs@@YAXPAUHWND__@@@Z$1
__ehfuncinfo$?InitAndNameActiveInputs@@YAXPAUHWND__@@@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?InitAndNameActiveInputs@@YAXPAUHWND__@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?InitAndNameActiveInputs@@YAXPAUHWND__@@@Z
_TEXT	SEGMENT
_pName$143229 = -88					; size = 28
_lStyle$143234 = -60					; size = 4
_nInputCount$ = -56					; size = 4
_sInputName$ = -52					; size = 28
__$ArrayPad$ = -24					; size = 4
_pSource$ = -20						; size = 4
_i$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_hDlg$ = 8						; size = 4
?InitAndNameActiveInputs@@YAXPAUHWND__@@@Z PROC		; InitAndNameActiveInputs, COMDAT

; 920  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?InitAndNameActiveInputs@@YAXPAUHWND__@@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 4c	 sub	 esp, 76			; 0000004cH
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	89 45 e8	 mov	 DWORD PTR __$ArrayPad$[ebp], eax
  0001e	50		 push	 eax
  0001f	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  00022	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax

; 921  :     int     nInputCount = 0;

  00028	c7 45 c8 00 00
	00 00		 mov	 DWORD PTR _nInputCount$[ebp], 0

; 922  :     tstring  sInputName;

  0002f	8d 4d cc	 lea	 ecx, DWORD PTR _sInputName$[ebp]
  00032	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00037	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0

; 923  :     CSource* pSource;
; 924  :     int     i;
; 925  : 
; 926  :     pSource = Providers_GetCurrentSource();

  0003e	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  00043	89 45 ec	 mov	 DWORD PTR _pSource$[ebp], eax

; 927  : 
; 928  :     if (pSource != NULL)

  00046	83 7d ec 00	 cmp	 DWORD PTR _pSource$[ebp], 0
  0004a	74 15		 je	 SHORT $LN13@InitAndNam

; 929  :     {
; 930  :         // fudge so that this works before the source change stuff has been setup
; 931  :         Mixer_SetupActiveInputs(pSource);

  0004c	8b 45 ec	 mov	 eax, DWORD PTR _pSource$[ebp]
  0004f	50		 push	 eax
  00050	e8 00 00 00 00	 call	 ?Mixer_SetupActiveInputs@@YAXPAVCSource@@@Z ; Mixer_SetupActiveInputs
  00055	83 c4 04	 add	 esp, 4

; 932  :         nInputCount = g_nActiveInputsCount;

  00058	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_nActiveInputsCount
  0005e	89 4d c8	 mov	 DWORD PTR _nInputCount$[ebp], ecx
$LN13@InitAndNam:

; 933  :     }
; 934  : 
; 935  :     // Set the source line names
; 936  :     for (i = 0; i < nInputCount; i++)

  00061	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  00068	eb 09		 jmp	 SHORT $LN12@InitAndNam
$LN11@InitAndNam:
  0006a	8b 55 f0	 mov	 edx, DWORD PTR _i$[ebp]
  0006d	83 c2 01	 add	 edx, 1
  00070	89 55 f0	 mov	 DWORD PTR _i$[ebp], edx
$LN12@InitAndNam:
  00073	8b 45 f0	 mov	 eax, DWORD PTR _i$[ebp]
  00076	3b 45 c8	 cmp	 eax, DWORD PTR _nInputCount$[ebp]
  00079	0f 8d 22 01 00
	00		 jge	 $LN10@InitAndNam

; 937  :     {
; 938  :         tstring pName = pSource->GetInputName(VIDEOINPUT, i);

  0007f	8b 4d f0	 mov	 ecx, DWORD PTR _i$[ebp]
  00082	51		 push	 ecx
  00083	6a 00		 push	 0
  00085	8d 55 a8	 lea	 edx, DWORD PTR _pName$143229[ebp]
  00088	52		 push	 edx
  00089	8b 45 ec	 mov	 eax, DWORD PTR _pSource$[ebp]
  0008c	8b 10		 mov	 edx, DWORD PTR [eax]
  0008e	8b 4d ec	 mov	 ecx, DWORD PTR _pSource$[ebp]
  00091	8b 82 c4 00 00
	00		 mov	 eax, DWORD PTR [edx+196]
  00097	ff d0		 call	 eax
  00099	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1

; 939  :         if (pName.empty())

  0009d	8d 4d a8	 lea	 ecx, DWORD PTR _pName$143229[ebp]
  000a0	e8 00 00 00 00	 call	 ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::empty
  000a5	0f b6 c8	 movzx	 ecx, al
  000a8	85 c9		 test	 ecx, ecx
  000aa	74 1c		 je	 SHORT $LN9@InitAndNam

; 940  :         {
; 941  :             sInputName = _T("Input ");

  000ac	68 00 00 00 00	 push	 OFFSET ??_C@_1O@CCLAMLBK@?$AAI?$AAn?$AAp?$AAu?$AAt?$AA?5?$AA?$AA@
  000b1	8d 4d cc	 lea	 ecx, DWORD PTR _sInputName$[ebp]
  000b4	e8 00 00 00 00	 call	 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=

; 942  :             sInputName += i;

  000b9	0f b7 55 f0	 movzx	 edx, WORD PTR _i$[ebp]
  000bd	52		 push	 edx
  000be	8d 4d cc	 lea	 ecx, DWORD PTR _sInputName$[ebp]
  000c1	e8 00 00 00 00	 call	 ??Y?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator+=

; 943  :         }
; 944  :         else

  000c6	eb 0c		 jmp	 SHORT $LN8@InitAndNam
$LN9@InitAndNam:

; 945  :         {
; 946  :             sInputName = pName;

  000c8	8d 45 a8	 lea	 eax, DWORD PTR _pName$143229[ebp]
  000cb	50		 push	 eax
  000cc	8d 4d cc	 lea	 ecx, DWORD PTR _sInputName$[ebp]
  000cf	e8 00 00 00 00	 call	 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=
$LN8@InitAndNam:

; 947  :         }
; 948  : 
; 949  :         SetDlgItemText(hDlg, IDC_MIXER_INPUT0NAME+i, sInputName.c_str());

  000d4	8d 4d cc	 lea	 ecx, DWORD PTR _sInputName$[ebp]
  000d7	e8 00 00 00 00	 call	 ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str
  000dc	50		 push	 eax
  000dd	8b 4d f0	 mov	 ecx, DWORD PTR _i$[ebp]
  000e0	81 c1 40 1f 00
	00		 add	 ecx, 8000		; 00001f40H
  000e6	51		 push	 ecx
  000e7	8b 55 08	 mov	 edx, DWORD PTR _hDlg$[ebp]
  000ea	52		 push	 edx
  000eb	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SetDlgItemTextW@12

; 950  : 
; 951  :         ShowWindow(GetDlgItem(hDlg, IDC_MIXER_INPUT0NAME+i), SW_SHOW);

  000f1	6a 05		 push	 5
  000f3	8b 45 f0	 mov	 eax, DWORD PTR _i$[ebp]
  000f6	05 40 1f 00 00	 add	 eax, 8000		; 00001f40H
  000fb	50		 push	 eax
  000fc	8b 4d 08	 mov	 ecx, DWORD PTR _hDlg$[ebp]
  000ff	51		 push	 ecx
  00100	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  00106	50		 push	 eax
  00107	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__ShowWindow@8

; 952  :         ShowWindow(GetDlgItem(hDlg, IDC_MIXER_INPUT0+i), SW_SHOW);

  0010d	6a 05		 push	 5
  0010f	8b 55 f0	 mov	 edx, DWORD PTR _i$[ebp]
  00112	81 c2 b5 05 00
	00		 add	 edx, 1461		; 000005b5H
  00118	52		 push	 edx
  00119	8b 45 08	 mov	 eax, DWORD PTR _hDlg$[ebp]
  0011c	50		 push	 eax
  0011d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  00123	50		 push	 eax
  00124	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__ShowWindow@8

; 953  : 
; 954  :         LONG lStyle = GetWindowLong(GetDlgItem(hDlg, IDC_MIXER_INPUT0NAME+i), GWL_STYLE);

  0012a	6a f0		 push	 -16			; fffffff0H
  0012c	8b 4d f0	 mov	 ecx, DWORD PTR _i$[ebp]
  0012f	81 c1 40 1f 00
	00		 add	 ecx, 8000		; 00001f40H
  00135	51		 push	 ecx
  00136	8b 55 08	 mov	 edx, DWORD PTR _hDlg$[ebp]
  00139	52		 push	 edx
  0013a	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  00140	50		 push	 eax
  00141	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetWindowLongW@8
  00147	89 45 c4	 mov	 DWORD PTR _lStyle$143234[ebp], eax

; 955  : 
; 956  :         // There are better ways of testing if the
; 957  :         // text wraps but this way is probably okay
; 958  :         if (sInputName.length() > 16)

  0014a	8d 4d cc	 lea	 ecx, DWORD PTR _sInputName$[ebp]
  0014d	e8 00 00 00 00	 call	 ?length@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::length
  00152	83 f8 10	 cmp	 eax, 16			; 00000010H
  00155	76 0d		 jbe	 SHORT $LN7@InitAndNam

; 959  :         {
; 960  :             // Unset center vertically so the text
; 961  :             // wraps properly
; 962  :             lStyle &= ~SS_CENTERIMAGE;

  00157	8b 45 c4	 mov	 eax, DWORD PTR _lStyle$143234[ebp]
  0015a	25 ff fd ff ff	 and	 eax, -513		; fffffdffH
  0015f	89 45 c4	 mov	 DWORD PTR _lStyle$143234[ebp], eax

; 963  :         }
; 964  :         else

  00162	eb 0c		 jmp	 SHORT $LN6@InitAndNam
$LN7@InitAndNam:

; 965  :         {
; 966  :             lStyle |= SS_CENTERIMAGE;

  00164	8b 4d c4	 mov	 ecx, DWORD PTR _lStyle$143234[ebp]
  00167	81 c9 00 02 00
	00		 or	 ecx, 512		; 00000200H
  0016d	89 4d c4	 mov	 DWORD PTR _lStyle$143234[ebp], ecx
$LN6@InitAndNam:

; 967  :         }
; 968  : 
; 969  :         SetWindowLongPtr(GetDlgItem(hDlg, IDC_MIXER_INPUT0NAME+i), GWL_STYLE, lStyle);

  00170	8b 55 c4	 mov	 edx, DWORD PTR _lStyle$143234[ebp]
  00173	52		 push	 edx
  00174	6a f0		 push	 -16			; fffffff0H
  00176	8b 45 f0	 mov	 eax, DWORD PTR _i$[ebp]
  00179	05 40 1f 00 00	 add	 eax, 8000		; 00001f40H
  0017e	50		 push	 eax
  0017f	8b 4d 08	 mov	 ecx, DWORD PTR _hDlg$[ebp]
  00182	51		 push	 ecx
  00183	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  00189	50		 push	 eax
  0018a	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SetWindowLongW@12

; 970  :     }

  00190	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  00194	8d 4d a8	 lea	 ecx, DWORD PTR _pName$143229[ebp]
  00197	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  0019c	e9 c9 fe ff ff	 jmp	 $LN11@InitAndNam
$LN10@InitAndNam:

; 971  : 
; 972  :     // Hide the unused source lines
; 973  :     for ( ; i < MAX_SUPPORTED_INPUTS; i++)

  001a1	eb 09		 jmp	 SHORT $LN5@InitAndNam
$LN4@InitAndNam:
  001a3	8b 55 f0	 mov	 edx, DWORD PTR _i$[ebp]
  001a6	83 c2 01	 add	 edx, 1
  001a9	89 55 f0	 mov	 DWORD PTR _i$[ebp], edx
$LN5@InitAndNam:
  001ac	83 7d f0 06	 cmp	 DWORD PTR _i$[ebp], 6
  001b0	7d 3b		 jge	 SHORT $LN3@InitAndNam

; 974  :     {
; 975  :         ShowWindow(GetDlgItem(hDlg, IDC_MIXER_INPUT0NAME+i), SW_HIDE);

  001b2	6a 00		 push	 0
  001b4	8b 45 f0	 mov	 eax, DWORD PTR _i$[ebp]
  001b7	05 40 1f 00 00	 add	 eax, 8000		; 00001f40H
  001bc	50		 push	 eax
  001bd	8b 4d 08	 mov	 ecx, DWORD PTR _hDlg$[ebp]
  001c0	51		 push	 ecx
  001c1	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  001c7	50		 push	 eax
  001c8	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__ShowWindow@8

; 976  :         ShowWindow(GetDlgItem(hDlg, IDC_MIXER_INPUT0+i), SW_HIDE);

  001ce	6a 00		 push	 0
  001d0	8b 55 f0	 mov	 edx, DWORD PTR _i$[ebp]
  001d3	81 c2 b5 05 00
	00		 add	 edx, 1461		; 000005b5H
  001d9	52		 push	 edx
  001da	8b 45 08	 mov	 eax, DWORD PTR _hDlg$[ebp]
  001dd	50		 push	 eax
  001de	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  001e4	50		 push	 eax
  001e5	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__ShowWindow@8

; 977  :     }

  001eb	eb b6		 jmp	 SHORT $LN4@InitAndNam
$LN3@InitAndNam:

; 978  : 
; 979  :     if (nInputCount == 0)

  001ed	83 7d c8 00	 cmp	 DWORD PTR _nInputCount$[ebp], 0
  001f1	75 62		 jne	 SHORT $LN2@InitAndNam

; 980  :     {
; 981  :         ShowWindow(GetDlgItem(hDlg, IDC_MIXER_INPUTNAME_ALL), SW_HIDE);

  001f3	6a 00		 push	 0
  001f5	68 94 1f 00 00	 push	 8084			; 00001f94H
  001fa	8b 4d 08	 mov	 ecx, DWORD PTR _hDlg$[ebp]
  001fd	51		 push	 ecx
  001fe	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  00204	50		 push	 eax
  00205	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__ShowWindow@8

; 982  :         ShowWindow(GetDlgItem(hDlg, IDC_MIXER_INPUT_ALL), SW_HIDE);

  0020b	6a 00		 push	 0
  0020d	68 a4 06 00 00	 push	 1700			; 000006a4H
  00212	8b 55 08	 mov	 edx, DWORD PTR _hDlg$[ebp]
  00215	52		 push	 edx
  00216	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  0021c	50		 push	 eax
  0021d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__ShowWindow@8

; 983  :         ShowWindow(GetDlgItem(hDlg, IDC_SEPARATE_INPUT), SW_HIDE);

  00223	6a 00		 push	 0
  00225	68 8f 1f 00 00	 push	 8079			; 00001f8fH
  0022a	8b 45 08	 mov	 eax, DWORD PTR _hDlg$[ebp]
  0022d	50		 push	 eax
  0022e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  00234	50		 push	 eax
  00235	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__ShowWindow@8

; 984  :         ShowWindow(GetDlgItem(hDlg, IDC_SOURCE_NO_INPUT), SW_SHOW);

  0023b	6a 05		 push	 5
  0023d	68 93 1f 00 00	 push	 8083			; 00001f93H
  00242	8b 4d 08	 mov	 ecx, DWORD PTR _hDlg$[ebp]
  00245	51		 push	 ecx
  00246	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  0024c	50		 push	 eax
  0024d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__ShowWindow@8

; 985  :     }
; 986  :     else

  00253	eb 60		 jmp	 SHORT $LN1@InitAndNam
$LN2@InitAndNam:

; 987  :     {
; 988  :         ShowWindow(GetDlgItem(hDlg, IDC_MIXER_INPUTNAME_ALL), SW_SHOW);

  00255	6a 05		 push	 5
  00257	68 94 1f 00 00	 push	 8084			; 00001f94H
  0025c	8b 55 08	 mov	 edx, DWORD PTR _hDlg$[ebp]
  0025f	52		 push	 edx
  00260	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  00266	50		 push	 eax
  00267	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__ShowWindow@8

; 989  :         ShowWindow(GetDlgItem(hDlg, IDC_MIXER_INPUT_ALL), SW_SHOW);

  0026d	6a 05		 push	 5
  0026f	68 a4 06 00 00	 push	 1700			; 000006a4H
  00274	8b 45 08	 mov	 eax, DWORD PTR _hDlg$[ebp]
  00277	50		 push	 eax
  00278	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  0027e	50		 push	 eax
  0027f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__ShowWindow@8

; 990  :         ShowWindow(GetDlgItem(hDlg, IDC_SEPARATE_INPUT), SW_SHOW);

  00285	6a 05		 push	 5
  00287	68 8f 1f 00 00	 push	 8079			; 00001f8fH
  0028c	8b 4d 08	 mov	 ecx, DWORD PTR _hDlg$[ebp]
  0028f	51		 push	 ecx
  00290	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  00296	50		 push	 eax
  00297	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__ShowWindow@8

; 991  :         ShowWindow(GetDlgItem(hDlg, IDC_SOURCE_NO_INPUT), SW_HIDE);

  0029d	6a 00		 push	 0
  0029f	68 93 1f 00 00	 push	 8083			; 00001f93H
  002a4	8b 55 08	 mov	 edx, DWORD PTR _hDlg$[ebp]
  002a7	52		 push	 edx
  002a8	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  002ae	50		 push	 eax
  002af	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__ShowWindow@8
$LN1@InitAndNam:

; 992  :     }
; 993  : }

  002b5	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  002bc	8d 4d cc	 lea	 ecx, DWORD PTR _sInputName$[ebp]
  002bf	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  002c4	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  002c7	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  002ce	59		 pop	 ecx
  002cf	8b 4d e8	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  002d2	33 cd		 xor	 ecx, ebp
  002d4	e8 00 00 00 00	 call	 @__security_check_cookie@4
  002d9	8b e5		 mov	 esp, ebp
  002db	5d		 pop	 ebp
  002dc	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?InitAndNameActiveInputs@@YAXPAUHWND__@@@Z$0:
  00000	8d 4d cc	 lea	 ecx, DWORD PTR _sInputName$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?InitAndNameActiveInputs@@YAXPAUHWND__@@@Z$1:
  00008	8d 4d a8	 lea	 ecx, DWORD PTR _pName$143229[ebp]
  0000b	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__ehhandler$?InitAndNameActiveInputs@@YAXPAUHWND__@@@Z:
  00010	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00014	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00017	8b 4a b0	 mov	 ecx, DWORD PTR [edx-80]
  0001a	33 c8		 xor	 ecx, eax
  0001c	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00021	8b 4a f4	 mov	 ecx, DWORD PTR [edx-12]
  00024	33 c8		 xor	 ecx, eax
  00026	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002b	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?InitAndNameActiveInputs@@YAXPAUHWND__@@@Z
  00030	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?InitAndNameActiveInputs@@YAXPAUHWND__@@@Z ENDP		; InitAndNameActiveInputs
; Function compile flags: /Odtp
;	COMDAT ?SynchronizeDlgChangesCallback@@YAPAVIMixer@@PAX@Z
_TEXT	SEGMENT
_nIndex$143417 = -12					; size = 4
_hDlg$ = -8						; size = 4
_i$ = -4						; size = 4
_pContext$ = 8						; size = 4
?SynchronizeDlgChangesCallback@@YAPAVIMixer@@PAX@Z PROC	; SynchronizeDlgChangesCallback, COMDAT

; 1211 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH

; 1212 :     HWND hDlg = (HWND)pContext;

  00006	8b 45 08	 mov	 eax, DWORD PTR _pContext$[ebp]
  00009	89 45 f8	 mov	 DWORD PTR _hDlg$[ebp], eax

; 1213 : 
; 1214 :     // DoSettingsTranstion wants everything changed to the new
; 1215 :     // settings, except g_pCurrentMixer.  Instead of changing
; 1216 :     // g_pCurrentMixer, the new mixer should be returned.
; 1217 : 
; 1218 :     if (g_pDlgActiveMixer != NULL)

  0000c	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _g_pDlgActiveMixer, 0
  00013	74 42		 je	 SHORT $LN14@Synchroniz

; 1219 :     {
; 1220 :         Setting_SetValue(WM_MIXERDEV_GETVALUE, MIXERNAME, (long)g_pDlgActiveMixer->GetName());

  00015	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_pDlgActiveMixer
  0001b	8b 11		 mov	 edx, DWORD PTR [ecx]
  0001d	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_pDlgActiveMixer
  00023	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00026	ff d0		 call	 eax
  00028	50		 push	 eax
  00029	6a 09		 push	 9
  0002b	68 19 80 00 00	 push	 32793			; 00008019H
  00030	e8 00 00 00 00	 call	 ?Setting_SetValue@@YAXJJJ@Z ; Setting_SetValue
  00035	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1221 :         g_nDestinationIndex = ComboBox_GetCurSelItemData(GetDlgItem(hDlg, IDC_DEST));

  00038	68 c8 05 00 00	 push	 1480			; 000005c8H
  0003d	8b 4d f8	 mov	 ecx, DWORD PTR _hDlg$[ebp]
  00040	51		 push	 ecx
  00041	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  00047	50		 push	 eax
  00048	e8 00 00 00 00	 call	 ?ComboBox_GetCurSelItemData@@YAHPAUHWND__@@@Z ; ComboBox_GetCurSelItemData
  0004d	83 c4 04	 add	 esp, 4
  00050	a3 00 00 00 00	 mov	 DWORD PTR _g_nDestinationIndex, eax

; 1222 :     }
; 1223 :     else

  00055	eb 1e		 jmp	 SHORT $LN13@Synchroniz
$LN14@Synchroniz:

; 1224 :     {
; 1225 :         Setting_SetValue(WM_MIXERDEV_GETVALUE, MIXERNAME, (long)(const char*)_T(""));

  00057	68 00 00 00 00	 push	 OFFSET ??_C@_11LOCGONAA@?$AA?$AA@
  0005c	6a 09		 push	 9
  0005e	68 19 80 00 00	 push	 32793			; 00008019H
  00063	e8 00 00 00 00	 call	 ?Setting_SetValue@@YAXJJJ@Z ; Setting_SetValue
  00068	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1226 :         g_nDestinationIndex = -1;

  0006b	c7 05 00 00 00
	00 ff ff ff ff	 mov	 DWORD PTR _g_nDestinationIndex, -1
$LN13@Synchroniz:

; 1227 :     }
; 1228 : 
; 1229 :     int i = 0;

  00075	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0

; 1230 : 
; 1231 :     // Read the new settings
; 1232 :     if (g_nDestinationIndex != -1)

  0007c	83 3d 00 00 00
	00 ff		 cmp	 DWORD PTR _g_nDestinationIndex, -1
  00083	0f 84 a5 00 00
	00		 je	 $LN12@Synchroniz

; 1233 :     {
; 1234 :         if (Button_GetCheck(GetDlgItem(hDlg, IDC_SEPARATE_INPUT)) != BST_CHECKED)

  00089	6a 00		 push	 0
  0008b	6a 00		 push	 0
  0008d	68 f0 00 00 00	 push	 240			; 000000f0H
  00092	68 8f 1f 00 00	 push	 8079			; 00001f8fH
  00097	8b 55 f8	 mov	 edx, DWORD PTR _hDlg$[ebp]
  0009a	52		 push	 edx
  0009b	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  000a1	50		 push	 eax
  000a2	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
  000a8	83 f8 01	 cmp	 eax, 1
  000ab	74 42		 je	 SHORT $LN11@Synchroniz

; 1235 :         {
; 1236 :             int nIndex = ComboBox_GetCurSelItemData(GetDlgItem(hDlg, IDC_MIXER_INPUT_ALL));

  000ad	68 a4 06 00 00	 push	 1700			; 000006a4H
  000b2	8b 45 f8	 mov	 eax, DWORD PTR _hDlg$[ebp]
  000b5	50		 push	 eax
  000b6	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  000bc	50		 push	 eax
  000bd	e8 00 00 00 00	 call	 ?ComboBox_GetCurSelItemData@@YAHPAUHWND__@@@Z ; ComboBox_GetCurSelItemData
  000c2	83 c4 04	 add	 esp, 4
  000c5	89 45 f4	 mov	 DWORD PTR _nIndex$143417[ebp], eax

; 1237 : 
; 1238 :             for ( ; i < g_nActiveInputsCount; i++)

  000c8	eb 09		 jmp	 SHORT $LN10@Synchroniz
$LN9@Synchroniz:
  000ca	8b 4d fc	 mov	 ecx, DWORD PTR _i$[ebp]
  000cd	83 c1 01	 add	 ecx, 1
  000d0	89 4d fc	 mov	 DWORD PTR _i$[ebp], ecx
$LN10@Synchroniz:
  000d3	8b 55 fc	 mov	 edx, DWORD PTR _i$[ebp]
  000d6	3b 15 00 00 00
	00		 cmp	 edx, DWORD PTR _g_nActiveInputsCount
  000dc	7d 0f		 jge	 SHORT $LN8@Synchroniz

; 1239 :             {
; 1240 :                 g_nSourceIndexes[i] = nIndex;

  000de	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  000e1	8b 4d f4	 mov	 ecx, DWORD PTR _nIndex$143417[ebp]
  000e4	89 0c 85 00 00
	00 00		 mov	 DWORD PTR _g_nSourceIndexes[eax*4], ecx

; 1241 :             }

  000eb	eb dd		 jmp	 SHORT $LN9@Synchroniz
$LN8@Synchroniz:

; 1242 :         }
; 1243 :         else

  000ed	eb 3f		 jmp	 SHORT $LN12@Synchroniz
$LN11@Synchroniz:

; 1244 :         {
; 1245 :             for ( ; i < g_nActiveInputsCount; i++)

  000ef	eb 09		 jmp	 SHORT $LN6@Synchroniz
$LN5@Synchroniz:
  000f1	8b 55 fc	 mov	 edx, DWORD PTR _i$[ebp]
  000f4	83 c2 01	 add	 edx, 1
  000f7	89 55 fc	 mov	 DWORD PTR _i$[ebp], edx
$LN6@Synchroniz:
  000fa	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  000fd	3b 05 00 00 00
	00		 cmp	 eax, DWORD PTR _g_nActiveInputsCount
  00103	7d 29		 jge	 SHORT $LN12@Synchroniz

; 1246 :             {
; 1247 :                 g_nSourceIndexes[i] = ComboBox_GetCurSelItemData(GetDlgItem(hDlg, IDC_MIXER_INPUT0+i));

  00105	8b 4d fc	 mov	 ecx, DWORD PTR _i$[ebp]
  00108	81 c1 b5 05 00
	00		 add	 ecx, 1461		; 000005b5H
  0010e	51		 push	 ecx
  0010f	8b 55 f8	 mov	 edx, DWORD PTR _hDlg$[ebp]
  00112	52		 push	 edx
  00113	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  00119	50		 push	 eax
  0011a	e8 00 00 00 00	 call	 ?ComboBox_GetCurSelItemData@@YAHPAUHWND__@@@Z ; ComboBox_GetCurSelItemData
  0011f	83 c4 04	 add	 esp, 4
  00122	8b 4d fc	 mov	 ecx, DWORD PTR _i$[ebp]
  00125	89 04 8d 00 00
	00 00		 mov	 DWORD PTR _g_nSourceIndexes[ecx*4], eax

; 1248 :             }

  0012c	eb c3		 jmp	 SHORT $LN5@Synchroniz
$LN12@Synchroniz:

; 1249 :         }
; 1250 :     }
; 1251 : 
; 1252 :     for ( ; i < MAX_SUPPORTED_INPUTS; i++)

  0012e	eb 09		 jmp	 SHORT $LN3@Synchroniz
$LN2@Synchroniz:
  00130	8b 55 fc	 mov	 edx, DWORD PTR _i$[ebp]
  00133	83 c2 01	 add	 edx, 1
  00136	89 55 fc	 mov	 DWORD PTR _i$[ebp], edx
$LN3@Synchroniz:
  00139	83 7d fc 06	 cmp	 DWORD PTR _i$[ebp], 6
  0013d	7d 10		 jge	 SHORT $LN1@Synchroniz

; 1253 :     {
; 1254 :         g_nSourceIndexes[i] = -1;

  0013f	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  00142	c7 04 85 00 00
	00 00 ff ff ff
	ff		 mov	 DWORD PTR _g_nSourceIndexes[eax*4], -1

; 1255 :     }

  0014d	eb e1		 jmp	 SHORT $LN2@Synchroniz
$LN1@Synchroniz:

; 1256 : 
; 1257 :     g_bUseMixer = (Button_GetCheck(GetDlgItem(hDlg, IDC_USE_MIXER)) == BST_CHECKED);

  0014f	6a 00		 push	 0
  00151	6a 00		 push	 0
  00153	68 f0 00 00 00	 push	 240			; 000000f0H
  00158	68 5d 07 00 00	 push	 1885			; 0000075dH
  0015d	8b 4d f8	 mov	 ecx, DWORD PTR _hDlg$[ebp]
  00160	51		 push	 ecx
  00161	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  00167	50		 push	 eax
  00168	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
  0016e	83 e8 01	 sub	 eax, 1
  00171	f7 d8		 neg	 eax
  00173	1b c0		 sbb	 eax, eax
  00175	83 c0 01	 add	 eax, 1
  00178	a3 00 00 00 00	 mov	 DWORD PTR _g_bUseMixer, eax

; 1258 :     g_bNoHardwareMute = (Button_GetCheck(GetDlgItem(hDlg, IDC_DISABLE_HW_MUTE)) == BST_CHECKED);

  0017d	6a 00		 push	 0
  0017f	6a 00		 push	 0
  00181	68 f0 00 00 00	 push	 240			; 000000f0H
  00186	68 9a 05 00 00	 push	 1434			; 0000059aH
  0018b	8b 55 f8	 mov	 edx, DWORD PTR _hDlg$[ebp]
  0018e	52		 push	 edx
  0018f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  00195	50		 push	 eax
  00196	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
  0019c	83 e8 01	 sub	 eax, 1
  0019f	f7 d8		 neg	 eax
  001a1	1b c0		 sbb	 eax, eax
  001a3	83 c0 01	 add	 eax, 1
  001a6	a3 00 00 00 00	 mov	 DWORD PTR _g_bNoHardwareMute, eax

; 1259 : 
; 1260 :     return g_pDlgActiveMixer;

  001ab	a1 00 00 00 00	 mov	 eax, DWORD PTR _g_pDlgActiveMixer

; 1261 : }

  001b0	8b e5		 mov	 esp, ebp
  001b2	5d		 pop	 ebp
  001b3	c3		 ret	 0
?SynchronizeDlgChangesCallback@@YAPAVIMixer@@PAX@Z ENDP	; SynchronizeDlgChangesCallback
; Function compile flags: /Odtp
;	COMDAT ?RefillMixerDeviceBox@@YAXPAUHWND__@@J@Z
_TEXT	SEGMENT
tv81 = -28						; size = 4
_name$143290 = -24					; size = 4
_i$143286 = -20						; size = 4
_hMixerControl$ = -16					; size = 4
_bSelected$ = -12					; size = 4
_index$ = -8						; size = 4
_mixerCount$ = -4					; size = 4
_hDlg$ = 8						; size = 4
_nSelectIndex$ = 12					; size = 4
?RefillMixerDeviceBox@@YAXPAUHWND__@@J@Z PROC		; RefillMixerDeviceBox, COMDAT

; 1067 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 1c	 sub	 esp, 28			; 0000001cH

; 1068 :     HWND hMixerControl = GetDlgItem(hDlg, IDC_MIXER);

  00006	68 8b 06 00 00	 push	 1675			; 0000068bH
  0000b	8b 45 08	 mov	 eax, DWORD PTR _hDlg$[ebp]
  0000e	50		 push	 eax
  0000f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  00015	89 45 f0	 mov	 DWORD PTR _hMixerControl$[ebp], eax

; 1069 : 
; 1070 :     ComboBox_ResetContent(hMixerControl);

  00018	6a 00		 push	 0
  0001a	6a 00		 push	 0
  0001c	68 4b 01 00 00	 push	 331			; 0000014bH
  00021	8b 4d f0	 mov	 ecx, DWORD PTR _hMixerControl$[ebp]
  00024	51		 push	 ecx
  00025	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16

; 1071 : 
; 1072 :     int mixerCount = CMixerList::getInstance()->GetMixerCount();

  0002b	e8 00 00 00 00	 call	 ?getInstance@CMixerList@@SAPAV1@XZ ; CMixerList::getInstance
  00030	8b c8		 mov	 ecx, eax
  00032	e8 00 00 00 00	 call	 ?GetMixerCount@CMixerList@@QAEJXZ ; CMixerList::GetMixerCount
  00037	89 45 fc	 mov	 DWORD PTR _mixerCount$[ebp], eax

; 1073 :     BOOL bSelected = FALSE;

  0003a	c7 45 f4 00 00
	00 00		 mov	 DWORD PTR _bSelected$[ebp], 0

; 1074 :     int index;
; 1075 : 
; 1076 :     for (int i = 0; i < mixerCount; i++)

  00041	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _i$143286[ebp], 0
  00048	eb 09		 jmp	 SHORT $LN5@RefillMixe
$LN4@RefillMixe:
  0004a	8b 55 ec	 mov	 edx, DWORD PTR _i$143286[ebp]
  0004d	83 c2 01	 add	 edx, 1
  00050	89 55 ec	 mov	 DWORD PTR _i$143286[ebp], edx
$LN5@RefillMixe:
  00053	8b 45 ec	 mov	 eax, DWORD PTR _i$143286[ebp]
  00056	3b 45 fc	 cmp	 eax, DWORD PTR _mixerCount$[ebp]
  00059	7d 7b		 jge	 SHORT $LN3@RefillMixe

; 1077 :     {
; 1078 :         const TCHAR* name = CMixerList::getInstance()->GetMixer(i)->GetName();

  0005b	8b 4d ec	 mov	 ecx, DWORD PTR _i$143286[ebp]
  0005e	51		 push	 ecx
  0005f	e8 00 00 00 00	 call	 ?getInstance@CMixerList@@SAPAV1@XZ ; CMixerList::getInstance
  00064	8b c8		 mov	 ecx, eax
  00066	e8 00 00 00 00	 call	 ?GetMixer@CMixerList@@QAEPAVIMixer@@J@Z ; CMixerList::GetMixer
  0006b	89 45 e4	 mov	 DWORD PTR tv81[ebp], eax
  0006e	8b 55 e4	 mov	 edx, DWORD PTR tv81[ebp]
  00071	8b 02		 mov	 eax, DWORD PTR [edx]
  00073	8b 4d e4	 mov	 ecx, DWORD PTR tv81[ebp]
  00076	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  00079	ff d2		 call	 edx
  0007b	89 45 e8	 mov	 DWORD PTR _name$143290[ebp], eax

; 1079 : 
; 1080 :         index = ComboBox_AddString(hMixerControl, name);

  0007e	8b 45 e8	 mov	 eax, DWORD PTR _name$143290[ebp]
  00081	50		 push	 eax
  00082	6a 00		 push	 0
  00084	68 43 01 00 00	 push	 323			; 00000143H
  00089	8b 4d f0	 mov	 ecx, DWORD PTR _hMixerControl$[ebp]
  0008c	51		 push	 ecx
  0008d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
  00093	89 45 f8	 mov	 DWORD PTR _index$[ebp], eax

; 1081 :         ComboBox_SetItemData(hMixerControl, index, i);

  00096	8b 55 ec	 mov	 edx, DWORD PTR _i$143286[ebp]
  00099	52		 push	 edx
  0009a	8b 45 f8	 mov	 eax, DWORD PTR _index$[ebp]
  0009d	50		 push	 eax
  0009e	68 51 01 00 00	 push	 337			; 00000151H
  000a3	8b 4d f0	 mov	 ecx, DWORD PTR _hMixerControl$[ebp]
  000a6	51		 push	 ecx
  000a7	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16

; 1082 : 
; 1083 :         if (i == nSelectIndex)

  000ad	8b 55 ec	 mov	 edx, DWORD PTR _i$143286[ebp]
  000b0	3b 55 0c	 cmp	 edx, DWORD PTR _nSelectIndex$[ebp]
  000b3	75 1c		 jne	 SHORT $LN2@RefillMixe

; 1084 :         {
; 1085 :             ComboBox_SetCurSel(hMixerControl, index);

  000b5	6a 00		 push	 0
  000b7	8b 45 f8	 mov	 eax, DWORD PTR _index$[ebp]
  000ba	50		 push	 eax
  000bb	68 4e 01 00 00	 push	 334			; 0000014eH
  000c0	8b 4d f0	 mov	 ecx, DWORD PTR _hMixerControl$[ebp]
  000c3	51		 push	 ecx
  000c4	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16

; 1086 :             bSelected = TRUE;

  000ca	c7 45 f4 01 00
	00 00		 mov	 DWORD PTR _bSelected$[ebp], 1
$LN2@RefillMixe:

; 1087 :         }
; 1088 :     }

  000d1	e9 74 ff ff ff	 jmp	 $LN4@RefillMixe
$LN3@RefillMixe:

; 1089 : 
; 1090 :     if (!bSelected)

  000d6	83 7d f4 00	 cmp	 DWORD PTR _bSelected$[ebp], 0
  000da	75 13		 jne	 SHORT $LN6@RefillMixe

; 1091 :     {
; 1092 :         ComboBox_SetCurSel(hMixerControl, 0);

  000dc	6a 00		 push	 0
  000de	6a 00		 push	 0
  000e0	68 4e 01 00 00	 push	 334			; 0000014eH
  000e5	8b 55 f0	 mov	 edx, DWORD PTR _hMixerControl$[ebp]
  000e8	52		 push	 edx
  000e9	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
$LN6@RefillMixe:

; 1093 :     }
; 1094 : }

  000ef	8b e5		 mov	 esp, ebp
  000f1	5d		 pop	 ebp
  000f2	c3		 ret	 0
?RefillMixerDeviceBox@@YAXPAUHWND__@@J@Z ENDP		; RefillMixerDeviceBox
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?Mixer_NameToIndex@@YAJABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z
_TEXT	SEGMENT
_nMixerIndex$ = -4					; size = 4
_szName$ = 8						; size = 4
?Mixer_NameToIndex@@YAJABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z PROC ; Mixer_NameToIndex, COMDAT

; 688  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 689  :     long nMixerIndex = -1;

  00004	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR _nMixerIndex$[ebp], -1

; 690  : 
; 691  :     if (!szName.empty())

  0000b	8b 4d 08	 mov	 ecx, DWORD PTR _szName$[ebp]
  0000e	e8 00 00 00 00	 call	 ?empty@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE_NXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::empty
  00013	0f b6 c0	 movzx	 eax, al
  00016	85 c0		 test	 eax, eax
  00018	75 13		 jne	 SHORT $LN1@Mixer_Name

; 692  :     {
; 693  :         nMixerIndex = CMixerList::getInstance()->FindMixer(szName);

  0001a	8b 4d 08	 mov	 ecx, DWORD PTR _szName$[ebp]
  0001d	51		 push	 ecx
  0001e	e8 00 00 00 00	 call	 ?getInstance@CMixerList@@SAPAV1@XZ ; CMixerList::getInstance
  00023	8b c8		 mov	 ecx, eax
  00025	e8 00 00 00 00	 call	 ?FindMixer@CMixerList@@QAEJABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; CMixerList::FindMixer
  0002a	89 45 fc	 mov	 DWORD PTR _nMixerIndex$[ebp], eax
$LN1@Mixer_Name:

; 694  :     }
; 695  : 
; 696  :     return nMixerIndex;

  0002d	8b 45 fc	 mov	 eax, DWORD PTR _nMixerIndex$[ebp]

; 697  : }

  00030	8b e5		 mov	 esp, ebp
  00032	5d		 pop	 ebp
  00033	c3		 ret	 0
?Mixer_NameToIndex@@YAJABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ENDP ; Mixer_NameToIndex
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?Mixer_SetCurrentMixer@@YAXJ@Z
_TEXT	SEGMENT
_nMixerIndex$ = 8					; size = 4
?Mixer_SetCurrentMixer@@YAXJ@Z PROC			; Mixer_SetCurrentMixer, COMDAT

; 316  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 317  :     if (g_pCurrentMixer != NULL)

  00003	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _g_pCurrentMixer, 0
  0000a	74 23		 je	 SHORT $LN2@Mixer_SetC@2

; 318  :     {
; 319  :         if (g_pCurrentMixer->GetIndex() == nMixerIndex)

  0000c	a1 00 00 00 00	 mov	 eax, DWORD PTR _g_pCurrentMixer
  00011	8b 10		 mov	 edx, DWORD PTR [eax]
  00013	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_pCurrentMixer
  00019	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  0001c	ff d0		 call	 eax
  0001e	3b 45 08	 cmp	 eax, DWORD PTR _nMixerIndex$[ebp]
  00021	75 02		 jne	 SHORT $LN1@Mixer_SetC@2

; 320  :         {
; 321  :             return;

  00023	eb 1f		 jmp	 SHORT $LN3@Mixer_SetC@2
$LN1@Mixer_SetC@2:

; 322  :         }
; 323  : 
; 324  :         g_pCurrentMixer = NULL;

  00025	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR _g_pCurrentMixer, 0
$LN2@Mixer_SetC@2:

; 325  :     }
; 326  : 
; 327  :     g_pCurrentMixer = CMixerList::getInstance()->GetMixer(nMixerIndex);

  0002f	8b 4d 08	 mov	 ecx, DWORD PTR _nMixerIndex$[ebp]
  00032	51		 push	 ecx
  00033	e8 00 00 00 00	 call	 ?getInstance@CMixerList@@SAPAV1@XZ ; CMixerList::getInstance
  00038	8b c8		 mov	 ecx, eax
  0003a	e8 00 00 00 00	 call	 ?GetMixer@CMixerList@@QAEPAVIMixer@@J@Z ; CMixerList::GetMixer
  0003f	a3 00 00 00 00	 mov	 DWORD PTR _g_pCurrentMixer, eax
$LN3@Mixer_SetC@2:

; 328  : }

  00044	5d		 pop	 ebp
  00045	c3		 ret	 0
?Mixer_SetCurrentMixer@@YAXJ@Z ENDP			; Mixer_SetCurrentMixer
_TEXT	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Mixer_SetCurrentMixerFromName@@YAXXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Mixer_SetCurrentMixerFromName@@YAXXZ$0
__ehfuncinfo$?Mixer_SetCurrentMixerFromName@@YAXXZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Mixer_SetCurrentMixerFromName@@YAXXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?Mixer_SetCurrentMixerFromName@@YAXXZ
_TEXT	SEGMENT
$T346299 = -40						; size = 28
__$EHRec$ = -12						; size = 12
?Mixer_SetCurrentMixerFromName@@YAXXZ PROC		; Mixer_SetCurrentMixerFromName, COMDAT

; 310  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?Mixer_SetCurrentMixerFromName@@YAXXZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 1c	 sub	 esp, 28			; 0000001cH
  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

; 311  :     Mixer_SetCurrentMixer(Mixer_NameToIndex((LPCTSTR)g_pMixerName));

  00025	b9 00 00 00 00	 mov	 ecx, OFFSET ?g_pMixerName@@3VSettingStringValue@@A ; g_pMixerName
  0002a	e8 00 00 00 00	 call	 ??BSettingStringValue@@QAEPB_WXZ ; SettingStringValue::operator wchar_t const *
  0002f	50		 push	 eax
  00030	8d 4d d8	 lea	 ecx, DWORD PTR $T346299[ebp]
  00033	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00038	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0003f	8d 45 d8	 lea	 eax, DWORD PTR $T346299[ebp]
  00042	50		 push	 eax
  00043	e8 00 00 00 00	 call	 ?Mixer_NameToIndex@@YAJABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; Mixer_NameToIndex
  00048	83 c4 04	 add	 esp, 4
  0004b	50		 push	 eax
  0004c	e8 00 00 00 00	 call	 ?Mixer_SetCurrentMixer@@YAXJ@Z ; Mixer_SetCurrentMixer
  00051	83 c4 04	 add	 esp, 4
  00054	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0005b	8d 4d d8	 lea	 ecx, DWORD PTR $T346299[ebp]
  0005e	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >

; 312  : }

  00063	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00066	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0006d	59		 pop	 ecx
  0006e	8b e5		 mov	 esp, ebp
  00070	5d		 pop	 ebp
  00071	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Mixer_SetCurrentMixerFromName@@YAXXZ$0:
  00000	8d 4d d8	 lea	 ecx, DWORD PTR $T346299[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__ehhandler$?Mixer_SetCurrentMixerFromName@@YAXXZ:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a e0	 mov	 ecx, DWORD PTR [edx-32]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?Mixer_SetCurrentMixerFromName@@YAXXZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?Mixer_SetCurrentMixerFromName@@YAXXZ ENDP		; Mixer_SetCurrentMixerFromName
PUBLIC	__$ArrayPad$
PUBLIC	?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z	; MixerDev_UpdateSettings
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z$0
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z$1
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z$2
	DD	02H
	DD	FLAT:__unwindfunclet$?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z$3
	DD	03H
	DD	FLAT:__unwindfunclet$?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z$4
	DD	04H
	DD	FLAT:__unwindfunclet$?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z$5
	DD	03H
	DD	FLAT:__unwindfunclet$?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z$5
	DD	02H
	DD	FLAT:__unwindfunclet$?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z$5
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z$5
	DD	08H
	DD	FLAT:__unwindfunclet$?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z$6
__ehfuncinfo$?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z DD 019930522H
	DD	0aH
	DD	FLAT:__unwindtable$?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z
_TEXT	SEGMENT
tv202 = -284						; size = 4
tv135 = -280						; size = 4
tv198 = -276						; size = 4
tv206 = -272						; size = 4
tv196 = -268						; size = 4
tv205 = -264						; size = 4
tv134 = -260						; size = 4
tv193 = -256						; size = 4
tv203 = -252						; size = 4
$T352499 = -248						; size = 4
$T352498 = -244						; size = 28
$T352497 = -216						; size = 28
$T352496 = -188						; size = 128
$T352493 = -60						; size = 4
$T352492 = -56						; size = 4
$T352491 = -52						; size = 4
_i$143557 = -48						; size = 4
_MixerDev_Section$143553 = -44				; size = 28
__$ArrayPad$ = -16					; size = 4
__$EHRec$ = -12						; size = 12
_pSource$ = 8						; size = 4
?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z PROC	; MixerDev_UpdateSettings, COMDAT

; 1491 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	81 ec 10 01 00
	00		 sub	 esp, 272		; 00000110H
  00017	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001c	33 c5		 xor	 eax, ebp
  0001e	89 45 f0	 mov	 DWORD PTR __$ArrayPad$[ebp], eax
  00021	50		 push	 eax
  00022	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  00025	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax

; 1492 :     if(MixerSettings.IsValid())

  0002b	b9 00 00 00 00	 mov	 ecx, OFFSET ?MixerSettings@@3V?$SmartPtr@VCSettingsHolder@@@@A ; MixerSettings
  00030	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VCSettingsHolder@@@@QBEHXZ ; SmartPtr<CSettingsHolder>::IsValid
  00035	85 c0		 test	 eax, eax
  00037	74 62		 je	 SHORT $LN6@MixerDev_U

; 1493 :     {
; 1494 :         SettingsMaster->Unregister(MixerSettings);

  00039	83 ec 08	 sub	 esp, 8
  0003c	8b cc		 mov	 ecx, esp
  0003e	89 65 cc	 mov	 DWORD PTR $T352491[ebp], esp
  00041	68 00 00 00 00	 push	 OFFSET ?MixerSettings@@3V?$SmartPtr@VCSettingsHolder@@@@A ; MixerSettings
  00046	e8 00 00 00 00	 call	 ??0?$SmartPtr@VCSettingsHolder@@@@QAE@ABV0@@Z ; SmartPtr<CSettingsHolder>::SmartPtr<CSettingsHolder>
  0004b	89 85 04 ff ff
	ff		 mov	 DWORD PTR tv203[ebp], eax
  00051	8b 85 04 ff ff
	ff		 mov	 eax, DWORD PTR tv203[ebp]
  00057	89 85 00 ff ff
	ff		 mov	 DWORD PTR tv193[ebp], eax
  0005d	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00064	b9 00 00 00 00	 mov	 ecx, OFFSET ?SettingsMaster@@3V?$SmartPtr@VCSettingsMaster@@@@A ; SettingsMaster
  00069	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSettingsMaster@@@@QBEPAVCSettingsMaster@@XZ ; SmartPtr<CSettingsMaster>::operator->
  0006e	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00075	8b c8		 mov	 ecx, eax
  00077	e8 00 00 00 00	 call	 ?Unregister@CSettingsMaster@@QAEXV?$SmartPtr@VCSettingsHolder@@@@@Z ; CSettingsMaster::Unregister

; 1495 :         MixerSettings->WriteToIni(TRUE);

  0007c	6a 01		 push	 1
  0007e	b9 00 00 00 00	 mov	 ecx, OFFSET ?MixerSettings@@3V?$SmartPtr@VCSettingsHolder@@@@A ; MixerSettings
  00083	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSettingsHolder@@@@QBEPAVCSettingsHolder@@XZ ; SmartPtr<CSettingsHolder>::operator->
  00088	8b c8		 mov	 ecx, eax
  0008a	e8 00 00 00 00	 call	 ?WriteToIni@CSettingsHolder@@QAEXH@Z ; CSettingsHolder::WriteToIni

; 1496 :         MixerSettings = 0L;

  0008f	6a 00		 push	 0
  00091	b9 00 00 00 00	 mov	 ecx, OFFSET ?MixerSettings@@3V?$SmartPtr@VCSettingsHolder@@@@A ; MixerSettings
  00096	e8 00 00 00 00	 call	 ??4?$SmartPtr@VCSettingsHolder@@@@QAEAAV0@PAVCSettingsHolder@@@Z ; SmartPtr<CSettingsHolder>::operator=
$LN6@MixerDev_U:

; 1497 :     }
; 1498 : 
; 1499 :     if (pSource == NULL)

  0009b	83 7d 08 00	 cmp	 DWORD PTR _pSource$[ebp], 0
  0009f	75 0f		 jne	 SHORT $LN5@MixerDev_U

; 1500 :     {
; 1501 :         g_bMixerDevInvalidSection = TRUE;

  000a1	c7 05 00 00 00
	00 01 00 00 00	 mov	 DWORD PTR _g_bMixerDevInvalidSection, 1

; 1502 :     }
; 1503 :     else

  000ab	e9 c8 01 00 00	 jmp	 $LN7@MixerDev_U
$LN5@MixerDev_U:

; 1504 :     {
; 1505 :         MixerSettings = new CSettingsHolder(WM_MIXERDEV_GETVALUE);

  000b0	6a 40		 push	 64			; 00000040H
  000b2	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  000b7	83 c4 04	 add	 esp, 4
  000ba	89 45 c4	 mov	 DWORD PTR $T352493[ebp], eax
  000bd	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1
  000c4	83 7d c4 00	 cmp	 DWORD PTR $T352493[ebp], 0
  000c8	74 17		 je	 SHORT $LN9@MixerDev_U
  000ca	6a 00		 push	 0
  000cc	68 19 80 00 00	 push	 32793			; 00008019H
  000d1	8b 4d c4	 mov	 ecx, DWORD PTR $T352493[ebp]
  000d4	e8 00 00 00 00	 call	 ??0CSettingsHolder@@QAE@JI@Z ; CSettingsHolder::CSettingsHolder
  000d9	89 85 fc fe ff
	ff		 mov	 DWORD PTR tv134[ebp], eax
  000df	eb 0a		 jmp	 SHORT $LN10@MixerDev_U
$LN9@MixerDev_U:
  000e1	c7 85 fc fe ff
	ff 00 00 00 00	 mov	 DWORD PTR tv134[ebp], 0
$LN10@MixerDev_U:
  000eb	8b 8d fc fe ff
	ff		 mov	 ecx, DWORD PTR tv134[ebp]
  000f1	89 4d c8	 mov	 DWORD PTR $T352492[ebp], ecx
  000f4	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  000fb	8b 55 c8	 mov	 edx, DWORD PTR $T352492[ebp]
  000fe	52		 push	 edx
  000ff	b9 00 00 00 00	 mov	 ecx, OFFSET ?MixerSettings@@3V?$SmartPtr@VCSettingsHolder@@@@A ; MixerSettings
  00104	e8 00 00 00 00	 call	 ??4?$SmartPtr@VCSettingsHolder@@@@QAEAAV0@PAVCSettingsHolder@@@Z ; SmartPtr<CSettingsHolder>::operator=

; 1506 :         tstring MixerDev_Section(MakeString() << _T("MixerInput_") << pSource->IDString());

  00109	8d 85 28 ff ff
	ff		 lea	 eax, DWORD PTR $T352497[ebp]
  0010f	50		 push	 eax
  00110	8b 4d 08	 mov	 ecx, DWORD PTR _pSource$[ebp]
  00113	8b 11		 mov	 edx, DWORD PTR [ecx]
  00115	8b 4d 08	 mov	 ecx, DWORD PTR _pSource$[ebp]
  00118	8b 82 b4 00 00
	00		 mov	 eax, DWORD PTR [edx+180]
  0011e	ff d0		 call	 eax
  00120	89 85 f8 fe ff
	ff		 mov	 DWORD PTR tv205[ebp], eax
  00126	8b 8d f8 fe ff
	ff		 mov	 ecx, DWORD PTR tv205[ebp]
  0012c	89 8d f4 fe ff
	ff		 mov	 DWORD PTR tv196[ebp], ecx
  00132	c7 45 fc 02 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 2
  00139	8d 8d 44 ff ff
	ff		 lea	 ecx, DWORD PTR $T352496[ebp]
  0013f	e8 00 00 00 00	 call	 ??0MakeString@@QAE@XZ
  00144	89 85 f0 fe ff
	ff		 mov	 DWORD PTR tv206[ebp], eax
  0014a	8b 95 f0 fe ff
	ff		 mov	 edx, DWORD PTR tv206[ebp]
  00150	89 95 ec fe ff
	ff		 mov	 DWORD PTR tv198[ebp], edx
  00156	c6 45 fc 03	 mov	 BYTE PTR __$EHRec$[ebp+8], 3
  0015a	8d 85 0c ff ff
	ff		 lea	 eax, DWORD PTR $T352498[ebp]
  00160	50		 push	 eax
  00161	8b 8d f4 fe ff
	ff		 mov	 ecx, DWORD PTR tv196[ebp]
  00167	51		 push	 ecx
  00168	68 00 00 00 00	 push	 OFFSET ??_C@_1BI@JKDALEMH@?$AAM?$AAi?$AAx?$AAe?$AAr?$AAI?$AAn?$AAp?$AAu?$AAt?$AA_?$AA?$AA@
  0016d	8b 8d ec fe ff
	ff		 mov	 ecx, DWORD PTR tv198[ebp]
  00173	e8 00 00 00 00	 call	 ??$?6$$BY0M@$$CB_W@MakeString@@QAEAAV0@AAY0M@$$CB_W@Z ; MakeString::operator<<<wchar_t const [12]>
  00178	8b c8		 mov	 ecx, eax
  0017a	e8 00 00 00 00	 call	 ??$?6V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@MakeString@@QAEAAV0@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; MakeString::operator<<<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >
  0017f	8b c8		 mov	 ecx, eax
  00181	e8 00 00 00 00	 call	 ??BMakeString@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ; MakeString::operator std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00186	c6 45 fc 04	 mov	 BYTE PTR __$EHRec$[ebp+8], 4
  0018a	8d 95 0c ff ff
	ff		 lea	 edx, DWORD PTR $T352498[ebp]
  00190	52		 push	 edx
  00191	8d 4d d4	 lea	 ecx, DWORD PTR _MixerDev_Section$143553[ebp]
  00194	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00199	c6 45 fc 06	 mov	 BYTE PTR __$EHRec$[ebp+8], 6
  0019d	8d 8d 0c ff ff
	ff		 lea	 ecx, DWORD PTR $T352498[ebp]
  001a3	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  001a8	c6 45 fc 07	 mov	 BYTE PTR __$EHRec$[ebp+8], 7
  001ac	8d 8d 44 ff ff
	ff		 lea	 ecx, DWORD PTR $T352496[ebp]
  001b2	e8 00 00 00 00	 call	 ??1MakeString@@QAE@XZ
  001b7	c6 45 fc 08	 mov	 BYTE PTR __$EHRec$[ebp+8], 8
  001bb	8d 8d 28 ff ff
	ff		 lea	 ecx, DWORD PTR $T352497[ebp]
  001c1	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >

; 1507 :         g_bMixerDevInvalidSection = FALSE;

  001c6	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR _g_bMixerDevInvalidSection, 0

; 1508 : 
; 1509 :         for (int i = 0; i < MIXERDEV_SETTING_LASTONE; i++)

  001d0	c7 45 d0 00 00
	00 00		 mov	 DWORD PTR _i$143557[ebp], 0
  001d7	eb 09		 jmp	 SHORT $LN3@MixerDev_U
$LN2@MixerDev_U:
  001d9	8b 45 d0	 mov	 eax, DWORD PTR _i$143557[ebp]
  001dc	83 c0 01	 add	 eax, 1
  001df	89 45 d0	 mov	 DWORD PTR _i$143557[ebp], eax
$LN3@MixerDev_U:
  001e2	83 7d d0 0b	 cmp	 DWORD PTR _i$143557[ebp], 11 ; 0000000bH
  001e6	7d 16		 jge	 SHORT $LN1@MixerDev_U

; 1510 :         {
; 1511 :             MixerDevSettings[i].szIniSection = (char*)MixerDev_Section.c_str();

  001e8	8d 4d d4	 lea	 ecx, DWORD PTR _MixerDev_Section$143553[ebp]
  001eb	e8 00 00 00 00	 call	 ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str
  001f0	8b 4d d0	 mov	 ecx, DWORD PTR _i$143557[ebp]
  001f3	6b c9 34	 imul	 ecx, 52			; 00000034H
  001f6	89 81 28 00 00
	00		 mov	 DWORD PTR ?MixerDevSettings@@3PAUSETTING@@A[ecx+40], eax

; 1512 :         }

  001fc	eb db		 jmp	 SHORT $LN2@MixerDev_U
$LN1@MixerDev_U:

; 1513 : 
; 1514 :         MixerSettings->AddSettings(MixerDevSettings, MIXERDEV_SETTING_LASTONE);

  001fe	6a 00		 push	 0
  00200	6a 0b		 push	 11			; 0000000bH
  00202	68 00 00 00 00	 push	 OFFSET ?MixerDevSettings@@3PAUSETTING@@A ; MixerDevSettings
  00207	b9 00 00 00 00	 mov	 ecx, OFFSET ?MixerSettings@@3V?$SmartPtr@VCSettingsHolder@@@@A ; MixerSettings
  0020c	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSettingsHolder@@@@QBEPAVCSettingsHolder@@XZ ; SmartPtr<CSettingsHolder>::operator->
  00211	8b c8		 mov	 ecx, eax
  00213	e8 00 00 00 00	 call	 ?AddSettings@CSettingsHolder@@QAEXPAUSETTING@@HPAVCSettingGroup@@@Z ; CSettingsHolder::AddSettings

; 1515 :         MixerSettings->ReadFromIni();

  00218	b9 00 00 00 00	 mov	 ecx, OFFSET ?MixerSettings@@3V?$SmartPtr@VCSettingsHolder@@@@A ; MixerSettings
  0021d	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSettingsHolder@@@@QBEPAVCSettingsHolder@@XZ ; SmartPtr<CSettingsHolder>::operator->
  00222	8b c8		 mov	 ecx, eax
  00224	e8 00 00 00 00	 call	 ?ReadFromIni@CSettingsHolder@@QAEXXZ ; CSettingsHolder::ReadFromIni

; 1516 :         SettingsMaster->Register(MixerSettings);

  00229	83 ec 08	 sub	 esp, 8
  0022c	8b cc		 mov	 ecx, esp
  0022e	89 a5 08 ff ff
	ff		 mov	 DWORD PTR $T352499[ebp], esp
  00234	68 00 00 00 00	 push	 OFFSET ?MixerSettings@@3V?$SmartPtr@VCSettingsHolder@@@@A ; MixerSettings
  00239	e8 00 00 00 00	 call	 ??0?$SmartPtr@VCSettingsHolder@@@@QAE@ABV0@@Z ; SmartPtr<CSettingsHolder>::SmartPtr<CSettingsHolder>
  0023e	89 85 e8 fe ff
	ff		 mov	 DWORD PTR tv135[ebp], eax
  00244	8b 95 e8 fe ff
	ff		 mov	 edx, DWORD PTR tv135[ebp]
  0024a	89 95 e4 fe ff
	ff		 mov	 DWORD PTR tv202[ebp], edx
  00250	c6 45 fc 09	 mov	 BYTE PTR __$EHRec$[ebp+8], 9
  00254	b9 00 00 00 00	 mov	 ecx, OFFSET ?SettingsMaster@@3V?$SmartPtr@VCSettingsMaster@@@@A ; SettingsMaster
  00259	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSettingsMaster@@@@QBEPAVCSettingsMaster@@XZ ; SmartPtr<CSettingsMaster>::operator->
  0025e	c6 45 fc 08	 mov	 BYTE PTR __$EHRec$[ebp+8], 8
  00262	8b c8		 mov	 ecx, eax
  00264	e8 00 00 00 00	 call	 ?Register@CSettingsMaster@@QAEXV?$SmartPtr@VCSettingsHolder@@@@@Z ; CSettingsMaster::Register

; 1517 :     }

  00269	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00270	8d 4d d4	 lea	 ecx, DWORD PTR _MixerDev_Section$143553[ebp]
  00273	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
$LN7@MixerDev_U:

; 1518 : }

  00278	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0027b	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00282	59		 pop	 ecx
  00283	8b 4d f0	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  00286	33 cd		 xor	 ecx, ebp
  00288	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0028d	8b e5		 mov	 esp, ebp
  0028f	5d		 pop	 ebp
  00290	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z$0:
  00000	8b 4d cc	 mov	 ecx, DWORD PTR $T352491[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSettingsHolder@@@@QAE@XZ ; SmartPtr<CSettingsHolder>::~SmartPtr<CSettingsHolder>
__unwindfunclet$?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z$1:
  00008	8b 45 c4	 mov	 eax, DWORD PTR $T352493[ebp]
  0000b	50		 push	 eax
  0000c	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00011	59		 pop	 ecx
  00012	c3		 ret	 0
__unwindfunclet$?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z$2:
  00013	8d 8d 28 ff ff
	ff		 lea	 ecx, DWORD PTR $T352497[ebp]
  00019	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z$3:
  0001e	8d 8d 44 ff ff
	ff		 lea	 ecx, DWORD PTR $T352496[ebp]
  00024	e9 00 00 00 00	 jmp	 ??1MakeString@@QAE@XZ
__unwindfunclet$?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z$4:
  00029	8d 8d 0c ff ff
	ff		 lea	 ecx, DWORD PTR $T352498[ebp]
  0002f	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z$5:
  00034	8d 4d d4	 lea	 ecx, DWORD PTR _MixerDev_Section$143553[ebp]
  00037	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z$6:
  0003c	8b 8d 08 ff ff
	ff		 mov	 ecx, DWORD PTR $T352499[ebp]
  00042	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSettingsHolder@@@@QAE@XZ ; SmartPtr<CSettingsHolder>::~SmartPtr<CSettingsHolder>
__ehhandler$?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z:
  00047	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0004b	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0004e	8b 8a ec fe ff
	ff		 mov	 ecx, DWORD PTR [edx-276]
  00054	33 c8		 xor	 ecx, eax
  00056	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0005b	8b 4a fc	 mov	 ecx, DWORD PTR [edx-4]
  0005e	33 c8		 xor	 ecx, eax
  00060	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00065	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z
  0006a	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z ENDP	; MixerDev_UpdateSettings
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?LoadSourceSettingsCallback@@YAPAVIMixer@@PAX@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?LoadSourceSettingsCallback@@YAPAVIMixer@@PAX@Z$0
__ehfuncinfo$?LoadSourceSettingsCallback@@YAPAVIMixer@@PAX@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?LoadSourceSettingsCallback@@YAPAVIMixer@@PAX@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?LoadSourceSettingsCallback@@YAPAVIMixer@@PAX@Z
_TEXT	SEGMENT
$T352515 = -48						; size = 28
_nMixerIndex$143011 = -20				; size = 4
_pSource$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_pContext$ = 8						; size = 4
?LoadSourceSettingsCallback@@YAPAVIMixer@@PAX@Z PROC	; LoadSourceSettingsCallback, COMDAT

; 448  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?LoadSourceSettingsCallback@@YAPAVIMixer@@PAX@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 24	 sub	 esp, 36			; 00000024H
  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

; 449  :     CSource* pSource = (CSource*)pContext;

  00025	8b 45 08	 mov	 eax, DWORD PTR _pContext$[ebp]
  00028	89 45 f0	 mov	 DWORD PTR _pSource$[ebp], eax

; 450  : 
; 451  :     // DoSettingsTranstion wants everything changed to the new
; 452  :     // settings, except g_pCurrentMixer.  Instead of changing
; 453  :     // g_pCurrentMixer, the new mixer should be returned.
; 454  : 
; 455  :     // Load the new source's settings
; 456  :     MixerDev_UpdateSettings(pSource);

  0002b	8b 4d f0	 mov	 ecx, DWORD PTR _pSource$[ebp]
  0002e	51		 push	 ecx
  0002f	e8 00 00 00 00	 call	 ?MixerDev_UpdateSettings@@YAXPAVCSource@@@Z ; MixerDev_UpdateSettings
  00034	83 c4 04	 add	 esp, 4

; 457  : 
; 458  :     Mixer_SetupActiveInputs(pSource);

  00037	8b 55 f0	 mov	 edx, DWORD PTR _pSource$[ebp]
  0003a	52		 push	 edx
  0003b	e8 00 00 00 00	 call	 ?Mixer_SetupActiveInputs@@YAXPAVCSource@@@Z ; Mixer_SetupActiveInputs
  00040	83 c4 04	 add	 esp, 4

; 459  : 
; 460  :     if (g_bUseMixer)

  00043	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _g_bUseMixer, 0
  0004a	74 72		 je	 SHORT $LN2@LoadSource

; 461  :     {
; 462  :         long nMixerIndex = Mixer_NameToIndex((LPCTSTR)g_pMixerName);

  0004c	b9 00 00 00 00	 mov	 ecx, OFFSET ?g_pMixerName@@3VSettingStringValue@@A ; g_pMixerName
  00051	e8 00 00 00 00	 call	 ??BSettingStringValue@@QAEPB_WXZ ; SettingStringValue::operator wchar_t const *
  00056	50		 push	 eax
  00057	8d 4d d0	 lea	 ecx, DWORD PTR $T352515[ebp]
  0005a	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  0005f	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00066	8d 45 d0	 lea	 eax, DWORD PTR $T352515[ebp]
  00069	50		 push	 eax
  0006a	e8 00 00 00 00	 call	 ?Mixer_NameToIndex@@YAJABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; Mixer_NameToIndex
  0006f	83 c4 04	 add	 esp, 4
  00072	89 45 ec	 mov	 DWORD PTR _nMixerIndex$143011[ebp], eax
  00075	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0007c	8d 4d d0	 lea	 ecx, DWORD PTR $T352515[ebp]
  0007f	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >

; 463  : 
; 464  :         if (g_pCurrentMixer != NULL &&
; 465  :             g_pCurrentMixer->GetIndex() == nMixerIndex)

  00084	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _g_pCurrentMixer, 0
  0008b	74 1f		 je	 SHORT $LN1@LoadSource
  0008d	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_pCurrentMixer
  00093	8b 11		 mov	 edx, DWORD PTR [ecx]
  00095	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_pCurrentMixer
  0009b	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  0009e	ff d0		 call	 eax
  000a0	3b 45 ec	 cmp	 eax, DWORD PTR _nMixerIndex$143011[ebp]
  000a3	75 07		 jne	 SHORT $LN1@LoadSource

; 466  :         {
; 467  :             return g_pCurrentMixer;

  000a5	a1 00 00 00 00	 mov	 eax, DWORD PTR _g_pCurrentMixer
  000aa	eb 14		 jmp	 SHORT $LN3@LoadSource
$LN1@LoadSource:

; 468  :         }
; 469  : 
; 470  :         return CMixerList::getInstance()->GetMixer(nMixerIndex);

  000ac	8b 4d ec	 mov	 ecx, DWORD PTR _nMixerIndex$143011[ebp]
  000af	51		 push	 ecx
  000b0	e8 00 00 00 00	 call	 ?getInstance@CMixerList@@SAPAV1@XZ ; CMixerList::getInstance
  000b5	8b c8		 mov	 ecx, eax
  000b7	e8 00 00 00 00	 call	 ?GetMixer@CMixerList@@QAEPAVIMixer@@J@Z ; CMixerList::GetMixer
  000bc	eb 02		 jmp	 SHORT $LN3@LoadSource
$LN2@LoadSource:

; 471  :     }
; 472  : 
; 473  :     return NULL;

  000be	33 c0		 xor	 eax, eax
$LN3@LoadSource:

; 474  : }

  000c0	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  000c3	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000ca	59		 pop	 ecx
  000cb	8b e5		 mov	 esp, ebp
  000cd	5d		 pop	 ebp
  000ce	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?LoadSourceSettingsCallback@@YAPAVIMixer@@PAX@Z$0:
  00000	8d 4d d0	 lea	 ecx, DWORD PTR $T352515[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__ehhandler$?LoadSourceSettingsCallback@@YAPAVIMixer@@PAX@Z:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a d8	 mov	 ecx, DWORD PTR [edx-40]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?LoadSourceSettingsCallback@@YAPAVIMixer@@PAX@Z
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?LoadSourceSettingsCallback@@YAPAVIMixer@@PAX@Z ENDP	; LoadSourceSettingsCallback
; Function compile flags: /Odtp
;	COMDAT ?Mixer_OnInputChange@@YAXJ@Z
_TEXT	SEGMENT
_pLineSrc$143000 = -40					; size = 4
_nActiveSourceIndex$ = -36				; size = 4
_nUniqueSourcesCount$ = -32				; size = 4
_nUniqueSources$ = -28					; size = 24
_pLineDst$ = -4						; size = 4
_nVideoInput$ = 8					; size = 4
?Mixer_OnInputChange@@YAXJ@Z PROC			; Mixer_OnInputChange, COMDAT

; 380  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 28	 sub	 esp, 40			; 00000028H

; 381  :     if (nVideoInput < 0 || nVideoInput >= g_nActiveInputsCount)

  00006	83 7d 08 00	 cmp	 DWORD PTR _nVideoInput$[ebp], 0
  0000a	7c 0b		 jl	 SHORT $LN6@Mixer_OnIn
  0000c	8b 45 08	 mov	 eax, DWORD PTR _nVideoInput$[ebp]
  0000f	3b 05 00 00 00
	00		 cmp	 eax, DWORD PTR _g_nActiveInputsCount
  00015	7c 0c		 jl	 SHORT $LN7@Mixer_OnIn
$LN6@Mixer_OnIn:

; 382  :     {
; 383  :         g_nActiveInput = -1;

  00017	c7 05 00 00 00
	00 ff ff ff ff	 mov	 DWORD PTR _g_nActiveInput, -1

; 384  :     }
; 385  :     else

  00021	eb 09		 jmp	 SHORT $LN5@Mixer_OnIn
$LN7@Mixer_OnIn:

; 386  :     {
; 387  :         g_nActiveInput = nVideoInput;

  00023	8b 4d 08	 mov	 ecx, DWORD PTR _nVideoInput$[ebp]
  00026	89 0d 00 00 00
	00		 mov	 DWORD PTR _g_nActiveInput, ecx
$LN5@Mixer_OnIn:

; 388  :     }
; 389  : 
; 390  :     IMixerLineDst* pLineDst = Mixer_GetCurrentDestination();

  0002c	e8 00 00 00 00	 call	 ?Mixer_GetCurrentDestination@@YAPAVIMixerLineDst@@XZ ; Mixer_GetCurrentDestination
  00031	89 45 fc	 mov	 DWORD PTR _pLineDst$[ebp], eax

; 391  : 
; 392  :     if (pLineDst == NULL)

  00034	83 7d fc 00	 cmp	 DWORD PTR _pLineDst$[ebp], 0
  00038	75 05		 jne	 SHORT $LN4@Mixer_OnIn

; 393  :     {
; 394  :         return;

  0003a	e9 c4 00 00 00	 jmp	 $LN8@Mixer_OnIn
$LN4@Mixer_OnIn:

; 395  :     }
; 396  : 
; 397  :     long nActiveSourceIndex = -1;

  0003f	c7 45 dc ff ff
	ff ff		 mov	 DWORD PTR _nActiveSourceIndex$[ebp], -1

; 398  : 
; 399  :     if (g_nActiveInput != -1)

  00046	83 3d 00 00 00
	00 ff		 cmp	 DWORD PTR _g_nActiveInput, -1
  0004d	74 10		 je	 SHORT $LN3@Mixer_OnIn

; 400  :     {
; 401  :         nActiveSourceIndex = g_nSourceIndexes[g_nActiveInput];

  0004f	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR _g_nActiveInput
  00055	8b 04 95 00 00
	00 00		 mov	 eax, DWORD PTR _g_nSourceIndexes[edx*4]
  0005c	89 45 dc	 mov	 DWORD PTR _nActiveSourceIndex$[ebp], eax
$LN3@Mixer_OnIn:

; 402  :     }
; 403  : 
; 404  :     long nUniqueSources[MAX_SUPPORTED_INPUTS];
; 405  :     long nUniqueSourcesCount;
; 406  : 
; 407  :     nUniqueSourcesCount = LongArrayUnique(g_nSourceIndexes, g_nActiveInputsCount, nUniqueSources);

  0005f	8d 4d e4	 lea	 ecx, DWORD PTR _nUniqueSources$[ebp]
  00062	51		 push	 ecx
  00063	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR _g_nActiveInputsCount
  00069	52		 push	 edx
  0006a	68 00 00 00 00	 push	 OFFSET _g_nSourceIndexes
  0006f	e8 00 00 00 00	 call	 ?LongArrayUnique@@YAJPBJJPAJ@Z ; LongArrayUnique
  00074	83 c4 0c	 add	 esp, 12			; 0000000cH
  00077	89 45 e0	 mov	 DWORD PTR _nUniqueSourcesCount$[ebp], eax

; 408  :     LongArraySubstract(nUniqueSources, &nUniqueSourcesCount, &nActiveSourceIndex, 1);

  0007a	6a 01		 push	 1
  0007c	8d 45 dc	 lea	 eax, DWORD PTR _nActiveSourceIndex$[ebp]
  0007f	50		 push	 eax
  00080	8d 4d e0	 lea	 ecx, DWORD PTR _nUniqueSourcesCount$[ebp]
  00083	51		 push	 ecx
  00084	8d 55 e4	 lea	 edx, DWORD PTR _nUniqueSources$[ebp]
  00087	52		 push	 edx
  00088	e8 00 00 00 00	 call	 ?LongArraySubstract@@YAXPAJ0PBJJ@Z ; LongArraySubstract
  0008d	83 c4 10	 add	 esp, 16			; 00000010H

; 409  : 
; 410  :     // Mute mixer lines for inactive lines
; 411  :     Mixer_MuteInputs(g_nDestinationIndex, nUniqueSources, nUniqueSourcesCount, TRUE);

  00090	6a 01		 push	 1
  00092	8b 45 e0	 mov	 eax, DWORD PTR _nUniqueSourcesCount$[ebp]
  00095	50		 push	 eax
  00096	8d 4d e4	 lea	 ecx, DWORD PTR _nUniqueSources$[ebp]
  00099	51		 push	 ecx
  0009a	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR _g_nDestinationIndex
  000a0	52		 push	 edx
  000a1	e8 00 00 00 00	 call	 ?Mixer_MuteInputs@@YAXJPAJJH@Z ; Mixer_MuteInputs
  000a6	83 c4 10	 add	 esp, 16			; 00000010H

; 412  : 
; 413  :     if (nActiveSourceIndex != -1)

  000a9	83 7d dc ff	 cmp	 DWORD PTR _nActiveSourceIndex$[ebp], -1
  000ad	74 54		 je	 SHORT $LN8@Mixer_OnIn

; 414  :     {
; 415  :         IMixerLineSrc* pLineSrc = pLineDst->GetSourceLine(nActiveSourceIndex);

  000af	8b 45 dc	 mov	 eax, DWORD PTR _nActiveSourceIndex$[ebp]
  000b2	50		 push	 eax
  000b3	8b 4d fc	 mov	 ecx, DWORD PTR _pLineDst$[ebp]
  000b6	8b 11		 mov	 edx, DWORD PTR [ecx]
  000b8	8b 4d fc	 mov	 ecx, DWORD PTR _pLineDst$[ebp]
  000bb	8b 42 0c	 mov	 eax, DWORD PTR [edx+12]
  000be	ff d0		 call	 eax
  000c0	89 45 d8	 mov	 DWORD PTR _pLineSrc$143000[ebp], eax

; 416  : 
; 417  :         if (pLineSrc != NULL)

  000c3	83 7d d8 00	 cmp	 DWORD PTR _pLineSrc$143000[ebp], 0
  000c7	74 3a		 je	 SHORT $LN8@Mixer_OnIn

; 418  :         {
; 419  :             pLineSrc->SetMute(Audio_IsMute());

  000c9	e8 00 00 00 00	 call	 ?Audio_IsMute@@YAHXZ	; Audio_IsMute
  000ce	50		 push	 eax
  000cf	8b 4d d8	 mov	 ecx, DWORD PTR _pLineSrc$143000[ebp]
  000d2	8b 11		 mov	 edx, DWORD PTR [ecx]
  000d4	8b 4d d8	 mov	 ecx, DWORD PTR _pLineSrc$143000[ebp]
  000d7	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  000da	ff d0		 call	 eax

; 420  : 
; 421  :             // We do not store volume values
; 422  :             // pLineSrc->SetVolume(Volume);
; 423  : 
; 424  :             EventCollector->RaiseEvent(NULL, EVENT_MIXERVOLUME, -1, pLineSrc->GetVolume());

  000dc	6a 00		 push	 0
  000de	8b 4d d8	 mov	 ecx, DWORD PTR _pLineSrc$143000[ebp]
  000e1	8b 11		 mov	 edx, DWORD PTR [ecx]
  000e3	8b 4d d8	 mov	 ecx, DWORD PTR _pLineSrc$143000[ebp]
  000e6	8b 42 14	 mov	 eax, DWORD PTR [edx+20]
  000e9	ff d0		 call	 eax
  000eb	50		 push	 eax
  000ec	6a ff		 push	 -1
  000ee	6a 0f		 push	 15			; 0000000fH
  000f0	6a 00		 push	 0
  000f2	b9 00 00 00 00	 mov	 ecx, OFFSET ?EventCollector@@3V?$SmartPtr@VCEventCollector@@@@A ; EventCollector
  000f7	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCEventCollector@@@@QBEPAVCEventCollector@@XZ ; SmartPtr<CEventCollector>::operator->
  000fc	8b c8		 mov	 ecx, eax
  000fe	e8 00 00 00 00	 call	 ?RaiseEvent@CEventCollector@@QAEXPAVCEventObject@@W4eEventType@@JJPAW43@@Z ; CEventCollector::RaiseEvent
$LN8@Mixer_OnIn:

; 425  :         }
; 426  :     }
; 427  : }

  00103	8b e5		 mov	 esp, ebp
  00105	5d		 pop	 ebp
  00106	c3		 ret	 0
?Mixer_OnInputChange@@YAXJ@Z ENDP			; Mixer_OnInputChange
_TEXT	ENDS
PUBLIC	?Mixer_AdjustVolume@@YAXJ@Z			; Mixer_AdjustVolume
; Function compile flags: /Odtp
;	COMDAT ?Mixer_AdjustVolume@@YAXJ@Z
_TEXT	SEGMENT
_newVolume$142924 = -12					; size = 4
_oldVolume$142923 = -8					; size = 4
_pLineSrc$ = -4						; size = 4
_delta$ = 8						; size = 4
?Mixer_AdjustVolume@@YAXJ@Z PROC			; Mixer_AdjustVolume, COMDAT

; 218  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH

; 219  :     IMixerLineSrc* pLineSrc = Mixer_GetCurrentActiveSource();

  00006	e8 00 00 00 00	 call	 ?Mixer_GetCurrentActiveSource@@YAPAVIMixerLineSrc@@XZ ; Mixer_GetCurrentActiveSource
  0000b	89 45 fc	 mov	 DWORD PTR _pLineSrc$[ebp], eax

; 220  : 
; 221  :     if (pLineSrc != NULL)

  0000e	83 7d fc 00	 cmp	 DWORD PTR _pLineSrc$[ebp], 0
  00012	74 61		 je	 SHORT $LN5@Mixer_Adju

; 222  :     {
; 223  :         long oldVolume = pLineSrc->GetVolume();

  00014	8b 45 fc	 mov	 eax, DWORD PTR _pLineSrc$[ebp]
  00017	8b 10		 mov	 edx, DWORD PTR [eax]
  00019	8b 4d fc	 mov	 ecx, DWORD PTR _pLineSrc$[ebp]
  0001c	8b 42 14	 mov	 eax, DWORD PTR [edx+20]
  0001f	ff d0		 call	 eax
  00021	89 45 f8	 mov	 DWORD PTR _oldVolume$142923[ebp], eax

; 224  :         long newVolume = oldVolume + delta;

  00024	8b 4d f8	 mov	 ecx, DWORD PTR _oldVolume$142923[ebp]
  00027	03 4d 08	 add	 ecx, DWORD PTR _delta$[ebp]
  0002a	89 4d f4	 mov	 DWORD PTR _newVolume$142924[ebp], ecx

; 225  : 
; 226  :         if (newVolume < 0)

  0002d	79 09		 jns	 SHORT $LN3@Mixer_Adju

; 227  :         {
; 228  :             newVolume = 0;

  0002f	c7 45 f4 00 00
	00 00		 mov	 DWORD PTR _newVolume$142924[ebp], 0
  00036	eb 0d		 jmp	 SHORT $LN2@Mixer_Adju
$LN3@Mixer_Adju:

; 229  :         }
; 230  :         else if (newVolume > 100)

  00038	83 7d f4 64	 cmp	 DWORD PTR _newVolume$142924[ebp], 100 ; 00000064H
  0003c	7e 07		 jle	 SHORT $LN2@Mixer_Adju

; 231  :         {
; 232  :             newVolume = 100;

  0003e	c7 45 f4 64 00
	00 00		 mov	 DWORD PTR _newVolume$142924[ebp], 100 ; 00000064H
$LN2@Mixer_Adju:

; 233  :         }
; 234  : 
; 235  :         pLineSrc->SetVolume(newVolume);

  00045	8b 55 f4	 mov	 edx, DWORD PTR _newVolume$142924[ebp]
  00048	52		 push	 edx
  00049	8b 45 fc	 mov	 eax, DWORD PTR _pLineSrc$[ebp]
  0004c	8b 10		 mov	 edx, DWORD PTR [eax]
  0004e	8b 4d fc	 mov	 ecx, DWORD PTR _pLineSrc$[ebp]
  00051	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  00054	ff d0		 call	 eax

; 236  : 
; 237  :         EventCollector->RaiseEvent(NULL, EVENT_MIXERVOLUME, oldVolume, newVolume);

  00056	6a 00		 push	 0
  00058	8b 4d f4	 mov	 ecx, DWORD PTR _newVolume$142924[ebp]
  0005b	51		 push	 ecx
  0005c	8b 55 f8	 mov	 edx, DWORD PTR _oldVolume$142923[ebp]
  0005f	52		 push	 edx
  00060	6a 0f		 push	 15			; 0000000fH
  00062	6a 00		 push	 0
  00064	b9 00 00 00 00	 mov	 ecx, OFFSET ?EventCollector@@3V?$SmartPtr@VCEventCollector@@@@A ; EventCollector
  00069	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCEventCollector@@@@QBEPAVCEventCollector@@XZ ; SmartPtr<CEventCollector>::operator->
  0006e	8b c8		 mov	 ecx, eax
  00070	e8 00 00 00 00	 call	 ?RaiseEvent@CEventCollector@@QAEXPAVCEventObject@@W4eEventType@@JJPAW43@@Z ; CEventCollector::RaiseEvent
$LN5@Mixer_Adju:

; 238  :     }
; 239  : }

  00075	8b e5		 mov	 esp, ebp
  00077	5d		 pop	 ebp
  00078	c3		 ret	 0
?Mixer_AdjustVolume@@YAXJ@Z ENDP			; Mixer_AdjustVolume
_TEXT	ENDS
PUBLIC	?Mixer_SetVolume@@YAXJ@Z			; Mixer_SetVolume
; Function compile flags: /Odtp
;	COMDAT ?Mixer_SetVolume@@YAXJ@Z
_TEXT	SEGMENT
_oldVolume$142910 = -8					; size = 4
_pLineSrc$ = -4						; size = 4
_newVolume$ = 8						; size = 4
?Mixer_SetVolume@@YAXJ@Z PROC				; Mixer_SetVolume, COMDAT

; 181  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8

; 182  :     IMixerLineSrc* pLineSrc = Mixer_GetCurrentActiveSource();

  00006	e8 00 00 00 00	 call	 ?Mixer_GetCurrentActiveSource@@YAPAVIMixerLineSrc@@XZ ; Mixer_GetCurrentActiveSource
  0000b	89 45 fc	 mov	 DWORD PTR _pLineSrc$[ebp], eax

; 183  : 
; 184  :     if (pLineSrc != NULL)

  0000e	83 7d fc 00	 cmp	 DWORD PTR _pLineSrc$[ebp], 0
  00012	74 5c		 je	 SHORT $LN5@Mixer_SetV@3

; 185  :     {
; 186  :         long oldVolume = pLineSrc->GetVolume();

  00014	8b 45 fc	 mov	 eax, DWORD PTR _pLineSrc$[ebp]
  00017	8b 10		 mov	 edx, DWORD PTR [eax]
  00019	8b 4d fc	 mov	 ecx, DWORD PTR _pLineSrc$[ebp]
  0001c	8b 42 14	 mov	 eax, DWORD PTR [edx+20]
  0001f	ff d0		 call	 eax
  00021	89 45 f8	 mov	 DWORD PTR _oldVolume$142910[ebp], eax

; 187  : 
; 188  :         if (newVolume < 0)

  00024	83 7d 08 00	 cmp	 DWORD PTR _newVolume$[ebp], 0
  00028	7d 09		 jge	 SHORT $LN3@Mixer_SetV@3

; 189  :         {
; 190  :             newVolume = 0;

  0002a	c7 45 08 00 00
	00 00		 mov	 DWORD PTR _newVolume$[ebp], 0
  00031	eb 0d		 jmp	 SHORT $LN2@Mixer_SetV@3
$LN3@Mixer_SetV@3:

; 191  :         }
; 192  :         else if (newVolume > 100)

  00033	83 7d 08 64	 cmp	 DWORD PTR _newVolume$[ebp], 100 ; 00000064H
  00037	7e 07		 jle	 SHORT $LN2@Mixer_SetV@3

; 193  :         {
; 194  :             newVolume = 100;

  00039	c7 45 08 64 00
	00 00		 mov	 DWORD PTR _newVolume$[ebp], 100 ; 00000064H
$LN2@Mixer_SetV@3:

; 195  :         }
; 196  : 
; 197  :         pLineSrc->SetVolume(newVolume);

  00040	8b 4d 08	 mov	 ecx, DWORD PTR _newVolume$[ebp]
  00043	51		 push	 ecx
  00044	8b 55 fc	 mov	 edx, DWORD PTR _pLineSrc$[ebp]
  00047	8b 02		 mov	 eax, DWORD PTR [edx]
  00049	8b 4d fc	 mov	 ecx, DWORD PTR _pLineSrc$[ebp]
  0004c	8b 50 10	 mov	 edx, DWORD PTR [eax+16]
  0004f	ff d2		 call	 edx

; 198  : 
; 199  :         EventCollector->RaiseEvent(NULL, EVENT_MIXERVOLUME, oldVolume, newVolume);

  00051	6a 00		 push	 0
  00053	8b 45 08	 mov	 eax, DWORD PTR _newVolume$[ebp]
  00056	50		 push	 eax
  00057	8b 4d f8	 mov	 ecx, DWORD PTR _oldVolume$142910[ebp]
  0005a	51		 push	 ecx
  0005b	6a 0f		 push	 15			; 0000000fH
  0005d	6a 00		 push	 0
  0005f	b9 00 00 00 00	 mov	 ecx, OFFSET ?EventCollector@@3V?$SmartPtr@VCEventCollector@@@@A ; EventCollector
  00064	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCEventCollector@@@@QBEPAVCEventCollector@@XZ ; SmartPtr<CEventCollector>::operator->
  00069	8b c8		 mov	 ecx, eax
  0006b	e8 00 00 00 00	 call	 ?RaiseEvent@CEventCollector@@QAEXPAVCEventObject@@W4eEventType@@JJPAW43@@Z ; CEventCollector::RaiseEvent
$LN5@Mixer_SetV@3:

; 200  :     }
; 201  : }

  00070	8b e5		 mov	 esp, ebp
  00072	5d		 pop	 ebp
  00073	c3		 ret	 0
?Mixer_SetVolume@@YAXJ@Z ENDP				; Mixer_SetVolume
; Function compile flags: /Odtp
;	COMDAT ?Mixer_DoSettingsTransition@@YAXP6APAVIMixer@@PAX@Z0@Z
_TEXT	SEGMENT
_nOldSourcesCount$ = -64				; size = 4
_nNewSources$ = -60					; size = 24
_nOldSources$ = -36					; size = 24
_pNewMixer$ = -12					; size = 4
_nNewSourcesCount$ = -8					; size = 4
_nOldDestination$ = -4					; size = 4
_pSyncfunc$ = 8						; size = 4
_pContext$ = 12						; size = 4
?Mixer_DoSettingsTransition@@YAXP6APAVIMixer@@PAX@Z0@Z PROC ; Mixer_DoSettingsTransition, COMDAT

; 633  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 40	 sub	 esp, 64			; 00000040H

; 634  :     long nOldDestination = -1;

  00006	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR _nOldDestination$[ebp], -1

; 635  :     long nOldSources[MAX_SUPPORTED_INPUTS];
; 636  :     long nOldSourcesCount = 0;

  0000d	c7 45 c0 00 00
	00 00		 mov	 DWORD PTR _nOldSourcesCount$[ebp], 0

; 637  :     long nNewSources[MAX_SUPPORTED_INPUTS];
; 638  :     long nNewSourcesCount = 0;

  00014	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _nNewSourcesCount$[ebp], 0

; 639  : 
; 640  :     // Hold onto the old mixer info
; 641  :     if (g_bUseMixer && g_pCurrentMixer != NULL && g_nDestinationIndex != -1)

  0001b	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _g_bUseMixer, 0
  00022	74 35		 je	 SHORT $LN7@Mixer_DoSe
  00024	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _g_pCurrentMixer, 0
  0002b	74 2c		 je	 SHORT $LN7@Mixer_DoSe
  0002d	83 3d 00 00 00
	00 ff		 cmp	 DWORD PTR _g_nDestinationIndex, -1
  00034	74 23		 je	 SHORT $LN7@Mixer_DoSe

; 642  :     {
; 643  :         nOldDestination = g_nDestinationIndex;

  00036	a1 00 00 00 00	 mov	 eax, DWORD PTR _g_nDestinationIndex
  0003b	89 45 fc	 mov	 DWORD PTR _nOldDestination$[ebp], eax

; 644  :         nOldSourcesCount = LongArrayUnique(g_nSourceIndexes, g_nActiveInputsCount, nOldSources);

  0003e	8d 4d dc	 lea	 ecx, DWORD PTR _nOldSources$[ebp]
  00041	51		 push	 ecx
  00042	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR _g_nActiveInputsCount
  00048	52		 push	 edx
  00049	68 00 00 00 00	 push	 OFFSET _g_nSourceIndexes
  0004e	e8 00 00 00 00	 call	 ?LongArrayUnique@@YAJPBJJPAJ@Z ; LongArrayUnique
  00053	83 c4 0c	 add	 esp, 12			; 0000000cH
  00056	89 45 c0	 mov	 DWORD PTR _nOldSourcesCount$[ebp], eax
$LN7@Mixer_DoSe:

; 645  :     }
; 646  : 
; 647  :     // Synchronize all new settings except g_pCurrentMixer
; 648  :     IMixer* pNewMixer = (pSyncfunc)(pContext);

  00059	8b 45 0c	 mov	 eax, DWORD PTR _pContext$[ebp]
  0005c	50		 push	 eax
  0005d	ff 55 08	 call	 DWORD PTR _pSyncfunc$[ebp]
  00060	83 c4 04	 add	 esp, 4
  00063	89 45 f4	 mov	 DWORD PTR _pNewMixer$[ebp], eax

; 649  : 
; 650  :     // Check the new mixer info
; 651  :     if (g_bUseMixer && pNewMixer != NULL && g_nDestinationIndex != -1)

  00066	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _g_bUseMixer, 0
  0006d	74 58		 je	 SHORT $LN6@Mixer_DoSe
  0006f	83 7d f4 00	 cmp	 DWORD PTR _pNewMixer$[ebp], 0
  00073	74 52		 je	 SHORT $LN6@Mixer_DoSe
  00075	83 3d 00 00 00
	00 ff		 cmp	 DWORD PTR _g_nDestinationIndex, -1
  0007c	74 49		 je	 SHORT $LN6@Mixer_DoSe

; 652  :     {
; 653  :         nNewSourcesCount = LongArrayUnique(g_nSourceIndexes, g_nActiveInputsCount, nNewSources);

  0007e	8d 4d c4	 lea	 ecx, DWORD PTR _nNewSources$[ebp]
  00081	51		 push	 ecx
  00082	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR _g_nActiveInputsCount
  00088	52		 push	 edx
  00089	68 00 00 00 00	 push	 OFFSET _g_nSourceIndexes
  0008e	e8 00 00 00 00	 call	 ?LongArrayUnique@@YAJPBJJPAJ@Z ; LongArrayUnique
  00093	83 c4 0c	 add	 esp, 12			; 0000000cH
  00096	89 45 f8	 mov	 DWORD PTR _nNewSourcesCount$[ebp], eax

; 654  : 
; 655  :         // Compare the old with the new mixer info
; 656  :         if (pNewMixer == g_pCurrentMixer && g_nDestinationIndex == nOldDestination)

  00099	8b 45 f4	 mov	 eax, DWORD PTR _pNewMixer$[ebp]
  0009c	3b 05 00 00 00
	00		 cmp	 eax, DWORD PTR _g_pCurrentMixer
  000a2	75 23		 jne	 SHORT $LN6@Mixer_DoSe
  000a4	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_nDestinationIndex
  000aa	3b 4d fc	 cmp	 ecx, DWORD PTR _nOldDestination$[ebp]
  000ad	75 18		 jne	 SHORT $LN6@Mixer_DoSe

; 657  :         {
; 658  :             LongArrayDivide(nOldSources, &nOldSourcesCount, nNewSources, &nNewSourcesCount);

  000af	8d 55 f8	 lea	 edx, DWORD PTR _nNewSourcesCount$[ebp]
  000b2	52		 push	 edx
  000b3	8d 45 c4	 lea	 eax, DWORD PTR _nNewSources$[ebp]
  000b6	50		 push	 eax
  000b7	8d 4d c0	 lea	 ecx, DWORD PTR _nOldSourcesCount$[ebp]
  000ba	51		 push	 ecx
  000bb	8d 55 dc	 lea	 edx, DWORD PTR _nOldSources$[ebp]
  000be	52		 push	 edx
  000bf	e8 00 00 00 00	 call	 ?LongArrayDivide@@YAXPAJ000@Z ; LongArrayDivide
  000c4	83 c4 10	 add	 esp, 16			; 00000010H
$LN6@Mixer_DoSe:

; 659  :         }
; 660  :     }
; 661  : 
; 662  :     // Reset the no longer used inputs
; 663  :     if (g_bResetOnExit)

  000c7	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _g_bResetOnExit, 0
  000ce	74 18		 je	 SHORT $LN4@Mixer_DoSe

; 664  :     {
; 665  :         Mixer_StoreRestoreInputs(nOldDestination, nOldSources, nOldSourcesCount, TRUE);

  000d0	6a 01		 push	 1
  000d2	8b 45 c0	 mov	 eax, DWORD PTR _nOldSourcesCount$[ebp]
  000d5	50		 push	 eax
  000d6	8d 4d dc	 lea	 ecx, DWORD PTR _nOldSources$[ebp]
  000d9	51		 push	 ecx
  000da	8b 55 fc	 mov	 edx, DWORD PTR _nOldDestination$[ebp]
  000dd	52		 push	 edx
  000de	e8 00 00 00 00	 call	 ?Mixer_StoreRestoreInputs@@YAXJPAJJH@Z ; Mixer_StoreRestoreInputs
  000e3	83 c4 10	 add	 esp, 16			; 00000010H

; 666  :     }
; 667  :     else

  000e6	eb 16		 jmp	 SHORT $LN3@Mixer_DoSe
$LN4@Mixer_DoSe:

; 668  :     {
; 669  :         Mixer_MuteInputs(nOldDestination, nOldSources, nOldSourcesCount, TRUE);

  000e8	6a 01		 push	 1
  000ea	8b 45 c0	 mov	 eax, DWORD PTR _nOldSourcesCount$[ebp]
  000ed	50		 push	 eax
  000ee	8d 4d dc	 lea	 ecx, DWORD PTR _nOldSources$[ebp]
  000f1	51		 push	 ecx
  000f2	8b 55 fc	 mov	 edx, DWORD PTR _nOldDestination$[ebp]
  000f5	52		 push	 edx
  000f6	e8 00 00 00 00	 call	 ?Mixer_MuteInputs@@YAXJPAJJH@Z ; Mixer_MuteInputs
  000fb	83 c4 10	 add	 esp, 16			; 00000010H
$LN3@Mixer_DoSe:

; 670  :     }
; 671  : 
; 672  :     // Synchronize g_pCurrentMixer
; 673  :     if (g_pCurrentMixer != pNewMixer)

  000fe	a1 00 00 00 00	 mov	 eax, DWORD PTR _g_pCurrentMixer
  00103	3b 45 f4	 cmp	 eax, DWORD PTR _pNewMixer$[ebp]
  00106	74 09		 je	 SHORT $LN2@Mixer_DoSe

; 674  :     {
; 675  :         g_pCurrentMixer = pNewMixer;

  00108	8b 4d f4	 mov	 ecx, DWORD PTR _pNewMixer$[ebp]
  0010b	89 0d 00 00 00
	00		 mov	 DWORD PTR _g_pCurrentMixer, ecx
$LN2@Mixer_DoSe:

; 676  :     }
; 677  : 
; 678  :     // Setup the new inputs
; 679  :     if (g_bUseMixer)

  00111	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _g_bUseMixer, 0
  00118	74 28		 je	 SHORT $LN8@Mixer_DoSe

; 680  :     {
; 681  :         Mixer_StoreRestoreInputs(g_nDestinationIndex, nNewSources, nNewSourcesCount, FALSE);

  0011a	6a 00		 push	 0
  0011c	8b 55 f8	 mov	 edx, DWORD PTR _nNewSourcesCount$[ebp]
  0011f	52		 push	 edx
  00120	8d 45 c4	 lea	 eax, DWORD PTR _nNewSources$[ebp]
  00123	50		 push	 eax
  00124	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_nDestinationIndex
  0012a	51		 push	 ecx
  0012b	e8 00 00 00 00	 call	 ?Mixer_StoreRestoreInputs@@YAXJPAJJH@Z ; Mixer_StoreRestoreInputs
  00130	83 c4 10	 add	 esp, 16			; 00000010H

; 682  :         Mixer_OnInputChange(g_nActiveInput);

  00133	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR _g_nActiveInput
  00139	52		 push	 edx
  0013a	e8 00 00 00 00	 call	 ?Mixer_OnInputChange@@YAXJ@Z ; Mixer_OnInputChange
  0013f	83 c4 04	 add	 esp, 4
$LN8@Mixer_DoSe:

; 683  :     }
; 684  : }

  00142	8b e5		 mov	 esp, ebp
  00144	5d		 pop	 ebp
  00145	c3		 ret	 0
?Mixer_DoSettingsTransition@@YAXP6APAVIMixer@@PAX@Z0@Z ENDP ; Mixer_DoSettingsTransition
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?Mixer_OnSourceChange@@YAXPAVCSource@@@Z
_TEXT	SEGMENT
_pSource$ = 8						; size = 4
?Mixer_OnSourceChange@@YAXPAVCSource@@@Z PROC		; Mixer_OnSourceChange, COMDAT

; 443  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 444  :     Mixer_DoSettingsTransition(LoadSourceSettingsCallback, pSource);

  00003	8b 45 08	 mov	 eax, DWORD PTR _pSource$[ebp]
  00006	50		 push	 eax
  00007	68 00 00 00 00	 push	 OFFSET ?LoadSourceSettingsCallback@@YAPAVIMixer@@PAX@Z ; LoadSourceSettingsCallback
  0000c	e8 00 00 00 00	 call	 ?Mixer_DoSettingsTransition@@YAXP6APAVIMixer@@PAX@Z0@Z ; Mixer_DoSettingsTransition
  00011	83 c4 08	 add	 esp, 8

; 445  : }

  00014	5d		 pop	 ebp
  00015	c3		 ret	 0
?Mixer_OnSourceChange@@YAXPAVCSource@@@Z ENDP		; Mixer_OnSourceChange
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?Mixer_EventOnChangeNotification@@YAXPAXPAVCEventObject@@W4eEventType@@JJPAW42@@Z
_TEXT	SEGMENT
tv64 = -4						; size = 4
___formal$ = 8						; size = 4
___formal$ = 12						; size = 4
_EventType$ = 16					; size = 4
_OldValue$ = 20						; size = 4
_NewValue$ = 24						; size = 4
___formal$ = 28						; size = 4
?Mixer_EventOnChangeNotification@@YAXPAXPAVCEventObject@@W4eEventType@@JJPAW42@@Z PROC ; Mixer_EventOnChangeNotification, COMDAT

; 362  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 363  :     switch (EventType)

  00004	8b 45 10	 mov	 eax, DWORD PTR _EventType$[ebp]
  00007	89 45 fc	 mov	 DWORD PTR tv64[ebp], eax
  0000a	83 7d fc 04	 cmp	 DWORD PTR tv64[ebp], 4
  0000e	74 08		 je	 SHORT $LN3@Mixer_Even
  00010	83 7d fc 06	 cmp	 DWORD PTR tv64[ebp], 6
  00014	74 10		 je	 SHORT $LN2@Mixer_Even
  00016	eb 1a		 jmp	 SHORT $LN6@Mixer_Even
$LN3@Mixer_Even:

; 364  :     {
; 365  :     case EVENT_SOURCE_CHANGE:
; 366  :         Mixer_OnSourceChange((CSource*)NewValue);

  00018	8b 4d 18	 mov	 ecx, DWORD PTR _NewValue$[ebp]
  0001b	51		 push	 ecx
  0001c	e8 00 00 00 00	 call	 ?Mixer_OnSourceChange@@YAXPAVCSource@@@Z ; Mixer_OnSourceChange
  00021	83 c4 04	 add	 esp, 4

; 367  :         break;

  00024	eb 0c		 jmp	 SHORT $LN6@Mixer_Even
$LN2@Mixer_Even:

; 368  : 
; 369  :     case EVENT_VIDEOINPUT_CHANGE:
; 370  :         Mixer_OnInputChange(NewValue);

  00026	8b 55 18	 mov	 edx, DWORD PTR _NewValue$[ebp]
  00029	52		 push	 edx
  0002a	e8 00 00 00 00	 call	 ?Mixer_OnInputChange@@YAXJ@Z ; Mixer_OnInputChange
  0002f	83 c4 04	 add	 esp, 4
$LN6@Mixer_Even:

; 371  :         break;
; 372  : 
; 373  :     default:
; 374  :         break;
; 375  :     }
; 376  : }

  00032	8b e5		 mov	 esp, ebp
  00034	5d		 pop	 ebp
  00035	c3		 ret	 0
?Mixer_EventOnChangeNotification@@YAXPAXPAVCEventObject@@W4eEventType@@JJPAW42@@Z ENDP ; Mixer_EventOnChangeNotification
_TEXT	ENDS
PUBLIC	?Mixer_Volume_Down@@YAXXZ			; Mixer_Volume_Down
; Function compile flags: /Odtp
;	COMDAT ?Mixer_Volume_Down@@YAXXZ
_TEXT	SEGMENT
?Mixer_Volume_Down@@YAXXZ PROC				; Mixer_Volume_Down, COMDAT

; 249  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 250  :     Mixer_AdjustVolume(-5);

  00003	6a fb		 push	 -5			; fffffffbH
  00005	e8 00 00 00 00	 call	 ?Mixer_AdjustVolume@@YAXJ@Z ; Mixer_AdjustVolume
  0000a	83 c4 04	 add	 esp, 4

; 251  : }

  0000d	5d		 pop	 ebp
  0000e	c3		 ret	 0
?Mixer_Volume_Down@@YAXXZ ENDP				; Mixer_Volume_Down
_TEXT	ENDS
PUBLIC	?Mixer_Volume_Up@@YAXXZ				; Mixer_Volume_Up
; Function compile flags: /Odtp
;	COMDAT ?Mixer_Volume_Up@@YAXXZ
_TEXT	SEGMENT
?Mixer_Volume_Up@@YAXXZ PROC				; Mixer_Volume_Up, COMDAT

; 243  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 244  :     Mixer_AdjustVolume(5);

  00003	6a 05		 push	 5
  00005	e8 00 00 00 00	 call	 ?Mixer_AdjustVolume@@YAXJ@Z ; Mixer_AdjustVolume
  0000a	83 c4 04	 add	 esp, 4

; 245  : }

  0000d	5d		 pop	 ebp
  0000e	c3		 ret	 0
?Mixer_Volume_Up@@YAXXZ ENDP				; Mixer_Volume_Up
_TEXT	ENDS
PUBLIC	?Mixer_Exit@@YAXXZ				; Mixer_Exit
; Function compile flags: /Odtp
;	COMDAT ?Mixer_Exit@@YAXXZ
_TEXT	SEGMENT
?Mixer_Exit@@YAXXZ PROC					; Mixer_Exit, COMDAT

; 124  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 125  :     EventCollector->Unregister(Mixer_EventOnChangeNotification, NULL);

  00003	6a 00		 push	 0
  00005	68 00 00 00 00	 push	 OFFSET ?Mixer_EventOnChangeNotification@@YAXPAXPAVCEventObject@@W4eEventType@@JJPAW42@@Z ; Mixer_EventOnChangeNotification
  0000a	b9 00 00 00 00	 mov	 ecx, OFFSET ?EventCollector@@3V?$SmartPtr@VCEventCollector@@@@A ; EventCollector
  0000f	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCEventCollector@@@@QBEPAVCEventCollector@@XZ ; SmartPtr<CEventCollector>::operator->
  00014	8b c8		 mov	 ecx, eax
  00016	e8 00 00 00 00	 call	 ?Unregister@CEventCollector@@QAEXP6AXPAXPAVCEventObject@@W4eEventType@@JJPAW43@@Z0@Z ; CEventCollector::Unregister

; 126  : 
; 127  :     // This call takes care of all necessary changes
; 128  :     Mixer_OnSourceChange(NULL);

  0001b	6a 00		 push	 0
  0001d	e8 00 00 00 00	 call	 ?Mixer_OnSourceChange@@YAXPAVCSource@@@Z ; Mixer_OnSourceChange
  00022	83 c4 04	 add	 esp, 4

; 129  : }

  00025	5d		 pop	 ebp
  00026	c3		 ret	 0
?Mixer_Exit@@YAXXZ ENDP					; Mixer_Exit
_TEXT	ENDS
PUBLIC	?Mixer_Init@@YAXXZ				; Mixer_Init
; Function compile flags: /Odtp
;	COMDAT ?Mixer_Init@@YAXXZ
_TEXT	SEGMENT
_EventList$ = -12					; size = 12
?Mixer_Init@@YAXXZ PROC					; Mixer_Init, COMDAT

; 111  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH

; 112  :     eEventType EventList[] = { EVENT_SOURCE_CHANGE,

  00006	c7 45 f4 04 00
	00 00		 mov	 DWORD PTR _EventList$[ebp], 4

; 113  :                                EVENT_VIDEOINPUT_CHANGE,

  0000d	c7 45 f8 06 00
	00 00		 mov	 DWORD PTR _EventList$[ebp+4], 6

; 114  :                                EVENT_NONE };

  00014	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _EventList$[ebp+8], 0

; 115  : 
; 116  :     EventCollector->Register(Mixer_EventOnChangeNotification, NULL, EventList);

  0001b	8d 45 f4	 lea	 eax, DWORD PTR _EventList$[ebp]
  0001e	50		 push	 eax
  0001f	6a 00		 push	 0
  00021	68 00 00 00 00	 push	 OFFSET ?Mixer_EventOnChangeNotification@@YAXPAXPAVCEventObject@@W4eEventType@@JJPAW42@@Z ; Mixer_EventOnChangeNotification
  00026	b9 00 00 00 00	 mov	 ecx, OFFSET ?EventCollector@@3V?$SmartPtr@VCEventCollector@@@@A ; EventCollector
  0002b	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCEventCollector@@@@QBEPAVCEventCollector@@XZ ; SmartPtr<CEventCollector>::operator->
  00030	8b c8		 mov	 ecx, eax
  00032	e8 00 00 00 00	 call	 ?Register@CEventCollector@@QAEXP6AXPAXPAVCEventObject@@W4eEventType@@JJPAW43@@Z03@Z ; CEventCollector::Register

; 117  : 
; 118  :     // This call takes care of all necessary initializations
; 119  :     Mixer_OnSourceChange(Providers_GetCurrentSource());

  00037	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  0003c	50		 push	 eax
  0003d	e8 00 00 00 00	 call	 ?Mixer_OnSourceChange@@YAXPAVCSource@@@Z ; Mixer_OnSourceChange
  00042	83 c4 04	 add	 esp, 4

; 120  : }

  00045	8b e5		 mov	 esp, ebp
  00047	5d		 pop	 ebp
  00048	c3		 ret	 0
?Mixer_Init@@YAXXZ ENDP					; Mixer_Init
PUBLIC	?MixerSetupProc@@YGHPAUHWND__@@IIJ@Z		; MixerSetupProc
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?MixerSetupProc@@YGHPAUHWND__@@IIJ@Z DD 0ffffffffH
	DD	00H
	DD	00H
	DD	FLAT:__unwindfunclet$?MixerSetupProc@@YGHPAUHWND__@@IIJ@Z$2
	DD	0ffffffffH
	DD	00H
__catchsym$?MixerSetupProc@@YGHPAUHWND__@@IIJ@Z$3 DD 00H
	DD	00H
	DD	00H
	DD	FLAT:__catch$?MixerSetupProc@@YGHPAUHWND__@@IIJ@Z$0
__tryblocktable$?MixerSetupProc@@YGHPAUHWND__@@IIJ@Z DD 00H
	DD	01H
	DD	02H
	DD	01H
	DD	FLAT:__catchsym$?MixerSetupProc@@YGHPAUHWND__@@IIJ@Z$3
__ehfuncinfo$?MixerSetupProc@@YGHPAUHWND__@@IIJ@Z DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$?MixerSetupProc@@YGHPAUHWND__@@IIJ@Z
	DD	01H
	DD	FLAT:__tryblocktable$?MixerSetupProc@@YGHPAUHWND__@@IIJ@Z
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?MixerSetupProc@@YGHPAUHWND__@@IIJ@Z
_TEXT	SEGMENT
tv191 = -52						; size = 4
tv143 = -48						; size = 4
tv64 = -44						; size = 4
$T359282 = -40						; size = 4
$T359281 = -36						; size = 4
_index$143203 = -32					; size = 4
_nIndex$143183 = -28					; size = 4
_nIndex$143154 = -24					; size = 4
_i$ = -20						; size = 4
__$EHRec$ = -16						; size = 16
_hDlg$ = 8						; size = 4
_message$ = 12						; size = 4
_wParam$ = 16						; size = 4
_lParam$ = 20						; size = 4
?MixerSetupProc@@YGHPAUHWND__@@IIJ@Z PROC		; MixerSetupProc, COMDAT

; 720  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?MixerSetupProc@@YGHPAUHWND__@@IIJ@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	83 ec 24	 sub	 esp, 36			; 00000024H
  00015	53		 push	 ebx
  00016	56		 push	 esi
  00017	57		 push	 edi
  00018	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001d	33 c5		 xor	 eax, ebp
  0001f	50		 push	 eax
  00020	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp+4]
  00023	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00029	89 65 f0	 mov	 DWORD PTR __$EHRec$[ebp], esp

; 721  :     int i;
; 722  : 
; 723  :     switch (message)

  0002c	8b 45 0c	 mov	 eax, DWORD PTR _message$[ebp]
  0002f	89 45 d4	 mov	 DWORD PTR tv64[ebp], eax
  00032	81 7d d4 10 01
	00 00		 cmp	 DWORD PTR tv64[ebp], 272 ; 00000110H
  00039	74 12		 je	 SHORT $LN49@MixerSetup
  0003b	81 7d d4 11 01
	00 00		 cmp	 DWORD PTR tv64[ebp], 273 ; 00000111H
  00042	0f 84 14 01 00
	00		 je	 $LN45@MixerSetup
  00048	e9 88 05 00 00	 jmp	 $LN50@MixerSetup
$LN49@MixerSetup:

; 724  :     {
; 725  :     case WM_INITDIALOG:
; 726  :         InitAndNameActiveInputs(hDlg);

  0004d	8b 4d 08	 mov	 ecx, DWORD PTR _hDlg$[ebp]
  00050	51		 push	 ecx
  00051	e8 00 00 00 00	 call	 ?InitAndNameActiveInputs@@YAXPAUHWND__@@@Z ; InitAndNameActiveInputs
  00056	83 c4 04	 add	 esp, 4

; 727  : 
; 728  :         // Adjust the check boxes
; 729  :         Button_SetCheck(GetDlgItem(hDlg, IDC_USE_MIXER), g_bUseMixer);

  00059	6a 00		 push	 0
  0005b	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR _g_bUseMixer
  00061	52		 push	 edx
  00062	68 f1 00 00 00	 push	 241			; 000000f1H
  00067	68 5d 07 00 00	 push	 1885			; 0000075dH
  0006c	8b 45 08	 mov	 eax, DWORD PTR _hDlg$[ebp]
  0006f	50		 push	 eax
  00070	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  00076	50		 push	 eax
  00077	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16

; 730  :         Button_SetCheck(GetDlgItem(hDlg, IDC_DISABLE_HW_MUTE), g_bNoHardwareMute);

  0007d	6a 00		 push	 0
  0007f	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_bNoHardwareMute
  00085	51		 push	 ecx
  00086	68 f1 00 00 00	 push	 241			; 000000f1H
  0008b	68 9a 05 00 00	 push	 1434			; 0000059aH
  00090	8b 55 08	 mov	 edx, DWORD PTR _hDlg$[ebp]
  00093	52		 push	 edx
  00094	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  0009a	50		 push	 eax
  0009b	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16

; 731  :         Button_SetCheck(GetDlgItem(hDlg, IDC_RESETONEXIT), g_bResetOnExit);

  000a1	6a 00		 push	 0
  000a3	a1 00 00 00 00	 mov	 eax, DWORD PTR _g_bResetOnExit
  000a8	50		 push	 eax
  000a9	68 f1 00 00 00	 push	 241			; 000000f1H
  000ae	68 e1 06 00 00	 push	 1761			; 000006e1H
  000b3	8b 4d 08	 mov	 ecx, DWORD PTR _hDlg$[ebp]
  000b6	51		 push	 ecx
  000b7	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  000bd	50		 push	 eax
  000be	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16

; 732  : 
; 733  :         if (!g_bUseMixer)

  000c4	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _g_bUseMixer, 0
  000cb	75 05		 jne	 SHORT $LN48@MixerSetup

; 734  :         {
; 735  :             // Create a temporally mixer as per user settings
; 736  :             Mixer_SetCurrentMixerFromName();

  000cd	e8 00 00 00 00	 call	 ?Mixer_SetCurrentMixerFromName@@YAXXZ ; Mixer_SetCurrentMixerFromName
$LN48@MixerSetup:

; 737  :         }
; 738  : 
; 739  :         if (g_pCurrentMixer != NULL)

  000d2	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _g_pCurrentMixer, 0
  000d9	74 22		 je	 SHORT $LN47@MixerSetup

; 740  :         {
; 741  :             RefillMixerDeviceBox(hDlg, g_pCurrentMixer->GetIndex());

  000db	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR _g_pCurrentMixer
  000e1	8b 02		 mov	 eax, DWORD PTR [edx]
  000e3	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_pCurrentMixer
  000e9	8b 50 08	 mov	 edx, DWORD PTR [eax+8]
  000ec	ff d2		 call	 edx
  000ee	50		 push	 eax
  000ef	8b 45 08	 mov	 eax, DWORD PTR _hDlg$[ebp]
  000f2	50		 push	 eax
  000f3	e8 00 00 00 00	 call	 ?RefillMixerDeviceBox@@YAXPAUHWND__@@J@Z ; RefillMixerDeviceBox
  000f8	83 c4 08	 add	 esp, 8

; 742  :         }
; 743  :         else

  000fb	eb 0e		 jmp	 SHORT $LN46@MixerSetup
$LN47@MixerSetup:

; 744  :         {
; 745  :             RefillMixerDeviceBox(hDlg, -1);

  000fd	6a ff		 push	 -1
  000ff	8b 4d 08	 mov	 ecx, DWORD PTR _hDlg$[ebp]
  00102	51		 push	 ecx
  00103	e8 00 00 00 00	 call	 ?RefillMixerDeviceBox@@YAXPAUHWND__@@J@Z ; RefillMixerDeviceBox
  00108	83 c4 08	 add	 esp, 8
$LN46@MixerSetup:

; 746  :         }
; 747  : 
; 748  :         MixerSetupProc(hDlg, WM_COMMAND, MAKEWPARAM(IDC_MIXER, CBN_SELCHANGE), 0L);

  0010b	6a 00		 push	 0
  0010d	68 8b 06 01 00	 push	 67211			; 0001068bH
  00112	68 11 01 00 00	 push	 273			; 00000111H
  00117	8b 55 08	 mov	 edx, DWORD PTR _hDlg$[ebp]
  0011a	52		 push	 edx
  0011b	e8 00 00 00 00	 call	 ?MixerSetupProc@@YGHPAUHWND__@@IIJ@Z ; MixerSetupProc

; 749  : 
; 750  :         AdjustSameForAllInputsBox(hDlg);

  00120	8b 45 08	 mov	 eax, DWORD PTR _hDlg$[ebp]
  00123	50		 push	 eax
  00124	e8 00 00 00 00	 call	 ?AdjustSameForAllInputsBox@@YAXPAUHWND__@@@Z ; AdjustSameForAllInputsBox
  00129	83 c4 04	 add	 esp, 4

; 751  : 
; 752  :         // Enable all the fields that should be enabled
; 753  :         EnableDisableMixerControls(hDlg, g_bUseMixer);

  0012c	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_bUseMixer
  00132	51		 push	 ecx
  00133	8b 55 08	 mov	 edx, DWORD PTR _hDlg$[ebp]
  00136	52		 push	 edx
  00137	e8 00 00 00 00	 call	 ?EnableDisableMixerControls@@YAXPAUHWND__@@H@Z ; EnableDisableMixerControls
  0013c	83 c4 08	 add	 esp, 8

; 754  : 
; 755  :         SetFocus(GetDlgItem(hDlg, IDC_USE_MIXER));

  0013f	68 5d 07 00 00	 push	 1885			; 0000075dH
  00144	8b 45 08	 mov	 eax, DWORD PTR _hDlg$[ebp]
  00147	50		 push	 eax
  00148	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  0014e	50		 push	 eax
  0014f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SetFocus@4

; 756  : 
; 757  :         return FALSE;

  00155	33 c0		 xor	 eax, eax
  00157	e9 7b 04 00 00	 jmp	 $LN52@MixerSetup
$LN45@MixerSetup:

; 758  : 
; 759  :     case WM_COMMAND:
; 760  :         switch (LOWORD(wParam))

  0015c	8b 4d 10	 mov	 ecx, DWORD PTR _wParam$[ebp]
  0015f	81 e1 ff ff 00
	00		 and	 ecx, 65535		; 0000ffffH
  00165	0f b7 d1	 movzx	 edx, cx
  00168	89 55 d0	 mov	 DWORD PTR tv143[ebp], edx
  0016b	81 7d d0 8b 06
	00 00		 cmp	 DWORD PTR tv143[ebp], 1675 ; 0000068bH
  00172	7f 33		 jg	 SHORT $LN56@MixerSetup
  00174	81 7d d0 8b 06
	00 00		 cmp	 DWORD PTR tv143[ebp], 1675 ; 0000068bH
  0017b	0f 84 95 00 00
	00		 je	 $LN39@MixerSetup
  00181	83 7d d0 01	 cmp	 DWORD PTR tv143[ebp], 1
  00185	0f 84 c6 03 00
	00		 je	 $LN6@MixerSetup
  0018b	83 7d d0 02	 cmp	 DWORD PTR tv143[ebp], 2
  0018f	0f 84 0e 04 00
	00		 je	 $LN5@MixerSetup
  00195	81 7d d0 c8 05
	00 00		 cmp	 DWORD PTR tv143[ebp], 1480 ; 000005c8H
  0019c	0f 84 e5 01 00
	00		 je	 $LN27@MixerSetup
  001a2	e9 2e 04 00 00	 jmp	 $LN50@MixerSetup
$LN56@MixerSetup:
  001a7	81 7d d0 a4 06
	00 00		 cmp	 DWORD PTR tv143[ebp], 1700 ; 000006a4H
  001ae	0f 84 f8 02 00
	00		 je	 $LN12@MixerSetup
  001b4	81 7d d0 5d 07
	00 00		 cmp	 DWORD PTR tv143[ebp], 1885 ; 0000075dH
  001bb	74 12		 je	 SHORT $LN42@MixerSetup
  001bd	81 7d d0 8f 1f
	00 00		 cmp	 DWORD PTR tv143[ebp], 8079 ; 00001f8fH
  001c4	0f 84 4d 03 00
	00		 je	 $LN7@MixerSetup
  001ca	e9 06 04 00 00	 jmp	 $LN50@MixerSetup
$LN42@MixerSetup:

; 761  :         {
; 762  :         case IDC_USE_MIXER:
; 763  :             if (Button_GetCheck(GetDlgItem(hDlg, IDC_USE_MIXER)) == BST_CHECKED)

  001cf	6a 00		 push	 0
  001d1	6a 00		 push	 0
  001d3	68 f0 00 00 00	 push	 240			; 000000f0H
  001d8	68 5d 07 00 00	 push	 1885			; 0000075dH
  001dd	8b 45 08	 mov	 eax, DWORD PTR _hDlg$[ebp]
  001e0	50		 push	 eax
  001e1	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  001e7	50		 push	 eax
  001e8	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
  001ee	83 f8 01	 cmp	 eax, 1
  001f1	75 10		 jne	 SHORT $LN41@MixerSetup

; 764  :             {
; 765  :                 EnableDisableMixerControls(hDlg, TRUE);

  001f3	6a 01		 push	 1
  001f5	8b 4d 08	 mov	 ecx, DWORD PTR _hDlg$[ebp]
  001f8	51		 push	 ecx
  001f9	e8 00 00 00 00	 call	 ?EnableDisableMixerControls@@YAXPAUHWND__@@H@Z ; EnableDisableMixerControls
  001fe	83 c4 08	 add	 esp, 8

; 766  :             }
; 767  :             else

  00201	eb 0e		 jmp	 SHORT $LN40@MixerSetup
$LN41@MixerSetup:

; 768  :             {
; 769  :                 EnableDisableMixerControls(hDlg, FALSE);

  00203	6a 00		 push	 0
  00205	8b 55 08	 mov	 edx, DWORD PTR _hDlg$[ebp]
  00208	52		 push	 edx
  00209	e8 00 00 00 00	 call	 ?EnableDisableMixerControls@@YAXPAUHWND__@@H@Z ; EnableDisableMixerControls
  0020e	83 c4 08	 add	 esp, 8
$LN40@MixerSetup:

; 770  :             }
; 771  :             break;

  00211	e9 bf 03 00 00	 jmp	 $LN50@MixerSetup
$LN39@MixerSetup:

; 772  : 
; 773  :         case IDC_MIXER:
; 774  :             if (HIWORD(wParam) == CBN_SELCHANGE)

  00216	8b 45 10	 mov	 eax, DWORD PTR _wParam$[ebp]
  00219	c1 e8 10	 shr	 eax, 16			; 00000010H
  0021c	25 ff ff 00 00	 and	 eax, 65535		; 0000ffffH
  00221	0f b7 c8	 movzx	 ecx, ax
  00224	83 f9 01	 cmp	 ecx, 1
  00227	0f 85 55 01 00
	00		 jne	 $LN38@MixerSetup

; 775  :             {
; 776  :                 int nIndex = ComboBox_GetCurSelItemData(GetDlgItem(hDlg, IDC_MIXER));

  0022d	68 8b 06 00 00	 push	 1675			; 0000068bH
  00232	8b 55 08	 mov	 edx, DWORD PTR _hDlg$[ebp]
  00235	52		 push	 edx
  00236	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  0023c	50		 push	 eax
  0023d	e8 00 00 00 00	 call	 ?ComboBox_GetCurSelItemData@@YAHPAUHWND__@@@Z ; ComboBox_GetCurSelItemData
  00242	83 c4 04	 add	 esp, 4
  00245	89 45 e8	 mov	 DWORD PTR _nIndex$143154[ebp], eax

; 777  : 
; 778  :                 // Delete of the old mixer
; 779  :                 if (g_pDlgActiveMixer != NULL)

  00248	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _g_pDlgActiveMixer, 0
  0024f	74 26		 je	 SHORT $LN37@MixerSetup

; 780  :                 {
; 781  :                     if (g_pDlgActiveMixer->GetIndex() == nIndex)

  00251	a1 00 00 00 00	 mov	 eax, DWORD PTR _g_pDlgActiveMixer
  00256	8b 10		 mov	 edx, DWORD PTR [eax]
  00258	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_pDlgActiveMixer
  0025e	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  00261	ff d0		 call	 eax
  00263	3b 45 e8	 cmp	 eax, DWORD PTR _nIndex$143154[ebp]
  00266	75 05		 jne	 SHORT $LN36@MixerSetup

; 782  :                     {
; 783  :                         // Nothing to do
; 784  :                         break;

  00268	e9 68 03 00 00	 jmp	 $LN50@MixerSetup
$LN36@MixerSetup:

; 785  :                     }
; 786  : 
; 787  :                     g_pDlgActiveMixer = NULL;

  0026d	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR _g_pDlgActiveMixer, 0
$LN37@MixerSetup:

; 788  :                 }
; 789  : 
; 790  :                 // Create the new mixer
; 791  :                 if (nIndex != -1)

  00277	83 7d e8 ff	 cmp	 DWORD PTR _nIndex$143154[ebp], -1
  0027b	0f 84 95 00 00
	00		 je	 $LN35@MixerSetup

; 792  :                 {
; 793  :                     if (g_pCurrentMixer != NULL && g_pCurrentMixer->GetIndex() == nIndex)

  00281	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _g_pCurrentMixer, 0
  00288	74 26		 je	 SHORT $LN34@MixerSetup
  0028a	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_pCurrentMixer
  00290	8b 11		 mov	 edx, DWORD PTR [ecx]
  00292	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_pCurrentMixer
  00298	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  0029b	ff d0		 call	 eax
  0029d	3b 45 e8	 cmp	 eax, DWORD PTR _nIndex$143154[ebp]
  002a0	75 0e		 jne	 SHORT $LN34@MixerSetup

; 794  :                     {
; 795  :                         // Just reference the current mixer
; 796  :                         g_pDlgActiveMixer = g_pCurrentMixer;

  002a2	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_pCurrentMixer
  002a8	89 0d 00 00 00
	00		 mov	 DWORD PTR _g_pDlgActiveMixer, ecx

; 797  :                     }
; 798  :                     else

  002ae	eb 66		 jmp	 SHORT $LN35@MixerSetup
$LN34@MixerSetup:

; 799  :                     {
; 800  :                         try
; 801  :                         {

  002b0	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 0

; 802  :                             g_pDlgActiveMixer = new CMixer(nIndex);

  002b7	6a 74		 push	 116			; 00000074H
  002b9	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  002be	83 c4 04	 add	 esp, 4
  002c1	89 45 d8	 mov	 DWORD PTR $T359282[ebp], eax
  002c4	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+12], 1
  002c8	83 7d d8 00	 cmp	 DWORD PTR $T359282[ebp], 0
  002cc	74 11		 je	 SHORT $LN54@MixerSetup
  002ce	8b 55 e8	 mov	 edx, DWORD PTR _nIndex$143154[ebp]
  002d1	52		 push	 edx
  002d2	8b 4d d8	 mov	 ecx, DWORD PTR $T359282[ebp]
  002d5	e8 00 00 00 00	 call	 ??0CMixer@@QAE@K@Z	; CMixer::CMixer
  002da	89 45 cc	 mov	 DWORD PTR tv191[ebp], eax
  002dd	eb 07		 jmp	 SHORT $LN55@MixerSetup
$LN54@MixerSetup:
  002df	c7 45 cc 00 00
	00 00		 mov	 DWORD PTR tv191[ebp], 0
$LN55@MixerSetup:
  002e6	8b 45 cc	 mov	 eax, DWORD PTR tv191[ebp]
  002e9	89 45 dc	 mov	 DWORD PTR $T359281[ebp], eax
  002ec	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+12], 0
  002f0	8b 4d dc	 mov	 ecx, DWORD PTR $T359281[ebp]
  002f3	89 0d 00 00 00
	00		 mov	 DWORD PTR _g_pDlgActiveMixer, ecx

; 803  :                         }

  002f9	eb 14		 jmp	 SHORT $LN57@MixerSetup
__catch$?MixerSetupProc@@YGHPAUHWND__@@IIJ@Z$0:

; 804  :                         catch (...)
; 805  :                         {
; 806  :                             nIndex = -1;

  002fb	c7 45 e8 ff ff
	ff ff		 mov	 DWORD PTR _nIndex$143154[ebp], -1

; 807  :                         }

  00302	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
  00309	b8 00 00 00 00	 mov	 eax, $LN35@MixerSetup
  0030e	c3		 ret	 0
$LN57@MixerSetup:
  0030f	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
$LN35@MixerSetup:

; 808  :                     }
; 809  :                 }
; 810  : 
; 811  :                 // Update the destination box
; 812  :                 if (nIndex != -1)

  00316	83 7d e8 ff	 cmp	 DWORD PTR _nIndex$143154[ebp], -1
  0031a	74 32		 je	 SHORT $LN31@MixerSetup

; 813  :                 {
; 814  :                     if (g_pDlgActiveMixer == g_pCurrentMixer)

  0031c	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR _g_pDlgActiveMixer
  00322	3b 15 00 00 00
	00		 cmp	 edx, DWORD PTR _g_pCurrentMixer
  00328	75 14		 jne	 SHORT $LN30@MixerSetup

; 815  :                     {
; 816  :                         RefillDestinationBox(hDlg, g_nDestinationIndex);

  0032a	a1 00 00 00 00	 mov	 eax, DWORD PTR _g_nDestinationIndex
  0032f	50		 push	 eax
  00330	8b 4d 08	 mov	 ecx, DWORD PTR _hDlg$[ebp]
  00333	51		 push	 ecx
  00334	e8 00 00 00 00	 call	 ?RefillDestinationBox@@YAXPAUHWND__@@J@Z ; RefillDestinationBox
  00339	83 c4 08	 add	 esp, 8

; 817  :                     }
; 818  :                     else

  0033c	eb 0e		 jmp	 SHORT $LN29@MixerSetup
$LN30@MixerSetup:

; 819  :                     {
; 820  :                         RefillDestinationBox(hDlg, -1);

  0033e	6a ff		 push	 -1
  00340	8b 55 08	 mov	 edx, DWORD PTR _hDlg$[ebp]
  00343	52		 push	 edx
  00344	e8 00 00 00 00	 call	 ?RefillDestinationBox@@YAXPAUHWND__@@J@Z ; RefillDestinationBox
  00349	83 c4 08	 add	 esp, 8
$LN29@MixerSetup:

; 821  :                     }
; 822  :                 }
; 823  :                 else

  0034c	eb 1f		 jmp	 SHORT $LN28@MixerSetup
$LN31@MixerSetup:

; 824  :                 {
; 825  :                     ComboBox_ResetContent(GetDlgItem(hDlg, IDC_DEST));

  0034e	6a 00		 push	 0
  00350	6a 00		 push	 0
  00352	68 4b 01 00 00	 push	 331			; 0000014bH
  00357	68 c8 05 00 00	 push	 1480			; 000005c8H
  0035c	8b 45 08	 mov	 eax, DWORD PTR _hDlg$[ebp]
  0035f	50		 push	 eax
  00360	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  00366	50		 push	 eax
  00367	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
$LN28@MixerSetup:

; 826  :                 }
; 827  : 
; 828  :                 MixerSetupProc(hDlg, WM_COMMAND, MAKEWPARAM(IDC_DEST, CBN_SELCHANGE), 0);

  0036d	6a 00		 push	 0
  0036f	68 c8 05 01 00	 push	 67016			; 000105c8H
  00374	68 11 01 00 00	 push	 273			; 00000111H
  00379	8b 4d 08	 mov	 ecx, DWORD PTR _hDlg$[ebp]
  0037c	51		 push	 ecx
  0037d	e8 00 00 00 00	 call	 ?MixerSetupProc@@YGHPAUHWND__@@IIJ@Z ; MixerSetupProc
$LN38@MixerSetup:

; 829  :             }
; 830  :             break;

  00382	e9 4e 02 00 00	 jmp	 $LN50@MixerSetup
$LN27@MixerSetup:

; 831  : 
; 832  :         case IDC_DEST:
; 833  :             if (HIWORD(wParam) == CBN_SELCHANGE)

  00387	8b 55 10	 mov	 edx, DWORD PTR _wParam$[ebp]
  0038a	c1 ea 10	 shr	 edx, 16			; 00000010H
  0038d	81 e2 ff ff 00
	00		 and	 edx, 65535		; 0000ffffH
  00393	0f b7 c2	 movzx	 eax, dx
  00396	83 f8 01	 cmp	 eax, 1
  00399	0f 85 08 01 00
	00		 jne	 $LN26@MixerSetup

; 834  :             {
; 835  :                 int nIndex = ComboBox_GetCurSelItemData(GetDlgItem(hDlg, IDC_DEST));

  0039f	68 c8 05 00 00	 push	 1480			; 000005c8H
  003a4	8b 4d 08	 mov	 ecx, DWORD PTR _hDlg$[ebp]
  003a7	51		 push	 ecx
  003a8	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  003ae	50		 push	 eax
  003af	e8 00 00 00 00	 call	 ?ComboBox_GetCurSelItemData@@YAHPAUHWND__@@@Z ; ComboBox_GetCurSelItemData
  003b4	83 c4 04	 add	 esp, 4
  003b7	89 45 e4	 mov	 DWORD PTR _nIndex$143183[ebp], eax

; 836  : 
; 837  :                 // Update the source boxes
; 838  :                 if (nIndex != -1 && g_pDlgActiveMixer != NULL)

  003ba	83 7d e4 ff	 cmp	 DWORD PTR _nIndex$143183[ebp], -1
  003be	0f 84 a0 00 00
	00		 je	 $LN25@MixerSetup
  003c4	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _g_pDlgActiveMixer, 0
  003cb	0f 84 93 00 00
	00		 je	 $LN25@MixerSetup

; 839  :                 {
; 840  :                     if (g_pDlgActiveMixer == g_pCurrentMixer && nIndex == g_nDestinationIndex)

  003d1	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR _g_pDlgActiveMixer
  003d7	3b 15 00 00 00
	00		 cmp	 edx, DWORD PTR _g_pCurrentMixer
  003dd	75 4d		 jne	 SHORT $LN24@MixerSetup
  003df	8b 45 e4	 mov	 eax, DWORD PTR _nIndex$143183[ebp]
  003e2	3b 05 00 00 00
	00		 cmp	 eax, DWORD PTR _g_nDestinationIndex
  003e8	75 42		 jne	 SHORT $LN24@MixerSetup

; 841  :                     {
; 842  :                         for (i = 0; i < g_nActiveInputsCount; i++)

  003ea	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  003f1	eb 09		 jmp	 SHORT $LN23@MixerSetup
$LN22@MixerSetup:
  003f3	8b 4d ec	 mov	 ecx, DWORD PTR _i$[ebp]
  003f6	83 c1 01	 add	 ecx, 1
  003f9	89 4d ec	 mov	 DWORD PTR _i$[ebp], ecx
$LN23@MixerSetup:
  003fc	8b 55 ec	 mov	 edx, DWORD PTR _i$[ebp]
  003ff	3b 15 00 00 00
	00		 cmp	 edx, DWORD PTR _g_nActiveInputsCount
  00405	7d 23		 jge	 SHORT $LN21@MixerSetup

; 843  :                         {
; 844  :                             RefillSourceBox(hDlg, IDC_MIXER_INPUT0+i, g_nSourceIndexes[i]);

  00407	8b 45 ec	 mov	 eax, DWORD PTR _i$[ebp]
  0040a	8b 0c 85 00 00
	00 00		 mov	 ecx, DWORD PTR _g_nSourceIndexes[eax*4]
  00411	51		 push	 ecx
  00412	8b 55 ec	 mov	 edx, DWORD PTR _i$[ebp]
  00415	81 c2 b5 05 00
	00		 add	 edx, 1461		; 000005b5H
  0041b	52		 push	 edx
  0041c	8b 45 08	 mov	 eax, DWORD PTR _hDlg$[ebp]
  0041f	50		 push	 eax
  00420	e8 00 00 00 00	 call	 ?RefillSourceBox@@YAXPAUHWND__@@JJ@Z ; RefillSourceBox
  00425	83 c4 0c	 add	 esp, 12			; 0000000cH

; 845  :                         }

  00428	eb c9		 jmp	 SHORT $LN22@MixerSetup
$LN21@MixerSetup:

; 846  :                     }
; 847  :                     else

  0042a	eb 36		 jmp	 SHORT $LN20@MixerSetup
$LN24@MixerSetup:

; 848  :                     {
; 849  :                         for (i = 0; i < g_nActiveInputsCount; i++)

  0042c	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  00433	eb 09		 jmp	 SHORT $LN19@MixerSetup
$LN18@MixerSetup:
  00435	8b 4d ec	 mov	 ecx, DWORD PTR _i$[ebp]
  00438	83 c1 01	 add	 ecx, 1
  0043b	89 4d ec	 mov	 DWORD PTR _i$[ebp], ecx
$LN19@MixerSetup:
  0043e	8b 55 ec	 mov	 edx, DWORD PTR _i$[ebp]
  00441	3b 15 00 00 00
	00		 cmp	 edx, DWORD PTR _g_nActiveInputsCount
  00447	7d 19		 jge	 SHORT $LN20@MixerSetup

; 850  :                         {
; 851  :                             RefillSourceBox(hDlg, IDC_MIXER_INPUT0+i, -1);

  00449	6a ff		 push	 -1
  0044b	8b 45 ec	 mov	 eax, DWORD PTR _i$[ebp]
  0044e	05 b5 05 00 00	 add	 eax, 1461		; 000005b5H
  00453	50		 push	 eax
  00454	8b 4d 08	 mov	 ecx, DWORD PTR _hDlg$[ebp]
  00457	51		 push	 ecx
  00458	e8 00 00 00 00	 call	 ?RefillSourceBox@@YAXPAUHWND__@@JJ@Z ; RefillSourceBox
  0045d	83 c4 0c	 add	 esp, 12			; 0000000cH

; 852  :                         }

  00460	eb d3		 jmp	 SHORT $LN18@MixerSetup
$LN20@MixerSetup:

; 853  :                     }
; 854  :                 }
; 855  :                 else

  00462	eb 43		 jmp	 SHORT $LN26@MixerSetup
$LN25@MixerSetup:

; 856  :                 {
; 857  :                     for (i = 0; i < g_nActiveInputsCount; i++)

  00464	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  0046b	eb 09		 jmp	 SHORT $LN15@MixerSetup
$LN14@MixerSetup:
  0046d	8b 55 ec	 mov	 edx, DWORD PTR _i$[ebp]
  00470	83 c2 01	 add	 edx, 1
  00473	89 55 ec	 mov	 DWORD PTR _i$[ebp], edx
$LN15@MixerSetup:
  00476	8b 45 ec	 mov	 eax, DWORD PTR _i$[ebp]
  00479	3b 05 00 00 00
	00		 cmp	 eax, DWORD PTR _g_nActiveInputsCount
  0047f	7d 26		 jge	 SHORT $LN26@MixerSetup

; 858  :                     {
; 859  :                         ComboBox_ResetContent(GetDlgItem(hDlg, IDC_MIXER_INPUT0+i));

  00481	6a 00		 push	 0
  00483	6a 00		 push	 0
  00485	68 4b 01 00 00	 push	 331			; 0000014bH
  0048a	8b 4d ec	 mov	 ecx, DWORD PTR _i$[ebp]
  0048d	81 c1 b5 05 00
	00		 add	 ecx, 1461		; 000005b5H
  00493	51		 push	 ecx
  00494	8b 55 08	 mov	 edx, DWORD PTR _hDlg$[ebp]
  00497	52		 push	 edx
  00498	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  0049e	50		 push	 eax
  0049f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16

; 860  :                     }

  004a5	eb c6		 jmp	 SHORT $LN14@MixerSetup
$LN26@MixerSetup:

; 861  :                 }
; 862  :             }
; 863  :             break;

  004a7	e9 29 01 00 00	 jmp	 $LN50@MixerSetup
$LN12@MixerSetup:

; 864  : 
; 865  :         case IDC_MIXER_INPUT_ALL:
; 866  :             if (HIWORD(wParam) == CBN_SELCHANGE)

  004ac	8b 45 10	 mov	 eax, DWORD PTR _wParam$[ebp]
  004af	c1 e8 10	 shr	 eax, 16			; 00000010H
  004b2	25 ff ff 00 00	 and	 eax, 65535		; 0000ffffH
  004b7	0f b7 c8	 movzx	 ecx, ax
  004ba	83 f9 01	 cmp	 ecx, 1
  004bd	75 53		 jne	 SHORT $LN11@MixerSetup

; 867  :             {
; 868  :                 int index = ComboBox_GetCurSelItemData(GetDlgItem(hDlg, IDC_MIXER_INPUT_ALL));

  004bf	68 a4 06 00 00	 push	 1700			; 000006a4H
  004c4	8b 55 08	 mov	 edx, DWORD PTR _hDlg$[ebp]
  004c7	52		 push	 edx
  004c8	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  004ce	50		 push	 eax
  004cf	e8 00 00 00 00	 call	 ?ComboBox_GetCurSelItemData@@YAHPAUHWND__@@@Z ; ComboBox_GetCurSelItemData
  004d4	83 c4 04	 add	 esp, 4
  004d7	89 45 e0	 mov	 DWORD PTR _index$143203[ebp], eax

; 869  : 
; 870  :                 for (i = 0; i < g_nActiveInputsCount; i++)

  004da	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  004e1	eb 09		 jmp	 SHORT $LN10@MixerSetup
$LN9@MixerSetup:
  004e3	8b 45 ec	 mov	 eax, DWORD PTR _i$[ebp]
  004e6	83 c0 01	 add	 eax, 1
  004e9	89 45 ec	 mov	 DWORD PTR _i$[ebp], eax
$LN10@MixerSetup:
  004ec	8b 4d ec	 mov	 ecx, DWORD PTR _i$[ebp]
  004ef	3b 0d 00 00 00
	00		 cmp	 ecx, DWORD PTR _g_nActiveInputsCount
  004f5	7d 1b		 jge	 SHORT $LN11@MixerSetup

; 871  :                 {
; 872  :                     RefillSourceBox(hDlg, IDC_MIXER_INPUT0+i, index);

  004f7	8b 55 e0	 mov	 edx, DWORD PTR _index$143203[ebp]
  004fa	52		 push	 edx
  004fb	8b 45 ec	 mov	 eax, DWORD PTR _i$[ebp]
  004fe	05 b5 05 00 00	 add	 eax, 1461		; 000005b5H
  00503	50		 push	 eax
  00504	8b 4d 08	 mov	 ecx, DWORD PTR _hDlg$[ebp]
  00507	51		 push	 ecx
  00508	e8 00 00 00 00	 call	 ?RefillSourceBox@@YAXPAUHWND__@@JJ@Z ; RefillSourceBox
  0050d	83 c4 0c	 add	 esp, 12			; 0000000cH

; 873  :                 }

  00510	eb d1		 jmp	 SHORT $LN9@MixerSetup
$LN11@MixerSetup:

; 874  :             }
; 875  :             break;

  00512	e9 be 00 00 00	 jmp	 $LN50@MixerSetup
$LN7@MixerSetup:

; 876  : 
; 877  :         case IDC_SEPARATE_INPUT:
; 878  :             SwitchSameForAllInputsMode(hDlg,
; 879  :                 Button_GetCheck(GetDlgItem(hDlg, IDC_SEPARATE_INPUT)) != BST_CHECKED);

  00517	6a 00		 push	 0
  00519	6a 00		 push	 0
  0051b	68 f0 00 00 00	 push	 240			; 000000f0H
  00520	68 8f 1f 00 00	 push	 8079			; 00001f8fH
  00525	8b 55 08	 mov	 edx, DWORD PTR _hDlg$[ebp]
  00528	52		 push	 edx
  00529	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  0052f	50		 push	 eax
  00530	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
  00536	83 e8 01	 sub	 eax, 1
  00539	f7 d8		 neg	 eax
  0053b	1b c0		 sbb	 eax, eax
  0053d	f7 d8		 neg	 eax
  0053f	50		 push	 eax
  00540	8b 45 08	 mov	 eax, DWORD PTR _hDlg$[ebp]
  00543	50		 push	 eax
  00544	e8 00 00 00 00	 call	 ?SwitchSameForAllInputsMode@@YAXPAUHWND__@@H@Z ; SwitchSameForAllInputsMode
  00549	83 c4 08	 add	 esp, 8

; 880  :             break;

  0054c	e9 84 00 00 00	 jmp	 $LN50@MixerSetup
$LN6@MixerSetup:

; 881  : 
; 882  :         case IDOK:
; 883  :             // Use the new g_bResetOnExit setting in Mixer_DoSettingsTransition()
; 884  :             g_bResetOnExit =
; 885  :                 Button_GetCheck(GetDlgItem(hDlg, IDC_RESETONEXIT)) == BST_CHECKED;

  00551	6a 00		 push	 0
  00553	6a 00		 push	 0
  00555	68 f0 00 00 00	 push	 240			; 000000f0H
  0055a	68 e1 06 00 00	 push	 1761			; 000006e1H
  0055f	8b 4d 08	 mov	 ecx, DWORD PTR _hDlg$[ebp]
  00562	51		 push	 ecx
  00563	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDlgItem@8
  00569	50		 push	 eax
  0056a	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
  00570	83 e8 01	 sub	 eax, 1
  00573	f7 d8		 neg	 eax
  00575	1b c0		 sbb	 eax, eax
  00577	83 c0 01	 add	 eax, 1
  0057a	a3 00 00 00 00	 mov	 DWORD PTR _g_bResetOnExit, eax

; 886  : 
; 887  :             Mixer_DoSettingsTransition(SynchronizeDlgChangesCallback, hDlg);

  0057f	8b 55 08	 mov	 edx, DWORD PTR _hDlg$[ebp]
  00582	52		 push	 edx
  00583	68 00 00 00 00	 push	 OFFSET ?SynchronizeDlgChangesCallback@@YAPAVIMixer@@PAX@Z ; SynchronizeDlgChangesCallback
  00588	e8 00 00 00 00	 call	 ?Mixer_DoSettingsTransition@@YAXP6APAVIMixer@@PAX@Z0@Z ; Mixer_DoSettingsTransition
  0058d	83 c4 08	 add	 esp, 8

; 888  :             SettingsMaster->SaveAllSettings(TRUE);

  00590	6a 01		 push	 1
  00592	b9 00 00 00 00	 mov	 ecx, OFFSET ?SettingsMaster@@3V?$SmartPtr@VCSettingsMaster@@@@A ; SettingsMaster
  00597	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSettingsMaster@@@@QBEPAVCSettingsMaster@@XZ ; SmartPtr<CSettingsMaster>::operator->
  0059c	8b c8		 mov	 ecx, eax
  0059e	e8 00 00 00 00	 call	 ?SaveAllSettings@CSettingsMaster@@QAEXH@Z ; CSettingsMaster::SaveAllSettings
$LN5@MixerSetup:

; 889  : 
; 890  :             // FALLTHROUGH
; 891  : 
; 892  :         case IDCANCEL:
; 893  :             if (g_pDlgActiveMixer != NULL)

  005a3	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _g_pDlgActiveMixer, 0
  005aa	74 0a		 je	 SHORT $LN4@MixerSetup

; 894  :             {
; 895  :                 g_pDlgActiveMixer = NULL;

  005ac	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR _g_pDlgActiveMixer, 0
$LN4@MixerSetup:

; 896  :             }
; 897  : 
; 898  :             if (!g_bUseMixer)

  005b6	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _g_bUseMixer, 0
  005bd	75 0a		 jne	 SHORT $LN3@MixerSetup

; 899  :             {
; 900  :                 Mixer_SetCurrentMixer(-1);

  005bf	6a ff		 push	 -1
  005c1	e8 00 00 00 00	 call	 ?Mixer_SetCurrentMixer@@YAXJ@Z ; Mixer_SetCurrentMixer
  005c6	83 c4 04	 add	 esp, 4
$LN3@MixerSetup:

; 901  :             }
; 902  : 
; 903  :             EndDialog(hDlg, 0);

  005c9	6a 00		 push	 0
  005cb	8b 45 08	 mov	 eax, DWORD PTR _hDlg$[ebp]
  005ce	50		 push	 eax
  005cf	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EndDialog@8
$LN50@MixerSetup:

; 904  :             break;
; 905  : 
; 906  :         default:
; 907  :             break;
; 908  :         }
; 909  :         break;
; 910  : 
; 911  :     default:
; 912  :         break;
; 913  :     }
; 914  : 
; 915  :     return FALSE;

  005d5	33 c0		 xor	 eax, eax
$LN52@MixerSetup:

; 916  : }

  005d7	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp+4]
  005da	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  005e1	59		 pop	 ecx
  005e2	5f		 pop	 edi
  005e3	5e		 pop	 esi
  005e4	5b		 pop	 ebx
  005e5	8b e5		 mov	 esp, ebp
  005e7	5d		 pop	 ebp
  005e8	c2 10 00	 ret	 16			; 00000010H
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?MixerSetupProc@@YGHPAUHWND__@@IIJ@Z$2:
  00000	8b 45 d8	 mov	 eax, DWORD PTR $T359282[ebp]
  00003	50		 push	 eax
  00004	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00009	59		 pop	 ecx
  0000a	c3		 ret	 0
__ehhandler$?MixerSetupProc@@YGHPAUHWND__@@IIJ@Z:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 4a c8	 mov	 ecx, DWORD PTR [edx-56]
  00015	33 c8		 xor	 ecx, eax
  00017	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?MixerSetupProc@@YGHPAUHWND__@@IIJ@Z
  00021	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?MixerSetupProc@@YGHPAUHWND__@@IIJ@Z ENDP		; MixerSetupProc
PUBLIC	?Mixer_SetupDlg@@YAXPAUHWND__@@@Z		; Mixer_SetupDlg
; Function compile flags: /Odtp
;	COMDAT ?Mixer_SetupDlg@@YAXPAUHWND__@@@Z
_TEXT	SEGMENT
tv155 = -16						; size = 4
tv141 = -12						; size = 4
_bWasInvalidSection$142942 = -8				; size = 4
_source$ = -4						; size = 4
_hWndParent$ = 8					; size = 4
?Mixer_SetupDlg@@YAXPAUHWND__@@@Z PROC			; Mixer_SetupDlg, COMDAT

; 255  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 10	 sub	 esp, 16			; 00000010H

; 256  :     CSource* source = Providers_GetCurrentSource();

  00006	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  0000b	89 45 fc	 mov	 DWORD PTR _source$[ebp], eax

; 257  :     if ((source == NULL) || !source->IsAudioMixerAccessAllowed())

  0000e	83 7d fc 00	 cmp	 DWORD PTR _source$[ebp], 0
  00012	74 14		 je	 SHORT $LN8@Mixer_Setu@2
  00014	8b 45 fc	 mov	 eax, DWORD PTR _source$[ebp]
  00017	8b 10		 mov	 edx, DWORD PTR [eax]
  00019	8b 4d fc	 mov	 ecx, DWORD PTR _source$[ebp]
  0001c	8b 82 e8 00 00
	00		 mov	 eax, DWORD PTR [edx+232]
  00022	ff d0		 call	 eax
  00024	85 c0		 test	 eax, eax
  00026	75 1d		 jne	 SHORT $LN9@Mixer_Setu@2
$LN8@Mixer_Setu@2:

; 258  :     {
; 259  :         MessageBox(GetMainWnd(), _T("No audio mixer setup needed for the current source"), _T("DScaler Warning"), MB_OK);

  00028	6a 00		 push	 0
  0002a	68 00 00 00 00	 push	 OFFSET ??_C@_1CA@HBAPGMMF@?$AAD?$AAS?$AAc?$AAa?$AAl?$AAe?$AAr?$AA?5?$AAW?$AAa?$AAr?$AAn?$AAi?$AAn?$AAg?$AA?$AA@
  0002f	68 00 00 00 00	 push	 OFFSET ??_C@_1GG@FNMMFMJJ@?$AAN?$AAo?$AA?5?$AAa?$AAu?$AAd?$AAi?$AAo?$AA?5?$AAm?$AAi?$AAx?$AAe?$AAr?$AA?5?$AAs?$AAe?$AAt?$AAu?$AAp?$AA?5?$AAn?$AAe?$AAe?$AAd?$AAe?$AAd?$AA?5?$AAf?$AAo?$AAr?$AA?5@
  00034	e8 00 00 00 00	 call	 ?GetMainWnd@@YAPAUHWND__@@XZ ; GetMainWnd
  00039	50		 push	 eax
  0003a	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__MessageBoxW@16

; 260  :     }
; 261  :     else

  00040	e9 06 01 00 00	 jmp	 $LN10@Mixer_Setu@2
$LN9@Mixer_Setu@2:

; 262  :     {
; 263  :         if (CMixerList::getInstance()->GetMixerCount() > 0)

  00045	e8 00 00 00 00	 call	 ?getInstance@CMixerList@@SAPAV1@XZ ; CMixerList::getInstance
  0004a	8b c8		 mov	 ecx, eax
  0004c	e8 00 00 00 00	 call	 ?GetMixerCount@CMixerList@@QAEJXZ ; CMixerList::GetMixerCount
  00051	85 c0		 test	 eax, eax
  00053	0f 8e da 00 00
	00		 jle	 $LN6@Mixer_Setu@2

; 264  :         {
; 265  :             BOOL bWasInvalidSection = g_bMixerDevInvalidSection;

  00059	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _g_bMixerDevInvalidSection
  0005f	89 4d f8	 mov	 DWORD PTR _bWasInvalidSection$142942[ebp], ecx

; 266  : 
; 267  :             // This Mixer_SetupDlg(...) function can be called in the early stages of
; 268  :             // configuration, before a _T("current source") is properly set from a raised
; 269  :             // EVENT_SOURCE_CHANGE event.  As such, g_bMixerDevInvalidSection can be
; 270  :             // TRUE to indicate that this file is working with a _T("null-source").  If
; 271  :             // this is the case, temporary set the _T("current source") based on the return
; 272  :             // value of 'source = Providers_GetCurrentSource()'.  (Because there is no
; 273  :             // point for the user to configure the null-source.)
; 274  :             if (bWasInvalidSection)

  00062	83 7d f8 00	 cmp	 DWORD PTR _bWasInvalidSection$142942[ebp], 0
  00066	74 0c		 je	 SHORT $LN5@Mixer_Setu@2

; 275  :             {
; 276  :                 // Change the mixer settings to the given source.
; 277  :                 Mixer_OnSourceChange(source);

  00068	8b 55 fc	 mov	 edx, DWORD PTR _source$[ebp]
  0006b	52		 push	 edx
  0006c	e8 00 00 00 00	 call	 ?Mixer_OnSourceChange@@YAXPAVCSource@@@Z ; Mixer_OnSourceChange
  00071	83 c4 04	 add	 esp, 4
$LN5@Mixer_Setu@2:

; 278  :             }
; 279  : 
; 280  :             DialogBox(hResourceInst, MAKEINTRESOURCE(IDD_MIXERSETUP), hWndParent, MixerSetupProc);

  00074	6a 00		 push	 0
  00076	68 00 00 00 00	 push	 OFFSET ?MixerSetupProc@@YGHPAUHWND__@@IIJ@Z ; MixerSetupProc
  0007b	8b 45 08	 mov	 eax, DWORD PTR _hWndParent$[ebp]
  0007e	50		 push	 eax
  0007f	68 aa 00 00 00	 push	 170			; 000000aaH
  00084	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?hResourceInst@@3PAUHINSTANCE__@@A ; hResourceInst
  0008a	51		 push	 ecx
  0008b	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__DialogBoxParamW@20

; 281  : 
; 282  :             if (source->GetVolume() != NULL)

  00091	8b 55 fc	 mov	 edx, DWORD PTR _source$[ebp]
  00094	8b 02		 mov	 eax, DWORD PTR [edx]
  00096	8b 4d fc	 mov	 ecx, DWORD PTR _source$[ebp]
  00099	8b 50 24	 mov	 edx, DWORD PTR [eax+36]
  0009c	ff d2		 call	 edx
  0009e	85 c0		 test	 eax, eax
  000a0	74 4a		 je	 SHORT $LN4@Mixer_Setu@2

; 283  :             {
; 284  :                 EventCollector->RaiseEvent(source, EVENT_VOLUME, 0, source->GetVolume()->GetValue());

  000a2	83 7d fc 00	 cmp	 DWORD PTR _source$[ebp], 0
  000a6	74 0b		 je	 SHORT $LN12@Mixer_Setu@2
  000a8	8b 45 fc	 mov	 eax, DWORD PTR _source$[ebp]
  000ab	83 c0 40	 add	 eax, 64			; 00000040H
  000ae	89 45 f4	 mov	 DWORD PTR tv141[ebp], eax
  000b1	eb 07		 jmp	 SHORT $LN13@Mixer_Setu@2
$LN12@Mixer_Setu@2:
  000b3	c7 45 f4 00 00
	00 00		 mov	 DWORD PTR tv141[ebp], 0
$LN13@Mixer_Setu@2:
  000ba	6a 00		 push	 0
  000bc	8b 4d fc	 mov	 ecx, DWORD PTR _source$[ebp]
  000bf	8b 11		 mov	 edx, DWORD PTR [ecx]
  000c1	8b 4d fc	 mov	 ecx, DWORD PTR _source$[ebp]
  000c4	8b 42 24	 mov	 eax, DWORD PTR [edx+36]
  000c7	ff d0		 call	 eax
  000c9	8b c8		 mov	 ecx, eax
  000cb	e8 00 00 00 00	 call	 ?GetValue@CSliderSetting@@QAEJXZ ; CSliderSetting::GetValue
  000d0	50		 push	 eax
  000d1	6a 00		 push	 0
  000d3	6a 0e		 push	 14			; 0000000eH
  000d5	8b 4d f4	 mov	 ecx, DWORD PTR tv141[ebp]
  000d8	51		 push	 ecx
  000d9	b9 00 00 00 00	 mov	 ecx, OFFSET ?EventCollector@@3V?$SmartPtr@VCEventCollector@@@@A ; EventCollector
  000de	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCEventCollector@@@@QBEPAVCEventCollector@@XZ ; SmartPtr<CEventCollector>::operator->
  000e3	8b c8		 mov	 ecx, eax
  000e5	e8 00 00 00 00	 call	 ?RaiseEvent@CEventCollector@@QAEXPAVCEventObject@@W4eEventType@@JJPAW43@@Z ; CEventCollector::RaiseEvent

; 285  :             }
; 286  :             else

  000ea	eb 35		 jmp	 SHORT $LN3@Mixer_Setu@2
$LN4@Mixer_Setu@2:

; 287  :             {
; 288  :                 EventCollector->RaiseEvent(source, EVENT_NO_VOLUME, 0, 1);

  000ec	83 7d fc 00	 cmp	 DWORD PTR _source$[ebp], 0
  000f0	74 0b		 je	 SHORT $LN14@Mixer_Setu@2
  000f2	8b 55 fc	 mov	 edx, DWORD PTR _source$[ebp]
  000f5	83 c2 40	 add	 edx, 64			; 00000040H
  000f8	89 55 f0	 mov	 DWORD PTR tv155[ebp], edx
  000fb	eb 07		 jmp	 SHORT $LN15@Mixer_Setu@2
$LN14@Mixer_Setu@2:
  000fd	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR tv155[ebp], 0
$LN15@Mixer_Setu@2:
  00104	6a 00		 push	 0
  00106	6a 01		 push	 1
  00108	6a 00		 push	 0
  0010a	6a 15		 push	 21			; 00000015H
  0010c	8b 45 f0	 mov	 eax, DWORD PTR tv155[ebp]
  0010f	50		 push	 eax
  00110	b9 00 00 00 00	 mov	 ecx, OFFSET ?EventCollector@@3V?$SmartPtr@VCEventCollector@@@@A ; EventCollector
  00115	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCEventCollector@@@@QBEPAVCEventCollector@@XZ ; SmartPtr<CEventCollector>::operator->
  0011a	8b c8		 mov	 ecx, eax
  0011c	e8 00 00 00 00	 call	 ?RaiseEvent@CEventCollector@@QAEXPAVCEventObject@@W4eEventType@@JJPAW43@@Z ; CEventCollector::RaiseEvent
$LN3@Mixer_Setu@2:

; 289  :             }
; 290  : 
; 291  :             if (bWasInvalidSection)

  00121	83 7d f8 00	 cmp	 DWORD PTR _bWasInvalidSection$142942[ebp], 0
  00125	74 0a		 je	 SHORT $LN2@Mixer_Setu@2

; 292  :             {
; 293  :                 // Restore the mixer source to the null-source.
; 294  :                 Mixer_OnSourceChange(NULL);

  00127	6a 00		 push	 0
  00129	e8 00 00 00 00	 call	 ?Mixer_OnSourceChange@@YAXPAVCSource@@@Z ; Mixer_OnSourceChange
  0012e	83 c4 04	 add	 esp, 4
$LN2@Mixer_Setu@2:

; 295  :             }
; 296  :         }
; 297  :         else

  00131	eb 18		 jmp	 SHORT $LN10@Mixer_Setu@2
$LN6@Mixer_Setu@2:

; 298  :         {
; 299  :             MessageBox(GetMainWnd(), _T("No mixer hardware found"), _T("DScaler Error"), MB_OK);

  00133	6a 00		 push	 0
  00135	68 00 00 00 00	 push	 OFFSET ??_C@_1BM@LLCJMOHB@?$AAD?$AAS?$AAc?$AAa?$AAl?$AAe?$AAr?$AA?5?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?$AA@
  0013a	68 00 00 00 00	 push	 OFFSET ??_C@_1DA@NDCMJBEC@?$AAN?$AAo?$AA?5?$AAm?$AAi?$AAx?$AAe?$AAr?$AA?5?$AAh?$AAa?$AAr?$AAd?$AAw?$AAa?$AAr?$AAe?$AA?5?$AAf?$AAo?$AAu?$AAn?$AAd?$AA?$AA@
  0013f	e8 00 00 00 00	 call	 ?GetMainWnd@@YAPAUHWND__@@XZ ; GetMainWnd
  00144	50		 push	 eax
  00145	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__MessageBoxW@16
$LN10@Mixer_Setu@2:

; 300  :         }
; 301  :     }
; 302  : }

  0014b	8b e5		 mov	 esp, ebp
  0014d	5d		 pop	 ebp
  0014e	c3		 ret	 0
?Mixer_SetupDlg@@YAXPAUHWND__@@@Z ENDP			; Mixer_SetupDlg
; Function compile flags: /Odtp
;	COMDAT ??__EMixerSettings@@YAXXZ
text$yc	SEGMENT
??__EMixerSettings@@YAXXZ PROC				; `dynamic initializer for 'MixerSettings'', COMDAT

; 48   : SmartPtr<CSettingsHolder> MixerSettings;

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET ?MixerSettings@@3V?$SmartPtr@VCSettingsHolder@@@@A ; MixerSettings
  00008	e8 00 00 00 00	 call	 ??0?$SmartPtr@VCSettingsHolder@@@@QAE@XZ ; SmartPtr<CSettingsHolder>::SmartPtr<CSettingsHolder>
  0000d	68 00 00 00 00	 push	 OFFSET ??__FMixerSettings@@YAXXZ ; `dynamic atexit destructor for 'MixerSettings''
  00012	e8 00 00 00 00	 call	 _atexit
  00017	83 c4 04	 add	 esp, 4
  0001a	5d		 pop	 ebp
  0001b	c3		 ret	 0
??__EMixerSettings@@YAXXZ ENDP				; `dynamic initializer for 'MixerSettings''
; Function compile flags: /Odtp
text$yc	ENDS
;	COMDAT ??__Eg_pMixerName@@YAXXZ
text$yc	SEGMENT
??__Eg_pMixerName@@YAXXZ PROC				; `dynamic initializer for 'g_pMixerName'', COMDAT

; 99   : SettingStringValue g_pMixerName;                            // Saved setting variable

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET ?g_pMixerName@@3VSettingStringValue@@A ; g_pMixerName
  00008	e8 00 00 00 00	 call	 ??0SettingStringValue@@QAE@XZ ; SettingStringValue::SettingStringValue
  0000d	68 00 00 00 00	 push	 OFFSET ??__Fg_pMixerName@@YAXXZ ; `dynamic atexit destructor for 'g_pMixerName''
  00012	e8 00 00 00 00	 call	 _atexit
  00017	83 c4 04	 add	 esp, 4
  0001a	5d		 pop	 ebp
  0001b	c3		 ret	 0
??__Eg_pMixerName@@YAXXZ ENDP				; `dynamic initializer for 'g_pMixerName''
; Function compile flags: /Odtp
text$yc	ENDS
;	COMDAT ??__EMixerDevSettings@@YAXXZ
text$yc	SEGMENT
??__EMixerDevSettings@@YAXXZ PROC			; `dynamic initializer for 'MixerDevSettings'', COMDAT

; 1476 :         "Mixer Name", TCHARSTRING, 0, g_pMixerName.GetPointer(),

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET ?g_pMixerName@@3VSettingStringValue@@A ; g_pMixerName
  00008	e8 00 00 00 00	 call	 ?GetPointer@SettingStringValue@@QAEPAJXZ ; SettingStringValue::GetPointer
  0000d	a3 e0 01 00 00	 mov	 DWORD PTR ?MixerDevSettings@@3PAUSETTING@@A+480, eax

; 1477 :         (LONG_PTR)"", 0, 0, 0, 0,

  00012	c7 05 e4 01 00
	00 00 00 00 00	 mov	 DWORD PTR ?MixerDevSettings@@3PAUSETTING@@A+484, OFFSET ??_C@_00CNPNBAHC@?$AA@
  0001c	c7 05 e8 01 00
	00 00 00 00 00	 mov	 DWORD PTR ?MixerDevSettings@@3PAUSETTING@@A+488, 0
  00026	c7 05 ec 01 00
	00 00 00 00 00	 mov	 DWORD PTR ?MixerDevSettings@@3PAUSETTING@@A+492, 0
  00030	c7 05 f0 01 00
	00 00 00 00 00	 mov	 DWORD PTR ?MixerDevSettings@@3PAUSETTING@@A+496, 0
  0003a	c7 05 f4 01 00
	00 00 00 00 00	 mov	 DWORD PTR ?MixerDevSettings@@3PAUSETTING@@A+500, 0

; 1478 :         NULL,

  00044	c7 05 f8 01 00
	00 00 00 00 00	 mov	 DWORD PTR ?MixerDevSettings@@3PAUSETTING@@A+504, 0

; 1479 :         "Mixer", "MixerName", NULL,

  0004e	c7 05 fc 01 00
	00 00 00 00 00	 mov	 DWORD PTR ?MixerDevSettings@@3PAUSETTING@@A+508, OFFSET ??_C@_05JEEHMIBO@Mixer?$AA@
  00058	c7 05 00 02 00
	00 00 00 00 00	 mov	 DWORD PTR ?MixerDevSettings@@3PAUSETTING@@A+512, OFFSET ??_C@_09FLPMNIBE@MixerName?$AA@
  00062	c7 05 04 02 00
	00 00 00 00 00	 mov	 DWORD PTR ?MixerDevSettings@@3PAUSETTING@@A+516, 0

; 1480 :     },
; 1481 :     {
; 1482 :         "No Hardware Mute", ONOFF, 0, (LONG_PTR*)&g_bNoHardwareMute,

  0006c	c7 05 08 02 00
	00 00 00 00 00	 mov	 DWORD PTR ?MixerDevSettings@@3PAUSETTING@@A+520, OFFSET ??_C@_0BB@EEMPDPGJ@No?5Hardware?5Mute?$AA@
  00076	c7 05 0c 02 00
	00 01 00 00 00	 mov	 DWORD PTR ?MixerDevSettings@@3PAUSETTING@@A+524, 1
  00080	c7 05 10 02 00
	00 00 00 00 00	 mov	 DWORD PTR ?MixerDevSettings@@3PAUSETTING@@A+528, 0
  0008a	c7 05 14 02 00
	00 00 00 00 00	 mov	 DWORD PTR ?MixerDevSettings@@3PAUSETTING@@A+532, OFFSET _g_bNoHardwareMute

; 1483 :         FALSE, 0, 1, 1, 1,

  00094	c7 05 18 02 00
	00 00 00 00 00	 mov	 DWORD PTR ?MixerDevSettings@@3PAUSETTING@@A+536, 0
  0009e	c7 05 1c 02 00
	00 00 00 00 00	 mov	 DWORD PTR ?MixerDevSettings@@3PAUSETTING@@A+540, 0
  000a8	c7 05 20 02 00
	00 01 00 00 00	 mov	 DWORD PTR ?MixerDevSettings@@3PAUSETTING@@A+544, 1
  000b2	c7 05 24 02 00
	00 01 00 00 00	 mov	 DWORD PTR ?MixerDevSettings@@3PAUSETTING@@A+548, 1
  000bc	c7 05 28 02 00
	00 01 00 00 00	 mov	 DWORD PTR ?MixerDevSettings@@3PAUSETTING@@A+552, 1

; 1484 :         NULL,

  000c6	c7 05 2c 02 00
	00 00 00 00 00	 mov	 DWORD PTR ?MixerDevSettings@@3PAUSETTING@@A+556, 0

; 1485 :         "Mixer", "NoHardwareMute", NULL,

  000d0	c7 05 30 02 00
	00 00 00 00 00	 mov	 DWORD PTR ?MixerDevSettings@@3PAUSETTING@@A+560, OFFSET ??_C@_05JEEHMIBO@Mixer?$AA@
  000da	c7 05 34 02 00
	00 00 00 00 00	 mov	 DWORD PTR ?MixerDevSettings@@3PAUSETTING@@A+564, OFFSET ??_C@_0P@ODGLELLM@NoHardwareMute?$AA@
  000e4	c7 05 38 02 00
	00 00 00 00 00	 mov	 DWORD PTR ?MixerDevSettings@@3PAUSETTING@@A+568, 0

; 1486 :     },
; 1487 : };

  000ee	5d		 pop	 ebp
  000ef	c3		 ret	 0
??__EMixerDevSettings@@YAXXZ ENDP			; `dynamic initializer for 'MixerDevSettings''
; Function compile flags: /Odtp
;	COMDAT ??__Fg_pMixerName@@YAXXZ
text$yd	SEGMENT
??__Fg_pMixerName@@YAXXZ PROC				; `dynamic atexit destructor for 'g_pMixerName'', COMDAT
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET ?g_pMixerName@@3VSettingStringValue@@A ; g_pMixerName
  00008	e8 00 00 00 00	 call	 ??1SettingStringValue@@QAE@XZ ; SettingStringValue::~SettingStringValue
  0000d	5d		 pop	 ebp
  0000e	c3		 ret	 0
??__Fg_pMixerName@@YAXXZ ENDP				; `dynamic atexit destructor for 'g_pMixerName''
; Function compile flags: /Odtp
;	COMDAT ??__FMixerSettings@@YAXXZ
text$yd	SEGMENT
??__FMixerSettings@@YAXXZ PROC				; `dynamic atexit destructor for 'MixerSettings'', COMDAT
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET ?MixerSettings@@3V?$SmartPtr@VCSettingsHolder@@@@A ; MixerSettings
  00008	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSettingsHolder@@@@QAE@XZ ; SmartPtr<CSettingsHolder>::~SmartPtr<CSettingsHolder>
  0000d	5d		 pop	 ebp
  0000e	c3		 ret	 0
??__FMixerSettings@@YAXXZ ENDP				; `dynamic atexit destructor for 'MixerSettings''
PUBLIC	?MixerDevSettings@@3PAUSETTING@@A		; MixerDevSettings
PUBLIC	?g_pMixerName@@3VSettingStringValue@@A		; g_pMixerName
PUBLIC	?MixerSettings@@3V?$SmartPtr@VCSettingsHolder@@@@A ; MixerSettings
?g_pMixerName@@3VSettingStringValue@@A DD 01H DUP (?)	; g_pMixerName
	ALIGN	8

?MixerSettings@@3V?$SmartPtr@VCSettingsHolder@@@@A DQ 01H DUP (?) ; MixerSettings
?MixerDevSettings@@3PAUSETTING@@A DD FLAT:??_C@_09HKKCEJE@Use?5Mixer?$AA@ ; MixerDevSettings
	DD	01H
	DD	00H
	DD	FLAT:_g_bUseMixer
	DD	00H
	DD	00H
	DD	01H
	DD	01H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_05JEEHMIBO@Mixer?$AA@
	DD	FLAT:??_C@_08BIIMBL@UseMixer?$AA@
	DD	00H
	DD	FLAT:??_C@_09LEMDJOBK@DestIndex?$AA@
	DD	04H
	DD	00H
	DD	FLAT:_g_nDestinationIndex
	DD	00H
	DD	00H
	DD	0ffH
	DD	01H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_05JEEHMIBO@Mixer?$AA@
	DD	FLAT:??_C@_09LEMDJOBK@DestIndex?$AA@
	DD	00H
	DD	FLAT:??_C@_0O@HGODOCPF@Input?51?5Index?$AA@
	DD	04H
	DD	00H
	DD	FLAT:_g_nSourceIndexes
	DD	0ffffffffH
	DD	0ffffffffH
	DD	0ffH
	DD	01H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_05JEEHMIBO@Mixer?$AA@
	DD	FLAT:??_C@_0M@FCNKDDKI@Input1Index?$AA@
	DD	00H
	DD	FLAT:??_C@_0O@PIGMOFBG@Input?52?5Index?$AA@
	DD	04H
	DD	00H
	DD	FLAT:_g_nSourceIndexes+4
	DD	0ffffffffH
	DD	0ffffffffH
	DD	0ffH
	DD	01H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_05JEEHMIBO@Mixer?$AA@
	DD	FLAT:??_C@_0M@GDDCCJDF@Input2Index?$AA@
	DD	00H
	DD	FLAT:??_C@_0O@DEMGOFII@Input?53?5Index?$AA@
	DD	04H
	DD	00H
	DD	FLAT:_g_nSourceIndexes+8
	DD	0ffffffffH
	DD	0ffffffffH
	DD	0ffH
	DD	01H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_05JEEHMIBO@Mixer?$AA@
	DD	FLAT:??_C@_0M@MFEFCCIB@Input3Index?$AA@
	DD	00H
	DD	FLAT:??_C@_0O@DOADOMJB@Input?54?5Index?$AA@
	DD	04H
	DD	00H
	DD	FLAT:_g_nSourceIndexes+12
	DD	0ffffffffH
	DD	0ffffffffH
	DD	0ffH
	DD	01H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_05JEEHMIBO@Mixer?$AA@
	DD	FLAT:??_C@_0M@OCBMAP@Input4Index?$AA@
	DD	00H
	DD	FLAT:??_C@_0BE@HGGFODAH@Reset?5Mixer?5on?5Exit?$AA@
	DD	01H
	DD	00H
	DD	FLAT:_g_bResetOnExit
	DD	00H
	DD	00H
	DD	01H
	DD	01H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_05JEEHMIBO@Mixer?$AA@
	DD	FLAT:??_C@_0M@OEAJNKMO@ResetOnExit?$AA@
	DD	00H
	DD	FLAT:??_C@_0O@PCKJOMAP@Input?55?5Index?$AA@
	DD	04H
	DD	00H
	DD	FLAT:_g_nSourceIndexes+16
	DD	0ffffffffH
	DD	0ffffffffH
	DD	0ffH
	DD	01H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_05JEEHMIBO@Mixer?$AA@
	DD	FLAT:??_C@_0M@KGJFBHLL@Input5Index?$AA@
	DD	00H
	DD	FLAT:??_C@_0O@HMCGOLOM@Input?56?5Index?$AA@
	DD	04H
	DD	00H
	DD	FLAT:_g_nSourceIndexes+20
	DD	0ffffffffH
	DD	0ffffffffH
	DD	0ffH
	DD	01H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_05JEEHMIBO@Mixer?$AA@
	DD	FLAT:??_C@_0M@JHHNANCG@Input6Index?$AA@
	DD	00H
	DD	FLAT:??_C@_0L@DHKBIPLI@Mixer?5Name?$AA@
	DD	06H
	DD	00H
	ORG $+92
_MixerSettings$initializer$ DD FLAT:??__EMixerSettings@@YAXXZ
_g_pMixerName$initializer$ DD FLAT:??__Eg_pMixerName@@YAXXZ
_MixerDevSettings$initializer$ DD FLAT:??__EMixerDevSettings@@YAXXZ
END
