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

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

INCLUDELIB OLDNAMES

PUBLIC	?InitOtherSettings@COverlayOutput@@UAEXXZ	; COverlayOutput::InitOtherSettings
PUBLIC	?Type@COverlayOutput@@UAE?AW4OUTPUTTYPES@IOutput@@XZ ; COverlayOutput::Type
PUBLIC	?Overlay_GetRGB@COverlayOutput@@UAEHXZ		; COverlayOutput::Overlay_GetRGB
PUBLIC	?Overlay_SetRGB@COverlayOutput@@UAEXH@Z		; COverlayOutput::Overlay_SetRGB
PUBLIC	?WaitForVerticalBlank@COverlayOutput@@UAEXXZ	; COverlayOutput::WaitForVerticalBlank
PUBLIC	?Overlay_Flip@COverlayOutput@@UAEHKHPAEHPAUTDeinterlaceInfo@@@Z ; COverlayOutput::Overlay_Flip
PUBLIC	?Overlay_Unlock@COverlayOutput@@UAEHXZ		; COverlayOutput::Overlay_Unlock
PUBLIC	?Overlay_Lock@COverlayOutput@@UAEHPAUTDeinterlaceInfo@@@Z ; COverlayOutput::Overlay_Lock
PUBLIC	?Overlay_Unlock_Back_Buffer@COverlayOutput@@UAEHH@Z ; COverlayOutput::Overlay_Unlock_Back_Buffer
PUBLIC	?Overlay_Lock_Back_Buffer@COverlayOutput@@UAEHPAUTDeinterlaceInfo@@H@Z ; COverlayOutput::Overlay_Lock_Back_Buffer
PUBLIC	?Overlay_SetColorControls@COverlayOutput@@UAEXXZ ; COverlayOutput::Overlay_SetColorControls
PUBLIC	?Overlay_GetCorrectedColor@COverlayOutput@@UAEKPAUHDC__@@@Z ; COverlayOutput::Overlay_GetCorrectedColor
PUBLIC	?Overlay_GetColor@COverlayOutput@@UAEKXZ	; COverlayOutput::Overlay_GetColor
PUBLIC	?Overlay_ColorMatch@COverlayOutput@@UAEKPAUIDirectDrawSurface@@K@Z ; COverlayOutput::Overlay_ColorMatch
PUBLIC	?Overlay_Destroy@COverlayOutput@@UAEHXZ		; COverlayOutput::Overlay_Destroy
PUBLIC	?Overlay_Clean@COverlayOutput@@UAEXXZ		; COverlayOutput::Overlay_Clean
PUBLIC	?Overlay_Create@COverlayOutput@@UAEHXZ		; COverlayOutput::Overlay_Create
PUBLIC	?Overlay_Update@COverlayOutput@@UAEHPAUtagRECT@@0K@Z ; COverlayOutput::Overlay_Update
PUBLIC	?OverlayActive@COverlayOutput@@UAEHXZ		; COverlayOutput::OverlayActive
PUBLIC	?CanDoOverlayColorControl@COverlayOutput@@UAEHXZ ; COverlayOutput::CanDoOverlayColorControl
PUBLIC	?InitDD@COverlayOutput@@UAEHPAUHWND__@@@Z	; COverlayOutput::InitDD
PUBLIC	?ExitDD@COverlayOutput@@UAEXXZ			; COverlayOutput::ExitDD
PUBLIC	?CheckChangeMonitor@COverlayOutput@@UAEXPAUHWND__@@@Z ; COverlayOutput::CheckChangeMonitor
PUBLIC	?SetCurrentMonitor@COverlayOutput@@UAEXPAUHWND__@@@Z ; COverlayOutput::SetCurrentMonitor
PUBLIC	??_R4COverlayOutput@@6B@			; COverlayOutput::`RTTI Complete Object Locator'
PUBLIC	??_R3COverlayOutput@@8				; COverlayOutput::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2COverlayOutput@@8				; COverlayOutput::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@COverlayOutput@@8			; COverlayOutput::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVCOverlayOutput@@@8			; COverlayOutput `RTTI Type Descriptor'
PUBLIC	??R?$DynamicFunctionS2@HPAUHMONITOR__@@PAUtagMONITORINFO@@@@QBEHPAUHMONITOR__@@PAUtagMONITORINFO@@@Z ; DynamicFunctionS2<int,HMONITOR__ *,tagMONITORINFO *>::operator()
PUBLIC	??B?$DynamicFunctionParent@P6GJP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@Z2K@Z@@QBEHXZ ; DynamicFunctionParent<long (__stdcall*)(int (__stdcall*)(_GUID *,wchar_t *,wchar_t *,void *,HMONITOR__ *),void *,unsigned long)>::operator int
PUBLIC	??0?$DynamicFunctionParent@P6GJP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@Z2K@Z@@QAE@PB_WPBD@Z ; DynamicFunctionParent<long (__stdcall*)(int (__stdcall*)(_GUID *,wchar_t *,wchar_t *,void *,HMONITOR__ *),void *,unsigned long)>::DynamicFunctionParent<long (__stdcall*)(int (__stdcall*)(_GUID *,wchar_t *,wchar_t *,void *,HMONITOR__ *),void *,unsigned long)>
PUBLIC	??0?$DynamicFunctionS3@JP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@ZPAXK@@QAE@PB_WPBD@Z ; DynamicFunctionS3<long,int (__stdcall*)(_GUID *,wchar_t *,wchar_t *,void *,HMONITOR__ *),void *,unsigned long>::DynamicFunctionS3<long,int (__stdcall*)(_GUID *,wchar_t *,wchar_t *,void *,HMONITOR__ *),void *,unsigned long>
PUBLIC	??R?$DynamicFunctionS3@JP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@ZPAXK@@QBEJP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@Z2K@Z ; DynamicFunctionS3<long,int (__stdcall*)(_GUID *,wchar_t *,wchar_t *,void *,HMONITOR__ *),void *,unsigned long>::operator()
PUBLIC	??B?$DynamicFunctionParent@P6GHPAUHMONITOR__@@PAUtagMONITORINFO@@@Z@@QBEHXZ ; DynamicFunctionParent<int (__stdcall*)(HMONITOR__ *,tagMONITORINFO *)>::operator int
PUBLIC	??R?$DynamicFunctionS3@JPAU_GUID@@PAPAUIDirectDraw@@PAUIUnknown@@@@QBEJPAU_GUID@@PAPAUIDirectDraw@@PAUIUnknown@@@Z ; DynamicFunctionS3<long,_GUID *,IDirectDraw * *,IUnknown *>::operator()
PUBLIC	??R?$DynamicFunctionS2@PAUHMONITOR__@@PAUHWND__@@K@@QBEPAUHMONITOR__@@PAUHWND__@@K@Z ; DynamicFunctionS2<HMONITOR__ *,HWND__ *,unsigned long>::operator()
PUBLIC	??B?$DynamicFunctionParent@P6GPAUHMONITOR__@@PAUHWND__@@K@Z@@QBEHXZ ; DynamicFunctionParent<HMONITOR__ * (__stdcall*)(HWND__ *,unsigned long)>::operator int
PUBLIC	??0?$DynamicFunctionParent@P6GPAUHMONITOR__@@PAUHWND__@@K@Z@@QAE@PB_WPBD@Z ; DynamicFunctionParent<HMONITOR__ * (__stdcall*)(HWND__ *,unsigned long)>::DynamicFunctionParent<HMONITOR__ * (__stdcall*)(HWND__ *,unsigned long)>
PUBLIC	??0?$DynamicFunctionS2@PAUHMONITOR__@@PAUHWND__@@K@@QAE@PB_WPBD@Z ; DynamicFunctionS2<HMONITOR__ *,HWND__ *,unsigned long>::DynamicFunctionS2<HMONITOR__ *,HWND__ *,unsigned long>
PUBLIC	??0?$DynamicFunctionParent@P6GHPAUHMONITOR__@@PAUtagMONITORINFO@@@Z@@QAE@PB_WPBD@Z ; DynamicFunctionParent<int (__stdcall*)(HMONITOR__ *,tagMONITORINFO *)>::DynamicFunctionParent<int (__stdcall*)(HMONITOR__ *,tagMONITORINFO *)>
PUBLIC	??0?$DynamicFunctionS2@HPAUHMONITOR__@@PAUtagMONITORINFO@@@@QAE@PB_WPBD@Z ; DynamicFunctionS2<int,HMONITOR__ *,tagMONITORINFO *>::DynamicFunctionS2<int,HMONITOR__ *,tagMONITORINFO *>
PUBLIC	??0?$DynamicFunctionParent@P6GJPAU_GUID@@PAPAUIDirectDraw@@PAUIUnknown@@@Z@@QAE@PB_WPBD@Z ; DynamicFunctionParent<long (__stdcall*)(_GUID *,IDirectDraw * *,IUnknown *)>::DynamicFunctionParent<long (__stdcall*)(_GUID *,IDirectDraw * *,IUnknown *)>
PUBLIC	??0?$DynamicFunctionS3@JPAU_GUID@@PAPAUIDirectDraw@@PAUIUnknown@@@@QAE@PB_WPBD@Z ; DynamicFunctionS3<long,_GUID *,IDirectDraw * *,IUnknown *>::DynamicFunctionS3<long,_GUID *,IDirectDraw * *,IUnknown *>
PUBLIC	??_GCOverlayOutput@@UAEPAXI@Z			; COverlayOutput::`scalar deleting destructor'
PUBLIC	??_C@_1CC@JGJKHILJ@?$AAM?$AAo?$AAn?$AAi?$AAt?$AAo?$AAr?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$CF?$AAs?$AA?5?$AA?$CF?$AAs?$AA?$AA@ ; `string'
PUBLIC	??_C@_1CM@GIBACILD@?$AAM?$AAo?$AAn?$AAi?$AAt?$AAo?$AAr?$AA?5?$AAa?$AAl?$AAr?$AAa?$AAd?$AAy?$AA?5?$AAl?$AAi?$AAs?$AAt?$AAe?$AAd?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DC@BNLLAHLD@?$AAM?$AAo?$AAn?$AAi?$AAt?$AAo?$AAr?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$CI?$AA?$CF?$AAd?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$CF?$AAd?$AA?$CJ?$AA?$AA@ ; `string'
PUBLIC	??_C@_0BH@HJFPNDGE@DirectDrawEnumerateExW?$AA@	; `string'
PUBLIC	??_C@_1BE@GPJFOKIG@?$AAd?$AAd?$AAr?$AAa?$AAw?$AA?4?$AAd?$AAl?$AAl?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DA@ENAPNCMA@?$AAD?$AAi?$AAr?$AAe?$AAc?$AAt?$AAD?$AAr?$AAa?$AAw?$AAC?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?$AA@ ; `string'
PUBLIC	??_C@_1CI@CKGCBFDK@?$AA?4?$AA?2?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DM@IFNNMBMO@?$AAC?$AAo?$AAu?$AAl?$AAd?$AAn?$AA?8?$AAt?$AA?5?$AAf?$AAi?$AAn?$AAd?$AA?5?$AAc?$AAo?$AAr?$AAr?$AAe?$AAc?$AAt?$AA?5?$AAm?$AAo?$AAn?$AAi?$AAt?$AAo?$AAr?$AA?$AA@ ; `string'
PUBLIC	??_C@_1EM@CGCIBFIA@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?5?$AA?$CF?$AAx?$AA?5?$AAc?$AAa?$AAl?$AAl?$AAi?$AAn?$AAg?$AA?5?$AAU?$AAp?$AAd?$AAa?$AAt?$AAe?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AA?$CI@ ; `string'
PUBLIC	??_C@_1FG@DCGKBJDJ@?$AAP?$AAh?$AAy?$AAs?$AAi?$AAc?$AAa?$AAl?$AA?5?$AAo?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAc?$AAo?$AAl?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAz?$AAe?$AAr?$AAo?$AA?$CB?$AA?5@ ; `string'
PUBLIC	??_C@_1DK@FBKPMNMN@?$AAP?$AAh?$AAy?$AAs?$AAi?$AAc?$AAa?$AAl?$AA?5?$AAo?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAc?$AAo?$AAl?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AA?$CF?$AAx?$AA?$AA@ ; `string'
PUBLIC	??_C@_1FE@HCKJAEKC@?$AAG?$AAo?$AAt?$AA?5?$AAu?$AAn?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd?$AA?5?$AAe?$AAr?$AAr?$AAo?$AAr?$AA?5?$AAf?$AAr?$AAo?$AAm?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl@ ; `string'
PUBLIC	??_C@_1DE@JICNEBNB@?$AAR?$AAe?$AAs?$AAe?$AAt?$AA?5?$AAo?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAc?$AAo?$AAl?$AAo?$AAr?$AA?5?$AAt?$AAo?$AA?5?$AA?$CF?$AAx?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DE@HDJNIPFD@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?5?$AA?$CF?$AAx?$AA?5?$AAi?$AAn?$AA?5?$AAU?$AAp?$AAd?$AAa?$AAt?$AAe?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DO@GLCELCIB@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?5?$AA?$CF?$AAx?$AA?5?$AAi?$AAn?$AA?5?$AAS?$AAe?$AAt?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?$CI?$AA?$CJ?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DC@HIBOACLO@?$AAC?$AAa?$AAn?$AAn?$AAo?$AAt?$AA?5?$AAg?$AAe?$AAt?$AA?5?$AAc?$AAo?$AAl?$AAo?$AAr?$AA?5?$AAc?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AA?$AA@ ; `string'
PUBLIC	??_C@_1EG@KBAEPAML@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAi?$AAn?$AAg?$AA?5?$AAp?$AAr?$AAi?$AAm?$AAa?$AAr?$AAy?$AA?5?$AAs?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?3?$AA?5@ ; `string'
PUBLIC	??_C@_1BKM@CKGFPCGN@?$AAY?$AAo?$AAu?$AAr?$AA?5?$AAv?$AAi?$AAd?$AAe?$AAo?$AA?5?$AAc?$AAa?$AAr?$AAd?$AA?5?$AAd?$AAo?$AAe?$AAs?$AAn?$AA?8?$AAt?$AA?5?$AAh?$AAa?$AAv?$AAe?$AA?5?$AAe?$AAn?$AAo@ ; `string'
PUBLIC	??_C@_1CHK@MNPKNBFE@?$AAY?$AAo?$AAu?$AAr?$AA?5?$AAv?$AAi?$AAd?$AAe?$AAo?$AA?5?$AAc?$AAa?$AAr?$AAd?$AA?5?$AAd?$AAo?$AAe?$AAs?$AAn?$AA?8?$AAt?$AA?5?$AAh?$AAa?$AAv?$AAe?$AA?5?$AAe?$AAn?$AAo@ ; `string'
PUBLIC	??_C@_1JI@DDFLHNFM@?$AAY?$AAo?$AAu?$AAr?$AA?5?$AAv?$AAi?$AAd?$AAe?$AAo?$AA?5?$AAc?$AAa?$AAr?$AAd?$AA?5?$AAd?$AAo?$AAe?$AAs?$AAn?$AA?8?$AAt?$AA?5?$AAa?$AAp?$AAp?$AAe?$AAa?$AAr?$AA?5?$AAt@ ; `string'
PUBLIC	??_C@_1EC@JCABCFHC@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAo?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAs?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?3?$AA?5?$AA?$CF?$AAx@ ; `string'
PUBLIC	??_C@_1CA@KKPLPFHB@?$AA?$CF?$AAd?$AA?5?$AAB?$AAa?$AAc?$AAk?$AA?5?$AAB?$AAu?$AAf?$AAf?$AAe?$AAr?$AAs?$AA?$AA@ ; `string'
PUBLIC	??_C@_1FO@CGNDJOIG@?$AAL?$AAo?$AAs?$AAt?$AA?5?$AAo?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAs?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?5?$AAa?$AAn?$AAd?$AA?5?$AAc?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAr@ ; `string'
PUBLIC	??_C@_1DC@PFFMMFKN@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?5?$AA?$CF?$AAx?$AA?5?$AAi?$AAn?$AA?5?$AAL?$AAo?$AAc?$AAk?$AA?5?$AAS?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?$AA@ ; `string'
PUBLIC	??_C@_1CK@GCNFJLMI@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAU?$AAn?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAS?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?$AA@ ; `string'
PUBLIC	??_C@_1EE@DJIDLGH@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAB?$AAa?$AAc?$AAk?$AA?5?$AAS?$AAu?$AAr?$AAf?$AAa?$AAc@ ; `string'
PUBLIC	??_C@_1DA@CBLMFAKL@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAL?$AAo?$AAc?$AAk?$AA?5?$AAB?$AAa?$AAc?$AAk?$AA?5?$AAS?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DE@GKPEINBB@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAU?$AAn?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAB?$AAa?$AAc?$AAk?$AA?5?$AAS?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?$AA@ ; `string'
PUBLIC	??_C@_1EO@PBIBGGBJ@?$AAO?$AAr?$AAi?$AAg?$AAi?$AAn?$AAa?$AAl?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AAB?$AAr?$AAi?$AAg?$AAh?$AAt?$AAn@ ; `string'
PUBLIC	??_C@_1EK@EMCIHMOD@?$AAO?$AAr?$AAi?$AAg?$AAi?$AAn?$AAa?$AAl?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AAC?$AAo?$AAn?$AAt?$AAr?$AAa?$AAs@ ; `string'
PUBLIC	??_C@_1EA@GEGOHLMH@?$AAO?$AAr?$AAi?$AAg?$AAi?$AAn?$AAa?$AAl?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAu?$AAe?$AA?5?$AA?$CF?$AAd?$AA?$AA@ ; `string'
PUBLIC	??_C@_1EO@OPCFEODA@?$AAO?$AAr?$AAi?$AAg?$AAi?$AAn?$AAa?$AAl?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AAS?$AAa?$AAt?$AAu?$AAr?$AAa?$AAt@ ; `string'
PUBLIC	??_C@_1EE@ICMAFDCD@?$AAO?$AAr?$AAi?$AAg?$AAi?$AAn?$AAa?$AAl?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AAG?$AAa?$AAm?$AAm?$AAa?$AA?5?$AA?$CF@ ; `string'
PUBLIC	??_C@_1EM@OEEGCANE@?$AAO?$AAr?$AAi?$AAg?$AAi?$AAn?$AAa?$AAl?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AAS?$AAh?$AAa?$AAr?$AAp?$AAn?$AAe@ ; `string'
PUBLIC	??_C@_1DC@LOEJMHFN@?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAh?$AAa?$AAs?$AA?5?$AAb?$AAe?$AAe?$AAn?$AA?5?$AAd?$AAe?$AAl?$AAe?$AAt?$AAe?$AAd?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DA@PIAAKKPA@?$AAF?$AAl?$AAi?$AAp?$AA?5?$AAb?$AAe?$AAf?$AAo?$AAr?$AAe?$AA?5?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?$AA@ ; `string'
PUBLIC	??_C@_1EA@OBDHJAJF@?$AAS?$AAw?$AAi?$AAt?$AAc?$AAh?$AAe?$AAd?$AA?5?$AAt?$AAo?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAu?$AAs?$AAi?$AAn?$AAg?$AA?5?$AAN?$AAO?$AAS?$AAY?$AAS?$AAL?$AAO?$AAC?$AAK?$AA?$AA@ ; `string'
PUBLIC	??_C@_1EC@JEBCHDON@?$AAU?$AAn?$AAe?$AAx?$AAp?$AAe?$AAc?$AAt?$AAe?$AAd?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAu?$AAr?$AAe?$AA?5?$AAi?$AAn?$AA?5?$AAU?$AAn?$AAl?$AAo?$AAc?$AAk?$AA?5?$AA?$CF?$AA8?$AAx@ ; `string'
PUBLIC	??_C@_1DA@EJAAJPMA@?$AAS?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?5?$AAF?$AAl?$AAi?$AAp?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5?$AA?$CF?$AA8?$AAx?$AA?$AA@ ; `string'
PUBLIC	??_C@_1CK@DNJFLFGF@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAS?$AAt?$AAr?$AAe?$AAc?$AAh?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?$AA@ ; `string'
PUBLIC	??_C@_1CE@NLDOEDFK@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAU?$AAs?$AAe?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DG@OAAFFAPE@?$AAS?$AAe?$AAt?$AAC?$AAo?$AAo?$AAp?$AAe?$AAr?$AAa?$AAt?$AAi?$AAv?$AAe?$AAL?$AAe?$AAv?$AAe?$AAl?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?$AA@ ; `string'
PUBLIC	??_C@_0N@LOMFPFGL@Back?5Buffers?$AA@		; `string'
PUBLIC	??_C@_0M@GPGGDMIB@BackBuffers?$AA@		; `string'
PUBLIC	??_C@_0BB@DCKDDMGI@Overlay?5Colorkey?$AA@	; `string'
PUBLIC	??_C@_0N@BAAELGMJ@OverlayColor?$AA@		; `string'
PUBLIC	??_C@_0BF@GEJHMOAB@Use?5Overlay?5Controls?$AA@	; `string'
PUBLIC	??_C@_0BD@BEOFGKH@UseOverlayControls?$AA@	; `string'
PUBLIC	??_C@_0BD@GHDHCCN@Overlay?5Brightness?$AA@	; `string'
PUBLIC	??_C@_0BC@DADJBEHF@OverlayBrightness?$AA@	; `string'
PUBLIC	??_C@_0BB@OJFJOPC@Overlay?5Contrast?$AA@	; `string'
PUBLIC	??_C@_0BA@ELHMHJBE@OverlayContrast?$AA@		; `string'
PUBLIC	??_C@_0M@GKKIGJOF@Overlay?5Hue?$AA@		; `string'
PUBLIC	??_C@_0L@LNHCDJLI@OverlayHue?$AA@		; `string'
PUBLIC	??_C@_0BD@NMOAJGIG@Overlay?5Saturation?$AA@	; `string'
PUBLIC	??_C@_0BC@OKKKPANO@OverlaySaturation?$AA@	; `string'
PUBLIC	??_C@_0O@IKAMBNBA@Overlay?5Gamma?$AA@		; `string'
PUBLIC	??_C@_0N@OOHCLICH@OverlayGamma?$AA@		; `string'
PUBLIC	??_C@_0BC@BBDFMPDA@Overlay?5Sharpness?$AA@	; `string'
PUBLIC	??_C@_0BB@FIBJGBJK@OverlaySharpness?$AA@	; `string'
PUBLIC	??_C@_0P@NNJHNACK@Allow?5Bob?5Mode?$AA@		; `string'
PUBLIC	??_C@_0N@JECAPFLK@AllowBobMode?$AA@		; `string'
PUBLIC	??_C@_1BG@OILDLIOJ@?$AAu?$AAs?$AAe?$AAr?$AA3?$AA2?$AA?4?$AAd?$AAl?$AAl?$AA?$AA@ ; `string'
PUBLIC	??_C@_0BB@BNCGIPPP@DirectDrawCreate?$AA@	; `string'
PUBLIC	??_C@_1BA@LBOLBFDJ@?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?$AA@ ; `string'
PUBLIC	??_7COverlayOutput@@6B@				; COverlayOutput::`vftable'
EXTRN	_IID_IDirectDrawColorControl:BYTE
EXTRN	__imp__SetPixel@16:PROC
EXTRN	__imp__GetNearestColor@8:PROC
EXTRN	??_ECOverlayOutput@@UAEPAXI@Z:PROC		; COverlayOutput::`vector deleting destructor'
_NbMonitors DD	01H DUP (?)
_hCurrentMon DD	01H DUP (?)
;	COMDAT ??_7COverlayOutput@@6B@
CONST	SEGMENT
??_7COverlayOutput@@6B@ DD FLAT:??_R4COverlayOutput@@6B@ ; COverlayOutput::`vftable'
	DD	FLAT:??_ECOverlayOutput@@UAEPAXI@Z
	DD	FLAT:?SetCurrentMonitor@COverlayOutput@@UAEXPAUHWND__@@@Z
	DD	FLAT:?CheckChangeMonitor@COverlayOutput@@UAEXPAUHWND__@@@Z
	DD	FLAT:?GetMonitorRect@IOutput@@UAEXPAUHWND__@@PAUtagRECT@@@Z
	DD	FLAT:?ExitDD@COverlayOutput@@UAEXXZ
	DD	FLAT:?InitDD@COverlayOutput@@UAEHPAUHWND__@@@Z
	DD	FLAT:?CanDoOverlayColorControl@COverlayOutput@@UAEHXZ
	DD	FLAT:?OverlayActive@COverlayOutput@@UAEHXZ
	DD	FLAT:?Overlay_Update@COverlayOutput@@UAEHPAUtagRECT@@0K@Z
	DD	FLAT:?Overlay_Create@COverlayOutput@@UAEHXZ
	DD	FLAT:?Overlay_Clean@COverlayOutput@@UAEXXZ
	DD	FLAT:?Overlay_Destroy@COverlayOutput@@UAEHXZ
	DD	FLAT:?Overlay_ColorMatch@COverlayOutput@@UAEKPAUIDirectDrawSurface@@K@Z
	DD	FLAT:?Overlay_GetColor@COverlayOutput@@UAEKXZ
	DD	FLAT:?Overlay_GetCorrectedColor@COverlayOutput@@UAEKPAUHDC__@@@Z
	DD	FLAT:?Overlay_SetColorControls@COverlayOutput@@UAEXXZ
	DD	FLAT:?Overlay_Lock_Back_Buffer@COverlayOutput@@UAEHPAUTDeinterlaceInfo@@H@Z
	DD	FLAT:?Overlay_Unlock_Back_Buffer@COverlayOutput@@UAEHH@Z
	DD	FLAT:?Overlay_Lock@COverlayOutput@@UAEHPAUTDeinterlaceInfo@@@Z
	DD	FLAT:?Overlay_Unlock@COverlayOutput@@UAEHXZ
	DD	FLAT:?Overlay_Flip@COverlayOutput@@UAEHKHPAEHPAUTDeinterlaceInfo@@@Z
	DD	FLAT:?WaitForVerticalBlank@COverlayOutput@@UAEXXZ
	DD	FLAT:?Overlay_SetRGB@COverlayOutput@@UAEXH@Z
	DD	FLAT:?Overlay_GetRGB@COverlayOutput@@UAEHXZ
	DD	FLAT:?Type@COverlayOutput@@UAE?AW4OUTPUTTYPES@IOutput@@XZ
	DD	FLAT:?InitOtherSettings@COverlayOutput@@UAEXXZ
CONST	ENDS
;	COMDAT ??_R4COverlayOutput@@6B@
rdata$r	SEGMENT
??_R4COverlayOutput@@6B@ DD 00H				; COverlayOutput::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVCOverlayOutput@@@8
	DD	FLAT:??_R3COverlayOutput@@8
rdata$r	ENDS
;	COMDAT ??_R3COverlayOutput@@8
rdata$r	SEGMENT
??_R3COverlayOutput@@8 DD 00H				; COverlayOutput::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2COverlayOutput@@8
rdata$r	ENDS
;	COMDAT ??_R2COverlayOutput@@8
rdata$r	SEGMENT
??_R2COverlayOutput@@8 DD FLAT:??_R1A@?0A@EA@COverlayOutput@@8 ; COverlayOutput::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@IOutput@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@COverlayOutput@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@COverlayOutput@@8 DD FLAT:??_R0?AVCOverlayOutput@@@8 ; COverlayOutput::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3COverlayOutput@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVCOverlayOutput@@@8
_DATA	SEGMENT
??_R0?AVCOverlayOutput@@@8 DD FLAT:??_7type_info@@6B@	; COverlayOutput `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVCOverlayOutput@@', 00H
_DATA	ENDS
;	COMDAT ??_C@_1BA@LBOLBFDJ@?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?$AA@
CONST	SEGMENT
??_C@_1BA@LBOLBFDJ@?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?$AA@ DB 'O', 00H
	DB	'v', 00H, 'e', 00H, 'r', 00H, 'l', 00H, 'a', 00H, 'y', 00H, 00H
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_0BB@BNCGIPPP@DirectDrawCreate?$AA@
CONST	SEGMENT
??_C@_0BB@BNCGIPPP@DirectDrawCreate?$AA@ DB 'DirectDrawCreate', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1BG@OILDLIOJ@?$AAu?$AAs?$AAe?$AAr?$AA3?$AA2?$AA?4?$AAd?$AAl?$AAl?$AA?$AA@
CONST	SEGMENT
??_C@_1BG@OILDLIOJ@?$AAu?$AAs?$AAe?$AAr?$AA3?$AA2?$AA?4?$AAd?$AAl?$AAl?$AA?$AA@ DB 'u'
	DB	00H, 's', 00H, 'e', 00H, 'r', 00H, '3', 00H, '2', 00H, '.', 00H
	DB	'd', 00H, 'l', 00H, 'l', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@JECAPFLK@AllowBobMode?$AA@
CONST	SEGMENT
??_C@_0N@JECAPFLK@AllowBobMode?$AA@ DB 'AllowBobMode', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0P@NNJHNACK@Allow?5Bob?5Mode?$AA@
CONST	SEGMENT
??_C@_0P@NNJHNACK@Allow?5Bob?5Mode?$AA@ DB 'Allow Bob Mode', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BB@FIBJGBJK@OverlaySharpness?$AA@
CONST	SEGMENT
??_C@_0BB@FIBJGBJK@OverlaySharpness?$AA@ DB 'OverlaySharpness', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BC@BBDFMPDA@Overlay?5Sharpness?$AA@
CONST	SEGMENT
??_C@_0BC@BBDFMPDA@Overlay?5Sharpness?$AA@ DB 'Overlay Sharpness', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@OOHCLICH@OverlayGamma?$AA@
CONST	SEGMENT
??_C@_0N@OOHCLICH@OverlayGamma?$AA@ DB 'OverlayGamma', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@IKAMBNBA@Overlay?5Gamma?$AA@
CONST	SEGMENT
??_C@_0O@IKAMBNBA@Overlay?5Gamma?$AA@ DB 'Overlay Gamma', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BC@OKKKPANO@OverlaySaturation?$AA@
CONST	SEGMENT
??_C@_0BC@OKKKPANO@OverlaySaturation?$AA@ DB 'OverlaySaturation', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BD@NMOAJGIG@Overlay?5Saturation?$AA@
CONST	SEGMENT
??_C@_0BD@NMOAJGIG@Overlay?5Saturation?$AA@ DB 'Overlay Saturation', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0L@LNHCDJLI@OverlayHue?$AA@
CONST	SEGMENT
??_C@_0L@LNHCDJLI@OverlayHue?$AA@ DB 'OverlayHue', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@GKKIGJOF@Overlay?5Hue?$AA@
CONST	SEGMENT
??_C@_0M@GKKIGJOF@Overlay?5Hue?$AA@ DB 'Overlay Hue', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BA@ELHMHJBE@OverlayContrast?$AA@
CONST	SEGMENT
??_C@_0BA@ELHMHJBE@OverlayContrast?$AA@ DB 'OverlayContrast', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BB@OJFJOPC@Overlay?5Contrast?$AA@
CONST	SEGMENT
??_C@_0BB@OJFJOPC@Overlay?5Contrast?$AA@ DB 'Overlay Contrast', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BC@DADJBEHF@OverlayBrightness?$AA@
CONST	SEGMENT
??_C@_0BC@DADJBEHF@OverlayBrightness?$AA@ DB 'OverlayBrightness', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BD@GHDHCCN@Overlay?5Brightness?$AA@
CONST	SEGMENT
??_C@_0BD@GHDHCCN@Overlay?5Brightness?$AA@ DB 'Overlay Brightness', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BD@BEOFGKH@UseOverlayControls?$AA@
CONST	SEGMENT
??_C@_0BD@BEOFGKH@UseOverlayControls?$AA@ DB 'UseOverlayControls', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BF@GEJHMOAB@Use?5Overlay?5Controls?$AA@
CONST	SEGMENT
??_C@_0BF@GEJHMOAB@Use?5Overlay?5Controls?$AA@ DB 'Use Overlay Controls', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@BAAELGMJ@OverlayColor?$AA@
CONST	SEGMENT
??_C@_0N@BAAELGMJ@OverlayColor?$AA@ DB 'OverlayColor', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BB@DCKDDMGI@Overlay?5Colorkey?$AA@
CONST	SEGMENT
??_C@_0BB@DCKDDMGI@Overlay?5Colorkey?$AA@ DB 'Overlay Colorkey', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@GPGGDMIB@BackBuffers?$AA@
CONST	SEGMENT
??_C@_0M@GPGGDMIB@BackBuffers?$AA@ DB 'BackBuffers', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@LOMFPFGL@Back?5Buffers?$AA@
CONST	SEGMENT
??_C@_0N@LOMFPFGL@Back?5Buffers?$AA@ DB 'Back Buffers', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1DG@OAAFFAPE@?$AAS?$AAe?$AAt?$AAC?$AAo?$AAo?$AAp?$AAe?$AAr?$AAa?$AAt?$AAi?$AAv?$AAe?$AAL?$AAe?$AAv?$AAe?$AAl?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_1DG@OAAFFAPE@?$AAS?$AAe?$AAt?$AAC?$AAo?$AAo?$AAp?$AAe?$AAr?$AAa?$AAt?$AAi?$AAv?$AAe?$AAL?$AAe?$AAv?$AAe?$AAl?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?$AA@ DB 'S'
	DB	00H, 'e', 00H, 't', 00H, 'C', 00H, 'o', 00H, 'o', 00H, 'p', 00H
	DB	'e', 00H, 'r', 00H, 'a', 00H, 't', 00H, 'i', 00H, 'v', 00H, 'e'
	DB	00H, 'L', 00H, 'e', 00H, 'v', 00H, 'e', 00H, 'l', 00H, ' ', 00H
	DB	'f', 00H, 'a', 00H, 'i', 00H, 'l', 00H, 'e', 00H, 'd', 00H, 00H
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_1CE@NLDOEDFK@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAU?$AAs?$AAe?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?$AA@
CONST	SEGMENT
??_C@_1CE@NLDOEDFK@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAU?$AAs?$AAe?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?$AA@ DB 'C'
	DB	00H, 'a', 00H, 'n', 00H, '''', 00H, 't', 00H, ' ', 00H, 'U', 00H
	DB	's', 00H, 'e', 00H, ' ', 00H, 'O', 00H, 'v', 00H, 'e', 00H, 'r'
	DB	00H, 'l', 00H, 'a', 00H, 'y', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1CK@DNJFLFGF@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAS?$AAt?$AAr?$AAe?$AAc?$AAh?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?$AA@
CONST	SEGMENT
??_C@_1CK@DNJFLFGF@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAS?$AAt?$AAr?$AAe?$AAc?$AAh?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?$AA@ DB 'C'
	DB	00H, 'a', 00H, 'n', 00H, '''', 00H, 't', 00H, ' ', 00H, 'S', 00H
	DB	't', 00H, 'r', 00H, 'e', 00H, 'c', 00H, 'h', 00H, ' ', 00H, 'O'
	DB	00H, 'v', 00H, 'e', 00H, 'r', 00H, 'l', 00H, 'a', 00H, 'y', 00H
	DB	00H, 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_1DA@EJAAJPMA@?$AAS?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?5?$AAF?$AAl?$AAi?$AAp?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5?$AA?$CF?$AA8?$AAx?$AA?$AA@
CONST	SEGMENT
??_C@_1DA@EJAAJPMA@?$AAS?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?5?$AAF?$AAl?$AAi?$AAp?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5?$AA?$CF?$AA8?$AAx?$AA?$AA@ DB 'S'
	DB	00H, 'u', 00H, 'r', 00H, 'f', 00H, 'a', 00H, 'c', 00H, 'e', 00H
	DB	' ', 00H, 'F', 00H, 'l', 00H, 'i', 00H, 'p', 00H, ' ', 00H, 'f'
	DB	00H, 'a', 00H, 'i', 00H, 'l', 00H, 'e', 00H, 'd', 00H, ' ', 00H
	DB	'%', 00H, '8', 00H, 'x', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1EC@JEBCHDON@?$AAU?$AAn?$AAe?$AAx?$AAp?$AAe?$AAc?$AAt?$AAe?$AAd?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAu?$AAr?$AAe?$AA?5?$AAi?$AAn?$AA?5?$AAU?$AAn?$AAl?$AAo?$AAc?$AAk?$AA?5?$AA?$CF?$AA8?$AAx@
CONST	SEGMENT
??_C@_1EC@JEBCHDON@?$AAU?$AAn?$AAe?$AAx?$AAp?$AAe?$AAc?$AAt?$AAe?$AAd?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAu?$AAr?$AAe?$AA?5?$AAi?$AAn?$AA?5?$AAU?$AAn?$AAl?$AAo?$AAc?$AAk?$AA?5?$AA?$CF?$AA8?$AAx@ DB 'U'
	DB	00H, 'n', 00H, 'e', 00H, 'x', 00H, 'p', 00H, 'e', 00H, 'c', 00H
	DB	't', 00H, 'e', 00H, 'd', 00H, ' ', 00H, 'f', 00H, 'a', 00H, 'i'
	DB	00H, 'l', 00H, 'u', 00H, 'r', 00H, 'e', 00H, ' ', 00H, 'i', 00H
	DB	'n', 00H, ' ', 00H, 'U', 00H, 'n', 00H, 'l', 00H, 'o', 00H, 'c'
	DB	00H, 'k', 00H, ' ', 00H, '%', 00H, '8', 00H, 'x', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ?dwFlags@?4??Overlay_Lock@COverlayOutput@@UAEHPAUTDeinterlaceInfo@@@Z@4KA
_DATA	SEGMENT
?dwFlags@?4??Overlay_Lock@COverlayOutput@@UAEHPAUTDeinterlaceInfo@@@Z@4KA DD 0801H ; `COverlayOutput::Overlay_Lock'::`5'::dwFlags
_DATA	ENDS
;	COMDAT ??_C@_1EA@OBDHJAJF@?$AAS?$AAw?$AAi?$AAt?$AAc?$AAh?$AAe?$AAd?$AA?5?$AAt?$AAo?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAu?$AAs?$AAi?$AAn?$AAg?$AA?5?$AAN?$AAO?$AAS?$AAY?$AAS?$AAL?$AAO?$AAC?$AAK?$AA?$AA@
CONST	SEGMENT
??_C@_1EA@OBDHJAJF@?$AAS?$AAw?$AAi?$AAt?$AAc?$AAh?$AAe?$AAd?$AA?5?$AAt?$AAo?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAu?$AAs?$AAi?$AAn?$AAg?$AA?5?$AAN?$AAO?$AAS?$AAY?$AAS?$AAL?$AAO?$AAC?$AAK?$AA?$AA@ DB 'S'
	DB	00H, 'w', 00H, 'i', 00H, 't', 00H, 'c', 00H, 'h', 00H, 'e', 00H
	DB	'd', 00H, ' ', 00H, 't', 00H, 'o', 00H, ' ', 00H, 'n', 00H, 'o'
	DB	00H, 't', 00H, ' ', 00H, 'u', 00H, 's', 00H, 'i', 00H, 'n', 00H
	DB	'g', 00H, ' ', 00H, 'N', 00H, 'O', 00H, 'S', 00H, 'Y', 00H, 'S'
	DB	00H, 'L', 00H, 'O', 00H, 'C', 00H, 'K', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1DA@PIAAKKPA@?$AAF?$AAl?$AAi?$AAp?$AA?5?$AAb?$AAe?$AAf?$AAo?$AAr?$AAe?$AA?5?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_1DA@PIAAKKPA@?$AAF?$AAl?$AAi?$AAp?$AA?5?$AAb?$AAe?$AAf?$AAo?$AAr?$AAe?$AA?5?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?$AA@ DB 'F'
	DB	00H, 'l', 00H, 'i', 00H, 'p', 00H, ' ', 00H, 'b', 00H, 'e', 00H
	DB	'f', 00H, 'o', 00H, 'r', 00H, 'e', 00H, ' ', 00H, 'l', 00H, 'o'
	DB	00H, 'c', 00H, 'k', 00H, ' ', 00H, 'f', 00H, 'a', 00H, 'i', 00H
	DB	'l', 00H, 'e', 00H, 'd', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ?dwFlags@?7??Overlay_Lock_Back_Buffer@COverlayOutput@@UAEHPAUTDeinterlaceInfo@@H@Z@4KA
_DATA	SEGMENT
?dwFlags@?7??Overlay_Lock_Back_Buffer@COverlayOutput@@UAEHPAUTDeinterlaceInfo@@H@Z@4KA DD 0801H ; `COverlayOutput::Overlay_Lock_Back_Buffer'::`8'::dwFlags
_DATA	ENDS
;	COMDAT ??_C@_1DC@LOEJMHFN@?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAh?$AAa?$AAs?$AA?5?$AAb?$AAe?$AAe?$AAn?$AA?5?$AAd?$AAe?$AAl?$AAe?$AAt?$AAe?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_1DC@LOEJMHFN@?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAh?$AAa?$AAs?$AA?5?$AAb?$AAe?$AAe?$AAn?$AA?5?$AAd?$AAe?$AAl?$AAe?$AAt?$AAe?$AAd?$AA?$AA@ DB 'O'
	DB	00H, 'v', 00H, 'e', 00H, 'r', 00H, 'l', 00H, 'a', 00H, 'y', 00H
	DB	' ', 00H, 'h', 00H, 'a', 00H, 's', 00H, ' ', 00H, 'b', 00H, 'e'
	DB	00H, 'e', 00H, 'n', 00H, ' ', 00H, 'd', 00H, 'e', 00H, 'l', 00H
	DB	'e', 00H, 't', 00H, 'e', 00H, 'd', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1EM@OEEGCANE@?$AAO?$AAr?$AAi?$AAg?$AAi?$AAn?$AAa?$AAl?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AAS?$AAh?$AAa?$AAr?$AAp?$AAn?$AAe@
CONST	SEGMENT
??_C@_1EM@OEEGCANE@?$AAO?$AAr?$AAi?$AAg?$AAi?$AAn?$AAa?$AAl?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AAS?$AAh?$AAa?$AAr?$AAp?$AAn?$AAe@ DB 'O'
	DB	00H, 'r', 00H, 'i', 00H, 'g', 00H, 'i', 00H, 'n', 00H, 'a', 00H
	DB	'l', 00H, 'C', 00H, 'o', 00H, 'l', 00H, 'o', 00H, 'r', 00H, 'C'
	DB	00H, 'o', 00H, 'n', 00H, 't', 00H, 'r', 00H, 'o', 00H, 'l', 00H
	DB	's', 00H, ' ', 00H, '%', 00H, 'd', 00H, ' ', 00H, 'S', 00H, 'h'
	DB	00H, 'a', 00H, 'r', 00H, 'p', 00H, 'n', 00H, 'e', 00H, 's', 00H
	DB	's', 00H, ' ', 00H, '%', 00H, 'd', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1EE@ICMAFDCD@?$AAO?$AAr?$AAi?$AAg?$AAi?$AAn?$AAa?$AAl?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AAG?$AAa?$AAm?$AAm?$AAa?$AA?5?$AA?$CF@
CONST	SEGMENT
??_C@_1EE@ICMAFDCD@?$AAO?$AAr?$AAi?$AAg?$AAi?$AAn?$AAa?$AAl?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AAG?$AAa?$AAm?$AAm?$AAa?$AA?5?$AA?$CF@ DB 'O'
	DB	00H, 'r', 00H, 'i', 00H, 'g', 00H, 'i', 00H, 'n', 00H, 'a', 00H
	DB	'l', 00H, 'C', 00H, 'o', 00H, 'l', 00H, 'o', 00H, 'r', 00H, 'C'
	DB	00H, 'o', 00H, 'n', 00H, 't', 00H, 'r', 00H, 'o', 00H, 'l', 00H
	DB	's', 00H, ' ', 00H, '%', 00H, 'd', 00H, ' ', 00H, 'G', 00H, 'a'
	DB	00H, 'm', 00H, 'm', 00H, 'a', 00H, ' ', 00H, '%', 00H, 'd', 00H
	DB	00H, 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_1EO@OPCFEODA@?$AAO?$AAr?$AAi?$AAg?$AAi?$AAn?$AAa?$AAl?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AAS?$AAa?$AAt?$AAu?$AAr?$AAa?$AAt@
CONST	SEGMENT
??_C@_1EO@OPCFEODA@?$AAO?$AAr?$AAi?$AAg?$AAi?$AAn?$AAa?$AAl?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AAS?$AAa?$AAt?$AAu?$AAr?$AAa?$AAt@ DB 'O'
	DB	00H, 'r', 00H, 'i', 00H, 'g', 00H, 'i', 00H, 'n', 00H, 'a', 00H
	DB	'l', 00H, 'C', 00H, 'o', 00H, 'l', 00H, 'o', 00H, 'r', 00H, 'C'
	DB	00H, 'o', 00H, 'n', 00H, 't', 00H, 'r', 00H, 'o', 00H, 'l', 00H
	DB	's', 00H, ' ', 00H, '%', 00H, 'd', 00H, ' ', 00H, 'S', 00H, 'a'
	DB	00H, 't', 00H, 'u', 00H, 'r', 00H, 'a', 00H, 't', 00H, 'i', 00H
	DB	'o', 00H, 'n', 00H, ' ', 00H, '%', 00H, 'd', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1EA@GEGOHLMH@?$AAO?$AAr?$AAi?$AAg?$AAi?$AAn?$AAa?$AAl?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAu?$AAe?$AA?5?$AA?$CF?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_1EA@GEGOHLMH@?$AAO?$AAr?$AAi?$AAg?$AAi?$AAn?$AAa?$AAl?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAu?$AAe?$AA?5?$AA?$CF?$AAd?$AA?$AA@ DB 'O'
	DB	00H, 'r', 00H, 'i', 00H, 'g', 00H, 'i', 00H, 'n', 00H, 'a', 00H
	DB	'l', 00H, 'C', 00H, 'o', 00H, 'l', 00H, 'o', 00H, 'r', 00H, 'C'
	DB	00H, 'o', 00H, 'n', 00H, 't', 00H, 'r', 00H, 'o', 00H, 'l', 00H
	DB	's', 00H, ' ', 00H, '%', 00H, 'd', 00H, ' ', 00H, 'H', 00H, 'u'
	DB	00H, 'e', 00H, ' ', 00H, '%', 00H, 'd', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1EK@EMCIHMOD@?$AAO?$AAr?$AAi?$AAg?$AAi?$AAn?$AAa?$AAl?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AAC?$AAo?$AAn?$AAt?$AAr?$AAa?$AAs@
CONST	SEGMENT
??_C@_1EK@EMCIHMOD@?$AAO?$AAr?$AAi?$AAg?$AAi?$AAn?$AAa?$AAl?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AAC?$AAo?$AAn?$AAt?$AAr?$AAa?$AAs@ DB 'O'
	DB	00H, 'r', 00H, 'i', 00H, 'g', 00H, 'i', 00H, 'n', 00H, 'a', 00H
	DB	'l', 00H, 'C', 00H, 'o', 00H, 'l', 00H, 'o', 00H, 'r', 00H, 'C'
	DB	00H, 'o', 00H, 'n', 00H, 't', 00H, 'r', 00H, 'o', 00H, 'l', 00H
	DB	's', 00H, ' ', 00H, '%', 00H, 'd', 00H, ' ', 00H, 'C', 00H, 'o'
	DB	00H, 'n', 00H, 't', 00H, 'r', 00H, 'a', 00H, 's', 00H, 't', 00H
	DB	' ', 00H, '%', 00H, 'd', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1EO@PBIBGGBJ@?$AAO?$AAr?$AAi?$AAg?$AAi?$AAn?$AAa?$AAl?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AAB?$AAr?$AAi?$AAg?$AAh?$AAt?$AAn@
CONST	SEGMENT
??_C@_1EO@PBIBGGBJ@?$AAO?$AAr?$AAi?$AAg?$AAi?$AAn?$AAa?$AAl?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AAB?$AAr?$AAi?$AAg?$AAh?$AAt?$AAn@ DB 'O'
	DB	00H, 'r', 00H, 'i', 00H, 'g', 00H, 'i', 00H, 'n', 00H, 'a', 00H
	DB	'l', 00H, 'C', 00H, 'o', 00H, 'l', 00H, 'o', 00H, 'r', 00H, 'C'
	DB	00H, 'o', 00H, 'n', 00H, 't', 00H, 'r', 00H, 'o', 00H, 'l', 00H
	DB	's', 00H, ' ', 00H, '%', 00H, 'd', 00H, ' ', 00H, 'B', 00H, 'r'
	DB	00H, 'i', 00H, 'g', 00H, 'h', 00H, 't', 00H, 'n', 00H, 'e', 00H
	DB	's', 00H, 's', 00H, ' ', 00H, '%', 00H, 'd', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1DE@GKPEINBB@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAU?$AAn?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAB?$AAa?$AAc?$AAk?$AA?5?$AAS?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?$AA@
CONST	SEGMENT
??_C@_1DE@GKPEINBB@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAU?$AAn?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAB?$AAa?$AAc?$AAk?$AA?5?$AAS?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?$AA@ DB 'C'
	DB	00H, 'a', 00H, 'n', 00H, '''', 00H, 't', 00H, ' ', 00H, 'U', 00H
	DB	'n', 00H, 'l', 00H, 'o', 00H, 'c', 00H, 'k', 00H, ' ', 00H, 'B'
	DB	00H, 'a', 00H, 'c', 00H, 'k', 00H, ' ', 00H, 'S', 00H, 'u', 00H
	DB	'r', 00H, 'f', 00H, 'a', 00H, 'c', 00H, 'e', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1DA@CBLMFAKL@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAL?$AAo?$AAc?$AAk?$AA?5?$AAB?$AAa?$AAc?$AAk?$AA?5?$AAS?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?$AA@
CONST	SEGMENT
??_C@_1DA@CBLMFAKL@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAL?$AAo?$AAc?$AAk?$AA?5?$AAB?$AAa?$AAc?$AAk?$AA?5?$AAS?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?$AA@ DB 'C'
	DB	00H, 'a', 00H, 'n', 00H, '''', 00H, 't', 00H, ' ', 00H, 'L', 00H
	DB	'o', 00H, 'c', 00H, 'k', 00H, ' ', 00H, 'B', 00H, 'a', 00H, 'c'
	DB	00H, 'k', 00H, ' ', 00H, 'S', 00H, 'u', 00H, 'r', 00H, 'f', 00H
	DB	'a', 00H, 'c', 00H, 'e', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1EE@DJIDLGH@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAB?$AAa?$AAc?$AAk?$AA?5?$AAS?$AAu?$AAr?$AAf?$AAa?$AAc@
CONST	SEGMENT
??_C@_1EE@DJIDLGH@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAB?$AAa?$AAc?$AAk?$AA?5?$AAS?$AAu?$AAr?$AAf?$AAa?$AAc@ DB 'C'
	DB	00H, 'a', 00H, 'n', 00H, '''', 00H, 't', 00H, ' ', 00H, 'c', 00H
	DB	'r', 00H, 'e', 00H, 'a', 00H, 't', 00H, 'e', 00H, ' ', 00H, 'O'
	DB	00H, 'v', 00H, 'e', 00H, 'r', 00H, 'l', 00H, 'a', 00H, 'y', 00H
	DB	' ', 00H, 'B', 00H, 'a', 00H, 'c', 00H, 'k', 00H, ' ', 00H, 'S'
	DB	00H, 'u', 00H, 'r', 00H, 'f', 00H, 'a', 00H, 'c', 00H, 'e', 00H
	DB	00H, 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_1CK@GCNFJLMI@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAU?$AAn?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAS?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?$AA@
CONST	SEGMENT
??_C@_1CK@GCNFJLMI@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAU?$AAn?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAS?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?$AA@ DB 'C'
	DB	00H, 'a', 00H, 'n', 00H, '''', 00H, 't', 00H, ' ', 00H, 'U', 00H
	DB	'n', 00H, 'l', 00H, 'o', 00H, 'c', 00H, 'k', 00H, ' ', 00H, 'S'
	DB	00H, 'u', 00H, 'r', 00H, 'f', 00H, 'a', 00H, 'c', 00H, 'e', 00H
	DB	00H, 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_1DC@PFFMMFKN@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?5?$AA?$CF?$AAx?$AA?5?$AAi?$AAn?$AA?5?$AAL?$AAo?$AAc?$AAk?$AA?5?$AAS?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?$AA@
CONST	SEGMENT
??_C@_1DC@PFFMMFKN@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?5?$AA?$CF?$AAx?$AA?5?$AAi?$AAn?$AA?5?$AAL?$AAo?$AAc?$AAk?$AA?5?$AAS?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?$AA@ DB 'E'
	DB	00H, 'r', 00H, 'r', 00H, 'o', 00H, 'r', 00H, ' ', 00H, '%', 00H
	DB	'x', 00H, ' ', 00H, 'i', 00H, 'n', 00H, ' ', 00H, 'L', 00H, 'o'
	DB	00H, 'c', 00H, 'k', 00H, ' ', 00H, 'S', 00H, 'u', 00H, 'r', 00H
	DB	'f', 00H, 'a', 00H, 'c', 00H, 'e', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1FO@CGNDJOIG@?$AAL?$AAo?$AAs?$AAt?$AA?5?$AAo?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAs?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?5?$AAa?$AAn?$AAd?$AA?5?$AAc?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAr@
CONST	SEGMENT
??_C@_1FO@CGNDJOIG@?$AAL?$AAo?$AAs?$AAt?$AA?5?$AAo?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAs?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?5?$AAa?$AAn?$AAd?$AA?5?$AAc?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAr@ DB 'L'
	DB	00H, 'o', 00H, 's', 00H, 't', 00H, ' ', 00H, 'o', 00H, 'v', 00H
	DB	'e', 00H, 'r', 00H, 'l', 00H, 'a', 00H, 'y', 00H, ' ', 00H, 's'
	DB	00H, 'u', 00H, 'r', 00H, 'f', 00H, 'a', 00H, 'c', 00H, 'e', 00H
	DB	' ', 00H, 'a', 00H, 'n', 00H, 'd', 00H, ' ', 00H, 'c', 00H, 'a'
	DB	00H, 'n', 00H, '''', 00H, 't', 00H, ' ', 00H, 'r', 00H, 'e', 00H
	DB	'c', 00H, 'r', 00H, 'e', 00H, 'a', 00H, 't', 00H, 'e', 00H, ' '
	DB	00H, 'i', 00H, 't', 00H, ':', 00H, ' ', 00H, '%', 00H, 'x', 00H
	DB	00H, 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_1CA@KKPLPFHB@?$AA?$CF?$AAd?$AA?5?$AAB?$AAa?$AAc?$AAk?$AA?5?$AAB?$AAu?$AAf?$AAf?$AAe?$AAr?$AAs?$AA?$AA@
CONST	SEGMENT
??_C@_1CA@KKPLPFHB@?$AA?$CF?$AAd?$AA?5?$AAB?$AAa?$AAc?$AAk?$AA?5?$AAB?$AAu?$AAf?$AAf?$AAe?$AAr?$AAs?$AA?$AA@ DB '%'
	DB	00H, 'd', 00H, ' ', 00H, 'B', 00H, 'a', 00H, 'c', 00H, 'k', 00H
	DB	' ', 00H, 'B', 00H, 'u', 00H, 'f', 00H, 'f', 00H, 'e', 00H, 'r'
	DB	00H, 's', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1EC@JCABCFHC@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAo?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAs?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?3?$AA?5?$AA?$CF?$AAx@
CONST	SEGMENT
??_C@_1EC@JCABCFHC@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAo?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAs?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?3?$AA?5?$AA?$CF?$AAx@ DB 'C'
	DB	00H, 'a', 00H, 'n', 00H, '''', 00H, 't', 00H, ' ', 00H, 'c', 00H
	DB	'r', 00H, 'e', 00H, 'a', 00H, 't', 00H, 'e', 00H, ' ', 00H, 'o'
	DB	00H, 'v', 00H, 'e', 00H, 'r', 00H, 'l', 00H, 'a', 00H, 'y', 00H
	DB	' ', 00H, 's', 00H, 'u', 00H, 'r', 00H, 'f', 00H, 'a', 00H, 'c'
	DB	00H, 'e', 00H, ':', 00H, ' ', 00H, '%', 00H, 'x', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1JI@DDFLHNFM@?$AAY?$AAo?$AAu?$AAr?$AA?5?$AAv?$AAi?$AAd?$AAe?$AAo?$AA?5?$AAc?$AAa?$AAr?$AAd?$AA?5?$AAd?$AAo?$AAe?$AAs?$AAn?$AA?8?$AAt?$AA?5?$AAa?$AAp?$AAp?$AAe?$AAa?$AAr?$AA?5?$AAt@
CONST	SEGMENT
??_C@_1JI@DDFLHNFM@?$AAY?$AAo?$AAu?$AAr?$AA?5?$AAv?$AAi?$AAd?$AAe?$AAo?$AA?5?$AAc?$AAa?$AAr?$AAd?$AA?5?$AAd?$AAo?$AAe?$AAs?$AAn?$AA?8?$AAt?$AA?5?$AAa?$AAp?$AAp?$AAe?$AAa?$AAr?$AA?5?$AAt@ DB 'Y'
	DB	00H, 'o', 00H, 'u', 00H, 'r', 00H, ' ', 00H, 'v', 00H, 'i', 00H
	DB	'd', 00H, 'e', 00H, 'o', 00H, ' ', 00H, 'c', 00H, 'a', 00H, 'r'
	DB	00H, 'd', 00H, ' ', 00H, 'd', 00H, 'o', 00H, 'e', 00H, 's', 00H
	DB	'n', 00H, '''', 00H, 't', 00H, ' ', 00H, 'a', 00H, 'p', 00H, 'p'
	DB	00H, 'e', 00H, 'a', 00H, 'r', 00H, ' ', 00H, 't', 00H, 'o', 00H
	DB	' ', 00H, 's', 00H, 'u', 00H, 'p', 00H, 'p', 00H, 'o', 00H, 'r'
	DB	00H, 't', 00H, 0aH, 00H, 'o', 00H, 'v', 00H, 'e', 00H, 'r', 00H
	DB	'l', 00H, 'a', 00H, 'y', 00H, 's', 00H, ',', 00H, ' ', 00H, 'w'
	DB	00H, 'h', 00H, 'i', 00H, 'c', 00H, 'h', 00H, ' ', 00H, 'D', 00H
	DB	'S', 00H, 'c', 00H, 'a', 00H, 'l', 00H, 'e', 00H, 'r', 00H, ' '
	DB	00H, 'r', 00H, 'e', 00H, 'q', 00H, 'u', 00H, 'i', 00H, 'r', 00H
	DB	'e', 00H, 's', 00H, '.', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1CHK@MNPKNBFE@?$AAY?$AAo?$AAu?$AAr?$AA?5?$AAv?$AAi?$AAd?$AAe?$AAo?$AA?5?$AAc?$AAa?$AAr?$AAd?$AA?5?$AAd?$AAo?$AAe?$AAs?$AAn?$AA?8?$AAt?$AA?5?$AAh?$AAa?$AAv?$AAe?$AA?5?$AAe?$AAn?$AAo@
CONST	SEGMENT
??_C@_1CHK@MNPKNBFE@?$AAY?$AAo?$AAu?$AAr?$AA?5?$AAv?$AAi?$AAd?$AAe?$AAo?$AA?5?$AAc?$AAa?$AAr?$AAd?$AA?5?$AAd?$AAo?$AAe?$AAs?$AAn?$AA?8?$AAt?$AA?5?$AAh?$AAa?$AAv?$AAe?$AA?5?$AAe?$AAn?$AAo@ DB 'Y'
	DB	00H, 'o', 00H, 'u', 00H, 'r', 00H, ' ', 00H, 'v', 00H, 'i', 00H
	DB	'd', 00H, 'e', 00H, 'o', 00H, ' ', 00H, 'c', 00H, 'a', 00H, 'r'
	DB	00H, 'd', 00H, ' ', 00H, 'd', 00H, 'o', 00H, 'e', 00H, 's', 00H
	DB	'n', 00H, '''', 00H, 't', 00H, ' ', 00H, 'h', 00H, 'a', 00H, 'v'
	DB	00H, 'e', 00H, ' ', 00H, 'e', 00H, 'n', 00H, 'o', 00H, 'u', 00H
	DB	'g', 00H, 'h', 00H, ' ', 00H, 'o', 00H, 'v', 00H, 'e', 00H, 'r'
	DB	00H, 'l', 00H, 'a', 00H, 'y', 00H, 0aH, 00H, 'm', 00H, 'e', 00H
	DB	'm', 00H, 'o', 00H, 'r', 00H, 'y', 00H, ' ', 00H, 'f', 00H, 'o'
	DB	00H, 'r', 00H, ' ', 00H, '%', 00H, 'd', 00H, ' ', 00H, 'b', 00H
	DB	'a', 00H, 'c', 00H, 'k', 00H, ' ', 00H, 'b', 00H, 'u', 00H, 'f'
	DB	00H, 'f', 00H, 'e', 00H, 'r', 00H, 's', 00H, '.', 00H, ' ', 00H
	DB	' ', 00H, 'I', 00H, 'f', 00H, ' ', 00H, 'y', 00H, 'o', 00H, 'u'
	DB	00H, '''', 00H, 'v', 00H, 'e', 00H, ' ', 00H, 'u', 00H, 's', 00H
	DB	'e', 00H, 'd', 00H, 0aH, 00H, 't', 00H, 'h', 00H, 'a', 00H, 't'
	DB	00H, ' ', 00H, 'm', 00H, 'a', 00H, 'n', 00H, 'y', 00H, ' ', 00H
	DB	'b', 00H, 'a', 00H, 'c', 00H, 'k', 00H, ' ', 00H, 'b', 00H, 'u'
	DB	00H, 'f', 00H, 'f', 00H, 'e', 00H, 'r', 00H, 's', 00H, ' ', 00H
	DB	'b', 00H, 'e', 00H, 'f', 00H, 'o', 00H, 'r', 00H, 'e', 00H, ','
	DB	00H, ' ', 00H, 'y', 00H, 'o', 00H, 'u', 00H, ' ', 00H, 'm', 00H
	DB	'a', 00H, 'y', 00H, ' ', 00H, 'n', 00H, 'e', 00H, 'e', 00H, 'd'
	DB	00H, 0aH, 00H, 't', 00H, 'o', 00H, ' ', 00H, 'r', 00H, 'e', 00H
	DB	'b', 00H, 'o', 00H, 'o', 00H, 't', 00H, '.', 00H, ' ', 00H, ' '
	DB	00H, 'O', 00H, 't', 00H, 'h', 00H, 'e', 00H, 'r', 00H, 'w', 00H
	DB	'i', 00H, 's', 00H, 'e', 00H, ' ', 00H, 't', 00H, 'r', 00H, 'y'
	DB	00H, ' ', 00H, 'l', 00H, 'o', 00H, 'w', 00H, 'e', 00H, 'r', 00H
	DB	'i', 00H, 'n', 00H, 'g', 00H, ' ', 00H, 'y', 00H, 'o', 00H, 'u'
	DB	00H, 'r', 00H, ' ', 00H, 's', 00H, 'c', 00H, 'r', 00H, 'e', 00H
	DB	'e', 00H, 'n', 00H, 0aH, 00H, 'r', 00H, 'e', 00H, 's', 00H, 'o'
	DB	00H, 'l', 00H, 'u', 00H, 't', 00H, 'i', 00H, 'o', 00H, 'n', 00H
	DB	' ', 00H, 'o', 00H, 'r', 00H, ' ', 00H, 'c', 00H, 'o', 00H, 'l'
	DB	00H, 'o', 00H, 'r', 00H, ' ', 00H, 'd', 00H, 'e', 00H, 'p', 00H
	DB	't', 00H, 'h', 00H, ',', 00H, ' ', 00H, 'o', 00H, 'r', 00H, ' '
	DB	00H, 't', 00H, 'r', 00H, 'y', 00H, ' ', 00H, 's', 00H, 'e', 00H
	DB	't', 00H, 't', 00H, 'i', 00H, 'n', 00H, 'g', 00H, 0aH, 00H, 'B'
	DB	00H, 'a', 00H, 'c', 00H, 'k', 00H, 'B', 00H, 'u', 00H, 'f', 00H
	DB	'f', 00H, 'e', 00H, 'r', 00H, 's', 00H, '=', 00H, '-', 00H, '1'
	DB	00H, ' ', 00H, 'i', 00H, 'n', 00H, ' ', 00H, 'D', 00H, 'S', 00H
	DB	'c', 00H, 'a', 00H, 'l', 00H, 'e', 00H, 'r', 00H, '.', 00H, 'i'
	DB	00H, 'n', 00H, 'i', 00H, ' ', 00H, 't', 00H, 'o', 00H, ' ', 00H
	DB	'a', 00H, 'l', 00H, 'l', 00H, 'o', 00H, 'w', 00H, ' ', 00H, 'D'
	DB	00H, 'S', 00H, 'c', 00H, 'a', 00H, 'l', 00H, 'e', 00H, 'r', 00H
	DB	' ', 00H, 't', 00H, 'o', 00H, 0aH, 00H, 'd', 00H, 'e', 00H, 'c'
	DB	00H, 'i', 00H, 'd', 00H, 'e', 00H, ' ', 00H, 'h', 00H, 'o', 00H
	DB	'w', 00H, ' ', 00H, 'm', 00H, 'a', 00H, 'n', 00H, 'y', 00H, ' '
	DB	00H, 'b', 00H, 'a', 00H, 'c', 00H, 'k', 00H, ' ', 00H, 'b', 00H
	DB	'u', 00H, 'f', 00H, 'f', 00H, 'e', 00H, 'r', 00H, 's', 00H, ' '
	DB	00H, 'i', 00H, 't', 00H, ' ', 00H, 'c', 00H, 'a', 00H, 'n', 00H
	DB	' ', 00H, 'a', 00H, 'l', 00H, 'l', 00H, 'o', 00H, 'c', 00H, 'a'
	DB	00H, 't', 00H, 'e', 00H, '.', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1BKM@CKGFPCGN@?$AAY?$AAo?$AAu?$AAr?$AA?5?$AAv?$AAi?$AAd?$AAe?$AAo?$AA?5?$AAc?$AAa?$AAr?$AAd?$AA?5?$AAd?$AAo?$AAe?$AAs?$AAn?$AA?8?$AAt?$AA?5?$AAh?$AAa?$AAv?$AAe?$AA?5?$AAe?$AAn?$AAo@
CONST	SEGMENT
??_C@_1BKM@CKGFPCGN@?$AAY?$AAo?$AAu?$AAr?$AA?5?$AAv?$AAi?$AAd?$AAe?$AAo?$AA?5?$AAc?$AAa?$AAr?$AAd?$AA?5?$AAd?$AAo?$AAe?$AAs?$AAn?$AA?8?$AAt?$AA?5?$AAh?$AAa?$AAv?$AAe?$AA?5?$AAe?$AAn?$AAo@ DB 'Y'
	DB	00H, 'o', 00H, 'u', 00H, 'r', 00H, ' ', 00H, 'v', 00H, 'i', 00H
	DB	'd', 00H, 'e', 00H, 'o', 00H, ' ', 00H, 'c', 00H, 'a', 00H, 'r'
	DB	00H, 'd', 00H, ' ', 00H, 'd', 00H, 'o', 00H, 'e', 00H, 's', 00H
	DB	'n', 00H, '''', 00H, 't', 00H, ' ', 00H, 'h', 00H, 'a', 00H, 'v'
	DB	00H, 'e', 00H, ' ', 00H, 'e', 00H, 'n', 00H, 'o', 00H, 'u', 00H
	DB	'g', 00H, 'h', 00H, ' ', 00H, 'o', 00H, 'v', 00H, 'e', 00H, 'r'
	DB	00H, 'l', 00H, 'a', 00H, 'y', 00H, 0aH, 00H, 'm', 00H, 'e', 00H
	DB	'm', 00H, 'o', 00H, 'r', 00H, 'y', 00H, ' ', 00H, 'f', 00H, 'o'
	DB	00H, 'r', 00H, ' ', 00H, 'a', 00H, ' ', 00H, 'T', 00H, 'V', 00H
	DB	' ', 00H, 'p', 00H, 'i', 00H, 'c', 00H, 't', 00H, 'u', 00H, 'r'
	DB	00H, 'e', 00H, '.', 00H, ' ', 00H, ' ', 00H, 'T', 00H, 'r', 00H
	DB	'y', 00H, ' ', 00H, 'l', 00H, 'o', 00H, 'w', 00H, 'e', 00H, 'r'
	DB	00H, 'i', 00H, 'n', 00H, 'g', 00H, ' ', 00H, 'y', 00H, 'o', 00H
	DB	'u', 00H, 'r', 00H, 0aH, 00H, 'c', 00H, 'o', 00H, 'l', 00H, 'o'
	DB	00H, 'r', 00H, ' ', 00H, 'd', 00H, 'e', 00H, 'p', 00H, 't', 00H
	DB	'h', 00H, ' ', 00H, 'o', 00H, 'r', 00H, ' ', 00H, 's', 00H, 'c'
	DB	00H, 'r', 00H, 'e', 00H, 'e', 00H, 'n', 00H, ' ', 00H, 'r', 00H
	DB	'e', 00H, 's', 00H, 'o', 00H, 'l', 00H, 'u', 00H, 't', 00H, 'i'
	DB	00H, 'o', 00H, 'n', 00H, '.', 00H, ' ', 00H, ' ', 00H, 'R', 00H
	DB	'e', 00H, 'b', 00H, 'o', 00H, 'o', 00H, 't', 00H, 'i', 00H, 'n'
	DB	00H, 'g', 00H, 0aH, 00H, 'm', 00H, 'a', 00H, 'y', 00H, ' ', 00H
	DB	'h', 00H, 'e', 00H, 'l', 00H, 'p', 00H, ' ', 00H, 'i', 00H, 'n'
	DB	00H, ' ', 00H, 's', 00H, 'o', 00H, 'm', 00H, 'e', 00H, ' ', 00H
	DB	'c', 00H, 'a', 00H, 's', 00H, 'e', 00H, 's', 00H, ' ', 00H, 'i'
	DB	00H, 'f', 00H, ' ', 00H, 'm', 00H, 'e', 00H, 'm', 00H, 'o', 00H
	DB	'r', 00H, 'y', 00H, ' ', 00H, 'i', 00H, 's', 00H, ' ', 00H, 'b'
	DB	00H, 'e', 00H, 'i', 00H, 'n', 00H, 'g', 00H, 0aH, 00H, 'u', 00H
	DB	's', 00H, 'e', 00H, 'd', 00H, ' ', 00H, 'b', 00H, 'y', 00H, ' '
	DB	00H, 's', 00H, 'o', 00H, 'm', 00H, 'e', 00H, 't', 00H, 'h', 00H
	DB	'i', 00H, 'n', 00H, 'g', 00H, ' ', 00H, 'e', 00H, 'l', 00H, 's'
	DB	00H, 'e', 00H, ' ', 00H, 'o', 00H, 'n', 00H, ' ', 00H, 'y', 00H
	DB	'o', 00H, 'u', 00H, 'r', 00H, ' ', 00H, 's', 00H, 'y', 00H, 's'
	DB	00H, 't', 00H, 'e', 00H, 'm', 00H, '.', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1EG@KBAEPAML@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAi?$AAn?$AAg?$AA?5?$AAp?$AAr?$AAi?$AAm?$AAa?$AAr?$AAy?$AA?5?$AAs?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?3?$AA?5@
CONST	SEGMENT
??_C@_1EG@KBAEPAML@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAi?$AAn?$AAg?$AA?5?$AAp?$AAr?$AAi?$AAm?$AAa?$AAr?$AAy?$AA?5?$AAs?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?3?$AA?5@ DB 'E'
	DB	00H, 'r', 00H, 'r', 00H, 'o', 00H, 'r', 00H, ' ', 00H, 'c', 00H
	DB	'r', 00H, 'e', 00H, 'a', 00H, 't', 00H, 'i', 00H, 'n', 00H, 'g'
	DB	00H, ' ', 00H, 'p', 00H, 'r', 00H, 'i', 00H, 'm', 00H, 'a', 00H
	DB	'r', 00H, 'y', 00H, ' ', 00H, 's', 00H, 'u', 00H, 'r', 00H, 'f'
	DB	00H, 'a', 00H, 'c', 00H, 'e', 00H, ':', 00H, ' ', 00H, '%', 00H
	DB	'x', 00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1DC@HIBOACLO@?$AAC?$AAa?$AAn?$AAn?$AAo?$AAt?$AA?5?$AAg?$AAe?$AAt?$AA?5?$AAc?$AAo?$AAl?$AAo?$AAr?$AA?5?$AAc?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AA?$AA@
CONST	SEGMENT
??_C@_1DC@HIBOACLO@?$AAC?$AAa?$AAn?$AAn?$AAo?$AAt?$AA?5?$AAg?$AAe?$AAt?$AA?5?$AAc?$AAo?$AAl?$AAo?$AAr?$AA?5?$AAc?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AA?$AA@ DB 'C'
	DB	00H, 'a', 00H, 'n', 00H, 'n', 00H, 'o', 00H, 't', 00H, ' ', 00H
	DB	'g', 00H, 'e', 00H, 't', 00H, ' ', 00H, 'c', 00H, 'o', 00H, 'l'
	DB	00H, 'o', 00H, 'r', 00H, ' ', 00H, 'c', 00H, 'o', 00H, 'n', 00H
	DB	't', 00H, 'r', 00H, 'o', 00H, 'l', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1DO@GLCELCIB@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?5?$AA?$CF?$AAx?$AA?5?$AAi?$AAn?$AA?5?$AAS?$AAe?$AAt?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?$CI?$AA?$CJ?$AA?$AA@
CONST	SEGMENT
??_C@_1DO@GLCELCIB@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?5?$AA?$CF?$AAx?$AA?5?$AAi?$AAn?$AA?5?$AAS?$AAe?$AAt?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?$CI?$AA?$CJ?$AA?$AA@ DB 'E'
	DB	00H, 'r', 00H, 'r', 00H, 'o', 00H, 'r', 00H, ' ', 00H, '%', 00H
	DB	'x', 00H, ' ', 00H, 'i', 00H, 'n', 00H, ' ', 00H, 'S', 00H, 'e'
	DB	00H, 't', 00H, 'C', 00H, 'o', 00H, 'l', 00H, 'o', 00H, 'r', 00H
	DB	'C', 00H, 'o', 00H, 'n', 00H, 't', 00H, 'r', 00H, 'o', 00H, 'l'
	DB	00H, 's', 00H, '(', 00H, ')', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1DE@HDJNIPFD@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?5?$AA?$CF?$AAx?$AA?5?$AAi?$AAn?$AA?5?$AAU?$AAp?$AAd?$AAa?$AAt?$AAe?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?$AA@
CONST	SEGMENT
??_C@_1DE@HDJNIPFD@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?5?$AA?$CF?$AAx?$AA?5?$AAi?$AAn?$AA?5?$AAU?$AAp?$AAd?$AAa?$AAt?$AAe?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?$AA@ DB 'E'
	DB	00H, 'r', 00H, 'r', 00H, 'o', 00H, 'r', 00H, ' ', 00H, '%', 00H
	DB	'x', 00H, ' ', 00H, 'i', 00H, 'n', 00H, ' ', 00H, 'U', 00H, 'p'
	DB	00H, 'd', 00H, 'a', 00H, 't', 00H, 'e', 00H, 'O', 00H, 'v', 00H
	DB	'e', 00H, 'r', 00H, 'l', 00H, 'a', 00H, 'y', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1DE@JICNEBNB@?$AAR?$AAe?$AAs?$AAe?$AAt?$AA?5?$AAo?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAc?$AAo?$AAl?$AAo?$AAr?$AA?5?$AAt?$AAo?$AA?5?$AA?$CF?$AAx?$AA?$AA@
CONST	SEGMENT
??_C@_1DE@JICNEBNB@?$AAR?$AAe?$AAs?$AAe?$AAt?$AA?5?$AAo?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAc?$AAo?$AAl?$AAo?$AAr?$AA?5?$AAt?$AAo?$AA?5?$AA?$CF?$AAx?$AA?$AA@ DB 'R'
	DB	00H, 'e', 00H, 's', 00H, 'e', 00H, 't', 00H, ' ', 00H, 'o', 00H
	DB	'v', 00H, 'e', 00H, 'r', 00H, 'l', 00H, 'a', 00H, 'y', 00H, ' '
	DB	00H, 'c', 00H, 'o', 00H, 'l', 00H, 'o', 00H, 'r', 00H, ' ', 00H
	DB	't', 00H, 'o', 00H, ' ', 00H, '%', 00H, 'x', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1FE@HCKJAEKC@?$AAG?$AAo?$AAt?$AA?5?$AAu?$AAn?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd?$AA?5?$AAe?$AAr?$AAr?$AAo?$AAr?$AA?5?$AAf?$AAr?$AAo?$AAm?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl@
CONST	SEGMENT
??_C@_1FE@HCKJAEKC@?$AAG?$AAo?$AAt?$AA?5?$AAu?$AAn?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd?$AA?5?$AAe?$AAr?$AAr?$AAo?$AAr?$AA?5?$AAf?$AAr?$AAo?$AAm?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl@ DB 'G'
	DB	00H, 'o', 00H, 't', 00H, ' ', 00H, 'u', 00H, 'n', 00H, 's', 00H
	DB	'u', 00H, 'p', 00H, 'p', 00H, 'o', 00H, 'r', 00H, 't', 00H, 'e'
	DB	00H, 'd', 00H, ' ', 00H, 'e', 00H, 'r', 00H, 'r', 00H, 'o', 00H
	DB	'r', 00H, ' ', 00H, 'f', 00H, 'r', 00H, 'o', 00H, 'm', 00H, ' '
	DB	00H, 'O', 00H, 'v', 00H, 'e', 00H, 'r', 00H, 'l', 00H, 'a', 00H
	DB	'y', 00H, ' ', 00H, 'U', 00H, 'p', 00H, 'd', 00H, 'a', 00H, 't'
	DB	00H, 'e', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1DK@FBKPMNMN@?$AAP?$AAh?$AAy?$AAs?$AAi?$AAc?$AAa?$AAl?$AA?5?$AAo?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAc?$AAo?$AAl?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AA?$CF?$AAx?$AA?$AA@
CONST	SEGMENT
??_C@_1DK@FBKPMNMN@?$AAP?$AAh?$AAy?$AAs?$AAi?$AAc?$AAa?$AAl?$AA?5?$AAo?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAc?$AAo?$AAl?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AA?$CF?$AAx?$AA?$AA@ DB 'P'
	DB	00H, 'h', 00H, 'y', 00H, 's', 00H, 'i', 00H, 'c', 00H, 'a', 00H
	DB	'l', 00H, ' ', 00H, 'o', 00H, 'v', 00H, 'e', 00H, 'r', 00H, 'l'
	DB	00H, 'a', 00H, 'y', 00H, ' ', 00H, 'c', 00H, 'o', 00H, 'l', 00H
	DB	'o', 00H, 'r', 00H, ' ', 00H, 'i', 00H, 's', 00H, ' ', 00H, '%'
	DB	00H, 'x', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1FG@DCGKBJDJ@?$AAP?$AAh?$AAy?$AAs?$AAi?$AAc?$AAa?$AAl?$AA?5?$AAo?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAc?$AAo?$AAl?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAz?$AAe?$AAr?$AAo?$AA?$CB?$AA?5@
CONST	SEGMENT
??_C@_1FG@DCGKBJDJ@?$AAP?$AAh?$AAy?$AAs?$AAi?$AAc?$AAa?$AAl?$AA?5?$AAo?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAc?$AAo?$AAl?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAz?$AAe?$AAr?$AAo?$AA?$CB?$AA?5@ DB 'P'
	DB	00H, 'h', 00H, 'y', 00H, 's', 00H, 'i', 00H, 'c', 00H, 'a', 00H
	DB	'l', 00H, ' ', 00H, 'o', 00H, 'v', 00H, 'e', 00H, 'r', 00H, 'l'
	DB	00H, 'a', 00H, 'y', 00H, ' ', 00H, 'c', 00H, 'o', 00H, 'l', 00H
	DB	'o', 00H, 'r', 00H, ' ', 00H, 'i', 00H, 's', 00H, ' ', 00H, 'z'
	DB	00H, 'e', 00H, 'r', 00H, 'o', 00H, '!', 00H, ' ', 00H, ' ', 00H
	DB	'R', 00H, 'e', 00H, 't', 00H, 'r', 00H, 'y', 00H, 'i', 00H, 'n'
	DB	00H, 'g', 00H, '.', 00H, 00H, 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_1EM@CGCIBFIA@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?5?$AA?$CF?$AAx?$AA?5?$AAc?$AAa?$AAl?$AAl?$AAi?$AAn?$AAg?$AA?5?$AAU?$AAp?$AAd?$AAa?$AAt?$AAe?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AA?$CI@
CONST	SEGMENT
??_C@_1EM@CGCIBFIA@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?5?$AA?$CF?$AAx?$AA?5?$AAc?$AAa?$AAl?$AAl?$AAi?$AAn?$AAg?$AA?5?$AAU?$AAp?$AAd?$AAa?$AAt?$AAe?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AA?$CI@ DB 'E'
	DB	00H, 'r', 00H, 'r', 00H, 'o', 00H, 'r', 00H, ' ', 00H, '%', 00H
	DB	'x', 00H, ' ', 00H, 'c', 00H, 'a', 00H, 'l', 00H, 'l', 00H, 'i'
	DB	00H, 'n', 00H, 'g', 00H, ' ', 00H, 'U', 00H, 'p', 00H, 'd', 00H
	DB	'a', 00H, 't', 00H, 'e', 00H, 'O', 00H, 'v', 00H, 'e', 00H, 'r'
	DB	00H, 'l', 00H, 'a', 00H, 'y', 00H, ' ', 00H, '(', 00H, 'H', 00H
	DB	'i', 00H, 'd', 00H, 'e', 00H, ')', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1DM@IFNNMBMO@?$AAC?$AAo?$AAu?$AAl?$AAd?$AAn?$AA?8?$AAt?$AA?5?$AAf?$AAi?$AAn?$AAd?$AA?5?$AAc?$AAo?$AAr?$AAr?$AAe?$AAc?$AAt?$AA?5?$AAm?$AAo?$AAn?$AAi?$AAt?$AAo?$AAr?$AA?$AA@
CONST	SEGMENT
??_C@_1DM@IFNNMBMO@?$AAC?$AAo?$AAu?$AAl?$AAd?$AAn?$AA?8?$AAt?$AA?5?$AAf?$AAi?$AAn?$AAd?$AA?5?$AAc?$AAo?$AAr?$AAr?$AAe?$AAc?$AAt?$AA?5?$AAm?$AAo?$AAn?$AAi?$AAt?$AAo?$AAr?$AA?$AA@ DB 'C'
	DB	00H, 'o', 00H, 'u', 00H, 'l', 00H, 'd', 00H, 'n', 00H, '''', 00H
	DB	't', 00H, ' ', 00H, 'f', 00H, 'i', 00H, 'n', 00H, 'd', 00H, ' '
	DB	00H, 'c', 00H, 'o', 00H, 'r', 00H, 'r', 00H, 'e', 00H, 'c', 00H
	DB	't', 00H, ' ', 00H, 'm', 00H, 'o', 00H, 'n', 00H, 'i', 00H, 't'
	DB	00H, 'o', 00H, 'r', 00H, 00H, 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_1CI@CKGCBFDK@?$AA?4?$AA?2?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
CONST	SEGMENT
??_C@_1CI@CKGCBFDK@?$AA?4?$AA?2?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@ DB '.'
	DB	00H, '\', 00H, 'O', 00H, 'v', 00H, 'e', 00H, 'r', 00H, 'l', 00H
	DB	'a', 00H, 'y', 00H, 'O', 00H, 'u', 00H, 't', 00H, 'p', 00H, 'u'
	DB	00H, 't', 00H, '.', 00H, 'c', 00H, 'p', 00H, 'p', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1DA@ENAPNCMA@?$AAD?$AAi?$AAr?$AAe?$AAc?$AAt?$AAD?$AAr?$AAa?$AAw?$AAC?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_1DA@ENAPNCMA@?$AAD?$AAi?$AAr?$AAe?$AAc?$AAt?$AAD?$AAr?$AAa?$AAw?$AAC?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?$AA@ DB 'D'
	DB	00H, 'i', 00H, 'r', 00H, 'e', 00H, 'c', 00H, 't', 00H, 'D', 00H
	DB	'r', 00H, 'a', 00H, 'w', 00H, 'C', 00H, 'r', 00H, 'e', 00H, 'a'
	DB	00H, 't', 00H, 'e', 00H, ' ', 00H, 'f', 00H, 'a', 00H, 'i', 00H
	DB	'l', 00H, 'e', 00H, 'd', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1BE@GPJFOKIG@?$AAd?$AAd?$AAr?$AAa?$AAw?$AA?4?$AAd?$AAl?$AAl?$AA?$AA@
CONST	SEGMENT
??_C@_1BE@GPJFOKIG@?$AAd?$AAd?$AAr?$AAa?$AAw?$AA?4?$AAd?$AAl?$AAl?$AA?$AA@ DB 'd'
	DB	00H, 'd', 00H, 'r', 00H, 'a', 00H, 'w', 00H, '.', 00H, 'd', 00H
	DB	'l', 00H, 'l', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_0BH@HJFPNDGE@DirectDrawEnumerateExW?$AA@
CONST	SEGMENT
??_C@_0BH@HJFPNDGE@DirectDrawEnumerateExW?$AA@ DB 'DirectDrawEnumerateExW'
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_1DC@BNLLAHLD@?$AAM?$AAo?$AAn?$AAi?$AAt?$AAo?$AAr?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$CI?$AA?$CF?$AAd?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$CF?$AAd?$AA?$CJ?$AA?$AA@
CONST	SEGMENT
??_C@_1DC@BNLLAHLD@?$AAM?$AAo?$AAn?$AAi?$AAt?$AAo?$AAr?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$CI?$AA?$CF?$AAd?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$CF?$AAd?$AA?$CJ?$AA?$AA@ DB 'M'
	DB	00H, 'o', 00H, 'n', 00H, 'i', 00H, 't', 00H, 'o', 00H, 'r', 00H
	DB	' ', 00H, '%', 00H, 'd', 00H, ' ', 00H, '(', 00H, '%', 00H, 'd'
	DB	00H, ' ', 00H, '%', 00H, 'd', 00H, ' ', 00H, '%', 00H, 'd', 00H
	DB	' ', 00H, '%', 00H, 'd', 00H, ')', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1CM@GIBACILD@?$AAM?$AAo?$AAn?$AAi?$AAt?$AAo?$AAr?$AA?5?$AAa?$AAl?$AAr?$AAa?$AAd?$AAy?$AA?5?$AAl?$AAi?$AAs?$AAt?$AAe?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_1CM@GIBACILD@?$AAM?$AAo?$AAn?$AAi?$AAt?$AAo?$AAr?$AA?5?$AAa?$AAl?$AAr?$AAa?$AAd?$AAy?$AA?5?$AAl?$AAi?$AAs?$AAt?$AAe?$AAd?$AA?$AA@ DB 'M'
	DB	00H, 'o', 00H, 'n', 00H, 'i', 00H, 't', 00H, 'o', 00H, 'r', 00H
	DB	' ', 00H, 'a', 00H, 'l', 00H, 'r', 00H, 'a', 00H, 'd', 00H, 'y'
	DB	00H, ' ', 00H, 'l', 00H, 'i', 00H, 's', 00H, 't', 00H, 'e', 00H
	DB	'd', 00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1CC@JGJKHILJ@?$AAM?$AAo?$AAn?$AAi?$AAt?$AAo?$AAr?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$CF?$AAs?$AA?5?$AA?$CF?$AAs?$AA?$AA@
CONST	SEGMENT
??_C@_1CC@JGJKHILJ@?$AAM?$AAo?$AAn?$AAi?$AAt?$AAo?$AAr?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$CF?$AAs?$AA?5?$AA?$CF?$AAs?$AA?$AA@ DB 'M'
	DB	00H, 'o', 00H, 'n', 00H, 'i', 00H, 't', 00H, 'o', 00H, 'r', 00H
	DB	' ', 00H, '%', 00H, 'd', 00H, ' ', 00H, '%', 00H, 's', 00H, ' '
	DB	00H, '%', 00H, 's', 00H, 00H, 00H		; `string'
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\dynamicfunction.h
;	COMDAT ??B?$DynamicFunctionParent@P6GJP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@Z2K@Z@@QBEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??B?$DynamicFunctionParent@P6GJP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@Z2K@Z@@QBEHXZ PROC ; DynamicFunctionParent<long (__stdcall*)(int (__stdcall*)(_GUID *,wchar_t *,wchar_t *,void *,HMONITOR__ *),void *,unsigned long)>::operator int, COMDAT
; _this$ = ecx

; 39   :     {

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

; 40   :         return m_pFunc != 0;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	33 c9		 xor	 ecx, ecx
  0000c	83 38 00	 cmp	 DWORD PTR [eax], 0
  0000f	0f 95 c1	 setne	 cl
  00012	8b c1		 mov	 eax, ecx

; 41   :     }

  00014	8b e5		 mov	 esp, ebp
  00016	5d		 pop	 ebp
  00017	c3		 ret	 0
??B?$DynamicFunctionParent@P6GJP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@Z2K@Z@@QBEHXZ ENDP ; DynamicFunctionParent<long (__stdcall*)(int (__stdcall*)(_GUID *,wchar_t *,wchar_t *,void *,HMONITOR__ *),void *,unsigned long)>::operator int
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??R?$DynamicFunctionS3@JP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@ZPAXK@@QBEJP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@Z2K@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_Param1$ = 8						; size = 4
_Param2$ = 12						; size = 4
_Param3$ = 16						; size = 4
??R?$DynamicFunctionS3@JP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@ZPAXK@@QBEJP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@Z2K@Z PROC ; DynamicFunctionS3<long,int (__stdcall*)(_GUID *,wchar_t *,wchar_t *,void *,HMONITOR__ *),void *,unsigned long>::operator(), COMDAT
; _this$ = ecx

; 122  :     {

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

; 123  :         return m_pFunc(Param1, Param2, Param3);

  00007	8b 45 10	 mov	 eax, DWORD PTR _Param3$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d 0c	 mov	 ecx, DWORD PTR _Param2$[ebp]
  0000e	51		 push	 ecx
  0000f	8b 55 08	 mov	 edx, DWORD PTR _Param1$[ebp]
  00012	52		 push	 edx
  00013	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00016	8b 08		 mov	 ecx, DWORD PTR [eax]
  00018	ff d1		 call	 ecx

; 124  :     }

  0001a	8b e5		 mov	 esp, ebp
  0001c	5d		 pop	 ebp
  0001d	c2 0c 00	 ret	 12			; 0000000cH
??R?$DynamicFunctionS3@JP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@ZPAXK@@QBEJP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@Z2K@Z ENDP ; DynamicFunctionS3<long,int (__stdcall*)(_GUID *,wchar_t *,wchar_t *,void *,HMONITOR__ *),void *,unsigned long>::operator()
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??R?$DynamicFunctionS3@JPAU_GUID@@PAPAUIDirectDraw@@PAUIUnknown@@@@QBEJPAU_GUID@@PAPAUIDirectDraw@@PAUIUnknown@@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_Param1$ = 8						; size = 4
_Param2$ = 12						; size = 4
_Param3$ = 16						; size = 4
??R?$DynamicFunctionS3@JPAU_GUID@@PAPAUIDirectDraw@@PAUIUnknown@@@@QBEJPAU_GUID@@PAPAUIDirectDraw@@PAUIUnknown@@@Z PROC ; DynamicFunctionS3<long,_GUID *,IDirectDraw * *,IUnknown *>::operator(), COMDAT
; _this$ = ecx

; 122  :     {

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

; 123  :         return m_pFunc(Param1, Param2, Param3);

  00007	8b 45 10	 mov	 eax, DWORD PTR _Param3$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d 0c	 mov	 ecx, DWORD PTR _Param2$[ebp]
  0000e	51		 push	 ecx
  0000f	8b 55 08	 mov	 edx, DWORD PTR _Param1$[ebp]
  00012	52		 push	 edx
  00013	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00016	8b 08		 mov	 ecx, DWORD PTR [eax]
  00018	ff d1		 call	 ecx

; 124  :     }

  0001a	8b e5		 mov	 esp, ebp
  0001c	5d		 pop	 ebp
  0001d	c2 0c 00	 ret	 12			; 0000000cH
??R?$DynamicFunctionS3@JPAU_GUID@@PAPAUIDirectDraw@@PAUIUnknown@@@@QBEJPAU_GUID@@PAPAUIDirectDraw@@PAUIUnknown@@@Z ENDP ; DynamicFunctionS3<long,_GUID *,IDirectDraw * *,IUnknown *>::operator()
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??B?$DynamicFunctionParent@P6GHPAUHMONITOR__@@PAUtagMONITORINFO@@@Z@@QBEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??B?$DynamicFunctionParent@P6GHPAUHMONITOR__@@PAUtagMONITORINFO@@@Z@@QBEHXZ PROC ; DynamicFunctionParent<int (__stdcall*)(HMONITOR__ *,tagMONITORINFO *)>::operator int, COMDAT
; _this$ = ecx

; 39   :     {

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

; 40   :         return m_pFunc != 0;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	33 c9		 xor	 ecx, ecx
  0000c	83 38 00	 cmp	 DWORD PTR [eax], 0
  0000f	0f 95 c1	 setne	 cl
  00012	8b c1		 mov	 eax, ecx

; 41   :     }

  00014	8b e5		 mov	 esp, ebp
  00016	5d		 pop	 ebp
  00017	c3		 ret	 0
??B?$DynamicFunctionParent@P6GHPAUHMONITOR__@@PAUtagMONITORINFO@@@Z@@QBEHXZ ENDP ; DynamicFunctionParent<int (__stdcall*)(HMONITOR__ *,tagMONITORINFO *)>::operator int
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??R?$DynamicFunctionS2@HPAUHMONITOR__@@PAUtagMONITORINFO@@@@QBEHPAUHMONITOR__@@PAUtagMONITORINFO@@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_Param1$ = 8						; size = 4
_Param2$ = 12						; size = 4
??R?$DynamicFunctionS2@HPAUHMONITOR__@@PAUtagMONITORINFO@@@@QBEHPAUHMONITOR__@@PAUtagMONITORINFO@@@Z PROC ; DynamicFunctionS2<int,HMONITOR__ *,tagMONITORINFO *>::operator(), COMDAT
; _this$ = ecx

; 106  :     {

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

; 107  :         return m_pFunc(Param1, Param2);

  00007	8b 45 0c	 mov	 eax, DWORD PTR _Param2$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d 08	 mov	 ecx, DWORD PTR _Param1$[ebp]
  0000e	51		 push	 ecx
  0000f	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00012	8b 02		 mov	 eax, DWORD PTR [edx]
  00014	ff d0		 call	 eax

; 108  :     }

  00016	8b e5		 mov	 esp, ebp
  00018	5d		 pop	 ebp
  00019	c2 08 00	 ret	 8
??R?$DynamicFunctionS2@HPAUHMONITOR__@@PAUtagMONITORINFO@@@@QBEHPAUHMONITOR__@@PAUtagMONITORINFO@@@Z ENDP ; DynamicFunctionS2<int,HMONITOR__ *,tagMONITORINFO *>::operator()
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??B?$DynamicFunctionParent@P6GPAUHMONITOR__@@PAUHWND__@@K@Z@@QBEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??B?$DynamicFunctionParent@P6GPAUHMONITOR__@@PAUHWND__@@K@Z@@QBEHXZ PROC ; DynamicFunctionParent<HMONITOR__ * (__stdcall*)(HWND__ *,unsigned long)>::operator int, COMDAT
; _this$ = ecx

; 39   :     {

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

; 40   :         return m_pFunc != 0;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	33 c9		 xor	 ecx, ecx
  0000c	83 38 00	 cmp	 DWORD PTR [eax], 0
  0000f	0f 95 c1	 setne	 cl
  00012	8b c1		 mov	 eax, ecx

; 41   :     }

  00014	8b e5		 mov	 esp, ebp
  00016	5d		 pop	 ebp
  00017	c3		 ret	 0
??B?$DynamicFunctionParent@P6GPAUHMONITOR__@@PAUHWND__@@K@Z@@QBEHXZ ENDP ; DynamicFunctionParent<HMONITOR__ * (__stdcall*)(HWND__ *,unsigned long)>::operator int
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??R?$DynamicFunctionS2@PAUHMONITOR__@@PAUHWND__@@K@@QBEPAUHMONITOR__@@PAUHWND__@@K@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_Param1$ = 8						; size = 4
_Param2$ = 12						; size = 4
??R?$DynamicFunctionS2@PAUHMONITOR__@@PAUHWND__@@K@@QBEPAUHMONITOR__@@PAUHWND__@@K@Z PROC ; DynamicFunctionS2<HMONITOR__ *,HWND__ *,unsigned long>::operator(), COMDAT
; _this$ = ecx

; 106  :     {

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

; 107  :         return m_pFunc(Param1, Param2);

  00007	8b 45 0c	 mov	 eax, DWORD PTR _Param2$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d 08	 mov	 ecx, DWORD PTR _Param1$[ebp]
  0000e	51		 push	 ecx
  0000f	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00012	8b 02		 mov	 eax, DWORD PTR [edx]
  00014	ff d0		 call	 eax

; 108  :     }

  00016	8b e5		 mov	 esp, ebp
  00018	5d		 pop	 ebp
  00019	c2 08 00	 ret	 8
??R?$DynamicFunctionS2@PAUHMONITOR__@@PAUHWND__@@K@@QBEPAUHMONITOR__@@PAUHWND__@@K@Z ENDP ; DynamicFunctionS2<HMONITOR__ *,HWND__ *,unsigned long>::operator()
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\overlayoutput.cpp
_TEXT	ENDS
;	COMDAT ?WaitForVerticalBlank@COverlayOutput@@UAEXXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?WaitForVerticalBlank@COverlayOutput@@UAEXXZ PROC	; COverlayOutput::WaitForVerticalBlank, COMDAT
; _this$ = ecx

; 1499 : {

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

; 1500 :     if (lpDD != NULL)

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	83 b8 b0 02 00
	00 00		 cmp	 DWORD PTR [eax+688], 0
  00011	74 1e		 je	 SHORT $LN2@WaitForVer

; 1501 :     {
; 1502 :         lpDD->WaitForVerticalBlank(DDWAITVB_BLOCKBEGIN, NULL);

  00013	6a 00		 push	 0
  00015	6a 01		 push	 1
  00017	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0001a	8b 91 b0 02 00
	00		 mov	 edx, DWORD PTR [ecx+688]
  00020	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00023	8b 88 b0 02 00
	00		 mov	 ecx, DWORD PTR [eax+688]
  00029	8b 12		 mov	 edx, DWORD PTR [edx]
  0002b	51		 push	 ecx
  0002c	8b 42 58	 mov	 eax, DWORD PTR [edx+88]
  0002f	ff d0		 call	 eax
$LN2@WaitForVer:

; 1503 :     }
; 1504 : }

  00031	8b e5		 mov	 esp, ebp
  00033	5d		 pop	 ebp
  00034	c3		 ret	 0
?WaitForVerticalBlank@COverlayOutput@@UAEXXZ ENDP	; COverlayOutput::WaitForVerticalBlank
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?Type@COverlayOutput@@UAE?AW4OUTPUTTYPES@IOutput@@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?Type@COverlayOutput@@UAE?AW4OUTPUTTYPES@IOutput@@XZ PROC ; COverlayOutput::Type, COMDAT
; _this$ = ecx

; 1385 : {

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

; 1386 :     return OUT_OVERLAY;

  00007	33 c0		 xor	 eax, eax

; 1387 : }

  00009	8b e5		 mov	 esp, ebp
  0000b	5d		 pop	 ebp
  0000c	c3		 ret	 0
?Type@COverlayOutput@@UAE?AW4OUTPUTTYPES@IOutput@@XZ ENDP ; COverlayOutput::Type
_Monitors DQ	010H DUP (?)
; Function compile flags: /Odtp
;	COMDAT ?ExitDD@COverlayOutput@@UAEXXZ
_TEXT	SEGMENT
_this$ = -8						; size = 4
_i$143402 = -4						; size = 4
?ExitDD@COverlayOutput@@UAEXXZ PROC			; COverlayOutput::ExitDD, COMDAT
; _this$ = ecx

; 1360 : {

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

; 1361 :     if (lpDD != NULL)

  00009	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	83 b8 b0 02 00
	00 00		 cmp	 DWORD PTR [eax+688], 0
  00013	0f 84 ac 00 00
	00		 je	 $LN8@ExitDD

; 1362 :     {
; 1363 :         Overlay_Destroy();

  00019	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0001c	8b 11		 mov	 edx, DWORD PTR [ecx]
  0001e	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00021	8b 42 2c	 mov	 eax, DWORD PTR [edx+44]
  00024	ff d0		 call	 eax

; 1364 :         if(m_lpMonitorFromWindow)

  00026	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00029	81 c1 b4 02 00
	00		 add	 ecx, 692		; 000002b4H
  0002f	e8 00 00 00 00	 call	 ??B?$DynamicFunctionParent@P6GPAUHMONITOR__@@PAUHWND__@@K@Z@@QBEHXZ ; DynamicFunctionParent<HMONITOR__ * (__stdcall*)(HWND__ *,unsigned long)>::operator int
  00034	85 c0		 test	 eax, eax
  00036	74 66		 je	 SHORT $LN6@ExitDD

; 1365 :         {
; 1366 :             for (int i=0 ; i<NbMonitors ; i++)

  00038	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _i$143402[ebp], 0
  0003f	eb 09		 jmp	 SHORT $LN5@ExitDD
$LN4@ExitDD:
  00041	8b 4d fc	 mov	 ecx, DWORD PTR _i$143402[ebp]
  00044	83 c1 01	 add	 ecx, 1
  00047	89 4d fc	 mov	 DWORD PTR _i$143402[ebp], ecx
$LN5@ExitDD:
  0004a	8b 55 fc	 mov	 edx, DWORD PTR _i$143402[ebp]
  0004d	3b 15 00 00 00
	00		 cmp	 edx, DWORD PTR _NbMonitors
  00053	7d 47		 jge	 SHORT $LN3@ExitDD

; 1367 :             {
; 1368 :                 if(Monitors[i].lpDD!=NULL)

  00055	8b 45 fc	 mov	 eax, DWORD PTR _i$143402[ebp]
  00058	83 3c c5 04 00
	00 00 00	 cmp	 DWORD PTR _Monitors[eax*8+4], 0
  00060	74 1c		 je	 SHORT $LN2@ExitDD

; 1369 :                 {
; 1370 :                     Monitors[i].lpDD->Release();

  00062	8b 4d fc	 mov	 ecx, DWORD PTR _i$143402[ebp]
  00065	8b 14 cd 04 00
	00 00		 mov	 edx, DWORD PTR _Monitors[ecx*8+4]
  0006c	8b 45 fc	 mov	 eax, DWORD PTR _i$143402[ebp]
  0006f	8b 0c c5 04 00
	00 00		 mov	 ecx, DWORD PTR _Monitors[eax*8+4]
  00076	8b 12		 mov	 edx, DWORD PTR [edx]
  00078	51		 push	 ecx
  00079	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  0007c	ff d0		 call	 eax
$LN2@ExitDD:

; 1371 :                 }
; 1372 :                 Monitors[i].lpDD = NULL;

  0007e	8b 4d fc	 mov	 ecx, DWORD PTR _i$143402[ebp]
  00081	c7 04 cd 04 00
	00 00 00 00 00
	00		 mov	 DWORD PTR _Monitors[ecx*8+4], 0

; 1373 :                 Monitors[i].hMon = 0;

  0008c	8b 55 fc	 mov	 edx, DWORD PTR _i$143402[ebp]
  0008f	c7 04 d5 00 00
	00 00 00 00 00
	00		 mov	 DWORD PTR _Monitors[edx*8], 0

; 1374 :             }

  0009a	eb a5		 jmp	 SHORT $LN4@ExitDD
$LN3@ExitDD:

; 1375 :         }
; 1376 :         else

  0009c	eb 1a		 jmp	 SHORT $LN1@ExitDD
$LN6@ExitDD:

; 1377 :         {
; 1378 :             lpDD->Release();

  0009e	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  000a1	8b 88 b0 02 00
	00		 mov	 ecx, DWORD PTR [eax+688]
  000a7	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  000aa	8b 82 b0 02 00
	00		 mov	 eax, DWORD PTR [edx+688]
  000b0	8b 09		 mov	 ecx, DWORD PTR [ecx]
  000b2	50		 push	 eax
  000b3	8b 51 08	 mov	 edx, DWORD PTR [ecx+8]
  000b6	ff d2		 call	 edx
$LN1@ExitDD:

; 1379 :         }
; 1380 :         lpDD = NULL;

  000b8	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  000bb	c7 80 b0 02 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+688], 0
$LN8@ExitDD:

; 1381 :     }
; 1382 : }

  000c5	8b e5		 mov	 esp, ebp
  000c7	5d		 pop	 ebp
  000c8	c3		 ret	 0
?ExitDD@COverlayOutput@@UAEXXZ ENDP			; COverlayOutput::ExitDD
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?Overlay_GetRGB@COverlayOutput@@UAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?Overlay_GetRGB@COverlayOutput@@UAEHXZ PROC		; COverlayOutput::Overlay_GetRGB, COMDAT
; _this$ = ecx

; 1288 : {

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

; 1289 :     return bIsRGB;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 80 ac 02 00
	00		 mov	 eax, DWORD PTR [eax+684]

; 1290 : }

  00010	8b e5		 mov	 esp, ebp
  00012	5d		 pop	 ebp
  00013	c3		 ret	 0
?Overlay_GetRGB@COverlayOutput@@UAEHXZ ENDP		; COverlayOutput::Overlay_GetRGB
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?Overlay_SetRGB@COverlayOutput@@UAEXH@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_IsRGB$ = 8						; size = 4
?Overlay_SetRGB@COverlayOutput@@UAEXH@Z PROC		; COverlayOutput::Overlay_SetRGB, COMDAT
; _this$ = ecx

; 1283 : {

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

; 1284 :     bIsRGB = IsRGB;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 4d 08	 mov	 ecx, DWORD PTR _IsRGB$[ebp]
  0000d	89 88 ac 02 00
	00		 mov	 DWORD PTR [eax+684], ecx

; 1285 : }

  00013	8b e5		 mov	 esp, ebp
  00015	5d		 pop	 ebp
  00016	c2 04 00	 ret	 4
?Overlay_SetRGB@COverlayOutput@@UAEXH@Z ENDP		; COverlayOutput::Overlay_SetRGB
_TEXT	ENDS
PUBLIC	?Overlay_Copy_External@COverlayOutput@@QAEXPAEHPAUTDeinterlaceInfo@@@Z ; COverlayOutput::Overlay_Copy_External
; Function compile flags: /Odtp
;	COMDAT ?Overlay_Copy_External@COverlayOutput@@QAEXPAEHPAUTDeinterlaceInfo@@@Z
_TEXT	SEGMENT
_this$ = -20						; size = 4
_i$143309 = -16						; size = 4
_ToPtr$143308 = -12					; size = 4
_FromPtr$ = -8						; size = 4
_FromPitch$ = -4					; size = 4
_lpExternalMemoryBuffer$ = 8				; size = 4
_ExternalPitch$ = 12					; size = 4
_pInfo$ = 16						; size = 4
?Overlay_Copy_External@COverlayOutput@@QAEXPAEHPAUTDeinterlaceInfo@@@Z PROC ; COverlayOutput::Overlay_Copy_External, COMDAT
; _this$ = ecx

; 1184 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 14	 sub	 esp, 20			; 00000014H
  00006	89 4d ec	 mov	 DWORD PTR _this$[ebp], ecx

; 1185 :     BYTE* FromPtr = lpExternalMemoryBuffer + (16 - ((DWORD)lpExternalMemoryBuffer % 16));

  00009	8b 45 08	 mov	 eax, DWORD PTR _lpExternalMemoryBuffer$[ebp]
  0000c	33 d2		 xor	 edx, edx
  0000e	b9 10 00 00 00	 mov	 ecx, 16			; 00000010H
  00013	f7 f1		 div	 ecx
  00015	b8 10 00 00 00	 mov	 eax, 16			; 00000010H
  0001a	2b c2		 sub	 eax, edx
  0001c	03 45 08	 add	 eax, DWORD PTR _lpExternalMemoryBuffer$[ebp]
  0001f	89 45 f8	 mov	 DWORD PTR _FromPtr$[ebp], eax

; 1186 :     long FromPitch = ExternalPitch;

  00022	8b 4d 0c	 mov	 ecx, DWORD PTR _ExternalPitch$[ebp]
  00025	89 4d fc	 mov	 DWORD PTR _FromPitch$[ebp], ecx

; 1187 :     // careful as we need to ensure this is always unlocked
; 1188 :     if(Overlay_Lock_Back_Buffer(pInfo, FALSE))

  00028	6a 00		 push	 0
  0002a	8b 55 10	 mov	 edx, DWORD PTR _pInfo$[ebp]
  0002d	52		 push	 edx
  0002e	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  00031	8b 10		 mov	 edx, DWORD PTR [eax]
  00033	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  00036	8b 42 40	 mov	 eax, DWORD PTR [edx+64]
  00039	ff d0		 call	 eax
  0003b	85 c0		 test	 eax, eax
  0003d	74 68		 je	 SHORT $LN5@Overlay_Co

; 1189 :     {
; 1190 :         BYTE* ToPtr = pInfo->Overlay;

  0003f	8b 4d 10	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  00042	8b 51 2c	 mov	 edx, DWORD PTR [ecx+44]
  00045	89 55 f4	 mov	 DWORD PTR _ToPtr$143308[ebp], edx

; 1191 : 
; 1192 :         for(int i(0) ; i < pInfo->FrameHeight; ++i)

  00048	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _i$143309[ebp], 0
  0004f	eb 09		 jmp	 SHORT $LN3@Overlay_Co
$LN2@Overlay_Co:
  00051	8b 45 f0	 mov	 eax, DWORD PTR _i$143309[ebp]
  00054	83 c0 01	 add	 eax, 1
  00057	89 45 f0	 mov	 DWORD PTR _i$143309[ebp], eax
$LN3@Overlay_Co:
  0005a	8b 4d 10	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  0005d	8b 55 f0	 mov	 edx, DWORD PTR _i$143309[ebp]
  00060	3b 51 50	 cmp	 edx, DWORD PTR [ecx+80]
  00063	7d 31		 jge	 SHORT $LN1@Overlay_Co

; 1193 :         {
; 1194 :             pInfo->pMemcpy(ToPtr, FromPtr, pInfo->LineLength);

  00065	8b 45 10	 mov	 eax, DWORD PTR _pInfo$[ebp]
  00068	8b 48 48	 mov	 ecx, DWORD PTR [eax+72]
  0006b	51		 push	 ecx
  0006c	8b 55 f8	 mov	 edx, DWORD PTR _FromPtr$[ebp]
  0006f	52		 push	 edx
  00070	8b 45 f4	 mov	 eax, DWORD PTR _ToPtr$143308[ebp]
  00073	50		 push	 eax
  00074	8b 4d 10	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  00077	8b 51 60	 mov	 edx, DWORD PTR [ecx+96]
  0007a	ff d2		 call	 edx
  0007c	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1195 :             FromPtr += FromPitch;

  0007f	8b 45 f8	 mov	 eax, DWORD PTR _FromPtr$[ebp]
  00082	03 45 fc	 add	 eax, DWORD PTR _FromPitch$[ebp]
  00085	89 45 f8	 mov	 DWORD PTR _FromPtr$[ebp], eax

; 1196 :             ToPtr += pInfo->OverlayPitch;

  00088	8b 4d 10	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  0008b	8b 55 f4	 mov	 edx, DWORD PTR _ToPtr$143308[ebp]
  0008e	03 51 44	 add	 edx, DWORD PTR [ecx+68]
  00091	89 55 f4	 mov	 DWORD PTR _ToPtr$143308[ebp], edx

; 1197 :         }

  00094	eb bb		 jmp	 SHORT $LN2@Overlay_Co
$LN1@Overlay_Co:

; 1198 :         DO_EMMS;

  00096	0f 77		 emms

; 1199 : 
; 1200 :         Overlay_Unlock_Back_Buffer(FALSE);

  00098	6a 00		 push	 0
  0009a	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  0009d	8b 10		 mov	 edx, DWORD PTR [eax]
  0009f	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  000a2	8b 42 44	 mov	 eax, DWORD PTR [edx+68]
  000a5	ff d0		 call	 eax
$LN5@Overlay_Co:

; 1201 :     }
; 1202 : }

  000a7	8b e5		 mov	 esp, ebp
  000a9	5d		 pop	 ebp
  000aa	c2 0c 00	 ret	 12			; 0000000cH
?Overlay_Copy_External@COverlayOutput@@QAEXPAEHPAUTDeinterlaceInfo@@@Z ENDP ; COverlayOutput::Overlay_Copy_External
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?Overlay_GetCorrectedColor@COverlayOutput@@UAEKPAUHDC__@@@Z
_TEXT	SEGMENT
tv70 = -12						; size = 4
_this$ = -8						; size = 4
_nearest$ = -4						; size = 4
_hDC$ = 8						; size = 4
?Overlay_GetCorrectedColor@COverlayOutput@@UAEKPAUHDC__@@@Z PROC ; COverlayOutput::Overlay_GetCorrectedColor, COMDAT
; _this$ = ecx

; 964  : {

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

; 965  :     COLORREF nearest = GetNearestColor(hDC, g_OverlayColor);

  00009	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	8b 88 44 02 00
	00		 mov	 ecx, DWORD PTR [eax+580]
  00012	51		 push	 ecx
  00013	8b 55 08	 mov	 edx, DWORD PTR _hDC$[ebp]
  00016	52		 push	 edx
  00017	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetNearestColor@8
  0001d	89 45 fc	 mov	 DWORD PTR _nearest$[ebp], eax

; 966  :     return (nearest == CLR_INVALID) ? g_OverlayColor : nearest;

  00020	83 7d fc ff	 cmp	 DWORD PTR _nearest$[ebp], -1
  00024	75 0e		 jne	 SHORT $LN3@Overlay_Ge
  00026	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00029	8b 88 44 02 00
	00		 mov	 ecx, DWORD PTR [eax+580]
  0002f	89 4d f4	 mov	 DWORD PTR tv70[ebp], ecx
  00032	eb 06		 jmp	 SHORT $LN4@Overlay_Ge
$LN3@Overlay_Ge:
  00034	8b 55 fc	 mov	 edx, DWORD PTR _nearest$[ebp]
  00037	89 55 f4	 mov	 DWORD PTR tv70[ebp], edx
$LN4@Overlay_Ge:
  0003a	8b 45 f4	 mov	 eax, DWORD PTR tv70[ebp]

; 967  : }

  0003d	8b e5		 mov	 esp, ebp
  0003f	5d		 pop	 ebp
  00040	c2 04 00	 ret	 4
?Overlay_GetCorrectedColor@COverlayOutput@@UAEKPAUHDC__@@@Z ENDP ; COverlayOutput::Overlay_GetCorrectedColor
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?Overlay_GetColor@COverlayOutput@@UAEKXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?Overlay_GetColor@COverlayOutput@@UAEKXZ PROC		; COverlayOutput::Overlay_GetColor, COMDAT
; _this$ = ecx

; 959  : {

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

; 960  :     return g_OverlayColor;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 80 44 02 00
	00		 mov	 eax, DWORD PTR [eax+580]

; 961  : }

  00010	8b e5		 mov	 esp, ebp
  00012	5d		 pop	 ebp
  00013	c3		 ret	 0
?Overlay_GetColor@COverlayOutput@@UAEKXZ ENDP		; COverlayOutput::Overlay_GetColor
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?Overlay_ColorMatch@COverlayOutput@@UAEKPAUIDirectDrawSurface@@K@Z
_TEXT	SEGMENT
_this$ = -132						; size = 4
_hdc$ = -128						; size = 4
_rgbT$ = -124						; size = 4
_hres$ = -120						; size = 4
_dw$ = -116						; size = 4
_SurfaceDesc$ = -112					; size = 108
_pdds$ = 8						; size = 4
_rgb$ = 12						; size = 4
?Overlay_ColorMatch@COverlayOutput@@UAEKPAUIDirectDrawSurface@@K@Z PROC ; COverlayOutput::Overlay_ColorMatch, COMDAT
; _this$ = ecx

; 853  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	81 ec 84 00 00
	00		 sub	 esp, 132		; 00000084H
  00009	89 8d 7c ff ff
	ff		 mov	 DWORD PTR _this$[ebp], ecx

; 854  :     COLORREF rgbT;
; 855  :     HDC hdc;
; 856  :     DWORD dw = CLR_INVALID;

  0000f	c7 45 8c ff ff
	ff ff		 mov	 DWORD PTR _dw$[ebp], -1

; 857  :     DDSURFACEDESC SurfaceDesc;
; 858  :     HRESULT hres;
; 859  : 
; 860  :     //
; 861  :     //  Use GDI SetPixel to color match for us
; 862  :     //
; 863  :     hres = pdds->GetDC(&hdc);

  00016	8d 45 80	 lea	 eax, DWORD PTR _hdc$[ebp]
  00019	50		 push	 eax
  0001a	8b 4d 08	 mov	 ecx, DWORD PTR _pdds$[ebp]
  0001d	8b 11		 mov	 edx, DWORD PTR [ecx]
  0001f	8b 45 08	 mov	 eax, DWORD PTR _pdds$[ebp]
  00022	50		 push	 eax
  00023	8b 4a 44	 mov	 ecx, DWORD PTR [edx+68]
  00026	ff d1		 call	 ecx
  00028	89 45 88	 mov	 DWORD PTR _hres$[ebp], eax

; 864  :     if (SUCCEEDED(hres))

  0002b	83 7d 88 00	 cmp	 DWORD PTR _hres$[ebp], 0
  0002f	7c 35		 jl	 SHORT $LN6@Overlay_Co@2

; 865  :     {
; 866  :         rgbT = GetPixel(hdc, 0, 0);     // Save current pixel Value

  00031	6a 00		 push	 0
  00033	6a 00		 push	 0
  00035	8b 55 80	 mov	 edx, DWORD PTR _hdc$[ebp]
  00038	52		 push	 edx
  00039	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetPixel@12
  0003f	89 45 84	 mov	 DWORD PTR _rgbT$[ebp], eax

; 867  :         SetPixel(hdc, 0, 0, rgb);       // Set our Value

  00042	8b 45 0c	 mov	 eax, DWORD PTR _rgb$[ebp]
  00045	50		 push	 eax
  00046	6a 00		 push	 0
  00048	6a 00		 push	 0
  0004a	8b 4d 80	 mov	 ecx, DWORD PTR _hdc$[ebp]
  0004d	51		 push	 ecx
  0004e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SetPixel@16

; 868  :         pdds->ReleaseDC(hdc);

  00054	8b 55 80	 mov	 edx, DWORD PTR _hdc$[ebp]
  00057	52		 push	 edx
  00058	8b 45 08	 mov	 eax, DWORD PTR _pdds$[ebp]
  0005b	8b 08		 mov	 ecx, DWORD PTR [eax]
  0005d	8b 55 08	 mov	 edx, DWORD PTR _pdds$[ebp]
  00060	52		 push	 edx
  00061	8b 41 68	 mov	 eax, DWORD PTR [ecx+104]
  00064	ff d0		 call	 eax
$LN6@Overlay_Co@2:

; 869  :     }
; 870  :     //
; 871  :     // Now lock the surface so we can read back the converted color
; 872  :     //
; 873  :     SurfaceDesc.dwSize = sizeof(SurfaceDesc);

  00066	c7 45 90 6c 00
	00 00		 mov	 DWORD PTR _SurfaceDesc$[ebp], 108 ; 0000006cH

; 874  :     hres = pdds->Lock(NULL, &SurfaceDesc, DDLOCK_WAIT, NULL);

  0006d	6a 00		 push	 0
  0006f	6a 01		 push	 1
  00071	8d 4d 90	 lea	 ecx, DWORD PTR _SurfaceDesc$[ebp]
  00074	51		 push	 ecx
  00075	6a 00		 push	 0
  00077	8b 55 08	 mov	 edx, DWORD PTR _pdds$[ebp]
  0007a	8b 02		 mov	 eax, DWORD PTR [edx]
  0007c	8b 4d 08	 mov	 ecx, DWORD PTR _pdds$[ebp]
  0007f	51		 push	 ecx
  00080	8b 50 64	 mov	 edx, DWORD PTR [eax+100]
  00083	ff d2		 call	 edx
  00085	89 45 88	 mov	 DWORD PTR _hres$[ebp], eax

; 875  :     if (SUCCEEDED(hres))

  00088	83 7d 88 00	 cmp	 DWORD PTR _hres$[ebp], 0
  0008c	7c 45		 jl	 SHORT $LN5@Overlay_Co@2

; 876  :     {
; 877  :         if(SurfaceDesc.ddpfPixelFormat.dwRGBBitCount <= 8)

  0008e	83 7d e4 08	 cmp	 DWORD PTR _SurfaceDesc$[ebp+84], 8
  00092	77 0b		 ja	 SHORT $LN4@Overlay_Co@2

; 878  :         {
; 879  :             dw = *(BYTE*)SurfaceDesc.lpSurface;

  00094	8b 45 b4	 mov	 eax, DWORD PTR _SurfaceDesc$[ebp+36]
  00097	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  0009a	89 4d 8c	 mov	 DWORD PTR _dw$[ebp], ecx

; 880  :         }
; 881  :         else

  0009d	eb 21		 jmp	 SHORT $LN3@Overlay_Co@2
$LN4@Overlay_Co@2:

; 882  :         {
; 883  :             dw = *(DWORD*)SurfaceDesc.lpSurface;                 // Get DWORD

  0009f	8b 55 b4	 mov	 edx, DWORD PTR _SurfaceDesc$[ebp+36]
  000a2	8b 02		 mov	 eax, DWORD PTR [edx]
  000a4	89 45 8c	 mov	 DWORD PTR _dw$[ebp], eax

; 884  :             if (SurfaceDesc.ddpfPixelFormat.dwRGBBitCount < 32)

  000a7	83 7d e4 20	 cmp	 DWORD PTR _SurfaceDesc$[ebp+84], 32 ; 00000020H
  000ab	73 13		 jae	 SHORT $LN3@Overlay_Co@2

; 885  :             {
; 886  :                 dw &= (1 << SurfaceDesc.ddpfPixelFormat.dwRGBBitCount) - 1;  // Mask it to bpp

  000ad	ba 01 00 00 00	 mov	 edx, 1
  000b2	8b 4d e4	 mov	 ecx, DWORD PTR _SurfaceDesc$[ebp+84]
  000b5	d3 e2		 shl	 edx, cl
  000b7	83 ea 01	 sub	 edx, 1
  000ba	23 55 8c	 and	 edx, DWORD PTR _dw$[ebp]
  000bd	89 55 8c	 mov	 DWORD PTR _dw$[ebp], edx
$LN3@Overlay_Co@2:

; 887  :             }
; 888  :         }
; 889  :         pdds->Unlock(NULL);

  000c0	6a 00		 push	 0
  000c2	8b 45 08	 mov	 eax, DWORD PTR _pdds$[ebp]
  000c5	8b 08		 mov	 ecx, DWORD PTR [eax]
  000c7	8b 55 08	 mov	 edx, DWORD PTR _pdds$[ebp]
  000ca	52		 push	 edx
  000cb	8b 81 80 00 00
	00		 mov	 eax, DWORD PTR [ecx+128]
  000d1	ff d0		 call	 eax
$LN5@Overlay_Co@2:

; 890  :     }
; 891  : 
; 892  :     //
; 893  :     //  Now put the color that was there back.
; 894  :     //
; 895  :     hres = pdds->GetDC(&hdc);

  000d3	8d 4d 80	 lea	 ecx, DWORD PTR _hdc$[ebp]
  000d6	51		 push	 ecx
  000d7	8b 55 08	 mov	 edx, DWORD PTR _pdds$[ebp]
  000da	8b 02		 mov	 eax, DWORD PTR [edx]
  000dc	8b 4d 08	 mov	 ecx, DWORD PTR _pdds$[ebp]
  000df	51		 push	 ecx
  000e0	8b 50 44	 mov	 edx, DWORD PTR [eax+68]
  000e3	ff d2		 call	 edx
  000e5	89 45 88	 mov	 DWORD PTR _hres$[ebp], eax

; 896  :     if (SUCCEEDED(hres))

  000e8	83 7d 88 00	 cmp	 DWORD PTR _hres$[ebp], 0
  000ec	7c 24		 jl	 SHORT $LN1@Overlay_Co@2

; 897  :     {
; 898  :         SetPixel(hdc, 0, 0, rgbT);

  000ee	8b 45 84	 mov	 eax, DWORD PTR _rgbT$[ebp]
  000f1	50		 push	 eax
  000f2	6a 00		 push	 0
  000f4	6a 00		 push	 0
  000f6	8b 4d 80	 mov	 ecx, DWORD PTR _hdc$[ebp]
  000f9	51		 push	 ecx
  000fa	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SetPixel@16

; 899  :         pdds->ReleaseDC(hdc);

  00100	8b 55 80	 mov	 edx, DWORD PTR _hdc$[ebp]
  00103	52		 push	 edx
  00104	8b 45 08	 mov	 eax, DWORD PTR _pdds$[ebp]
  00107	8b 08		 mov	 ecx, DWORD PTR [eax]
  00109	8b 55 08	 mov	 edx, DWORD PTR _pdds$[ebp]
  0010c	52		 push	 edx
  0010d	8b 41 68	 mov	 eax, DWORD PTR [ecx+104]
  00110	ff d0		 call	 eax
$LN1@Overlay_Co@2:

; 900  :     }
; 901  :     return dw;

  00112	8b 45 8c	 mov	 eax, DWORD PTR _dw$[ebp]

; 902  : }

  00115	8b e5		 mov	 esp, ebp
  00117	5d		 pop	 ebp
  00118	c2 08 00	 ret	 8
?Overlay_ColorMatch@COverlayOutput@@UAEKPAUIDirectDrawSurface@@K@Z ENDP ; COverlayOutput::Overlay_ColorMatch
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?Overlay_Clean@COverlayOutput@@UAEXXZ
_TEXT	SEGMENT
_this$ = -136						; size = 4
_ddrval$ = -132						; size = 4
_pPixel$ = -128						; size = 4
_nPixel$ = -124						; size = 4
_SurfaceDesc$ = -120					; size = 108
_nLine$ = -4						; size = 4
?Overlay_Clean@COverlayOutput@@UAEXXZ PROC		; COverlayOutput::Overlay_Clean, COMDAT
; _this$ = ecx

; 208  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	81 ec 88 00 00
	00		 sub	 esp, 136		; 00000088H
  00009	89 8d 78 ff ff
	ff		 mov	 DWORD PTR _this$[ebp], ecx

; 209  :     unsigned int nPixel;
; 210  :     unsigned int nLine;
; 211  :     HRESULT ddrval;
; 212  :     DDSURFACEDESC SurfaceDesc;
; 213  :     unsigned short* pPixel;
; 214  : 
; 215  :     EnterCriticalSection(&hDDCritSect);

  0000f	8b 85 78 ff ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00015	05 18 02 00 00	 add	 eax, 536		; 00000218H
  0001a	50		 push	 eax
  0001b	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 216  :     if (lpDDOverlay != NULL)

  00021	8b 8d 78 ff ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00027	83 b9 34 02 00
	00 00		 cmp	 DWORD PTR [ecx+564], 0
  0002e	0f 84 cd 00 00
	00		 je	 $LN14@Overlay_Cl

; 217  :     {
; 218  :         memset(&SurfaceDesc, 0x00, sizeof(SurfaceDesc));

  00034	6a 6c		 push	 108			; 0000006cH
  00036	6a 00		 push	 0
  00038	8d 55 88	 lea	 edx, DWORD PTR _SurfaceDesc$[ebp]
  0003b	52		 push	 edx
  0003c	e8 00 00 00 00	 call	 _memset
  00041	83 c4 0c	 add	 esp, 12			; 0000000cH

; 219  :         SurfaceDesc.dwSize = sizeof(SurfaceDesc);

  00044	c7 45 88 6c 00
	00 00		 mov	 DWORD PTR _SurfaceDesc$[ebp], 108 ; 0000006cH

; 220  : 
; 221  :         ddrval = lpDDOverlay->Lock(NULL, &SurfaceDesc, DDLOCK_WAIT, NULL);

  0004b	6a 00		 push	 0
  0004d	6a 01		 push	 1
  0004f	8d 45 88	 lea	 eax, DWORD PTR _SurfaceDesc$[ebp]
  00052	50		 push	 eax
  00053	6a 00		 push	 0
  00055	8b 8d 78 ff ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0005b	8b 91 34 02 00
	00		 mov	 edx, DWORD PTR [ecx+564]
  00061	8b 85 78 ff ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00067	8b 88 34 02 00
	00		 mov	 ecx, DWORD PTR [eax+564]
  0006d	8b 12		 mov	 edx, DWORD PTR [edx]
  0006f	51		 push	 ecx
  00070	8b 42 64	 mov	 eax, DWORD PTR [edx+100]
  00073	ff d0		 call	 eax
  00075	89 85 7c ff ff
	ff		 mov	 DWORD PTR _ddrval$[ebp], eax

; 222  : 
; 223  :         for (nLine = 0; nLine < SurfaceDesc.dwHeight; nLine++)

  0007b	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _nLine$[ebp], 0
  00082	eb 09		 jmp	 SHORT $LN13@Overlay_Cl
$LN12@Overlay_Cl:
  00084	8b 4d fc	 mov	 ecx, DWORD PTR _nLine$[ebp]
  00087	83 c1 01	 add	 ecx, 1
  0008a	89 4d fc	 mov	 DWORD PTR _nLine$[ebp], ecx
$LN13@Overlay_Cl:
  0008d	8b 55 fc	 mov	 edx, DWORD PTR _nLine$[ebp]
  00090	3b 55 90	 cmp	 edx, DWORD PTR _SurfaceDesc$[ebp+8]
  00093	73 3f		 jae	 SHORT $LN11@Overlay_Cl

; 224  :         {
; 225  :             pPixel = (unsigned short*)((BYTE*)SurfaceDesc.lpSurface + nLine * SurfaceDesc.lPitch);

  00095	8b 45 fc	 mov	 eax, DWORD PTR _nLine$[ebp]
  00098	0f af 45 98	 imul	 eax, DWORD PTR _SurfaceDesc$[ebp+16]
  0009c	03 45 ac	 add	 eax, DWORD PTR _SurfaceDesc$[ebp+36]
  0009f	89 45 80	 mov	 DWORD PTR _pPixel$[ebp], eax

; 226  :             for (nPixel = 0; nPixel < SurfaceDesc.dwWidth; ++nPixel)

  000a2	c7 45 84 00 00
	00 00		 mov	 DWORD PTR _nPixel$[ebp], 0
  000a9	eb 09		 jmp	 SHORT $LN10@Overlay_Cl
$LN9@Overlay_Cl:
  000ab	8b 4d 84	 mov	 ecx, DWORD PTR _nPixel$[ebp]
  000ae	83 c1 01	 add	 ecx, 1
  000b1	89 4d 84	 mov	 DWORD PTR _nPixel$[ebp], ecx
$LN10@Overlay_Cl:
  000b4	8b 55 84	 mov	 edx, DWORD PTR _nPixel$[ebp]
  000b7	3b 55 94	 cmp	 edx, DWORD PTR _SurfaceDesc$[ebp+12]
  000ba	73 16		 jae	 SHORT $LN8@Overlay_Cl

; 227  :             {
; 228  :                 *pPixel = 0x8000;

  000bc	b8 00 80 00 00	 mov	 eax, 32768		; 00008000H
  000c1	8b 4d 80	 mov	 ecx, DWORD PTR _pPixel$[ebp]
  000c4	66 89 01	 mov	 WORD PTR [ecx], ax

; 229  :                 pPixel++;

  000c7	8b 55 80	 mov	 edx, DWORD PTR _pPixel$[ebp]
  000ca	83 c2 02	 add	 edx, 2
  000cd	89 55 80	 mov	 DWORD PTR _pPixel$[ebp], edx

; 230  :             }

  000d0	eb d9		 jmp	 SHORT $LN9@Overlay_Cl
$LN8@Overlay_Cl:

; 231  :         }

  000d2	eb b0		 jmp	 SHORT $LN12@Overlay_Cl
$LN11@Overlay_Cl:

; 232  :         ddrval = lpDDOverlay->Unlock(SurfaceDesc.lpSurface);

  000d4	8b 45 ac	 mov	 eax, DWORD PTR _SurfaceDesc$[ebp+36]
  000d7	50		 push	 eax
  000d8	8b 8d 78 ff ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  000de	8b 91 34 02 00
	00		 mov	 edx, DWORD PTR [ecx+564]
  000e4	8b 85 78 ff ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  000ea	8b 88 34 02 00
	00		 mov	 ecx, DWORD PTR [eax+564]
  000f0	8b 12		 mov	 edx, DWORD PTR [edx]
  000f2	51		 push	 ecx
  000f3	8b 82 80 00 00
	00		 mov	 eax, DWORD PTR [edx+128]
  000f9	ff d0		 call	 eax
  000fb	89 85 7c ff ff
	ff		 mov	 DWORD PTR _ddrval$[ebp], eax
$LN14@Overlay_Cl:

; 233  :     }
; 234  :     if (lpDDOverlayBack != NULL)

  00101	8b 8d 78 ff ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00107	83 b9 38 02 00
	00 00		 cmp	 DWORD PTR [ecx+568], 0
  0010e	0f 84 cd 00 00
	00		 je	 $LN7@Overlay_Cl

; 235  :     {
; 236  :         memset(&SurfaceDesc, 0x00, sizeof(SurfaceDesc));

  00114	6a 6c		 push	 108			; 0000006cH
  00116	6a 00		 push	 0
  00118	8d 55 88	 lea	 edx, DWORD PTR _SurfaceDesc$[ebp]
  0011b	52		 push	 edx
  0011c	e8 00 00 00 00	 call	 _memset
  00121	83 c4 0c	 add	 esp, 12			; 0000000cH

; 237  :         SurfaceDesc.dwSize = sizeof(SurfaceDesc);

  00124	c7 45 88 6c 00
	00 00		 mov	 DWORD PTR _SurfaceDesc$[ebp], 108 ; 0000006cH

; 238  : 
; 239  :         ddrval = lpDDOverlayBack->Lock(NULL, &SurfaceDesc, DDLOCK_WAIT, NULL);

  0012b	6a 00		 push	 0
  0012d	6a 01		 push	 1
  0012f	8d 45 88	 lea	 eax, DWORD PTR _SurfaceDesc$[ebp]
  00132	50		 push	 eax
  00133	6a 00		 push	 0
  00135	8b 8d 78 ff ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0013b	8b 91 38 02 00
	00		 mov	 edx, DWORD PTR [ecx+568]
  00141	8b 85 78 ff ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00147	8b 88 38 02 00
	00		 mov	 ecx, DWORD PTR [eax+568]
  0014d	8b 12		 mov	 edx, DWORD PTR [edx]
  0014f	51		 push	 ecx
  00150	8b 42 64	 mov	 eax, DWORD PTR [edx+100]
  00153	ff d0		 call	 eax
  00155	89 85 7c ff ff
	ff		 mov	 DWORD PTR _ddrval$[ebp], eax

; 240  : 
; 241  :         for (nLine = 0; nLine < SurfaceDesc.dwHeight; nLine++)

  0015b	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _nLine$[ebp], 0
  00162	eb 09		 jmp	 SHORT $LN6@Overlay_Cl
$LN5@Overlay_Cl:
  00164	8b 4d fc	 mov	 ecx, DWORD PTR _nLine$[ebp]
  00167	83 c1 01	 add	 ecx, 1
  0016a	89 4d fc	 mov	 DWORD PTR _nLine$[ebp], ecx
$LN6@Overlay_Cl:
  0016d	8b 55 fc	 mov	 edx, DWORD PTR _nLine$[ebp]
  00170	3b 55 90	 cmp	 edx, DWORD PTR _SurfaceDesc$[ebp+8]
  00173	73 3f		 jae	 SHORT $LN4@Overlay_Cl

; 242  :         {
; 243  :             pPixel = (unsigned short*)((BYTE*)SurfaceDesc.lpSurface + nLine * SurfaceDesc.lPitch);

  00175	8b 45 fc	 mov	 eax, DWORD PTR _nLine$[ebp]
  00178	0f af 45 98	 imul	 eax, DWORD PTR _SurfaceDesc$[ebp+16]
  0017c	03 45 ac	 add	 eax, DWORD PTR _SurfaceDesc$[ebp+36]
  0017f	89 45 80	 mov	 DWORD PTR _pPixel$[ebp], eax

; 244  :             for (nPixel = 0; nPixel < SurfaceDesc.dwWidth; ++nPixel)

  00182	c7 45 84 00 00
	00 00		 mov	 DWORD PTR _nPixel$[ebp], 0
  00189	eb 09		 jmp	 SHORT $LN3@Overlay_Cl
$LN2@Overlay_Cl:
  0018b	8b 4d 84	 mov	 ecx, DWORD PTR _nPixel$[ebp]
  0018e	83 c1 01	 add	 ecx, 1
  00191	89 4d 84	 mov	 DWORD PTR _nPixel$[ebp], ecx
$LN3@Overlay_Cl:
  00194	8b 55 84	 mov	 edx, DWORD PTR _nPixel$[ebp]
  00197	3b 55 94	 cmp	 edx, DWORD PTR _SurfaceDesc$[ebp+12]
  0019a	73 16		 jae	 SHORT $LN1@Overlay_Cl

; 245  :             {
; 246  :                 *pPixel = 0x8000;

  0019c	b8 00 80 00 00	 mov	 eax, 32768		; 00008000H
  001a1	8b 4d 80	 mov	 ecx, DWORD PTR _pPixel$[ebp]
  001a4	66 89 01	 mov	 WORD PTR [ecx], ax

; 247  :                 pPixel++;

  001a7	8b 55 80	 mov	 edx, DWORD PTR _pPixel$[ebp]
  001aa	83 c2 02	 add	 edx, 2
  001ad	89 55 80	 mov	 DWORD PTR _pPixel$[ebp], edx

; 248  :             }

  001b0	eb d9		 jmp	 SHORT $LN2@Overlay_Cl
$LN1@Overlay_Cl:

; 249  :         }

  001b2	eb b0		 jmp	 SHORT $LN5@Overlay_Cl
$LN4@Overlay_Cl:

; 250  :         ddrval = lpDDOverlayBack->Unlock(SurfaceDesc.lpSurface);

  001b4	8b 45 ac	 mov	 eax, DWORD PTR _SurfaceDesc$[ebp+36]
  001b7	50		 push	 eax
  001b8	8b 8d 78 ff ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  001be	8b 91 38 02 00
	00		 mov	 edx, DWORD PTR [ecx+568]
  001c4	8b 85 78 ff ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  001ca	8b 88 38 02 00
	00		 mov	 ecx, DWORD PTR [eax+568]
  001d0	8b 12		 mov	 edx, DWORD PTR [edx]
  001d2	51		 push	 ecx
  001d3	8b 82 80 00 00
	00		 mov	 eax, DWORD PTR [edx+128]
  001d9	ff d0		 call	 eax
  001db	89 85 7c ff ff
	ff		 mov	 DWORD PTR _ddrval$[ebp], eax
$LN7@Overlay_Cl:

; 251  :     }
; 252  :     LeaveCriticalSection(&hDDCritSect);

  001e1	8b 8d 78 ff ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  001e7	81 c1 18 02 00
	00		 add	 ecx, 536		; 00000218H
  001ed	51		 push	 ecx
  001ee	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 253  : }

  001f4	8b e5		 mov	 esp, ebp
  001f6	5d		 pop	 ebp
  001f7	c3		 ret	 0
?Overlay_Clean@COverlayOutput@@UAEXXZ ENDP		; COverlayOutput::Overlay_Clean
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?OverlayActive@COverlayOutput@@UAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?OverlayActive@COverlayOutput@@UAEHXZ PROC		; COverlayOutput::OverlayActive, COMDAT
; _this$ = ecx

; 201  : {

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

; 202  :     return (lpDDOverlay != NULL);

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	33 c9		 xor	 ecx, ecx
  0000c	83 b8 34 02 00
	00 00		 cmp	 DWORD PTR [eax+564], 0
  00013	0f 95 c1	 setne	 cl
  00016	8b c1		 mov	 eax, ecx

; 203  : }

  00018	8b e5		 mov	 esp, ebp
  0001a	5d		 pop	 ebp
  0001b	c3		 ret	 0
?OverlayActive@COverlayOutput@@UAEHXZ ENDP		; COverlayOutput::OverlayActive
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?CanDoOverlayColorControl@COverlayOutput@@UAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?CanDoOverlayColorControl@COverlayOutput@@UAEHXZ PROC	; COverlayOutput::CanDoOverlayColorControl, COMDAT
; _this$ = ecx

; 194  : {

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

; 195  :     return (pDDColorControl != NULL);

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	33 c9		 xor	 ecx, ecx
  0000c	83 b8 84 02 00
	00 00		 cmp	 DWORD PTR [eax+644], 0
  00013	0f 95 c1	 setne	 cl
  00016	8b c1		 mov	 eax, ecx

; 196  : }

  00018	8b e5		 mov	 esp, ebp
  0001a	5d		 pop	 ebp
  0001b	c3		 ret	 0
?CanDoOverlayColorControl@COverlayOutput@@UAEHXZ ENDP	; COverlayOutput::CanDoOverlayColorControl
PUBLIC	?Overlay_GetSetting@@YAPAUSETTING@@W4OTHER_SETTING@@@Z ; Overlay_GetSetting
; Function compile flags: /Odtp
;	COMDAT ?Overlay_GetSetting@@YAPAUSETTING@@W4OTHER_SETTING@@@Z
_TEXT	SEGMENT
_Setting$ = 8						; size = 4
?Overlay_GetSetting@@YAPAUSETTING@@W4OTHER_SETTING@@@Z PROC ; Overlay_GetSetting, COMDAT

; 1622 : {

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

; 1623 :     if(Setting > -1 && Setting < OTHER_SETTING_LASTONE)

  00003	83 7d 08 ff	 cmp	 DWORD PTR _Setting$[ebp], -1
  00007	7e 1c		 jle	 SHORT $LN2@Overlay_Ge@2
  00009	83 7d 08 0a	 cmp	 DWORD PTR _Setting$[ebp], 10 ; 0000000aH
  0000d	7d 16		 jge	 SHORT $LN2@Overlay_Ge@2

; 1624 :     {
; 1625 :         return &(OverlayOutputInstance.GetOtherSettings()[Setting]);

  0000f	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlayOutputInstance@@3VCOverlayOutput@@A ; OverlayOutputInstance
  00014	e8 00 00 00 00	 call	 ?GetOtherSettings@IOutput@@QAEPAUSETTING@@XZ ; IOutput::GetOtherSettings
  00019	8b 4d 08	 mov	 ecx, DWORD PTR _Setting$[ebp]
  0001c	6b c9 34	 imul	 ecx, 52			; 00000034H
  0001f	03 c1		 add	 eax, ecx
  00021	eb 04		 jmp	 SHORT $LN3@Overlay_Ge@2

; 1626 :     }
; 1627 :     else

  00023	eb 02		 jmp	 SHORT $LN3@Overlay_Ge@2
$LN2@Overlay_Ge@2:

; 1628 :     {
; 1629 :         return NULL;

  00025	33 c0		 xor	 eax, eax
$LN3@Overlay_Ge@2:

; 1630 :     }
; 1631 : }

  00027	5d		 pop	 ebp
  00028	c3		 ret	 0
?Overlay_GetSetting@@YAPAUSETTING@@W4OTHER_SETTING@@@Z ENDP ; Overlay_GetSetting
_TEXT	ENDS
PUBLIC	??1COverlayOutput@@UAE@XZ			; COverlayOutput::~COverlayOutput
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1COverlayOutput@@UAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1COverlayOutput@@UAE@XZ$0
__ehfuncinfo$??1COverlayOutput@@UAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1COverlayOutput@@UAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??1COverlayOutput@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1COverlayOutput@@UAE@XZ PROC				; COverlayOutput::~COverlayOutput, COMDAT
; _this$ = ecx

; 1616 : {

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

; 1617 :     DeleteCriticalSection(&hDDCritSect);

  00036	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00039	81 c1 18 02 00
	00		 add	 ecx, 536		; 00000218H
  0003f	51		 push	 ecx
  00040	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__DeleteCriticalSection@4

; 1618 : }

  00046	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0004d	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00050	e8 00 00 00 00	 call	 ??1IOutput@@UAE@XZ	; IOutput::~IOutput
  00055	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00058	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0005f	59		 pop	 ecx
  00060	8b e5		 mov	 esp, ebp
  00062	5d		 pop	 ebp
  00063	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1COverlayOutput@@UAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1IOutput@@UAE@XZ	; IOutput::~IOutput
__ehhandler$??1COverlayOutput@@UAE@XZ:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  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$??1COverlayOutput@@UAE@XZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??1COverlayOutput@@UAE@XZ ENDP				; COverlayOutput::~COverlayOutput
; Function compile flags: /Odtp
;	COMDAT ??_GCOverlayOutput@@UAEPAXI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___flags$ = 8						; size = 4
??_GCOverlayOutput@@UAEPAXI@Z PROC			; COverlayOutput::`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	 ??1COverlayOutput@@UAE@XZ ; COverlayOutput::~COverlayOutput
  0000f	8b 45 08	 mov	 eax, DWORD PTR ___flags$[ebp]
  00012	83 e0 01	 and	 eax, 1
  00015	74 0c		 je	 SHORT $LN1@scalar@38
  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@38:
  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
??_GCOverlayOutput@@UAEPAXI@Z ENDP			; COverlayOutput::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?Overlay_Sharpness_OnChange@COverlayOutput@@CAHJ@Z ; COverlayOutput::Overlay_Sharpness_OnChange
; Function compile flags: /Odtp
;	COMDAT ?Overlay_Sharpness_OnChange@COverlayOutput@@CAHJ@Z
_TEXT	SEGMENT
tv73 = -8						; size = 4
tv66 = -4						; size = 4
_NewValue$ = 8						; size = 4
?Overlay_Sharpness_OnChange@COverlayOutput@@CAHJ@Z PROC	; COverlayOutput::Overlay_Sharpness_OnChange, COMDAT

; 1450 : {

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

; 1451 :     OverlayOutputInstance.OverlaySharpness = NewValue;

  00006	8b 45 08	 mov	 eax, DWORD PTR _NewValue$[ebp]
  00009	a3 a4 02 00 00	 mov	 DWORD PTR ?OverlayOutputInstance@@3VCOverlayOutput@@A+676, eax

; 1452 :     if(GetActiveOutput()->Type() == OUT_OVERLAY)

  0000e	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  00013	89 45 fc	 mov	 DWORD PTR tv66[ebp], eax
  00016	8b 4d fc	 mov	 ecx, DWORD PTR tv66[ebp]
  00019	8b 11		 mov	 edx, DWORD PTR [ecx]
  0001b	8b 4d fc	 mov	 ecx, DWORD PTR tv66[ebp]
  0001e	8b 42 60	 mov	 eax, DWORD PTR [edx+96]
  00021	ff d0		 call	 eax
  00023	85 c0		 test	 eax, eax
  00025	75 15		 jne	 SHORT $LN1@Overlay_Sh

; 1453 :     {
; 1454 :         GetActiveOutput()->Overlay_SetColorControls();

  00027	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  0002c	89 45 f8	 mov	 DWORD PTR tv73[ebp], eax
  0002f	8b 4d f8	 mov	 ecx, DWORD PTR tv73[ebp]
  00032	8b 11		 mov	 edx, DWORD PTR [ecx]
  00034	8b 4d f8	 mov	 ecx, DWORD PTR tv73[ebp]
  00037	8b 42 3c	 mov	 eax, DWORD PTR [edx+60]
  0003a	ff d0		 call	 eax
$LN1@Overlay_Sh:

; 1455 :     }
; 1456 :     return FALSE;

  0003c	33 c0		 xor	 eax, eax

; 1457 : }

  0003e	8b e5		 mov	 esp, ebp
  00040	5d		 pop	 ebp
  00041	c3		 ret	 0
?Overlay_Sharpness_OnChange@COverlayOutput@@CAHJ@Z ENDP	; COverlayOutput::Overlay_Sharpness_OnChange
_TEXT	ENDS
PUBLIC	?Overlay_Gamma_OnChange@COverlayOutput@@CAHJ@Z	; COverlayOutput::Overlay_Gamma_OnChange
; Function compile flags: /Odtp
;	COMDAT ?Overlay_Gamma_OnChange@COverlayOutput@@CAHJ@Z
_TEXT	SEGMENT
tv73 = -8						; size = 4
tv66 = -4						; size = 4
_NewValue$ = 8						; size = 4
?Overlay_Gamma_OnChange@COverlayOutput@@CAHJ@Z PROC	; COverlayOutput::Overlay_Gamma_OnChange, COMDAT

; 1440 : {

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

; 1441 :     OverlayOutputInstance.OverlayGamma = NewValue;

  00006	8b 45 08	 mov	 eax, DWORD PTR _NewValue$[ebp]
  00009	a3 a0 02 00 00	 mov	 DWORD PTR ?OverlayOutputInstance@@3VCOverlayOutput@@A+672, eax

; 1442 :     if(GetActiveOutput()->Type() == OUT_OVERLAY)

  0000e	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  00013	89 45 fc	 mov	 DWORD PTR tv66[ebp], eax
  00016	8b 4d fc	 mov	 ecx, DWORD PTR tv66[ebp]
  00019	8b 11		 mov	 edx, DWORD PTR [ecx]
  0001b	8b 4d fc	 mov	 ecx, DWORD PTR tv66[ebp]
  0001e	8b 42 60	 mov	 eax, DWORD PTR [edx+96]
  00021	ff d0		 call	 eax
  00023	85 c0		 test	 eax, eax
  00025	75 15		 jne	 SHORT $LN1@Overlay_Ga

; 1443 :     {
; 1444 :         GetActiveOutput()->Overlay_SetColorControls();

  00027	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  0002c	89 45 f8	 mov	 DWORD PTR tv73[ebp], eax
  0002f	8b 4d f8	 mov	 ecx, DWORD PTR tv73[ebp]
  00032	8b 11		 mov	 edx, DWORD PTR [ecx]
  00034	8b 4d f8	 mov	 ecx, DWORD PTR tv73[ebp]
  00037	8b 42 3c	 mov	 eax, DWORD PTR [edx+60]
  0003a	ff d0		 call	 eax
$LN1@Overlay_Ga:

; 1445 :     }
; 1446 :     return FALSE;

  0003c	33 c0		 xor	 eax, eax

; 1447 : }

  0003e	8b e5		 mov	 esp, ebp
  00040	5d		 pop	 ebp
  00041	c3		 ret	 0
?Overlay_Gamma_OnChange@COverlayOutput@@CAHJ@Z ENDP	; COverlayOutput::Overlay_Gamma_OnChange
_TEXT	ENDS
PUBLIC	?Overlay_Saturation_OnChange@COverlayOutput@@CAHJ@Z ; COverlayOutput::Overlay_Saturation_OnChange
; Function compile flags: /Odtp
;	COMDAT ?Overlay_Saturation_OnChange@COverlayOutput@@CAHJ@Z
_TEXT	SEGMENT
tv73 = -8						; size = 4
tv66 = -4						; size = 4
_NewValue$ = 8						; size = 4
?Overlay_Saturation_OnChange@COverlayOutput@@CAHJ@Z PROC ; COverlayOutput::Overlay_Saturation_OnChange, COMDAT

; 1430 : {

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

; 1431 :     OverlayOutputInstance.OverlaySaturation = NewValue;

  00006	8b 45 08	 mov	 eax, DWORD PTR _NewValue$[ebp]
  00009	a3 9c 02 00 00	 mov	 DWORD PTR ?OverlayOutputInstance@@3VCOverlayOutput@@A+668, eax

; 1432 :     if(GetActiveOutput()->Type() == OUT_OVERLAY)

  0000e	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  00013	89 45 fc	 mov	 DWORD PTR tv66[ebp], eax
  00016	8b 4d fc	 mov	 ecx, DWORD PTR tv66[ebp]
  00019	8b 11		 mov	 edx, DWORD PTR [ecx]
  0001b	8b 4d fc	 mov	 ecx, DWORD PTR tv66[ebp]
  0001e	8b 42 60	 mov	 eax, DWORD PTR [edx+96]
  00021	ff d0		 call	 eax
  00023	85 c0		 test	 eax, eax
  00025	75 15		 jne	 SHORT $LN1@Overlay_Sa

; 1433 :     {
; 1434 :         GetActiveOutput()->Overlay_SetColorControls();

  00027	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  0002c	89 45 f8	 mov	 DWORD PTR tv73[ebp], eax
  0002f	8b 4d f8	 mov	 ecx, DWORD PTR tv73[ebp]
  00032	8b 11		 mov	 edx, DWORD PTR [ecx]
  00034	8b 4d f8	 mov	 ecx, DWORD PTR tv73[ebp]
  00037	8b 42 3c	 mov	 eax, DWORD PTR [edx+60]
  0003a	ff d0		 call	 eax
$LN1@Overlay_Sa:

; 1435 :     }
; 1436 :     return FALSE;

  0003c	33 c0		 xor	 eax, eax

; 1437 : }

  0003e	8b e5		 mov	 esp, ebp
  00040	5d		 pop	 ebp
  00041	c3		 ret	 0
?Overlay_Saturation_OnChange@COverlayOutput@@CAHJ@Z ENDP ; COverlayOutput::Overlay_Saturation_OnChange
_TEXT	ENDS
PUBLIC	?Overlay_Hue_OnChange@COverlayOutput@@CAHJ@Z	; COverlayOutput::Overlay_Hue_OnChange
; Function compile flags: /Odtp
;	COMDAT ?Overlay_Hue_OnChange@COverlayOutput@@CAHJ@Z
_TEXT	SEGMENT
tv73 = -8						; size = 4
tv66 = -4						; size = 4
_NewValue$ = 8						; size = 4
?Overlay_Hue_OnChange@COverlayOutput@@CAHJ@Z PROC	; COverlayOutput::Overlay_Hue_OnChange, COMDAT

; 1420 : {

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

; 1421 :     OverlayOutputInstance.OverlayHue = NewValue;

  00006	8b 45 08	 mov	 eax, DWORD PTR _NewValue$[ebp]
  00009	a3 98 02 00 00	 mov	 DWORD PTR ?OverlayOutputInstance@@3VCOverlayOutput@@A+664, eax

; 1422 :     if(GetActiveOutput()->Type() == OUT_OVERLAY)

  0000e	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  00013	89 45 fc	 mov	 DWORD PTR tv66[ebp], eax
  00016	8b 4d fc	 mov	 ecx, DWORD PTR tv66[ebp]
  00019	8b 11		 mov	 edx, DWORD PTR [ecx]
  0001b	8b 4d fc	 mov	 ecx, DWORD PTR tv66[ebp]
  0001e	8b 42 60	 mov	 eax, DWORD PTR [edx+96]
  00021	ff d0		 call	 eax
  00023	85 c0		 test	 eax, eax
  00025	75 15		 jne	 SHORT $LN1@Overlay_Hu

; 1423 :     {
; 1424 :         GetActiveOutput()->Overlay_SetColorControls();

  00027	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  0002c	89 45 f8	 mov	 DWORD PTR tv73[ebp], eax
  0002f	8b 4d f8	 mov	 ecx, DWORD PTR tv73[ebp]
  00032	8b 11		 mov	 edx, DWORD PTR [ecx]
  00034	8b 4d f8	 mov	 ecx, DWORD PTR tv73[ebp]
  00037	8b 42 3c	 mov	 eax, DWORD PTR [edx+60]
  0003a	ff d0		 call	 eax
$LN1@Overlay_Hu:

; 1425 :     }
; 1426 :     return FALSE;

  0003c	33 c0		 xor	 eax, eax

; 1427 : }

  0003e	8b e5		 mov	 esp, ebp
  00040	5d		 pop	 ebp
  00041	c3		 ret	 0
?Overlay_Hue_OnChange@COverlayOutput@@CAHJ@Z ENDP	; COverlayOutput::Overlay_Hue_OnChange
_TEXT	ENDS
PUBLIC	?Overlay_Contrast_OnChange@COverlayOutput@@CAHJ@Z ; COverlayOutput::Overlay_Contrast_OnChange
; Function compile flags: /Odtp
;	COMDAT ?Overlay_Contrast_OnChange@COverlayOutput@@CAHJ@Z
_TEXT	SEGMENT
tv73 = -8						; size = 4
tv66 = -4						; size = 4
_NewValue$ = 8						; size = 4
?Overlay_Contrast_OnChange@COverlayOutput@@CAHJ@Z PROC	; COverlayOutput::Overlay_Contrast_OnChange, COMDAT

; 1410 : {

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

; 1411 :     OverlayOutputInstance.OverlayContrast = NewValue;

  00006	8b 45 08	 mov	 eax, DWORD PTR _NewValue$[ebp]
  00009	a3 94 02 00 00	 mov	 DWORD PTR ?OverlayOutputInstance@@3VCOverlayOutput@@A+660, eax

; 1412 :     if(GetActiveOutput()->Type() == OUT_OVERLAY)

  0000e	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  00013	89 45 fc	 mov	 DWORD PTR tv66[ebp], eax
  00016	8b 4d fc	 mov	 ecx, DWORD PTR tv66[ebp]
  00019	8b 11		 mov	 edx, DWORD PTR [ecx]
  0001b	8b 4d fc	 mov	 ecx, DWORD PTR tv66[ebp]
  0001e	8b 42 60	 mov	 eax, DWORD PTR [edx+96]
  00021	ff d0		 call	 eax
  00023	85 c0		 test	 eax, eax
  00025	75 15		 jne	 SHORT $LN1@Overlay_Co@4

; 1413 :     {
; 1414 :         GetActiveOutput()->Overlay_SetColorControls();

  00027	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  0002c	89 45 f8	 mov	 DWORD PTR tv73[ebp], eax
  0002f	8b 4d f8	 mov	 ecx, DWORD PTR tv73[ebp]
  00032	8b 11		 mov	 edx, DWORD PTR [ecx]
  00034	8b 4d f8	 mov	 ecx, DWORD PTR tv73[ebp]
  00037	8b 42 3c	 mov	 eax, DWORD PTR [edx+60]
  0003a	ff d0		 call	 eax
$LN1@Overlay_Co@4:

; 1415 :     }
; 1416 :     return FALSE;

  0003c	33 c0		 xor	 eax, eax

; 1417 : }

  0003e	8b e5		 mov	 esp, ebp
  00040	5d		 pop	 ebp
  00041	c3		 ret	 0
?Overlay_Contrast_OnChange@COverlayOutput@@CAHJ@Z ENDP	; COverlayOutput::Overlay_Contrast_OnChange
_TEXT	ENDS
PUBLIC	?Overlay_Brightness_OnChange@COverlayOutput@@CAHJ@Z ; COverlayOutput::Overlay_Brightness_OnChange
; Function compile flags: /Odtp
;	COMDAT ?Overlay_Brightness_OnChange@COverlayOutput@@CAHJ@Z
_TEXT	SEGMENT
tv73 = -8						; size = 4
tv66 = -4						; size = 4
_NewValue$ = 8						; size = 4
?Overlay_Brightness_OnChange@COverlayOutput@@CAHJ@Z PROC ; COverlayOutput::Overlay_Brightness_OnChange, COMDAT

; 1400 : {

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

; 1401 :     OverlayOutputInstance.OverlayBrightness = NewValue;

  00006	8b 45 08	 mov	 eax, DWORD PTR _NewValue$[ebp]
  00009	a3 90 02 00 00	 mov	 DWORD PTR ?OverlayOutputInstance@@3VCOverlayOutput@@A+656, eax

; 1402 :     if(GetActiveOutput()->Type() == OUT_OVERLAY)

  0000e	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  00013	89 45 fc	 mov	 DWORD PTR tv66[ebp], eax
  00016	8b 4d fc	 mov	 ecx, DWORD PTR tv66[ebp]
  00019	8b 11		 mov	 edx, DWORD PTR [ecx]
  0001b	8b 4d fc	 mov	 ecx, DWORD PTR tv66[ebp]
  0001e	8b 42 60	 mov	 eax, DWORD PTR [edx+96]
  00021	ff d0		 call	 eax
  00023	85 c0		 test	 eax, eax
  00025	75 15		 jne	 SHORT $LN1@Overlay_Br

; 1403 :     {
; 1404 :         GetActiveOutput()->Overlay_SetColorControls();

  00027	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  0002c	89 45 f8	 mov	 DWORD PTR tv73[ebp], eax
  0002f	8b 4d f8	 mov	 ecx, DWORD PTR tv73[ebp]
  00032	8b 11		 mov	 edx, DWORD PTR [ecx]
  00034	8b 4d f8	 mov	 ecx, DWORD PTR tv73[ebp]
  00037	8b 42 3c	 mov	 eax, DWORD PTR [edx+60]
  0003a	ff d0		 call	 eax
$LN1@Overlay_Br:

; 1405 :     }
; 1406 :     return FALSE;

  0003c	33 c0		 xor	 eax, eax

; 1407 : }

  0003e	8b e5		 mov	 esp, ebp
  00040	5d		 pop	 ebp
  00041	c3		 ret	 0
?Overlay_Brightness_OnChange@COverlayOutput@@CAHJ@Z ENDP ; COverlayOutput::Overlay_Brightness_OnChange
; Function compile flags: /Odtp
;	COMDAT ?SetCurrentMonitor@COverlayOutput@@UAEXPAUHWND__@@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_hWnd$ = 8						; size = 4
?SetCurrentMonitor@COverlayOutput@@UAEXPAUHWND__@@@Z PROC ; COverlayOutput::SetCurrentMonitor, COMDAT
; _this$ = ecx

; 153  : {

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

; 154  :     if(m_lpMonitorFromWindow)

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	81 c1 b4 02 00
	00		 add	 ecx, 692		; 000002b4H
  00010	e8 00 00 00 00	 call	 ??B?$DynamicFunctionParent@P6GPAUHMONITOR__@@PAUHWND__@@K@Z@@QBEHXZ ; DynamicFunctionParent<HMONITOR__ * (__stdcall*)(HWND__ *,unsigned long)>::operator int
  00015	85 c0		 test	 eax, eax
  00017	74 10		 je	 SHORT $LN2@SetCurrent

; 155  :     {
; 156  :         hCurrentMon = MonitorFromWindow(hWnd, MONITOR_DEFAULTTOPRIMARY);

  00019	6a 01		 push	 1
  0001b	8b 45 08	 mov	 eax, DWORD PTR _hWnd$[ebp]
  0001e	50		 push	 eax
  0001f	e8 00 00 00 00	 call	 _xMonitorFromWindow@8
  00024	a3 00 00 00 00	 mov	 DWORD PTR _hCurrentMon, eax
$LN2@SetCurrent:

; 157  :     }
; 158  : }

  00029	8b e5		 mov	 esp, ebp
  0002b	5d		 pop	 ebp
  0002c	c2 04 00	 ret	 4
?SetCurrentMonitor@COverlayOutput@@UAEXPAUHWND__@@@Z ENDP ; COverlayOutput::SetCurrentMonitor
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\dynamicfunction.h
;	COMDAT ??0?$DynamicFunctionParent@P6GJP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@Z2K@Z@@QAE@PB_WPBD@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_LibraryModule$ = -4					; size = 4
_LibraryName$ = 8					; size = 4
_FunctionName$ = 12					; size = 4
??0?$DynamicFunctionParent@P6GJP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@Z2K@Z@@QAE@PB_WPBD@Z PROC ; DynamicFunctionParent<long (__stdcall*)(int (__stdcall*)(_GUID *,wchar_t *,wchar_t *,void *,HMONITOR__ *),void *,unsigned long)>::DynamicFunctionParent<long (__stdcall*)(int (__stdcall*)(_GUID *,wchar_t *,wchar_t *,void *,HMONITOR__ *),void *,unsigned long)>, COMDAT
; _this$ = ecx

; 30   :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8
  00006	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx
  00009	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], 0

; 31   :         HMODULE LibraryModule = LibraryCache::GetLibraryHandle(LibraryName);

  00012	8b 4d 08	 mov	 ecx, DWORD PTR _LibraryName$[ebp]
  00015	51		 push	 ecx
  00016	e8 00 00 00 00	 call	 ?GetLibraryHandle@LibraryCache@@SAPAUHINSTANCE__@@PB_W@Z ; LibraryCache::GetLibraryHandle
  0001b	83 c4 04	 add	 esp, 4
  0001e	89 45 fc	 mov	 DWORD PTR _LibraryModule$[ebp], eax

; 32   :         if(LibraryModule)

  00021	83 7d fc 00	 cmp	 DWORD PTR _LibraryModule$[ebp], 0
  00025	74 13		 je	 SHORT $LN2@DynamicFun@13

; 33   :         {
; 34   :             m_pFunc = (FUNCTYPE)GetProcAddress(LibraryModule,FunctionName);

  00027	8b 55 0c	 mov	 edx, DWORD PTR _FunctionName$[ebp]
  0002a	52		 push	 edx
  0002b	8b 45 fc	 mov	 eax, DWORD PTR _LibraryModule$[ebp]
  0002e	50		 push	 eax
  0002f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetProcAddress@8
  00035	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00038	89 01		 mov	 DWORD PTR [ecx], eax
$LN2@DynamicFun@13:

; 35   :         }
; 36   :     }

  0003a	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0003d	8b e5		 mov	 esp, ebp
  0003f	5d		 pop	 ebp
  00040	c2 08 00	 ret	 8
??0?$DynamicFunctionParent@P6GJP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@Z2K@Z@@QAE@PB_WPBD@Z ENDP ; DynamicFunctionParent<long (__stdcall*)(int (__stdcall*)(_GUID *,wchar_t *,wchar_t *,void *,HMONITOR__ *),void *,unsigned long)>::DynamicFunctionParent<long (__stdcall*)(int (__stdcall*)(_GUID *,wchar_t *,wchar_t *,void *,HMONITOR__ *),void *,unsigned long)>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$DynamicFunctionParent@P6GJPAU_GUID@@PAPAUIDirectDraw@@PAUIUnknown@@@Z@@QAE@PB_WPBD@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_LibraryModule$ = -4					; size = 4
_LibraryName$ = 8					; size = 4
_FunctionName$ = 12					; size = 4
??0?$DynamicFunctionParent@P6GJPAU_GUID@@PAPAUIDirectDraw@@PAUIUnknown@@@Z@@QAE@PB_WPBD@Z PROC ; DynamicFunctionParent<long (__stdcall*)(_GUID *,IDirectDraw * *,IUnknown *)>::DynamicFunctionParent<long (__stdcall*)(_GUID *,IDirectDraw * *,IUnknown *)>, COMDAT
; _this$ = ecx

; 30   :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8
  00006	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx
  00009	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], 0

; 31   :         HMODULE LibraryModule = LibraryCache::GetLibraryHandle(LibraryName);

  00012	8b 4d 08	 mov	 ecx, DWORD PTR _LibraryName$[ebp]
  00015	51		 push	 ecx
  00016	e8 00 00 00 00	 call	 ?GetLibraryHandle@LibraryCache@@SAPAUHINSTANCE__@@PB_W@Z ; LibraryCache::GetLibraryHandle
  0001b	83 c4 04	 add	 esp, 4
  0001e	89 45 fc	 mov	 DWORD PTR _LibraryModule$[ebp], eax

; 32   :         if(LibraryModule)

  00021	83 7d fc 00	 cmp	 DWORD PTR _LibraryModule$[ebp], 0
  00025	74 13		 je	 SHORT $LN2@DynamicFun@14

; 33   :         {
; 34   :             m_pFunc = (FUNCTYPE)GetProcAddress(LibraryModule,FunctionName);

  00027	8b 55 0c	 mov	 edx, DWORD PTR _FunctionName$[ebp]
  0002a	52		 push	 edx
  0002b	8b 45 fc	 mov	 eax, DWORD PTR _LibraryModule$[ebp]
  0002e	50		 push	 eax
  0002f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetProcAddress@8
  00035	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00038	89 01		 mov	 DWORD PTR [ecx], eax
$LN2@DynamicFun@14:

; 35   :         }
; 36   :     }

  0003a	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0003d	8b e5		 mov	 esp, ebp
  0003f	5d		 pop	 ebp
  00040	c2 08 00	 ret	 8
??0?$DynamicFunctionParent@P6GJPAU_GUID@@PAPAUIDirectDraw@@PAUIUnknown@@@Z@@QAE@PB_WPBD@Z ENDP ; DynamicFunctionParent<long (__stdcall*)(_GUID *,IDirectDraw * *,IUnknown *)>::DynamicFunctionParent<long (__stdcall*)(_GUID *,IDirectDraw * *,IUnknown *)>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$DynamicFunctionParent@P6GHPAUHMONITOR__@@PAUtagMONITORINFO@@@Z@@QAE@PB_WPBD@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_LibraryModule$ = -4					; size = 4
_LibraryName$ = 8					; size = 4
_FunctionName$ = 12					; size = 4
??0?$DynamicFunctionParent@P6GHPAUHMONITOR__@@PAUtagMONITORINFO@@@Z@@QAE@PB_WPBD@Z PROC ; DynamicFunctionParent<int (__stdcall*)(HMONITOR__ *,tagMONITORINFO *)>::DynamicFunctionParent<int (__stdcall*)(HMONITOR__ *,tagMONITORINFO *)>, COMDAT
; _this$ = ecx

; 30   :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8
  00006	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx
  00009	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], 0

; 31   :         HMODULE LibraryModule = LibraryCache::GetLibraryHandle(LibraryName);

  00012	8b 4d 08	 mov	 ecx, DWORD PTR _LibraryName$[ebp]
  00015	51		 push	 ecx
  00016	e8 00 00 00 00	 call	 ?GetLibraryHandle@LibraryCache@@SAPAUHINSTANCE__@@PB_W@Z ; LibraryCache::GetLibraryHandle
  0001b	83 c4 04	 add	 esp, 4
  0001e	89 45 fc	 mov	 DWORD PTR _LibraryModule$[ebp], eax

; 32   :         if(LibraryModule)

  00021	83 7d fc 00	 cmp	 DWORD PTR _LibraryModule$[ebp], 0
  00025	74 13		 je	 SHORT $LN2@DynamicFun@15

; 33   :         {
; 34   :             m_pFunc = (FUNCTYPE)GetProcAddress(LibraryModule,FunctionName);

  00027	8b 55 0c	 mov	 edx, DWORD PTR _FunctionName$[ebp]
  0002a	52		 push	 edx
  0002b	8b 45 fc	 mov	 eax, DWORD PTR _LibraryModule$[ebp]
  0002e	50		 push	 eax
  0002f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetProcAddress@8
  00035	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00038	89 01		 mov	 DWORD PTR [ecx], eax
$LN2@DynamicFun@15:

; 35   :         }
; 36   :     }

  0003a	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0003d	8b e5		 mov	 esp, ebp
  0003f	5d		 pop	 ebp
  00040	c2 08 00	 ret	 8
??0?$DynamicFunctionParent@P6GHPAUHMONITOR__@@PAUtagMONITORINFO@@@Z@@QAE@PB_WPBD@Z ENDP ; DynamicFunctionParent<int (__stdcall*)(HMONITOR__ *,tagMONITORINFO *)>::DynamicFunctionParent<int (__stdcall*)(HMONITOR__ *,tagMONITORINFO *)>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$DynamicFunctionParent@P6GPAUHMONITOR__@@PAUHWND__@@K@Z@@QAE@PB_WPBD@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_LibraryModule$ = -4					; size = 4
_LibraryName$ = 8					; size = 4
_FunctionName$ = 12					; size = 4
??0?$DynamicFunctionParent@P6GPAUHMONITOR__@@PAUHWND__@@K@Z@@QAE@PB_WPBD@Z PROC ; DynamicFunctionParent<HMONITOR__ * (__stdcall*)(HWND__ *,unsigned long)>::DynamicFunctionParent<HMONITOR__ * (__stdcall*)(HWND__ *,unsigned long)>, COMDAT
; _this$ = ecx

; 30   :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8
  00006	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx
  00009	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], 0

; 31   :         HMODULE LibraryModule = LibraryCache::GetLibraryHandle(LibraryName);

  00012	8b 4d 08	 mov	 ecx, DWORD PTR _LibraryName$[ebp]
  00015	51		 push	 ecx
  00016	e8 00 00 00 00	 call	 ?GetLibraryHandle@LibraryCache@@SAPAUHINSTANCE__@@PB_W@Z ; LibraryCache::GetLibraryHandle
  0001b	83 c4 04	 add	 esp, 4
  0001e	89 45 fc	 mov	 DWORD PTR _LibraryModule$[ebp], eax

; 32   :         if(LibraryModule)

  00021	83 7d fc 00	 cmp	 DWORD PTR _LibraryModule$[ebp], 0
  00025	74 13		 je	 SHORT $LN2@DynamicFun@16

; 33   :         {
; 34   :             m_pFunc = (FUNCTYPE)GetProcAddress(LibraryModule,FunctionName);

  00027	8b 55 0c	 mov	 edx, DWORD PTR _FunctionName$[ebp]
  0002a	52		 push	 edx
  0002b	8b 45 fc	 mov	 eax, DWORD PTR _LibraryModule$[ebp]
  0002e	50		 push	 eax
  0002f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetProcAddress@8
  00035	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00038	89 01		 mov	 DWORD PTR [ecx], eax
$LN2@DynamicFun@16:

; 35   :         }
; 36   :     }

  0003a	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0003d	8b e5		 mov	 esp, ebp
  0003f	5d		 pop	 ebp
  00040	c2 08 00	 ret	 8
??0?$DynamicFunctionParent@P6GPAUHMONITOR__@@PAUHWND__@@K@Z@@QAE@PB_WPBD@Z ENDP ; DynamicFunctionParent<HMONITOR__ * (__stdcall*)(HWND__ *,unsigned long)>::DynamicFunctionParent<HMONITOR__ * (__stdcall*)(HWND__ *,unsigned long)>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$DynamicFunctionS3@JP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@ZPAXK@@QAE@PB_WPBD@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_LibraryName$ = 8					; size = 4
_FunctionName$ = 12					; size = 4
??0?$DynamicFunctionS3@JP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@ZPAXK@@QAE@PB_WPBD@Z PROC ; DynamicFunctionS3<long,int (__stdcall*)(_GUID *,wchar_t *,wchar_t *,void *,HMONITOR__ *),void *,unsigned long>::DynamicFunctionS3<long,int (__stdcall*)(_GUID *,wchar_t *,wchar_t *,void *,HMONITOR__ *),void *,unsigned long>, COMDAT
; _this$ = ecx

; 118  :     {

  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 45 0c	 mov	 eax, DWORD PTR _FunctionName$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d 08	 mov	 ecx, DWORD PTR _LibraryName$[ebp]
  0000e	51		 push	 ecx
  0000f	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00012	e8 00 00 00 00	 call	 ??0?$DynamicFunctionParent@P6GJP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@Z2K@Z@@QAE@PB_WPBD@Z ; DynamicFunctionParent<long (__stdcall*)(int (__stdcall*)(_GUID *,wchar_t *,wchar_t *,void *,HMONITOR__ *),void *,unsigned long)>::DynamicFunctionParent<long (__stdcall*)(int (__stdcall*)(_GUID *,wchar_t *,wchar_t *,void *,HMONITOR__ *),void *,unsigned long)>

; 119  :     }

  00017	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0001a	8b e5		 mov	 esp, ebp
  0001c	5d		 pop	 ebp
  0001d	c2 08 00	 ret	 8
??0?$DynamicFunctionS3@JP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@ZPAXK@@QAE@PB_WPBD@Z ENDP ; DynamicFunctionS3<long,int (__stdcall*)(_GUID *,wchar_t *,wchar_t *,void *,HMONITOR__ *),void *,unsigned long>::DynamicFunctionS3<long,int (__stdcall*)(_GUID *,wchar_t *,wchar_t *,void *,HMONITOR__ *),void *,unsigned long>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$DynamicFunctionS3@JPAU_GUID@@PAPAUIDirectDraw@@PAUIUnknown@@@@QAE@PB_WPBD@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_LibraryName$ = 8					; size = 4
_FunctionName$ = 12					; size = 4
??0?$DynamicFunctionS3@JPAU_GUID@@PAPAUIDirectDraw@@PAUIUnknown@@@@QAE@PB_WPBD@Z PROC ; DynamicFunctionS3<long,_GUID *,IDirectDraw * *,IUnknown *>::DynamicFunctionS3<long,_GUID *,IDirectDraw * *,IUnknown *>, COMDAT
; _this$ = ecx

; 118  :     {

  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 45 0c	 mov	 eax, DWORD PTR _FunctionName$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d 08	 mov	 ecx, DWORD PTR _LibraryName$[ebp]
  0000e	51		 push	 ecx
  0000f	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00012	e8 00 00 00 00	 call	 ??0?$DynamicFunctionParent@P6GJPAU_GUID@@PAPAUIDirectDraw@@PAUIUnknown@@@Z@@QAE@PB_WPBD@Z ; DynamicFunctionParent<long (__stdcall*)(_GUID *,IDirectDraw * *,IUnknown *)>::DynamicFunctionParent<long (__stdcall*)(_GUID *,IDirectDraw * *,IUnknown *)>

; 119  :     }

  00017	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0001a	8b e5		 mov	 esp, ebp
  0001c	5d		 pop	 ebp
  0001d	c2 08 00	 ret	 8
??0?$DynamicFunctionS3@JPAU_GUID@@PAPAUIDirectDraw@@PAUIUnknown@@@@QAE@PB_WPBD@Z ENDP ; DynamicFunctionS3<long,_GUID *,IDirectDraw * *,IUnknown *>::DynamicFunctionS3<long,_GUID *,IDirectDraw * *,IUnknown *>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$DynamicFunctionS2@HPAUHMONITOR__@@PAUtagMONITORINFO@@@@QAE@PB_WPBD@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_LibraryName$ = 8					; size = 4
_FunctionName$ = 12					; size = 4
??0?$DynamicFunctionS2@HPAUHMONITOR__@@PAUtagMONITORINFO@@@@QAE@PB_WPBD@Z PROC ; DynamicFunctionS2<int,HMONITOR__ *,tagMONITORINFO *>::DynamicFunctionS2<int,HMONITOR__ *,tagMONITORINFO *>, COMDAT
; _this$ = ecx

; 102  :     {

  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 45 0c	 mov	 eax, DWORD PTR _FunctionName$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d 08	 mov	 ecx, DWORD PTR _LibraryName$[ebp]
  0000e	51		 push	 ecx
  0000f	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00012	e8 00 00 00 00	 call	 ??0?$DynamicFunctionParent@P6GHPAUHMONITOR__@@PAUtagMONITORINFO@@@Z@@QAE@PB_WPBD@Z ; DynamicFunctionParent<int (__stdcall*)(HMONITOR__ *,tagMONITORINFO *)>::DynamicFunctionParent<int (__stdcall*)(HMONITOR__ *,tagMONITORINFO *)>

; 103  :     }

  00017	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0001a	8b e5		 mov	 esp, ebp
  0001c	5d		 pop	 ebp
  0001d	c2 08 00	 ret	 8
??0?$DynamicFunctionS2@HPAUHMONITOR__@@PAUtagMONITORINFO@@@@QAE@PB_WPBD@Z ENDP ; DynamicFunctionS2<int,HMONITOR__ *,tagMONITORINFO *>::DynamicFunctionS2<int,HMONITOR__ *,tagMONITORINFO *>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$DynamicFunctionS2@PAUHMONITOR__@@PAUHWND__@@K@@QAE@PB_WPBD@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_LibraryName$ = 8					; size = 4
_FunctionName$ = 12					; size = 4
??0?$DynamicFunctionS2@PAUHMONITOR__@@PAUHWND__@@K@@QAE@PB_WPBD@Z PROC ; DynamicFunctionS2<HMONITOR__ *,HWND__ *,unsigned long>::DynamicFunctionS2<HMONITOR__ *,HWND__ *,unsigned long>, COMDAT
; _this$ = ecx

; 102  :     {

  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 45 0c	 mov	 eax, DWORD PTR _FunctionName$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d 08	 mov	 ecx, DWORD PTR _LibraryName$[ebp]
  0000e	51		 push	 ecx
  0000f	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00012	e8 00 00 00 00	 call	 ??0?$DynamicFunctionParent@P6GPAUHMONITOR__@@PAUHWND__@@K@Z@@QAE@PB_WPBD@Z ; DynamicFunctionParent<HMONITOR__ * (__stdcall*)(HWND__ *,unsigned long)>::DynamicFunctionParent<HMONITOR__ * (__stdcall*)(HWND__ *,unsigned long)>

; 103  :     }

  00017	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0001a	8b e5		 mov	 esp, ebp
  0001c	5d		 pop	 ebp
  0001d	c2 08 00	 ret	 8
??0?$DynamicFunctionS2@PAUHMONITOR__@@PAUHWND__@@K@@QAE@PB_WPBD@Z ENDP ; DynamicFunctionS2<HMONITOR__ *,HWND__ *,unsigned long>::DynamicFunctionS2<HMONITOR__ *,HWND__ *,unsigned long>
_TEXT	ENDS
PUBLIC	??0COverlayOutput@@QAE@XZ			; COverlayOutput::COverlayOutput
;	COMDAT xdata$x
; File c:\develop\dscaler423a\dscaler\overlayoutput.cpp
xdata$x	SEGMENT
__unwindtable$??0COverlayOutput@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0COverlayOutput@@QAE@XZ$0
__ehfuncinfo$??0COverlayOutput@@QAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0COverlayOutput@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??0COverlayOutput@@QAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??0COverlayOutput@@QAE@XZ PROC				; COverlayOutput::COverlayOutput, COMDAT
; _this$ = ecx

; 1584 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??0COverlayOutput@@QAE@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00017	33 c5		 xor	 eax, ebp
  00019	50		 push	 eax
  0001a	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001d	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00023	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx
  00026	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00029	e8 00 00 00 00	 call	 ??0IOutput@@QAE@XZ	; IOutput::IOutput
  0002e	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00035	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00038	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], OFFSET ??_7COverlayOutput@@6B@
  0003e	68 00 00 00 00	 push	 OFFSET ??_C@_0BC@CHFENAPF@MonitorFromWindow?$AA@
  00043	68 00 00 00 00	 push	 OFFSET ??_C@_1BG@OILDLIOJ@?$AAu?$AAs?$AAe?$AAr?$AA3?$AA2?$AA?4?$AAd?$AAl?$AAl?$AA?$AA@
  00048	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0004b	81 c1 b4 02 00
	00		 add	 ecx, 692		; 000002b4H
  00051	e8 00 00 00 00	 call	 ??0?$DynamicFunctionS2@PAUHMONITOR__@@PAUHWND__@@K@@QAE@PB_WPBD@Z ; DynamicFunctionS2<HMONITOR__ *,HWND__ *,unsigned long>::DynamicFunctionS2<HMONITOR__ *,HWND__ *,unsigned long>
  00056	68 00 00 00 00	 push	 OFFSET ??_C@_0BA@KIAMMEPJ@GetMonitorInfoA?$AA@
  0005b	68 00 00 00 00	 push	 OFFSET ??_C@_1BG@OILDLIOJ@?$AAu?$AAs?$AAe?$AAr?$AA3?$AA2?$AA?4?$AAd?$AAl?$AAl?$AA?$AA@
  00060	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00063	81 c1 b8 02 00
	00		 add	 ecx, 696		; 000002b8H
  00069	e8 00 00 00 00	 call	 ??0?$DynamicFunctionS2@HPAUHMONITOR__@@PAUtagMONITORINFO@@@@QAE@PB_WPBD@Z ; DynamicFunctionS2<int,HMONITOR__ *,tagMONITORINFO *>::DynamicFunctionS2<int,HMONITOR__ *,tagMONITORINFO *>
  0006e	68 00 00 00 00	 push	 OFFSET ??_C@_0BB@BNCGIPPP@DirectDrawCreate?$AA@
  00073	68 00 00 00 00	 push	 OFFSET ??_C@_1BE@GPJFOKIG@?$AAd?$AAd?$AAr?$AAa?$AAw?$AA?4?$AAd?$AAl?$AAl?$AA?$AA@
  00078	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0007b	81 c1 bc 02 00
	00		 add	 ecx, 700		; 000002bcH
  00081	e8 00 00 00 00	 call	 ??0?$DynamicFunctionS3@JPAU_GUID@@PAPAUIDirectDraw@@PAUIUnknown@@@@QAE@PB_WPBD@Z ; DynamicFunctionS3<long,_GUID *,IDirectDraw * *,IUnknown *>::DynamicFunctionS3<long,_GUID *,IDirectDraw * *,IUnknown *>

; 1585 :     lpDD=NULL;

  00086	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00089	c7 81 b0 02 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+688], 0

; 1586 :     lpDDSurface=NULL;

  00093	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00096	c7 82 30 02 00
	00 00 00 00 00	 mov	 DWORD PTR [edx+560], 0

; 1587 :     lpDDOverlay=NULL;

  000a0	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  000a3	c7 80 34 02 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+564], 0

; 1588 :     lpDDOverlayBack=NULL;

  000ad	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  000b0	c7 81 38 02 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+568], 0

; 1589 :     lpExtraMemoryForFilters=NULL;

  000ba	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  000bd	c7 82 3c 02 00
	00 00 00 00 00	 mov	 DWORD PTR [edx+572], 0

; 1590 :     g_OverlayColor = RGB(32, 16, 16);

  000c7	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  000ca	c7 80 44 02 00
	00 20 10 10 00	 mov	 DWORD PTR [eax+580], 1052704 ; 00101020H

; 1591 :     bCanColorKey=FALSE;

  000d4	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  000d7	c7 81 40 02 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+576], 0

; 1592 :     BackBuffers=-1;

  000e1	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  000e4	c7 82 48 02 00
	00 ff ff ff ff	 mov	 DWORD PTR [edx+584], -1

; 1593 :     bCanDoBob=FALSE;

  000ee	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  000f1	c7 80 50 02 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+592], 0

; 1594 :     bCanDoFlipInterval=FALSE;

  000fb	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  000fe	c7 81 54 02 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+596], 0

; 1595 :     bCanDoColorKey=FALSE;

  00108	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  0010b	c7 82 58 02 00
	00 00 00 00 00	 mov	 DWORD PTR [edx+600], 0

; 1596 :     pDDColorControl=NULL;

  00115	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00118	c7 80 84 02 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+644], 0

; 1597 :     bUseOverlayControls=FALSE;

  00122	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00125	c7 81 88 02 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+648], 0

; 1598 :     bAllowBobMode=FALSE;

  0012f	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00132	c7 82 4c 02 00
	00 00 00 00 00	 mov	 DWORD PTR [edx+588], 0

; 1599 :     OutputTicksPerFrame=0;

  0013c	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  0013f	c7 80 8c 02 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+652], 0

; 1600 :     OverlayBrightness=75;

  00149	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0014c	c7 81 90 02 00
	00 4b 00 00 00	 mov	 DWORD PTR [ecx+656], 75	; 0000004bH

; 1601 :     OverlayContrast = 100;

  00156	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00159	c7 82 94 02 00
	00 64 00 00 00	 mov	 DWORD PTR [edx+660], 100 ; 00000064H

; 1602 :     OverlayHue = 0;

  00163	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00166	c7 80 98 02 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+664], 0

; 1603 :     OverlaySaturation = 100;

  00170	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00173	c7 81 9c 02 00
	00 64 00 00 00	 mov	 DWORD PTR [ecx+668], 100 ; 00000064H

; 1604 :     OverlayGamma = 1;

  0017d	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00180	c7 82 a0 02 00
	00 01 00 00 00	 mov	 DWORD PTR [edx+672], 1

; 1605 :     OverlaySharpness = 5;

  0018a	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  0018d	c7 80 a4 02 00
	00 05 00 00 00	 mov	 DWORD PTR [eax+676], 5

; 1606 :     FlipResult=0;

  00197	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0019a	c7 81 a8 02 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+680], 0

; 1607 :     DestSizeAlign=1;

  001a4	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  001a7	c7 82 10 02 00
	00 01 00 00 00	 mov	 DWORD PTR [edx+528], 1

; 1608 :     SrcSizeAlign=1;

  001b1	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  001b4	c7 80 14 02 00
	00 01 00 00 00	 mov	 DWORD PTR [eax+532], 1

; 1609 :     m_bSettingInitialized = FALSE;

  001be	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  001c1	c7 41 04 00 00
	00 00		 mov	 DWORD PTR [ecx+4], 0

; 1610 :     bIsRGB = FALSE;

  001c8	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  001cb	c7 82 ac 02 00
	00 00 00 00 00	 mov	 DWORD PTR [edx+684], 0

; 1611 : 
; 1612 :     InitializeCriticalSection(&hDDCritSect);

  001d5	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  001d8	05 18 02 00 00	 add	 eax, 536		; 00000218H
  001dd	50		 push	 eax
  001de	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__InitializeCriticalSection@4

; 1613 : }

  001e4	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  001eb	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  001ee	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  001f1	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  001f8	59		 pop	 ecx
  001f9	8b e5		 mov	 esp, ebp
  001fb	5d		 pop	 ebp
  001fc	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0COverlayOutput@@QAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1IOutput@@UAE@XZ	; IOutput::~IOutput
__ehhandler$??0COverlayOutput@@QAE@XZ:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  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$??0COverlayOutput@@QAE@XZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??0COverlayOutput@@QAE@XZ ENDP				; COverlayOutput::COverlayOutput
PUBLIC	?Overlay_GetSettingsPage@@YA?AV?$SmartPtr@VCSettingsHolder@@@@XZ ; Overlay_GetSettingsPage
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Overlay_GetSettingsPage@@YA?AV?$SmartPtr@VCSettingsHolder@@@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Overlay_GetSettingsPage@@YA?AV?$SmartPtr@VCSettingsHolder@@@@XZ$2
	DD	00H
	DD	FLAT:__unwindfunclet$?Overlay_GetSettingsPage@@YA?AV?$SmartPtr@VCSettingsHolder@@@@XZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$?Overlay_GetSettingsPage@@YA?AV?$SmartPtr@VCSettingsHolder@@@@XZ$1
__ehfuncinfo$?Overlay_GetSettingsPage@@YA?AV?$SmartPtr@VCSettingsHolder@@@@XZ DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$?Overlay_GetSettingsPage@@YA?AV?$SmartPtr@VCSettingsHolder@@@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?Overlay_GetSettingsPage@@YA?AV?$SmartPtr@VCSettingsHolder@@@@XZ
_TEXT	SEGMENT
tv76 = -36						; size = 4
$T344599 = -32						; size = 4
$T344593 = -28						; size = 4
$T344592 = -24						; size = 4
_Holder$ = -20						; size = 8
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
?Overlay_GetSettingsPage@@YA?AV?$SmartPtr@VCSettingsHolder@@@@XZ PROC ; Overlay_GetSettingsPage, COMDAT

; 1670 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?Overlay_GetSettingsPage@@YA?AV?$SmartPtr@VCSettingsHolder@@@@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 18	 sub	 esp, 24			; 00000018H
  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	c7 45 e0 00 00
	00 00		 mov	 DWORD PTR $T344599[ebp], 0

; 1671 :     SmartPtr<CSettingsHolder> Holder(new CSettingsHolder);

  0002c	6a 40		 push	 64			; 00000040H
  0002e	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  00033	83 c4 04	 add	 esp, 4
  00036	89 45 e4	 mov	 DWORD PTR $T344593[ebp], eax
  00039	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1
  00040	83 7d e4 00	 cmp	 DWORD PTR $T344593[ebp], 0
  00044	74 11		 je	 SHORT $LN3@Overlay_Ge@3
  00046	6a 00		 push	 0
  00048	6a 00		 push	 0
  0004a	8b 4d e4	 mov	 ecx, DWORD PTR $T344593[ebp]
  0004d	e8 00 00 00 00	 call	 ??0CSettingsHolder@@QAE@JI@Z ; CSettingsHolder::CSettingsHolder
  00052	89 45 dc	 mov	 DWORD PTR tv76[ebp], eax
  00055	eb 07		 jmp	 SHORT $LN4@Overlay_Ge@3
$LN3@Overlay_Ge@3:
  00057	c7 45 dc 00 00
	00 00		 mov	 DWORD PTR tv76[ebp], 0
$LN4@Overlay_Ge@3:
  0005e	8b 45 dc	 mov	 eax, DWORD PTR tv76[ebp]
  00061	89 45 e8	 mov	 DWORD PTR $T344592[ebp], eax
  00064	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  00068	6a 00		 push	 0
  0006a	8b 4d e8	 mov	 ecx, DWORD PTR $T344592[ebp]
  0006d	51		 push	 ecx
  0006e	8d 4d ec	 lea	 ecx, DWORD PTR _Holder$[ebp]
  00071	e8 00 00 00 00	 call	 ??0?$SmartPtr@VCSettingsHolder@@@@QAE@PAVCSettingsHolder@@PAUCounter@@@Z ; SmartPtr<CSettingsHolder>::SmartPtr<CSettingsHolder>
  00076	c7 45 fc 02 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 2

; 1672 :     Holder->AddSettings(OverlayOutputInstance.GetOtherSettings(), OVERLAYBRIGHTNESS);

  0007d	6a 00		 push	 0
  0007f	6a 03		 push	 3
  00081	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlayOutputInstance@@3VCOverlayOutput@@A ; OverlayOutputInstance
  00086	e8 00 00 00 00	 call	 ?GetOtherSettings@IOutput@@QAEPAUSETTING@@XZ ; IOutput::GetOtherSettings
  0008b	50		 push	 eax
  0008c	8d 4d ec	 lea	 ecx, DWORD PTR _Holder$[ebp]
  0008f	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSettingsHolder@@@@QBEPAVCSettingsHolder@@XZ ; SmartPtr<CSettingsHolder>::operator->
  00094	8b c8		 mov	 ecx, eax
  00096	e8 00 00 00 00	 call	 ?AddSettings@CSettingsHolder@@QAEXPAUSETTING@@HPAVCSettingGroup@@@Z ; CSettingsHolder::AddSettings

; 1673 :     return Holder;

  0009b	8d 55 ec	 lea	 edx, DWORD PTR _Holder$[ebp]
  0009e	52		 push	 edx
  0009f	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  000a2	e8 00 00 00 00	 call	 ??0?$SmartPtr@VCSettingsHolder@@@@QAE@ABV0@@Z ; SmartPtr<CSettingsHolder>::SmartPtr<CSettingsHolder>
  000a7	8b 45 e0	 mov	 eax, DWORD PTR $T344599[ebp]
  000aa	83 c8 01	 or	 eax, 1
  000ad	89 45 e0	 mov	 DWORD PTR $T344599[ebp], eax
  000b0	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  000b4	8d 4d ec	 lea	 ecx, DWORD PTR _Holder$[ebp]
  000b7	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSettingsHolder@@@@QAE@XZ ; SmartPtr<CSettingsHolder>::~SmartPtr<CSettingsHolder>
  000bc	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 1674 : }

  000bf	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  000c2	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000c9	59		 pop	 ecx
  000ca	8b e5		 mov	 esp, ebp
  000cc	5d		 pop	 ebp
  000cd	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Overlay_GetSettingsPage@@YA?AV?$SmartPtr@VCSettingsHolder@@@@XZ$0:
  00000	8b 45 e4	 mov	 eax, DWORD PTR $T344593[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
__unwindfunclet$?Overlay_GetSettingsPage@@YA?AV?$SmartPtr@VCSettingsHolder@@@@XZ$1:
  0000b	8d 4d ec	 lea	 ecx, DWORD PTR _Holder$[ebp]
  0000e	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSettingsHolder@@@@QAE@XZ ; SmartPtr<CSettingsHolder>::~SmartPtr<CSettingsHolder>
__unwindfunclet$?Overlay_GetSettingsPage@@YA?AV?$SmartPtr@VCSettingsHolder@@@@XZ$2:
  00013	8b 45 e0	 mov	 eax, DWORD PTR $T344599[ebp]
  00016	83 e0 01	 and	 eax, 1
  00019	0f 84 0c 00 00
	00		 je	 $LN8@Overlay_Ge@3
  0001f	83 65 e0 fe	 and	 DWORD PTR $T344599[ebp], -2 ; fffffffeH
  00023	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00026	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSettingsHolder@@@@QAE@XZ ; SmartPtr<CSettingsHolder>::~SmartPtr<CSettingsHolder>
$LN8@Overlay_Ge@3:
  0002b	c3		 ret	 0
__ehhandler$?Overlay_GetSettingsPage@@YA?AV?$SmartPtr@VCSettingsHolder@@@@XZ:
  0002c	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00030	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00033	8b 4a e4	 mov	 ecx, DWORD PTR [edx-28]
  00036	33 c8		 xor	 ecx, eax
  00038	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0003d	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?Overlay_GetSettingsPage@@YA?AV?$SmartPtr@VCSettingsHolder@@@@XZ
  00042	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?Overlay_GetSettingsPage@@YA?AV?$SmartPtr@VCSettingsHolder@@@@XZ ENDP ; Overlay_GetSettingsPage
; Function compile flags: /Odtp
;	COMDAT ?Overlay_Unlock@COverlayOutput@@UAEHXZ
_TEXT	SEGMENT
_this$ = -12						; size = 4
_ddrval$ = -8						; size = 4
_RetVal$ = -4						; size = 4
?Overlay_Unlock@COverlayOutput@@UAEHXZ PROC		; COverlayOutput::Overlay_Unlock, COMDAT
; _this$ = ecx

; 1159 : {

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

; 1160 :     // make sure we always leave the critical section
; 1161 :     if(lpDDOverlay == NULL)

  00009	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	83 b8 34 02 00
	00 00		 cmp	 DWORD PTR [eax+564], 0
  00013	75 23		 jne	 SHORT $LN3@Overlay_Un@3

; 1162 :     {
; 1163 :         LOG(1, _T("Overlay has been deleted"));

  00015	68 00 00 00 00	 push	 OFFSET ??_C@_1DC@LOEJMHFN@?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAh?$AAa?$AAs?$AA?5?$AAb?$AAe?$AAe?$AAn?$AA?5?$AAd?$AAe?$AAl?$AAe?$AAt?$AAe?$AAd?$AA?$AA@
  0001a	6a 01		 push	 1
  0001c	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00021	83 c4 08	 add	 esp, 8

; 1164 :         LeaveCriticalSection(&hDDCritSect);

  00024	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00027	81 c1 18 02 00
	00		 add	 ecx, 536		; 00000218H
  0002d	51		 push	 ecx
  0002e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1165 :         return FALSE;

  00034	33 c0		 xor	 eax, eax
  00036	eb 64		 jmp	 SHORT $LN4@Overlay_Un@3
$LN3@Overlay_Un@3:

; 1166 :     }
; 1167 : 
; 1168 :     // we are already in critical section
; 1169 :     HRESULT ddrval = lpDDOverlay->Unlock(NULL);

  00038	6a 00		 push	 0
  0003a	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  0003d	8b 82 34 02 00
	00		 mov	 eax, DWORD PTR [edx+564]
  00043	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00046	8b 91 34 02 00
	00		 mov	 edx, DWORD PTR [ecx+564]
  0004c	8b 00		 mov	 eax, DWORD PTR [eax]
  0004e	52		 push	 edx
  0004f	8b 88 80 00 00
	00		 mov	 ecx, DWORD PTR [eax+128]
  00055	ff d1		 call	 ecx
  00057	89 45 f8	 mov	 DWORD PTR _ddrval$[ebp], eax

; 1170 :     BOOL RetVal = TRUE;

  0005a	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _RetVal$[ebp], 1

; 1171 :     if(FAILED(ddrval))

  00061	83 7d f8 00	 cmp	 DWORD PTR _ddrval$[ebp], 0
  00065	7d 23		 jge	 SHORT $LN2@Overlay_Un@3

; 1172 :     {
; 1173 :         if(ddrval != DDERR_SURFACELOST)

  00067	81 7d f8 c2 01
	76 88		 cmp	 DWORD PTR _ddrval$[ebp], -2005532222 ; 887601c2H
  0006e	74 13		 je	 SHORT $LN1@Overlay_Un@3

; 1174 :         {
; 1175 :             LOG(1, _T("Unexpected failure in Unlock %8x"), ddrval);

  00070	8b 55 f8	 mov	 edx, DWORD PTR _ddrval$[ebp]
  00073	52		 push	 edx
  00074	68 00 00 00 00	 push	 OFFSET ??_C@_1EC@JEBCHDON@?$AAU?$AAn?$AAe?$AAx?$AAp?$AAe?$AAc?$AAt?$AAe?$AAd?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAu?$AAr?$AAe?$AA?5?$AAi?$AAn?$AA?5?$AAU?$AAn?$AAl?$AAo?$AAc?$AAk?$AA?5?$AA?$CF?$AA8?$AAx@
  00079	6a 01		 push	 1
  0007b	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00080	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN1@Overlay_Un@3:

; 1176 :         }
; 1177 :         RetVal = FALSE;

  00083	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _RetVal$[ebp], 0
$LN2@Overlay_Un@3:

; 1178 :     }
; 1179 :     LeaveCriticalSection(&hDDCritSect);

  0008a	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  0008d	05 18 02 00 00	 add	 eax, 536		; 00000218H
  00092	50		 push	 eax
  00093	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1180 :     return RetVal;

  00099	8b 45 fc	 mov	 eax, DWORD PTR _RetVal$[ebp]
$LN4@Overlay_Un@3:

; 1181 : }

  0009c	8b e5		 mov	 esp, ebp
  0009e	5d		 pop	 ebp
  0009f	c3		 ret	 0
?Overlay_Unlock@COverlayOutput@@UAEHXZ ENDP		; COverlayOutput::Overlay_Unlock
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?Overlay_Unlock_Back_Buffer@COverlayOutput@@UAEHH@Z
_TEXT	SEGMENT
_this$ = -12						; size = 4
_ddrval$ = -8						; size = 4
_RetVal$ = -4						; size = 4
_bUseExtraBuffer$ = 8					; size = 4
?Overlay_Unlock_Back_Buffer@COverlayOutput@@UAEHH@Z PROC ; COverlayOutput::Overlay_Unlock_Back_Buffer, COMDAT
; _this$ = ecx

; 1130 : {

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

; 1131 :     if(bUseExtraBuffer && lpExtraMemoryForFilters != NULL)

  00009	83 7d 08 00	 cmp	 DWORD PTR _bUseExtraBuffer$[ebp], 0
  0000d	74 16		 je	 SHORT $LN4@Overlay_Un@4
  0000f	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  00012	83 b8 3c 02 00
	00 00		 cmp	 DWORD PTR [eax+572], 0
  00019	74 0a		 je	 SHORT $LN4@Overlay_Un@4

; 1132 :     {
; 1133 :         return TRUE;

  0001b	b8 01 00 00 00	 mov	 eax, 1
  00020	e9 94 00 00 00	 jmp	 $LN5@Overlay_Un@4
$LN4@Overlay_Un@4:

; 1134 :     }
; 1135 :     // make sure we always release the critical section
; 1136 :     if(lpDDOverlayBack == NULL)

  00025	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00028	83 b9 38 02 00
	00 00		 cmp	 DWORD PTR [ecx+568], 0
  0002f	75 23		 jne	 SHORT $LN3@Overlay_Un@4

; 1137 :     {
; 1138 :         LOG(1, _T("Overlay has been deleted"));

  00031	68 00 00 00 00	 push	 OFFSET ??_C@_1DC@LOEJMHFN@?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAh?$AAa?$AAs?$AA?5?$AAb?$AAe?$AAe?$AAn?$AA?5?$AAd?$AAe?$AAl?$AAe?$AAt?$AAe?$AAd?$AA?$AA@
  00036	6a 01		 push	 1
  00038	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  0003d	83 c4 08	 add	 esp, 8

; 1139 :         LeaveCriticalSection(&hDDCritSect);

  00040	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  00043	81 c2 18 02 00
	00		 add	 edx, 536		; 00000218H
  00049	52		 push	 edx
  0004a	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1140 :         return FALSE;

  00050	33 c0		 xor	 eax, eax
  00052	eb 65		 jmp	 SHORT $LN5@Overlay_Un@4
$LN3@Overlay_Un@4:

; 1141 :     }
; 1142 : 
; 1143 :     // we are already in critical section
; 1144 :     HRESULT ddrval = lpDDOverlayBack->Unlock(NULL);

  00054	6a 00		 push	 0
  00056	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  00059	8b 88 38 02 00
	00		 mov	 ecx, DWORD PTR [eax+568]
  0005f	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  00062	8b 82 38 02 00
	00		 mov	 eax, DWORD PTR [edx+568]
  00068	8b 09		 mov	 ecx, DWORD PTR [ecx]
  0006a	50		 push	 eax
  0006b	8b 91 80 00 00
	00		 mov	 edx, DWORD PTR [ecx+128]
  00071	ff d2		 call	 edx
  00073	89 45 f8	 mov	 DWORD PTR _ddrval$[ebp], eax

; 1145 :     BOOL RetVal = TRUE;

  00076	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _RetVal$[ebp], 1

; 1146 :     if(FAILED(ddrval))

  0007d	83 7d f8 00	 cmp	 DWORD PTR _ddrval$[ebp], 0
  00081	7d 23		 jge	 SHORT $LN2@Overlay_Un@4

; 1147 :     {
; 1148 :         if(ddrval != DDERR_SURFACELOST)

  00083	81 7d f8 c2 01
	76 88		 cmp	 DWORD PTR _ddrval$[ebp], -2005532222 ; 887601c2H
  0008a	74 13		 je	 SHORT $LN1@Overlay_Un@4

; 1149 :         {
; 1150 :             LOG(1, _T("Unexpected failure in Unlock %8x"), ddrval);

  0008c	8b 45 f8	 mov	 eax, DWORD PTR _ddrval$[ebp]
  0008f	50		 push	 eax
  00090	68 00 00 00 00	 push	 OFFSET ??_C@_1EC@JEBCHDON@?$AAU?$AAn?$AAe?$AAx?$AAp?$AAe?$AAc?$AAt?$AAe?$AAd?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAu?$AAr?$AAe?$AA?5?$AAi?$AAn?$AA?5?$AAU?$AAn?$AAl?$AAo?$AAc?$AAk?$AA?5?$AA?$CF?$AA8?$AAx@
  00095	6a 01		 push	 1
  00097	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  0009c	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN1@Overlay_Un@4:

; 1151 :         }
; 1152 :         RetVal = FALSE;

  0009f	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _RetVal$[ebp], 0
$LN2@Overlay_Un@4:

; 1153 :     }
; 1154 :     LeaveCriticalSection(&hDDCritSect);

  000a6	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  000a9	81 c1 18 02 00
	00		 add	 ecx, 536		; 00000218H
  000af	51		 push	 ecx
  000b0	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1155 :     return RetVal;

  000b6	8b 45 fc	 mov	 eax, DWORD PTR _RetVal$[ebp]
$LN5@Overlay_Un@4:

; 1156 : }

  000b9	8b e5		 mov	 esp, ebp
  000bb	5d		 pop	 ebp
  000bc	c2 04 00	 ret	 4
?Overlay_Unlock_Back_Buffer@COverlayOutput@@UAEHH@Z ENDP ; COverlayOutput::Overlay_Unlock_Back_Buffer
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?Overlay_Lock@COverlayOutput@@UAEHPAUTDeinterlaceInfo@@@Z
_TEXT	SEGMENT
_this$ = -120						; size = 4
_ddrval$ = -116						; size = 4
_SurfaceDesc$ = -112					; size = 108
_pInfo$ = 8						; size = 4
?Overlay_Lock@COverlayOutput@@UAEHPAUTDeinterlaceInfo@@@Z PROC ; COverlayOutput::Overlay_Lock, COMDAT
; _this$ = ecx

; 1067 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 78	 sub	 esp, 120		; 00000078H
  00006	89 4d 88	 mov	 DWORD PTR _this$[ebp], ecx

; 1068 :     if(lpDDOverlay == NULL || lpDDOverlayBack == NULL)

  00009	8b 45 88	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	83 b8 34 02 00
	00 00		 cmp	 DWORD PTR [eax+564], 0
  00013	74 0c		 je	 SHORT $LN7@Overlay_Lo@3
  00015	8b 4d 88	 mov	 ecx, DWORD PTR _this$[ebp]
  00018	83 b9 38 02 00
	00 00		 cmp	 DWORD PTR [ecx+568], 0
  0001f	75 16		 jne	 SHORT $LN8@Overlay_Lo@3
$LN7@Overlay_Lo@3:

; 1069 :     {
; 1070 :         LOG(1, _T("Overlay has been deleted"));

  00021	68 00 00 00 00	 push	 OFFSET ??_C@_1DC@LOEJMHFN@?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAh?$AAa?$AAs?$AA?5?$AAb?$AAe?$AAe?$AAn?$AA?5?$AAd?$AAe?$AAl?$AAe?$AAt?$AAe?$AAd?$AA?$AA@
  00026	6a 01		 push	 1
  00028	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  0002d	83 c4 08	 add	 esp, 8

; 1071 :         return FALSE;

  00030	33 c0		 xor	 eax, eax
  00032	e9 79 01 00 00	 jmp	 $LN9@Overlay_Lo@3
$LN8@Overlay_Lo@3:

; 1072 :     }
; 1073 : 
; 1074 :     EnterCriticalSection(&hDDCritSect);

  00037	8b 55 88	 mov	 edx, DWORD PTR _this$[ebp]
  0003a	81 c2 18 02 00
	00		 add	 edx, 536		; 00000218H
  00040	52		 push	 edx
  00041	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1075 : 
; 1076 :     HRESULT         ddrval;
; 1077 :     static DWORD    dwFlags = DDLOCK_WAIT | DDLOCK_NOSYSLOCK;
; 1078 :     DDSURFACEDESC   SurfaceDesc;
; 1079 : 
; 1080 :     if (FlipResult == DDERR_WASSTILLDRAWING)             // prev flip was busy?

  00047	8b 45 88	 mov	 eax, DWORD PTR _this$[ebp]
  0004a	81 b8 a8 02 00
	00 1c 02 76 88	 cmp	 DWORD PTR [eax+680], -2005532132 ; 8876021cH
  00054	75 5d		 jne	 SHORT $LN6@Overlay_Lo@3

; 1081 :     {
; 1082 :         ddrval = lpDDOverlay->Flip(NULL, DDFLIP_DONOTWAIT);

  00056	6a 20		 push	 32			; 00000020H
  00058	6a 00		 push	 0
  0005a	8b 4d 88	 mov	 ecx, DWORD PTR _this$[ebp]
  0005d	8b 91 34 02 00
	00		 mov	 edx, DWORD PTR [ecx+564]
  00063	8b 45 88	 mov	 eax, DWORD PTR _this$[ebp]
  00066	8b 88 34 02 00
	00		 mov	 ecx, DWORD PTR [eax+564]
  0006c	8b 12		 mov	 edx, DWORD PTR [edx]
  0006e	51		 push	 ecx
  0006f	8b 42 2c	 mov	 eax, DWORD PTR [edx+44]
  00072	ff d0		 call	 eax
  00074	89 45 8c	 mov	 DWORD PTR _ddrval$[ebp], eax

; 1083 :         if(ddrval == DDERR_SURFACELOST)

  00077	81 7d 8c c2 01
	76 88		 cmp	 DWORD PTR _ddrval$[ebp], -2005532222 ; 887601c2H
  0007e	75 26		 jne	 SHORT $LN5@Overlay_Lo@3

; 1084 :         {
; 1085 :             LOG(1, _T("Flip before lock failed"));

  00080	68 00 00 00 00	 push	 OFFSET ??_C@_1DA@PIAAKKPA@?$AAF?$AAl?$AAi?$AAp?$AA?5?$AAb?$AAe?$AAf?$AAo?$AAr?$AAe?$AA?5?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?$AA@
  00085	6a 01		 push	 1
  00087	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  0008c	83 c4 08	 add	 esp, 8

; 1086 :             LeaveCriticalSection(&hDDCritSect);

  0008f	8b 4d 88	 mov	 ecx, DWORD PTR _this$[ebp]
  00092	81 c1 18 02 00
	00		 add	 ecx, 536		; 00000218H
  00098	51		 push	 ecx
  00099	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1087 :             return FALSE;

  0009f	33 c0		 xor	 eax, eax
  000a1	e9 0a 01 00 00	 jmp	 $LN9@Overlay_Lo@3
$LN5@Overlay_Lo@3:

; 1088 :         }
; 1089 :         FlipResult = 0;                 // but no time to try any more

  000a6	8b 55 88	 mov	 edx, DWORD PTR _this$[ebp]
  000a9	c7 82 a8 02 00
	00 00 00 00 00	 mov	 DWORD PTR [edx+680], 0
$LN6@Overlay_Lo@3:

; 1090 :     }
; 1091 : 
; 1092 :     memset(&SurfaceDesc, 0x00, sizeof(SurfaceDesc));

  000b3	6a 6c		 push	 108			; 0000006cH
  000b5	6a 00		 push	 0
  000b7	8d 45 90	 lea	 eax, DWORD PTR _SurfaceDesc$[ebp]
  000ba	50		 push	 eax
  000bb	e8 00 00 00 00	 call	 _memset
  000c0	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1093 :     SurfaceDesc.dwSize = sizeof(SurfaceDesc);

  000c3	c7 45 90 6c 00
	00 00		 mov	 DWORD PTR _SurfaceDesc$[ebp], 108 ; 0000006cH

; 1094 :     ddrval = lpDDOverlay->Lock(NULL, &SurfaceDesc, dwFlags, NULL);

  000ca	6a 00		 push	 0
  000cc	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?dwFlags@?4??Overlay_Lock@COverlayOutput@@UAEHPAUTDeinterlaceInfo@@@Z@4KA
  000d2	51		 push	 ecx
  000d3	8d 55 90	 lea	 edx, DWORD PTR _SurfaceDesc$[ebp]
  000d6	52		 push	 edx
  000d7	6a 00		 push	 0
  000d9	8b 45 88	 mov	 eax, DWORD PTR _this$[ebp]
  000dc	8b 88 34 02 00
	00		 mov	 ecx, DWORD PTR [eax+564]
  000e2	8b 55 88	 mov	 edx, DWORD PTR _this$[ebp]
  000e5	8b 82 34 02 00
	00		 mov	 eax, DWORD PTR [edx+564]
  000eb	8b 09		 mov	 ecx, DWORD PTR [ecx]
  000ed	50		 push	 eax
  000ee	8b 51 64	 mov	 edx, DWORD PTR [ecx+100]
  000f1	ff d2		 call	 edx
  000f3	89 45 8c	 mov	 DWORD PTR _ddrval$[ebp], eax

; 1095 : 
; 1096 :     // fix suggested by christoph for NT 4.0 sp6
; 1097 :     if(ddrval == E_INVALIDARG && (dwFlags & DDLOCK_NOSYSLOCK))

  000f6	81 7d 8c 57 00
	07 80		 cmp	 DWORD PTR _ddrval$[ebp], -2147024809 ; 80070057H
  000fd	75 52		 jne	 SHORT $LN4@Overlay_Lo@3
  000ff	a1 00 00 00 00	 mov	 eax, DWORD PTR ?dwFlags@?4??Overlay_Lock@COverlayOutput@@UAEHPAUTDeinterlaceInfo@@@Z@4KA
  00104	25 00 08 00 00	 and	 eax, 2048		; 00000800H
  00109	74 46		 je	 SHORT $LN4@Overlay_Lo@3

; 1098 :     {
; 1099 :         //remove flag
; 1100 :         ddrval = lpDDOverlay->Lock(NULL, &SurfaceDesc, DDLOCK_WAIT, NULL);

  0010b	6a 00		 push	 0
  0010d	6a 01		 push	 1
  0010f	8d 4d 90	 lea	 ecx, DWORD PTR _SurfaceDesc$[ebp]
  00112	51		 push	 ecx
  00113	6a 00		 push	 0
  00115	8b 55 88	 mov	 edx, DWORD PTR _this$[ebp]
  00118	8b 82 34 02 00
	00		 mov	 eax, DWORD PTR [edx+564]
  0011e	8b 4d 88	 mov	 ecx, DWORD PTR _this$[ebp]
  00121	8b 91 34 02 00
	00		 mov	 edx, DWORD PTR [ecx+564]
  00127	8b 00		 mov	 eax, DWORD PTR [eax]
  00129	52		 push	 edx
  0012a	8b 48 64	 mov	 ecx, DWORD PTR [eax+100]
  0012d	ff d1		 call	 ecx
  0012f	89 45 8c	 mov	 DWORD PTR _ddrval$[ebp], eax

; 1101 :         if( SUCCEEDED(ddrval) )

  00132	83 7d 8c 00	 cmp	 DWORD PTR _ddrval$[ebp], 0
  00136	7c 19		 jl	 SHORT $LN4@Overlay_Lo@3

; 1102 :         {
; 1103 :             //remember for next time
; 1104 :             dwFlags = DDLOCK_WAIT;

  00138	c7 05 00 00 00
	00 01 00 00 00	 mov	 DWORD PTR ?dwFlags@?4??Overlay_Lock@COverlayOutput@@UAEHPAUTDeinterlaceInfo@@@Z@4KA, 1

; 1105 :             LOG(1, _T("Switched to not using NOSYSLOCK"));

  00142	68 00 00 00 00	 push	 OFFSET ??_C@_1EA@OBDHJAJF@?$AAS?$AAw?$AAi?$AAt?$AAc?$AAh?$AAe?$AAd?$AA?5?$AAt?$AAo?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAu?$AAs?$AAi?$AAn?$AAg?$AA?5?$AAN?$AAO?$AAS?$AAY?$AAS?$AAL?$AAO?$AAC?$AAK?$AA?$AA@
  00147	6a 01		 push	 1
  00149	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  0014e	83 c4 08	 add	 esp, 8
$LN4@Overlay_Lo@3:

; 1106 :         }
; 1107 :     }
; 1108 : 
; 1109 :     if(FAILED(ddrval))

  00151	83 7d 8c 00	 cmp	 DWORD PTR _ddrval$[ebp], 0
  00155	7d 26		 jge	 SHORT $LN2@Overlay_Lo@3

; 1110 :     {
; 1111 :         LOG(1, _T("Lock failed %8x"), ddrval);

  00157	8b 55 8c	 mov	 edx, DWORD PTR _ddrval$[ebp]
  0015a	52		 push	 edx
  0015b	68 00 00 00 00	 push	 OFFSET ??_C@_1CA@FOFBHGNI@?$AAL?$AAo?$AAc?$AAk?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5?$AA?$CF?$AA8?$AAx?$AA?$AA@
  00160	6a 01		 push	 1
  00162	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00167	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1112 :         LeaveCriticalSection(&hDDCritSect);

  0016a	8b 45 88	 mov	 eax, DWORD PTR _this$[ebp]
  0016d	05 18 02 00 00	 add	 eax, 536		; 00000218H
  00172	50		 push	 eax
  00173	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1113 :         return FALSE;

  00179	33 c0		 xor	 eax, eax
  0017b	eb 33		 jmp	 SHORT $LN9@Overlay_Lo@3
$LN2@Overlay_Lo@3:

; 1114 :     }
; 1115 : 
; 1116 :     pInfo->OverlayPitch = SurfaceDesc.lPitch;         // Set new pitch, may change

  0017d	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  00180	8b 55 a0	 mov	 edx, DWORD PTR _SurfaceDesc$[ebp+16]
  00183	89 51 44	 mov	 DWORD PTR [ecx+68], edx

; 1117 :     pInfo->Overlay = (BYTE*)SurfaceDesc.lpSurface;

  00186	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  00189	8b 4d b4	 mov	 ecx, DWORD PTR _SurfaceDesc$[ebp+36]
  0018c	89 48 2c	 mov	 DWORD PTR [eax+44], ecx

; 1118 :     if(pInfo->Overlay == NULL)

  0018f	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  00192	83 7a 2c 00	 cmp	 DWORD PTR [edx+44], 0
  00196	75 13		 jne	 SHORT $LN1@Overlay_Lo@3

; 1119 :     {
; 1120 :         LeaveCriticalSection(&hDDCritSect);

  00198	8b 45 88	 mov	 eax, DWORD PTR _this$[ebp]
  0019b	05 18 02 00 00	 add	 eax, 536		; 00000218H
  001a0	50		 push	 eax
  001a1	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1121 :         return FALSE;

  001a7	33 c0		 xor	 eax, eax
  001a9	eb 05		 jmp	 SHORT $LN9@Overlay_Lo@3
$LN1@Overlay_Lo@3:

; 1122 :     }
; 1123 : 
; 1124 : 
; 1125 :     // stay in critical section
; 1126 :     return TRUE;

  001ab	b8 01 00 00 00	 mov	 eax, 1
$LN9@Overlay_Lo@3:

; 1127 : }

  001b0	8b e5		 mov	 esp, ebp
  001b2	5d		 pop	 ebp
  001b3	c2 04 00	 ret	 4
?Overlay_Lock@COverlayOutput@@UAEHPAUTDeinterlaceInfo@@@Z ENDP ; COverlayOutput::Overlay_Lock
_TEXT	ENDS
PUBLIC	?Overlay_Lock_Extra_Buffer@COverlayOutput@@QAEHPAUTDeinterlaceInfo@@@Z ; COverlayOutput::Overlay_Lock_Extra_Buffer
; Function compile flags: /Odtp
;	COMDAT ?Overlay_Lock_Extra_Buffer@COverlayOutput@@QAEHPAUTDeinterlaceInfo@@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_pInfo$ = 8						; size = 4
?Overlay_Lock_Extra_Buffer@COverlayOutput@@QAEHPAUTDeinterlaceInfo@@@Z PROC ; COverlayOutput::Overlay_Lock_Extra_Buffer, COMDAT
; _this$ = ecx

; 970  : {

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

; 971  :     if(lpExtraMemoryForFilters == NULL)

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	83 b8 3c 02 00
	00 00		 cmp	 DWORD PTR [eax+572], 0
  00011	75 13		 jne	 SHORT $LN1@Overlay_Lo@4

; 972  :     {
; 973  :         LOG(1, _T("Extra Buffer has been deleted"));

  00013	68 00 00 00 00	 push	 OFFSET ??_C@_1DM@KKHAPEAC@?$AAE?$AAx?$AAt?$AAr?$AAa?$AA?5?$AAB?$AAu?$AAf?$AAf?$AAe?$AAr?$AA?5?$AAh?$AAa?$AAs?$AA?5?$AAb?$AAe?$AAe?$AAn?$AA?5?$AAd?$AAe?$AAl?$AAe?$AAt?$AAe?$AAd?$AA?$AA@
  00018	6a 01		 push	 1
  0001a	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  0001f	83 c4 08	 add	 esp, 8

; 974  :         return FALSE;

  00022	33 c0		 xor	 eax, eax
  00024	eb 37		 jmp	 SHORT $LN2@Overlay_Lo@4
$LN1@Overlay_Lo@4:

; 975  :     }
; 976  : 
; 977  :     pInfo->OverlayPitch = DSCALER_MAX_WIDTH * 2;

  00026	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  00029	c7 41 44 00 1e
	00 00		 mov	 DWORD PTR [ecx+68], 7680 ; 00001e00H

; 978  :     // get back some memory aligned on 16 byte boundary for SSE
; 979  :     pInfo->Overlay = lpExtraMemoryForFilters + (16 - ((DWORD)lpExtraMemoryForFilters % 16));

  00030	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00033	8b 82 3c 02 00
	00		 mov	 eax, DWORD PTR [edx+572]
  00039	33 d2		 xor	 edx, edx
  0003b	b9 10 00 00 00	 mov	 ecx, 16			; 00000010H
  00040	f7 f1		 div	 ecx
  00042	b8 10 00 00 00	 mov	 eax, 16			; 00000010H
  00047	2b c2		 sub	 eax, edx
  00049	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0004c	03 81 3c 02 00
	00		 add	 eax, DWORD PTR [ecx+572]
  00052	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  00055	89 42 2c	 mov	 DWORD PTR [edx+44], eax

; 980  :     return TRUE;

  00058	b8 01 00 00 00	 mov	 eax, 1
$LN2@Overlay_Lo@4:

; 981  : }

  0005d	8b e5		 mov	 esp, ebp
  0005f	5d		 pop	 ebp
  00060	c2 04 00	 ret	 4
?Overlay_Lock_Extra_Buffer@COverlayOutput@@QAEHPAUTDeinterlaceInfo@@@Z ENDP ; COverlayOutput::Overlay_Lock_Extra_Buffer
_TEXT	ENDS
PUBLIC	?DDEnumCallbackEx@COverlayOutput@@CGHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@Z ; COverlayOutput::DDEnumCallbackEx
; Function compile flags: /Odtp
;	COMDAT ?DDEnumCallbackEx@COverlayOutput@@CGHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@Z
_TEXT	SEGMENT
_i$142761 = -48						; size = 4
_MonInfo$ = -44						; size = 40
_lpDD$ = -4						; size = 4
_pGuid$ = 8						; size = 4
_pszDesc$ = 12						; size = 4
_pszDriverName$ = 16					; size = 4
_pContext$ = 20						; size = 4
_hMonitor$ = 24						; size = 4
?DDEnumCallbackEx@COverlayOutput@@CGHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@Z PROC ; COverlayOutput::DDEnumCallbackEx, COMDAT

; 46   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 30	 sub	 esp, 48			; 00000030H

; 47   :     MONITORINFO MonInfo;
; 48   :     LPDIRECTDRAW lpDD;
; 49   : 
; 50   :     if (NbMonitors == MAX_DSCALER_MONITORS)

  00006	83 3d 00 00 00
	00 10		 cmp	 DWORD PTR _NbMonitors, 16 ; 00000010H
  0000d	75 07		 jne	 SHORT $LN8@DDEnumCall

; 51   :         return DDENUMRET_CANCEL;

  0000f	33 c0		 xor	 eax, eax
  00011	e9 06 01 00 00	 jmp	 $LN9@DDEnumCall
$LN8@DDEnumCall:

; 52   : 
; 53   :     // DirectDrawEnumerateEx returns hMonitor = NULL on single monitor configuration
; 54   :     // and both NULL and non-NULL value for the primary monitor in multiple monitors context !
; 55   :     // However MonitorFromWindow/Rect functions always return non-NULL HMONITOR handles
; 56   :     // so we need to replace the NULL handle in single monitor context with the non-NULL value
; 57   :     if (hMonitor == NULL)

  00016	83 7d 18 00	 cmp	 DWORD PTR _hMonitor$[ebp], 0
  0001a	75 11		 jne	 SHORT $LN7@DDEnumCall

; 58   :     {
; 59   :         hMonitor = OverlayOutputInstance.m_lpMonitorFromWindow(NULL, MONITOR_DEFAULTTOPRIMARY);

  0001c	6a 01		 push	 1
  0001e	6a 00		 push	 0
  00020	b9 b4 02 00 00	 mov	 ecx, OFFSET ?OverlayOutputInstance@@3VCOverlayOutput@@A+692
  00025	e8 00 00 00 00	 call	 ??R?$DynamicFunctionS2@PAUHMONITOR__@@PAUHWND__@@K@@QBEPAUHMONITOR__@@PAUHWND__@@K@Z ; DynamicFunctionS2<HMONITOR__ *,HWND__ *,unsigned long>::operator()
  0002a	89 45 18	 mov	 DWORD PTR _hMonitor$[ebp], eax
$LN7@DDEnumCall:

; 60   :     }
; 61   :     LOG(0, _T("Monitor %d %s %s"), hMonitor, pszDesc, pszDriverName);

  0002d	8b 45 10	 mov	 eax, DWORD PTR _pszDriverName$[ebp]
  00030	50		 push	 eax
  00031	8b 4d 0c	 mov	 ecx, DWORD PTR _pszDesc$[ebp]
  00034	51		 push	 ecx
  00035	8b 55 18	 mov	 edx, DWORD PTR _hMonitor$[ebp]
  00038	52		 push	 edx
  00039	68 00 00 00 00	 push	 OFFSET ??_C@_1CC@JGJKHILJ@?$AAM?$AAo?$AAn?$AAi?$AAt?$AAo?$AAr?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$CF?$AAs?$AA?5?$AA?$CF?$AAs?$AA?$AA@
  0003e	6a 00		 push	 0
  00040	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00045	83 c4 14	 add	 esp, 20			; 00000014H

; 62   : 
; 63   :     // and therefore test if we found again the same monitor !
; 64   :     for (int i = 0; i < NbMonitors; i++)

  00048	c7 45 d0 00 00
	00 00		 mov	 DWORD PTR _i$142761[ebp], 0
  0004f	eb 09		 jmp	 SHORT $LN6@DDEnumCall
$LN5@DDEnumCall:
  00051	8b 45 d0	 mov	 eax, DWORD PTR _i$142761[ebp]
  00054	83 c0 01	 add	 eax, 1
  00057	89 45 d0	 mov	 DWORD PTR _i$142761[ebp], eax
$LN6@DDEnumCall:
  0005a	8b 4d d0	 mov	 ecx, DWORD PTR _i$142761[ebp]
  0005d	3b 0d 00 00 00
	00		 cmp	 ecx, DWORD PTR _NbMonitors
  00063	7d 2a		 jge	 SHORT $LN4@DDEnumCall

; 65   :     {
; 66   :         if (Monitors[i].hMon == hMonitor)

  00065	8b 55 d0	 mov	 edx, DWORD PTR _i$142761[ebp]
  00068	8b 04 d5 00 00
	00 00		 mov	 eax, DWORD PTR _Monitors[edx*8]
  0006f	3b 45 18	 cmp	 eax, DWORD PTR _hMonitor$[ebp]
  00072	75 19		 jne	 SHORT $LN3@DDEnumCall

; 67   :         {
; 68   :             LOG(2, _T("Monitor alrady listed"));

  00074	68 00 00 00 00	 push	 OFFSET ??_C@_1CM@GIBACILD@?$AAM?$AAo?$AAn?$AAi?$AAt?$AAo?$AAr?$AA?5?$AAa?$AAl?$AAr?$AAa?$AAd?$AAy?$AA?5?$AAl?$AAi?$AAs?$AAt?$AAe?$AAd?$AA?$AA@
  00079	6a 02		 push	 2
  0007b	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00080	83 c4 08	 add	 esp, 8

; 69   :             return DDENUMRET_OK;

  00083	b8 01 00 00 00	 mov	 eax, 1
  00088	e9 8f 00 00 00	 jmp	 $LN9@DDEnumCall
$LN3@DDEnumCall:

; 70   :         }
; 71   :     }

  0008d	eb c2		 jmp	 SHORT $LN5@DDEnumCall
$LN4@DDEnumCall:

; 72   : 
; 73   :     MonInfo.cbSize = sizeof(MONITORINFO);

  0008f	c7 45 d4 28 00
	00 00		 mov	 DWORD PTR _MonInfo$[ebp], 40 ; 00000028H

; 74   :     if (OverlayOutputInstance.m_lpGetMonitorInfoA(hMonitor, &MonInfo))

  00096	8d 4d d4	 lea	 ecx, DWORD PTR _MonInfo$[ebp]
  00099	51		 push	 ecx
  0009a	8b 55 18	 mov	 edx, DWORD PTR _hMonitor$[ebp]
  0009d	52		 push	 edx
  0009e	b9 b8 02 00 00	 mov	 ecx, OFFSET ?OverlayOutputInstance@@3VCOverlayOutput@@A+696
  000a3	e8 00 00 00 00	 call	 ??R?$DynamicFunctionS2@HPAUHMONITOR__@@PAUtagMONITORINFO@@@@QBEHPAUHMONITOR__@@PAUtagMONITORINFO@@@Z ; DynamicFunctionS2<int,HMONITOR__ *,tagMONITORINFO *>::operator()
  000a8	85 c0		 test	 eax, eax
  000aa	74 6b		 je	 SHORT $LN2@DDEnumCall

; 75   :     {
; 76   :         if (SUCCEEDED(OverlayOutputInstance.m_lpDirectDrawCreate(pGuid, &lpDD, NULL)))

  000ac	6a 00		 push	 0
  000ae	8d 45 fc	 lea	 eax, DWORD PTR _lpDD$[ebp]
  000b1	50		 push	 eax
  000b2	8b 4d 08	 mov	 ecx, DWORD PTR _pGuid$[ebp]
  000b5	51		 push	 ecx
  000b6	b9 bc 02 00 00	 mov	 ecx, OFFSET ?OverlayOutputInstance@@3VCOverlayOutput@@A+700
  000bb	e8 00 00 00 00	 call	 ??R?$DynamicFunctionS3@JPAU_GUID@@PAPAUIDirectDraw@@PAUIUnknown@@@@QBEJPAU_GUID@@PAPAUIDirectDraw@@PAUIUnknown@@@Z ; DynamicFunctionS3<long,_GUID *,IDirectDraw * *,IUnknown *>::operator()
  000c0	85 c0		 test	 eax, eax
  000c2	7c 53		 jl	 SHORT $LN2@DDEnumCall

; 77   :         {
; 78   :             Monitors[NbMonitors].hMon = hMonitor;

  000c4	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR _NbMonitors
  000ca	8b 45 18	 mov	 eax, DWORD PTR _hMonitor$[ebp]
  000cd	89 04 d5 00 00
	00 00		 mov	 DWORD PTR _Monitors[edx*8], eax

; 79   :             Monitors[NbMonitors].lpDD = lpDD;

  000d4	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _NbMonitors
  000da	8b 55 fc	 mov	 edx, DWORD PTR _lpDD$[ebp]
  000dd	89 14 cd 04 00
	00 00		 mov	 DWORD PTR _Monitors[ecx*8+4], edx

; 80   :             NbMonitors++;

  000e4	a1 00 00 00 00	 mov	 eax, DWORD PTR _NbMonitors
  000e9	83 c0 01	 add	 eax, 1
  000ec	a3 00 00 00 00	 mov	 DWORD PTR _NbMonitors, eax

; 81   :             LOG(1, _T("Monitor %d (%d %d %d %d)"), NbMonitors, MonInfo.rcMonitor.left, MonInfo.rcMonitor.right, MonInfo.rcMonitor.top, MonInfo.rcMonitor.bottom);

  000f1	8b 4d e4	 mov	 ecx, DWORD PTR _MonInfo$[ebp+16]
  000f4	51		 push	 ecx
  000f5	8b 55 dc	 mov	 edx, DWORD PTR _MonInfo$[ebp+8]
  000f8	52		 push	 edx
  000f9	8b 45 e0	 mov	 eax, DWORD PTR _MonInfo$[ebp+12]
  000fc	50		 push	 eax
  000fd	8b 4d d8	 mov	 ecx, DWORD PTR _MonInfo$[ebp+4]
  00100	51		 push	 ecx
  00101	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR _NbMonitors
  00107	52		 push	 edx
  00108	68 00 00 00 00	 push	 OFFSET ??_C@_1DC@BNLLAHLD@?$AAM?$AAo?$AAn?$AAi?$AAt?$AAo?$AAr?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$CI?$AA?$CF?$AAd?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?$CF?$AAd?$AA?$CJ?$AA?$AA@
  0010d	6a 01		 push	 1
  0010f	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00114	83 c4 1c	 add	 esp, 28			; 0000001cH
$LN2@DDEnumCall:

; 82   :         }
; 83   :     }
; 84   : 
; 85   :     return DDENUMRET_OK; // Keep enumerating

  00117	b8 01 00 00 00	 mov	 eax, 1
$LN9@DDEnumCall:

; 86   : }

  0011c	8b e5		 mov	 esp, ebp
  0011e	5d		 pop	 ebp
  0011f	c2 14 00	 ret	 20			; 00000014H
?DDEnumCallbackEx@COverlayOutput@@CGHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@Z ENDP ; COverlayOutput::DDEnumCallbackEx
PUBLIC	?Overlay_WriteSettingsToIni@@YAXH@Z		; Overlay_WriteSettingsToIni
; Function compile flags: /Odtp
;	COMDAT ?Overlay_WriteSettingsToIni@@YAXH@Z
_TEXT	SEGMENT
_bOptimizeFileAccess$ = 8				; size = 4
?Overlay_WriteSettingsToIni@@YAXH@Z PROC		; Overlay_WriteSettingsToIni, COMDAT

; 1665 : {

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

; 1666 :     OverlaySettingsHolder.WriteToIni(bOptimizeFileAccess);

  00003	8b 45 08	 mov	 eax, DWORD PTR _bOptimizeFileAccess$[ebp]
  00006	50		 push	 eax
  00007	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlaySettingsHolder@@3VCSettingsHolder@@A ; OverlaySettingsHolder
  0000c	e8 00 00 00 00	 call	 ?WriteToIni@CSettingsHolder@@QAEXH@Z ; CSettingsHolder::WriteToIni

; 1667 : }

  00011	5d		 pop	 ebp
  00012	c3		 ret	 0
?Overlay_WriteSettingsToIni@@YAXH@Z ENDP		; Overlay_WriteSettingsToIni
_TEXT	ENDS
PUBLIC	?Overlay_ColorKey_OnChange@COverlayOutput@@CAHJ@Z ; COverlayOutput::Overlay_ColorKey_OnChange
; Function compile flags: /Odtp
;	COMDAT ?Overlay_ColorKey_OnChange@COverlayOutput@@CAHJ@Z
_TEXT	SEGMENT
tv66 = -4						; size = 4
_NewValue$ = 8						; size = 4
?Overlay_ColorKey_OnChange@COverlayOutput@@CAHJ@Z PROC	; COverlayOutput::Overlay_ColorKey_OnChange, COMDAT

; 1390 : {

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

; 1391 :     OverlayOutputInstance.g_OverlayColor = (COLORREF)NewValue;

  00004	8b 45 08	 mov	 eax, DWORD PTR _NewValue$[ebp]
  00007	a3 44 02 00 00	 mov	 DWORD PTR ?OverlayOutputInstance@@3VCOverlayOutput@@A+580, eax

; 1392 :     if(GetActiveOutput()->Type() == OUT_OVERLAY)

  0000c	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  00011	89 45 fc	 mov	 DWORD PTR tv66[ebp], eax
  00014	8b 4d fc	 mov	 ecx, DWORD PTR tv66[ebp]
  00017	8b 11		 mov	 edx, DWORD PTR [ecx]
  00019	8b 4d fc	 mov	 ecx, DWORD PTR tv66[ebp]
  0001c	8b 42 60	 mov	 eax, DWORD PTR [edx+96]
  0001f	ff d0		 call	 eax
  00021	85 c0		 test	 eax, eax
  00023	75 0c		 jne	 SHORT $LN1@Overlay_Co@6

; 1393 :     {
; 1394 :         WorkoutOverlaySize(TRUE);

  00025	6a 01		 push	 1
  00027	6a 01		 push	 1
  00029	e8 00 00 00 00	 call	 ?WorkoutOverlaySize@@YAXHH@Z ; WorkoutOverlaySize
  0002e	83 c4 08	 add	 esp, 8
$LN1@Overlay_Co@6:

; 1395 :     }
; 1396 :     return FALSE;

  00031	33 c0		 xor	 eax, eax

; 1397 : }

  00033	8b e5		 mov	 esp, ebp
  00035	5d		 pop	 ebp
  00036	c3		 ret	 0
?Overlay_ColorKey_OnChange@COverlayOutput@@CAHJ@Z ENDP	; COverlayOutput::Overlay_ColorKey_OnChange
_TEXT	ENDS
PUBLIC	?Overlay_Copy_Extra@COverlayOutput@@QAEXPAUTDeinterlaceInfo@@@Z ; COverlayOutput::Overlay_Copy_Extra
; Function compile flags: /Odtp
;	COMDAT ?Overlay_Copy_Extra@COverlayOutput@@QAEXPAUTDeinterlaceInfo@@@Z
_TEXT	SEGMENT
_this$ = -20						; size = 4
_i$143321 = -16						; size = 4
_ToPtr$143320 = -12					; size = 4
_FromPtr$ = -8						; size = 4
_FromPitch$ = -4					; size = 4
_pInfo$ = 8						; size = 4
?Overlay_Copy_Extra@COverlayOutput@@QAEXPAUTDeinterlaceInfo@@@Z PROC ; COverlayOutput::Overlay_Copy_Extra, COMDAT
; _this$ = ecx

; 1205 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 14	 sub	 esp, 20			; 00000014H
  00006	89 4d ec	 mov	 DWORD PTR _this$[ebp], ecx

; 1206 :     Overlay_Lock_Extra_Buffer(pInfo);

  00009	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  0000c	50		 push	 eax
  0000d	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  00010	e8 00 00 00 00	 call	 ?Overlay_Lock_Extra_Buffer@COverlayOutput@@QAEHPAUTDeinterlaceInfo@@@Z ; COverlayOutput::Overlay_Lock_Extra_Buffer

; 1207 :     BYTE* FromPtr = pInfo->Overlay;

  00015	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  00018	8b 51 2c	 mov	 edx, DWORD PTR [ecx+44]
  0001b	89 55 f8	 mov	 DWORD PTR _FromPtr$[ebp], edx

; 1208 :     long FromPitch = pInfo->OverlayPitch;

  0001e	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  00021	8b 48 44	 mov	 ecx, DWORD PTR [eax+68]
  00024	89 4d fc	 mov	 DWORD PTR _FromPitch$[ebp], ecx

; 1209 :     // careful as we need to ensure this is always unlocked
; 1210 :     if(Overlay_Lock_Back_Buffer(pInfo, FALSE))

  00027	6a 00		 push	 0
  00029	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  0002c	52		 push	 edx
  0002d	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  00030	8b 10		 mov	 edx, DWORD PTR [eax]
  00032	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  00035	8b 42 40	 mov	 eax, DWORD PTR [edx+64]
  00038	ff d0		 call	 eax
  0003a	85 c0		 test	 eax, eax
  0003c	74 68		 je	 SHORT $LN5@Overlay_Co@7

; 1211 :     {
; 1212 :         BYTE* ToPtr = pInfo->Overlay;

  0003e	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  00041	8b 51 2c	 mov	 edx, DWORD PTR [ecx+44]
  00044	89 55 f4	 mov	 DWORD PTR _ToPtr$143320[ebp], edx

; 1213 : 
; 1214 :         for(int i(0) ; i < pInfo->FrameHeight; ++i)

  00047	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _i$143321[ebp], 0
  0004e	eb 09		 jmp	 SHORT $LN3@Overlay_Co@7
$LN2@Overlay_Co@7:
  00050	8b 45 f0	 mov	 eax, DWORD PTR _i$143321[ebp]
  00053	83 c0 01	 add	 eax, 1
  00056	89 45 f0	 mov	 DWORD PTR _i$143321[ebp], eax
$LN3@Overlay_Co@7:
  00059	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  0005c	8b 55 f0	 mov	 edx, DWORD PTR _i$143321[ebp]
  0005f	3b 51 50	 cmp	 edx, DWORD PTR [ecx+80]
  00062	7d 31		 jge	 SHORT $LN1@Overlay_Co@7

; 1215 :         {
; 1216 :             pInfo->pMemcpy(ToPtr, FromPtr, pInfo->LineLength);

  00064	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  00067	8b 48 48	 mov	 ecx, DWORD PTR [eax+72]
  0006a	51		 push	 ecx
  0006b	8b 55 f8	 mov	 edx, DWORD PTR _FromPtr$[ebp]
  0006e	52		 push	 edx
  0006f	8b 45 f4	 mov	 eax, DWORD PTR _ToPtr$143320[ebp]
  00072	50		 push	 eax
  00073	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  00076	8b 51 60	 mov	 edx, DWORD PTR [ecx+96]
  00079	ff d2		 call	 edx
  0007b	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1217 :             FromPtr += FromPitch;

  0007e	8b 45 f8	 mov	 eax, DWORD PTR _FromPtr$[ebp]
  00081	03 45 fc	 add	 eax, DWORD PTR _FromPitch$[ebp]
  00084	89 45 f8	 mov	 DWORD PTR _FromPtr$[ebp], eax

; 1218 :             ToPtr += pInfo->OverlayPitch;

  00087	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  0008a	8b 55 f4	 mov	 edx, DWORD PTR _ToPtr$143320[ebp]
  0008d	03 51 44	 add	 edx, DWORD PTR [ecx+68]
  00090	89 55 f4	 mov	 DWORD PTR _ToPtr$143320[ebp], edx

; 1219 :         }

  00093	eb bb		 jmp	 SHORT $LN2@Overlay_Co@7
$LN1@Overlay_Co@7:

; 1220 :         DO_EMMS;

  00095	0f 77		 emms

; 1221 : 
; 1222 :         Overlay_Unlock_Back_Buffer(FALSE);

  00097	6a 00		 push	 0
  00099	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  0009c	8b 10		 mov	 edx, DWORD PTR [eax]
  0009e	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  000a1	8b 42 44	 mov	 eax, DWORD PTR [edx+68]
  000a4	ff d0		 call	 eax
$LN5@Overlay_Co@7:

; 1223 :     }
; 1224 : }

  000a6	8b e5		 mov	 esp, ebp
  000a8	5d		 pop	 ebp
  000a9	c2 04 00	 ret	 4
?Overlay_Copy_Extra@COverlayOutput@@QAEXPAUTDeinterlaceInfo@@@Z ENDP ; COverlayOutput::Overlay_Copy_Extra
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?Overlay_Lock_Back_Buffer@COverlayOutput@@UAEHPAUTDeinterlaceInfo@@H@Z
_TEXT	SEGMENT
_this$ = -120						; size = 4
_ddrval$ = -116						; size = 4
_SurfaceDesc$ = -112					; size = 108
_pInfo$ = 8						; size = 4
_bUseExtraBuffer$ = 12					; size = 4
?Overlay_Lock_Back_Buffer@COverlayOutput@@UAEHPAUTDeinterlaceInfo@@H@Z PROC ; COverlayOutput::Overlay_Lock_Back_Buffer, COMDAT
; _this$ = ecx

; 993  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 78	 sub	 esp, 120		; 00000078H
  00006	89 4d 88	 mov	 DWORD PTR _this$[ebp], ecx

; 994  :     if(bUseExtraBuffer && lpExtraMemoryForFilters != NULL)

  00009	83 7d 0c 00	 cmp	 DWORD PTR _bUseExtraBuffer$[ebp], 0
  0000d	74 1d		 je	 SHORT $LN11@Overlay_Lo@6
  0000f	8b 45 88	 mov	 eax, DWORD PTR _this$[ebp]
  00012	83 b8 3c 02 00
	00 00		 cmp	 DWORD PTR [eax+572], 0
  00019	74 11		 je	 SHORT $LN11@Overlay_Lo@6

; 995  :     {
; 996  :         return Overlay_Lock_Extra_Buffer(pInfo);

  0001b	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  0001e	51		 push	 ecx
  0001f	8b 4d 88	 mov	 ecx, DWORD PTR _this$[ebp]
  00022	e8 00 00 00 00	 call	 ?Overlay_Lock_Extra_Buffer@COverlayOutput@@QAEHPAUTDeinterlaceInfo@@@Z ; COverlayOutput::Overlay_Lock_Extra_Buffer
  00027	e9 c2 01 00 00	 jmp	 $LN12@Overlay_Lo@6
$LN11@Overlay_Lo@6:

; 997  :     }
; 998  :     if(lpDDOverlay == NULL || lpDDOverlayBack == NULL)

  0002c	8b 55 88	 mov	 edx, DWORD PTR _this$[ebp]
  0002f	83 ba 34 02 00
	00 00		 cmp	 DWORD PTR [edx+564], 0
  00036	74 0c		 je	 SHORT $LN9@Overlay_Lo@6
  00038	8b 45 88	 mov	 eax, DWORD PTR _this$[ebp]
  0003b	83 b8 38 02 00
	00 00		 cmp	 DWORD PTR [eax+568], 0
  00042	75 16		 jne	 SHORT $LN10@Overlay_Lo@6
$LN9@Overlay_Lo@6:

; 999  :     {
; 1000 :         LOG(1, _T("Overlay has been deleted"));

  00044	68 00 00 00 00	 push	 OFFSET ??_C@_1DC@LOEJMHFN@?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAh?$AAa?$AAs?$AA?5?$AAb?$AAe?$AAe?$AAn?$AA?5?$AAd?$AAe?$AAl?$AAe?$AAt?$AAe?$AAd?$AA?$AA@
  00049	6a 01		 push	 1
  0004b	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00050	83 c4 08	 add	 esp, 8

; 1001 :         return FALSE;

  00053	33 c0		 xor	 eax, eax
  00055	e9 94 01 00 00	 jmp	 $LN12@Overlay_Lo@6
$LN10@Overlay_Lo@6:

; 1002 :     }
; 1003 : 
; 1004 :     EnterCriticalSection(&hDDCritSect);

  0005a	8b 4d 88	 mov	 ecx, DWORD PTR _this$[ebp]
  0005d	81 c1 18 02 00
	00		 add	 ecx, 536		; 00000218H
  00063	51		 push	 ecx
  00064	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1005 : 
; 1006 :     HRESULT         ddrval;
; 1007 :     static DWORD    dwFlags = DDLOCK_WAIT | DDLOCK_NOSYSLOCK;
; 1008 :     DDSURFACEDESC   SurfaceDesc;
; 1009 : 
; 1010 :     if (FlipResult == DDERR_WASSTILLDRAWING)             // prev flip was busy?

  0006a	8b 55 88	 mov	 edx, DWORD PTR _this$[ebp]
  0006d	81 ba a8 02 00
	00 1c 02 76 88	 cmp	 DWORD PTR [edx+680], -2005532132 ; 8876021cH
  00077	75 5c		 jne	 SHORT $LN8@Overlay_Lo@6

; 1011 :     {
; 1012 :         ddrval = lpDDOverlay->Flip(NULL, DDFLIP_DONOTWAIT);

  00079	6a 20		 push	 32			; 00000020H
  0007b	6a 00		 push	 0
  0007d	8b 45 88	 mov	 eax, DWORD PTR _this$[ebp]
  00080	8b 88 34 02 00
	00		 mov	 ecx, DWORD PTR [eax+564]
  00086	8b 55 88	 mov	 edx, DWORD PTR _this$[ebp]
  00089	8b 82 34 02 00
	00		 mov	 eax, DWORD PTR [edx+564]
  0008f	8b 09		 mov	 ecx, DWORD PTR [ecx]
  00091	50		 push	 eax
  00092	8b 51 2c	 mov	 edx, DWORD PTR [ecx+44]
  00095	ff d2		 call	 edx
  00097	89 45 8c	 mov	 DWORD PTR _ddrval$[ebp], eax

; 1013 :         if(ddrval == DDERR_SURFACELOST)

  0009a	81 7d 8c c2 01
	76 88		 cmp	 DWORD PTR _ddrval$[ebp], -2005532222 ; 887601c2H
  000a1	75 25		 jne	 SHORT $LN7@Overlay_Lo@6

; 1014 :         {
; 1015 :             LOG(1, _T("Flip before lock failed"));

  000a3	68 00 00 00 00	 push	 OFFSET ??_C@_1DA@PIAAKKPA@?$AAF?$AAl?$AAi?$AAp?$AA?5?$AAb?$AAe?$AAf?$AAo?$AAr?$AAe?$AA?5?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?$AA@
  000a8	6a 01		 push	 1
  000aa	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  000af	83 c4 08	 add	 esp, 8

; 1016 :             LeaveCriticalSection(&hDDCritSect);

  000b2	8b 45 88	 mov	 eax, DWORD PTR _this$[ebp]
  000b5	05 18 02 00 00	 add	 eax, 536		; 00000218H
  000ba	50		 push	 eax
  000bb	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1017 :             return FALSE;

  000c1	33 c0		 xor	 eax, eax
  000c3	e9 26 01 00 00	 jmp	 $LN12@Overlay_Lo@6
$LN7@Overlay_Lo@6:

; 1018 :         }
; 1019 :         FlipResult = 0;                 // but no time to try any more

  000c8	8b 4d 88	 mov	 ecx, DWORD PTR _this$[ebp]
  000cb	c7 81 a8 02 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+680], 0
$LN8@Overlay_Lo@6:

; 1020 :     }
; 1021 : 
; 1022 :     memset(&SurfaceDesc, 0x00, sizeof(SurfaceDesc));

  000d5	6a 6c		 push	 108			; 0000006cH
  000d7	6a 00		 push	 0
  000d9	8d 55 90	 lea	 edx, DWORD PTR _SurfaceDesc$[ebp]
  000dc	52		 push	 edx
  000dd	e8 00 00 00 00	 call	 _memset
  000e2	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1023 :     SurfaceDesc.dwSize = sizeof(SurfaceDesc);

  000e5	c7 45 90 6c 00
	00 00		 mov	 DWORD PTR _SurfaceDesc$[ebp], 108 ; 0000006cH
$LN6@Overlay_Lo@6:

; 1024 :     while(ddrval = lpDDOverlayBack->Lock(NULL, &SurfaceDesc, dwFlags & !DDLOCK_WAIT, NULL) == DDERR_WASSTILLDRAWING)

  000ec	6a 00		 push	 0
  000ee	a1 00 00 00 00	 mov	 eax, DWORD PTR ?dwFlags@?7??Overlay_Lock_Back_Buffer@COverlayOutput@@UAEHPAUTDeinterlaceInfo@@H@Z@4KA
  000f3	83 e0 00	 and	 eax, 0
  000f6	50		 push	 eax
  000f7	8d 4d 90	 lea	 ecx, DWORD PTR _SurfaceDesc$[ebp]
  000fa	51		 push	 ecx
  000fb	6a 00		 push	 0
  000fd	8b 55 88	 mov	 edx, DWORD PTR _this$[ebp]
  00100	8b 82 38 02 00
	00		 mov	 eax, DWORD PTR [edx+568]
  00106	8b 4d 88	 mov	 ecx, DWORD PTR _this$[ebp]
  00109	8b 91 38 02 00
	00		 mov	 edx, DWORD PTR [ecx+568]
  0010f	8b 00		 mov	 eax, DWORD PTR [eax]
  00111	52		 push	 edx
  00112	8b 48 64	 mov	 ecx, DWORD PTR [eax+100]
  00115	ff d1		 call	 ecx
  00117	33 d2		 xor	 edx, edx
  00119	3d 1c 02 76 88	 cmp	 eax, -2005532132	; 8876021cH
  0011e	0f 94 c2	 sete	 dl
  00121	89 55 8c	 mov	 DWORD PTR _ddrval$[ebp], edx
  00124	83 7d 8c 00	 cmp	 DWORD PTR _ddrval$[ebp], 0
  00128	74 0a		 je	 SHORT $LN5@Overlay_Lo@6

; 1025 :     {
; 1026 :         // RM 7-27-7: We are probably waiting for the vertical sync.
; 1027 :         // To prevent spending useless cpu cycles waiting for the vsync we release control
; 1028 :         // so other applications can do their thing. This not only reduces cpu usage but
; 1029 :         // hopefully it reduces frame dropping as well since there is never such a large
; 1030 :         // amount of time to spare then at this moment.
; 1031 :         Sleep(1);

  0012a	6a 01		 push	 1
  0012c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__Sleep@4

; 1032 :     }

  00132	eb b8		 jmp	 SHORT $LN6@Overlay_Lo@6
$LN5@Overlay_Lo@6:

; 1033 : 
; 1034 :     // fix suggested by christoph for NT 4.0 sp6
; 1035 :     if(ddrval == E_INVALIDARG && (dwFlags & DDLOCK_NOSYSLOCK))

  00134	81 7d 8c 57 00
	07 80		 cmp	 DWORD PTR _ddrval$[ebp], -2147024809 ; 80070057H
  0013b	75 52		 jne	 SHORT $LN4@Overlay_Lo@6
  0013d	a1 00 00 00 00	 mov	 eax, DWORD PTR ?dwFlags@?7??Overlay_Lock_Back_Buffer@COverlayOutput@@UAEHPAUTDeinterlaceInfo@@H@Z@4KA
  00142	25 00 08 00 00	 and	 eax, 2048		; 00000800H
  00147	74 46		 je	 SHORT $LN4@Overlay_Lo@6

; 1036 :     {
; 1037 :         //remove flag
; 1038 :         ddrval = lpDDOverlayBack->Lock(NULL, &SurfaceDesc, DDLOCK_WAIT, NULL);

  00149	6a 00		 push	 0
  0014b	6a 01		 push	 1
  0014d	8d 4d 90	 lea	 ecx, DWORD PTR _SurfaceDesc$[ebp]
  00150	51		 push	 ecx
  00151	6a 00		 push	 0
  00153	8b 55 88	 mov	 edx, DWORD PTR _this$[ebp]
  00156	8b 82 38 02 00
	00		 mov	 eax, DWORD PTR [edx+568]
  0015c	8b 4d 88	 mov	 ecx, DWORD PTR _this$[ebp]
  0015f	8b 91 38 02 00
	00		 mov	 edx, DWORD PTR [ecx+568]
  00165	8b 00		 mov	 eax, DWORD PTR [eax]
  00167	52		 push	 edx
  00168	8b 48 64	 mov	 ecx, DWORD PTR [eax+100]
  0016b	ff d1		 call	 ecx
  0016d	89 45 8c	 mov	 DWORD PTR _ddrval$[ebp], eax

; 1039 :         if( SUCCEEDED(ddrval) )

  00170	83 7d 8c 00	 cmp	 DWORD PTR _ddrval$[ebp], 0
  00174	7c 19		 jl	 SHORT $LN4@Overlay_Lo@6

; 1040 :         {
; 1041 :             //remember for next time
; 1042 :             dwFlags = DDLOCK_WAIT;

  00176	c7 05 00 00 00
	00 01 00 00 00	 mov	 DWORD PTR ?dwFlags@?7??Overlay_Lock_Back_Buffer@COverlayOutput@@UAEHPAUTDeinterlaceInfo@@H@Z@4KA, 1

; 1043 :             LOG(1, _T("Switched to not using NOSYSLOCK"));

  00180	68 00 00 00 00	 push	 OFFSET ??_C@_1EA@OBDHJAJF@?$AAS?$AAw?$AAi?$AAt?$AAc?$AAh?$AAe?$AAd?$AA?5?$AAt?$AAo?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAu?$AAs?$AAi?$AAn?$AAg?$AA?5?$AAN?$AAO?$AAS?$AAY?$AAS?$AAL?$AAO?$AAC?$AAK?$AA?$AA@
  00185	6a 01		 push	 1
  00187	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  0018c	83 c4 08	 add	 esp, 8
$LN4@Overlay_Lo@6:

; 1044 :         }
; 1045 :     }
; 1046 : 
; 1047 :     if(FAILED(ddrval))

  0018f	83 7d 8c 00	 cmp	 DWORD PTR _ddrval$[ebp], 0
  00193	7d 26		 jge	 SHORT $LN2@Overlay_Lo@6

; 1048 :     {
; 1049 :         LOG(1, _T("Lock failed %8x"), ddrval);

  00195	8b 55 8c	 mov	 edx, DWORD PTR _ddrval$[ebp]
  00198	52		 push	 edx
  00199	68 00 00 00 00	 push	 OFFSET ??_C@_1CA@FOFBHGNI@?$AAL?$AAo?$AAc?$AAk?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5?$AA?$CF?$AA8?$AAx?$AA?$AA@
  0019e	6a 01		 push	 1
  001a0	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  001a5	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1050 :         LeaveCriticalSection(&hDDCritSect);

  001a8	8b 45 88	 mov	 eax, DWORD PTR _this$[ebp]
  001ab	05 18 02 00 00	 add	 eax, 536		; 00000218H
  001b0	50		 push	 eax
  001b1	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1051 :         return FALSE;

  001b7	33 c0		 xor	 eax, eax
  001b9	eb 33		 jmp	 SHORT $LN12@Overlay_Lo@6
$LN2@Overlay_Lo@6:

; 1052 :     }
; 1053 : 
; 1054 :     pInfo->OverlayPitch = SurfaceDesc.lPitch;         // Set new pitch, may change

  001bb	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  001be	8b 55 a0	 mov	 edx, DWORD PTR _SurfaceDesc$[ebp+16]
  001c1	89 51 44	 mov	 DWORD PTR [ecx+68], edx

; 1055 :     pInfo->Overlay = (BYTE*)SurfaceDesc.lpSurface;

  001c4	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  001c7	8b 4d b4	 mov	 ecx, DWORD PTR _SurfaceDesc$[ebp+36]
  001ca	89 48 2c	 mov	 DWORD PTR [eax+44], ecx

; 1056 :     if(pInfo->Overlay == NULL)

  001cd	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  001d0	83 7a 2c 00	 cmp	 DWORD PTR [edx+44], 0
  001d4	75 13		 jne	 SHORT $LN1@Overlay_Lo@6

; 1057 :     {
; 1058 :         LeaveCriticalSection(&hDDCritSect);

  001d6	8b 45 88	 mov	 eax, DWORD PTR _this$[ebp]
  001d9	05 18 02 00 00	 add	 eax, 536		; 00000218H
  001de	50		 push	 eax
  001df	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1059 :         return FALSE;

  001e5	33 c0		 xor	 eax, eax
  001e7	eb 05		 jmp	 SHORT $LN12@Overlay_Lo@6
$LN1@Overlay_Lo@6:

; 1060 :     }
; 1061 : 
; 1062 :     // stay in critical section
; 1063 :     return TRUE;

  001e9	b8 01 00 00 00	 mov	 eax, 1
$LN12@Overlay_Lo@6:

; 1064 : }

  001ee	8b e5		 mov	 esp, ebp
  001f0	5d		 pop	 ebp
  001f1	c2 08 00	 ret	 8
?Overlay_Lock_Back_Buffer@COverlayOutput@@UAEHPAUTDeinterlaceInfo@@H@Z ENDP ; COverlayOutput::Overlay_Lock_Back_Buffer
_TEXT	ENDS
PUBLIC	__$ArrayPad$
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Overlay_Create@COverlayOutput@@UAEHXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Overlay_Create@COverlayOutput@@UAEHXZ$0
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Overlay_Create@COverlayOutput@@UAEHXZ$1
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Overlay_Create@COverlayOutput@@UAEHXZ$2
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Overlay_Create@COverlayOutput@@UAEHXZ$3
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Overlay_Create@COverlayOutput@@UAEHXZ$4
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Overlay_Create@COverlayOutput@@UAEHXZ$5
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Overlay_Create@COverlayOutput@@UAEHXZ$6
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Overlay_Create@COverlayOutput@@UAEHXZ$7
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Overlay_Create@COverlayOutput@@UAEHXZ$8
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Overlay_Create@COverlayOutput@@UAEHXZ$9
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Overlay_Create@COverlayOutput@@UAEHXZ$10
__ehfuncinfo$?Overlay_Create@COverlayOutput@@UAEHXZ DD 019930522H
	DD	0bH
	DD	FLAT:__unwindtable$?Overlay_Create@COverlayOutput@@UAEHXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?Overlay_Create@COverlayOutput@@UAEHXZ
_TEXT	SEGMENT
tv237 = -1920						; size = 4
tv159 = -1916						; size = 4
tv155 = -1912						; size = 4
_this$ = -1908						; size = 4
$T347856 = -1904					; size = 28
$T347855 = -1876					; size = 28
$T347854 = -1848					; size = 28
$T347853 = -1820					; size = 28
$T347852 = -1792					; size = 28
$T347851 = -1764					; size = 28
$T347850 = -1736					; size = 28
$T347849 = -1708					; size = 28
$T347848 = -1680					; size = 28
$T347847 = -1652					; size = 28
$T347842 = -1624					; size = 28
_szErrorMsg$143112 = -1596				; size = 400
_maxBuffers$ = -1192					; size = 4
_ddrval$ = -1188					; size = 4
_caps$ = -1184						; size = 4
_msg$ = -1180						; size = 1000
__$ArrayPad$ = -176					; size = 4
_minBuffers$ = -172					; size = 4
_numBuffers$ = -168					; size = 4
_SurfaceDesc$ = -164					; size = 108
_PixelFormat$ = -48					; size = 32
_loopcounter$ = -16					; size = 4
__$EHRec$ = -12						; size = 12
?Overlay_Create@COverlayOutput@@UAEHXZ PROC		; COverlayOutput::Overlay_Create, COMDAT
; _this$ = ecx

; 520  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?Overlay_Create@COverlayOutput@@UAEHXZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	81 ec 74 07 00
	00		 sub	 esp, 1908		; 00000774H
  00017	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001c	33 c5		 xor	 eax, ebp
  0001e	89 85 50 ff ff
	ff		 mov	 DWORD PTR __$ArrayPad$[ebp], eax
  00024	56		 push	 esi
  00025	57		 push	 edi
  00026	50		 push	 eax
  00027	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0002a	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00030	89 8d 8c f8 ff
	ff		 mov	 DWORD PTR _this$[ebp], ecx

; 521  :     DDSURFACEDESC SurfaceDesc;
; 522  :     DDPIXELFORMAT PixelFormat;
; 523  :     HRESULT ddrval;
; 524  :     DDSCAPS caps;
; 525  :     int minBuffers, maxBuffers, numBuffers;
; 526  :     TCHAR msg[500];
; 527  :     int loopcounter = 0;

  00036	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _loopcounter$[ebp], 0

; 528  : 
; 529  :     if (lpDDOverlay)

  0003d	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00043	83 b8 34 02 00
	00 00		 cmp	 DWORD PTR [eax+564], 0
  0004a	74 07		 je	 SHORT $LN39@Overlay_Cr

; 530  :     {
; 531  :         return FALSE;

  0004c	33 c0		 xor	 eax, eax
  0004e	e9 e0 0c 00 00	 jmp	 $LN40@Overlay_Cr
$LN39@Overlay_Cr:

; 532  :     }
; 533  : 
; 534  :     EnterCriticalSection(&hDDCritSect);

  00053	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00059	81 c1 18 02 00
	00		 add	 ecx, 536		; 00000218H
  0005f	51		 push	 ecx
  00060	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 535  : 
; 536  :     // 2000-10-31 Moved by Mark Rejhon
; 537  :     // Attempt to create primary surface before overlay, in this module,
; 538  :     // because we may have destroyed the primary surface during a computer
; 539  :     // resolution change.
; 540  :     memset(&SurfaceDesc, 0x00, sizeof(SurfaceDesc));

  00066	6a 6c		 push	 108			; 0000006cH
  00068	6a 00		 push	 0
  0006a	8d 95 5c ff ff
	ff		 lea	 edx, DWORD PTR _SurfaceDesc$[ebp]
  00070	52		 push	 edx
  00071	e8 00 00 00 00	 call	 _memset
  00076	83 c4 0c	 add	 esp, 12			; 0000000cH

; 541  :     SurfaceDesc.dwSize = sizeof(SurfaceDesc);

  00079	c7 85 5c ff ff
	ff 6c 00 00 00	 mov	 DWORD PTR _SurfaceDesc$[ebp], 108 ; 0000006cH

; 542  :     SurfaceDesc.dwFlags = DDSD_CAPS;

  00083	c7 85 60 ff ff
	ff 01 00 00 00	 mov	 DWORD PTR _SurfaceDesc$[ebp+4], 1

; 543  :     SurfaceDesc.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;

  0008d	c7 45 c4 00 02
	00 00		 mov	 DWORD PTR _SurfaceDesc$[ebp+104], 512 ; 00000200H

; 544  :     ddrval = lpDD->CreateSurface(&SurfaceDesc, &lpDDSurface, NULL);

  00094	6a 00		 push	 0
  00096	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  0009c	05 30 02 00 00	 add	 eax, 560		; 00000230H
  000a1	50		 push	 eax
  000a2	8d 8d 5c ff ff
	ff		 lea	 ecx, DWORD PTR _SurfaceDesc$[ebp]
  000a8	51		 push	 ecx
  000a9	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  000af	8b 82 b0 02 00
	00		 mov	 eax, DWORD PTR [edx+688]
  000b5	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  000bb	8b 91 b0 02 00
	00		 mov	 edx, DWORD PTR [ecx+688]
  000c1	8b 00		 mov	 eax, DWORD PTR [eax]
  000c3	52		 push	 edx
  000c4	8b 48 18	 mov	 ecx, DWORD PTR [eax+24]
  000c7	ff d1		 call	 ecx
  000c9	89 85 5c fb ff
	ff		 mov	 DWORD PTR _ddrval$[ebp], eax
$LN38@Overlay_Cr:

; 545  : 
; 546  :     // handle the case where we are in a funny in between state
; 547  :     // by looping, this happens sometimes with Ctrl-alt-delete on
; 548  :     // some graphics cards.
; 549  :     while(ddrval == DDERR_UNSUPPORTEDMODE && loopcounter++ < 20)

  000cf	81 bd 5c fb ff
	ff 4e 02 76 88	 cmp	 DWORD PTR _ddrval$[ebp], -2005532082 ; 8876024eH
  000d9	75 57		 jne	 SHORT $LN37@Overlay_Cr
  000db	8b 55 f0	 mov	 edx, DWORD PTR _loopcounter$[ebp]
  000de	8b 45 f0	 mov	 eax, DWORD PTR _loopcounter$[ebp]
  000e1	83 c0 01	 add	 eax, 1
  000e4	89 45 f0	 mov	 DWORD PTR _loopcounter$[ebp], eax
  000e7	83 fa 14	 cmp	 edx, 20			; 00000014H
  000ea	7d 46		 jge	 SHORT $LN37@Overlay_Cr

; 550  :     {
; 551  :         Sleep(100);

  000ec	6a 64		 push	 100			; 00000064H
  000ee	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__Sleep@4

; 552  :         ddrval = lpDD->CreateSurface(&SurfaceDesc, &lpDDSurface, NULL);

  000f4	6a 00		 push	 0
  000f6	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  000fc	81 c1 30 02 00
	00		 add	 ecx, 560		; 00000230H
  00102	51		 push	 ecx
  00103	8d 95 5c ff ff
	ff		 lea	 edx, DWORD PTR _SurfaceDesc$[ebp]
  00109	52		 push	 edx
  0010a	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00110	8b 88 b0 02 00
	00		 mov	 ecx, DWORD PTR [eax+688]
  00116	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  0011c	8b 82 b0 02 00
	00		 mov	 eax, DWORD PTR [edx+688]
  00122	8b 09		 mov	 ecx, DWORD PTR [ecx]
  00124	50		 push	 eax
  00125	8b 51 18	 mov	 edx, DWORD PTR [ecx+24]
  00128	ff d2		 call	 edx
  0012a	89 85 5c fb ff
	ff		 mov	 DWORD PTR _ddrval$[ebp], eax

; 553  :     }

  00130	eb 9d		 jmp	 SHORT $LN38@Overlay_Cr
$LN37@Overlay_Cr:

; 554  :     if (FAILED(ddrval))

  00132	83 bd 5c fb ff
	ff 00		 cmp	 DWORD PTR _ddrval$[ebp], 0
  00139	7d 79		 jge	 SHORT $LN36@Overlay_Cr

; 555  :     {
; 556  :         _stprintf(msg, _T("Error creating primary surface: %x"), ddrval);

  0013b	8b 85 5c fb ff
	ff		 mov	 eax, DWORD PTR _ddrval$[ebp]
  00141	50		 push	 eax
  00142	68 00 00 00 00	 push	 OFFSET ??_C@_1EG@KBAEPAML@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAi?$AAn?$AAg?$AA?5?$AAp?$AAr?$AAi?$AAm?$AAa?$AAr?$AAy?$AA?5?$AAs?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?3?$AA?5@
  00147	8d 8d 64 fb ff
	ff		 lea	 ecx, DWORD PTR _msg$[ebp]
  0014d	51		 push	 ecx
  0014e	e8 00 00 00 00	 call	 __swprintf
  00153	83 c4 0c	 add	 esp, 12			; 0000000cH

; 557  :         RealErrorBox(msg);

  00156	8d 95 64 fb ff
	ff		 lea	 edx, DWORD PTR _msg$[ebp]
  0015c	52		 push	 edx
  0015d	8d 8d a8 f9 ff
	ff		 lea	 ecx, DWORD PTR $T347842[ebp]
  00163	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> >
  00168	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0016f	8d 85 a8 f9 ff
	ff		 lea	 eax, DWORD PTR $T347842[ebp]
  00175	50		 push	 eax
  00176	68 2d 02 00 00	 push	 557			; 0000022dH
  0017b	68 00 00 00 00	 push	 OFFSET ??_C@_1CI@CKGCBFDK@?$AA?4?$AA?2?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  00180	e8 00 00 00 00	 call	 ?_RealErrorBox@@YAXPB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _RealErrorBox
  00185	83 c4 0c	 add	 esp, 12			; 0000000cH
  00188	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0018f	8d 8d a8 f9 ff
	ff		 lea	 ecx, DWORD PTR $T347842[ebp]
  00195	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> >

; 558  :         LeaveCriticalSection(&hDDCritSect);

  0019a	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  001a0	81 c1 18 02 00
	00		 add	 ecx, 536		; 00000218H
  001a6	51		 push	 ecx
  001a7	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 559  :         return (FALSE);

  001ad	33 c0		 xor	 eax, eax
  001af	e9 7f 0b 00 00	 jmp	 $LN40@Overlay_Cr
$LN36@Overlay_Cr:

; 560  :     }
; 561  : 
; 562  :     memset(&PixelFormat, 0x00, sizeof(PixelFormat));

  001b4	6a 20		 push	 32			; 00000020H
  001b6	6a 00		 push	 0
  001b8	8d 55 d0	 lea	 edx, DWORD PTR _PixelFormat$[ebp]
  001bb	52		 push	 edx
  001bc	e8 00 00 00 00	 call	 _memset
  001c1	83 c4 0c	 add	 esp, 12			; 0000000cH

; 563  :     PixelFormat.dwSize = sizeof(DDPIXELFORMAT);

  001c4	c7 45 d0 20 00
	00 00		 mov	 DWORD PTR _PixelFormat$[ebp], 32 ; 00000020H

; 564  :     if (bIsRGB)

  001cb	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  001d1	83 b8 ac 02 00
	00 00		 cmp	 DWORD PTR [eax+684], 0
  001d8	74 25		 je	 SHORT $LN35@Overlay_Cr

; 565  :     {
; 566  :         PixelFormat.dwFlags = DDPF_RGB;

  001da	c7 45 d4 40 00
	00 00		 mov	 DWORD PTR _PixelFormat$[ebp+4], 64 ; 00000040H

; 567  :         PixelFormat.dwRGBBitCount = 16;

  001e1	c7 45 dc 10 00
	00 00		 mov	 DWORD PTR _PixelFormat$[ebp+12], 16 ; 00000010H

; 568  :         PixelFormat.dwRBitMask = 0xf800;

  001e8	c7 45 e0 00 f8
	00 00		 mov	 DWORD PTR _PixelFormat$[ebp+16], 63488 ; 0000f800H

; 569  :         PixelFormat.dwGBitMask = 0x07e0;

  001ef	c7 45 e4 e0 07
	00 00		 mov	 DWORD PTR _PixelFormat$[ebp+20], 2016 ; 000007e0H

; 570  :         PixelFormat.dwBBitMask = 0x001f;

  001f6	c7 45 e8 1f 00
	00 00		 mov	 DWORD PTR _PixelFormat$[ebp+24], 31 ; 0000001fH

; 571  :     }
; 572  :     else

  001fd	eb 15		 jmp	 SHORT $LN34@Overlay_Cr
$LN35@Overlay_Cr:

; 573  :     {
; 574  :         PixelFormat.dwFlags = DDPF_FOURCC;

  001ff	c7 45 d4 04 00
	00 00		 mov	 DWORD PTR _PixelFormat$[ebp+4], 4

; 575  :         PixelFormat.dwFourCC = MAKEFOURCC('Y', 'U', 'Y', '2');

  00206	c7 45 d8 59 55
	59 32		 mov	 DWORD PTR _PixelFormat$[ebp+8], 844715353 ; 32595559H

; 576  :         PixelFormat.dwYUVBitCount = 16;

  0020d	c7 45 dc 10 00
	00 00		 mov	 DWORD PTR _PixelFormat$[ebp+12], 16 ; 00000010H
$LN34@Overlay_Cr:

; 577  :     }
; 578  : 
; 579  :     memset(&SurfaceDesc, 0x00, sizeof(SurfaceDesc));

  00214	6a 6c		 push	 108			; 0000006cH
  00216	6a 00		 push	 0
  00218	8d 8d 5c ff ff
	ff		 lea	 ecx, DWORD PTR _SurfaceDesc$[ebp]
  0021e	51		 push	 ecx
  0021f	e8 00 00 00 00	 call	 _memset
  00224	83 c4 0c	 add	 esp, 12			; 0000000cH

; 580  :     SurfaceDesc.dwSize = sizeof(SurfaceDesc);

  00227	c7 85 5c ff ff
	ff 6c 00 00 00	 mov	 DWORD PTR _SurfaceDesc$[ebp], 108 ; 0000006cH

; 581  :     SurfaceDesc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH | DDSD_PIXELFORMAT | DDSD_BACKBUFFERCOUNT;

  00231	c7 85 60 ff ff
	ff 27 10 00 00	 mov	 DWORD PTR _SurfaceDesc$[ebp+4], 4135 ; 00001027H

; 582  :     SurfaceDesc.ddsCaps.dwCaps = DDSCAPS_OVERLAY | DDSCAPS_VIDEOMEMORY | DDSCAPS_FLIP | DDSCAPS_COMPLEX;

  0023b	c7 45 c4 98 40
	00 00		 mov	 DWORD PTR _SurfaceDesc$[ebp+104], 16536 ; 00004098H

; 583  : 
; 584  :     // create a surface big enough to hold the largest resolution supported
; 585  :     // this ensures that we can always have enough space to allow
; 586  :     // Mode changes without recreating the overlay
; 587  :     SurfaceDesc.dwWidth = DSCALER_MAX_WIDTH;

  00242	c7 85 68 ff ff
	ff 00 0f 00 00	 mov	 DWORD PTR _SurfaceDesc$[ebp+12], 3840 ; 00000f00H

; 588  :     SurfaceDesc.dwHeight = DSCALER_MAX_HEIGHT;

  0024c	c7 85 64 ff ff
	ff 70 08 00 00	 mov	 DWORD PTR _SurfaceDesc$[ebp+8], 2160 ; 00000870H

; 589  :     SurfaceDesc.ddpfPixelFormat = PixelFormat;

  00256	b9 08 00 00 00	 mov	 ecx, 8
  0025b	8d 75 d0	 lea	 esi, DWORD PTR _PixelFormat$[ebp]
  0025e	8d 7d a4	 lea	 edi, DWORD PTR _SurfaceDesc$[ebp+72]
  00261	f3 a5		 rep movsd

; 590  : 
; 591  :     // If the user specified a particular back buffer Count, use it.  Otherwise
; 592  :     // try triple buffering and drop down to double buffering, then single
; 593  :     // buffering, if the card doesn't have enough memory.
; 594  :     minBuffers = BackBuffers >= 0 ? BackBuffers : 0;

  00263	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00269	83 ba 48 02 00
	00 00		 cmp	 DWORD PTR [edx+584], 0
  00270	7c 14		 jl	 SHORT $LN42@Overlay_Cr
  00272	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00278	8b 88 48 02 00
	00		 mov	 ecx, DWORD PTR [eax+584]
  0027e	89 8d 88 f8 ff
	ff		 mov	 DWORD PTR tv155[ebp], ecx
  00284	eb 0a		 jmp	 SHORT $LN43@Overlay_Cr
$LN42@Overlay_Cr:
  00286	c7 85 88 f8 ff
	ff 00 00 00 00	 mov	 DWORD PTR tv155[ebp], 0
$LN43@Overlay_Cr:
  00290	8b 95 88 f8 ff
	ff		 mov	 edx, DWORD PTR tv155[ebp]
  00296	89 95 54 ff ff
	ff		 mov	 DWORD PTR _minBuffers$[ebp], edx

; 595  :     maxBuffers = BackBuffers >= 0 ? BackBuffers : 2;

  0029c	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  002a2	83 b8 48 02 00
	00 00		 cmp	 DWORD PTR [eax+584], 0
  002a9	7c 14		 jl	 SHORT $LN44@Overlay_Cr
  002ab	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  002b1	8b 91 48 02 00
	00		 mov	 edx, DWORD PTR [ecx+584]
  002b7	89 95 84 f8 ff
	ff		 mov	 DWORD PTR tv159[ebp], edx
  002bd	eb 0a		 jmp	 SHORT $LN45@Overlay_Cr
$LN44@Overlay_Cr:
  002bf	c7 85 84 f8 ff
	ff 02 00 00 00	 mov	 DWORD PTR tv159[ebp], 2
$LN45@Overlay_Cr:
  002c9	8b 85 84 f8 ff
	ff		 mov	 eax, DWORD PTR tv159[ebp]
  002cf	89 85 58 fb ff
	ff		 mov	 DWORD PTR _maxBuffers$[ebp], eax

; 596  : 
; 597  :     for (numBuffers = maxBuffers; numBuffers >= minBuffers; numBuffers--)

  002d5	8b 8d 58 fb ff
	ff		 mov	 ecx, DWORD PTR _maxBuffers$[ebp]
  002db	89 8d 58 ff ff
	ff		 mov	 DWORD PTR _numBuffers$[ebp], ecx
  002e1	eb 0f		 jmp	 SHORT $LN33@Overlay_Cr
$LN32@Overlay_Cr:
  002e3	8b 95 58 ff ff
	ff		 mov	 edx, DWORD PTR _numBuffers$[ebp]
  002e9	83 ea 01	 sub	 edx, 1
  002ec	89 95 58 ff ff
	ff		 mov	 DWORD PTR _numBuffers$[ebp], edx
$LN33@Overlay_Cr:
  002f2	8b 85 58 ff ff
	ff		 mov	 eax, DWORD PTR _numBuffers$[ebp]
  002f8	3b 85 54 ff ff
	ff		 cmp	 eax, DWORD PTR _minBuffers$[ebp]
  002fe	0f 8c 8a 00 00
	00		 jl	 $LN31@Overlay_Cr

; 598  :     {
; 599  :         SurfaceDesc.dwBackBufferCount = numBuffers;

  00304	8b 8d 58 ff ff
	ff		 mov	 ecx, DWORD PTR _numBuffers$[ebp]
  0030a	89 8d 70 ff ff
	ff		 mov	 DWORD PTR _SurfaceDesc$[ebp+20], ecx

; 600  :         // if we get down to zero back buffers then the flags are different
; 601  :         if(numBuffers == 0)

  00310	83 bd 58 ff ff
	ff 00		 cmp	 DWORD PTR _numBuffers$[ebp], 0
  00317	75 11		 jne	 SHORT $LN30@Overlay_Cr

; 602  :         {
; 603  :             SurfaceDesc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH | DDSD_PIXELFORMAT;

  00319	c7 85 60 ff ff
	ff 07 10 00 00	 mov	 DWORD PTR _SurfaceDesc$[ebp+4], 4103 ; 00001007H

; 604  :             SurfaceDesc.ddsCaps.dwCaps = DDSCAPS_OVERLAY | DDSCAPS_VIDEOMEMORY;

  00323	c7 45 c4 80 40
	00 00		 mov	 DWORD PTR _SurfaceDesc$[ebp+104], 16512 ; 00004080H
$LN30@Overlay_Cr:

; 605  :         }
; 606  :         ddrval = lpDD->CreateSurface(&SurfaceDesc, &lpDDOverlay, NULL);

  0032a	6a 00		 push	 0
  0032c	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00332	81 c2 34 02 00
	00		 add	 edx, 564		; 00000234H
  00338	52		 push	 edx
  00339	8d 85 5c ff ff
	ff		 lea	 eax, DWORD PTR _SurfaceDesc$[ebp]
  0033f	50		 push	 eax
  00340	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00346	8b 91 b0 02 00
	00		 mov	 edx, DWORD PTR [ecx+688]
  0034c	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00352	8b 88 b0 02 00
	00		 mov	 ecx, DWORD PTR [eax+688]
  00358	8b 12		 mov	 edx, DWORD PTR [edx]
  0035a	51		 push	 ecx
  0035b	8b 42 18	 mov	 eax, DWORD PTR [edx+24]
  0035e	ff d0		 call	 eax
  00360	89 85 5c fb ff
	ff		 mov	 DWORD PTR _ddrval$[ebp], eax

; 607  : 
; 608  :         // stop trying if we succeeded
; 609  :         // or if we are told there is not enough memory
; 610  :         // maybe E_INVALIDARG means that the card doesn't support that many
; 611  :         // buffers so loop if we get that too
; 612  :         if (SUCCEEDED(ddrval) || (ddrval != DDERR_OUTOFVIDEOMEMORY && ddrval != E_INVALIDARG))

  00366	83 bd 5c fb ff
	ff 00		 cmp	 DWORD PTR _ddrval$[ebp], 0
  0036d	7d 18		 jge	 SHORT $LN28@Overlay_Cr
  0036f	81 bd 5c fb ff
	ff 7c 01 76 88	 cmp	 DWORD PTR _ddrval$[ebp], -2005532292 ; 8876017cH
  00379	74 0e		 je	 SHORT $LN29@Overlay_Cr
  0037b	81 bd 5c fb ff
	ff 57 00 07 80	 cmp	 DWORD PTR _ddrval$[ebp], -2147024809 ; 80070057H
  00385	74 02		 je	 SHORT $LN29@Overlay_Cr
$LN28@Overlay_Cr:

; 613  :         {
; 614  :             break;

  00387	eb 05		 jmp	 SHORT $LN31@Overlay_Cr
$LN29@Overlay_Cr:

; 615  :         }
; 616  :     }

  00389	e9 55 ff ff ff	 jmp	 $LN32@Overlay_Cr
$LN31@Overlay_Cr:

; 617  : 
; 618  :     if (FAILED(ddrval))

  0038e	83 bd 5c fb ff
	ff 00		 cmp	 DWORD PTR _ddrval$[ebp], 0
  00395	7d 10		 jge	 SHORT $LN27@Overlay_Cr

; 619  :     {
; 620  :         lpDDOverlay = NULL;

  00397	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0039d	c7 81 34 02 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+564], 0
$LN27@Overlay_Cr:

; 621  :     }
; 622  : 
; 623  :     if (numBuffers < minBuffers)

  003a7	8b 95 58 ff ff
	ff		 mov	 edx, DWORD PTR _numBuffers$[ebp]
  003ad	3b 95 54 ff ff
	ff		 cmp	 edx, DWORD PTR _minBuffers$[ebp]
  003b3	0f 8d e6 00 00
	00		 jge	 $LN26@Overlay_Cr

; 624  :     {
; 625  :         // Not enough video memory.  Display different messages depending
; 626  :         // on what we tried to allocate, since it may mean different things.
; 627  : 
; 628  :         if (minBuffers == 0)

  003b9	83 bd 54 ff ff
	ff 00		 cmp	 DWORD PTR _minBuffers$[ebp], 0
  003c0	75 5e		 jne	 SHORT $LN25@Overlay_Cr

; 629  :         {
; 630  :             // We tried single-buffering and it didn't work.
; 631  :             RealErrorBox(_T("Your video card doesn't have enough overlay\n")
; 632  :                      _T("memory for a TV picture.  Try lowering your\n")
; 633  :                      _T("color depth or screen resolution.  Rebooting\n")
; 634  :                      _T("may help in some cases if memory is being\n")
; 635  :                      _T("used by something else on your system."));

  003c2	68 00 00 00 00	 push	 OFFSET ??_C@_1BKM@CKGFPCGN@?$AAY?$AAo?$AAu?$AAr?$AA?5?$AAv?$AAi?$AAd?$AAe?$AAo?$AA?5?$AAc?$AAa?$AAr?$AAd?$AA?5?$AAd?$AAo?$AAe?$AAs?$AAn?$AA?8?$AAt?$AA?5?$AAh?$AAa?$AAv?$AAe?$AA?5?$AAe?$AAn?$AAo@
  003c7	8d 8d 8c f9 ff
	ff		 lea	 ecx, DWORD PTR $T347847[ebp]
  003cd	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> >
  003d2	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1
  003d9	8d 85 8c f9 ff
	ff		 lea	 eax, DWORD PTR $T347847[ebp]
  003df	50		 push	 eax
  003e0	68 7b 02 00 00	 push	 635			; 0000027bH
  003e5	68 00 00 00 00	 push	 OFFSET ??_C@_1CI@CKGCBFDK@?$AA?4?$AA?2?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  003ea	e8 00 00 00 00	 call	 ?_RealErrorBox@@YAXPB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _RealErrorBox
  003ef	83 c4 0c	 add	 esp, 12			; 0000000cH
  003f2	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  003f9	8d 8d 8c f9 ff
	ff		 lea	 ecx, DWORD PTR $T347847[ebp]
  003ff	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> >

; 636  :             LeaveCriticalSection(&hDDCritSect);

  00404	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0040a	81 c1 18 02 00
	00		 add	 ecx, 536		; 00000218H
  00410	51		 push	 ecx
  00411	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 637  :             return (FALSE);

  00417	33 c0		 xor	 eax, eax
  00419	e9 15 09 00 00	 jmp	 $LN40@Overlay_Cr

; 638  :         }
; 639  :         else

  0041e	eb 7f		 jmp	 SHORT $LN26@Overlay_Cr
$LN25@Overlay_Cr:

; 640  :         {
; 641  :             // We didn't get down to single-buffering, meaning the user
; 642  :             // specified a back buffer Count.
; 643  :             _stprintf(msg, _T("Your video card doesn't have enough overlay\n")
; 644  :                          _T("memory for %d back buffers.  If you've used\n")
; 645  :                          _T("that many back buffers before, you may need\n")
; 646  :                          _T("to reboot.  Otherwise try lowering your screen\n")
; 647  :                          _T("resolution or color depth, or try setting\n")
; 648  :                          _T("BackBuffers=-1 in DScaler.ini to allow DScaler to\n")
; 649  :                          _T("decide how many back buffers it can allocate."),
; 650  :                     BackBuffers);

  00420	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00426	8b 82 48 02 00
	00		 mov	 eax, DWORD PTR [edx+584]
  0042c	50		 push	 eax
  0042d	68 00 00 00 00	 push	 OFFSET ??_C@_1CHK@MNPKNBFE@?$AAY?$AAo?$AAu?$AAr?$AA?5?$AAv?$AAi?$AAd?$AAe?$AAo?$AA?5?$AAc?$AAa?$AAr?$AAd?$AA?5?$AAd?$AAo?$AAe?$AAs?$AAn?$AA?8?$AAt?$AA?5?$AAh?$AAa?$AAv?$AAe?$AA?5?$AAe?$AAn?$AAo@
  00432	8d 8d 64 fb ff
	ff		 lea	 ecx, DWORD PTR _msg$[ebp]
  00438	51		 push	 ecx
  00439	e8 00 00 00 00	 call	 __swprintf
  0043e	83 c4 0c	 add	 esp, 12			; 0000000cH

; 651  :             RealErrorBox(msg);

  00441	8d 95 64 fb ff
	ff		 lea	 edx, DWORD PTR _msg$[ebp]
  00447	52		 push	 edx
  00448	8d 8d 70 f9 ff
	ff		 lea	 ecx, DWORD PTR $T347848[ebp]
  0044e	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> >
  00453	c7 45 fc 02 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 2
  0045a	8d 85 70 f9 ff
	ff		 lea	 eax, DWORD PTR $T347848[ebp]
  00460	50		 push	 eax
  00461	68 8b 02 00 00	 push	 651			; 0000028bH
  00466	68 00 00 00 00	 push	 OFFSET ??_C@_1CI@CKGCBFDK@?$AA?4?$AA?2?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  0046b	e8 00 00 00 00	 call	 ?_RealErrorBox@@YAXPB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _RealErrorBox
  00470	83 c4 0c	 add	 esp, 12			; 0000000cH
  00473	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0047a	8d 8d 70 f9 ff
	ff		 lea	 ecx, DWORD PTR $T347848[ebp]
  00480	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> >

; 652  :             LeaveCriticalSection(&hDDCritSect);

  00485	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0048b	81 c1 18 02 00
	00		 add	 ecx, 536		; 00000218H
  00491	51		 push	 ecx
  00492	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 653  :             return (FALSE);

  00498	33 c0		 xor	 eax, eax
  0049a	e9 94 08 00 00	 jmp	 $LN40@Overlay_Cr
$LN26@Overlay_Cr:

; 654  :         }
; 655  :     }
; 656  : 
; 657  :     if (FAILED(ddrval))

  0049f	83 bd 5c fb ff
	ff 00		 cmp	 DWORD PTR _ddrval$[ebp], 0
  004a6	0f 8d ee 00 00
	00		 jge	 $LN23@Overlay_Cr

; 658  :     {
; 659  :         switch (ddrval)

  004ac	8b 95 5c fb ff
	ff		 mov	 edx, DWORD PTR _ddrval$[ebp]
  004b2	89 95 80 f8 ff
	ff		 mov	 DWORD PTR tv237[ebp], edx
  004b8	81 bd 80 f8 ff
	ff 04 01 76 88	 cmp	 DWORD PTR tv237[ebp], -2005532412 ; 88760104H
  004c2	74 02		 je	 SHORT $LN20@Overlay_Cr
  004c4	eb 5c		 jmp	 SHORT $LN21@Overlay_Cr
$LN20@Overlay_Cr:

; 660  :         {
; 661  :         case DDERR_NOOVERLAYHW:
; 662  :             RealErrorBox(_T("Your video card doesn't appear to support\n")
; 663  :                      _T("overlays, which DScaler requires."));

  004c6	68 00 00 00 00	 push	 OFFSET ??_C@_1JI@DDFLHNFM@?$AAY?$AAo?$AAu?$AAr?$AA?5?$AAv?$AAi?$AAd?$AAe?$AAo?$AA?5?$AAc?$AAa?$AAr?$AAd?$AA?5?$AAd?$AAo?$AAe?$AAs?$AAn?$AA?8?$AAt?$AA?5?$AAa?$AAp?$AAp?$AAe?$AAa?$AAr?$AA?5?$AAt@
  004cb	8d 8d 54 f9 ff
	ff		 lea	 ecx, DWORD PTR $T347849[ebp]
  004d1	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> >
  004d6	c7 45 fc 03 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 3
  004dd	8d 85 54 f9 ff
	ff		 lea	 eax, DWORD PTR $T347849[ebp]
  004e3	50		 push	 eax
  004e4	68 97 02 00 00	 push	 663			; 00000297H
  004e9	68 00 00 00 00	 push	 OFFSET ??_C@_1CI@CKGCBFDK@?$AA?4?$AA?2?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  004ee	e8 00 00 00 00	 call	 ?_RealErrorBox@@YAXPB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _RealErrorBox
  004f3	83 c4 0c	 add	 esp, 12			; 0000000cH
  004f6	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  004fd	8d 8d 54 f9 ff
	ff		 lea	 ecx, DWORD PTR $T347849[ebp]
  00503	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> >

; 664  :             LeaveCriticalSection(&hDDCritSect);

  00508	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0050e	81 c1 18 02 00
	00		 add	 ecx, 536		; 00000218H
  00514	51		 push	 ecx
  00515	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 665  :             return (FALSE);

  0051b	33 c0		 xor	 eax, eax
  0051d	e9 11 08 00 00	 jmp	 $LN40@Overlay_Cr
$LN21@Overlay_Cr:

; 666  : 
; 667  :             // Any other interesting error codes?
; 668  :         }
; 669  : 
; 670  :         _stprintf(msg, _T("Can't create overlay surface: %x"), ddrval);

  00522	8b 95 5c fb ff
	ff		 mov	 edx, DWORD PTR _ddrval$[ebp]
  00528	52		 push	 edx
  00529	68 00 00 00 00	 push	 OFFSET ??_C@_1EC@JCABCFHC@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAo?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAs?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?3?$AA?5?$AA?$CF?$AAx@
  0052e	8d 85 64 fb ff
	ff		 lea	 eax, DWORD PTR _msg$[ebp]
  00534	50		 push	 eax
  00535	e8 00 00 00 00	 call	 __swprintf
  0053a	83 c4 0c	 add	 esp, 12			; 0000000cH

; 671  :         RealErrorBox(msg);

  0053d	8d 8d 64 fb ff
	ff		 lea	 ecx, DWORD PTR _msg$[ebp]
  00543	51		 push	 ecx
  00544	8d 8d 38 f9 ff
	ff		 lea	 ecx, DWORD PTR $T347850[ebp]
  0054a	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> >
  0054f	c7 45 fc 04 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 4
  00556	8d 95 38 f9 ff
	ff		 lea	 edx, DWORD PTR $T347850[ebp]
  0055c	52		 push	 edx
  0055d	68 9f 02 00 00	 push	 671			; 0000029fH
  00562	68 00 00 00 00	 push	 OFFSET ??_C@_1CI@CKGCBFDK@?$AA?4?$AA?2?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  00567	e8 00 00 00 00	 call	 ?_RealErrorBox@@YAXPB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _RealErrorBox
  0056c	83 c4 0c	 add	 esp, 12			; 0000000cH
  0056f	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00576	8d 8d 38 f9 ff
	ff		 lea	 ecx, DWORD PTR $T347850[ebp]
  0057c	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> >

; 672  :         LeaveCriticalSection(&hDDCritSect);

  00581	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00587	05 18 02 00 00	 add	 eax, 536		; 00000218H
  0058c	50		 push	 eax
  0058d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 673  :         return FALSE;

  00593	33 c0		 xor	 eax, eax
  00595	e9 99 07 00 00	 jmp	 $LN40@Overlay_Cr
$LN23@Overlay_Cr:

; 674  :     }
; 675  : 
; 676  :     _stprintf(msg, _T("%d Back Buffers"), numBuffers);

  0059a	8b 8d 58 ff ff
	ff		 mov	 ecx, DWORD PTR _numBuffers$[ebp]
  005a0	51		 push	 ecx
  005a1	68 00 00 00 00	 push	 OFFSET ??_C@_1CA@KKPLPFHB@?$AA?$CF?$AAd?$AA?5?$AAB?$AAa?$AAc?$AAk?$AA?5?$AAB?$AAu?$AAf?$AAf?$AAe?$AAr?$AAs?$AA?$AA@
  005a6	8d 95 64 fb ff
	ff		 lea	 edx, DWORD PTR _msg$[ebp]
  005ac	52		 push	 edx
  005ad	e8 00 00 00 00	 call	 __swprintf
  005b2	83 c4 0c	 add	 esp, 12			; 0000000cH

; 677  :     AddSplashTextLine(msg);

  005b5	8d 85 64 fb ff
	ff		 lea	 eax, DWORD PTR _msg$[ebp]
  005bb	50		 push	 eax
  005bc	e8 00 00 00 00	 call	 ?AddSplashTextLine@@YAXPB_W@Z ; AddSplashTextLine
  005c1	83 c4 04	 add	 esp, 4

; 678  : 
; 679  :     ddrval = lpDDOverlay->Lock(NULL, &SurfaceDesc, DDLOCK_WAIT, NULL);

  005c4	6a 00		 push	 0
  005c6	6a 01		 push	 1
  005c8	8d 8d 5c ff ff
	ff		 lea	 ecx, DWORD PTR _SurfaceDesc$[ebp]
  005ce	51		 push	 ecx
  005cf	6a 00		 push	 0
  005d1	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  005d7	8b 82 34 02 00
	00		 mov	 eax, DWORD PTR [edx+564]
  005dd	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  005e3	8b 91 34 02 00
	00		 mov	 edx, DWORD PTR [ecx+564]
  005e9	8b 00		 mov	 eax, DWORD PTR [eax]
  005eb	52		 push	 edx
  005ec	8b 48 64	 mov	 ecx, DWORD PTR [eax+100]
  005ef	ff d1		 call	 ecx
  005f1	89 85 5c fb ff
	ff		 mov	 DWORD PTR _ddrval$[ebp], eax
$LN19@Overlay_Cr:

; 680  :     // sometimes in win98 we get weird error messages here
; 681  :     // so we need to loop until it's OK or we get a surface lost message
; 682  :     while(ddrval == DDERR_NOOVERLAYHW || ddrval == DDERR_SURFACEBUSY)

  005f7	81 bd 5c fb ff
	ff 04 01 76 88	 cmp	 DWORD PTR _ddrval$[ebp], -2005532412 ; 88760104H
  00601	74 0c		 je	 SHORT $LN17@Overlay_Cr
  00603	81 bd 5c fb ff
	ff ae 01 76 88	 cmp	 DWORD PTR _ddrval$[ebp], -2005532242 ; 887601aeH
  0060d	75 3d		 jne	 SHORT $LN18@Overlay_Cr
$LN17@Overlay_Cr:

; 683  :     {
; 684  :         Sleep(100);

  0060f	6a 64		 push	 100			; 00000064H
  00611	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__Sleep@4

; 685  :         ddrval = lpDDOverlay->Lock(NULL, &SurfaceDesc, DDLOCK_WAIT, NULL);

  00617	6a 00		 push	 0
  00619	6a 01		 push	 1
  0061b	8d 95 5c ff ff
	ff		 lea	 edx, DWORD PTR _SurfaceDesc$[ebp]
  00621	52		 push	 edx
  00622	6a 00		 push	 0
  00624	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  0062a	8b 88 34 02 00
	00		 mov	 ecx, DWORD PTR [eax+564]
  00630	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00636	8b 82 34 02 00
	00		 mov	 eax, DWORD PTR [edx+564]
  0063c	8b 09		 mov	 ecx, DWORD PTR [ecx]
  0063e	50		 push	 eax
  0063f	8b 51 64	 mov	 edx, DWORD PTR [ecx+100]
  00642	ff d2		 call	 edx
  00644	89 85 5c fb ff
	ff		 mov	 DWORD PTR _ddrval$[ebp], eax

; 686  :     }

  0064a	eb ab		 jmp	 SHORT $LN19@Overlay_Cr
$LN18@Overlay_Cr:

; 687  :     if(ddrval == DDERR_SURFACELOST)

  0064c	81 bd 5c fb ff
	ff c2 01 76 88	 cmp	 DWORD PTR _ddrval$[ebp], -2005532222 ; 887601c2H
  00656	0f 85 04 01 00
	00		 jne	 $LN16@Overlay_Cr

; 688  :     {
; 689  :         ddrval = lpDD->CreateSurface(&SurfaceDesc, &lpDDOverlay, NULL);

  0065c	6a 00		 push	 0
  0065e	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00664	05 34 02 00 00	 add	 eax, 564		; 00000234H
  00669	50		 push	 eax
  0066a	8d 8d 5c ff ff
	ff		 lea	 ecx, DWORD PTR _SurfaceDesc$[ebp]
  00670	51		 push	 ecx
  00671	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00677	8b 82 b0 02 00
	00		 mov	 eax, DWORD PTR [edx+688]
  0067d	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00683	8b 91 b0 02 00
	00		 mov	 edx, DWORD PTR [ecx+688]
  00689	8b 00		 mov	 eax, DWORD PTR [eax]
  0068b	52		 push	 edx
  0068c	8b 48 18	 mov	 ecx, DWORD PTR [eax+24]
  0068f	ff d1		 call	 ecx
  00691	89 85 5c fb ff
	ff		 mov	 DWORD PTR _ddrval$[ebp], eax

; 690  :         if (FAILED(ddrval))

  00697	83 bd 5c fb ff
	ff 00		 cmp	 DWORD PTR _ddrval$[ebp], 0
  0069e	0f 8d 89 00 00
	00		 jge	 $LN15@Overlay_Cr

; 691  :         {
; 692  :             _stprintf(msg, _T("Lost overlay surface and can't recreate it: %x"), ddrval);

  006a4	8b 95 5c fb ff
	ff		 mov	 edx, DWORD PTR _ddrval$[ebp]
  006aa	52		 push	 edx
  006ab	68 00 00 00 00	 push	 OFFSET ??_C@_1FO@CGNDJOIG@?$AAL?$AAo?$AAs?$AAt?$AA?5?$AAo?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAs?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?5?$AAa?$AAn?$AAd?$AA?5?$AAc?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAr@
  006b0	8d 85 64 fb ff
	ff		 lea	 eax, DWORD PTR _msg$[ebp]
  006b6	50		 push	 eax
  006b7	e8 00 00 00 00	 call	 __swprintf
  006bc	83 c4 0c	 add	 esp, 12			; 0000000cH

; 693  :             RealErrorBox(msg);

  006bf	8d 8d 64 fb ff
	ff		 lea	 ecx, DWORD PTR _msg$[ebp]
  006c5	51		 push	 ecx
  006c6	8d 8d 1c f9 ff
	ff		 lea	 ecx, DWORD PTR $T347851[ebp]
  006cc	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> >
  006d1	c7 45 fc 05 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 5
  006d8	8d 95 1c f9 ff
	ff		 lea	 edx, DWORD PTR $T347851[ebp]
  006de	52		 push	 edx
  006df	68 b5 02 00 00	 push	 693			; 000002b5H
  006e4	68 00 00 00 00	 push	 OFFSET ??_C@_1CI@CKGCBFDK@?$AA?4?$AA?2?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  006e9	e8 00 00 00 00	 call	 ?_RealErrorBox@@YAXPB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _RealErrorBox
  006ee	83 c4 0c	 add	 esp, 12			; 0000000cH
  006f1	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  006f8	8d 8d 1c f9 ff
	ff		 lea	 ecx, DWORD PTR $T347851[ebp]
  006fe	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> >

; 694  :             lpDDOverlay = NULL;

  00703	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00709	c7 80 34 02 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+564], 0

; 695  :             LeaveCriticalSection(&hDDCritSect);

  00713	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00719	81 c1 18 02 00
	00		 add	 ecx, 536		; 00000218H
  0071f	51		 push	 ecx
  00720	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 696  :             return FALSE;

  00726	33 c0		 xor	 eax, eax
  00728	e9 06 06 00 00	 jmp	 $LN40@Overlay_Cr
$LN15@Overlay_Cr:

; 697  :         }
; 698  :         ddrval = lpDDOverlay->Lock(NULL, &SurfaceDesc, DDLOCK_WAIT, NULL);

  0072d	6a 00		 push	 0
  0072f	6a 01		 push	 1
  00731	8d 95 5c ff ff
	ff		 lea	 edx, DWORD PTR _SurfaceDesc$[ebp]
  00737	52		 push	 edx
  00738	6a 00		 push	 0
  0073a	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00740	8b 88 34 02 00
	00		 mov	 ecx, DWORD PTR [eax+564]
  00746	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  0074c	8b 82 34 02 00
	00		 mov	 eax, DWORD PTR [edx+564]
  00752	8b 09		 mov	 ecx, DWORD PTR [ecx]
  00754	50		 push	 eax
  00755	8b 51 64	 mov	 edx, DWORD PTR [ecx+100]
  00758	ff d2		 call	 edx
  0075a	89 85 5c fb ff
	ff		 mov	 DWORD PTR _ddrval$[ebp], eax
$LN16@Overlay_Cr:

; 699  :     }
; 700  :     if (FAILED(ddrval))

  00760	83 bd 5c fb ff
	ff 00		 cmp	 DWORD PTR _ddrval$[ebp], 0
  00767	7d 79		 jge	 SHORT $LN14@Overlay_Cr

; 701  :     {
; 702  :         TCHAR szErrorMsg[200];
; 703  :         _stprintf(szErrorMsg, _T("Error %x in Lock Surface"), ddrval);

  00769	8b 85 5c fb ff
	ff		 mov	 eax, DWORD PTR _ddrval$[ebp]
  0076f	50		 push	 eax
  00770	68 00 00 00 00	 push	 OFFSET ??_C@_1DC@PFFMMFKN@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?5?$AA?$CF?$AAx?$AA?5?$AAi?$AAn?$AA?5?$AAL?$AAo?$AAc?$AAk?$AA?5?$AAS?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?$AA@
  00775	8d 8d c4 f9 ff
	ff		 lea	 ecx, DWORD PTR _szErrorMsg$143112[ebp]
  0077b	51		 push	 ecx
  0077c	e8 00 00 00 00	 call	 __swprintf
  00781	83 c4 0c	 add	 esp, 12			; 0000000cH

; 704  :         RealErrorBox(szErrorMsg);

  00784	8d 95 c4 f9 ff
	ff		 lea	 edx, DWORD PTR _szErrorMsg$143112[ebp]
  0078a	52		 push	 edx
  0078b	8d 8d 00 f9 ff
	ff		 lea	 ecx, DWORD PTR $T347852[ebp]
  00791	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> >
  00796	c7 45 fc 06 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 6
  0079d	8d 85 00 f9 ff
	ff		 lea	 eax, DWORD PTR $T347852[ebp]
  007a3	50		 push	 eax
  007a4	68 c0 02 00 00	 push	 704			; 000002c0H
  007a9	68 00 00 00 00	 push	 OFFSET ??_C@_1CI@CKGCBFDK@?$AA?4?$AA?2?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  007ae	e8 00 00 00 00	 call	 ?_RealErrorBox@@YAXPB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _RealErrorBox
  007b3	83 c4 0c	 add	 esp, 12			; 0000000cH
  007b6	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  007bd	8d 8d 00 f9 ff
	ff		 lea	 ecx, DWORD PTR $T347852[ebp]
  007c3	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> >

; 705  :         LeaveCriticalSection(&hDDCritSect);

  007c8	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  007ce	81 c1 18 02 00
	00		 add	 ecx, 536		; 00000218H
  007d4	51		 push	 ecx
  007d5	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 706  :         return (FALSE);

  007db	33 c0		 xor	 eax, eax
  007dd	e9 51 05 00 00	 jmp	 $LN40@Overlay_Cr
$LN14@Overlay_Cr:

; 707  :     }
; 708  : 
; 709  :     ddrval = lpDDOverlay->Unlock(SurfaceDesc.lpSurface);

  007e2	8b 55 80	 mov	 edx, DWORD PTR _SurfaceDesc$[ebp+36]
  007e5	52		 push	 edx
  007e6	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  007ec	8b 88 34 02 00
	00		 mov	 ecx, DWORD PTR [eax+564]
  007f2	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  007f8	8b 82 34 02 00
	00		 mov	 eax, DWORD PTR [edx+564]
  007fe	8b 09		 mov	 ecx, DWORD PTR [ecx]
  00800	50		 push	 eax
  00801	8b 91 80 00 00
	00		 mov	 edx, DWORD PTR [ecx+128]
  00807	ff d2		 call	 edx
  00809	89 85 5c fb ff
	ff		 mov	 DWORD PTR _ddrval$[ebp], eax

; 710  :     if (FAILED(ddrval))

  0080f	83 bd 5c fb ff
	ff 00		 cmp	 DWORD PTR _ddrval$[ebp], 0
  00816	7d 5c		 jge	 SHORT $LN13@Overlay_Cr

; 711  :     {
; 712  :         RealErrorBox(_T("Can't Unlock Surface"));

  00818	68 00 00 00 00	 push	 OFFSET ??_C@_1CK@GCNFJLMI@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAU?$AAn?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAS?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?$AA@
  0081d	8d 8d e4 f8 ff
	ff		 lea	 ecx, DWORD PTR $T347853[ebp]
  00823	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> >
  00828	c7 45 fc 07 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 7
  0082f	8d 85 e4 f8 ff
	ff		 lea	 eax, DWORD PTR $T347853[ebp]
  00835	50		 push	 eax
  00836	68 c8 02 00 00	 push	 712			; 000002c8H
  0083b	68 00 00 00 00	 push	 OFFSET ??_C@_1CI@CKGCBFDK@?$AA?4?$AA?2?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  00840	e8 00 00 00 00	 call	 ?_RealErrorBox@@YAXPB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _RealErrorBox
  00845	83 c4 0c	 add	 esp, 12			; 0000000cH
  00848	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0084f	8d 8d e4 f8 ff
	ff		 lea	 ecx, DWORD PTR $T347853[ebp]
  00855	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> >

; 713  :         LeaveCriticalSection(&hDDCritSect);

  0085a	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00860	81 c1 18 02 00
	00		 add	 ecx, 536		; 00000218H
  00866	51		 push	 ecx
  00867	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 714  :         return (FALSE);

  0086d	33 c0		 xor	 eax, eax
  0086f	e9 bf 04 00 00	 jmp	 $LN40@Overlay_Cr
$LN13@Overlay_Cr:

; 715  :     }
; 716  : 
; 717  :     if(numBuffers != 0)

  00874	83 bd 58 ff ff
	ff 00		 cmp	 DWORD PTR _numBuffers$[ebp], 0
  0087b	0f 84 06 02 00
	00		 je	 $LN12@Overlay_Cr

; 718  :     {
; 719  :         memset(&caps, 0, sizeof(caps));

  00881	6a 04		 push	 4
  00883	6a 00		 push	 0
  00885	8d 95 60 fb ff
	ff		 lea	 edx, DWORD PTR _caps$[ebp]
  0088b	52		 push	 edx
  0088c	e8 00 00 00 00	 call	 _memset
  00891	83 c4 0c	 add	 esp, 12			; 0000000cH

; 720  :         caps.dwCaps = DDSCAPS_BACKBUFFER;

  00894	c7 85 60 fb ff
	ff 04 00 00 00	 mov	 DWORD PTR _caps$[ebp], 4

; 721  :         ddrval = lpDDOverlay->GetAttachedSurface(&caps, &lpDDOverlayBack);

  0089e	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  008a4	05 38 02 00 00	 add	 eax, 568		; 00000238H
  008a9	50		 push	 eax
  008aa	8d 8d 60 fb ff
	ff		 lea	 ecx, DWORD PTR _caps$[ebp]
  008b0	51		 push	 ecx
  008b1	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  008b7	8b 82 34 02 00
	00		 mov	 eax, DWORD PTR [edx+564]
  008bd	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  008c3	8b 91 34 02 00
	00		 mov	 edx, DWORD PTR [ecx+564]
  008c9	8b 00		 mov	 eax, DWORD PTR [eax]
  008cb	52		 push	 edx
  008cc	8b 48 30	 mov	 ecx, DWORD PTR [eax+48]
  008cf	ff d1		 call	 ecx
  008d1	89 85 5c fb ff
	ff		 mov	 DWORD PTR _ddrval$[ebp], eax

; 722  :         if (FAILED(ddrval))

  008d7	83 bd 5c fb ff
	ff 00		 cmp	 DWORD PTR _ddrval$[ebp], 0
  008de	7d 71		 jge	 SHORT $LN11@Overlay_Cr

; 723  :         {
; 724  :             RealErrorBox(_T("Can't create Overlay Back Surface"));

  008e0	68 00 00 00 00	 push	 OFFSET ??_C@_1EE@DJIDLGH@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAB?$AAa?$AAc?$AAk?$AA?5?$AAS?$AAu?$AAr?$AAf?$AAa?$AAc@
  008e5	8d 8d c8 f8 ff
	ff		 lea	 ecx, DWORD PTR $T347854[ebp]
  008eb	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> >
  008f0	c7 45 fc 08 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 8
  008f7	8d 95 c8 f8 ff
	ff		 lea	 edx, DWORD PTR $T347854[ebp]
  008fd	52		 push	 edx
  008fe	68 d4 02 00 00	 push	 724			; 000002d4H
  00903	68 00 00 00 00	 push	 OFFSET ??_C@_1CI@CKGCBFDK@?$AA?4?$AA?2?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  00908	e8 00 00 00 00	 call	 ?_RealErrorBox@@YAXPB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _RealErrorBox
  0090d	83 c4 0c	 add	 esp, 12			; 0000000cH
  00910	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00917	8d 8d c8 f8 ff
	ff		 lea	 ecx, DWORD PTR $T347854[ebp]
  0091d	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> >

; 725  :             lpDDOverlayBack = NULL;

  00922	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00928	c7 80 38 02 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+568], 0

; 726  :             LeaveCriticalSection(&hDDCritSect);

  00932	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00938	81 c1 18 02 00
	00		 add	 ecx, 536		; 00000218H
  0093e	51		 push	 ecx
  0093f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 727  :             return (FALSE);

  00945	33 c0		 xor	 eax, eax
  00947	e9 e7 03 00 00	 jmp	 $LN40@Overlay_Cr

; 728  :         }
; 729  :         else

  0094c	e9 34 01 00 00	 jmp	 $LN10@Overlay_Cr
$LN11@Overlay_Cr:

; 730  :         {
; 731  :             ddrval = lpDDOverlayBack->Lock(NULL, &SurfaceDesc, DDLOCK_WAIT, NULL);

  00951	6a 00		 push	 0
  00953	6a 01		 push	 1
  00955	8d 95 5c ff ff
	ff		 lea	 edx, DWORD PTR _SurfaceDesc$[ebp]
  0095b	52		 push	 edx
  0095c	6a 00		 push	 0
  0095e	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00964	8b 88 38 02 00
	00		 mov	 ecx, DWORD PTR [eax+568]
  0096a	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00970	8b 82 38 02 00
	00		 mov	 eax, DWORD PTR [edx+568]
  00976	8b 09		 mov	 ecx, DWORD PTR [ecx]
  00978	50		 push	 eax
  00979	8b 51 64	 mov	 edx, DWORD PTR [ecx+100]
  0097c	ff d2		 call	 edx
  0097e	89 85 5c fb ff
	ff		 mov	 DWORD PTR _ddrval$[ebp], eax

; 732  :             if (FAILED(ddrval))

  00984	83 bd 5c fb ff
	ff 00		 cmp	 DWORD PTR _ddrval$[ebp], 0
  0098b	7d 5c		 jge	 SHORT $LN9@Overlay_Cr

; 733  :             {
; 734  :                 RealErrorBox(_T("Can't Lock Back Surface"));

  0098d	68 00 00 00 00	 push	 OFFSET ??_C@_1DA@CBLMFAKL@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAL?$AAo?$AAc?$AAk?$AA?5?$AAB?$AAa?$AAc?$AAk?$AA?5?$AAS?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?$AA@
  00992	8d 8d ac f8 ff
	ff		 lea	 ecx, DWORD PTR $T347855[ebp]
  00998	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> >
  0099d	c7 45 fc 09 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 9
  009a4	8d 85 ac f8 ff
	ff		 lea	 eax, DWORD PTR $T347855[ebp]
  009aa	50		 push	 eax
  009ab	68 de 02 00 00	 push	 734			; 000002deH
  009b0	68 00 00 00 00	 push	 OFFSET ??_C@_1CI@CKGCBFDK@?$AA?4?$AA?2?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  009b5	e8 00 00 00 00	 call	 ?_RealErrorBox@@YAXPB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _RealErrorBox
  009ba	83 c4 0c	 add	 esp, 12			; 0000000cH
  009bd	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  009c4	8d 8d ac f8 ff
	ff		 lea	 ecx, DWORD PTR $T347855[ebp]
  009ca	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> >

; 735  :                 LeaveCriticalSection(&hDDCritSect);

  009cf	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  009d5	81 c1 18 02 00
	00		 add	 ecx, 536		; 00000218H
  009db	51		 push	 ecx
  009dc	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 736  :                 return (FALSE);

  009e2	33 c0		 xor	 eax, eax
  009e4	e9 4a 03 00 00	 jmp	 $LN40@Overlay_Cr
$LN9@Overlay_Cr:

; 737  :             }
; 738  :             ddrval = DDERR_WASSTILLDRAWING;

  009e9	c7 85 5c fb ff
	ff 1c 02 76 88	 mov	 DWORD PTR _ddrval$[ebp], -2005532132 ; 8876021cH

; 739  : 
; 740  :             ddrval = lpDDOverlayBack->Unlock(SurfaceDesc.lpSurface);

  009f3	8b 55 80	 mov	 edx, DWORD PTR _SurfaceDesc$[ebp+36]
  009f6	52		 push	 edx
  009f7	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  009fd	8b 88 38 02 00
	00		 mov	 ecx, DWORD PTR [eax+568]
  00a03	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00a09	8b 82 38 02 00
	00		 mov	 eax, DWORD PTR [edx+568]
  00a0f	8b 09		 mov	 ecx, DWORD PTR [ecx]
  00a11	50		 push	 eax
  00a12	8b 91 80 00 00
	00		 mov	 edx, DWORD PTR [ecx+128]
  00a18	ff d2		 call	 edx
  00a1a	89 85 5c fb ff
	ff		 mov	 DWORD PTR _ddrval$[ebp], eax

; 741  :             if (FAILED(ddrval))

  00a20	83 bd 5c fb ff
	ff 00		 cmp	 DWORD PTR _ddrval$[ebp], 0
  00a27	7d 5c		 jge	 SHORT $LN10@Overlay_Cr

; 742  :             {
; 743  :                 RealErrorBox(_T("Can't Unlock Back Surface"));

  00a29	68 00 00 00 00	 push	 OFFSET ??_C@_1DE@GKPEINBB@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAU?$AAn?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAB?$AAa?$AAc?$AAk?$AA?5?$AAS?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?$AA@
  00a2e	8d 8d 90 f8 ff
	ff		 lea	 ecx, DWORD PTR $T347856[ebp]
  00a34	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> >
  00a39	c7 45 fc 0a 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 10 ; 0000000aH
  00a40	8d 85 90 f8 ff
	ff		 lea	 eax, DWORD PTR $T347856[ebp]
  00a46	50		 push	 eax
  00a47	68 e7 02 00 00	 push	 743			; 000002e7H
  00a4c	68 00 00 00 00	 push	 OFFSET ??_C@_1CI@CKGCBFDK@?$AA?4?$AA?2?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  00a51	e8 00 00 00 00	 call	 ?_RealErrorBox@@YAXPB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _RealErrorBox
  00a56	83 c4 0c	 add	 esp, 12			; 0000000cH
  00a59	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00a60	8d 8d 90 f8 ff
	ff		 lea	 ecx, DWORD PTR $T347856[ebp]
  00a66	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> >

; 744  :                 LeaveCriticalSection(&hDDCritSect);

  00a6b	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00a71	81 c1 18 02 00
	00		 add	 ecx, 536		; 00000218H
  00a77	51		 push	 ecx
  00a78	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 745  :                 return (FALSE);

  00a7e	33 c0		 xor	 eax, eax
  00a80	e9 ae 02 00 00	 jmp	 $LN40@Overlay_Cr
$LN10@Overlay_Cr:

; 746  :             }
; 747  :         }
; 748  :     }
; 749  :     else

  00a85	eb 38		 jmp	 SHORT $LN7@Overlay_Cr
$LN12@Overlay_Cr:

; 750  :     {
; 751  :         lpDDOverlayBack = lpDDOverlay;

  00a87	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00a8d	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00a93	8b 88 34 02 00
	00		 mov	 ecx, DWORD PTR [eax+564]
  00a99	89 8a 38 02 00
	00		 mov	 DWORD PTR [edx+568], ecx

; 752  :         lpDDOverlayBack->AddRef();

  00a9f	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00aa5	8b 82 38 02 00
	00		 mov	 eax, DWORD PTR [edx+568]
  00aab	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00ab1	8b 91 38 02 00
	00		 mov	 edx, DWORD PTR [ecx+568]
  00ab7	8b 00		 mov	 eax, DWORD PTR [eax]
  00ab9	52		 push	 edx
  00aba	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  00abd	ff d1		 call	 ecx
$LN7@Overlay_Cr:

; 753  :     }
; 754  : 
; 755  :     // New Code - Getting the DD color control
; 756  :     ddrval = lpDDOverlay->QueryInterface(IID_IDirectDrawColorControl, (void **) &pDDColorControl);

  00abf	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00ac5	81 c2 84 02 00
	00		 add	 edx, 644		; 00000284H
  00acb	52		 push	 edx
  00acc	68 00 00 00 00	 push	 OFFSET _IID_IDirectDrawColorControl
  00ad1	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00ad7	8b 88 34 02 00
	00		 mov	 ecx, DWORD PTR [eax+564]
  00add	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00ae3	8b 82 34 02 00
	00		 mov	 eax, DWORD PTR [edx+564]
  00ae9	8b 09		 mov	 ecx, DWORD PTR [ecx]
  00aeb	50		 push	 eax
  00aec	8b 11		 mov	 edx, DWORD PTR [ecx]
  00aee	ff d2		 call	 edx
  00af0	89 85 5c fb ff
	ff		 mov	 DWORD PTR _ddrval$[ebp], eax

; 757  :     if(SUCCEEDED(ddrval))

  00af6	83 bd 5c fb ff
	ff 00		 cmp	 DWORD PTR _ddrval$[ebp], 0
  00afd	0f 8c ae 01 00
	00		 jl	 $LN6@Overlay_Cr

; 758  :     {
; 759  :         OriginalColorControls.dwSize = sizeof(DDCOLORCONTROL);

  00b03	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00b09	c7 80 5c 02 00
	00 28 00 00 00	 mov	 DWORD PTR [eax+604], 40	; 00000028H

; 760  :         ddrval = pDDColorControl->GetColorControls(&OriginalColorControls);

  00b13	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00b19	81 c1 5c 02 00
	00		 add	 ecx, 604		; 0000025cH
  00b1f	51		 push	 ecx
  00b20	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00b26	8b 82 84 02 00
	00		 mov	 eax, DWORD PTR [edx+644]
  00b2c	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00b32	8b 91 84 02 00
	00		 mov	 edx, DWORD PTR [ecx+644]
  00b38	8b 00		 mov	 eax, DWORD PTR [eax]
  00b3a	52		 push	 edx
  00b3b	8b 48 0c	 mov	 ecx, DWORD PTR [eax+12]
  00b3e	ff d1		 call	 ecx
  00b40	89 85 5c fb ff
	ff		 mov	 DWORD PTR _ddrval$[ebp], eax

; 761  :         if(SUCCEEDED(ddrval))

  00b46	83 bd 5c fb ff
	ff 00		 cmp	 DWORD PTR _ddrval$[ebp], 0
  00b4d	0f 8c 2c 01 00
	00		 jl	 $LN5@Overlay_Cr

; 762  :         {
; 763  :             LOG(3, _T("OriginalColorControls %d Brightness %d"), OriginalColorControls.dwFlags & DDCOLOR_BRIGHTNESS, OriginalColorControls.lBrightness);

  00b53	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00b59	8b 82 64 02 00
	00		 mov	 eax, DWORD PTR [edx+612]
  00b5f	50		 push	 eax
  00b60	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00b66	8b 91 60 02 00
	00		 mov	 edx, DWORD PTR [ecx+608]
  00b6c	83 e2 01	 and	 edx, 1
  00b6f	52		 push	 edx
  00b70	68 00 00 00 00	 push	 OFFSET ??_C@_1EO@PBIBGGBJ@?$AAO?$AAr?$AAi?$AAg?$AAi?$AAn?$AAa?$AAl?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AAB?$AAr?$AAi?$AAg?$AAh?$AAt?$AAn@
  00b75	6a 03		 push	 3
  00b77	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00b7c	83 c4 10	 add	 esp, 16			; 00000010H

; 764  :             LOG(3, _T("OriginalColorControls %d Contrast %d"), OriginalColorControls.dwFlags & DDCOLOR_CONTRAST, OriginalColorControls.lContrast);

  00b7f	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00b85	8b 88 68 02 00
	00		 mov	 ecx, DWORD PTR [eax+616]
  00b8b	51		 push	 ecx
  00b8c	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00b92	8b 82 60 02 00
	00		 mov	 eax, DWORD PTR [edx+608]
  00b98	83 e0 02	 and	 eax, 2
  00b9b	50		 push	 eax
  00b9c	68 00 00 00 00	 push	 OFFSET ??_C@_1EK@EMCIHMOD@?$AAO?$AAr?$AAi?$AAg?$AAi?$AAn?$AAa?$AAl?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AAC?$AAo?$AAn?$AAt?$AAr?$AAa?$AAs@
  00ba1	6a 03		 push	 3
  00ba3	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00ba8	83 c4 10	 add	 esp, 16			; 00000010H

; 765  :             LOG(3, _T("OriginalColorControls %d Hue %d"), OriginalColorControls.dwFlags & DDCOLOR_HUE, OriginalColorControls.lHue);

  00bab	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00bb1	8b 91 6c 02 00
	00		 mov	 edx, DWORD PTR [ecx+620]
  00bb7	52		 push	 edx
  00bb8	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00bbe	8b 88 60 02 00
	00		 mov	 ecx, DWORD PTR [eax+608]
  00bc4	83 e1 04	 and	 ecx, 4
  00bc7	51		 push	 ecx
  00bc8	68 00 00 00 00	 push	 OFFSET ??_C@_1EA@GEGOHLMH@?$AAO?$AAr?$AAi?$AAg?$AAi?$AAn?$AAa?$AAl?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAu?$AAe?$AA?5?$AA?$CF?$AAd?$AA?$AA@
  00bcd	6a 03		 push	 3
  00bcf	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00bd4	83 c4 10	 add	 esp, 16			; 00000010H

; 766  :             LOG(3, _T("OriginalColorControls %d Saturation %d"), OriginalColorControls.dwFlags & DDCOLOR_SATURATION, OriginalColorControls.lSaturation);

  00bd7	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00bdd	8b 82 70 02 00
	00		 mov	 eax, DWORD PTR [edx+624]
  00be3	50		 push	 eax
  00be4	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00bea	8b 91 60 02 00
	00		 mov	 edx, DWORD PTR [ecx+608]
  00bf0	83 e2 08	 and	 edx, 8
  00bf3	52		 push	 edx
  00bf4	68 00 00 00 00	 push	 OFFSET ??_C@_1EO@OPCFEODA@?$AAO?$AAr?$AAi?$AAg?$AAi?$AAn?$AAa?$AAl?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AAS?$AAa?$AAt?$AAu?$AAr?$AAa?$AAt@
  00bf9	6a 03		 push	 3
  00bfb	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00c00	83 c4 10	 add	 esp, 16			; 00000010H

; 767  :             LOG(3, _T("OriginalColorControls %d Gamma %d"), OriginalColorControls.dwFlags & DDCOLOR_SHARPNESS, OriginalColorControls.lGamma);

  00c03	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00c09	8b 88 78 02 00
	00		 mov	 ecx, DWORD PTR [eax+632]
  00c0f	51		 push	 ecx
  00c10	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00c16	8b 82 60 02 00
	00		 mov	 eax, DWORD PTR [edx+608]
  00c1c	83 e0 10	 and	 eax, 16			; 00000010H
  00c1f	50		 push	 eax
  00c20	68 00 00 00 00	 push	 OFFSET ??_C@_1EE@ICMAFDCD@?$AAO?$AAr?$AAi?$AAg?$AAi?$AAn?$AAa?$AAl?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AAG?$AAa?$AAm?$AAm?$AAa?$AA?5?$AA?$CF@
  00c25	6a 03		 push	 3
  00c27	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00c2c	83 c4 10	 add	 esp, 16			; 00000010H

; 768  :             LOG(3, _T("OriginalColorControls %d Sharpness %d"), OriginalColorControls.dwFlags & DDCOLOR_GAMMA, OriginalColorControls.lSharpness);

  00c2f	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00c35	8b 91 74 02 00
	00		 mov	 edx, DWORD PTR [ecx+628]
  00c3b	52		 push	 edx
  00c3c	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00c42	8b 88 60 02 00
	00		 mov	 ecx, DWORD PTR [eax+608]
  00c48	83 e1 20	 and	 ecx, 32			; 00000020H
  00c4b	51		 push	 ecx
  00c4c	68 00 00 00 00	 push	 OFFSET ??_C@_1EM@OEEGCANE@?$AAO?$AAr?$AAi?$AAg?$AAi?$AAn?$AAa?$AAl?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?5?$AA?$CF?$AAd?$AA?5?$AAS?$AAh?$AAa?$AAr?$AAp?$AAn?$AAe@
  00c51	6a 03		 push	 3
  00c53	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00c58	83 c4 10	 add	 esp, 16			; 00000010H

; 769  :             if(bUseOverlayControls)

  00c5b	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00c61	83 ba 88 02 00
	00 00		 cmp	 DWORD PTR [edx+648], 0
  00c68	74 13		 je	 SHORT $LN4@Overlay_Cr

; 770  :             {
; 771  :                Overlay_SetColorControls();

  00c6a	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00c70	8b 10		 mov	 edx, DWORD PTR [eax]
  00c72	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00c78	8b 42 3c	 mov	 eax, DWORD PTR [edx+60]
  00c7b	ff d0		 call	 eax
$LN4@Overlay_Cr:

; 772  :             }
; 773  :         }
; 774  :         else

  00c7d	eb 30		 jmp	 SHORT $LN3@Overlay_Cr
$LN5@Overlay_Cr:

; 775  :         {
; 776  :             pDDColorControl->Release();

  00c7f	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00c85	8b 91 84 02 00
	00		 mov	 edx, DWORD PTR [ecx+644]
  00c8b	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00c91	8b 88 84 02 00
	00		 mov	 ecx, DWORD PTR [eax+644]
  00c97	8b 12		 mov	 edx, DWORD PTR [edx]
  00c99	51		 push	 ecx
  00c9a	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  00c9d	ff d0		 call	 eax

; 777  :             pDDColorControl = NULL;

  00c9f	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00ca5	c7 81 84 02 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+644], 0
$LN3@Overlay_Cr:

; 778  :         }
; 779  :     }
; 780  :     else

  00caf	eb 10		 jmp	 SHORT $LN2@Overlay_Cr
$LN6@Overlay_Cr:

; 781  :     {
; 782  :         pDDColorControl = NULL;

  00cb1	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00cb7	c7 82 84 02 00
	00 00 00 00 00	 mov	 DWORD PTR [edx+644], 0
$LN2@Overlay_Cr:

; 783  :     }
; 784  : 
; 785  : 
; 786  :     // try to create a memory buffer
; 787  :     // that we can use if any output filters are switched
; 788  :     // on.  This is required because reading and writing back to
; 789  :     // video memory is very slow
; 790  :     lpExtraMemoryForFilters = (BYTE*)malloc(DSCALER_MAX_WIDTH * DSCALER_MAX_HEIGHT * 2 + 16);

  00cc1	68 10 20 fd 00	 push	 16588816		; 00fd2010H
  00cc6	e8 00 00 00 00	 call	 _malloc
  00ccb	83 c4 04	 add	 esp, 4
  00cce	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00cd4	89 81 3c 02 00
	00		 mov	 DWORD PTR [ecx+572], eax

; 791  :     if(lpExtraMemoryForFilters == NULL)

  00cda	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00ce0	83 ba 3c 02 00
	00 00		 cmp	 DWORD PTR [edx+572], 0
  00ce7	75 1f		 jne	 SHORT $LN1@Overlay_Cr

; 792  :     {
; 793  :        // if we can't do a system memory buffer it's not the end of the
; 794  :        // world it just means that any output filters will run very slow
; 795  :        LOG(1, _T("Couldn't create additional buffer for output filters"));

  00ce9	68 00 00 00 00	 push	 OFFSET ??_C@_1GK@DJFPGDL@?$AAC?$AAo?$AAu?$AAl?$AAd?$AAn?$AA?8?$AAt?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAa?$AAd?$AAd?$AAi?$AAt?$AAi?$AAo?$AAn?$AAa?$AAl?$AA?5?$AAb?$AAu?$AAf?$AAf?$AAe@
  00cee	6a 01		 push	 1
  00cf0	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00cf5	83 c4 08	 add	 esp, 8

; 796  :        lpExtraMemoryForFilters = NULL;

  00cf8	8b 85 8c f8 ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00cfe	c7 80 3c 02 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+572], 0
$LN1@Overlay_Cr:

; 797  :     }
; 798  : 
; 799  :     LeaveCriticalSection(&hDDCritSect);

  00d08	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00d0e	81 c1 18 02 00
	00		 add	 ecx, 536		; 00000218H
  00d14	51		 push	 ecx
  00d15	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 800  : 
; 801  :     // overlay clean is wrapped in a critcal section already
; 802  :     Overlay_Clean();

  00d1b	8b 95 8c f8 ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00d21	8b 02		 mov	 eax, DWORD PTR [edx]
  00d23	8b 8d 8c f8 ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00d29	8b 50 28	 mov	 edx, DWORD PTR [eax+40]
  00d2c	ff d2		 call	 edx

; 803  : 
; 804  : // some code to work out how long a flip is
; 805  : // could be used by new JT code
; 806  : #ifdef _NOT_YET_USED
; 807  : 
; 808  :     int i = 0;
; 809  :     OutputTicksPerFrame = 0;
; 810  :     while(i < 5)
; 811  :     {
; 812  :         HRESULT hr = lpDD->WaitForVerticalBlank(DDWAITVB_BLOCKBEGIN, NULL);
; 813  :         ULONGLONG ticks1;
; 814  :         ULONGLONG ticks2;
; 815  : 
; 816  :         QueryPerformanceCounter((PLARGE_INTEGER)&ticks1);
; 817  : 
; 818  :         for(int j = 0; j < 10; ++j)
; 819  :         {
; 820  :             hr = lpDD->WaitForVerticalBlank(DDWAITVB_BLOCKBEGIN, NULL);
; 821  :         }
; 822  :         QueryPerformanceCounter((PLARGE_INTEGER)&ticks2);
; 823  :         ULONG Ticks = (ticks2 - ticks1);
; 824  :         // if we get the same answer to within 1% twice in a row
; 825  :         // we're done, this should avoid problems with pre-emption
; 826  :         if(OutputTicksPerFrame * 99 < Ticks * 10 &&
; 827  :             OutputTicksPerFrame * 101 > Ticks * 10)
; 828  :         {
; 829  :             break;
; 830  :         }
; 831  :         OutputTicksPerFrame = Ticks / 10;
; 832  :         ++i;
; 833  :     }
; 834  : 
; 835  :     if(i == 5)
; 836  :     {
; 837  :         LOG(1, _T("Trouble getting lock on Ticks per frame"));
; 838  :     }
; 839  : 
; 840  : #endif
; 841  : 
; 842  :     return (TRUE);

  00d2e	b8 01 00 00 00	 mov	 eax, 1
$LN40@Overlay_Cr:

; 843  : }

  00d33	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00d36	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00d3d	59		 pop	 ecx
  00d3e	5f		 pop	 edi
  00d3f	5e		 pop	 esi
  00d40	8b 8d 50 ff ff
	ff		 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  00d46	33 cd		 xor	 ecx, ebp
  00d48	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00d4d	8b e5		 mov	 esp, ebp
  00d4f	5d		 pop	 ebp
  00d50	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Overlay_Create@COverlayOutput@@UAEHXZ$0:
  00000	8d 8d a8 f9 ff
	ff		 lea	 ecx, DWORD PTR $T347842[ebp]
  00006	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$?Overlay_Create@COverlayOutput@@UAEHXZ$1:
  0000b	8d 8d 8c f9 ff
	ff		 lea	 ecx, DWORD PTR $T347847[ebp]
  00011	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$?Overlay_Create@COverlayOutput@@UAEHXZ$2:
  00016	8d 8d 70 f9 ff
	ff		 lea	 ecx, DWORD PTR $T347848[ebp]
  0001c	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$?Overlay_Create@COverlayOutput@@UAEHXZ$3:
  00021	8d 8d 54 f9 ff
	ff		 lea	 ecx, DWORD PTR $T347849[ebp]
  00027	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$?Overlay_Create@COverlayOutput@@UAEHXZ$4:
  0002c	8d 8d 38 f9 ff
	ff		 lea	 ecx, DWORD PTR $T347850[ebp]
  00032	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$?Overlay_Create@COverlayOutput@@UAEHXZ$5:
  00037	8d 8d 1c f9 ff
	ff		 lea	 ecx, DWORD PTR $T347851[ebp]
  0003d	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$?Overlay_Create@COverlayOutput@@UAEHXZ$6:
  00042	8d 8d 00 f9 ff
	ff		 lea	 ecx, DWORD PTR $T347852[ebp]
  00048	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$?Overlay_Create@COverlayOutput@@UAEHXZ$7:
  0004d	8d 8d e4 f8 ff
	ff		 lea	 ecx, DWORD PTR $T347853[ebp]
  00053	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$?Overlay_Create@COverlayOutput@@UAEHXZ$8:
  00058	8d 8d c8 f8 ff
	ff		 lea	 ecx, DWORD PTR $T347854[ebp]
  0005e	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$?Overlay_Create@COverlayOutput@@UAEHXZ$9:
  00063	8d 8d ac f8 ff
	ff		 lea	 ecx, DWORD PTR $T347855[ebp]
  00069	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$?Overlay_Create@COverlayOutput@@UAEHXZ$10:
  0006e	8d 8d 90 f8 ff
	ff		 lea	 ecx, DWORD PTR $T347856[ebp]
  00074	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$?Overlay_Create@COverlayOutput@@UAEHXZ:
  00079	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0007d	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00080	8b 8a 80 f8 ff
	ff		 mov	 ecx, DWORD PTR [edx-1920]
  00086	33 c8		 xor	 ecx, eax
  00088	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0008d	8b 8a 5c ff ff
	ff		 mov	 ecx, DWORD PTR [edx-164]
  00093	33 c8		 xor	 ecx, eax
  00095	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0009a	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?Overlay_Create@COverlayOutput@@UAEHXZ
  0009f	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?Overlay_Create@COverlayOutput@@UAEHXZ ENDP		; COverlayOutput::Overlay_Create
PUBLIC	?ListMonitors@COverlayOutput@@CAHPAUHWND__@@@Z	; COverlayOutput::ListMonitors
;	COMDAT ?lpDDEnumEx@?1??ListMonitors@COverlayOutput@@CAHPAUHWND__@@@Z@4V?$DynamicFunctionS3@JP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@ZPAXK@@A
_BSS	SEGMENT
?lpDDEnumEx@?1??ListMonitors@COverlayOutput@@CAHPAUHWND__@@@Z@4V?$DynamicFunctionS3@JP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@ZPAXK@@A DD 01H DUP (?) ; `COverlayOutput::ListMonitors'::`2'::lpDDEnumEx
_BSS	ENDS
;	COMDAT ?$S1@?1??ListMonitors@COverlayOutput@@CAHPAUHWND__@@@Z@4IA
_BSS	SEGMENT
?$S1@?1??ListMonitors@COverlayOutput@@CAHPAUHWND__@@@Z@4IA DD 01H DUP (?) ; `COverlayOutput::ListMonitors'::`2'::$S1
_BSS	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?ListMonitors@COverlayOutput@@CAHPAUHWND__@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?ListMonitors@COverlayOutput@@CAHPAUHWND__@@@Z$0
__ehfuncinfo$?ListMonitors@COverlayOutput@@CAHPAUHWND__@@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?ListMonitors@COverlayOutput@@CAHPAUHWND__@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?ListMonitors@COverlayOutput@@CAHPAUHWND__@@@Z
_TEXT	SEGMENT
_hr$142823 = -20					; size = 4
_RetVal$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_hWnd$ = 8						; size = 4
?ListMonitors@COverlayOutput@@CAHPAUHWND__@@@Z PROC	; COverlayOutput::ListMonitors, COMDAT

; 90   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?ListMonitors@COverlayOutput@@CAHPAUHWND__@@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 08	 sub	 esp, 8
  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

; 91   :     static DynamicFunctionS3<HRESULT, LPDDENUMCALLBACKEX, LPVOID, DWORD> lpDDEnumEx(_T("ddraw.dll"), ADD_API_LETTER(DirectDrawEnumerateEx));

  00025	a1 00 00 00 00	 mov	 eax, DWORD PTR ?$S1@?1??ListMonitors@COverlayOutput@@CAHPAUHWND__@@@Z@4IA
  0002a	83 e0 01	 and	 eax, 1
  0002d	75 31		 jne	 SHORT $LN4@ListMonito
  0002f	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?$S1@?1??ListMonitors@COverlayOutput@@CAHPAUHWND__@@@Z@4IA
  00035	83 c9 01	 or	 ecx, 1
  00038	89 0d 00 00 00
	00		 mov	 DWORD PTR ?$S1@?1??ListMonitors@COverlayOutput@@CAHPAUHWND__@@@Z@4IA, ecx
  0003e	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00045	68 00 00 00 00	 push	 OFFSET ??_C@_0BH@HJFPNDGE@DirectDrawEnumerateExW?$AA@
  0004a	68 00 00 00 00	 push	 OFFSET ??_C@_1BE@GPJFOKIG@?$AAd?$AAd?$AAr?$AAa?$AAw?$AA?4?$AAd?$AAl?$AAl?$AA?$AA@
  0004f	b9 00 00 00 00	 mov	 ecx, OFFSET ?lpDDEnumEx@?1??ListMonitors@COverlayOutput@@CAHPAUHWND__@@@Z@4V?$DynamicFunctionS3@JP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@ZPAXK@@A
  00054	e8 00 00 00 00	 call	 ??0?$DynamicFunctionS3@JP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@ZPAXK@@QAE@PB_WPBD@Z ; DynamicFunctionS3<long,int (__stdcall*)(_GUID *,wchar_t *,wchar_t *,void *,HMONITOR__ *),void *,unsigned long>::DynamicFunctionS3<long,int (__stdcall*)(_GUID *,wchar_t *,wchar_t *,void *,HMONITOR__ *),void *,unsigned long>
  00059	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
$LN4@ListMonito:

; 92   :     BOOL RetVal = TRUE;

  00060	c7 45 f0 01 00
	00 00		 mov	 DWORD PTR _RetVal$[ebp], 1

; 93   : 
; 94   :     NbMonitors = 0;

  00067	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR _NbMonitors, 0

; 95   : 
; 96   :     // Retrieve the function from the DirectDraw DLL
; 97   :     if (lpDDEnumEx)

  00071	b9 00 00 00 00	 mov	 ecx, OFFSET ?lpDDEnumEx@?1??ListMonitors@COverlayOutput@@CAHPAUHWND__@@@Z@4V?$DynamicFunctionS3@JP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@ZPAXK@@A
  00076	e8 00 00 00 00	 call	 ??B?$DynamicFunctionParent@P6GJP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@Z2K@Z@@QBEHXZ ; DynamicFunctionParent<long (__stdcall*)(int (__stdcall*)(_GUID *,wchar_t *,wchar_t *,void *,HMONITOR__ *),void *,unsigned long)>::operator int
  0007b	85 c0		 test	 eax, eax
  0007d	74 25		 je	 SHORT $LN3@ListMonito

; 98   :     {
; 99   :         // If the function is there, call it to enumerate all display
; 100  :         // devices attached to the desktop
; 101  :         HRESULT hr = lpDDEnumEx(DDEnumCallbackEx, NULL, DDENUM_ATTACHEDSECONDARYDEVICES);

  0007f	6a 01		 push	 1
  00081	6a 00		 push	 0
  00083	68 00 00 00 00	 push	 OFFSET ?DDEnumCallbackEx@COverlayOutput@@CGHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@Z ; COverlayOutput::DDEnumCallbackEx
  00088	b9 00 00 00 00	 mov	 ecx, OFFSET ?lpDDEnumEx@?1??ListMonitors@COverlayOutput@@CAHPAUHWND__@@@Z@4V?$DynamicFunctionS3@JP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@ZPAXK@@A
  0008d	e8 00 00 00 00	 call	 ??R?$DynamicFunctionS3@JP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@ZPAXK@@QBEJP6GHPAU_GUID@@PA_W1PAXPAUHMONITOR__@@@Z2K@Z ; DynamicFunctionS3<long,int (__stdcall*)(_GUID *,wchar_t *,wchar_t *,void *,HMONITOR__ *),void *,unsigned long>::operator()
  00092	89 45 ec	 mov	 DWORD PTR _hr$142823[ebp], eax

; 102  :         if(hr != DD_OK)

  00095	83 7d ec 00	 cmp	 DWORD PTR _hr$142823[ebp], 0
  00099	74 07		 je	 SHORT $LN2@ListMonito

; 103  :         {
; 104  :             //LOG(0, _T("DDEnumEx failed %08x"), hr);
; 105  :             RetVal = FALSE;

  0009b	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _RetVal$[ebp], 0
$LN2@ListMonito:

; 106  :         }
; 107  :     }
; 108  :     else

  000a2	eb 07		 jmp	 SHORT $LN1@ListMonito
$LN3@ListMonito:

; 109  :     {
; 110  :         RetVal = FALSE;

  000a4	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _RetVal$[ebp], 0
$LN1@ListMonito:

; 111  :     }
; 112  :     return RetVal;

  000ab	8b 45 f0	 mov	 eax, DWORD PTR _RetVal$[ebp]

; 113  : }

  000ae	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  000b1	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000b8	59		 pop	 ecx
  000b9	8b e5		 mov	 esp, ebp
  000bb	5d		 pop	 ebp
  000bc	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?ListMonitors@COverlayOutput@@CAHPAUHWND__@@@Z$0:
  00000	a1 00 00 00 00	 mov	 eax, DWORD PTR ?$S1@?1??ListMonitors@COverlayOutput@@CAHPAUHWND__@@@Z@4IA
  00005	83 e0 fe	 and	 eax, -2			; fffffffeH
  00008	a3 00 00 00 00	 mov	 DWORD PTR ?$S1@?1??ListMonitors@COverlayOutput@@CAHPAUHWND__@@@Z@4IA, eax
  0000d	c3		 ret	 0
__ehhandler$?ListMonitors@COverlayOutput@@CAHPAUHWND__@@@Z:
  0000e	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00012	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00015	8b 4a f4	 mov	 ecx, DWORD PTR [edx-12]
  00018	33 c8		 xor	 ecx, eax
  0001a	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001f	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?ListMonitors@COverlayOutput@@CAHPAUHWND__@@@Z
  00024	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?ListMonitors@COverlayOutput@@CAHPAUHWND__@@@Z ENDP	; COverlayOutput::ListMonitors
; Function compile flags: /Odtp
;	COMDAT ?Overlay_Flip@COverlayOutput@@UAEHKHPAEHPAUTDeinterlaceInfo@@@Z
_TEXT	SEGMENT
tv159 = -12						; size = 4
_this$ = -8						; size = 4
_RetVal$ = -4						; size = 4
_FlipFlag$ = 8						; size = 4
_bUseExtraBuffer$ = 12					; size = 4
_lpExternalMemoryBuffer$ = 16				; size = 4
_ExternalPitch$ = 20					; size = 4
_pInfo$ = 24						; size = 4
?Overlay_Flip@COverlayOutput@@UAEHKHPAEHPAUTDeinterlaceInfo@@@Z PROC ; COverlayOutput::Overlay_Flip, COMDAT
; _this$ = ecx

; 1227 : {

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

; 1228 :     if(lpDDOverlay == NULL)

  00009	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	83 b8 34 02 00
	00 00		 cmp	 DWORD PTR [eax+564], 0
  00013	75 16		 jne	 SHORT $LN8@Overlay_Fl@2

; 1229 :     {
; 1230 :         LOG(1, _T("Overlay has been deleted"));

  00015	68 00 00 00 00	 push	 OFFSET ??_C@_1DC@LOEJMHFN@?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAh?$AAa?$AAs?$AA?5?$AAb?$AAe?$AAe?$AAn?$AA?5?$AAd?$AAe?$AAl?$AAe?$AAt?$AAe?$AAd?$AA?$AA@
  0001a	6a 01		 push	 1
  0001c	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00021	83 c4 08	 add	 esp, 8

; 1231 :         return FALSE;

  00024	33 c0		 xor	 eax, eax
  00026	e9 74 01 00 00	 jmp	 $LN9@Overlay_Fl@2
$LN8@Overlay_Fl@2:

; 1232 :     }
; 1233 : 
; 1234 :     if(bUseExtraBuffer && lpExternalMemoryBuffer != NULL)

  0002b	83 7d 0c 00	 cmp	 DWORD PTR _bUseExtraBuffer$[ebp], 0
  0002f	74 1c		 je	 SHORT $LN7@Overlay_Fl@2
  00031	83 7d 10 00	 cmp	 DWORD PTR _lpExternalMemoryBuffer$[ebp], 0
  00035	74 16		 je	 SHORT $LN7@Overlay_Fl@2

; 1235 :     {
; 1236 :         Overlay_Copy_External(lpExternalMemoryBuffer, ExternalPitch, pInfo);

  00037	8b 4d 18	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  0003a	51		 push	 ecx
  0003b	8b 55 14	 mov	 edx, DWORD PTR _ExternalPitch$[ebp]
  0003e	52		 push	 edx
  0003f	8b 45 10	 mov	 eax, DWORD PTR _lpExternalMemoryBuffer$[ebp]
  00042	50		 push	 eax
  00043	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00046	e8 00 00 00 00	 call	 ?Overlay_Copy_External@COverlayOutput@@QAEXPAEHPAUTDeinterlaceInfo@@@Z ; COverlayOutput::Overlay_Copy_External
  0004b	eb 1e		 jmp	 SHORT $LN6@Overlay_Fl@2
$LN7@Overlay_Fl@2:

; 1237 :     }
; 1238 : 
; 1239 :     // if we have been using the extra surface then we need to copy
; 1240 :     // the picture onto the overlay
; 1241 :     else if(bUseExtraBuffer && lpExtraMemoryForFilters != NULL)

  0004d	83 7d 0c 00	 cmp	 DWORD PTR _bUseExtraBuffer$[ebp], 0
  00051	74 18		 je	 SHORT $LN6@Overlay_Fl@2
  00053	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00056	83 b9 3c 02 00
	00 00		 cmp	 DWORD PTR [ecx+572], 0
  0005d	74 0c		 je	 SHORT $LN6@Overlay_Fl@2

; 1242 :     {
; 1243 :         Overlay_Copy_Extra(pInfo);

  0005f	8b 55 18	 mov	 edx, DWORD PTR _pInfo$[ebp]
  00062	52		 push	 edx
  00063	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00066	e8 00 00 00 00	 call	 ?Overlay_Copy_Extra@COverlayOutput@@QAEXPAUTDeinterlaceInfo@@@Z ; COverlayOutput::Overlay_Copy_Extra
$LN6@Overlay_Fl@2:

; 1244 :     }
; 1245 : 
; 1246 : 
; 1247 : 
; 1248 : 
; 1249 :     EnterCriticalSection(&hDDCritSect);

  0006b	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0006e	05 18 02 00 00	 add	 eax, 536		; 00000218H
  00073	50		 push	 eax
  00074	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1250 : 
; 1251 :     BOOL RetVal = TRUE;

  0007a	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _RetVal$[ebp], 1

; 1252 :     FlipResult = lpDDOverlay->Flip(NULL, FlipFlag);

  00081	8b 4d 08	 mov	 ecx, DWORD PTR _FlipFlag$[ebp]
  00084	51		 push	 ecx
  00085	6a 00		 push	 0
  00087	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  0008a	8b 82 34 02 00
	00		 mov	 eax, DWORD PTR [edx+564]
  00090	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00093	8b 91 34 02 00
	00		 mov	 edx, DWORD PTR [ecx+564]
  00099	8b 00		 mov	 eax, DWORD PTR [eax]
  0009b	52		 push	 edx
  0009c	8b 48 2c	 mov	 ecx, DWORD PTR [eax+44]
  0009f	ff d1		 call	 ecx
  000a1	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  000a4	89 82 a8 02 00
	00		 mov	 DWORD PTR [edx+680], eax

; 1253 :     if(FAILED(FlipResult))

  000aa	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  000ad	83 b8 a8 02 00
	00 00		 cmp	 DWORD PTR [eax+680], 0
  000b4	0f 8d d3 00 00
	00		 jge	 $LN4@Overlay_Fl@2

; 1254 :     {
; 1255 :         // cope with card's that don't support waiting for the flip
; 1256 :         if(FlipFlag != DDFLIP_WAIT && FlipResult == DDERR_INVALIDPARAMS)

  000ba	83 7d 08 01	 cmp	 DWORD PTR _FlipFlag$[ebp], 1
  000be	74 53		 je	 SHORT $LN3@Overlay_Fl@2
  000c0	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  000c3	81 b9 a8 02 00
	00 57 00 07 80	 cmp	 DWORD PTR [ecx+680], -2147024809 ; 80070057H
  000cd	75 44		 jne	 SHORT $LN3@Overlay_Fl@2

; 1257 :         {
; 1258 :             FlipResult = lpDDOverlay->Flip(NULL, DDFLIP_WAIT);

  000cf	6a 01		 push	 1
  000d1	6a 00		 push	 0
  000d3	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  000d6	8b 82 34 02 00
	00		 mov	 eax, DWORD PTR [edx+564]
  000dc	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  000df	8b 91 34 02 00
	00		 mov	 edx, DWORD PTR [ecx+564]
  000e5	8b 00		 mov	 eax, DWORD PTR [eax]
  000e7	52		 push	 edx
  000e8	8b 48 2c	 mov	 ecx, DWORD PTR [eax+44]
  000eb	ff d1		 call	 ecx
  000ed	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  000f0	89 82 a8 02 00
	00		 mov	 DWORD PTR [edx+680], eax

; 1259 :             if(SUCCEEDED(FlipResult))

  000f6	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  000f9	83 b8 a8 02 00
	00 00		 cmp	 DWORD PTR [eax+680], 0
  00100	7c 11		 jl	 SHORT $LN3@Overlay_Fl@2

; 1260 :             {
; 1261 :                 PostMessageToMainWindow(WM_OUTTHREADS_SETVALUE, WAITFORFLIP, 1);

  00102	6a 01		 push	 1
  00104	6a 01		 push	 1
  00106	68 68 80 00 00	 push	 32872			; 00008068H
  0010b	e8 00 00 00 00	 call	 ?PostMessageToMainWindow@@YAXIIJ@Z ; PostMessageToMainWindow
  00110	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN3@Overlay_Fl@2:

; 1262 :             }
; 1263 :         }
; 1264 :         if(FlipResult != DDERR_WASSTILLDRAWING &&
; 1265 :             FlipResult != DDERR_SURFACELOST &&
; 1266 :             FlipResult != DDERR_NOTFLIPPABLE)

  00113	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00116	81 b9 a8 02 00
	00 1c 02 76 88	 cmp	 DWORD PTR [ecx+680], -2005532132 ; 8876021cH
  00120	74 37		 je	 SHORT $LN1@Overlay_Fl@2
  00122	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00125	81 ba a8 02 00
	00 c2 01 76 88	 cmp	 DWORD PTR [edx+680], -2005532222 ; 887601c2H
  0012f	74 28		 je	 SHORT $LN1@Overlay_Fl@2
  00131	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00134	81 b8 a8 02 00
	00 46 02 76 88	 cmp	 DWORD PTR [eax+680], -2005532090 ; 88760246H
  0013e	74 19		 je	 SHORT $LN1@Overlay_Fl@2

; 1267 :         {
; 1268 :             LOG(1, _T("Surface Flip failed %8x"), FlipResult);

  00140	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00143	8b 91 a8 02 00
	00		 mov	 edx, DWORD PTR [ecx+680]
  00149	52		 push	 edx
  0014a	68 00 00 00 00	 push	 OFFSET ??_C@_1DA@EJAAJPMA@?$AAS?$AAu?$AAr?$AAf?$AAa?$AAc?$AAe?$AA?5?$AAF?$AAl?$AAi?$AAp?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5?$AA?$CF?$AA8?$AAx?$AA?$AA@
  0014f	6a 01		 push	 1
  00151	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00156	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN1@Overlay_Fl@2:

; 1269 :         }
; 1270 :         // return OK if we get DDERR_WASSTILLDRAWING
; 1271 :         // we'll do the flip next time
; 1272 :         // also if we get DDERR_NOTFLIPPABLE
; 1273 :         // as this probably means the overlay has been hiden
; 1274 :         RetVal = (FlipResult == DDERR_WASSTILLDRAWING) || (FlipResult == DDERR_NOTFLIPPABLE);

  00159	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0015c	81 b8 a8 02 00
	00 1c 02 76 88	 cmp	 DWORD PTR [eax+680], -2005532132 ; 8876021cH
  00166	74 18		 je	 SHORT $LN11@Overlay_Fl@2
  00168	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0016b	81 b9 a8 02 00
	00 46 02 76 88	 cmp	 DWORD PTR [ecx+680], -2005532090 ; 88760246H
  00175	74 09		 je	 SHORT $LN11@Overlay_Fl@2
  00177	c7 45 f4 00 00
	00 00		 mov	 DWORD PTR tv159[ebp], 0
  0017e	eb 07		 jmp	 SHORT $LN12@Overlay_Fl@2
$LN11@Overlay_Fl@2:
  00180	c7 45 f4 01 00
	00 00		 mov	 DWORD PTR tv159[ebp], 1
$LN12@Overlay_Fl@2:
  00187	8b 55 f4	 mov	 edx, DWORD PTR tv159[ebp]
  0018a	89 55 fc	 mov	 DWORD PTR _RetVal$[ebp], edx
$LN4@Overlay_Fl@2:

; 1275 :     }
; 1276 :     LeaveCriticalSection(&hDDCritSect);

  0018d	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00190	05 18 02 00 00	 add	 eax, 536		; 00000218H
  00195	50		 push	 eax
  00196	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1277 :     return RetVal;

  0019c	8b 45 fc	 mov	 eax, DWORD PTR _RetVal$[ebp]
$LN9@Overlay_Fl@2:

; 1278 : }

  0019f	8b e5		 mov	 esp, ebp
  001a1	5d		 pop	 ebp
  001a2	c2 14 00	 ret	 20			; 00000014H
?Overlay_Flip@COverlayOutput@@UAEHKHPAEHPAUTDeinterlaceInfo@@@Z ENDP ; COverlayOutput::Overlay_Flip
PUBLIC	?Overlay_ReadSettingsFromIni@@YAXXZ		; Overlay_ReadSettingsFromIni
; Function compile flags: /Odtp
;	COMDAT ?Overlay_ReadSettingsFromIni@@YAXXZ
_TEXT	SEGMENT
_pOverlayGroup$ = -4					; size = 4
?Overlay_ReadSettingsFromIni@@YAXXZ PROC		; Overlay_ReadSettingsFromIni, COMDAT

; 1636 : {

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

; 1637 :     CSettingGroup *pOverlayGroup = SettingsMaster->GetGroup(_T("Overlay"), SETTING_BY_CHANNEL | SETTING_BY_FORMAT | SETTING_BY_INPUT, FALSE);

  00004	6a 00		 push	 0
  00006	6a 07		 push	 7
  00008	68 00 00 00 00	 push	 OFFSET ??_C@_1BA@LBOLBFDJ@?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?$AA@
  0000d	b9 00 00 00 00	 mov	 ecx, OFFSET ?SettingsMaster@@3V?$SmartPtr@VCSettingsMaster@@@@A ; SettingsMaster
  00012	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSettingsMaster@@@@QBEPAVCSettingsMaster@@XZ ; SmartPtr<CSettingsMaster>::operator->
  00017	8b c8		 mov	 ecx, eax
  00019	e8 00 00 00 00	 call	 ?GetGroup@CSettingsMaster@@QAEPAVCSettingGroup@@PB_WKH@Z ; CSettingsMaster::GetGroup
  0001e	89 45 fc	 mov	 DWORD PTR _pOverlayGroup$[ebp], eax

; 1638 : 
; 1639 :     OverlaySettingsHolder.AddSetting(&OverlayOutputInstance.GetOtherSettings()[OVERLAYBRIGHTNESS], pOverlayGroup);

  00021	8b 45 fc	 mov	 eax, DWORD PTR _pOverlayGroup$[ebp]
  00024	50		 push	 eax
  00025	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlayOutputInstance@@3VCOverlayOutput@@A ; OverlayOutputInstance
  0002a	e8 00 00 00 00	 call	 ?GetOtherSettings@IOutput@@QAEPAUSETTING@@XZ ; IOutput::GetOtherSettings
  0002f	05 9c 00 00 00	 add	 eax, 156		; 0000009cH
  00034	50		 push	 eax
  00035	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlaySettingsHolder@@3VCSettingsHolder@@A ; OverlaySettingsHolder
  0003a	e8 00 00 00 00	 call	 ?AddSetting@CSettingsHolder@@QAEXPAUSETTING@@PAVCSettingGroup@@@Z ; CSettingsHolder::AddSetting

; 1640 :     OverlaySettingsHolder.AddSetting(&OverlayOutputInstance.GetOtherSettings()[OVERLAYCONTRAST], pOverlayGroup);

  0003f	8b 4d fc	 mov	 ecx, DWORD PTR _pOverlayGroup$[ebp]
  00042	51		 push	 ecx
  00043	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlayOutputInstance@@3VCOverlayOutput@@A ; OverlayOutputInstance
  00048	e8 00 00 00 00	 call	 ?GetOtherSettings@IOutput@@QAEPAUSETTING@@XZ ; IOutput::GetOtherSettings
  0004d	05 d0 00 00 00	 add	 eax, 208		; 000000d0H
  00052	50		 push	 eax
  00053	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlaySettingsHolder@@3VCSettingsHolder@@A ; OverlaySettingsHolder
  00058	e8 00 00 00 00	 call	 ?AddSetting@CSettingsHolder@@QAEXPAUSETTING@@PAVCSettingGroup@@@Z ; CSettingsHolder::AddSetting

; 1641 :     OverlaySettingsHolder.AddSetting(&OverlayOutputInstance.GetOtherSettings()[OVERLAYHUE], pOverlayGroup);

  0005d	8b 55 fc	 mov	 edx, DWORD PTR _pOverlayGroup$[ebp]
  00060	52		 push	 edx
  00061	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlayOutputInstance@@3VCOverlayOutput@@A ; OverlayOutputInstance
  00066	e8 00 00 00 00	 call	 ?GetOtherSettings@IOutput@@QAEPAUSETTING@@XZ ; IOutput::GetOtherSettings
  0006b	05 04 01 00 00	 add	 eax, 260		; 00000104H
  00070	50		 push	 eax
  00071	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlaySettingsHolder@@3VCSettingsHolder@@A ; OverlaySettingsHolder
  00076	e8 00 00 00 00	 call	 ?AddSetting@CSettingsHolder@@QAEXPAUSETTING@@PAVCSettingGroup@@@Z ; CSettingsHolder::AddSetting

; 1642 :     OverlaySettingsHolder.AddSetting(&OverlayOutputInstance.GetOtherSettings()[OVERLAYSATURATION], pOverlayGroup);

  0007b	8b 45 fc	 mov	 eax, DWORD PTR _pOverlayGroup$[ebp]
  0007e	50		 push	 eax
  0007f	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlayOutputInstance@@3VCOverlayOutput@@A ; OverlayOutputInstance
  00084	e8 00 00 00 00	 call	 ?GetOtherSettings@IOutput@@QAEPAUSETTING@@XZ ; IOutput::GetOtherSettings
  00089	05 38 01 00 00	 add	 eax, 312		; 00000138H
  0008e	50		 push	 eax
  0008f	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlaySettingsHolder@@3VCSettingsHolder@@A ; OverlaySettingsHolder
  00094	e8 00 00 00 00	 call	 ?AddSetting@CSettingsHolder@@QAEXPAUSETTING@@PAVCSettingGroup@@@Z ; CSettingsHolder::AddSetting

; 1643 :     OverlaySettingsHolder.AddSetting(&OverlayOutputInstance.GetOtherSettings()[OVERLAYGAMMA], pOverlayGroup);

  00099	8b 4d fc	 mov	 ecx, DWORD PTR _pOverlayGroup$[ebp]
  0009c	51		 push	 ecx
  0009d	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlayOutputInstance@@3VCOverlayOutput@@A ; OverlayOutputInstance
  000a2	e8 00 00 00 00	 call	 ?GetOtherSettings@IOutput@@QAEPAUSETTING@@XZ ; IOutput::GetOtherSettings
  000a7	05 6c 01 00 00	 add	 eax, 364		; 0000016cH
  000ac	50		 push	 eax
  000ad	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlaySettingsHolder@@3VCSettingsHolder@@A ; OverlaySettingsHolder
  000b2	e8 00 00 00 00	 call	 ?AddSetting@CSettingsHolder@@QAEXPAUSETTING@@PAVCSettingGroup@@@Z ; CSettingsHolder::AddSetting

; 1644 :     OverlaySettingsHolder.AddSetting(&OverlayOutputInstance.GetOtherSettings()[OVERLAYSHARPNESS], pOverlayGroup);

  000b7	8b 55 fc	 mov	 edx, DWORD PTR _pOverlayGroup$[ebp]
  000ba	52		 push	 edx
  000bb	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlayOutputInstance@@3VCOverlayOutput@@A ; OverlayOutputInstance
  000c0	e8 00 00 00 00	 call	 ?GetOtherSettings@IOutput@@QAEPAUSETTING@@XZ ; IOutput::GetOtherSettings
  000c5	05 a0 01 00 00	 add	 eax, 416		; 000001a0H
  000ca	50		 push	 eax
  000cb	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlaySettingsHolder@@3VCSettingsHolder@@A ; OverlaySettingsHolder
  000d0	e8 00 00 00 00	 call	 ?AddSetting@CSettingsHolder@@QAEXPAUSETTING@@PAVCSettingGroup@@@Z ; CSettingsHolder::AddSetting

; 1645 : 
; 1646 :     OverlaySettingsHolder.AddSetting(&OverlayOutputInstance.GetOtherSettings()[BACKBUFFERS]);

  000d5	6a 00		 push	 0
  000d7	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlayOutputInstance@@3VCOverlayOutput@@A ; OverlayOutputInstance
  000dc	e8 00 00 00 00	 call	 ?GetOtherSettings@IOutput@@QAEPAUSETTING@@XZ ; IOutput::GetOtherSettings
  000e1	50		 push	 eax
  000e2	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlaySettingsHolder@@3VCSettingsHolder@@A ; OverlaySettingsHolder
  000e7	e8 00 00 00 00	 call	 ?AddSetting@CSettingsHolder@@QAEXPAUSETTING@@PAVCSettingGroup@@@Z ; CSettingsHolder::AddSetting

; 1647 :     OverlaySettingsHolder.AddSetting(&OverlayOutputInstance.GetOtherSettings()[OVERLAYCOLOR]);

  000ec	6a 00		 push	 0
  000ee	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlayOutputInstance@@3VCOverlayOutput@@A ; OverlayOutputInstance
  000f3	e8 00 00 00 00	 call	 ?GetOtherSettings@IOutput@@QAEPAUSETTING@@XZ ; IOutput::GetOtherSettings
  000f8	83 c0 34	 add	 eax, 52			; 00000034H
  000fb	50		 push	 eax
  000fc	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlaySettingsHolder@@3VCSettingsHolder@@A ; OverlaySettingsHolder
  00101	e8 00 00 00 00	 call	 ?AddSetting@CSettingsHolder@@QAEXPAUSETTING@@PAVCSettingGroup@@@Z ; CSettingsHolder::AddSetting

; 1648 :     OverlaySettingsHolder.AddSetting(&OverlayOutputInstance.GetOtherSettings()[USEOVERLAYCONTROLS]);

  00106	6a 00		 push	 0
  00108	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlayOutputInstance@@3VCOverlayOutput@@A ; OverlayOutputInstance
  0010d	e8 00 00 00 00	 call	 ?GetOtherSettings@IOutput@@QAEPAUSETTING@@XZ ; IOutput::GetOtherSettings
  00112	83 c0 68	 add	 eax, 104		; 00000068H
  00115	50		 push	 eax
  00116	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlaySettingsHolder@@3VCSettingsHolder@@A ; OverlaySettingsHolder
  0011b	e8 00 00 00 00	 call	 ?AddSetting@CSettingsHolder@@QAEXPAUSETTING@@PAVCSettingGroup@@@Z ; CSettingsHolder::AddSetting

; 1649 :     OverlaySettingsHolder.AddSetting(&OverlayOutputInstance.GetOtherSettings()[ALLOWBOBMODE]);

  00120	6a 00		 push	 0
  00122	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlayOutputInstance@@3VCOverlayOutput@@A ; OverlayOutputInstance
  00127	e8 00 00 00 00	 call	 ?GetOtherSettings@IOutput@@QAEPAUSETTING@@XZ ; IOutput::GetOtherSettings
  0012c	05 d4 01 00 00	 add	 eax, 468		; 000001d4H
  00131	50		 push	 eax
  00132	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlaySettingsHolder@@3VCSettingsHolder@@A ; OverlaySettingsHolder
  00137	e8 00 00 00 00	 call	 ?AddSetting@CSettingsHolder@@QAEXPAUSETTING@@PAVCSettingGroup@@@Z ; CSettingsHolder::AddSetting

; 1650 : 
; 1651 : #ifdef _DEBUG
; 1652 :     if (OTHER_SETTING_LASTONE != OverlaySettingsHolder.GetNumSettings())
; 1653 :     {
; 1654 :         LOGD(_T("Number of settings in Overlay source is not equal to the number of settings in DS_Control.h"));
; 1655 :         LOGD(_T("DS_Control.h or Other.cpp are probably not in sync with each other."));
; 1656 :     }
; 1657 : #endif
; 1658 : 
; 1659 :     OverlaySettingsHolder.DisableOnChange();

  0013c	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlaySettingsHolder@@3VCSettingsHolder@@A ; OverlaySettingsHolder
  00141	e8 00 00 00 00	 call	 ?DisableOnChange@CSettingsHolder@@QAEXXZ ; CSettingsHolder::DisableOnChange

; 1660 :     OverlaySettingsHolder.ReadFromIni();

  00146	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlaySettingsHolder@@3VCSettingsHolder@@A ; OverlaySettingsHolder
  0014b	e8 00 00 00 00	 call	 ?ReadFromIni@CSettingsHolder@@QAEXXZ ; CSettingsHolder::ReadFromIni

; 1661 :     OverlaySettingsHolder.EnableOnChange();

  00150	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlaySettingsHolder@@3VCSettingsHolder@@A ; OverlaySettingsHolder
  00155	e8 00 00 00 00	 call	 ?EnableOnChange@CSettingsHolder@@QAEXXZ ; CSettingsHolder::EnableOnChange

; 1662 : }

  0015a	8b e5		 mov	 esp, ebp
  0015c	5d		 pop	 ebp
  0015d	c3		 ret	 0
?Overlay_ReadSettingsFromIni@@YAXXZ ENDP		; Overlay_ReadSettingsFromIni
_TEXT	ENDS
PUBLIC	__$ArrayPad$
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Overlay_SetColorControls@COverlayOutput@@UAEXXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Overlay_SetColorControls@COverlayOutput@@UAEXXZ$0
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Overlay_SetColorControls@COverlayOutput@@UAEXXZ$1
__ehfuncinfo$?Overlay_SetColorControls@COverlayOutput@@UAEXXZ DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?Overlay_SetColorControls@COverlayOutput@@UAEXXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?Overlay_SetColorControls@COverlayOutput@@UAEXXZ
_TEXT	SEGMENT
_this$ = -520						; size = 4
$T355024 = -516						; size = 28
$T355023 = -488						; size = 28
_szErrorMsg$143012 = -460				; size = 400
__$ArrayPad$ = -60					; size = 4
_ddrval$143009 = -56					; size = 4
_sColorControl$ = -52					; size = 40
__$EHRec$ = -12						; size = 12
?Overlay_SetColorControls@COverlayOutput@@UAEXXZ PROC	; COverlayOutput::Overlay_SetColorControls, COMDAT
; _this$ = ecx

; 447  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?Overlay_SetColorControls@COverlayOutput@@UAEXXZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	81 ec fc 01 00
	00		 sub	 esp, 508		; 000001fcH
  00017	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001c	33 c5		 xor	 eax, ebp
  0001e	89 45 c4	 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
  0002b	89 8d f8 fd ff
	ff		 mov	 DWORD PTR _this$[ebp], ecx

; 448  :     DDCOLORCONTROL sColorControl;
; 449  : 
; 450  :     if (pDDColorControl == NULL)

  00031	8b 85 f8 fd ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00037	83 b8 84 02 00
	00 00		 cmp	 DWORD PTR [eax+644], 0
  0003e	75 05		 jne	 SHORT $LN13@Overlay_Se

; 451  :     {
; 452  :         return;

  00040	e9 42 02 00 00	 jmp	 $LN14@Overlay_Se
$LN13@Overlay_Se:

; 453  :     }
; 454  : 
; 455  :     sColorControl.dwSize = sizeof(DDCOLORCONTROL);

  00045	c7 45 cc 28 00
	00 00		 mov	 DWORD PTR _sColorControl$[ebp], 40 ; 00000028H

; 456  :     if (SUCCEEDED(pDDColorControl->GetColorControls(&sColorControl)))

  0004c	8d 4d cc	 lea	 ecx, DWORD PTR _sColorControl$[ebp]
  0004f	51		 push	 ecx
  00050	8b 95 f8 fd ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00056	8b 82 84 02 00
	00		 mov	 eax, DWORD PTR [edx+644]
  0005c	8b 8d f8 fd ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00062	8b 91 84 02 00
	00		 mov	 edx, DWORD PTR [ecx+644]
  00068	8b 00		 mov	 eax, DWORD PTR [eax]
  0006a	52		 push	 edx
  0006b	8b 48 0c	 mov	 ecx, DWORD PTR [eax+12]
  0006e	ff d1		 call	 ecx
  00070	85 c0		 test	 eax, eax
  00072	0f 8c cb 01 00
	00		 jl	 $LN12@Overlay_Se

; 457  :     {
; 458  :         if(sColorControl.dwFlags != 0)

  00078	83 7d d0 00	 cmp	 DWORD PTR _sColorControl$[ebp+4], 0
  0007c	0f 84 bf 01 00
	00		 je	 $LN11@Overlay_Se

; 459  :         {
; 460  :             // Needed on the nVidia
; 461  :             if(OriginalColorControls.dwFlags == 0)

  00082	8b 95 f8 fd ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00088	83 ba 60 02 00
	00 00		 cmp	 DWORD PTR [edx+608], 0
  0008f	0f 85 ab 00 00
	00		 jne	 $LN10@Overlay_Se

; 462  :             {
; 463  :                 memcpy(&OriginalColorControls, &sColorControl, sizeof(DDCOLORCONTROL));

  00095	6a 28		 push	 40			; 00000028H
  00097	8d 45 cc	 lea	 eax, DWORD PTR _sColorControl$[ebp]
  0009a	50		 push	 eax
  0009b	8b 8d f8 fd ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  000a1	81 c1 5c 02 00
	00		 add	 ecx, 604		; 0000025cH
  000a7	51		 push	 ecx
  000a8	e8 00 00 00 00	 call	 _memcpy
  000ad	83 c4 0c	 add	 esp, 12			; 0000000cH

; 464  :                 if(!(sColorControl.dwFlags & DDCOLOR_BRIGHTNESS))

  000b0	8b 55 d0	 mov	 edx, DWORD PTR _sColorControl$[ebp+4]
  000b3	83 e2 01	 and	 edx, 1
  000b6	75 10		 jne	 SHORT $LN9@Overlay_Se

; 465  :                 {
; 466  :                     OtherSettings[OVERLAYBRIGHTNESS].szDisplayName = NULL;

  000b8	8b 85 f8 fd ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  000be	c7 80 a4 00 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+164], 0
$LN9@Overlay_Se:

; 467  :                 }
; 468  :                 if(!(sColorControl.dwFlags & DDCOLOR_CONTRAST))

  000c8	8b 4d d0	 mov	 ecx, DWORD PTR _sColorControl$[ebp+4]
  000cb	83 e1 02	 and	 ecx, 2
  000ce	75 10		 jne	 SHORT $LN8@Overlay_Se

; 469  :                 {
; 470  :                     OtherSettings[OVERLAYCONTRAST].szDisplayName = NULL;

  000d0	8b 95 f8 fd ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  000d6	c7 82 d8 00 00
	00 00 00 00 00	 mov	 DWORD PTR [edx+216], 0
$LN8@Overlay_Se:

; 471  :                 }
; 472  :                 if(!(sColorControl.dwFlags & DDCOLOR_HUE))

  000e0	8b 45 d0	 mov	 eax, DWORD PTR _sColorControl$[ebp+4]
  000e3	83 e0 04	 and	 eax, 4
  000e6	75 10		 jne	 SHORT $LN7@Overlay_Se

; 473  :                 {
; 474  :                     OtherSettings[OVERLAYHUE].szDisplayName = NULL;

  000e8	8b 8d f8 fd ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  000ee	c7 81 0c 01 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+268], 0
$LN7@Overlay_Se:

; 475  :                 }
; 476  :                 if(!(sColorControl.dwFlags & DDCOLOR_SATURATION))

  000f8	8b 55 d0	 mov	 edx, DWORD PTR _sColorControl$[ebp+4]
  000fb	83 e2 08	 and	 edx, 8
  000fe	75 10		 jne	 SHORT $LN6@Overlay_Se

; 477  :                 {
; 478  :                     OtherSettings[OVERLAYSATURATION].szDisplayName = NULL;

  00100	8b 85 f8 fd ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00106	c7 80 40 01 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+320], 0
$LN6@Overlay_Se:

; 479  :                 }
; 480  :                 if(!(sColorControl.dwFlags & DDCOLOR_SHARPNESS))

  00110	8b 4d d0	 mov	 ecx, DWORD PTR _sColorControl$[ebp+4]
  00113	83 e1 10	 and	 ecx, 16			; 00000010H
  00116	75 10		 jne	 SHORT $LN5@Overlay_Se

; 481  :                 {
; 482  :                     OtherSettings[OVERLAYSHARPNESS].szDisplayName = NULL;

  00118	8b 95 f8 fd ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  0011e	c7 82 a8 01 00
	00 00 00 00 00	 mov	 DWORD PTR [edx+424], 0
$LN5@Overlay_Se:

; 483  :                 }
; 484  :                 if(!(sColorControl.dwFlags & DDCOLOR_GAMMA))

  00128	8b 45 d0	 mov	 eax, DWORD PTR _sColorControl$[ebp+4]
  0012b	83 e0 20	 and	 eax, 32			; 00000020H
  0012e	75 10		 jne	 SHORT $LN10@Overlay_Se

; 485  :                 {
; 486  :                     OtherSettings[OVERLAYGAMMA].szDisplayName = NULL;

  00130	8b 8d f8 fd ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00136	c7 81 74 01 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+372], 0
$LN10@Overlay_Se:

; 487  :                 }
; 488  : 
; 489  :             }
; 490  : 
; 491  :             sColorControl.lBrightness = OverlayBrightness * 10;

  00140	8b 95 f8 fd ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00146	8b 82 90 02 00
	00		 mov	 eax, DWORD PTR [edx+656]
  0014c	6b c0 0a	 imul	 eax, 10			; 0000000aH
  0014f	89 45 d4	 mov	 DWORD PTR _sColorControl$[ebp+8], eax

; 492  :             sColorControl.lContrast = OverlayContrast * 100;

  00152	8b 8d f8 fd ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00158	8b 91 94 02 00
	00		 mov	 edx, DWORD PTR [ecx+660]
  0015e	6b d2 64	 imul	 edx, 100		; 00000064H
  00161	89 55 d8	 mov	 DWORD PTR _sColorControl$[ebp+12], edx

; 493  :             sColorControl.lHue = OverlayHue;

  00164	8b 85 f8 fd ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  0016a	8b 88 98 02 00
	00		 mov	 ecx, DWORD PTR [eax+664]
  00170	89 4d dc	 mov	 DWORD PTR _sColorControl$[ebp+16], ecx

; 494  :             sColorControl.lSaturation = OverlaySaturation * 100;

  00173	8b 95 f8 fd ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00179	8b 82 9c 02 00
	00		 mov	 eax, DWORD PTR [edx+668]
  0017f	6b c0 64	 imul	 eax, 100		; 00000064H
  00182	89 45 e0	 mov	 DWORD PTR _sColorControl$[ebp+20], eax

; 495  :             sColorControl.lGamma = OverlayGamma;

  00185	8b 8d f8 fd ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0018b	8b 91 a0 02 00
	00		 mov	 edx, DWORD PTR [ecx+672]
  00191	89 55 e8	 mov	 DWORD PTR _sColorControl$[ebp+28], edx

; 496  :             sColorControl.lSharpness = OverlaySharpness;

  00194	8b 85 f8 fd ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  0019a	8b 88 a4 02 00
	00		 mov	 ecx, DWORD PTR [eax+676]
  001a0	89 4d e4	 mov	 DWORD PTR _sColorControl$[ebp+24], ecx

; 497  : 
; 498  :             if(bUseOverlayControls)

  001a3	8b 95 f8 fd ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  001a9	83 ba 88 02 00
	00 00		 cmp	 DWORD PTR [edx+648], 0
  001b0	0f 84 8b 00 00
	00		 je	 $LN11@Overlay_Se

; 499  :             {
; 500  :                 HRESULT ddrval = pDDColorControl->SetColorControls(&sColorControl);

  001b6	8d 45 cc	 lea	 eax, DWORD PTR _sColorControl$[ebp]
  001b9	50		 push	 eax
  001ba	8b 8d f8 fd ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  001c0	8b 91 84 02 00
	00		 mov	 edx, DWORD PTR [ecx+644]
  001c6	8b 85 f8 fd ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  001cc	8b 88 84 02 00
	00		 mov	 ecx, DWORD PTR [eax+644]
  001d2	8b 12		 mov	 edx, DWORD PTR [edx]
  001d4	51		 push	 ecx
  001d5	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  001d8	ff d0		 call	 eax
  001da	89 45 c8	 mov	 DWORD PTR _ddrval$143009[ebp], eax

; 501  :                 if (FAILED(ddrval))

  001dd	83 7d c8 00	 cmp	 DWORD PTR _ddrval$143009[ebp], 0
  001e1	7d 5e		 jge	 SHORT $LN11@Overlay_Se

; 502  :                 {
; 503  :                     TCHAR szErrorMsg[200];
; 504  :                     _stprintf(szErrorMsg, _T("Error %x in SetColorControls()"), ddrval);

  001e3	8b 4d c8	 mov	 ecx, DWORD PTR _ddrval$143009[ebp]
  001e6	51		 push	 ecx
  001e7	68 00 00 00 00	 push	 OFFSET ??_C@_1DO@GLCELCIB@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?5?$AA?$CF?$AAx?$AA?5?$AAi?$AAn?$AA?5?$AAS?$AAe?$AAt?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?$CI?$AA?$CJ?$AA?$AA@
  001ec	8d 95 34 fe ff
	ff		 lea	 edx, DWORD PTR _szErrorMsg$143012[ebp]
  001f2	52		 push	 edx
  001f3	e8 00 00 00 00	 call	 __swprintf
  001f8	83 c4 0c	 add	 esp, 12			; 0000000cH

; 505  :                     ErrorBox(szErrorMsg);

  001fb	8d 85 34 fe ff
	ff		 lea	 eax, DWORD PTR _szErrorMsg$143012[ebp]
  00201	50		 push	 eax
  00202	8d 8d 18 fe ff
	ff		 lea	 ecx, DWORD PTR $T355023[ebp]
  00208	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> >
  0020d	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00214	8d 8d 18 fe ff
	ff		 lea	 ecx, DWORD PTR $T355023[ebp]
  0021a	51		 push	 ecx
  0021b	68 f9 01 00 00	 push	 505			; 000001f9H
  00220	68 00 00 00 00	 push	 OFFSET ??_C@_1CI@CKGCBFDK@?$AA?4?$AA?2?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  00225	6a 00		 push	 0
  00227	e8 00 00 00 00	 call	 ?_ErrorBox@@YAXPAUHWND__@@PB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _ErrorBox
  0022c	83 c4 10	 add	 esp, 16			; 00000010H
  0022f	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00236	8d 8d 18 fe ff
	ff		 lea	 ecx, DWORD PTR $T355023[ebp]
  0023c	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> >
$LN11@Overlay_Se:

; 506  :                 }
; 507  :             }
; 508  :         }
; 509  :     }
; 510  :     else

  00241	eb 44		 jmp	 SHORT $LN14@Overlay_Se
$LN12@Overlay_Se:

; 511  :     {
; 512  :         ErrorBox(_T("Cannot get color control"));

  00243	68 00 00 00 00	 push	 OFFSET ??_C@_1DC@HIBOACLO@?$AAC?$AAa?$AAn?$AAn?$AAo?$AAt?$AA?5?$AAg?$AAe?$AAt?$AA?5?$AAc?$AAo?$AAl?$AAo?$AAr?$AA?5?$AAc?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AA?$AA@
  00248	8d 8d fc fd ff
	ff		 lea	 ecx, DWORD PTR $T355024[ebp]
  0024e	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> >
  00253	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1
  0025a	8d 95 fc fd ff
	ff		 lea	 edx, DWORD PTR $T355024[ebp]
  00260	52		 push	 edx
  00261	68 00 02 00 00	 push	 512			; 00000200H
  00266	68 00 00 00 00	 push	 OFFSET ??_C@_1CI@CKGCBFDK@?$AA?4?$AA?2?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  0026b	6a 00		 push	 0
  0026d	e8 00 00 00 00	 call	 ?_ErrorBox@@YAXPAUHWND__@@PB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _ErrorBox
  00272	83 c4 10	 add	 esp, 16			; 00000010H
  00275	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0027c	8d 8d fc fd ff
	ff		 lea	 ecx, DWORD PTR $T355024[ebp]
  00282	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> >
$LN14@Overlay_Se:

; 513  :     }
; 514  : }

  00287	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0028a	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00291	59		 pop	 ecx
  00292	8b 4d c4	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  00295	33 cd		 xor	 ecx, ebp
  00297	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0029c	8b e5		 mov	 esp, ebp
  0029e	5d		 pop	 ebp
  0029f	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Overlay_SetColorControls@COverlayOutput@@UAEXXZ$0:
  00000	8d 8d 18 fe ff
	ff		 lea	 ecx, DWORD PTR $T355023[ebp]
  00006	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$?Overlay_SetColorControls@COverlayOutput@@UAEXXZ$1:
  0000b	8d 8d fc fd ff
	ff		 lea	 ecx, DWORD PTR $T355024[ebp]
  00011	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$?Overlay_SetColorControls@COverlayOutput@@UAEXXZ:
  00016	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0001a	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0001d	8b 8a 00 fe ff
	ff		 mov	 ecx, DWORD PTR [edx-512]
  00023	33 c8		 xor	 ecx, eax
  00025	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002a	8b 4a d0	 mov	 ecx, DWORD PTR [edx-48]
  0002d	33 c8		 xor	 ecx, eax
  0002f	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00034	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?Overlay_SetColorControls@COverlayOutput@@UAEXXZ
  00039	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?Overlay_SetColorControls@COverlayOutput@@UAEXXZ ENDP	; COverlayOutput::Overlay_SetColorControls
PUBLIC	__$ArrayPad$
PUBLIC	?Overlay_ResetColorControls@COverlayOutput@@QAEXXZ ; COverlayOutput::Overlay_ResetColorControls
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Overlay_ResetColorControls@COverlayOutput@@QAEXXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Overlay_ResetColorControls@COverlayOutput@@QAEXXZ$0
__ehfuncinfo$?Overlay_ResetColorControls@COverlayOutput@@QAEXXZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?Overlay_ResetColorControls@COverlayOutput@@QAEXXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?Overlay_ResetColorControls@COverlayOutput@@QAEXXZ
_TEXT	SEGMENT
_this$ = -452						; size = 4
$T355036 = -448						; size = 28
_szErrorMsg$142988 = -420				; size = 400
__$ArrayPad$ = -20					; size = 4
_ddrval$142981 = -16					; size = 4
__$EHRec$ = -12						; size = 12
?Overlay_ResetColorControls@COverlayOutput@@QAEXXZ PROC	; COverlayOutput::Overlay_ResetColorControls, COMDAT
; _this$ = ecx

; 426  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?Overlay_ResetColorControls@COverlayOutput@@QAEXXZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	81 ec b8 01 00
	00		 sub	 esp, 440		; 000001b8H
  00017	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001c	33 c5		 xor	 eax, ebp
  0001e	89 45 ec	 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
  0002b	89 8d 3c fe ff
	ff		 mov	 DWORD PTR _this$[ebp], ecx

; 427  :     if (pDDColorControl == NULL)

  00031	8b 85 3c fe ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00037	83 b8 84 02 00
	00 00		 cmp	 DWORD PTR [eax+644], 0
  0003e	75 05		 jne	 SHORT $LN3@Overlay_Re

; 428  :     {
; 429  :         return;

  00040	e9 b0 00 00 00	 jmp	 $LN4@Overlay_Re
$LN3@Overlay_Re:

; 430  :     }
; 431  : 
; 432  :     if(OriginalColorControls.dwFlags != 0)

  00045	8b 8d 3c fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0004b	83 b9 60 02 00
	00 00		 cmp	 DWORD PTR [ecx+608], 0
  00052	0f 84 9d 00 00
	00		 je	 $LN4@Overlay_Re

; 433  :     {
; 434  :         HRESULT ddrval = pDDColorControl->SetColorControls(&OriginalColorControls);

  00058	8b 95 3c fe ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  0005e	81 c2 5c 02 00
	00		 add	 edx, 604		; 0000025cH
  00064	52		 push	 edx
  00065	8b 85 3c fe ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  0006b	8b 88 84 02 00
	00		 mov	 ecx, DWORD PTR [eax+644]
  00071	8b 95 3c fe ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00077	8b 82 84 02 00
	00		 mov	 eax, DWORD PTR [edx+644]
  0007d	8b 09		 mov	 ecx, DWORD PTR [ecx]
  0007f	50		 push	 eax
  00080	8b 51 10	 mov	 edx, DWORD PTR [ecx+16]
  00083	ff d2		 call	 edx
  00085	89 45 f0	 mov	 DWORD PTR _ddrval$142981[ebp], eax

; 435  :         // if we have lost the surface e.g Ctrl-alt-del
; 436  :         // just carry on
; 437  :         if(ddrval != DDERR_SURFACELOST && FAILED(ddrval))

  00088	81 7d f0 c2 01
	76 88		 cmp	 DWORD PTR _ddrval$142981[ebp], -2005532222 ; 887601c2H
  0008f	74 64		 je	 SHORT $LN4@Overlay_Re
  00091	83 7d f0 00	 cmp	 DWORD PTR _ddrval$142981[ebp], 0
  00095	7d 5e		 jge	 SHORT $LN4@Overlay_Re

; 438  :         {
; 439  :             TCHAR szErrorMsg[200];
; 440  :             _stprintf(szErrorMsg, _T("Error %x in SetColorControls()"), ddrval);

  00097	8b 45 f0	 mov	 eax, DWORD PTR _ddrval$142981[ebp]
  0009a	50		 push	 eax
  0009b	68 00 00 00 00	 push	 OFFSET ??_C@_1DO@GLCELCIB@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?5?$AA?$CF?$AAx?$AA?5?$AAi?$AAn?$AA?5?$AAS?$AAe?$AAt?$AAC?$AAo?$AAl?$AAo?$AAr?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAs?$AA?$CI?$AA?$CJ?$AA?$AA@
  000a0	8d 8d 5c fe ff
	ff		 lea	 ecx, DWORD PTR _szErrorMsg$142988[ebp]
  000a6	51		 push	 ecx
  000a7	e8 00 00 00 00	 call	 __swprintf
  000ac	83 c4 0c	 add	 esp, 12			; 0000000cH

; 441  :             ErrorBox(szErrorMsg);

  000af	8d 95 5c fe ff
	ff		 lea	 edx, DWORD PTR _szErrorMsg$142988[ebp]
  000b5	52		 push	 edx
  000b6	8d 8d 40 fe ff
	ff		 lea	 ecx, DWORD PTR $T355036[ebp]
  000bc	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> >
  000c1	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  000c8	8d 85 40 fe ff
	ff		 lea	 eax, DWORD PTR $T355036[ebp]
  000ce	50		 push	 eax
  000cf	68 b9 01 00 00	 push	 441			; 000001b9H
  000d4	68 00 00 00 00	 push	 OFFSET ??_C@_1CI@CKGCBFDK@?$AA?4?$AA?2?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  000d9	6a 00		 push	 0
  000db	e8 00 00 00 00	 call	 ?_ErrorBox@@YAXPAUHWND__@@PB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _ErrorBox
  000e0	83 c4 10	 add	 esp, 16			; 00000010H
  000e3	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  000ea	8d 8d 40 fe ff
	ff		 lea	 ecx, DWORD PTR $T355036[ebp]
  000f0	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> >
$LN4@Overlay_Re:

; 442  :         }
; 443  :     }
; 444  : }

  000f5	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  000f8	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000ff	59		 pop	 ecx
  00100	8b 4d ec	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  00103	33 cd		 xor	 ecx, ebp
  00105	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0010a	8b e5		 mov	 esp, ebp
  0010c	5d		 pop	 ebp
  0010d	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Overlay_ResetColorControls@COverlayOutput@@QAEXXZ$0:
  00000	8d 8d 40 fe ff
	ff		 lea	 ecx, DWORD PTR $T355036[ebp]
  00006	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$?Overlay_ResetColorControls@COverlayOutput@@QAEXXZ:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 8a 44 fe ff
	ff		 mov	 ecx, DWORD PTR [edx-444]
  00018	33 c8		 xor	 ecx, eax
  0001a	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001f	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  00022	33 c8		 xor	 ecx, eax
  00024	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00029	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?Overlay_ResetColorControls@COverlayOutput@@QAEXXZ
  0002e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?Overlay_ResetColorControls@COverlayOutput@@QAEXXZ ENDP	; COverlayOutput::Overlay_ResetColorControls
PUBLIC	__$ArrayPad$
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?Overlay_Update@COverlayOutput@@UAEHPAUtagRECT@@0K@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?Overlay_Update@COverlayOutput@@UAEHPAUtagRECT@@0K@Z$0
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?Overlay_Update@COverlayOutput@@UAEHPAUtagRECT@@0K@Z$1
__ehfuncinfo$?Overlay_Update@COverlayOutput@@UAEHPAUtagRECT@@0K@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?Overlay_Update@COverlayOutput@@UAEHPAUtagRECT@@0K@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?Overlay_Update@COverlayOutput@@UAEHPAUtagRECT@@0K@Z
_TEXT	SEGMENT
_this$ = -968						; size = 4
$T355048 = -964						; size = 28
$T355047 = -936						; size = 28
_szErrorMsg$142972 = -908				; size = 400
_ColorKey$142957 = -504					; size = 8
_overlayColour$142933 = -496				; size = 4
_dwPhysicalOverlayColor$142938 = -492			; size = 4
_hDC$142934 = -488					; size = 4
_szErrorMsg$142928 = -484				; size = 400
__$ArrayPad$ = -80					; size = 4
_ddrval$ = -76						; size = 4
_DDOverlayFX$ = -72					; size = 56
_i$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_pSrcRect$ = 8						; size = 4
_pDestRect$ = 12					; size = 4
_dwFlags$ = 16						; size = 4
?Overlay_Update@COverlayOutput@@UAEHPAUtagRECT@@0K@Z PROC ; COverlayOutput::Overlay_Update, COMDAT
; _this$ = ecx

; 259  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?Overlay_Update@COverlayOutput@@UAEHPAUtagRECT@@0K@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	81 ec bc 03 00
	00		 sub	 esp, 956		; 000003bcH
  00017	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001c	33 c5		 xor	 eax, ebp
  0001e	89 45 b0	 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
  0002b	89 8d 38 fc ff
	ff		 mov	 DWORD PTR _this$[ebp], ecx

; 260  :     HRESULT     ddrval;
; 261  :     DDOVERLAYFX DDOverlayFX;
; 262  :     int i(0);

  00031	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0

; 263  : 
; 264  :     if ((lpDD == NULL) || (lpDDSurface == NULL) || (lpDDOverlay == NULL))

  00038	8b 85 38 fc ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  0003e	83 b8 b0 02 00
	00 00		 cmp	 DWORD PTR [eax+688], 0
  00045	74 1e		 je	 SHORT $LN23@Overlay_Up@2
  00047	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0004d	83 b9 30 02 00
	00 00		 cmp	 DWORD PTR [ecx+560], 0
  00054	74 0f		 je	 SHORT $LN23@Overlay_Up@2
  00056	8b 95 38 fc ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  0005c	83 ba 34 02 00
	00 00		 cmp	 DWORD PTR [edx+564], 0
  00063	75 07		 jne	 SHORT $LN24@Overlay_Up@2
$LN23@Overlay_Up@2:

; 265  :     {
; 266  :         return FALSE;

  00065	33 c0		 xor	 eax, eax
  00067	e9 0b 06 00 00	 jmp	 $LN25@Overlay_Up@2
$LN24@Overlay_Up@2:

; 267  :     }
; 268  : 
; 269  :     EnterCriticalSection(&hDDCritSect);

  0006c	8b 85 38 fc ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00072	05 18 02 00 00	 add	 eax, 536		; 00000218H
  00077	50		 push	 eax
  00078	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 270  : 
; 271  :     memset(&DDOverlayFX, 0x00, sizeof(DDOverlayFX));

  0007e	6a 38		 push	 56			; 00000038H
  00080	6a 00		 push	 0
  00082	8d 4d b8	 lea	 ecx, DWORD PTR _DDOverlayFX$[ebp]
  00085	51		 push	 ecx
  00086	e8 00 00 00 00	 call	 _memset
  0008b	83 c4 0c	 add	 esp, 12			; 0000000cH

; 272  :     DDOverlayFX.dwSize = sizeof(DDOverlayFX);

  0008e	c7 45 b8 38 00
	00 00		 mov	 DWORD PTR _DDOverlayFX$[ebp], 56 ; 00000038H

; 273  : 
; 274  :     if (pSrcRect == NULL)

  00095	83 7d 08 00	 cmp	 DWORD PTR _pSrcRect$[ebp], 0
  00099	0f 85 59 01 00
	00		 jne	 $LN22@Overlay_Up@2

; 275  :     {
; 276  :         ////////////////////////////////
; 277  :         // we are trying to hide overlay
; 278  :         ////////////////////////////////
; 279  :         ddrval = lpDDOverlay->UpdateOverlay(NULL, lpDDSurface, NULL, dwFlags, &DDOverlayFX);

  0009f	8d 55 b8	 lea	 edx, DWORD PTR _DDOverlayFX$[ebp]
  000a2	52		 push	 edx
  000a3	8b 45 10	 mov	 eax, DWORD PTR _dwFlags$[ebp]
  000a6	50		 push	 eax
  000a7	6a 00		 push	 0
  000a9	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  000af	8b 91 30 02 00
	00		 mov	 edx, DWORD PTR [ecx+560]
  000b5	52		 push	 edx
  000b6	6a 00		 push	 0
  000b8	8b 85 38 fc ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  000be	8b 88 34 02 00
	00		 mov	 ecx, DWORD PTR [eax+564]
  000c4	8b 95 38 fc ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  000ca	8b 82 34 02 00
	00		 mov	 eax, DWORD PTR [edx+564]
  000d0	8b 09		 mov	 ecx, DWORD PTR [ecx]
  000d2	50		 push	 eax
  000d3	8b 91 84 00 00
	00		 mov	 edx, DWORD PTR [ecx+132]
  000d9	ff d2		 call	 edx
  000db	89 45 b4	 mov	 DWORD PTR _ddrval$[ebp], eax
$LN21@Overlay_Up@2:

; 280  :         // if another device has requested exclusive access then we
; 281  :         // can get the no hardware error, just wait a bit and try again
; 282  :         while(ddrval == DDERR_NOOVERLAYHW)

  000de	81 7d b4 04 01
	76 88		 cmp	 DWORD PTR _ddrval$[ebp], -2005532412 ; 88760104H
  000e5	75 49		 jne	 SHORT $LN20@Overlay_Up@2

; 283  :         {
; 284  :             Sleep(100);

  000e7	6a 64		 push	 100			; 00000064H
  000e9	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__Sleep@4

; 285  :             ddrval = lpDDOverlay->UpdateOverlay(NULL, lpDDSurface, NULL, dwFlags, &DDOverlayFX);

  000ef	8d 45 b8	 lea	 eax, DWORD PTR _DDOverlayFX$[ebp]
  000f2	50		 push	 eax
  000f3	8b 4d 10	 mov	 ecx, DWORD PTR _dwFlags$[ebp]
  000f6	51		 push	 ecx
  000f7	6a 00		 push	 0
  000f9	8b 95 38 fc ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  000ff	8b 82 30 02 00
	00		 mov	 eax, DWORD PTR [edx+560]
  00105	50		 push	 eax
  00106	6a 00		 push	 0
  00108	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0010e	8b 91 34 02 00
	00		 mov	 edx, DWORD PTR [ecx+564]
  00114	8b 85 38 fc ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  0011a	8b 88 34 02 00
	00		 mov	 ecx, DWORD PTR [eax+564]
  00120	8b 12		 mov	 edx, DWORD PTR [edx]
  00122	51		 push	 ecx
  00123	8b 82 84 00 00
	00		 mov	 eax, DWORD PTR [edx+132]
  00129	ff d0		 call	 eax
  0012b	89 45 b4	 mov	 DWORD PTR _ddrval$[ebp], eax

; 286  :         }

  0012e	eb ae		 jmp	 SHORT $LN21@Overlay_Up@2
$LN20@Overlay_Up@2:

; 287  :         // just return if we get this here
; 288  :         // all DDERR_SURFACELOST will be handled by
; 289  :         // the main processing loop
; 290  :         if(ddrval == DDERR_SURFACELOST)

  00130	81 7d b4 c2 01
	76 88		 cmp	 DWORD PTR _ddrval$[ebp], -2005532222 ; 887601c2H
  00137	75 1a		 jne	 SHORT $LN19@Overlay_Up@2

; 291  :         {
; 292  :             LeaveCriticalSection(&hDDCritSect);

  00139	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0013f	81 c1 18 02 00
	00		 add	 ecx, 536		; 00000218H
  00145	51		 push	 ecx
  00146	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 293  :             return FALSE;

  0014c	33 c0		 xor	 eax, eax
  0014e	e9 24 05 00 00	 jmp	 $LN25@Overlay_Up@2
$LN19@Overlay_Up@2:

; 294  :         }
; 295  :         // 3dfx cards fail with DDERR_UNSUPPORTED if an overlay is hidden before it is shown.
; 296  :         // we just ignore that error.
; 297  :         if (FAILED(ddrval) && ddrval != DDERR_CURRENTLYNOTAVAIL &&
; 298  :             !(ddrval == DDERR_UNSUPPORTED && dwFlags == DDOVER_HIDE))

  00153	83 7d b4 00	 cmp	 DWORD PTR _ddrval$[ebp], 0
  00157	0f 8d 96 00 00
	00		 jge	 $LN18@Overlay_Up@2
  0015d	81 7d b4 28 00
	76 88		 cmp	 DWORD PTR _ddrval$[ebp], -2005532632 ; 88760028H
  00164	0f 84 89 00 00
	00		 je	 $LN18@Overlay_Up@2
  0016a	81 7d b4 01 40
	00 80		 cmp	 DWORD PTR _ddrval$[ebp], -2147467263 ; 80004001H
  00171	75 09		 jne	 SHORT $LN17@Overlay_Up@2
  00173	81 7d 10 00 02
	00 00		 cmp	 DWORD PTR _dwFlags$[ebp], 512 ; 00000200H
  0017a	74 77		 je	 SHORT $LN18@Overlay_Up@2
$LN17@Overlay_Up@2:

; 299  :         {
; 300  :             // 2001-01-06 John Adcock
; 301  :             // Now show return code
; 302  :             TCHAR szErrorMsg[200];
; 303  :             _stprintf(szErrorMsg, _T("Error %x calling UpdateOverlay (Hide)"), ddrval);

  0017c	8b 55 b4	 mov	 edx, DWORD PTR _ddrval$[ebp]
  0017f	52		 push	 edx
  00180	68 00 00 00 00	 push	 OFFSET ??_C@_1EM@CGCIBFIA@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?5?$AA?$CF?$AAx?$AA?5?$AAc?$AAa?$AAl?$AAl?$AAi?$AAn?$AAg?$AA?5?$AAU?$AAp?$AAd?$AAa?$AAt?$AAe?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AA?$CI@
  00185	8d 85 1c fe ff
	ff		 lea	 eax, DWORD PTR _szErrorMsg$142928[ebp]
  0018b	50		 push	 eax
  0018c	e8 00 00 00 00	 call	 __swprintf
  00191	83 c4 0c	 add	 esp, 12			; 0000000cH

; 304  :             ErrorBox(szErrorMsg);

  00194	8d 8d 1c fe ff
	ff		 lea	 ecx, DWORD PTR _szErrorMsg$142928[ebp]
  0019a	51		 push	 ecx
  0019b	8d 8d 58 fc ff
	ff		 lea	 ecx, DWORD PTR $T355047[ebp]
  001a1	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> >
  001a6	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  001ad	8d 95 58 fc ff
	ff		 lea	 edx, DWORD PTR $T355047[ebp]
  001b3	52		 push	 edx
  001b4	68 30 01 00 00	 push	 304			; 00000130H
  001b9	68 00 00 00 00	 push	 OFFSET ??_C@_1CI@CKGCBFDK@?$AA?4?$AA?2?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  001be	6a 00		 push	 0
  001c0	e8 00 00 00 00	 call	 ?_ErrorBox@@YAXPAUHWND__@@PB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _ErrorBox
  001c5	83 c4 10	 add	 esp, 16			; 00000010H
  001c8	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  001cf	8d 8d 58 fc ff
	ff		 lea	 ecx, DWORD PTR $T355047[ebp]
  001d5	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> >

; 305  :             LeaveCriticalSection(&hDDCritSect);

  001da	8b 85 38 fc ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  001e0	05 18 02 00 00	 add	 eax, 536		; 00000218H
  001e5	50		 push	 eax
  001e6	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 306  :             return FALSE;

  001ec	33 c0		 xor	 eax, eax
  001ee	e9 84 04 00 00	 jmp	 $LN25@Overlay_Up@2
$LN18@Overlay_Up@2:

; 307  :         }
; 308  :     }
; 309  :     else

  001f3	e9 68 04 00 00	 jmp	 $LN16@Overlay_Up@2
$LN22@Overlay_Up@2:

; 310  :     {
; 311  :         ////////////////////////////////
; 312  :         // we are trying to show overlay
; 313  :         ////////////////////////////////
; 314  :         if(bCanDoColorKey)

  001f8	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  001fe	83 b9 58 02 00
	00 00		 cmp	 DWORD PTR [ecx+600], 0
  00205	0f 84 4b 01 00
	00		 je	 $LN15@Overlay_Up@2

; 315  :         {
; 316  :             dwFlags |= DDOVER_KEYDESTOVERRIDE;

  0020b	8b 55 10	 mov	 edx, DWORD PTR _dwFlags$[ebp]
  0020e	81 ca 00 08 00
	00		 or	 edx, 2048		; 00000800H
  00214	89 55 10	 mov	 DWORD PTR _dwFlags$[ebp], edx

; 317  : 
; 318  :             COLORREF overlayColour;
; 319  :             HDC hDC;
; 320  : 
; 321  :             if (SUCCEEDED(lpDDSurface->GetDC(&hDC)))

  00217	8d 85 18 fe ff
	ff		 lea	 eax, DWORD PTR _hDC$142934[ebp]
  0021d	50		 push	 eax
  0021e	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00224	8b 91 30 02 00
	00		 mov	 edx, DWORD PTR [ecx+560]
  0022a	8b 85 38 fc ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00230	8b 88 30 02 00
	00		 mov	 ecx, DWORD PTR [eax+560]
  00236	8b 12		 mov	 edx, DWORD PTR [edx]
  00238	51		 push	 ecx
  00239	8b 42 44	 mov	 eax, DWORD PTR [edx+68]
  0023c	ff d0		 call	 eax
  0023e	85 c0		 test	 eax, eax
  00240	7c 49		 jl	 SHORT $LN14@Overlay_Up@2

; 322  :             {
; 323  :                 overlayColour = Overlay_GetCorrectedColor(hDC);

  00242	8b 8d 18 fe ff
	ff		 mov	 ecx, DWORD PTR _hDC$142934[ebp]
  00248	51		 push	 ecx
  00249	8b 95 38 fc ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  0024f	8b 02		 mov	 eax, DWORD PTR [edx]
  00251	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00257	8b 50 38	 mov	 edx, DWORD PTR [eax+56]
  0025a	ff d2		 call	 edx
  0025c	89 85 10 fe ff
	ff		 mov	 DWORD PTR _overlayColour$142933[ebp], eax

; 324  :                 lpDDSurface->ReleaseDC(hDC);

  00262	8b 85 18 fe ff
	ff		 mov	 eax, DWORD PTR _hDC$142934[ebp]
  00268	50		 push	 eax
  00269	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0026f	8b 91 30 02 00
	00		 mov	 edx, DWORD PTR [ecx+560]
  00275	8b 85 38 fc ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  0027b	8b 88 30 02 00
	00		 mov	 ecx, DWORD PTR [eax+560]
  00281	8b 12		 mov	 edx, DWORD PTR [edx]
  00283	51		 push	 ecx
  00284	8b 42 68	 mov	 eax, DWORD PTR [edx+104]
  00287	ff d0		 call	 eax

; 325  :             }
; 326  :             else

  00289	eb 19		 jmp	 SHORT $LN13@Overlay_Up@2
$LN14@Overlay_Up@2:

; 327  :             {
; 328  :                 overlayColour = Overlay_GetColor();

  0028b	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00291	8b 11		 mov	 edx, DWORD PTR [ecx]
  00293	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00299	8b 42 34	 mov	 eax, DWORD PTR [edx+52]
  0029c	ff d0		 call	 eax
  0029e	89 85 10 fe ff
	ff		 mov	 DWORD PTR _overlayColour$142933[ebp], eax
$LN13@Overlay_Up@2:

; 329  :             }
; 330  : 
; 331  :             DWORD dwPhysicalOverlayColor = Overlay_ColorMatch(lpDDSurface, overlayColour);

  002a4	8b 8d 10 fe ff
	ff		 mov	 ecx, DWORD PTR _overlayColour$142933[ebp]
  002aa	51		 push	 ecx
  002ab	8b 95 38 fc ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  002b1	8b 82 30 02 00
	00		 mov	 eax, DWORD PTR [edx+560]
  002b7	50		 push	 eax
  002b8	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  002be	8b 11		 mov	 edx, DWORD PTR [ecx]
  002c0	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  002c6	8b 42 30	 mov	 eax, DWORD PTR [edx+48]
  002c9	ff d0		 call	 eax
  002cb	89 85 14 fe ff
	ff		 mov	 DWORD PTR _dwPhysicalOverlayColor$142938[ebp], eax

; 332  :             if (dwPhysicalOverlayColor == 0 && overlayColour != 0)      // sometimes we glitch and can't get the Value

  002d1	83 bd 14 fe ff
	ff 00		 cmp	 DWORD PTR _dwPhysicalOverlayColor$142938[ebp], 0
  002d8	75 45		 jne	 SHORT $LN12@Overlay_Up@2
  002da	83 bd 10 fe ff
	ff 00		 cmp	 DWORD PTR _overlayColour$142933[ebp], 0
  002e1	74 3c		 je	 SHORT $LN12@Overlay_Up@2

; 333  :             {
; 334  :                 LOG(3, _T("Physical overlay color is zero!  Retrying."));

  002e3	68 00 00 00 00	 push	 OFFSET ??_C@_1FG@DCGKBJDJ@?$AAP?$AAh?$AAy?$AAs?$AAi?$AAc?$AAa?$AAl?$AA?5?$AAo?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAc?$AAo?$AAl?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAz?$AAe?$AAr?$AAo?$AA?$CB?$AA?5@
  002e8	6a 03		 push	 3
  002ea	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  002ef	83 c4 08	 add	 esp, 8

; 335  :                 dwPhysicalOverlayColor = Overlay_ColorMatch(lpDDSurface, overlayColour);

  002f2	8b 8d 10 fe ff
	ff		 mov	 ecx, DWORD PTR _overlayColour$142933[ebp]
  002f8	51		 push	 ecx
  002f9	8b 95 38 fc ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  002ff	8b 82 30 02 00
	00		 mov	 eax, DWORD PTR [edx+560]
  00305	50		 push	 eax
  00306	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0030c	8b 11		 mov	 edx, DWORD PTR [ecx]
  0030e	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00314	8b 42 30	 mov	 eax, DWORD PTR [edx+48]
  00317	ff d0		 call	 eax
  00319	89 85 14 fe ff
	ff		 mov	 DWORD PTR _dwPhysicalOverlayColor$142938[ebp], eax
$LN12@Overlay_Up@2:

; 336  :             }
; 337  :             LOG(3, _T("Physical overlay color is %x"), dwPhysicalOverlayColor);

  0031f	8b 8d 14 fe ff
	ff		 mov	 ecx, DWORD PTR _dwPhysicalOverlayColor$142938[ebp]
  00325	51		 push	 ecx
  00326	68 00 00 00 00	 push	 OFFSET ??_C@_1DK@FBKPMNMN@?$AAP?$AAh?$AAy?$AAs?$AAi?$AAc?$AAa?$AAl?$AA?5?$AAo?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAc?$AAo?$AAl?$AAo?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AA?$CF?$AAx?$AA?$AA@
  0032b	6a 03		 push	 3
  0032d	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00332	83 c4 0c	 add	 esp, 12			; 0000000cH

; 338  : 
; 339  :             VT_SetOverlayColour(overlayColour);

  00335	8b 95 10 fe ff
	ff		 mov	 edx, DWORD PTR _overlayColour$142933[ebp]
  0033b	52		 push	 edx
  0033c	e8 00 00 00 00	 call	 ?VT_SetOverlayColour@@YAXK@Z ; VT_SetOverlayColour
  00341	83 c4 04	 add	 esp, 4

; 340  : 
; 341  :             DDOverlayFX.dckDestColorkey.dwColorSpaceHighValue = dwPhysicalOverlayColor;

  00344	8b 85 14 fe ff
	ff		 mov	 eax, DWORD PTR _dwPhysicalOverlayColor$142938[ebp]
  0034a	89 45 dc	 mov	 DWORD PTR _DDOverlayFX$[ebp+36], eax

; 342  :             DDOverlayFX.dckDestColorkey.dwColorSpaceLowValue = dwPhysicalOverlayColor;

  0034d	8b 8d 14 fe ff
	ff		 mov	 ecx, DWORD PTR _dwPhysicalOverlayColor$142938[ebp]
  00353	89 4d d8	 mov	 DWORD PTR _DDOverlayFX$[ebp+32], ecx
$LN15@Overlay_Up@2:

; 343  :         }
; 344  :         if(bCanDoBob && bAllowBobMode)

  00356	8b 95 38 fc ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  0035c	83 ba 50 02 00
	00 00		 cmp	 DWORD PTR [edx+592], 0
  00363	74 1b		 je	 SHORT $LN11@Overlay_Up@2
  00365	8b 85 38 fc ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  0036b	83 b8 4c 02 00
	00 00		 cmp	 DWORD PTR [eax+588], 0
  00372	74 0c		 je	 SHORT $LN11@Overlay_Up@2

; 345  :         {
; 346  :             dwFlags |= DDOVER_BOB;

  00374	8b 4d 10	 mov	 ecx, DWORD PTR _dwFlags$[ebp]
  00377	81 c9 00 00 20
	00		 or	 ecx, 2097152		; 00200000H
  0037d	89 4d 10	 mov	 DWORD PTR _dwFlags$[ebp], ecx
$LN11@Overlay_Up@2:

; 347  :         }
; 348  : 
; 349  :         ddrval = lpDDOverlay->UpdateOverlay(pSrcRect, lpDDSurface, pDestRect, dwFlags, &DDOverlayFX);

  00380	8d 55 b8	 lea	 edx, DWORD PTR _DDOverlayFX$[ebp]
  00383	52		 push	 edx
  00384	8b 45 10	 mov	 eax, DWORD PTR _dwFlags$[ebp]
  00387	50		 push	 eax
  00388	8b 4d 0c	 mov	 ecx, DWORD PTR _pDestRect$[ebp]
  0038b	51		 push	 ecx
  0038c	8b 95 38 fc ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00392	8b 82 30 02 00
	00		 mov	 eax, DWORD PTR [edx+560]
  00398	50		 push	 eax
  00399	8b 4d 08	 mov	 ecx, DWORD PTR _pSrcRect$[ebp]
  0039c	51		 push	 ecx
  0039d	8b 95 38 fc ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  003a3	8b 82 34 02 00
	00		 mov	 eax, DWORD PTR [edx+564]
  003a9	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  003af	8b 91 34 02 00
	00		 mov	 edx, DWORD PTR [ecx+564]
  003b5	8b 00		 mov	 eax, DWORD PTR [eax]
  003b7	52		 push	 edx
  003b8	8b 88 84 00 00
	00		 mov	 ecx, DWORD PTR [eax+132]
  003be	ff d1		 call	 ecx
  003c0	89 45 b4	 mov	 DWORD PTR _ddrval$[ebp], eax
$LN10@Overlay_Up@2:

; 350  : 
; 351  :         // if another device has requested exclusive access then we
; 352  :         // can get the no hardware error, just wait a bit and try again
; 353  :         while(ddrval == DDERR_NOOVERLAYHW)

  003c3	81 7d b4 04 01
	76 88		 cmp	 DWORD PTR _ddrval$[ebp], -2005532412 ; 88760104H
  003ca	75 4d		 jne	 SHORT $LN9@Overlay_Up@2

; 354  :         {
; 355  :             Sleep(100);

  003cc	6a 64		 push	 100			; 00000064H
  003ce	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__Sleep@4

; 356  :             ddrval = lpDDOverlay->UpdateOverlay(pSrcRect, lpDDSurface, pDestRect, dwFlags, &DDOverlayFX);

  003d4	8d 55 b8	 lea	 edx, DWORD PTR _DDOverlayFX$[ebp]
  003d7	52		 push	 edx
  003d8	8b 45 10	 mov	 eax, DWORD PTR _dwFlags$[ebp]
  003db	50		 push	 eax
  003dc	8b 4d 0c	 mov	 ecx, DWORD PTR _pDestRect$[ebp]
  003df	51		 push	 ecx
  003e0	8b 95 38 fc ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  003e6	8b 82 30 02 00
	00		 mov	 eax, DWORD PTR [edx+560]
  003ec	50		 push	 eax
  003ed	8b 4d 08	 mov	 ecx, DWORD PTR _pSrcRect$[ebp]
  003f0	51		 push	 ecx
  003f1	8b 95 38 fc ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  003f7	8b 82 34 02 00
	00		 mov	 eax, DWORD PTR [edx+564]
  003fd	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00403	8b 91 34 02 00
	00		 mov	 edx, DWORD PTR [ecx+564]
  00409	8b 00		 mov	 eax, DWORD PTR [eax]
  0040b	52		 push	 edx
  0040c	8b 88 84 00 00
	00		 mov	 ecx, DWORD PTR [eax+132]
  00412	ff d1		 call	 ecx
  00414	89 45 b4	 mov	 DWORD PTR _ddrval$[ebp], eax

; 357  :         }

  00417	eb aa		 jmp	 SHORT $LN10@Overlay_Up@2
$LN9@Overlay_Up@2:

; 358  :         // just return if we get this here
; 359  :         // all DDERR_SURFACELOST will be handled by
; 360  :         // the main processing loop
; 361  :         if(ddrval == DDERR_SURFACELOST)

  00419	81 7d b4 c2 01
	76 88		 cmp	 DWORD PTR _ddrval$[ebp], -2005532222 ; 887601c2H
  00420	75 1a		 jne	 SHORT $LN8@Overlay_Up@2

; 362  :         {
; 363  :             LeaveCriticalSection(&hDDCritSect);

  00422	8b 95 38 fc ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00428	81 c2 18 02 00
	00		 add	 edx, 536		; 00000218H
  0042e	52		 push	 edx
  0042f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 364  :             return FALSE;

  00435	33 c0		 xor	 eax, eax
  00437	e9 3b 02 00 00	 jmp	 $LN25@Overlay_Up@2
$LN8@Overlay_Up@2:

; 365  :         }
; 366  :         // we get unsupported error here for mpact2 cards
; 367  :         // so cope with this by not trying to update
; 368  :         // the color key Value and just hoping it works
; 369  :         // with the existing one (black used to work)
; 370  :         if(ddrval == DDERR_UNSUPPORTED)

  0043c	81 7d b4 01 40
	00 80		 cmp	 DWORD PTR _ddrval$[ebp], -2147467263 ; 80004001H
  00443	0f 85 d5 00 00
	00		 jne	 $LN5@Overlay_Up@2

; 371  :         {
; 372  :             DDCOLORKEY ColorKey;
; 373  : 
; 374  :             LOG(1, _T("Got unsupported error from Overlay Update"));

  00449	68 00 00 00 00	 push	 OFFSET ??_C@_1FE@HCKJAEKC@?$AAG?$AAo?$AAt?$AA?5?$AAu?$AAn?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd?$AA?5?$AAe?$AAr?$AAr?$AAo?$AAr?$AA?5?$AAf?$AAr?$AAo?$AAm?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl@
  0044e	6a 01		 push	 1
  00450	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00455	83 c4 08	 add	 esp, 8

; 375  :             ddrval = lpDDOverlay->GetColorKey(DDCKEY_DESTOVERLAY, &ColorKey);

  00458	8d 85 08 fe ff
	ff		 lea	 eax, DWORD PTR _ColorKey$142957[ebp]
  0045e	50		 push	 eax
  0045f	6a 04		 push	 4
  00461	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00467	8b 91 34 02 00
	00		 mov	 edx, DWORD PTR [ecx+564]
  0046d	8b 85 38 fc ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00473	8b 88 34 02 00
	00		 mov	 ecx, DWORD PTR [eax+564]
  00479	8b 12		 mov	 edx, DWORD PTR [edx]
  0047b	51		 push	 ecx
  0047c	8b 42 40	 mov	 eax, DWORD PTR [edx+64]
  0047f	ff d0		 call	 eax
  00481	89 45 b4	 mov	 DWORD PTR _ddrval$[ebp], eax

; 376  :             if(SUCCEEDED(ddrval))

  00484	83 7d b4 00	 cmp	 DWORD PTR _ddrval$[ebp], 0
  00488	7c 2e		 jl	 SHORT $LN6@Overlay_Up@2

; 377  :             {
; 378  :                 g_OverlayColor = ColorKey.dwColorSpaceHighValue;

  0048a	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00490	8b 95 0c fe ff
	ff		 mov	 edx, DWORD PTR _ColorKey$142957[ebp+4]
  00496	89 91 44 02 00
	00		 mov	 DWORD PTR [ecx+580], edx

; 379  :                 LOG(1, _T("Reset overlay color to %x"), g_OverlayColor);

  0049c	8b 85 38 fc ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  004a2	8b 88 44 02 00
	00		 mov	 ecx, DWORD PTR [eax+580]
  004a8	51		 push	 ecx
  004a9	68 00 00 00 00	 push	 OFFSET ??_C@_1DE@JICNEBNB@?$AAR?$AAe?$AAs?$AAe?$AAt?$AA?5?$AAo?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?5?$AAc?$AAo?$AAl?$AAo?$AAr?$AA?5?$AAt?$AAo?$AA?5?$AA?$CF?$AAx?$AA?$AA@
  004ae	6a 01		 push	 1
  004b0	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  004b5	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN6@Overlay_Up@2:

; 380  :             }
; 381  :             dwFlags &= ~DDOVER_KEYDESTOVERRIDE;

  004b8	8b 55 10	 mov	 edx, DWORD PTR _dwFlags$[ebp]
  004bb	81 e2 ff f7 ff
	ff		 and	 edx, -2049		; fffff7ffH
  004c1	89 55 10	 mov	 DWORD PTR _dwFlags$[ebp], edx

; 382  :             memset(&DDOverlayFX, 0x00, sizeof(DDOverlayFX));

  004c4	6a 38		 push	 56			; 00000038H
  004c6	6a 00		 push	 0
  004c8	8d 45 b8	 lea	 eax, DWORD PTR _DDOverlayFX$[ebp]
  004cb	50		 push	 eax
  004cc	e8 00 00 00 00	 call	 _memset
  004d1	83 c4 0c	 add	 esp, 12			; 0000000cH

; 383  :             DDOverlayFX.dwSize = sizeof(DDOverlayFX);

  004d4	c7 45 b8 38 00
	00 00		 mov	 DWORD PTR _DDOverlayFX$[ebp], 56 ; 00000038H

; 384  :             ddrval = lpDDOverlay->UpdateOverlay(pSrcRect, lpDDSurface, pDestRect, dwFlags, &DDOverlayFX);

  004db	8d 4d b8	 lea	 ecx, DWORD PTR _DDOverlayFX$[ebp]
  004de	51		 push	 ecx
  004df	8b 55 10	 mov	 edx, DWORD PTR _dwFlags$[ebp]
  004e2	52		 push	 edx
  004e3	8b 45 0c	 mov	 eax, DWORD PTR _pDestRect$[ebp]
  004e6	50		 push	 eax
  004e7	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  004ed	8b 91 30 02 00
	00		 mov	 edx, DWORD PTR [ecx+560]
  004f3	52		 push	 edx
  004f4	8b 45 08	 mov	 eax, DWORD PTR _pSrcRect$[ebp]
  004f7	50		 push	 eax
  004f8	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  004fe	8b 91 34 02 00
	00		 mov	 edx, DWORD PTR [ecx+564]
  00504	8b 85 38 fc ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  0050a	8b 88 34 02 00
	00		 mov	 ecx, DWORD PTR [eax+564]
  00510	8b 12		 mov	 edx, DWORD PTR [edx]
  00512	51		 push	 ecx
  00513	8b 82 84 00 00
	00		 mov	 eax, DWORD PTR [edx+132]
  00519	ff d0		 call	 eax
  0051b	89 45 b4	 mov	 DWORD PTR _ddrval$[ebp], eax
$LN5@Overlay_Up@2:

; 385  :         }
; 386  :         // on some cards the driver returns DDERR_OUTOFCAPS, if the wrong original
; 387  :         // is not at the fron, so flip round until it is
; 388  :         // but check that we don't go into an infinite loop
; 389  :         while(ddrval == DDERR_OUTOFCAPS && i < 5)

  0051e	81 7d b4 68 01
	76 88		 cmp	 DWORD PTR _ddrval$[ebp], -2005532312 ; 88760168H
  00525	75 7e		 jne	 SHORT $LN4@Overlay_Up@2
  00527	83 7d f0 05	 cmp	 DWORD PTR _i$[ebp], 5
  0052b	7d 78		 jge	 SHORT $LN4@Overlay_Up@2

; 390  :         {
; 391  :             ddrval = lpDDOverlay->Flip(NULL, 0);

  0052d	6a 00		 push	 0
  0052f	6a 00		 push	 0
  00531	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00537	8b 91 34 02 00
	00		 mov	 edx, DWORD PTR [ecx+564]
  0053d	8b 85 38 fc ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00543	8b 88 34 02 00
	00		 mov	 ecx, DWORD PTR [eax+564]
  00549	8b 12		 mov	 edx, DWORD PTR [edx]
  0054b	51		 push	 ecx
  0054c	8b 42 2c	 mov	 eax, DWORD PTR [edx+44]
  0054f	ff d0		 call	 eax
  00551	89 45 b4	 mov	 DWORD PTR _ddrval$[ebp], eax

; 392  :             ddrval = lpDDOverlay->UpdateOverlay(pSrcRect, lpDDSurface, pDestRect, dwFlags, &DDOverlayFX);

  00554	8d 4d b8	 lea	 ecx, DWORD PTR _DDOverlayFX$[ebp]
  00557	51		 push	 ecx
  00558	8b 55 10	 mov	 edx, DWORD PTR _dwFlags$[ebp]
  0055b	52		 push	 edx
  0055c	8b 45 0c	 mov	 eax, DWORD PTR _pDestRect$[ebp]
  0055f	50		 push	 eax
  00560	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00566	8b 91 30 02 00
	00		 mov	 edx, DWORD PTR [ecx+560]
  0056c	52		 push	 edx
  0056d	8b 45 08	 mov	 eax, DWORD PTR _pSrcRect$[ebp]
  00570	50		 push	 eax
  00571	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00577	8b 91 34 02 00
	00		 mov	 edx, DWORD PTR [ecx+564]
  0057d	8b 85 38 fc ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00583	8b 88 34 02 00
	00		 mov	 ecx, DWORD PTR [eax+564]
  00589	8b 12		 mov	 edx, DWORD PTR [edx]
  0058b	51		 push	 ecx
  0058c	8b 82 84 00 00
	00		 mov	 eax, DWORD PTR [edx+132]
  00592	ff d0		 call	 eax
  00594	89 45 b4	 mov	 DWORD PTR _ddrval$[ebp], eax

; 393  :             ++i;

  00597	8b 4d f0	 mov	 ecx, DWORD PTR _i$[ebp]
  0059a	83 c1 01	 add	 ecx, 1
  0059d	89 4d f0	 mov	 DWORD PTR _i$[ebp], ecx

; 394  :         }

  005a0	e9 79 ff ff ff	 jmp	 $LN5@Overlay_Up@2
$LN4@Overlay_Up@2:

; 395  : 
; 396  :         if (FAILED(ddrval))

  005a5	83 7d b4 00	 cmp	 DWORD PTR _ddrval$[ebp], 0
  005a9	0f 8d 8f 00 00
	00		 jge	 $LN3@Overlay_Up@2

; 397  :         {
; 398  :             if ((pDestRect->top < pDestRect->bottom) && (pDestRect->left < pDestRect->right))

  005af	8b 55 0c	 mov	 edx, DWORD PTR _pDestRect$[ebp]
  005b2	8b 45 0c	 mov	 eax, DWORD PTR _pDestRect$[ebp]
  005b5	8b 4a 04	 mov	 ecx, DWORD PTR [edx+4]
  005b8	3b 48 0c	 cmp	 ecx, DWORD PTR [eax+12]
  005bb	7d 6b		 jge	 SHORT $LN2@Overlay_Up@2
  005bd	8b 55 0c	 mov	 edx, DWORD PTR _pDestRect$[ebp]
  005c0	8b 45 0c	 mov	 eax, DWORD PTR _pDestRect$[ebp]
  005c3	8b 0a		 mov	 ecx, DWORD PTR [edx]
  005c5	3b 48 08	 cmp	 ecx, DWORD PTR [eax+8]
  005c8	7d 5e		 jge	 SHORT $LN2@Overlay_Up@2

; 399  :             {
; 400  :                 // 2000-10-29 Added by Mark Rejhon
; 401  :                 // Display error message only if rectangle dimensions are positive.
; 402  :                 // Negative rectangle dimensions are frequently caused by the user
; 403  :                 // resizing the window smaller than the video size.
; 404  :                 // 2001-01-06 John Adcock
; 405  :                 // Now show return code
; 406  :                 TCHAR szErrorMsg[200];
; 407  :                 _stprintf(szErrorMsg, _T("Error %x in UpdateOverlay"), ddrval);

  005ca	8b 55 b4	 mov	 edx, DWORD PTR _ddrval$[ebp]
  005cd	52		 push	 edx
  005ce	68 00 00 00 00	 push	 OFFSET ??_C@_1DE@HDJNIPFD@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?5?$AA?$CF?$AAx?$AA?5?$AAi?$AAn?$AA?5?$AAU?$AAp?$AAd?$AAa?$AAt?$AAe?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?$AA@
  005d3	8d 85 74 fc ff
	ff		 lea	 eax, DWORD PTR _szErrorMsg$142972[ebp]
  005d9	50		 push	 eax
  005da	e8 00 00 00 00	 call	 __swprintf
  005df	83 c4 0c	 add	 esp, 12			; 0000000cH

; 408  :                 ErrorBox(szErrorMsg);

  005e2	8d 8d 74 fc ff
	ff		 lea	 ecx, DWORD PTR _szErrorMsg$142972[ebp]
  005e8	51		 push	 ecx
  005e9	8d 8d 3c fc ff
	ff		 lea	 ecx, DWORD PTR $T355048[ebp]
  005ef	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> >
  005f4	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1
  005fb	8d 95 3c fc ff
	ff		 lea	 edx, DWORD PTR $T355048[ebp]
  00601	52		 push	 edx
  00602	68 98 01 00 00	 push	 408			; 00000198H
  00607	68 00 00 00 00	 push	 OFFSET ??_C@_1CI@CKGCBFDK@?$AA?4?$AA?2?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  0060c	6a 00		 push	 0
  0060e	e8 00 00 00 00	 call	 ?_ErrorBox@@YAXPAUHWND__@@PB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _ErrorBox
  00613	83 c4 10	 add	 esp, 16			; 00000010H
  00616	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0061d	8d 8d 3c fc ff
	ff		 lea	 ecx, DWORD PTR $T355048[ebp]
  00623	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> >
$LN2@Overlay_Up@2:

; 409  :             }
; 410  :             LeaveCriticalSection(&hDDCritSect);

  00628	8b 85 38 fc ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  0062e	05 18 02 00 00	 add	 eax, 536		; 00000218H
  00633	50		 push	 eax
  00634	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 411  :             return FALSE;

  0063a	33 c0		 xor	 eax, eax
  0063c	eb 39		 jmp	 SHORT $LN25@Overlay_Up@2
$LN3@Overlay_Up@2:

; 412  :         }
; 413  : 
; 414  :         // update the controls
; 415  :         if(bUseOverlayControls)

  0063e	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00644	83 b9 88 02 00
	00 00		 cmp	 DWORD PTR [ecx+648], 0
  0064b	74 13		 je	 SHORT $LN16@Overlay_Up@2

; 416  :         {
; 417  :            Overlay_SetColorControls();

  0064d	8b 95 38 fc ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00653	8b 02		 mov	 eax, DWORD PTR [edx]
  00655	8b 8d 38 fc ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0065b	8b 50 3c	 mov	 edx, DWORD PTR [eax+60]
  0065e	ff d2		 call	 edx
$LN16@Overlay_Up@2:

; 418  :         }
; 419  :     }
; 420  :     LeaveCriticalSection(&hDDCritSect);

  00660	8b 85 38 fc ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00666	05 18 02 00 00	 add	 eax, 536		; 00000218H
  0066b	50		 push	 eax
  0066c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 421  :     return TRUE;

  00672	b8 01 00 00 00	 mov	 eax, 1
$LN25@Overlay_Up@2:

; 422  : }

  00677	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0067a	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00681	59		 pop	 ecx
  00682	8b 4d b0	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  00685	33 cd		 xor	 ecx, ebp
  00687	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0068c	8b e5		 mov	 esp, ebp
  0068e	5d		 pop	 ebp
  0068f	c2 0c 00	 ret	 12			; 0000000cH
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?Overlay_Update@COverlayOutput@@UAEHPAUtagRECT@@0K@Z$0:
  00000	8d 8d 58 fc ff
	ff		 lea	 ecx, DWORD PTR $T355047[ebp]
  00006	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$?Overlay_Update@COverlayOutput@@UAEHPAUtagRECT@@0K@Z$1:
  0000b	8d 8d 3c fc ff
	ff		 lea	 ecx, DWORD PTR $T355048[ebp]
  00011	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$?Overlay_Update@COverlayOutput@@UAEHPAUtagRECT@@0K@Z:
  00016	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0001a	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0001d	8b 8a 40 fc ff
	ff		 mov	 ecx, DWORD PTR [edx-960]
  00023	33 c8		 xor	 ecx, eax
  00025	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002a	8b 4a bc	 mov	 ecx, DWORD PTR [edx-68]
  0002d	33 c8		 xor	 ecx, eax
  0002f	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00034	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?Overlay_Update@COverlayOutput@@UAEHPAUtagRECT@@0K@Z
  00039	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?Overlay_Update@COverlayOutput@@UAEHPAUtagRECT@@0K@Z ENDP ; COverlayOutput::Overlay_Update
PUBLIC	?GetCurrentDD@COverlayOutput@@AAEPAUIDirectDraw@@PAUHWND__@@@Z ; COverlayOutput::GetCurrentDD
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?GetCurrentDD@COverlayOutput@@AAEPAUIDirectDraw@@PAUHWND__@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?GetCurrentDD@COverlayOutput@@AAEPAUIDirectDraw@@PAUHWND__@@@Z$0
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?GetCurrentDD@COverlayOutput@@AAEPAUIDirectDraw@@PAUHWND__@@@Z$1
__ehfuncinfo$?GetCurrentDD@COverlayOutput@@AAEPAUIDirectDraw@@PAUHWND__@@@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?GetCurrentDD@COverlayOutput@@AAEPAUIDirectDraw@@PAUHWND__@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?GetCurrentDD@COverlayOutput@@AAEPAUIDirectDraw@@PAUHWND__@@@Z
_TEXT	SEGMENT
_this$ = -80						; size = 4
$T355060 = -76						; size = 28
$T355059 = -48						; size = 28
_i$142840 = -20						; size = 4
_hMonitor$ = -16					; size = 4
__$EHRec$ = -12						; size = 12
_hWnd$ = 8						; size = 4
?GetCurrentDD@COverlayOutput@@AAEPAUIDirectDraw@@PAUHWND__@@@Z PROC ; COverlayOutput::GetCurrentDD, COMDAT
; _this$ = ecx

; 117  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?GetCurrentDD@COverlayOutput@@AAEPAUIDirectDraw@@PAUHWND__@@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 44	 sub	 esp, 68			; 00000044H
  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 b0	 mov	 DWORD PTR _this$[ebp], ecx

; 118  :     // if we can't see these new functions or we fail to list the moitors just use a normal DD create
; 119  :     if(!m_lpMonitorFromWindow || !m_lpGetMonitorInfoA || ListMonitors(hWnd) == FALSE)

  00028	8b 4d b0	 mov	 ecx, DWORD PTR _this$[ebp]
  0002b	81 c1 b4 02 00
	00		 add	 ecx, 692		; 000002b4H
  00031	e8 00 00 00 00	 call	 ??B?$DynamicFunctionParent@P6GPAUHMONITOR__@@PAUHWND__@@K@Z@@QBEHXZ ; DynamicFunctionParent<HMONITOR__ * (__stdcall*)(HWND__ *,unsigned long)>::operator int
  00036	85 c0		 test	 eax, eax
  00038	74 22		 je	 SHORT $LN7@GetCurrent@8
  0003a	8b 4d b0	 mov	 ecx, DWORD PTR _this$[ebp]
  0003d	81 c1 b8 02 00
	00		 add	 ecx, 696		; 000002b8H
  00043	e8 00 00 00 00	 call	 ??B?$DynamicFunctionParent@P6GHPAUHMONITOR__@@PAUtagMONITORINFO@@@Z@@QBEHXZ ; DynamicFunctionParent<int (__stdcall*)(HMONITOR__ *,tagMONITORINFO *)>::operator int
  00048	85 c0		 test	 eax, eax
  0004a	74 10		 je	 SHORT $LN7@GetCurrent@8
  0004c	8b 45 08	 mov	 eax, DWORD PTR _hWnd$[ebp]
  0004f	50		 push	 eax
  00050	e8 00 00 00 00	 call	 ?ListMonitors@COverlayOutput@@CAHPAUHWND__@@@Z ; COverlayOutput::ListMonitors
  00055	83 c4 04	 add	 esp, 4
  00058	85 c0		 test	 eax, eax
  0005a	75 6d		 jne	 SHORT $LN8@GetCurrent@8
$LN7@GetCurrent@8:

; 120  :     {
; 121  :         if (FAILED(m_lpDirectDrawCreate(NULL, &lpDD, NULL)))

  0005c	6a 00		 push	 0
  0005e	8b 4d b0	 mov	 ecx, DWORD PTR _this$[ebp]
  00061	81 c1 b0 02 00
	00		 add	 ecx, 688		; 000002b0H
  00067	51		 push	 ecx
  00068	6a 00		 push	 0
  0006a	8b 4d b0	 mov	 ecx, DWORD PTR _this$[ebp]
  0006d	81 c1 bc 02 00
	00		 add	 ecx, 700		; 000002bcH
  00073	e8 00 00 00 00	 call	 ??R?$DynamicFunctionS3@JPAU_GUID@@PAPAUIDirectDraw@@PAUIUnknown@@@@QBEJPAU_GUID@@PAPAUIDirectDraw@@PAUIUnknown@@@Z ; DynamicFunctionS3<long,_GUID *,IDirectDraw * *,IUnknown *>::operator()
  00078	85 c0		 test	 eax, eax
  0007a	7d 3f		 jge	 SHORT $LN6@GetCurrent@8

; 122  :         {
; 123  :             ErrorBox(_T("DirectDrawCreate failed"));

  0007c	68 00 00 00 00	 push	 OFFSET ??_C@_1DA@ENAPNCMA@?$AAD?$AAi?$AAr?$AAe?$AAc?$AAt?$AAD?$AAr?$AAa?$AAw?$AAC?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?$AA@
  00081	8d 4d d0	 lea	 ecx, DWORD PTR $T355059[ebp]
  00084	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> >
  00089	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00090	8d 55 d0	 lea	 edx, DWORD PTR $T355059[ebp]
  00093	52		 push	 edx
  00094	6a 7b		 push	 123			; 0000007bH
  00096	68 00 00 00 00	 push	 OFFSET ??_C@_1CI@CKGCBFDK@?$AA?4?$AA?2?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  0009b	6a 00		 push	 0
  0009d	e8 00 00 00 00	 call	 ?_ErrorBox@@YAXPAUHWND__@@PB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _ErrorBox
  000a2	83 c4 10	 add	 esp, 16			; 00000010H
  000a5	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  000ac	8d 4d d0	 lea	 ecx, DWORD PTR $T355059[ebp]
  000af	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> >

; 124  :             return NULL;

  000b4	33 c0		 xor	 eax, eax
  000b6	e9 d6 00 00 00	 jmp	 $LN9@GetCurrent@8
$LN6@GetCurrent@8:

; 125  :         }
; 126  :         return lpDD;

  000bb	8b 45 b0	 mov	 eax, DWORD PTR _this$[ebp]
  000be	8b 80 b0 02 00
	00		 mov	 eax, DWORD PTR [eax+688]
  000c4	e9 c8 00 00 00	 jmp	 $LN9@GetCurrent@8
$LN8@GetCurrent@8:

; 127  :     }
; 128  : 
; 129  :     // got the list of monitors then get the DD context from the current one
; 130  :     HMONITOR hMonitor = m_lpMonitorFromWindow(hWnd, MONITOR_DEFAULTTOPRIMARY);

  000c9	6a 01		 push	 1
  000cb	8b 4d 08	 mov	 ecx, DWORD PTR _hWnd$[ebp]
  000ce	51		 push	 ecx
  000cf	8b 4d b0	 mov	 ecx, DWORD PTR _this$[ebp]
  000d2	81 c1 b4 02 00
	00		 add	 ecx, 692		; 000002b4H
  000d8	e8 00 00 00 00	 call	 ??R?$DynamicFunctionS2@PAUHMONITOR__@@PAUHWND__@@K@@QBEPAUHMONITOR__@@PAUHWND__@@K@Z ; DynamicFunctionS2<HMONITOR__ *,HWND__ *,unsigned long>::operator()
  000dd	89 45 f0	 mov	 DWORD PTR _hMonitor$[ebp], eax

; 131  : 
; 132  :     for (int i=0 ; i<NbMonitors ; i++)

  000e0	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _i$142840[ebp], 0
  000e7	eb 09		 jmp	 SHORT $LN5@GetCurrent@8
$LN4@GetCurrent@8:
  000e9	8b 55 ec	 mov	 edx, DWORD PTR _i$142840[ebp]
  000ec	83 c2 01	 add	 edx, 1
  000ef	89 55 ec	 mov	 DWORD PTR _i$142840[ebp], edx
$LN5@GetCurrent@8:
  000f2	8b 45 ec	 mov	 eax, DWORD PTR _i$142840[ebp]
  000f5	3b 05 00 00 00
	00		 cmp	 eax, DWORD PTR _NbMonitors
  000fb	7d 1d		 jge	 SHORT $LN3@GetCurrent@8

; 133  :     {
; 134  :         if (Monitors[i].hMon == hMonitor)

  000fd	8b 4d ec	 mov	 ecx, DWORD PTR _i$142840[ebp]
  00100	8b 14 cd 00 00
	00 00		 mov	 edx, DWORD PTR _Monitors[ecx*8]
  00107	3b 55 f0	 cmp	 edx, DWORD PTR _hMonitor$[ebp]
  0010a	75 0c		 jne	 SHORT $LN2@GetCurrent@8

; 135  :         {
; 136  :             return Monitors[i].lpDD;

  0010c	8b 45 ec	 mov	 eax, DWORD PTR _i$142840[ebp]
  0010f	8b 04 c5 04 00
	00 00		 mov	 eax, DWORD PTR _Monitors[eax*8+4]
  00116	eb 79		 jmp	 SHORT $LN9@GetCurrent@8
$LN2@GetCurrent@8:

; 137  :         }
; 138  :     }

  00118	eb cf		 jmp	 SHORT $LN4@GetCurrent@8
$LN3@GetCurrent@8:

; 139  : 
; 140  :     LOG(0, _T("Couldn't find correct monitor"));

  0011a	68 00 00 00 00	 push	 OFFSET ??_C@_1DM@IFNNMBMO@?$AAC?$AAo?$AAu?$AAl?$AAd?$AAn?$AA?8?$AAt?$AA?5?$AAf?$AAi?$AAn?$AAd?$AA?5?$AAc?$AAo?$AAr?$AAr?$AAe?$AAc?$AAt?$AA?5?$AAm?$AAo?$AAn?$AAi?$AAt?$AAo?$AAr?$AA?$AA@
  0011f	6a 00		 push	 0
  00121	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00126	83 c4 08	 add	 esp, 8

; 141  : 
; 142  :     // fall back to standard DD create
; 143  :     if (FAILED(m_lpDirectDrawCreate(NULL, &lpDD, NULL)))

  00129	6a 00		 push	 0
  0012b	8b 4d b0	 mov	 ecx, DWORD PTR _this$[ebp]
  0012e	81 c1 b0 02 00
	00		 add	 ecx, 688		; 000002b0H
  00134	51		 push	 ecx
  00135	6a 00		 push	 0
  00137	8b 4d b0	 mov	 ecx, DWORD PTR _this$[ebp]
  0013a	81 c1 bc 02 00
	00		 add	 ecx, 700		; 000002bcH
  00140	e8 00 00 00 00	 call	 ??R?$DynamicFunctionS3@JPAU_GUID@@PAPAUIDirectDraw@@PAUIUnknown@@@@QBEJPAU_GUID@@PAPAUIDirectDraw@@PAUIUnknown@@@Z ; DynamicFunctionS3<long,_GUID *,IDirectDraw * *,IUnknown *>::operator()
  00145	85 c0		 test	 eax, eax
  00147	7d 3f		 jge	 SHORT $LN1@GetCurrent@8

; 144  :     {
; 145  :         ErrorBox(_T("DirectDrawCreate failed"));

  00149	68 00 00 00 00	 push	 OFFSET ??_C@_1DA@ENAPNCMA@?$AAD?$AAi?$AAr?$AAe?$AAc?$AAt?$AAD?$AAr?$AAa?$AAw?$AAC?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?$AA@
  0014e	8d 4d b4	 lea	 ecx, DWORD PTR $T355060[ebp]
  00151	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> >
  00156	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1
  0015d	8d 55 b4	 lea	 edx, DWORD PTR $T355060[ebp]
  00160	52		 push	 edx
  00161	68 91 00 00 00	 push	 145			; 00000091H
  00166	68 00 00 00 00	 push	 OFFSET ??_C@_1CI@CKGCBFDK@?$AA?4?$AA?2?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  0016b	6a 00		 push	 0
  0016d	e8 00 00 00 00	 call	 ?_ErrorBox@@YAXPAUHWND__@@PB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _ErrorBox
  00172	83 c4 10	 add	 esp, 16			; 00000010H
  00175	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0017c	8d 4d b4	 lea	 ecx, DWORD PTR $T355060[ebp]
  0017f	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> >

; 146  :         return NULL;

  00184	33 c0		 xor	 eax, eax
  00186	eb 09		 jmp	 SHORT $LN9@GetCurrent@8
$LN1@GetCurrent@8:

; 147  :     }
; 148  :     return lpDD;

  00188	8b 45 b0	 mov	 eax, DWORD PTR _this$[ebp]
  0018b	8b 80 b0 02 00
	00		 mov	 eax, DWORD PTR [eax+688]
$LN9@GetCurrent@8:

; 149  : }

  00191	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00194	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0019b	59		 pop	 ecx
  0019c	8b e5		 mov	 esp, ebp
  0019e	5d		 pop	 ebp
  0019f	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?GetCurrentDD@COverlayOutput@@AAEPAUIDirectDraw@@PAUHWND__@@@Z$0:
  00000	8d 4d d0	 lea	 ecx, DWORD PTR $T355059[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$?GetCurrentDD@COverlayOutput@@AAEPAUIDirectDraw@@PAUHWND__@@@Z$1:
  00008	8d 4d b4	 lea	 ecx, DWORD PTR $T355060[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$?GetCurrentDD@COverlayOutput@@AAEPAUIDirectDraw@@PAUHWND__@@@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 b8	 mov	 ecx, DWORD PTR [edx-72]
  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$?GetCurrentDD@COverlayOutput@@AAEPAUIDirectDraw@@PAUHWND__@@@Z
  00026	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?GetCurrentDD@COverlayOutput@@AAEPAUIDirectDraw@@PAUHWND__@@@Z ENDP ; COverlayOutput::GetCurrentDD
PUBLIC	?Overlay_UseControls_OnChange@COverlayOutput@@CAHJ@Z ; COverlayOutput::Overlay_UseControls_OnChange
; Function compile flags: /Odtp
;	COMDAT ?Overlay_UseControls_OnChange@COverlayOutput@@CAHJ@Z
_TEXT	SEGMENT
tv74 = -8						; size = 4
tv66 = -4						; size = 4
_NewValue$ = 8						; size = 4
?Overlay_UseControls_OnChange@COverlayOutput@@CAHJ@Z PROC ; COverlayOutput::Overlay_UseControls_OnChange, COMDAT

; 1460 : {

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

; 1461 :     OverlayOutputInstance.bUseOverlayControls = NewValue;

  00006	8b 45 08	 mov	 eax, DWORD PTR _NewValue$[ebp]
  00009	a3 88 02 00 00	 mov	 DWORD PTR ?OverlayOutputInstance@@3VCOverlayOutput@@A+648, eax

; 1462 :     if(GetActiveOutput()->Type() == OUT_OVERLAY)

  0000e	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  00013	89 45 fc	 mov	 DWORD PTR tv66[ebp], eax
  00016	8b 4d fc	 mov	 ecx, DWORD PTR tv66[ebp]
  00019	8b 11		 mov	 edx, DWORD PTR [ecx]
  0001b	8b 4d fc	 mov	 ecx, DWORD PTR tv66[ebp]
  0001e	8b 42 60	 mov	 eax, DWORD PTR [edx+96]
  00021	ff d0		 call	 eax
  00023	85 c0		 test	 eax, eax
  00025	75 2a		 jne	 SHORT $LN3@Overlay_Us@3

; 1463 :     {
; 1464 :         if(OverlayOutputInstance.bUseOverlayControls)

  00027	83 3d 88 02 00
	00 00		 cmp	 DWORD PTR ?OverlayOutputInstance@@3VCOverlayOutput@@A+648, 0
  0002e	74 17		 je	 SHORT $LN2@Overlay_Us@3

; 1465 :         {
; 1466 :            GetActiveOutput()->Overlay_SetColorControls();

  00030	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  00035	89 45 f8	 mov	 DWORD PTR tv74[ebp], eax
  00038	8b 4d f8	 mov	 ecx, DWORD PTR tv74[ebp]
  0003b	8b 11		 mov	 edx, DWORD PTR [ecx]
  0003d	8b 4d f8	 mov	 ecx, DWORD PTR tv74[ebp]
  00040	8b 42 3c	 mov	 eax, DWORD PTR [edx+60]
  00043	ff d0		 call	 eax

; 1467 :         }
; 1468 :         else

  00045	eb 0a		 jmp	 SHORT $LN3@Overlay_Us@3
$LN2@Overlay_Us@3:

; 1469 :         {
; 1470 :            OverlayOutputInstance.Overlay_ResetColorControls();

  00047	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlayOutputInstance@@3VCOverlayOutput@@A ; OverlayOutputInstance
  0004c	e8 00 00 00 00	 call	 ?Overlay_ResetColorControls@COverlayOutput@@QAEXXZ ; COverlayOutput::Overlay_ResetColorControls
$LN3@Overlay_Us@3:

; 1471 :         }
; 1472 :     }
; 1473 :     return FALSE;

  00051	33 c0		 xor	 eax, eax

; 1474 : }

  00053	8b e5		 mov	 esp, ebp
  00055	5d		 pop	 ebp
  00056	c3		 ret	 0
?Overlay_UseControls_OnChange@COverlayOutput@@CAHJ@Z ENDP ; COverlayOutput::Overlay_UseControls_OnChange
_TEXT	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?InitDD@COverlayOutput@@UAEHPAUHWND__@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?InitDD@COverlayOutput@@UAEHPAUHWND__@@@Z$0
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?InitDD@COverlayOutput@@UAEHPAUHWND__@@@Z$1
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?InitDD@COverlayOutput@@UAEHPAUHWND__@@@Z$2
__ehfuncinfo$?InitDD@COverlayOutput@@UAEHPAUHWND__@@@Z DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$?InitDD@COverlayOutput@@UAEHPAUHWND__@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?InitDD@COverlayOutput@@UAEHPAUHWND__@@@Z
_TEXT	SEGMENT
_this$ = -488						; size = 4
$T359263 = -484						; size = 28
$T359262 = -456						; size = 28
$T359261 = -428						; size = 28
_ddrval$ = -400						; size = 4
_DriverCaps$ = -396					; size = 380
__$EHRec$ = -12						; size = 12
_hWnd$ = 8						; size = 4
?InitDD@COverlayOutput@@UAEHPAUHWND__@@@Z PROC		; COverlayOutput::InitDD, COMDAT
; _this$ = ecx

; 1295 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?InitDD@COverlayOutput@@UAEHPAUHWND__@@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	81 ec dc 01 00
	00		 sub	 esp, 476		; 000001dcH
  00017	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001c	33 c5		 xor	 eax, ebp
  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
  00028	89 8d 18 fe ff
	ff		 mov	 DWORD PTR _this$[ebp], ecx

; 1296 :     HRESULT ddrval;
; 1297 :     DDCAPS DriverCaps;
; 1298 : 
; 1299 :     lpDD = GetCurrentDD(hWnd);

  0002e	8b 45 08	 mov	 eax, DWORD PTR _hWnd$[ebp]
  00031	50		 push	 eax
  00032	8b 8d 18 fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00038	e8 00 00 00 00	 call	 ?GetCurrentDD@COverlayOutput@@AAEPAUIDirectDraw@@PAUHWND__@@@Z ; COverlayOutput::GetCurrentDD
  0003d	8b 8d 18 fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00043	89 81 b0 02 00
	00		 mov	 DWORD PTR [ecx+688], eax

; 1300 : 
; 1301 :     // can we use Overlay ??
; 1302 :     memset(&DriverCaps, 0x00, sizeof(DriverCaps));

  00049	68 7c 01 00 00	 push	 380			; 0000017cH
  0004e	6a 00		 push	 0
  00050	8d 95 74 fe ff
	ff		 lea	 edx, DWORD PTR _DriverCaps$[ebp]
  00056	52		 push	 edx
  00057	e8 00 00 00 00	 call	 _memset
  0005c	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1303 :     DriverCaps.dwSize = sizeof(DriverCaps);

  0005f	c7 85 74 fe ff
	ff 7c 01 00 00	 mov	 DWORD PTR _DriverCaps$[ebp], 380 ; 0000017cH

; 1304 :     ddrval = lpDD->GetCaps(&DriverCaps, NULL);

  00069	6a 00		 push	 0
  0006b	8d 85 74 fe ff
	ff		 lea	 eax, DWORD PTR _DriverCaps$[ebp]
  00071	50		 push	 eax
  00072	8b 8d 18 fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00078	8b 91 b0 02 00
	00		 mov	 edx, DWORD PTR [ecx+688]
  0007e	8b 85 18 fe ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00084	8b 88 b0 02 00
	00		 mov	 ecx, DWORD PTR [eax+688]
  0008a	8b 12		 mov	 edx, DWORD PTR [edx]
  0008c	51		 push	 ecx
  0008d	8b 42 2c	 mov	 eax, DWORD PTR [edx+44]
  00090	ff d0		 call	 eax
  00092	89 85 70 fe ff
	ff		 mov	 DWORD PTR _ddrval$[ebp], eax

; 1305 : 
; 1306 :     if (SUCCEEDED(ddrval))

  00098	83 bd 70 fe ff
	ff 00		 cmp	 DWORD PTR _ddrval$[ebp], 0
  0009f	0f 8c 6e 01 00
	00		 jl	 $LN9@InitDD@2

; 1307 :     {
; 1308 :         if (DriverCaps.dwCaps & DDCAPS_OVERLAY)

  000a5	8b 8d 78 fe ff
	ff		 mov	 ecx, DWORD PTR _DriverCaps$[ebp+4]
  000ab	81 e1 00 08 00
	00		 and	 ecx, 2048		; 00000800H
  000b1	0f 84 11 01 00
	00		 je	 $LN8@InitDD@2

; 1309 :         {
; 1310 :             if (!(DriverCaps.dwCaps & DDCAPS_OVERLAYSTRETCH))

  000b7	8b 95 78 fe ff
	ff		 mov	 edx, DWORD PTR _DriverCaps$[ebp+4]
  000bd	81 e2 00 40 00
	00		 and	 edx, 16384		; 00004000H
  000c3	75 4b		 jne	 SHORT $LN7@InitDD@2

; 1311 :             {
; 1312 :                 ErrorBox(_T("Can't Strech Overlay"));

  000c5	68 00 00 00 00	 push	 OFFSET ??_C@_1CK@DNJFLFGF@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAS?$AAt?$AAr?$AAe?$AAc?$AAh?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?$AA@
  000ca	8d 8d 54 fe ff
	ff		 lea	 ecx, DWORD PTR $T359261[ebp]
  000d0	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> >
  000d5	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  000dc	8d 85 54 fe ff
	ff		 lea	 eax, DWORD PTR $T359261[ebp]
  000e2	50		 push	 eax
  000e3	68 20 05 00 00	 push	 1312			; 00000520H
  000e8	68 00 00 00 00	 push	 OFFSET ??_C@_1CI@CKGCBFDK@?$AA?4?$AA?2?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  000ed	6a 00		 push	 0
  000ef	e8 00 00 00 00	 call	 ?_ErrorBox@@YAXPAUHWND__@@PB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _ErrorBox
  000f4	83 c4 10	 add	 esp, 16			; 00000010H
  000f7	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  000fe	8d 8d 54 fe ff
	ff		 lea	 ecx, DWORD PTR $T359261[ebp]
  00104	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> >

; 1313 :                 return FALSE;

  00109	33 c0		 xor	 eax, eax
  0010b	e9 85 01 00 00	 jmp	 $LN10@InitDD@2
$LN7@InitDD@2:

; 1314 :             }
; 1315 : 
; 1316 :             bCanDoColorKey = ((DriverCaps.dwCKeyCaps & DDCKEYCAPS_DESTOVERLAY) > 0);

  00110	8b 8d 80 fe ff
	ff		 mov	 ecx, DWORD PTR _DriverCaps$[ebp+12]
  00116	83 e1 10	 and	 ecx, 16			; 00000010H
  00119	33 d2		 xor	 edx, edx
  0011b	3b d1		 cmp	 edx, ecx
  0011d	1b c0		 sbb	 eax, eax
  0011f	f7 d8		 neg	 eax
  00121	8b 8d 18 fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00127	89 81 58 02 00
	00		 mov	 DWORD PTR [ecx+600], eax

; 1317 : 
; 1318 :             if (DriverCaps.dwCaps & DDCAPS_ALIGNSIZESRC)

  0012d	8b 95 78 fe ff
	ff		 mov	 edx, DWORD PTR _DriverCaps$[ebp+4]
  00133	83 e2 10	 and	 edx, 16			; 00000010H
  00136	74 14		 je	 SHORT $LN6@InitDD@2

; 1319 :             {
; 1320 :                 SrcSizeAlign = DriverCaps.dwAlignSizeSrc;

  00138	8b 85 18 fe ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  0013e	8b 8d c8 fe ff
	ff		 mov	 ecx, DWORD PTR _DriverCaps$[ebp+84]
  00144	89 88 14 02 00
	00		 mov	 DWORD PTR [eax+532], ecx

; 1321 :             }
; 1322 :             else

  0014a	eb 10		 jmp	 SHORT $LN5@InitDD@2
$LN6@InitDD@2:

; 1323 :             {
; 1324 :                 SrcSizeAlign = 1;

  0014c	8b 95 18 fe ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00152	c7 82 14 02 00
	00 01 00 00 00	 mov	 DWORD PTR [edx+532], 1
$LN5@InitDD@2:

; 1325 :             }
; 1326 : 
; 1327 :             if (DriverCaps.dwCaps & DDCAPS_ALIGNSIZEDEST)

  0015c	8b 85 78 fe ff
	ff		 mov	 eax, DWORD PTR _DriverCaps$[ebp+4]
  00162	83 e0 04	 and	 eax, 4
  00165	74 14		 je	 SHORT $LN4@InitDD@2

; 1328 :             {
; 1329 :                 DestSizeAlign = DriverCaps.dwAlignSizeDest;

  00167	8b 8d 18 fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0016d	8b 95 d0 fe ff
	ff		 mov	 edx, DWORD PTR _DriverCaps$[ebp+92]
  00173	89 91 10 02 00
	00		 mov	 DWORD PTR [ecx+528], edx

; 1330 :             }
; 1331 :             else

  00179	eb 10		 jmp	 SHORT $LN3@InitDD@2
$LN4@InitDD@2:

; 1332 :             {
; 1333 :                 DestSizeAlign = 1;

  0017b	8b 85 18 fe ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00181	c7 80 10 02 00
	00 01 00 00 00	 mov	 DWORD PTR [eax+528], 1
$LN3@InitDD@2:

; 1334 :             }
; 1335 :             bCanDoBob = ((DriverCaps.dwCaps2 & DDCAPS2_CANFLIPODDEVEN) != 0);

  0018b	8b 8d 7c fe ff
	ff		 mov	 ecx, DWORD PTR _DriverCaps$[ebp+8]
  00191	81 e1 00 20 00
	00		 and	 ecx, 8192		; 00002000H
  00197	f7 d9		 neg	 ecx
  00199	1b c9		 sbb	 ecx, ecx
  0019b	f7 d9		 neg	 ecx
  0019d	8b 95 18 fe ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  001a3	89 8a 50 02 00
	00		 mov	 DWORD PTR [edx+592], ecx

; 1336 :             bCanDoFlipInterval = ((DriverCaps.dwCaps2 & DDCAPS2_FLIPINTERVAL) != 0);

  001a9	8b 85 7c fe ff
	ff		 mov	 eax, DWORD PTR _DriverCaps$[ebp+8]
  001af	25 00 00 20 00	 and	 eax, 2097152		; 00200000H
  001b4	f7 d8		 neg	 eax
  001b6	1b c0		 sbb	 eax, eax
  001b8	f7 d8		 neg	 eax
  001ba	8b 8d 18 fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  001c0	89 81 54 02 00
	00		 mov	 DWORD PTR [ecx+596], eax

; 1337 :         }
; 1338 :         else

  001c6	eb 4b		 jmp	 SHORT $LN9@InitDD@2
$LN8@InitDD@2:

; 1339 :         {
; 1340 :             ErrorBox(_T("Can't Use Overlay"));

  001c8	68 00 00 00 00	 push	 OFFSET ??_C@_1CE@NLDOEDFK@?$AAC?$AAa?$AAn?$AA?8?$AAt?$AA?5?$AAU?$AAs?$AAe?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA?$AA@
  001cd	8d 8d 38 fe ff
	ff		 lea	 ecx, DWORD PTR $T359262[ebp]
  001d3	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> >
  001d8	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1
  001df	8d 95 38 fe ff
	ff		 lea	 edx, DWORD PTR $T359262[ebp]
  001e5	52		 push	 edx
  001e6	68 3c 05 00 00	 push	 1340			; 0000053cH
  001eb	68 00 00 00 00	 push	 OFFSET ??_C@_1CI@CKGCBFDK@?$AA?4?$AA?2?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  001f0	6a 00		 push	 0
  001f2	e8 00 00 00 00	 call	 ?_ErrorBox@@YAXPAUHWND__@@PB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _ErrorBox
  001f7	83 c4 10	 add	 esp, 16			; 00000010H
  001fa	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00201	8d 8d 38 fe ff
	ff		 lea	 ecx, DWORD PTR $T359262[ebp]
  00207	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> >

; 1341 :             return (FALSE);

  0020c	33 c0		 xor	 eax, eax
  0020e	e9 82 00 00 00	 jmp	 $LN10@InitDD@2
$LN9@InitDD@2:

; 1342 :         }
; 1343 :     }
; 1344 : 
; 1345 :     ddrval = lpDD->SetCooperativeLevel(hWnd, DDSCL_NORMAL);

  00213	6a 08		 push	 8
  00215	8b 45 08	 mov	 eax, DWORD PTR _hWnd$[ebp]
  00218	50		 push	 eax
  00219	8b 8d 18 fe ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0021f	8b 91 b0 02 00
	00		 mov	 edx, DWORD PTR [ecx+688]
  00225	8b 85 18 fe ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  0022b	8b 88 b0 02 00
	00		 mov	 ecx, DWORD PTR [eax+688]
  00231	8b 12		 mov	 edx, DWORD PTR [edx]
  00233	51		 push	 ecx
  00234	8b 42 50	 mov	 eax, DWORD PTR [edx+80]
  00237	ff d0		 call	 eax
  00239	89 85 70 fe ff
	ff		 mov	 DWORD PTR _ddrval$[ebp], eax

; 1346 : 
; 1347 :     if (FAILED(ddrval))

  0023f	83 bd 70 fe ff
	ff 00		 cmp	 DWORD PTR _ddrval$[ebp], 0
  00246	7d 48		 jge	 SHORT $LN1@InitDD@2

; 1348 :     {
; 1349 :         ErrorBox(_T("SetCooperativeLevel failed"));

  00248	68 00 00 00 00	 push	 OFFSET ??_C@_1DG@OAAFFAPE@?$AAS?$AAe?$AAt?$AAC?$AAo?$AAo?$AAp?$AAe?$AAr?$AAa?$AAt?$AAi?$AAv?$AAe?$AAL?$AAe?$AAv?$AAe?$AAl?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?$AA@
  0024d	8d 8d 1c fe ff
	ff		 lea	 ecx, DWORD PTR $T359263[ebp]
  00253	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> >
  00258	c7 45 fc 02 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 2
  0025f	8d 8d 1c fe ff
	ff		 lea	 ecx, DWORD PTR $T359263[ebp]
  00265	51		 push	 ecx
  00266	68 45 05 00 00	 push	 1349			; 00000545H
  0026b	68 00 00 00 00	 push	 OFFSET ??_C@_1CI@CKGCBFDK@?$AA?4?$AA?2?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  00270	6a 00		 push	 0
  00272	e8 00 00 00 00	 call	 ?_ErrorBox@@YAXPAUHWND__@@PB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _ErrorBox
  00277	83 c4 10	 add	 esp, 16			; 00000010H
  0027a	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00281	8d 8d 1c fe ff
	ff		 lea	 ecx, DWORD PTR $T359263[ebp]
  00287	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> >

; 1350 :         return (FALSE);

  0028c	33 c0		 xor	 eax, eax
  0028e	eb 05		 jmp	 SHORT $LN10@InitDD@2
$LN1@InitDD@2:

; 1351 :     }
; 1352 : 
; 1353 :     return TRUE;

  00290	b8 01 00 00 00	 mov	 eax, 1
$LN10@InitDD@2:

; 1354 : }

  00295	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00298	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0029f	59		 pop	 ecx
  002a0	8b e5		 mov	 esp, ebp
  002a2	5d		 pop	 ebp
  002a3	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?InitDD@COverlayOutput@@UAEHPAUHWND__@@@Z$0:
  00000	8d 8d 54 fe ff
	ff		 lea	 ecx, DWORD PTR $T359261[ebp]
  00006	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$?InitDD@COverlayOutput@@UAEHPAUHWND__@@@Z$1:
  0000b	8d 8d 38 fe ff
	ff		 lea	 ecx, DWORD PTR $T359262[ebp]
  00011	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$?InitDD@COverlayOutput@@UAEHPAUHWND__@@@Z$2:
  00016	8d 8d 1c fe ff
	ff		 lea	 ecx, DWORD PTR $T359263[ebp]
  0001c	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$?InitDD@COverlayOutput@@UAEHPAUHWND__@@@Z:
  00021	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00025	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00028	8b 8a 20 fe ff
	ff		 mov	 ecx, DWORD PTR [edx-480]
  0002e	33 c8		 xor	 ecx, eax
  00030	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00035	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?InitDD@COverlayOutput@@UAEHPAUHWND__@@@Z
  0003a	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?InitDD@COverlayOutput@@UAEHPAUHWND__@@@Z ENDP		; COverlayOutput::InitDD
; Function compile flags: /Odtp
;	COMDAT ?Overlay_Destroy@COverlayOutput@@UAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?Overlay_Destroy@COverlayOutput@@UAEHXZ PROC		; COverlayOutput::Overlay_Destroy, COMDAT
; _this$ = ecx

; 912  : {

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

; 913  :     EnterCriticalSection(&hDDCritSect);

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	05 18 02 00 00	 add	 eax, 536		; 00000218H
  0000f	50		 push	 eax
  00010	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 914  : 
; 915  :     // reset overlay control to previous settings so that
; 916  :     // DVD's will look OK
; 917  :     if(pDDColorControl != NULL)

  00016	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00019	83 b9 84 02 00
	00 00		 cmp	 DWORD PTR [ecx+644], 0
  00020	74 2f		 je	 SHORT $LN5@Overlay_De@2

; 918  :     {
; 919  :         Overlay_ResetColorControls();

  00022	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00025	e8 00 00 00 00	 call	 ?Overlay_ResetColorControls@COverlayOutput@@QAEXXZ ; COverlayOutput::Overlay_ResetColorControls

; 920  :         pDDColorControl->Release();

  0002a	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  0002d	8b 82 84 02 00
	00		 mov	 eax, DWORD PTR [edx+644]
  00033	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00036	8b 91 84 02 00
	00		 mov	 edx, DWORD PTR [ecx+644]
  0003c	8b 00		 mov	 eax, DWORD PTR [eax]
  0003e	52		 push	 edx
  0003f	8b 48 08	 mov	 ecx, DWORD PTR [eax+8]
  00042	ff d1		 call	 ecx

; 921  :         pDDColorControl = NULL;

  00044	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00047	c7 82 84 02 00
	00 00 00 00 00	 mov	 DWORD PTR [edx+644], 0
$LN5@Overlay_De@2:

; 922  : 
; 923  :     }
; 924  : 
; 925  :     // Now destroy the Extra Surface
; 926  :     if (lpExtraMemoryForFilters != NULL)

  00051	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00054	83 b8 3c 02 00
	00 00		 cmp	 DWORD PTR [eax+572], 0
  0005b	74 1f		 je	 SHORT $LN4@Overlay_De@2

; 927  :     {
; 928  :         free(lpExtraMemoryForFilters);

  0005d	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00060	8b 91 3c 02 00
	00		 mov	 edx, DWORD PTR [ecx+572]
  00066	52		 push	 edx
  00067	e8 00 00 00 00	 call	 _free
  0006c	83 c4 04	 add	 esp, 4

; 929  :         lpExtraMemoryForFilters = NULL;

  0006f	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00072	c7 80 3c 02 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+572], 0
$LN4@Overlay_De@2:

; 930  :     }
; 931  : 
; 932  :     // Now destroy the Back Overlay
; 933  :     if (lpDDOverlayBack != NULL)

  0007c	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0007f	83 b9 38 02 00
	00 00		 cmp	 DWORD PTR [ecx+568], 0
  00086	74 27		 je	 SHORT $LN3@Overlay_De@2

; 934  :     {
; 935  :         lpDDOverlayBack->Release();

  00088	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  0008b	8b 82 38 02 00
	00		 mov	 eax, DWORD PTR [edx+568]
  00091	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00094	8b 91 38 02 00
	00		 mov	 edx, DWORD PTR [ecx+568]
  0009a	8b 00		 mov	 eax, DWORD PTR [eax]
  0009c	52		 push	 edx
  0009d	8b 48 08	 mov	 ecx, DWORD PTR [eax+8]
  000a0	ff d1		 call	 ecx

; 936  :         lpDDOverlayBack = NULL;

  000a2	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  000a5	c7 82 38 02 00
	00 00 00 00 00	 mov	 DWORD PTR [edx+568], 0
$LN3@Overlay_De@2:

; 937  :     }
; 938  : 
; 939  :     // Now destroy the main Overlay
; 940  :     if (lpDDOverlay != NULL)

  000af	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  000b2	83 b8 34 02 00
	00 00		 cmp	 DWORD PTR [eax+564], 0
  000b9	74 27		 je	 SHORT $LN2@Overlay_De@2

; 941  :     {
; 942  :         // Destroy the video overlays
; 943  :         lpDDOverlay->Release();

  000bb	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  000be	8b 91 34 02 00
	00		 mov	 edx, DWORD PTR [ecx+564]
  000c4	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  000c7	8b 88 34 02 00
	00		 mov	 ecx, DWORD PTR [eax+564]
  000cd	8b 12		 mov	 edx, DWORD PTR [edx]
  000cf	51		 push	 ecx
  000d0	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  000d3	ff d0		 call	 eax

; 944  :         lpDDOverlay = NULL;

  000d5	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  000d8	c7 81 34 02 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+564], 0
$LN2@Overlay_De@2:

; 945  :     }
; 946  : 
; 947  :     // Now destroy the primary surface
; 948  :     if (lpDDSurface != NULL)

  000e2	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  000e5	83 ba 30 02 00
	00 00		 cmp	 DWORD PTR [edx+560], 0
  000ec	74 27		 je	 SHORT $LN1@Overlay_De@2

; 949  :     {
; 950  :         lpDDSurface->Release();

  000ee	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  000f1	8b 88 30 02 00
	00		 mov	 ecx, DWORD PTR [eax+560]
  000f7	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  000fa	8b 82 30 02 00
	00		 mov	 eax, DWORD PTR [edx+560]
  00100	8b 09		 mov	 ecx, DWORD PTR [ecx]
  00102	50		 push	 eax
  00103	8b 51 08	 mov	 edx, DWORD PTR [ecx+8]
  00106	ff d2		 call	 edx

; 951  :         lpDDSurface = NULL;

  00108	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0010b	c7 80 30 02 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+560], 0
$LN1@Overlay_De@2:

; 952  :     }
; 953  :     LeaveCriticalSection(&hDDCritSect);

  00115	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00118	81 c1 18 02 00
	00		 add	 ecx, 536		; 00000218H
  0011e	51		 push	 ecx
  0011f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 954  :     return TRUE;

  00125	b8 01 00 00 00	 mov	 eax, 1

; 955  : }

  0012a	8b e5		 mov	 esp, ebp
  0012c	5d		 pop	 ebp
  0012d	c3		 ret	 0
?Overlay_Destroy@COverlayOutput@@UAEHXZ ENDP		; COverlayOutput::Overlay_Destroy
PUBLIC	?Overlay_BackBuffers_OnChange@COverlayOutput@@CAHJ@Z ; COverlayOutput::Overlay_BackBuffers_OnChange
; Function compile flags: /Odtp
;	COMDAT ?Overlay_BackBuffers_OnChange@COverlayOutput@@CAHJ@Z
_TEXT	SEGMENT
tv66 = -4						; size = 4
_NewValue$ = 8						; size = 4
?Overlay_BackBuffers_OnChange@COverlayOutput@@CAHJ@Z PROC ; COverlayOutput::Overlay_BackBuffers_OnChange, COMDAT

; 1488 : {

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

; 1489 :     OverlayOutputInstance.BackBuffers = NewValue;

  00004	8b 45 08	 mov	 eax, DWORD PTR _NewValue$[ebp]
  00007	a3 48 02 00 00	 mov	 DWORD PTR ?OverlayOutputInstance@@3VCOverlayOutput@@A+584, eax

; 1490 :     if(GetActiveOutput()->Type() == OUT_OVERLAY)

  0000c	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  00011	89 45 fc	 mov	 DWORD PTR tv66[ebp], eax
  00014	8b 4d fc	 mov	 ecx, DWORD PTR tv66[ebp]
  00017	8b 11		 mov	 edx, DWORD PTR [ecx]
  00019	8b 4d fc	 mov	 ecx, DWORD PTR tv66[ebp]
  0001c	8b 42 60	 mov	 eax, DWORD PTR [edx+96]
  0001f	ff d0		 call	 eax
  00021	85 c0		 test	 eax, eax
  00023	75 1c		 jne	 SHORT $LN1@Overlay_Ba

; 1491 :     {
; 1492 :         Overlay_Stop(GetMainWnd());

  00025	e8 00 00 00 00	 call	 ?GetMainWnd@@YAPAUHWND__@@XZ ; GetMainWnd
  0002a	50		 push	 eax
  0002b	e8 00 00 00 00	 call	 ?Overlay_Stop@@YAXPAUHWND__@@@Z ; Overlay_Stop
  00030	83 c4 04	 add	 esp, 4

; 1493 :         Overlay_Start(GetMainWnd());

  00033	e8 00 00 00 00	 call	 ?GetMainWnd@@YAPAUHWND__@@XZ ; GetMainWnd
  00038	50		 push	 eax
  00039	e8 00 00 00 00	 call	 ?Overlay_Start@@YAXPAUHWND__@@@Z ; Overlay_Start
  0003e	83 c4 04	 add	 esp, 4
$LN1@Overlay_Ba:

; 1494 :     }
; 1495 :     return FALSE;

  00041	33 c0		 xor	 eax, eax

; 1496 : }

  00043	8b e5		 mov	 esp, ebp
  00045	5d		 pop	 ebp
  00046	c3		 ret	 0
?Overlay_BackBuffers_OnChange@COverlayOutput@@CAHJ@Z ENDP ; COverlayOutput::Overlay_BackBuffers_OnChange
_TEXT	ENDS
PUBLIC	?Overlay_AllowBobMode_OnChange@COverlayOutput@@CAHJ@Z ; COverlayOutput::Overlay_AllowBobMode_OnChange
; Function compile flags: /Odtp
;	COMDAT ?Overlay_AllowBobMode_OnChange@COverlayOutput@@CAHJ@Z
_TEXT	SEGMENT
tv66 = -4						; size = 4
_NewValue$ = 8						; size = 4
?Overlay_AllowBobMode_OnChange@COverlayOutput@@CAHJ@Z PROC ; COverlayOutput::Overlay_AllowBobMode_OnChange, COMDAT

; 1477 : {

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

; 1478 :     OverlayOutputInstance.bAllowBobMode = NewValue;

  00004	8b 45 08	 mov	 eax, DWORD PTR _NewValue$[ebp]
  00007	a3 4c 02 00 00	 mov	 DWORD PTR ?OverlayOutputInstance@@3VCOverlayOutput@@A+588, eax

; 1479 :     if(GetActiveOutput()->Type() == OUT_OVERLAY)

  0000c	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  00011	89 45 fc	 mov	 DWORD PTR tv66[ebp], eax
  00014	8b 4d fc	 mov	 ecx, DWORD PTR tv66[ebp]
  00017	8b 11		 mov	 edx, DWORD PTR [ecx]
  00019	8b 4d fc	 mov	 ecx, DWORD PTR tv66[ebp]
  0001c	8b 42 60	 mov	 eax, DWORD PTR [edx+96]
  0001f	ff d0		 call	 eax
  00021	85 c0		 test	 eax, eax
  00023	75 1c		 jne	 SHORT $LN1@Overlay_Al

; 1480 :     {
; 1481 :         Overlay_Stop(GetMainWnd());

  00025	e8 00 00 00 00	 call	 ?GetMainWnd@@YAPAUHWND__@@XZ ; GetMainWnd
  0002a	50		 push	 eax
  0002b	e8 00 00 00 00	 call	 ?Overlay_Stop@@YAXPAUHWND__@@@Z ; Overlay_Stop
  00030	83 c4 04	 add	 esp, 4

; 1482 :         Overlay_Start(GetMainWnd());

  00033	e8 00 00 00 00	 call	 ?GetMainWnd@@YAPAUHWND__@@XZ ; GetMainWnd
  00038	50		 push	 eax
  00039	e8 00 00 00 00	 call	 ?Overlay_Start@@YAXPAUHWND__@@@Z ; Overlay_Start
  0003e	83 c4 04	 add	 esp, 4
$LN1@Overlay_Al:

; 1483 :     }
; 1484 :     return FALSE;

  00041	33 c0		 xor	 eax, eax

; 1485 : }

  00043	8b e5		 mov	 esp, ebp
  00045	5d		 pop	 ebp
  00046	c3		 ret	 0
?Overlay_AllowBobMode_OnChange@COverlayOutput@@CAHJ@Z ENDP ; COverlayOutput::Overlay_AllowBobMode_OnChange
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?CheckChangeMonitor@COverlayOutput@@UAEXPAUHWND__@@@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_hMon$ = -4						; size = 4
_hWnd$ = 8						; size = 4
?CheckChangeMonitor@COverlayOutput@@UAEXPAUHWND__@@@Z PROC ; COverlayOutput::CheckChangeMonitor, COMDAT
; _this$ = ecx

; 162  : {

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

; 163  :     if(!m_lpMonitorFromWindow)

  00009	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0000c	81 c1 b4 02 00
	00		 add	 ecx, 692		; 000002b4H
  00012	e8 00 00 00 00	 call	 ??B?$DynamicFunctionParent@P6GPAUHMONITOR__@@PAUHWND__@@K@Z@@QBEHXZ ; DynamicFunctionParent<HMONITOR__ * (__stdcall*)(HWND__ *,unsigned long)>::operator int
  00017	85 c0		 test	 eax, eax
  00019	75 05		 jne	 SHORT $LN5@CheckChang@2

; 164  :     {
; 165  :         return;

  0001b	e9 89 00 00 00	 jmp	 $LN6@CheckChang@2
$LN5@CheckChang@2:

; 166  :     }
; 167  : 
; 168  :     HMONITOR hMon = m_lpMonitorFromWindow(hWnd, MONITOR_DEFAULTTOPRIMARY);

  00020	6a 01		 push	 1
  00022	8b 45 08	 mov	 eax, DWORD PTR _hWnd$[ebp]
  00025	50		 push	 eax
  00026	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00029	81 c1 b4 02 00
	00		 add	 ecx, 692		; 000002b4H
  0002f	e8 00 00 00 00	 call	 ??R?$DynamicFunctionS2@PAUHMONITOR__@@PAUHWND__@@K@@QBEPAUHMONITOR__@@PAUHWND__@@K@Z ; DynamicFunctionS2<HMONITOR__ *,HWND__ *,unsigned long>::operator()
  00034	89 45 fc	 mov	 DWORD PTR _hMon$[ebp], eax

; 169  : 
; 170  :     if (hCurrentMon == NULL)

  00037	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR _hCurrentMon, 0
  0003e	75 02		 jne	 SHORT $LN4@CheckChang@2

; 171  :     {
; 172  :         return;

  00040	eb 67		 jmp	 SHORT $LN6@CheckChang@2
$LN4@CheckChang@2:

; 173  :     }
; 174  : 
; 175  :     if (hMon != hCurrentMon)

  00042	8b 4d fc	 mov	 ecx, DWORD PTR _hMon$[ebp]
  00045	3b 0d 00 00 00
	00		 cmp	 ecx, DWORD PTR _hCurrentMon
  0004b	74 5c		 je	 SHORT $LN6@CheckChang@2

; 176  :     {
; 177  :         hCurrentMon = hMon;

  0004d	8b 55 fc	 mov	 edx, DWORD PTR _hMon$[ebp]
  00050	89 15 00 00 00
	00		 mov	 DWORD PTR _hCurrentMon, edx

; 178  :         Overlay_Stop(hWnd);

  00056	8b 45 08	 mov	 eax, DWORD PTR _hWnd$[ebp]
  00059	50		 push	 eax
  0005a	e8 00 00 00 00	 call	 ?Overlay_Stop@@YAXPAUHWND__@@@Z ; Overlay_Stop
  0005f	83 c4 04	 add	 esp, 4

; 179  :         if (lpDD != NULL)

  00062	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00065	83 b9 b0 02 00
	00 00		 cmp	 DWORD PTR [ecx+688], 0
  0006c	74 1a		 je	 SHORT $LN2@CheckChang@2

; 180  :         {
; 181  :             Overlay_Destroy();

  0006e	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00071	8b 02		 mov	 eax, DWORD PTR [edx]
  00073	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00076	8b 50 2c	 mov	 edx, DWORD PTR [eax+44]
  00079	ff d2		 call	 edx

; 182  :             lpDD = NULL;

  0007b	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0007e	c7 80 b0 02 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+688], 0
$LN2@CheckChang@2:

; 183  :         }
; 184  :         if (InitDD(hWnd))

  00088	8b 4d 08	 mov	 ecx, DWORD PTR _hWnd$[ebp]
  0008b	51		 push	 ecx
  0008c	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  0008f	8b 02		 mov	 eax, DWORD PTR [edx]
  00091	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00094	8b 50 14	 mov	 edx, DWORD PTR [eax+20]
  00097	ff d2		 call	 edx
  00099	85 c0		 test	 eax, eax
  0009b	74 0c		 je	 SHORT $LN6@CheckChang@2

; 185  :         {
; 186  :             Overlay_Start(hWnd);

  0009d	8b 45 08	 mov	 eax, DWORD PTR _hWnd$[ebp]
  000a0	50		 push	 eax
  000a1	e8 00 00 00 00	 call	 ?Overlay_Start@@YAXPAUHWND__@@@Z ; Overlay_Start
  000a6	83 c4 04	 add	 esp, 4
$LN6@CheckChang@2:

; 187  :         }
; 188  :     }
; 189  : }

  000a9	8b e5		 mov	 esp, ebp
  000ab	5d		 pop	 ebp
  000ac	c2 04 00	 ret	 4
?CheckChangeMonitor@COverlayOutput@@UAEXPAUHWND__@@@Z ENDP ; COverlayOutput::CheckChangeMonitor
; Function compile flags: /Odtp
;	COMDAT ?InitOtherSettings@COverlayOutput@@UAEXXZ
_TEXT	SEGMENT
_this$ = -524						; size = 4
_LocalOtherSettings$ = -520				; size = 520
?InitOtherSettings@COverlayOutput@@UAEXXZ PROC		; COverlayOutput::InitOtherSettings, COMDAT
; _this$ = ecx

; 1508 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	81 ec 0c 02 00
	00		 sub	 esp, 524		; 0000020cH
  00009	89 8d f4 fd ff
	ff		 mov	 DWORD PTR _this$[ebp], ecx

; 1509 :     const SETTING LocalOtherSettings[OTHER_SETTING_LASTONE] =
; 1510 :     {
; 1511 :         {
; 1512 :             "Back Buffers", SLIDER, 0, (LONG_PTR*)&BackBuffers,

  0000f	c7 85 f8 fd ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp], OFFSET ??_C@_0N@LOMFPFGL@Back?5Buffers?$AA@
  00019	c7 85 fc fd ff
	ff 04 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+4], 4
  00023	c7 85 00 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+8], 0
  0002d	8b 85 f4 fd ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00033	05 48 02 00 00	 add	 eax, 584		; 00000248H
  00038	89 85 04 fe ff
	ff		 mov	 DWORD PTR _LocalOtherSettings$[ebp+12], eax

; 1513 :             -1, -1, 2, 1, 1,

  0003e	c7 85 08 fe ff
	ff ff ff ff ff	 mov	 DWORD PTR _LocalOtherSettings$[ebp+16], -1
  00048	c7 85 0c fe ff
	ff ff ff ff ff	 mov	 DWORD PTR _LocalOtherSettings$[ebp+20], -1
  00052	c7 85 10 fe ff
	ff 02 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+24], 2
  0005c	c7 85 14 fe ff
	ff 01 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+28], 1
  00066	c7 85 18 fe ff
	ff 01 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+32], 1

; 1514 :             NULL,

  00070	c7 85 1c fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+36], 0

; 1515 :             "Overlay", "BackBuffers", Overlay_BackBuffers_OnChange,

  0007a	c7 85 20 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+40], OFFSET ??_C@_07PIOLBDJD@Overlay?$AA@
  00084	c7 85 24 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+44], OFFSET ??_C@_0M@GPGGDMIB@BackBuffers?$AA@
  0008e	c7 85 28 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+48], OFFSET ?Overlay_BackBuffers_OnChange@COverlayOutput@@CAHJ@Z ; COverlayOutput::Overlay_BackBuffers_OnChange

; 1516 :         },
; 1517 :         {
; 1518 :             "Overlay Colorkey", SLIDER, 0, (LONG_PTR*)&g_OverlayColor,

  00098	c7 85 2c fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+52], OFFSET ??_C@_0BB@DCKDDMGI@Overlay?5Colorkey?$AA@
  000a2	c7 85 30 fe ff
	ff 04 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+56], 4
  000ac	c7 85 34 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+60], 0
  000b6	8b 8d f4 fd ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  000bc	81 c1 44 02 00
	00		 add	 ecx, 580		; 00000244H
  000c2	89 8d 38 fe ff
	ff		 mov	 DWORD PTR _LocalOtherSettings$[ebp+64], ecx

; 1519 :             RGB(32,16,16), 0, RGB(255,255,255), 1, 1,

  000c8	c7 85 3c fe ff
	ff 20 10 10 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+68], 1052704 ; 00101020H
  000d2	c7 85 40 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+72], 0
  000dc	c7 85 44 fe ff
	ff ff ff ff 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+76], 16777215 ; 00ffffffH
  000e6	c7 85 48 fe ff
	ff 01 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+80], 1
  000f0	c7 85 4c fe ff
	ff 01 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+84], 1

; 1520 :             NULL,

  000fa	c7 85 50 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+88], 0

; 1521 :             "Overlay", "OverlayColor", Overlay_ColorKey_OnChange,

  00104	c7 85 54 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+92], OFFSET ??_C@_07PIOLBDJD@Overlay?$AA@
  0010e	c7 85 58 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+96], OFFSET ??_C@_0N@BAAELGMJ@OverlayColor?$AA@
  00118	c7 85 5c fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+100], OFFSET ?Overlay_ColorKey_OnChange@COverlayOutput@@CAHJ@Z ; COverlayOutput::Overlay_ColorKey_OnChange

; 1522 :         },
; 1523 :         {
; 1524 :             "Use Overlay Controls", ONOFF, 0, (LONG_PTR*)&bUseOverlayControls,

  00122	c7 85 60 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+104], OFFSET ??_C@_0BF@GEJHMOAB@Use?5Overlay?5Controls?$AA@
  0012c	c7 85 64 fe ff
	ff 01 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+108], 1
  00136	c7 85 68 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+112], 0
  00140	8b 95 f4 fd ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00146	81 c2 88 02 00
	00		 add	 edx, 648		; 00000288H
  0014c	89 95 6c fe ff
	ff		 mov	 DWORD PTR _LocalOtherSettings$[ebp+116], edx

; 1525 :             FALSE, 0, 1, 1, 1,

  00152	c7 85 70 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+120], 0
  0015c	c7 85 74 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+124], 0
  00166	c7 85 78 fe ff
	ff 01 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+128], 1
  00170	c7 85 7c fe ff
	ff 01 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+132], 1
  0017a	c7 85 80 fe ff
	ff 01 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+136], 1

; 1526 :             NULL,

  00184	c7 85 84 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+140], 0

; 1527 :             "Overlay", "UseOverlayControls", Overlay_UseControls_OnChange,

  0018e	c7 85 88 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+144], OFFSET ??_C@_07PIOLBDJD@Overlay?$AA@
  00198	c7 85 8c fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+148], OFFSET ??_C@_0BD@BEOFGKH@UseOverlayControls?$AA@
  001a2	c7 85 90 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+152], OFFSET ?Overlay_UseControls_OnChange@COverlayOutput@@CAHJ@Z ; COverlayOutput::Overlay_UseControls_OnChange

; 1528 :         },
; 1529 :         // DirectX docs say brightness value should be 0 to 10,000
; 1530 :         // which would mean a range of 0 to 1000.
; 1531 :         // however nVidia cards seem to have a range of -200 to 200
; 1532 :         // so the curreent range allows for this and leaves a lage margin
; 1533 :         // of error
; 1534 :         {
; 1535 :             "Overlay Brightness", SLIDER, 0, (LONG_PTR*)&OverlayBrightness,

  001ac	c7 85 94 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+156], OFFSET ??_C@_0BD@GHDHCCN@Overlay?5Brightness?$AA@
  001b6	c7 85 98 fe ff
	ff 04 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+160], 4
  001c0	c7 85 9c fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+164], 0
  001ca	8b 85 f4 fd ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  001d0	05 90 02 00 00	 add	 eax, 656		; 00000290H
  001d5	89 85 a0 fe ff
	ff		 mov	 DWORD PTR _LocalOtherSettings$[ebp+168], eax

; 1536 :             75, -1000, 1000, 5, 10,

  001db	c7 85 a4 fe ff
	ff 4b 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+172], 75 ; 0000004bH
  001e5	c7 85 a8 fe ff
	ff 18 fc ff ff	 mov	 DWORD PTR _LocalOtherSettings$[ebp+176], -1000 ; fffffc18H
  001ef	c7 85 ac fe ff
	ff e8 03 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+180], 1000 ; 000003e8H
  001f9	c7 85 b0 fe ff
	ff 05 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+184], 5
  00203	c7 85 b4 fe ff
	ff 0a 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+188], 10 ; 0000000aH

; 1537 :             NULL,

  0020d	c7 85 b8 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+192], 0

; 1538 :             "Overlay", "OverlayBrightness", Overlay_Brightness_OnChange,

  00217	c7 85 bc fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+196], OFFSET ??_C@_07PIOLBDJD@Overlay?$AA@
  00221	c7 85 c0 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+200], OFFSET ??_C@_0BC@DADJBEHF@OverlayBrightness?$AA@
  0022b	c7 85 c4 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+204], OFFSET ?Overlay_Brightness_OnChange@COverlayOutput@@CAHJ@Z ; COverlayOutput::Overlay_Brightness_OnChange

; 1539 :         },
; 1540 :         {
; 1541 :             "Overlay Contrast", SLIDER, 0, (LONG_PTR*)&OverlayContrast,

  00235	c7 85 c8 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+208], OFFSET ??_C@_0BB@OJFJOPC@Overlay?5Contrast?$AA@
  0023f	c7 85 cc fe ff
	ff 04 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+212], 4
  00249	c7 85 d0 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+216], 0
  00253	8b 8d f4 fd ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00259	81 c1 94 02 00
	00		 add	 ecx, 660		; 00000294H
  0025f	89 8d d4 fe ff
	ff		 mov	 DWORD PTR _LocalOtherSettings$[ebp+220], ecx

; 1542 :             100, 0, 200, 1, 1,

  00265	c7 85 d8 fe ff
	ff 64 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+224], 100 ; 00000064H
  0026f	c7 85 dc fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+228], 0
  00279	c7 85 e0 fe ff
	ff c8 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+232], 200 ; 000000c8H
  00283	c7 85 e4 fe ff
	ff 01 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+236], 1
  0028d	c7 85 e8 fe ff
	ff 01 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+240], 1

; 1543 :             NULL,

  00297	c7 85 ec fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+244], 0

; 1544 :             "Overlay", "OverlayContrast", Overlay_Contrast_OnChange,

  002a1	c7 85 f0 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+248], OFFSET ??_C@_07PIOLBDJD@Overlay?$AA@
  002ab	c7 85 f4 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+252], OFFSET ??_C@_0BA@ELHMHJBE@OverlayContrast?$AA@
  002b5	c7 85 f8 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+256], OFFSET ?Overlay_Contrast_OnChange@COverlayOutput@@CAHJ@Z ; COverlayOutput::Overlay_Contrast_OnChange

; 1545 :         },
; 1546 :         {
; 1547 :             "Overlay Hue", SLIDER, 0, (LONG_PTR*)&OverlayHue,

  002bf	c7 85 fc fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+260], OFFSET ??_C@_0M@GKKIGJOF@Overlay?5Hue?$AA@
  002c9	c7 85 00 ff ff
	ff 04 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+264], 4
  002d3	c7 85 04 ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+268], 0
  002dd	8b 95 f4 fd ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  002e3	81 c2 98 02 00
	00		 add	 edx, 664		; 00000298H
  002e9	89 95 08 ff ff
	ff		 mov	 DWORD PTR _LocalOtherSettings$[ebp+272], edx

; 1548 :             0, -180, 180, 1, 1,

  002ef	c7 85 0c ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+276], 0
  002f9	c7 85 10 ff ff
	ff 4c ff ff ff	 mov	 DWORD PTR _LocalOtherSettings$[ebp+280], -180 ; ffffff4cH
  00303	c7 85 14 ff ff
	ff b4 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+284], 180 ; 000000b4H
  0030d	c7 85 18 ff ff
	ff 01 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+288], 1
  00317	c7 85 1c ff ff
	ff 01 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+292], 1

; 1549 :             NULL,

  00321	c7 85 20 ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+296], 0

; 1550 :             "Overlay", "OverlayHue", Overlay_Hue_OnChange,

  0032b	c7 85 24 ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+300], OFFSET ??_C@_07PIOLBDJD@Overlay?$AA@
  00335	c7 85 28 ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+304], OFFSET ??_C@_0L@LNHCDJLI@OverlayHue?$AA@
  0033f	c7 85 2c ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+308], OFFSET ?Overlay_Hue_OnChange@COverlayOutput@@CAHJ@Z ; COverlayOutput::Overlay_Hue_OnChange

; 1551 :         },
; 1552 :         {
; 1553 :             "Overlay Saturation", SLIDER, 0, (LONG_PTR*)&OverlaySaturation,

  00349	c7 85 30 ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+312], OFFSET ??_C@_0BD@NMOAJGIG@Overlay?5Saturation?$AA@
  00353	c7 85 34 ff ff
	ff 04 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+316], 4
  0035d	c7 85 38 ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+320], 0
  00367	8b 85 f4 fd ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  0036d	05 9c 02 00 00	 add	 eax, 668		; 0000029cH
  00372	89 85 3c ff ff
	ff		 mov	 DWORD PTR _LocalOtherSettings$[ebp+324], eax

; 1554 :             100, 0, 200, 1, 1,

  00378	c7 85 40 ff ff
	ff 64 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+328], 100 ; 00000064H
  00382	c7 85 44 ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+332], 0
  0038c	c7 85 48 ff ff
	ff c8 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+336], 200 ; 000000c8H
  00396	c7 85 4c ff ff
	ff 01 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+340], 1
  003a0	c7 85 50 ff ff
	ff 01 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+344], 1

; 1555 :             NULL,

  003aa	c7 85 54 ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+348], 0

; 1556 :             "Overlay", "OverlaySaturation", Overlay_Saturation_OnChange,

  003b4	c7 85 58 ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+352], OFFSET ??_C@_07PIOLBDJD@Overlay?$AA@
  003be	c7 85 5c ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+356], OFFSET ??_C@_0BC@OKKKPANO@OverlaySaturation?$AA@
  003c8	c7 85 60 ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+360], OFFSET ?Overlay_Saturation_OnChange@COverlayOutput@@CAHJ@Z ; COverlayOutput::Overlay_Saturation_OnChange

; 1557 :         },
; 1558 :         {
; 1559 :             "Overlay Gamma", SLIDER, 0, (LONG_PTR*)&OverlayGamma,

  003d2	c7 85 64 ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+364], OFFSET ??_C@_0O@IKAMBNBA@Overlay?5Gamma?$AA@
  003dc	c7 85 68 ff ff
	ff 04 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+368], 4
  003e6	c7 85 6c ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+372], 0
  003f0	8b 8d f4 fd ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  003f6	81 c1 a0 02 00
	00		 add	 ecx, 672		; 000002a0H
  003fc	89 8d 70 ff ff
	ff		 mov	 DWORD PTR _LocalOtherSettings$[ebp+376], ecx

; 1560 :             1, 1, 500, 1, 1,

  00402	c7 85 74 ff ff
	ff 01 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+380], 1
  0040c	c7 85 78 ff ff
	ff 01 00 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+384], 1
  00416	c7 85 7c ff ff
	ff f4 01 00 00	 mov	 DWORD PTR _LocalOtherSettings$[ebp+388], 500 ; 000001f4H
  00420	c7 45 80 01 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+392], 1
  00427	c7 45 84 01 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+396], 1

; 1561 :             NULL,

  0042e	c7 45 88 00 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+400], 0

; 1562 :             "Overlay", "OverlayGamma", Overlay_Gamma_OnChange,

  00435	c7 45 8c 00 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+404], OFFSET ??_C@_07PIOLBDJD@Overlay?$AA@
  0043c	c7 45 90 00 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+408], OFFSET ??_C@_0N@OOHCLICH@OverlayGamma?$AA@
  00443	c7 45 94 00 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+412], OFFSET ?Overlay_Gamma_OnChange@COverlayOutput@@CAHJ@Z ; COverlayOutput::Overlay_Gamma_OnChange

; 1563 :         },
; 1564 :         {
; 1565 :             "Overlay Sharpness", SLIDER, 0, (LONG_PTR*)&OverlaySharpness,

  0044a	c7 45 98 00 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+416], OFFSET ??_C@_0BC@BBDFMPDA@Overlay?5Sharpness?$AA@
  00451	c7 45 9c 04 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+420], 4
  00458	c7 45 a0 00 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+424], 0
  0045f	8b 95 f4 fd ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00465	81 c2 a4 02 00
	00		 add	 edx, 676		; 000002a4H
  0046b	89 55 a4	 mov	 DWORD PTR _LocalOtherSettings$[ebp+428], edx

; 1566 :             5, 0, 10, 1, 1,

  0046e	c7 45 a8 05 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+432], 5
  00475	c7 45 ac 00 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+436], 0
  0047c	c7 45 b0 0a 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+440], 10 ; 0000000aH
  00483	c7 45 b4 01 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+444], 1
  0048a	c7 45 b8 01 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+448], 1

; 1567 :             NULL,

  00491	c7 45 bc 00 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+452], 0

; 1568 :             "Overlay", "OverlaySharpness", Overlay_Sharpness_OnChange,

  00498	c7 45 c0 00 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+456], OFFSET ??_C@_07PIOLBDJD@Overlay?$AA@
  0049f	c7 45 c4 00 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+460], OFFSET ??_C@_0BB@FIBJGBJK@OverlaySharpness?$AA@
  004a6	c7 45 c8 00 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+464], OFFSET ?Overlay_Sharpness_OnChange@COverlayOutput@@CAHJ@Z ; COverlayOutput::Overlay_Sharpness_OnChange

; 1569 :         },
; 1570 :         {
; 1571 :             "Allow Bob Mode", ONOFF, 0, (LONG_PTR*)&bAllowBobMode,

  004ad	c7 45 cc 00 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+468], OFFSET ??_C@_0P@NNJHNACK@Allow?5Bob?5Mode?$AA@
  004b4	c7 45 d0 01 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+472], 1
  004bb	c7 45 d4 00 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+476], 0
  004c2	8b 85 f4 fd ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  004c8	05 4c 02 00 00	 add	 eax, 588		; 0000024cH
  004cd	89 45 d8	 mov	 DWORD PTR _LocalOtherSettings$[ebp+480], eax

; 1572 :             FALSE, 0, 1, 1, 1,

  004d0	c7 45 dc 00 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+484], 0
  004d7	c7 45 e0 00 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+488], 0
  004de	c7 45 e4 01 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+492], 1
  004e5	c7 45 e8 01 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+496], 1
  004ec	c7 45 ec 01 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+500], 1

; 1573 :             NULL,

  004f3	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+504], 0

; 1574 :             "Overlay", "AllowBobMode", Overlay_AllowBobMode_OnChange,

  004fa	c7 45 f4 00 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+508], OFFSET ??_C@_07PIOLBDJD@Overlay?$AA@
  00501	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+512], OFFSET ??_C@_0N@JECAPFLK@AllowBobMode?$AA@
  00508	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _LocalOtherSettings$[ebp+516], OFFSET ?Overlay_AllowBobMode_OnChange@COverlayOutput@@CAHJ@Z ; COverlayOutput::Overlay_AllowBobMode_OnChange

; 1575 :         },
; 1576 :     };
; 1577 :     memmove(OtherSettings, LocalOtherSettings, sizeof(OtherSettings));

  0050f	68 08 02 00 00	 push	 520			; 00000208H
  00514	8d 8d f8 fd ff
	ff		 lea	 ecx, DWORD PTR _LocalOtherSettings$[ebp]
  0051a	51		 push	 ecx
  0051b	8b 95 f4 fd ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  00521	83 c2 08	 add	 edx, 8
  00524	52		 push	 edx
  00525	e8 00 00 00 00	 call	 _memmove
  0052a	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1578 : }

  0052d	8b e5		 mov	 esp, ebp
  0052f	5d		 pop	 ebp
  00530	c3		 ret	 0
?InitOtherSettings@COverlayOutput@@UAEXXZ ENDP		; COverlayOutput::InitOtherSettings
; Function compile flags: /Odtp
;	COMDAT ??__EOverlayOutputInstance@@YAXXZ
text$yc	SEGMENT
??__EOverlayOutputInstance@@YAXXZ PROC			; `dynamic initializer for 'OverlayOutputInstance'', COMDAT

; 40   : COverlayOutput OverlayOutputInstance;

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlayOutputInstance@@3VCOverlayOutput@@A ; OverlayOutputInstance
  00008	e8 00 00 00 00	 call	 ??0COverlayOutput@@QAE@XZ ; COverlayOutput::COverlayOutput
  0000d	68 00 00 00 00	 push	 OFFSET ??__FOverlayOutputInstance@@YAXXZ ; `dynamic atexit destructor for 'OverlayOutputInstance''
  00012	e8 00 00 00 00	 call	 _atexit
  00017	83 c4 04	 add	 esp, 4
  0001a	5d		 pop	 ebp
  0001b	c3		 ret	 0
??__EOverlayOutputInstance@@YAXXZ ENDP			; `dynamic initializer for 'OverlayOutputInstance''
; Function compile flags: /Odtp
text$yc	ENDS
;	COMDAT ??__EOverlaySettingsHolder@@YAXXZ
text$yc	SEGMENT
??__EOverlaySettingsHolder@@YAXXZ PROC			; `dynamic initializer for 'OverlaySettingsHolder'', COMDAT

; 1633 : CSettingsHolder OverlaySettingsHolder;

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a 00		 push	 0
  00005	6a 00		 push	 0
  00007	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlaySettingsHolder@@3VCSettingsHolder@@A ; OverlaySettingsHolder
  0000c	e8 00 00 00 00	 call	 ??0CSettingsHolder@@QAE@JI@Z ; CSettingsHolder::CSettingsHolder
  00011	68 00 00 00 00	 push	 OFFSET ??__FOverlaySettingsHolder@@YAXXZ ; `dynamic atexit destructor for 'OverlaySettingsHolder''
  00016	e8 00 00 00 00	 call	 _atexit
  0001b	83 c4 04	 add	 esp, 4
  0001e	5d		 pop	 ebp
  0001f	c3		 ret	 0
??__EOverlaySettingsHolder@@YAXXZ ENDP			; `dynamic initializer for 'OverlaySettingsHolder''
; Function compile flags: /Odtp
;	COMDAT ??__FOverlayOutputInstance@@YAXXZ
text$yd	SEGMENT
??__FOverlayOutputInstance@@YAXXZ PROC			; `dynamic atexit destructor for 'OverlayOutputInstance'', COMDAT
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlayOutputInstance@@3VCOverlayOutput@@A ; OverlayOutputInstance
  00008	e8 00 00 00 00	 call	 ??1COverlayOutput@@UAE@XZ ; COverlayOutput::~COverlayOutput
  0000d	5d		 pop	 ebp
  0000e	c3		 ret	 0
??__FOverlayOutputInstance@@YAXXZ ENDP			; `dynamic atexit destructor for 'OverlayOutputInstance''
; Function compile flags: /Odtp
;	COMDAT ??__FOverlaySettingsHolder@@YAXXZ
text$yd	SEGMENT
??__FOverlaySettingsHolder@@YAXXZ PROC			; `dynamic atexit destructor for 'OverlaySettingsHolder'', COMDAT
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET ?OverlaySettingsHolder@@3VCSettingsHolder@@A ; OverlaySettingsHolder
  00008	e8 00 00 00 00	 call	 ??1CSettingsHolder@@UAE@XZ ; CSettingsHolder::~CSettingsHolder
  0000d	5d		 pop	 ebp
  0000e	c3		 ret	 0
??__FOverlaySettingsHolder@@YAXXZ ENDP			; `dynamic atexit destructor for 'OverlaySettingsHolder''
PUBLIC	?OverlaySettingsHolder@@3VCSettingsHolder@@A	; OverlaySettingsHolder
PUBLIC	?OverlayOutputInstance@@3VCOverlayOutput@@A	; OverlayOutputInstance
?OverlaySettingsHolder@@3VCSettingsHolder@@A DB 040H DUP (?) ; OverlaySettingsHolder
?OverlayOutputInstance@@3VCOverlayOutput@@A DB 02c0H DUP (?) ; OverlayOutputInstance
_OverlayOutputInstance$initializer$ DD FLAT:??__EOverlayOutputInstance@@YAXXZ
_OverlaySettingsHolder$initializer$ DD FLAT:??__EOverlaySettingsHolder@@YAXXZ
END
