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

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

INCLUDELIB OLDNAMES

PUBLIC	??_R4CSource@@6BCEventObject@@@			; CSource::`RTTI Complete Object Locator'
PUBLIC	?SetSourceAsCurrent@CSource@@UAEXXZ		; CSource::SetSourceAsCurrent
PUBLIC	??_R4CSource@@6BCSettingsHolder@@@		; CSource::`RTTI Complete Object Locator'
PUBLIC	?UnsetSourceAsCurrent@CSource@@UAEXXZ		; CSource::UnsetSourceAsCurrent
PUBLIC	??_GCSource@@UAEPAXI@Z				; CSource::`scalar deleting destructor'
PUBLIC	??_ECSource@@WEA@AEPAXI@Z			; [thunk]:CSource::`vector deleting destructor'
PUBLIC	??_7CSource@@6BCSettingsHolder@@@		; CSource::`vftable'
PUBLIC	??_7CSource@@6BCEventObject@@@			; CSource::`vftable'
EXTRN	??_ECSource@@UAEPAXI@Z:PROC			; CSource::`vector deleting destructor'
;	COMDAT ??_7CSource@@6BCEventObject@@@
CONST	SEGMENT
??_7CSource@@6BCEventObject@@@ DD FLAT:??_R4CSource@@6BCEventObject@@@ ; CSource::`vftable'
	DD	FLAT:??_ECSource@@WEA@AEPAXI@Z
	DD	FLAT:?OnEvent@CEventObject@@UAEXPAV1@W4eEventType@@JJPAW42@@Z
CONST	ENDS
;	COMDAT ??_R4CSource@@6BCEventObject@@@
rdata$r	SEGMENT
??_R4CSource@@6BCEventObject@@@ DD 00H			; CSource::`RTTI Complete Object Locator'
	DD	040H
	DD	00H
	DD	FLAT:??_R0?AVCSource@@@8
	DD	FLAT:??_R3CSource@@8
rdata$r	ENDS
;	COMDAT ??_7CSource@@6BCSettingsHolder@@@
CONST	SEGMENT
??_7CSource@@6BCSettingsHolder@@@ DD FLAT:??_R4CSource@@6BCSettingsHolder@@@ ; CSource::`vftable'
	DD	FLAT:??_ECSource@@UAEPAXI@Z
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:?GetTunerId@CSource@@UAE?AW4eTunerId@@XZ
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:?SetSourceAsCurrent@CSource@@UAEXXZ
	DD	FLAT:?UnsetSourceAsCurrent@CSource@@UAEXXZ
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
	DD	FLAT:__purecall
CONST	ENDS
;	COMDAT ??_R4CSource@@6BCSettingsHolder@@@
rdata$r	SEGMENT
??_R4CSource@@6BCSettingsHolder@@@ DD 00H		; CSource::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVCSource@@@8
	DD	FLAT:??_R3CSource@@8
; Function compile flags: /Odtp
;	COMDAT ??_ECSource@@WEA@AEPAXI@Z
_TEXT	SEGMENT
??_ECSource@@WEA@AEPAXI@Z PROC				; [thunk]:CSource::`vector deleting destructor', COMDAT
  00000	83 e9 40	 sub	 ecx, 64			; 00000040H
  00003	e9 00 00 00 00	 jmp	 ??_ECSource@@UAEPAXI@Z
??_ECSource@@WEA@AEPAXI@Z ENDP				; [thunk]:CSource::`vector deleting destructor'
_TEXT	ENDS
PUBLIC	?ChangeDefaultsForSetup@CSource@@IAEXGH@Z	; CSource::ChangeDefaultsForSetup
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\source.cpp
;	COMDAT ?ChangeDefaultsForSetup@CSource@@IAEXGH@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_Setup$ = 8						; size = 2
_bDontSetValue$ = 12					; size = 4
?ChangeDefaultsForSetup@CSource@@IAEXGH@Z PROC		; CSource::ChangeDefaultsForSetup, COMDAT
; _this$ = ecx

; 96   : {

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

; 97   :     if (Setup & SETUP_CHANGE_VIDEOINPUT)

  00007	0f b7 45 08	 movzx	 eax, WORD PTR _Setup$[ebp]
  0000b	83 e0 10	 and	 eax, 16			; 00000010H
  0000e	74 14		 je	 SHORT $LN3@ChangeDefa

; 98   :     {
; 99   :         ChangeDefaultsForVideoInput(bDontSetValue);

  00010	8b 4d 0c	 mov	 ecx, DWORD PTR _bDontSetValue$[ebp]
  00013	51		 push	 ecx
  00014	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00017	8b 02		 mov	 eax, DWORD PTR [edx]
  00019	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0001c	8b 90 f0 00 00
	00		 mov	 edx, DWORD PTR [eax+240]
  00022	ff d2		 call	 edx
$LN3@ChangeDefa:

; 100  :     }
; 101  :     if (Setup & SETUP_CHANGE_VIDEOFORMAT)

  00024	0f b7 45 08	 movzx	 eax, WORD PTR _Setup$[ebp]
  00028	83 e0 20	 and	 eax, 32			; 00000020H
  0002b	74 14		 je	 SHORT $LN2@ChangeDefa

; 102  :     {
; 103  :         ChangeDefaultsForVideoFormat(bDontSetValue);

  0002d	8b 4d 0c	 mov	 ecx, DWORD PTR _bDontSetValue$[ebp]
  00030	51		 push	 ecx
  00031	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00034	8b 02		 mov	 eax, DWORD PTR [edx]
  00036	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00039	8b 90 ec 00 00
	00		 mov	 edx, DWORD PTR [eax+236]
  0003f	ff d2		 call	 edx
$LN2@ChangeDefa:

; 104  :     }
; 105  :     if (Setup & SETUP_CHANGE_AUDIOINPUT)

  00041	0f b7 45 08	 movzx	 eax, WORD PTR _Setup$[ebp]
  00045	83 e0 40	 and	 eax, 64			; 00000040H
  00048	74 14		 je	 SHORT $LN4@ChangeDefa

; 106  :     {
; 107  :         ChangeDefaultsForAudioInput(bDontSetValue);

  0004a	8b 4d 0c	 mov	 ecx, DWORD PTR _bDontSetValue$[ebp]
  0004d	51		 push	 ecx
  0004e	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00051	8b 02		 mov	 eax, DWORD PTR [edx]
  00053	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00056	8b 90 f4 00 00
	00		 mov	 edx, DWORD PTR [eax+244]
  0005c	ff d2		 call	 edx
$LN4@ChangeDefa:

; 108  :     }
; 109  : }

  0005e	8b e5		 mov	 esp, ebp
  00060	5d		 pop	 ebp
  00061	c2 08 00	 ret	 8
?ChangeDefaultsForSetup@CSource@@IAEXGH@Z ENDP		; CSource::ChangeDefaultsForSetup
_TEXT	ENDS
PUBLIC	?GetSourceMenu@CSource@@QAEPAUHMENU__@@XZ	; CSource::GetSourceMenu
; Function compile flags: /Odtp
;	COMDAT ?GetSourceMenu@CSource@@QAEPAUHMENU__@@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetSourceMenu@CSource@@QAEPAUHMENU__@@XZ PROC		; CSource::GetSourceMenu, COMDAT
; _this$ = ecx

; 52   : {

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

; 53   :     return m_hMenu;

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

; 54   : }

  0000d	8b e5		 mov	 esp, ebp
  0000f	5d		 pop	 ebp
  00010	c3		 ret	 0
?GetSourceMenu@CSource@@QAEPAUHMENU__@@XZ ENDP		; CSource::GetSourceMenu
_TEXT	ENDS
PUBLIC	?GetFieldFrequency@CSource@@QAENXZ		; CSource::GetFieldFrequency
; Function compile flags: /Odtp
;	COMDAT ?GetFieldFrequency@CSource@@QAENXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetFieldFrequency@CSource@@QAENXZ PROC			; CSource::GetFieldFrequency, COMDAT
; _this$ = ecx

; 47   : {

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

; 48   :     return m_FieldFrequency;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	dd 40 48	 fld	 QWORD PTR [eax+72]

; 49   : }

  0000d	8b e5		 mov	 esp, ebp
  0000f	5d		 pop	 ebp
  00010	c3		 ret	 0
?GetFieldFrequency@CSource@@QAENXZ ENDP			; CSource::GetFieldFrequency
PUBLIC	?HasTuner@CSource@@QAEHXZ			; CSource::HasTuner
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?HasTuner@CSource@@QAEHXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?HasTuner@CSource@@QAEHXZ$0
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?HasTuner@CSource@@QAEHXZ$1
__ehfuncinfo$?HasTuner@CSource@@QAEHXZ DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?HasTuner@CSource@@QAEHXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?HasTuner@CSource@@QAEHXZ
_TEXT	SEGMENT
tv93 = -60						; size = 4
tv134 = -56						; size = 4
tv136 = -52						; size = 4
tv132 = -48						; size = 4
tv135 = -44						; size = 4
_this$ = -40						; size = 4
$T319322 = -36						; size = 8
$T319321 = -28						; size = 4
$T319320 = -24						; size = 8
$T319319 = -13						; size = 1
__$EHRec$ = -12						; size = 12
?HasTuner@CSource@@QAEHXZ PROC				; CSource::HasTuner, COMDAT
; _this$ = ecx

; 81   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?HasTuner@CSource@@QAEHXZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 30	 sub	 esp, 48			; 00000030H
  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 d8	 mov	 DWORD PTR _this$[ebp], ecx

; 82   :     if (!GetTuner().IsValid())

  00028	8d 45 e8	 lea	 eax, DWORD PTR $T319320[ebp]
  0002b	50		 push	 eax
  0002c	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  0002f	8b 11		 mov	 edx, DWORD PTR [ecx]
  00031	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  00034	8b 82 cc 00 00
	00		 mov	 eax, DWORD PTR [edx+204]
  0003a	ff d0		 call	 eax
  0003c	89 45 d4	 mov	 DWORD PTR tv135[ebp], eax
  0003f	8b 4d d4	 mov	 ecx, DWORD PTR tv135[ebp]
  00042	89 4d d0	 mov	 DWORD PTR tv132[ebp], ecx
  00045	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0004c	8b 4d d0	 mov	 ecx, DWORD PTR tv132[ebp]
  0004f	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VITuner@@@@QBEHXZ ; SmartPtr<ITuner>::IsValid
  00054	f7 d8		 neg	 eax
  00056	1b c0		 sbb	 eax, eax
  00058	83 c0 01	 add	 eax, 1
  0005b	88 45 f3	 mov	 BYTE PTR $T319319[ebp], al
  0005e	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00065	8d 4d e8	 lea	 ecx, DWORD PTR $T319320[ebp]
  00068	e8 00 00 00 00	 call	 ??1?$SmartPtr@VITuner@@@@QAE@XZ ; SmartPtr<ITuner>::~SmartPtr<ITuner>
  0006d	0f b6 55 f3	 movzx	 edx, BYTE PTR $T319319[ebp]
  00071	85 d2		 test	 edx, edx
  00073	74 04		 je	 SHORT $LN2@HasTuner

; 83   :     {
; 84   :         return FALSE;

  00075	33 c0		 xor	 eax, eax
  00077	eb 6c		 jmp	 SHORT $LN3@HasTuner
$LN2@HasTuner:

; 85   :     }
; 86   :     //this may differ from base behaviour..
; 87   :     if (GetTunerId() == TUNER_ABSENT)

  00079	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  0007c	8b 10		 mov	 edx, DWORD PTR [eax]
  0007e	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  00081	8b 42 60	 mov	 eax, DWORD PTR [edx+96]
  00084	ff d0		 call	 eax
  00086	85 c0		 test	 eax, eax
  00088	75 04		 jne	 SHORT $LN1@HasTuner

; 88   :     {
; 89   :         return FALSE;

  0008a	33 c0		 xor	 eax, eax
  0008c	eb 57		 jmp	 SHORT $LN3@HasTuner
$LN1@HasTuner:

; 90   :     }
; 91   :     return (GetTuner()->GetTunerId() != TUNER_ABSENT);

  0008e	8d 4d dc	 lea	 ecx, DWORD PTR $T319322[ebp]
  00091	51		 push	 ecx
  00092	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  00095	8b 02		 mov	 eax, DWORD PTR [edx]
  00097	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  0009a	8b 90 cc 00 00
	00		 mov	 edx, DWORD PTR [eax+204]
  000a0	ff d2		 call	 edx
  000a2	89 45 cc	 mov	 DWORD PTR tv136[ebp], eax
  000a5	8b 45 cc	 mov	 eax, DWORD PTR tv136[ebp]
  000a8	89 45 c8	 mov	 DWORD PTR tv134[ebp], eax
  000ab	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1
  000b2	8b 4d c8	 mov	 ecx, DWORD PTR tv134[ebp]
  000b5	e8 00 00 00 00	 call	 ??C?$SmartPtr@VITuner@@@@QBEPAVITuner@@XZ ; SmartPtr<ITuner>::operator->
  000ba	89 45 c4	 mov	 DWORD PTR tv93[ebp], eax
  000bd	8b 4d c4	 mov	 ecx, DWORD PTR tv93[ebp]
  000c0	8b 11		 mov	 edx, DWORD PTR [ecx]
  000c2	8b 4d c4	 mov	 ecx, DWORD PTR tv93[ebp]
  000c5	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  000c8	ff d0		 call	 eax
  000ca	f7 d8		 neg	 eax
  000cc	1b c0		 sbb	 eax, eax
  000ce	f7 d8		 neg	 eax
  000d0	89 45 e4	 mov	 DWORD PTR $T319321[ebp], eax
  000d3	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  000da	8d 4d dc	 lea	 ecx, DWORD PTR $T319322[ebp]
  000dd	e8 00 00 00 00	 call	 ??1?$SmartPtr@VITuner@@@@QAE@XZ ; SmartPtr<ITuner>::~SmartPtr<ITuner>
  000e2	8b 45 e4	 mov	 eax, DWORD PTR $T319321[ebp]
$LN3@HasTuner:

; 92   : }

  000e5	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  000e8	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000ef	59		 pop	 ecx
  000f0	8b e5		 mov	 esp, ebp
  000f2	5d		 pop	 ebp
  000f3	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?HasTuner@CSource@@QAEHXZ$0:
  00000	8d 4d e8	 lea	 ecx, DWORD PTR $T319320[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VITuner@@@@QAE@XZ ; SmartPtr<ITuner>::~SmartPtr<ITuner>
__unwindfunclet$?HasTuner@CSource@@QAEHXZ$1:
  00008	8d 4d dc	 lea	 ecx, DWORD PTR $T319322[ebp]
  0000b	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VITuner@@@@QAE@XZ ; SmartPtr<ITuner>::~SmartPtr<ITuner>
__ehhandler$?HasTuner@CSource@@QAEHXZ:
  00010	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00014	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00017	8b 4a cc	 mov	 ecx, DWORD PTR [edx-52]
  0001a	33 c8		 xor	 ecx, eax
  0001c	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00021	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?HasTuner@CSource@@QAEHXZ
  00026	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?HasTuner@CSource@@QAEHXZ ENDP				; CSource::HasTuner
PUBLIC	?NotifySquarePixelsCheck@CSource@@IAEXXZ	; CSource::NotifySquarePixelsCheck
; Function compile flags: /Odtp
;	COMDAT ?NotifySquarePixelsCheck@CSource@@IAEXXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?NotifySquarePixelsCheck@CSource@@IAEXXZ PROC		; CSource::NotifySquarePixelsCheck, COMDAT
; _this$ = ecx

; 71   : {

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

; 72   :     if (Providers_GetCurrentSource() == this)

  00007	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  0000c	3b 45 fc	 cmp	 eax, DWORD PTR _this$[ebp]
  0000f	75 11		 jne	 SHORT $LN2@NotifySqua

; 73   :     {
; 74   :         // Tell dscaler to check whether _T("square pixels") AR mode must be on or off
; 75   :         // The real work will be done in the main message loop
; 76   :         PostMessageToMainWindow(UWM_SQUAREPIXELS_CHECK,0,0);

  00011	6a 00		 push	 0
  00013	6a 00		 push	 0
  00015	68 02 90 00 00	 push	 36866			; 00009002H
  0001a	e8 00 00 00 00	 call	 ?PostMessageToMainWindow@@YAXIIJ@Z ; PostMessageToMainWindow
  0001f	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN2@NotifySqua:

; 77   :     }
; 78   : }

  00022	8b e5		 mov	 esp, ebp
  00024	5d		 pop	 ebp
  00025	c3		 ret	 0
?NotifySquarePixelsCheck@CSource@@IAEXXZ ENDP		; CSource::NotifySquarePixelsCheck
_TEXT	ENDS
PUBLIC	?NotifySizeChange@CSource@@IAEXXZ		; CSource::NotifySizeChange
; Function compile flags: /Odtp
;	COMDAT ?NotifySizeChange@CSource@@IAEXXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?NotifySizeChange@CSource@@IAEXXZ PROC			; CSource::NotifySizeChange, COMDAT
; _this$ = ecx

; 62   : {

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

; 63   :     if (Providers_GetCurrentSource() == this)

  00007	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  0000c	3b 45 fc	 cmp	 eax, DWORD PTR _this$[ebp]
  0000f	75 11		 jne	 SHORT $LN2@NotifySize

; 64   :     {
; 65   :         //tell dscaler that size has changed, the real work will be done in the main message loop
; 66   :         PostMessageToMainWindow(UWM_INPUTSIZE_CHANGE,0,0);

  00011	6a 00		 push	 0
  00013	6a 00		 push	 0
  00015	68 01 90 00 00	 push	 36865			; 00009001H
  0001a	e8 00 00 00 00	 call	 ?PostMessageToMainWindow@@YAXIIJ@Z ; PostMessageToMainWindow
  0001f	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN2@NotifySize:

; 67   :     }
; 68   : }

  00022	8b e5		 mov	 esp, ebp
  00024	5d		 pop	 ebp
  00025	c3		 ret	 0
?NotifySizeChange@CSource@@IAEXXZ ENDP			; CSource::NotifySizeChange
_TEXT	ENDS
PUBLIC	?GetComments@CSource@@QAEPB_WXZ			; CSource::GetComments
; Function compile flags: /Odtp
;	COMDAT ?GetComments@CSource@@QAEPB_WXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetComments@CSource@@QAEPB_WXZ PROC			; CSource::GetComments, COMDAT
; _this$ = ecx

; 57   : {

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

; 58   :     return m_Comments.c_str();

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	83 c1 54	 add	 ecx, 84			; 00000054H
  0000d	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

; 59   : }

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

; 42   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??1CSource@@UAE@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00017	33 c5		 xor	 eax, ebp
  00019	50		 push	 eax
  0001a	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001d	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00023	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx
  00026	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00029	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], OFFSET ??_7CSource@@6BCSettingsHolder@@@
  0002f	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00032	c7 41 40 00 00
	00 00		 mov	 DWORD PTR [ecx+64], OFFSET ??_7CSource@@6BCEventObject@@@
  00039	c7 45 fc 02 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 2

; 43   :     DestroyMenu(m_hMenu);

  00040	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00043	8b 42 50	 mov	 eax, DWORD PTR [edx+80]
  00046	50		 push	 eax
  00047	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__DestroyMenu@4

; 44   : }

  0004d	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00051	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00054	83 c1 54	 add	 ecx, 84			; 00000054H
  00057	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> >
  0005c	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  00060	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00063	83 c1 40	 add	 ecx, 64			; 00000040H
  00066	e8 00 00 00 00	 call	 ??1CEventObject@@UAE@XZ	; CEventObject::~CEventObject
  0006b	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00072	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00075	e8 00 00 00 00	 call	 ??1CSettingsHolder@@UAE@XZ ; CSettingsHolder::~CSettingsHolder
  0007a	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0007d	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00084	59		 pop	 ecx
  00085	8b e5		 mov	 esp, ebp
  00087	5d		 pop	 ebp
  00088	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1CSource@@UAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1CSettingsHolder@@UAE@XZ ; CSettingsHolder::~CSettingsHolder
__unwindfunclet$??1CSource@@UAE@XZ$1:
  00008	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0000b	83 c1 40	 add	 ecx, 64			; 00000040H
  0000e	e9 00 00 00 00	 jmp	 ??1CEventObject@@UAE@XZ	; CEventObject::~CEventObject
__unwindfunclet$??1CSource@@UAE@XZ$2:
  00013	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00016	83 c1 54	 add	 ecx, 84			; 00000054H
  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> >
__ehhandler$??1CSource@@UAE@XZ:
  0001e	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00022	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00025	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  00028	33 c8		 xor	 ecx, eax
  0002a	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002f	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??1CSource@@UAE@XZ
  00034	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??1CSource@@UAE@XZ ENDP					; CSource::~CSource
; Function compile flags: /Odtp
;	COMDAT ??_GCSource@@UAEPAXI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___flags$ = 8						; size = 4
??_GCSource@@UAEPAXI@Z PROC				; CSource::`scalar deleting destructor', COMDAT
; _this$ = ecx
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ??1CSource@@UAE@XZ	; CSource::~CSource
  0000f	8b 45 08	 mov	 eax, DWORD PTR ___flags$[ebp]
  00012	83 e0 01	 and	 eax, 1
  00015	74 0c		 je	 SHORT $LN1@scalar@406
  00017	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0001a	51		 push	 ecx
  0001b	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00020	83 c4 04	 add	 esp, 4
$LN1@scalar@406:
  00023	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00026	8b e5		 mov	 esp, ebp
  00028	5d		 pop	 ebp
  00029	c2 04 00	 ret	 4
??_GCSource@@UAEPAXI@Z ENDP				; CSource::`scalar deleting destructor'
PUBLIC	??0CSource@@IAE@JJ@Z				; CSource::CSource
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0CSource@@IAE@JJ@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0CSource@@IAE@JJ@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$??0CSource@@IAE@JJ@Z$1
	DD	01H
	DD	FLAT:__unwindfunclet$??0CSource@@IAE@JJ@Z$2
__ehfuncinfo$??0CSource@@IAE@JJ@Z DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$??0CSource@@IAE@JJ@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??0CSource@@IAE@JJ@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_SetMessage$ = 8					; size = 4
_MenuId$ = 12						; size = 4
??0CSource@@IAE@JJ@Z PROC				; CSource::CSource, COMDAT
; _this$ = ecx

; 37   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??0CSource@@IAE@JJ@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00017	33 c5		 xor	 eax, ebp
  00019	50		 push	 eax
  0001a	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001d	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00023	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx
  00026	6a 00		 push	 0
  00028	8b 45 08	 mov	 eax, DWORD PTR _SetMessage$[ebp]
  0002b	50		 push	 eax
  0002c	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0002f	e8 00 00 00 00	 call	 ??0CSettingsHolder@@QAE@JI@Z ; CSettingsHolder::CSettingsHolder
  00034	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0003b	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0003e	83 c1 40	 add	 ecx, 64			; 00000040H
  00041	e8 00 00 00 00	 call	 ??0CEventObject@@QAE@XZ	; CEventObject::CEventObject
  00046	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  0004a	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0004d	c7 01 00 00 00
	00		 mov	 DWORD PTR [ecx], OFFSET ??_7CSource@@6BCSettingsHolder@@@
  00053	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00056	c7 42 40 00 00
	00 00		 mov	 DWORD PTR [edx+64], OFFSET ??_7CSource@@6BCEventObject@@@
  0005d	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00060	d9 ee		 fldz
  00062	dd 58 48	 fstp	 QWORD PTR [eax+72]
  00065	68 00 00 00 00	 push	 OFFSET ??_C@_11LOCGONAA@?$AA?$AA@
  0006a	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0006d	83 c1 54	 add	 ecx, 84			; 00000054H
  00070	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> >
  00075	c6 45 fc 02	 mov	 BYTE PTR __$EHRec$[ebp+8], 2

; 38   :     m_hMenu = LoadMenu(hResourceInst, MAKEINTRESOURCE(MenuId));

  00079	0f b7 4d 0c	 movzx	 ecx, WORD PTR _MenuId$[ebp]
  0007d	51		 push	 ecx
  0007e	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?hResourceInst@@3PAUHINSTANCE__@@A ; hResourceInst
  00084	52		 push	 edx
  00085	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LoadMenuW@8
  0008b	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0008e	89 41 50	 mov	 DWORD PTR [ecx+80], eax

; 39   : }

  00091	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00098	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  0009b	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0009e	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000a5	59		 pop	 ecx
  000a6	8b e5		 mov	 esp, ebp
  000a8	5d		 pop	 ebp
  000a9	c2 08 00	 ret	 8
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0CSource@@IAE@JJ@Z$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1CSettingsHolder@@UAE@XZ ; CSettingsHolder::~CSettingsHolder
__unwindfunclet$??0CSource@@IAE@JJ@Z$1:
  00008	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0000b	83 c1 40	 add	 ecx, 64			; 00000040H
  0000e	e9 00 00 00 00	 jmp	 ??1CEventObject@@UAE@XZ	; CEventObject::~CEventObject
__unwindfunclet$??0CSource@@IAE@JJ@Z$2:
  00013	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00016	83 c1 54	 add	 ecx, 84			; 00000054H
  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> >
__ehhandler$??0CSource@@IAE@JJ@Z:
  0001e	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00022	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00025	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  00028	33 c8		 xor	 ecx, eax
  0002a	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002f	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??0CSource@@IAE@JJ@Z
  00034	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??0CSource@@IAE@JJ@Z ENDP				; CSource::CSource
; Function compile flags: /Odtp
;	COMDAT ?SetSourceAsCurrent@CSource@@UAEXXZ
_TEXT	SEGMENT
tv80 = -8						; size = 4
_this$ = -4						; size = 4
?SetSourceAsCurrent@CSource@@UAEXXZ PROC		; CSource::SetSourceAsCurrent, COMDAT
; _this$ = ecx

; 112  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8
  00006	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 113  :     // may need to register settings in here
; 114  :     // not sure yet
; 115  : 
; 116  :     if (GetVolume() == NULL)

  00009	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	8b 10		 mov	 edx, DWORD PTR [eax]
  0000e	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00011	8b 42 24	 mov	 eax, DWORD PTR [edx+36]
  00014	ff d0		 call	 eax
  00016	85 c0		 test	 eax, eax
  00018	75 35		 jne	 SHORT $LN2@SetSourceA@2

; 117  :     {
; 118  :         EventCollector->RaiseEvent(this, EVENT_NO_VOLUME, 0, 1);

  0001a	83 7d fc 00	 cmp	 DWORD PTR _this$[ebp], 0
  0001e	74 0b		 je	 SHORT $LN4@SetSourceA@2
  00020	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00023	83 c1 40	 add	 ecx, 64			; 00000040H
  00026	89 4d f8	 mov	 DWORD PTR tv80[ebp], ecx
  00029	eb 07		 jmp	 SHORT $LN5@SetSourceA@2
$LN4@SetSourceA@2:
  0002b	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR tv80[ebp], 0
$LN5@SetSourceA@2:
  00032	6a 00		 push	 0
  00034	6a 01		 push	 1
  00036	6a 00		 push	 0
  00038	6a 15		 push	 21			; 00000015H
  0003a	8b 55 f8	 mov	 edx, DWORD PTR tv80[ebp]
  0003d	52		 push	 edx
  0003e	b9 00 00 00 00	 mov	 ecx, OFFSET ?EventCollector@@3V?$SmartPtr@VCEventCollector@@@@A ; EventCollector
  00043	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCEventCollector@@@@QBEPAVCEventCollector@@XZ ; SmartPtr<CEventCollector>::operator->
  00048	8b c8		 mov	 ecx, eax
  0004a	e8 00 00 00 00	 call	 ?RaiseEvent@CEventCollector@@QAEXPAVCEventObject@@W4eEventType@@JJPAW43@@Z ; CEventCollector::RaiseEvent
$LN2@SetSourceA@2:

; 119  :     }
; 120  : }

  0004f	8b e5		 mov	 esp, ebp
  00051	5d		 pop	 ebp
  00052	c3		 ret	 0
?SetSourceAsCurrent@CSource@@UAEXXZ ENDP		; CSource::SetSourceAsCurrent
; Function compile flags: /Odtp
;	COMDAT ?UnsetSourceAsCurrent@CSource@@UAEXXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?UnsetSourceAsCurrent@CSource@@UAEXXZ PROC		; CSource::UnsetSourceAsCurrent, COMDAT
; _this$ = ecx

; 123  : {

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

; 124  :     SettingsMaster->SaveGroupedSettings();

  00007	b9 00 00 00 00	 mov	 ecx, OFFSET ?SettingsMaster@@3V?$SmartPtr@VCSettingsMaster@@@@A ; SettingsMaster
  0000c	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSettingsMaster@@@@QBEPAVCSettingsMaster@@XZ ; SmartPtr<CSettingsMaster>::operator->
  00011	8b c8		 mov	 ecx, eax
  00013	e8 00 00 00 00	 call	 ?SaveGroupedSettings@CSettingsMaster@@QAEXXZ ; CSettingsMaster::SaveGroupedSettings

; 125  : }

  00018	8b e5		 mov	 esp, ebp
  0001a	5d		 pop	 ebp
  0001b	c3		 ret	 0
?UnsetSourceAsCurrent@CSource@@UAEXXZ ENDP		; CSource::UnsetSourceAsCurrent
END
