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

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

INCLUDELIB OLDNAMES

PUBLIC	??_C@_0BK@NGCFOEHA@DoJudderTerminatorOnVideo?$AA@ ; `string'
PUBLIC	??_C@_0CD@GCBJLGNI@Do?5JudderTerminator?5On?5Video?5Mod@ ; `string'
PUBLIC	??_C@_0BA@EKGGIDNL@bAutoDetectMode?$AA@		; `string'
PUBLIC	??_C@_0BE@LDBPDOAP@Autodetect?5Pulldown?$AA@	; `string'
PUBLIC	??_C@_0BA@JLLFNNEM@DoAccurateFlips?$AA@		; `string'
PUBLIC	??_C@_0BB@CCJECKJM@JudderTerminator?$AA@	; `string'
PUBLIC	??_C@_0BN@MENNIMNE@TunerSwitchScreenUpdateDelay?$AA@ ; `string'
PUBLIC	??_C@_0BK@GKNNGMMF@Tuner?5Switch?5Update?5Delay?$AA@ ; `string'
PUBLIC	??_C@_0P@MALJJAGB@DoVerticalFlip?$AA@		; `string'
PUBLIC	??_C@_0BA@JPDBFAEK@Vertical?5Mirror?$AA@	; `string'
PUBLIC	??_C@_0M@MHLCEJCP@WaitForFlip?$AA@		; `string'
PUBLIC	??_C@_0O@BNNIPACD@Wait?5For?5Flip?$AA@		; `string'
PUBLIC	??_C@_0P@NIGKJEKI@bHurryWhenLate?$AA@		; `string'
PUBLIC	??_C@_0BA@DIJCGLDB@Hurry?5When?5Late?$AA@	; `string'
PUBLIC	??_GCMultiFrames@@QAEPAXI@Z			; CMultiFrames::`scalar deleting destructor'
PUBLIC	?g_hOutThread@@3PAXA				; g_hOutThread
PUBLIC	?bStopThread@@3HA				; bStopThread
PUBLIC	?bIsPaused@@3HA					; bIsPaused
PUBLIC	?RequestToggleFlip@@3HA				; RequestToggleFlip
PUBLIC	?bCheckSignalPresent@@3HA			; bCheckSignalPresent
PUBLIC	?bCheckSignalMissing@@3HA			; bCheckSignalMissing
PUBLIC	?bDoVerticalFlipSetting@@3HA			; bDoVerticalFlipSetting
PUBLIC	?OutThreadID@@3KA				; OutThreadID
PUBLIC	?Request@@3UTGUIRequest@@A			; Request
PUBLIC	?g_nCaptureStatus@@3JA				; g_nCaptureStatus
PUBLIC	?bAutoDetectMode@@3HA				; bAutoDetectMode
PUBLIC	?WaitForFlip@@3HA				; WaitForFlip
PUBLIC	?DoAccurateFlips@@3HA				; DoAccurateFlips
PUBLIC	?bHurryWhenLate@@3HA				; bHurryWhenLate
PUBLIC	?bIsOddField@@3HA				; bIsOddField
PUBLIC	?bReversePolarity@@3HA				; bReversePolarity
PUBLIC	?bJudderTerminatorOnVideo@@3HA			; bJudderTerminatorOnVideo
PUBLIC	?bNoScreenUpdateDuringTuning@@3HA		; bNoScreenUpdateDuringTuning
PUBLIC	??_C@_1JO@DJFKJDJC@?$AAT?$AAi?$AAm?$AAe?$AAo?$AAu?$AAt?$AA?5?$AAw?$AAa?$AAi?$AAt?$AAi?$AAn?$AAg?$AA?5?$AAf?$AAo?$AAr?$AA?5?$AAY?$AAU?$AAV?$AAO?$AAu?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd@ ; `string'
PUBLIC	??_C@_1BG@FIECEKJE@?$AAs?$AAn?$AA?$CF?$AA0?$AA6?$AAd?$AA?4?$AAd?$AAt?$AAv?$AA?$AA@ ; `string'
PUBLIC	??_C@_1IG@JMMPFHFM@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAa?$AA?5?$AAf?$AAi?$AAl?$AAe?$AA?4?$AA?5?$AA?5?$AAY?$AAo?$AAu?$AA?5?$AAm?$AAa@ ; `string'
PUBLIC	??_C@_1CC@MBPACLGO@?$AA?4?$AA?2?$AAO?$AAu?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AAs?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@ ; `string'
PUBLIC	??_C@_1FE@FAJOIGGG@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAo?$AAp?$AAe?$AAn?$AA?5?$AAf?$AAi?$AAl?$AAe?$AA?5?$AAi?$AAn?$AA?5?$AAS?$AAa?$AAv?$AAe?$AAS?$AAt?$AAr?$AAe?$AAa@ ; `string'
PUBLIC	??_C@_0BF@LKJOELJN@Before?5Overlay?5Clean?$AA@	; `string'
PUBLIC	??_C@_0BE@DOJBHKNN@Before?5Aspect?5Ratio?$AA@	; `string'
PUBLIC	??_C@_0BM@DLAOONJD@Before?5Current?5Source?5Start?$AA@ ; `string'
PUBLIC	??_C@_0BE@MHCBNFMJ@Before?5Start_Thread?$AA@	; `string'
PUBLIC	??_C@_0O@LBBAJACB@Before?5Unmute?$AA@		; `string'
PUBLIC	??_C@_0BE@JJOCEAFG@End?5of?5Start?5Thread?$AA@	; `string'
PUBLIC	??_C@_1BO@GHMDOHFD@?$AAY?$AAU?$AAV?$AA?5?$AAO?$AAu?$AAt?$AA?5?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AA?$AA@ ; `string'
PUBLIC	??_C@_05OEHCLJIP@?$CFdx?$CFd?$AA@		; `string'
PUBLIC	??_C@_1GA@LBMEHPBJ@?$AA?5?$AA?5?$AA?5?$AA?5?$AAI?$AAn?$AAf?$AAo?$AA?4?$AAb?$AAM?$AAi?$AAs?$AAs?$AAe?$AAd?$AAF?$AAr?$AAa?$AAm?$AAe?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?9?$AA?5?$AAI?$AAn?$AAf?$AAo?$AA?4@ ; `string'
PUBLIC	??_C@_1BM@GGIKAGIN@?$AAM?$AAe?$AAm?$AAU?$AAs?$AAe?$AAd?$AA?5?$AA?$CF?$AAd?$AA?5?$AAM?$AAo?$AA?$AA@ ; `string'
PUBLIC	??_C@_1JM@GPLLGOKD@?$AAM?$AAa?$AAx?$AA?5?$AAm?$AAe?$AAm?$AAo?$AAr?$AAy?$AA?5?$AA?$CI?$AA?$CF?$AAd?$AA?5?$AAM?$AAo?$AA?$CJ?$AA?5?$AAr?$AAe?$AAa?$AAc?$AAh?$AAe?$AAd?$AA?6?$AAC?$AAh?$AAa?$AAn?$AAg@ ; `string'
PUBLIC	??_C@_1FO@EDKJFPJC@?$AAA?$AAl?$AAl?$AAo?$AAc?$AA?5?$AAf?$AAo?$AAr?$AA?5?$AAs?$AAt?$AAi?$AAl?$AAl?$AA?5?$AA?9?$AA?5?$AAs?$AAt?$AAa?$AAr?$AAt?$AA?5?$AAb?$AAu?$AAf?$AA?5?$AA?$CF?$AAd?$AA?0?$AA?5@ ; `string'
PUBLIC	??_C@_1FG@FAJFKDCF@?$AAF?$AAa?$AAl?$AAl?$AAi?$AAn?$AAg?$AA?5?$AAo?$AAu?$AAt?$AA?5?$AAa?$AAf?$AAt?$AAe?$AAr?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA_?$AAL?$AAo?$AAc?$AAk?$AA_?$AAB@ ; `string'
PUBLIC	??_C@_1FK@MPHEIDIK@?$AAF?$AAa?$AAl?$AAl?$AAi?$AAn?$AAg?$AA?5?$AAo?$AAu?$AAt?$AA?5?$AAa?$AAf?$AAt?$AAe?$AAr?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA_?$AAU?$AAn?$AAl?$AAo?$AAc?$AAk@ ; `string'
PUBLIC	??_C@_1DO@NBELHMEC@?$AAF?$AAa?$AAl?$AAl?$AAi?$AAn?$AAg?$AA?5?$AAo?$AAu?$AAt?$AA?5?$AAa?$AAf?$AAt?$AAe?$AAr?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA_?$AAF?$AAl?$AAi?$AAp?$AA?$AA@ ; `string'
PUBLIC	??_C@_1EO@GJJJMFOA@?$AAC?$AAr?$AAa?$AAs?$AAh?$AA?5?$AAi?$AAn?$AA?5?$AAo?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?5?$AAc?$AAo?$AAd?$AAe?$AA?4?$AA?5?$AAR?$AAe?$AAs?$AAt?$AAa?$AAr?$AAt?$AA?5?$AAD?$AAS@ ; `string'
PUBLIC	??_C@_1CG@PJDCMLMO@?$AAS?$AAt?$AAi?$AAl?$AAl?$AA?$CI?$AAs?$AA?$CJ?$AA?5?$AAi?$AAn?$AA?5?$AAm?$AAe?$AAm?$AAo?$AAr?$AAy?$AA?$AA@ ; `string'
PUBLIC	??_C@_1GA@DLHPANFK@?$AAC?$AAr?$AAa?$AAs?$AAh?$AA?5?$AAi?$AAn?$AA?5?$AAO?$AAu?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AAs?$AA?5?$AAm?$AAa?$AAi?$AAn?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?4?$AA?5?$AAR@ ; `string'
PUBLIC	??_C@_1JM@BAPGJOIF@?$AAC?$AAr?$AAa?$AAs?$AAh?$AA?5?$AAi?$AAn?$AA?5?$AAi?$AAn?$AA?5?$AAO?$AAu?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AAs?$AA?5?$AAP?$AAr?$AAo?$AAv?$AAi?$AAd?$AAe?$AAr?$AAs@ ; `string'
PUBLIC	?OutThreadsSettings@@3PAUSETTING@@A		; OutThreadsSettings
EXTRN	__imp__keybd_event@16:PROC
EXTRN	_sprintf:PROC
EXTRN	_memcpyMMX:PROC
EXTRN	_memcpySSE:PROC
?g_hOutThread@@3PAXA DD 01H DUP (?)			; g_hOutThread
?bStopThread@@3HA DD 01H DUP (?)			; bStopThread
?bIsPaused@@3HA DD 01H DUP (?)				; bIsPaused
?RequestToggleFlip@@3HA DD 01H DUP (?)			; RequestToggleFlip
?bCheckSignalPresent@@3HA DD 01H DUP (?)		; bCheckSignalPresent
?bCheckSignalMissing@@3HA DD 01H DUP (?)		; bCheckSignalMissing
?bDoVerticalFlipSetting@@3HA DD 01H DUP (?)		; bDoVerticalFlipSetting
?OutThreadID@@3KA DD 01H DUP (?)			; OutThreadID
?Request@@3UTGUIRequest@@A DB 0cH DUP (?)		; Request
?g_nCaptureStatus@@3JA DD 01H DUP (?)			; g_nCaptureStatus
?bHurryWhenLate@@3HA DD 01H DUP (?)			; bHurryWhenLate
?bIsOddField@@3HA DD 01H DUP (?)			; bIsOddField
?bReversePolarity@@3HA DD 01H DUP (?)			; bReversePolarity
?bNoScreenUpdateDuringTuning@@3HA DD 01H DUP (?)	; bNoScreenUpdateDuringTuning
;	COMDAT ??_C@_0BK@NGCFOEHA@DoJudderTerminatorOnVideo?$AA@
CONST	SEGMENT
??_C@_0BK@NGCFOEHA@DoJudderTerminatorOnVideo?$AA@ DB 'DoJudderTerminatorO'
	DB	'nVideo', 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_0CD@GCBJLGNI@Do?5JudderTerminator?5On?5Video?5Mod@
CONST	SEGMENT
??_C@_0CD@GCBJLGNI@Do?5JudderTerminator?5On?5Video?5Mod@ DB 'Do JudderTer'
	DB	'minator On Video Modes', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0BA@EKGGIDNL@bAutoDetectMode?$AA@
CONST	SEGMENT
??_C@_0BA@EKGGIDNL@bAutoDetectMode?$AA@ DB 'bAutoDetectMode', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BE@LDBPDOAP@Autodetect?5Pulldown?$AA@
CONST	SEGMENT
??_C@_0BE@LDBPDOAP@Autodetect?5Pulldown?$AA@ DB 'Autodetect Pulldown', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BA@JLLFNNEM@DoAccurateFlips?$AA@
CONST	SEGMENT
??_C@_0BA@JLLFNNEM@DoAccurateFlips?$AA@ DB 'DoAccurateFlips', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BB@CCJECKJM@JudderTerminator?$AA@
CONST	SEGMENT
??_C@_0BB@CCJECKJM@JudderTerminator?$AA@ DB 'JudderTerminator', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BN@MENNIMNE@TunerSwitchScreenUpdateDelay?$AA@
CONST	SEGMENT
??_C@_0BN@MENNIMNE@TunerSwitchScreenUpdateDelay?$AA@ DB 'TunerSwitchScree'
	DB	'nUpdateDelay', 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_0BK@GKNNGMMF@Tuner?5Switch?5Update?5Delay?$AA@
CONST	SEGMENT
??_C@_0BK@GKNNGMMF@Tuner?5Switch?5Update?5Delay?$AA@ DB 'Tuner Switch Upd'
	DB	'ate Delay', 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_0P@MALJJAGB@DoVerticalFlip?$AA@
CONST	SEGMENT
??_C@_0P@MALJJAGB@DoVerticalFlip?$AA@ DB 'DoVerticalFlip', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BA@JPDBFAEK@Vertical?5Mirror?$AA@
CONST	SEGMENT
??_C@_0BA@JPDBFAEK@Vertical?5Mirror?$AA@ DB 'Vertical Mirror', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0M@MHLCEJCP@WaitForFlip?$AA@
CONST	SEGMENT
??_C@_0M@MHLCEJCP@WaitForFlip?$AA@ DB 'WaitForFlip', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@BNNIPACD@Wait?5For?5Flip?$AA@
CONST	SEGMENT
??_C@_0O@BNNIPACD@Wait?5For?5Flip?$AA@ DB 'Wait For Flip', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0P@NIGKJEKI@bHurryWhenLate?$AA@
CONST	SEGMENT
??_C@_0P@NIGKJEKI@bHurryWhenLate?$AA@ DB 'bHurryWhenLate', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BA@DIJCGLDB@Hurry?5When?5Late?$AA@
CONST	SEGMENT
??_C@_0BA@DIJCGLDB@Hurry?5When?5Late?$AA@ DB 'Hurry When Late', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1JM@BAPGJOIF@?$AAC?$AAr?$AAa?$AAs?$AAh?$AA?5?$AAi?$AAn?$AA?5?$AAi?$AAn?$AA?5?$AAO?$AAu?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AAs?$AA?5?$AAP?$AAr?$AAo?$AAv?$AAi?$AAd?$AAe?$AAr?$AAs@
CONST	SEGMENT
??_C@_1JM@BAPGJOIF@?$AAC?$AAr?$AAa?$AAs?$AAh?$AA?5?$AAi?$AAn?$AA?5?$AAi?$AAn?$AA?5?$AAO?$AAu?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AAs?$AA?5?$AAP?$AAr?$AAo?$AAv?$AAi?$AAd?$AAe?$AAr?$AAs@ DB 'C'
	DB	00H, 'r', 00H, 'a', 00H, 's', 00H, 'h', 00H, ' ', 00H, 'i', 00H
	DB	'n', 00H, ' ', 00H, 'i', 00H, 'n', 00H, ' ', 00H, 'O', 00H, 'u'
	DB	00H, 't', 00H, 'T', 00H, 'h', 00H, 'r', 00H, 'e', 00H, 'a', 00H
	DB	'd', 00H, 's', 00H, ' ', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'v'
	DB	00H, 'i', 00H, 'd', 00H, 'e', 00H, 'r', 00H, 's', 00H, '_', 00H
	DB	'G', 00H, 'e', 00H, 't', 00H, 'C', 00H, 'u', 00H, 'r', 00H, 'r'
	DB	00H, 'e', 00H, 'n', 00H, 't', 00H, 'S', 00H, 'o', 00H, 'u', 00H
	DB	'r', 00H, 'c', 00H, 'e', 00H, '(', 00H, ')', 00H, '-', 00H, '>'
	DB	00H, 'S', 00H, 't', 00H, 'o', 00H, 'p', 00H, '(', 00H, ')', 00H
	DB	'.', 00H, ' ', 00H, 'R', 00H, 'e', 00H, 's', 00H, 't', 00H, 'a'
	DB	00H, 'r', 00H, 't', 00H, ' ', 00H, 'D', 00H, 'S', 00H, 'c', 00H
	DB	'a', 00H, 'l', 00H, 'e', 00H, 'r', 00H, '.', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1GA@DLHPANFK@?$AAC?$AAr?$AAa?$AAs?$AAh?$AA?5?$AAi?$AAn?$AA?5?$AAO?$AAu?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AAs?$AA?5?$AAm?$AAa?$AAi?$AAn?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?4?$AA?5?$AAR@
CONST	SEGMENT
??_C@_1GA@DLHPANFK@?$AAC?$AAr?$AAa?$AAs?$AAh?$AA?5?$AAi?$AAn?$AA?5?$AAO?$AAu?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AAs?$AA?5?$AAm?$AAa?$AAi?$AAn?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?4?$AA?5?$AAR@ DB 'C'
	DB	00H, 'r', 00H, 'a', 00H, 's', 00H, 'h', 00H, ' ', 00H, 'i', 00H
	DB	'n', 00H, ' ', 00H, 'O', 00H, 'u', 00H, 't', 00H, 'T', 00H, 'h'
	DB	00H, 'r', 00H, 'e', 00H, 'a', 00H, 'd', 00H, 's', 00H, ' ', 00H
	DB	'm', 00H, 'a', 00H, 'i', 00H, 'n', 00H, ' ', 00H, 'l', 00H, 'o'
	DB	00H, 'o', 00H, 'p', 00H, '.', 00H, ' ', 00H, 'R', 00H, 'e', 00H
	DB	's', 00H, 't', 00H, 'a', 00H, 'r', 00H, 't', 00H, ' ', 00H, 'D'
	DB	00H, 'S', 00H, 'c', 00H, 'a', 00H, 'l', 00H, 'e', 00H, 'r', 00H
	DB	'.', 00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1CG@PJDCMLMO@?$AAS?$AAt?$AAi?$AAl?$AAl?$AA?$CI?$AAs?$AA?$CJ?$AA?5?$AAi?$AAn?$AA?5?$AAm?$AAe?$AAm?$AAo?$AAr?$AAy?$AA?$AA@
CONST	SEGMENT
??_C@_1CG@PJDCMLMO@?$AAS?$AAt?$AAi?$AAl?$AAl?$AA?$CI?$AAs?$AA?$CJ?$AA?5?$AAi?$AAn?$AA?5?$AAm?$AAe?$AAm?$AAo?$AAr?$AAy?$AA?$AA@ DB 'S'
	DB	00H, 't', 00H, 'i', 00H, 'l', 00H, 'l', 00H, '(', 00H, 's', 00H
	DB	')', 00H, ' ', 00H, 'i', 00H, 'n', 00H, ' ', 00H, 'm', 00H, 'e'
	DB	00H, 'm', 00H, 'o', 00H, 'r', 00H, 'y', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1EO@GJJJMFOA@?$AAC?$AAr?$AAa?$AAs?$AAh?$AA?5?$AAi?$AAn?$AA?5?$AAo?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?5?$AAc?$AAo?$AAd?$AAe?$AA?4?$AA?5?$AAR?$AAe?$AAs?$AAt?$AAa?$AAr?$AAt?$AA?5?$AAD?$AAS@
CONST	SEGMENT
??_C@_1EO@GJJJMFOA@?$AAC?$AAr?$AAa?$AAs?$AAh?$AA?5?$AAi?$AAn?$AA?5?$AAo?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?5?$AAc?$AAo?$AAd?$AAe?$AA?4?$AA?5?$AAR?$AAe?$AAs?$AAt?$AAa?$AAr?$AAt?$AA?5?$AAD?$AAS@ DB 'C'
	DB	00H, 'r', 00H, 'a', 00H, 's', 00H, 'h', 00H, ' ', 00H, 'i', 00H
	DB	'n', 00H, ' ', 00H, 'o', 00H, 'u', 00H, 't', 00H, 'p', 00H, 'u'
	DB	00H, 't', 00H, ' ', 00H, 'c', 00H, 'o', 00H, 'd', 00H, 'e', 00H
	DB	'.', 00H, ' ', 00H, 'R', 00H, 'e', 00H, 's', 00H, 't', 00H, 'a'
	DB	00H, 'r', 00H, 't', 00H, ' ', 00H, 'D', 00H, 'S', 00H, 'c', 00H
	DB	'a', 00H, 'l', 00H, 'e', 00H, 'r', 00H, '.', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1DO@NBELHMEC@?$AAF?$AAa?$AAl?$AAl?$AAi?$AAn?$AAg?$AA?5?$AAo?$AAu?$AAt?$AA?5?$AAa?$AAf?$AAt?$AAe?$AAr?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA_?$AAF?$AAl?$AAi?$AAp?$AA?$AA@
CONST	SEGMENT
??_C@_1DO@NBELHMEC@?$AAF?$AAa?$AAl?$AAl?$AAi?$AAn?$AAg?$AA?5?$AAo?$AAu?$AAt?$AA?5?$AAa?$AAf?$AAt?$AAe?$AAr?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA_?$AAF?$AAl?$AAi?$AAp?$AA?$AA@ DB 'F'
	DB	00H, 'a', 00H, 'l', 00H, 'l', 00H, 'i', 00H, 'n', 00H, 'g', 00H
	DB	' ', 00H, 'o', 00H, 'u', 00H, 't', 00H, ' ', 00H, 'a', 00H, 'f'
	DB	00H, 't', 00H, 'e', 00H, 'r', 00H, ' ', 00H, 'O', 00H, 'v', 00H
	DB	'e', 00H, 'r', 00H, 'l', 00H, 'a', 00H, 'y', 00H, '_', 00H, 'F'
	DB	00H, 'l', 00H, 'i', 00H, 'p', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1FK@MPHEIDIK@?$AAF?$AAa?$AAl?$AAl?$AAi?$AAn?$AAg?$AA?5?$AAo?$AAu?$AAt?$AA?5?$AAa?$AAf?$AAt?$AAe?$AAr?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA_?$AAU?$AAn?$AAl?$AAo?$AAc?$AAk@
CONST	SEGMENT
??_C@_1FK@MPHEIDIK@?$AAF?$AAa?$AAl?$AAl?$AAi?$AAn?$AAg?$AA?5?$AAo?$AAu?$AAt?$AA?5?$AAa?$AAf?$AAt?$AAe?$AAr?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA_?$AAU?$AAn?$AAl?$AAo?$AAc?$AAk@ DB 'F'
	DB	00H, 'a', 00H, 'l', 00H, 'l', 00H, 'i', 00H, 'n', 00H, 'g', 00H
	DB	' ', 00H, 'o', 00H, 'u', 00H, 't', 00H, ' ', 00H, 'a', 00H, 'f'
	DB	00H, 't', 00H, 'e', 00H, 'r', 00H, ' ', 00H, 'O', 00H, 'v', 00H
	DB	'e', 00H, 'r', 00H, 'l', 00H, 'a', 00H, 'y', 00H, '_', 00H, 'U'
	DB	00H, 'n', 00H, 'l', 00H, 'o', 00H, 'c', 00H, 'k', 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, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1FG@FAJFKDCF@?$AAF?$AAa?$AAl?$AAl?$AAi?$AAn?$AAg?$AA?5?$AAo?$AAu?$AAt?$AA?5?$AAa?$AAf?$AAt?$AAe?$AAr?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA_?$AAL?$AAo?$AAc?$AAk?$AA_?$AAB@
CONST	SEGMENT
??_C@_1FG@FAJFKDCF@?$AAF?$AAa?$AAl?$AAl?$AAi?$AAn?$AAg?$AA?5?$AAo?$AAu?$AAt?$AA?5?$AAa?$AAf?$AAt?$AAe?$AAr?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA_?$AAL?$AAo?$AAc?$AAk?$AA_?$AAB@ DB 'F'
	DB	00H, 'a', 00H, 'l', 00H, 'l', 00H, 'i', 00H, 'n', 00H, 'g', 00H
	DB	' ', 00H, 'o', 00H, 'u', 00H, 't', 00H, ' ', 00H, 'a', 00H, 'f'
	DB	00H, 't', 00H, 'e', 00H, 'r', 00H, ' ', 00H, 'O', 00H, 'v', 00H
	DB	'e', 00H, 'r', 00H, 'l', 00H, 'a', 00H, 'y', 00H, '_', 00H, 'L'
	DB	00H, 'o', 00H, 'c', 00H, 'k', 00H, '_', 00H, 'B', 00H, 'a', 00H
	DB	'c', 00H, 'k', 00H, '_', 00H, 'B', 00H, 'u', 00H, 'f', 00H, 'f'
	DB	00H, 'e', 00H, 'r', 00H, 00H, 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_1FO@EDKJFPJC@?$AAA?$AAl?$AAl?$AAo?$AAc?$AA?5?$AAf?$AAo?$AAr?$AA?5?$AAs?$AAt?$AAi?$AAl?$AAl?$AA?5?$AA?9?$AA?5?$AAs?$AAt?$AAa?$AAr?$AAt?$AA?5?$AAb?$AAu?$AAf?$AA?5?$AA?$CF?$AAd?$AA?0?$AA?5@
CONST	SEGMENT
??_C@_1FO@EDKJFPJC@?$AAA?$AAl?$AAl?$AAo?$AAc?$AA?5?$AAf?$AAo?$AAr?$AA?5?$AAs?$AAt?$AAi?$AAl?$AAl?$AA?5?$AA?9?$AA?5?$AAs?$AAt?$AAa?$AAr?$AAt?$AA?5?$AAb?$AAu?$AAf?$AA?5?$AA?$CF?$AAd?$AA?0?$AA?5@ DB 'A'
	DB	00H, 'l', 00H, 'l', 00H, 'o', 00H, 'c', 00H, ' ', 00H, 'f', 00H
	DB	'o', 00H, 'r', 00H, ' ', 00H, 's', 00H, 't', 00H, 'i', 00H, 'l'
	DB	00H, 'l', 00H, ' ', 00H, '-', 00H, ' ', 00H, 's', 00H, 't', 00H
	DB	'a', 00H, 'r', 00H, 't', 00H, ' ', 00H, 'b', 00H, 'u', 00H, 'f'
	DB	00H, ' ', 00H, '%', 00H, 'd', 00H, ',', 00H, ' ', 00H, 's', 00H
	DB	't', 00H, 'a', 00H, 'r', 00H, 't', 00H, ' ', 00H, 'f', 00H, 'r'
	DB	00H, 'a', 00H, 'm', 00H, 'e', 00H, ' ', 00H, '%', 00H, 'd', 00H
	DB	00H, 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_1JM@GPLLGOKD@?$AAM?$AAa?$AAx?$AA?5?$AAm?$AAe?$AAm?$AAo?$AAr?$AAy?$AA?5?$AA?$CI?$AA?$CF?$AAd?$AA?5?$AAM?$AAo?$AA?$CJ?$AA?5?$AAr?$AAe?$AAa?$AAc?$AAh?$AAe?$AAd?$AA?6?$AAC?$AAh?$AAa?$AAn?$AAg@
CONST	SEGMENT
??_C@_1JM@GPLLGOKD@?$AAM?$AAa?$AAx?$AA?5?$AAm?$AAe?$AAm?$AAo?$AAr?$AAy?$AA?5?$AA?$CI?$AA?$CF?$AAd?$AA?5?$AAM?$AAo?$AA?$CJ?$AA?5?$AAr?$AAe?$AAa?$AAc?$AAh?$AAe?$AAd?$AA?6?$AAC?$AAh?$AAa?$AAn?$AAg@ DB 'M'
	DB	00H, 'a', 00H, 'x', 00H, ' ', 00H, 'm', 00H, 'e', 00H, 'm', 00H
	DB	'o', 00H, 'r', 00H, 'y', 00H, ' ', 00H, '(', 00H, '%', 00H, 'd'
	DB	00H, ' ', 00H, 'M', 00H, 'o', 00H, ')', 00H, ' ', 00H, 'r', 00H
	DB	'e', 00H, 'a', 00H, 'c', 00H, 'h', 00H, 'e', 00H, 'd', 00H, 0aH
	DB	00H, 'C', 00H, 'h', 00H, 'a', 00H, 'n', 00H, 'g', 00H, 'e', 00H
	DB	' ', 00H, 't', 00H, 'h', 00H, 'e', 00H, ' ', 00H, 'm', 00H, 'a'
	DB	00H, 'x', 00H, 'i', 00H, 'm', 00H, 'u', 00H, 'm', 00H, ' ', 00H
	DB	'v', 00H, 'a', 00H, 'l', 00H, 'u', 00H, 'e', 00H, ' ', 00H, 'o'
	DB	00H, 'r', 00H, 0aH, 00H, 'c', 00H, 'l', 00H, 'o', 00H, 's', 00H
	DB	'e', 00H, ' ', 00H, 's', 00H, 'o', 00H, 'm', 00H, 'e', 00H, ' '
	DB	00H, 'o', 00H, 'p', 00H, 'e', 00H, 'n', 00H, ' ', 00H, 's', 00H
	DB	't', 00H, 'i', 00H, 'l', 00H, 'l', 00H, 's', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1BM@GGIKAGIN@?$AAM?$AAe?$AAm?$AAU?$AAs?$AAe?$AAd?$AA?5?$AA?$CF?$AAd?$AA?5?$AAM?$AAo?$AA?$AA@
CONST	SEGMENT
??_C@_1BM@GGIKAGIN@?$AAM?$AAe?$AAm?$AAU?$AAs?$AAe?$AAd?$AA?5?$AA?$CF?$AAd?$AA?5?$AAM?$AAo?$AA?$AA@ DB 'M'
	DB	00H, 'e', 00H, 'm', 00H, 'U', 00H, 's', 00H, 'e', 00H, 'd', 00H
	DB	' ', 00H, '%', 00H, 'd', 00H, ' ', 00H, 'M', 00H, 'o', 00H, 00H
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_1GA@LBMEHPBJ@?$AA?5?$AA?5?$AA?5?$AA?5?$AAI?$AAn?$AAf?$AAo?$AA?4?$AAb?$AAM?$AAi?$AAs?$AAs?$AAe?$AAd?$AAF?$AAr?$AAa?$AAm?$AAe?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?9?$AA?5?$AAI?$AAn?$AAf?$AAo?$AA?4@
CONST	SEGMENT
??_C@_1GA@LBMEHPBJ@?$AA?5?$AA?5?$AA?5?$AA?5?$AAI?$AAn?$AAf?$AAo?$AA?4?$AAb?$AAM?$AAi?$AAs?$AAs?$AAe?$AAd?$AAF?$AAr?$AAa?$AAm?$AAe?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?9?$AA?5?$AAI?$AAn?$AAf?$AAo?$AA?4@ DB ' '
	DB	00H, ' ', 00H, ' ', 00H, ' ', 00H, 'I', 00H, 'n', 00H, 'f', 00H
	DB	'o', 00H, '.', 00H, 'b', 00H, 'M', 00H, 'i', 00H, 's', 00H, 's'
	DB	00H, 'e', 00H, 'd', 00H, 'F', 00H, 'r', 00H, 'a', 00H, 'm', 00H
	DB	'e', 00H, ' ', 00H, '%', 00H, 'd', 00H, ' ', 00H, '-', 00H, ' '
	DB	00H, 'I', 00H, 'n', 00H, 'f', 00H, 'o', 00H, '.', 00H, 'b', 00H
	DB	'R', 00H, 'u', 00H, 'n', 00H, 'n', 00H, 'i', 00H, 'n', 00H, 'g'
	DB	00H, 'L', 00H, 'a', 00H, 't', 00H, 'e', 00H, ' ', 00H, '%', 00H
	DB	'd', 00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_05OEHCLJIP@?$CFdx?$CFd?$AA@
CONST	SEGMENT
??_C@_05OEHCLJIP@?$CFdx?$CFd?$AA@ DB '%dx%d', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1BO@GHMDOHFD@?$AAY?$AAU?$AAV?$AA?5?$AAO?$AAu?$AAt?$AA?5?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_1BO@GHMDOHFD@?$AAY?$AAU?$AAV?$AA?5?$AAO?$AAu?$AAt?$AA?5?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AA?$AA@ DB 'Y'
	DB	00H, 'U', 00H, 'V', 00H, ' ', 00H, 'O', 00H, 'u', 00H, 't', 00H
	DB	' ', 00H, 'T', 00H, 'h', 00H, 'r', 00H, 'e', 00H, 'a', 00H, 'd'
	DB	00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_0BE@JJOCEAFG@End?5of?5Start?5Thread?$AA@
CONST	SEGMENT
??_C@_0BE@JJOCEAFG@End?5of?5Start?5Thread?$AA@ DB 'End of Start Thread', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@LBBAJACB@Before?5Unmute?$AA@
CONST	SEGMENT
??_C@_0O@LBBAJACB@Before?5Unmute?$AA@ DB 'Before Unmute', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BE@MHCBNFMJ@Before?5Start_Thread?$AA@
CONST	SEGMENT
??_C@_0BE@MHCBNFMJ@Before?5Start_Thread?$AA@ DB 'Before Start_Thread', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BM@DLAOONJD@Before?5Current?5Source?5Start?$AA@
CONST	SEGMENT
??_C@_0BM@DLAOONJD@Before?5Current?5Source?5Start?$AA@ DB 'Before Current'
	DB	' Source Start', 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_0BE@DOJBHKNN@Before?5Aspect?5Ratio?$AA@
CONST	SEGMENT
??_C@_0BE@DOJBHKNN@Before?5Aspect?5Ratio?$AA@ DB 'Before Aspect Ratio', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BF@LKJOELJN@Before?5Overlay?5Clean?$AA@
CONST	SEGMENT
??_C@_0BF@LKJOELJN@Before?5Overlay?5Clean?$AA@ DB 'Before Overlay Clean', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1FE@FAJOIGGG@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAo?$AAp?$AAe?$AAn?$AA?5?$AAf?$AAi?$AAl?$AAe?$AA?5?$AAi?$AAn?$AA?5?$AAS?$AAa?$AAv?$AAe?$AAS?$AAt?$AAr?$AAe?$AAa@
CONST	SEGMENT
??_C@_1FE@FAJOIGGG@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAo?$AAp?$AAe?$AAn?$AA?5?$AAf?$AAi?$AAl?$AAe?$AA?5?$AAi?$AAn?$AA?5?$AAS?$AAa?$AAv?$AAe?$AAS?$AAt?$AAr?$AAe?$AAa@ DB 'C'
	DB	00H, 'o', 00H, 'u', 00H, 'l', 00H, 'd', 00H, ' ', 00H, 'n', 00H
	DB	'o', 00H, 't', 00H, ' ', 00H, 'o', 00H, 'p', 00H, 'e', 00H, 'n'
	DB	00H, ' ', 00H, 'f', 00H, 'i', 00H, 'l', 00H, 'e', 00H, ' ', 00H
	DB	'i', 00H, 'n', 00H, ' ', 00H, 'S', 00H, 'a', 00H, 'v', 00H, 'e'
	DB	00H, 'S', 00H, 't', 00H, 'r', 00H, 'e', 00H, 'a', 00H, 'm', 00H
	DB	'S', 00H, 'n', 00H, 'a', 00H, 'p', 00H, 's', 00H, 'h', 00H, 'o'
	DB	00H, 't', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1CC@MBPACLGO@?$AA?4?$AA?2?$AAO?$AAu?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AAs?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
CONST	SEGMENT
??_C@_1CC@MBPACLGO@?$AA?4?$AA?2?$AAO?$AAu?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AAs?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@ DB '.'
	DB	00H, '\', 00H, 'O', 00H, 'u', 00H, 't', 00H, 'T', 00H, 'h', 00H
	DB	'r', 00H, 'e', 00H, 'a', 00H, 'd', 00H, 's', 00H, '.', 00H, 'c'
	DB	00H, 'p', 00H, 'p', 00H, 00H, 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_1IG@JMMPFHFM@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAa?$AA?5?$AAf?$AAi?$AAl?$AAe?$AA?4?$AA?5?$AA?5?$AAY?$AAo?$AAu?$AA?5?$AAm?$AAa@
CONST	SEGMENT
??_C@_1IG@JMMPFHFM@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAa?$AA?5?$AAf?$AAi?$AAl?$AAe?$AA?4?$AA?5?$AA?5?$AAY?$AAo?$AAu?$AA?5?$AAm?$AAa@ DB 'C'
	DB	00H, 'o', 00H, 'u', 00H, 'l', 00H, 'd', 00H, ' ', 00H, 'n', 00H
	DB	'o', 00H, 't', 00H, ' ', 00H, 'c', 00H, 'r', 00H, 'e', 00H, 'a'
	DB	00H, 't', 00H, 'e', 00H, ' ', 00H, 'a', 00H, ' ', 00H, 'f', 00H
	DB	'i', 00H, 'l', 00H, 'e', 00H, '.', 00H, ' ', 00H, ' ', 00H, 'Y'
	DB	00H, 'o', 00H, 'u', 00H, ' ', 00H, 'm', 00H, 'a', 00H, 'y', 00H
	DB	' ', 00H, 'h', 00H, 'a', 00H, 'v', 00H, 'e', 00H, ' ', 00H, 't'
	DB	00H, 'o', 00H, 'o', 00H, ' ', 00H, 'm', 00H, 'a', 00H, 'n', 00H
	DB	'y', 00H, ' ', 00H, 's', 00H, 'n', 00H, 'a', 00H, 'p', 00H, 's'
	DB	00H, 'h', 00H, 'o', 00H, 't', 00H, 's', 00H, ' ', 00H, 'a', 00H
	DB	'l', 00H, 'r', 00H, 'e', 00H, 'a', 00H, 'd', 00H, 'y', 00H, '.'
	DB	00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1BG@FIECEKJE@?$AAs?$AAn?$AA?$CF?$AA0?$AA6?$AAd?$AA?4?$AAd?$AAt?$AAv?$AA?$AA@
CONST	SEGMENT
??_C@_1BG@FIECEKJE@?$AAs?$AAn?$AA?$CF?$AA0?$AA6?$AAd?$AA?4?$AAd?$AAt?$AAv?$AA?$AA@ DB 's'
	DB	00H, 'n', 00H, '%', 00H, '0', 00H, '6', 00H, 'd', 00H, '.', 00H
	DB	'd', 00H, 't', 00H, 'v', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1JO@DJFKJDJC@?$AAT?$AAi?$AAm?$AAe?$AAo?$AAu?$AAt?$AA?5?$AAw?$AAa?$AAi?$AAt?$AAi?$AAn?$AAg?$AA?5?$AAf?$AAo?$AAr?$AA?5?$AAY?$AAU?$AAV?$AAO?$AAu?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd@
CONST	SEGMENT
??_C@_1JO@DJFKJDJC@?$AAT?$AAi?$AAm?$AAe?$AAo?$AAu?$AAt?$AA?5?$AAw?$AAa?$AAi?$AAt?$AAi?$AAn?$AAg?$AA?5?$AAf?$AAo?$AAr?$AA?5?$AAY?$AAU?$AAV?$AAO?$AAu?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd@ DB 'T'
	DB	00H, 'i', 00H, 'm', 00H, 'e', 00H, 'o', 00H, 'u', 00H, 't', 00H
	DB	' ', 00H, 'w', 00H, 'a', 00H, 'i', 00H, 't', 00H, 'i', 00H, 'n'
	DB	00H, 'g', 00H, ' ', 00H, 'f', 00H, 'o', 00H, 'r', 00H, ' ', 00H
	DB	'Y', 00H, 'U', 00H, 'V', 00H, 'O', 00H, 'u', 00H, 't', 00H, 'T'
	DB	00H, 'h', 00H, 'r', 00H, 'e', 00H, 'a', 00H, 'd', 00H, ' ', 00H
	DB	't', 00H, 'o', 00H, ' ', 00H, 'e', 00H, 'x', 00H, 'i', 00H, 't'
	DB	00H, ',', 00H, ' ', 00H, 't', 00H, 'e', 00H, 'r', 00H, 'm', 00H
	DB	'i', 00H, 'n', 00H, 'a', 00H, 't', 00H, 'i', 00H, 'n', 00H, 'g'
	DB	00H, ' ', 00H, 'i', 00H, 't', 00H, ' ', 00H, 'v', 00H, 'i', 00H
	DB	'a', 00H, ' ', 00H, 'T', 00H, 'e', 00H, 'r', 00H, 'm', 00H, 'i'
	DB	00H, 'n', 00H, 'a', 00H, 't', 00H, 'e', 00H, 'T', 00H, 'h', 00H
	DB	'r', 00H, 'e', 00H, 'a', 00H, 'd', 00H, '(', 00H, ')', 00H, 00H
	DB	00H						; `string'
?bAutoDetectMode@@3HA DD 01H				; bAutoDetectMode
?WaitForFlip@@3HA DD 01H				; WaitForFlip
?DoAccurateFlips@@3HA DD 01H				; DoAccurateFlips
?bJudderTerminatorOnVideo@@3HA DD 01H			; bJudderTerminatorOnVideo
?OutThreadsSettings@@3PAUSETTING@@A DD FLAT:??_C@_0BA@DIJCGLDB@Hurry?5When?5Late?$AA@ ; OutThreadsSettings
	DD	01H
	DD	00H
	DD	FLAT:?bHurryWhenLate@@3HA
	DD	00H
	DD	00H
	DD	01H
	DD	01H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_07CMIGFCHA@Threads?$AA@
	DD	FLAT:??_C@_0P@NIGKJEKI@bHurryWhenLate?$AA@
	DD	00H
	DD	FLAT:??_C@_0O@BNNIPACD@Wait?5For?5Flip?$AA@
	DD	01H
	DD	00H
	DD	FLAT:?WaitForFlip@@3HA
	DD	01H
	DD	00H
	DD	01H
	DD	01H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_07CMIGFCHA@Threads?$AA@
	DD	FLAT:??_C@_0M@MHLCEJCP@WaitForFlip?$AA@
	DD	00H
	DD	FLAT:??_C@_0BA@JPDBFAEK@Vertical?5Mirror?$AA@
	DD	01H
	DD	00H
	DD	FLAT:?bDoVerticalFlipSetting@@3HA
	DD	00H
	DD	00H
	DD	01H
	DD	01H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_07CMIGFCHA@Threads?$AA@
	DD	FLAT:??_C@_0P@MALJJAGB@DoVerticalFlip?$AA@
	DD	00H
	DD	FLAT:??_C@_0BK@GKNNGMMF@Tuner?5Switch?5Update?5Delay?$AA@
	DD	04H
	DD	00H
	DD	FLAT:?TunerSwitchScreenUpdateDelay@@3HA
	DD	078H
	DD	00H
	DD	03e8H
	DD	01H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_07CMIGFCHA@Threads?$AA@
	DD	FLAT:??_C@_0BN@MENNIMNE@TunerSwitchScreenUpdateDelay?$AA@
	DD	00H
	DD	FLAT:??_C@_0BB@CCJECKJM@JudderTerminator?$AA@
	DD	01H
	DD	00H
	DD	FLAT:?DoAccurateFlips@@3HA
	DD	00H
	DD	00H
	DD	01H
	DD	01H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_07CMIGFCHA@Threads?$AA@
	DD	FLAT:??_C@_0BA@JLLFNNEM@DoAccurateFlips?$AA@
	DD	00H
	DD	FLAT:??_C@_0BE@LDBPDOAP@Autodetect?5Pulldown?$AA@
	DD	01H
	DD	00H
	DD	FLAT:?bAutoDetectMode@@3HA
	DD	01H
	DD	00H
	DD	01H
	DD	01H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_08BJADNCEH@Pulldown?$AA@
	DD	FLAT:??_C@_0BA@EKGGIDNL@bAutoDetectMode?$AA@
	DD	00H
	DD	FLAT:??_C@_0CD@GCBJLGNI@Do?5JudderTerminator?5On?5Video?5Mod@
	DD	01H
	DD	00H
	DD	FLAT:?bJudderTerminatorOnVideo@@3HA
	DD	00H
	DD	00H
	DD	01H
	DD	01H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_06NFILKDII@Timing?$AA@
	DD	FLAT:??_C@_0BK@NGCFOEHA@DoJudderTerminatorOnVideo?$AA@
	DD	00H
PUBLIC	?OutThreads_SetMenu@@YAXPAUHMENU__@@@Z		; OutThreads_SetMenu
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\outthreads.cpp
;	COMDAT ?OutThreads_SetMenu@@YAXPAUHMENU__@@@Z
_TEXT	SEGMENT
_hMenu$ = 8						; size = 4
?OutThreads_SetMenu@@YAXPAUHMENU__@@@Z PROC		; OutThreads_SetMenu, COMDAT

; 1331 : {

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

; 1332 :     CheckMenuItemBool(hMenu, IDM_CAPTURE_PAUSE, bIsPaused);

  00003	a1 00 00 00 00	 mov	 eax, DWORD PTR ?bIsPaused@@3HA ; bIsPaused
  00008	f7 d8		 neg	 eax
  0000a	1b c0		 sbb	 eax, eax
  0000c	83 e0 08	 and	 eax, 8
  0000f	50		 push	 eax
  00010	68 e8 00 00 00	 push	 232			; 000000e8H
  00015	8b 4d 08	 mov	 ecx, DWORD PTR _hMenu$[ebp]
  00018	51		 push	 ecx
  00019	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__CheckMenuItem@12

; 1333 :     CheckMenuItemBool(hMenu, IDM_AUTODETECT, bAutoDetectMode);

  0001f	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?bAutoDetectMode@@3HA ; bAutoDetectMode
  00025	f7 da		 neg	 edx
  00027	1b d2		 sbb	 edx, edx
  00029	83 e2 08	 and	 edx, 8
  0002c	52		 push	 edx
  0002d	68 b2 02 00 00	 push	 690			; 000002b2H
  00032	8b 45 08	 mov	 eax, DWORD PTR _hMenu$[ebp]
  00035	50		 push	 eax
  00036	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__CheckMenuItem@12

; 1334 :     CheckMenuItemBool(hMenu, IDM_JUDDERTERMINATOR, DoAccurateFlips);

  0003c	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?DoAccurateFlips@@3HA ; DoAccurateFlips
  00042	f7 d9		 neg	 ecx
  00044	1b c9		 sbb	 ecx, ecx
  00046	83 e1 08	 and	 ecx, 8
  00049	51		 push	 ecx
  0004a	68 16 03 00 00	 push	 790			; 00000316H
  0004f	8b 55 08	 mov	 edx, DWORD PTR _hMenu$[ebp]
  00052	52		 push	 edx
  00053	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__CheckMenuItem@12

; 1335 : }

  00059	5d		 pop	 ebp
  0005a	c3		 ret	 0
?OutThreads_SetMenu@@YAXPAUHMENU__@@@Z ENDP		; OutThreads_SetMenu
_TEXT	ENDS
PUBLIC	?OutThreads_GetSetting@@YAPAUSETTING@@W4OUTTHREADS_SETTING@@@Z ; OutThreads_GetSetting
; Function compile flags: /Odtp
;	COMDAT ?OutThreads_GetSetting@@YAPAUSETTING@@W4OUTTHREADS_SETTING@@@Z
_TEXT	SEGMENT
_Setting$ = 8						; size = 4
?OutThreads_GetSetting@@YAPAUSETTING@@W4OUTTHREADS_SETTING@@@Z PROC ; OutThreads_GetSetting, COMDAT

; 1319 : {

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

; 1320 :     if(Setting > -1 && Setting < OUTTHREADS_SETTING_LASTONE)

  00003	83 7d 08 ff	 cmp	 DWORD PTR _Setting$[ebp], -1
  00007	7e 15		 jle	 SHORT $LN2@OutThreads
  00009	83 7d 08 07	 cmp	 DWORD PTR _Setting$[ebp], 7
  0000d	7d 0f		 jge	 SHORT $LN2@OutThreads

; 1321 :     {
; 1322 :         return &(OutThreadsSettings[Setting]);

  0000f	8b 45 08	 mov	 eax, DWORD PTR _Setting$[ebp]
  00012	6b c0 34	 imul	 eax, 52			; 00000034H
  00015	05 00 00 00 00	 add	 eax, OFFSET ?OutThreadsSettings@@3PAUSETTING@@A ; OutThreadsSettings
  0001a	eb 04		 jmp	 SHORT $LN3@OutThreads

; 1323 :     }
; 1324 :     else

  0001c	eb 02		 jmp	 SHORT $LN3@OutThreads
$LN2@OutThreads:

; 1325 :     {
; 1326 :         return NULL;

  0001e	33 c0		 xor	 eax, eax
$LN3@OutThreads:

; 1327 :     }
; 1328 : }

  00020	5d		 pop	 ebp
  00021	c3		 ret	 0
?OutThreads_GetSetting@@YAPAUSETTING@@W4OUTTHREADS_SETTING@@@Z ENDP ; OutThreads_GetSetting
_TEXT	ENDS
PUBLIC	?SetOutputThreadPriority@@YAXXZ			; SetOutputThreadPriority
; Function compile flags: /Odtp
;	COMDAT ?SetOutputThreadPriority@@YAXXZ
_TEXT	SEGMENT
?SetOutputThreadPriority@@YAXXZ PROC			; SetOutputThreadPriority, COMDAT

; 437  : {

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

; 438  :     if(!g_hOutThread)

  00003	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?g_hOutThread@@3PAXA, 0 ; g_hOutThread
  0000a	75 02		 jne	 SHORT $LN10@SetOutputT

; 439  :     {
; 440  :         return;

  0000c	eb 7e		 jmp	 SHORT $LN11@SetOutputT
$LN10@SetOutputT:

; 441  :     }
; 442  : 
; 443  :     if (ThreadClassId == 0)

  0000e	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?ThreadClassId@@3HA, 0 ; ThreadClassId
  00015	75 10		 jne	 SHORT $LN9@SetOutputT

; 444  :         SetThreadPriority(g_hOutThread, THREAD_PRIORITY_BELOW_NORMAL);

  00017	6a ff		 push	 -1
  00019	a1 00 00 00 00	 mov	 eax, DWORD PTR ?g_hOutThread@@3PAXA ; g_hOutThread
  0001e	50		 push	 eax
  0001f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SetThreadPriority@8
  00025	eb 65		 jmp	 SHORT $LN11@SetOutputT
$LN9@SetOutputT:

; 445  :     else if (ThreadClassId == 1)

  00027	83 3d 00 00 00
	00 01		 cmp	 DWORD PTR ?ThreadClassId@@3HA, 1 ; ThreadClassId
  0002e	75 11		 jne	 SHORT $LN7@SetOutputT

; 446  :         SetThreadPriority(g_hOutThread, THREAD_PRIORITY_NORMAL);

  00030	6a 00		 push	 0
  00032	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?g_hOutThread@@3PAXA ; g_hOutThread
  00038	51		 push	 ecx
  00039	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SetThreadPriority@8
  0003f	eb 4b		 jmp	 SHORT $LN11@SetOutputT
$LN7@SetOutputT:

; 447  :     else if (ThreadClassId == 2)

  00041	83 3d 00 00 00
	00 02		 cmp	 DWORD PTR ?ThreadClassId@@3HA, 2 ; ThreadClassId
  00048	75 11		 jne	 SHORT $LN5@SetOutputT

; 448  :         SetThreadPriority(g_hOutThread, THREAD_PRIORITY_ABOVE_NORMAL);

  0004a	6a 01		 push	 1
  0004c	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?g_hOutThread@@3PAXA ; g_hOutThread
  00052	52		 push	 edx
  00053	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SetThreadPriority@8
  00059	eb 31		 jmp	 SHORT $LN11@SetOutputT
$LN5@SetOutputT:

; 449  :     else if (ThreadClassId == 3)

  0005b	83 3d 00 00 00
	00 03		 cmp	 DWORD PTR ?ThreadClassId@@3HA, 3 ; ThreadClassId
  00062	75 10		 jne	 SHORT $LN3@SetOutputT

; 450  :         SetThreadPriority(g_hOutThread, THREAD_PRIORITY_HIGHEST);

  00064	6a 02		 push	 2
  00066	a1 00 00 00 00	 mov	 eax, DWORD PTR ?g_hOutThread@@3PAXA ; g_hOutThread
  0006b	50		 push	 eax
  0006c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SetThreadPriority@8
  00072	eb 18		 jmp	 SHORT $LN11@SetOutputT
$LN3@SetOutputT:

; 451  :     else if (ThreadClassId == 4)

  00074	83 3d 00 00 00
	00 04		 cmp	 DWORD PTR ?ThreadClassId@@3HA, 4 ; ThreadClassId
  0007b	75 0f		 jne	 SHORT $LN11@SetOutputT

; 452  :         SetThreadPriority(g_hOutThread, THREAD_PRIORITY_TIME_CRITICAL);

  0007d	6a 0f		 push	 15			; 0000000fH
  0007f	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?g_hOutThread@@3PAXA ; g_hOutThread
  00085	51		 push	 ecx
  00086	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SetThreadPriority@8
$LN11@SetOutputT:

; 453  : }

  0008c	5d		 pop	 ebp
  0008d	c3		 ret	 0
?SetOutputThreadPriority@@YAXXZ ENDP			; SetOutputThreadPriority
_TEXT	ENDS
PUBLIC	?SetOutputThreadProcessor@@YAXXZ		; SetOutputThreadProcessor
; Function compile flags: /Odtp
;	COMDAT ?SetOutputThreadProcessor@@YAXXZ
_TEXT	SEGMENT
_ProcessorMask$ = -8					; size = 4
_rc$ = -4						; size = 4
?SetOutputThreadProcessor@@YAXXZ PROC			; SetOutputThreadProcessor, COMDAT

; 424  : {

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

; 425  :     DWORD_PTR rc;
; 426  :     int ProcessorMask;
; 427  : 
; 428  :     if(!g_hOutThread)

  00006	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?g_hOutThread@@3PAXA, 0 ; g_hOutThread
  0000d	75 02		 jne	 SHORT $LN1@SetOutputT@2

; 429  :     {
; 430  :         return;

  0000f	eb 24		 jmp	 SHORT $LN2@SetOutputT@2
$LN1@SetOutputT@2:

; 431  :     }
; 432  :     ProcessorMask = 1 << (DecodeProcessor);

  00011	b8 01 00 00 00	 mov	 eax, 1
  00016	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?DecodeProcessor@@3HA ; DecodeProcessor
  0001c	d3 e0		 shl	 eax, cl
  0001e	89 45 f8	 mov	 DWORD PTR _ProcessorMask$[ebp], eax

; 433  :     rc = SetThreadAffinityMask(g_hOutThread, ProcessorMask);

  00021	8b 4d f8	 mov	 ecx, DWORD PTR _ProcessorMask$[ebp]
  00024	51		 push	 ecx
  00025	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?g_hOutThread@@3PAXA ; g_hOutThread
  0002b	52		 push	 edx
  0002c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SetThreadAffinityMask@8
  00032	89 45 fc	 mov	 DWORD PTR _rc$[ebp], eax
$LN2@SetOutputT@2:

; 434  : }

  00035	8b e5		 mov	 esp, ebp
  00037	5d		 pop	 ebp
  00038	c3		 ret	 0
?SetOutputThreadProcessor@@YAXXZ ENDP			; SetOutputThreadProcessor
_TEXT	ENDS
PUBLIC	?Toggle_Vertical_Flip@@YAXXZ			; Toggle_Vertical_Flip
; Function compile flags: /Odtp
;	COMDAT ?Toggle_Vertical_Flip@@YAXXZ
_TEXT	SEGMENT
?Toggle_Vertical_Flip@@YAXXZ PROC			; Toggle_Vertical_Flip, COMDAT

; 254  : {

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

; 255  :     RequestToggleFlip = TRUE;

  00003	c7 05 00 00 00
	00 01 00 00 00	 mov	 DWORD PTR ?RequestToggleFlip@@3HA, 1 ; RequestToggleFlip

; 256  : }

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

; 210  : {

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

; 211  :     bIsPaused = FALSE;

  00003	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?bIsPaused@@3HA, 0 ; bIsPaused

; 212  : }

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

; 205  : {

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

; 206  :     bIsPaused = TRUE;

  00003	c7 05 00 00 00
	00 01 00 00 00	 mov	 DWORD PTR ?bIsPaused@@3HA, 1 ; bIsPaused

; 207  : }

  0000d	5d		 pop	 ebp
  0000e	c3		 ret	 0
?Pause_Capture@@YAXXZ ENDP				; Pause_Capture
_TEXT	ENDS
PUBLIC	?ShiftPictureHistory@@YAXPAUTDeinterlaceInfo@@H@Z ; ShiftPictureHistory
; Function compile flags: /Odtp
;	COMDAT ?ShiftPictureHistory@@YAXPAUTDeinterlaceInfo@@H@Z
_TEXT	SEGMENT
_pInfo$ = 8						; size = 4
_NumFieldsValid$ = 12					; size = 4
?ShiftPictureHistory@@YAXPAUTDeinterlaceInfo@@H@Z PROC	; ShiftPictureHistory, COMDAT

; 114  : {

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

; 115  :     memmove(&pInfo->PictureHistory[1], &pInfo->PictureHistory[0], sizeof(pInfo->PictureHistory[0]) * (NumFieldsValid - 1));

  00003	8b 45 0c	 mov	 eax, DWORD PTR _NumFieldsValid$[ebp]
  00006	8d 0c 85 fc ff
	ff ff		 lea	 ecx, DWORD PTR [eax*4-4]
  0000d	51		 push	 ecx
  0000e	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  00011	83 c2 04	 add	 edx, 4
  00014	52		 push	 edx
  00015	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  00018	83 c0 08	 add	 eax, 8
  0001b	50		 push	 eax
  0001c	e8 00 00 00 00	 call	 _memmove
  00021	83 c4 0c	 add	 esp, 12			; 0000000cH

; 116  :     pInfo->PictureHistory[0] = NULL;

  00024	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  00027	c7 41 04 00 00
	00 00		 mov	 DWORD PTR [ecx+4], 0

; 117  : }

  0002e	5d		 pop	 ebp
  0002f	c3		 ret	 0
?ShiftPictureHistory@@YAXPAUTDeinterlaceInfo@@H@Z ENDP	; ShiftPictureHistory
_TEXT	ENDS
PUBLIC	?ClearPictureHistory@@YAXPAUTDeinterlaceInfo@@@Z ; ClearPictureHistory
; Function compile flags: /Odtp
;	COMDAT ?ClearPictureHistory@@YAXPAUTDeinterlaceInfo@@@Z
_TEXT	SEGMENT
_pInfo$ = 8						; size = 4
?ClearPictureHistory@@YAXPAUTDeinterlaceInfo@@@Z PROC	; ClearPictureHistory, COMDAT

; 105  : {

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

; 106  :     memset(pInfo->PictureHistory, 0, MAX_PICTURE_HISTORY * sizeof(TPicture*));

  00003	6a 28		 push	 40			; 00000028H
  00005	6a 00		 push	 0
  00007	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  0000a	83 c0 04	 add	 eax, 4
  0000d	50		 push	 eax
  0000e	e8 00 00 00 00	 call	 _memset
  00013	83 c4 0c	 add	 esp, 12			; 0000000cH

; 107  : }

  00016	5d		 pop	 ebp
  00017	c3		 ret	 0
?ClearPictureHistory@@YAXPAUTDeinterlaceInfo@@@Z ENDP	; ClearPictureHistory
; Function compile flags: /Odtp
;	COMDAT ??_GCMultiFrames@@QAEPAXI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___flags$ = 8						; size = 4
??_GCMultiFrames@@QAEPAXI@Z PROC			; CMultiFrames::`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	 ??1CMultiFrames@@QAE@XZ	; CMultiFrames::~CMultiFrames
  0000f	8b 45 08	 mov	 eax, DWORD PTR ___flags$[ebp]
  00012	83 e0 01	 and	 eax, 1
  00015	74 0c		 je	 SHORT $LN1@scalar@39
  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@39:
  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
??_GCMultiFrames@@QAEPAXI@Z ENDP			; CMultiFrames::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?Pause_Toggle_Capture@@YAXXZ			; Pause_Toggle_Capture
; Function compile flags: /Odtp
;	COMDAT ?Pause_Toggle_Capture@@YAXXZ
_TEXT	SEGMENT
tv76 = -8						; size = 4
tv69 = -4						; size = 4
?Pause_Toggle_Capture@@YAXXZ PROC			; Pause_Toggle_Capture, COMDAT

; 322  : {

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

; 323  :     if(bIsPaused)

  00006	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?bIsPaused@@3HA, 0 ; bIsPaused
  0000d	74 28		 je	 SHORT $LN4@Pause_Togg

; 324  :     {
; 325  :         UnPause_Capture();

  0000f	e8 00 00 00 00	 call	 ?UnPause_Capture@@YAXXZ	; UnPause_Capture

; 326  :         if (Providers_GetCurrentSource())

  00014	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  00019	85 c0		 test	 eax, eax
  0001b	74 18		 je	 SHORT $LN3@Pause_Togg

; 327  :         {
; 328  :             Providers_GetCurrentSource()->UnPause();

  0001d	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  00022	89 45 fc	 mov	 DWORD PTR tv69[ebp], eax
  00025	8b 45 fc	 mov	 eax, DWORD PTR tv69[ebp]
  00028	8b 10		 mov	 edx, DWORD PTR [eax]
  0002a	8b 4d fc	 mov	 ecx, DWORD PTR tv69[ebp]
  0002d	8b 82 e0 00 00
	00		 mov	 eax, DWORD PTR [edx+224]
  00033	ff d0		 call	 eax
$LN3@Pause_Togg:

; 329  :         }
; 330  :     }
; 331  :     else

  00035	eb 26		 jmp	 SHORT $LN5@Pause_Togg
$LN4@Pause_Togg:

; 332  :     {
; 333  :         Pause_Capture();

  00037	e8 00 00 00 00	 call	 ?Pause_Capture@@YAXXZ	; Pause_Capture

; 334  :         if (Providers_GetCurrentSource())

  0003c	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  00041	85 c0		 test	 eax, eax
  00043	74 18		 je	 SHORT $LN5@Pause_Togg

; 335  :         {
; 336  :             Providers_GetCurrentSource()->Pause();

  00045	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  0004a	89 45 f8	 mov	 DWORD PTR tv76[ebp], eax
  0004d	8b 4d f8	 mov	 ecx, DWORD PTR tv76[ebp]
  00050	8b 11		 mov	 edx, DWORD PTR [ecx]
  00052	8b 4d f8	 mov	 ecx, DWORD PTR tv76[ebp]
  00055	8b 82 dc 00 00
	00		 mov	 eax, DWORD PTR [edx+220]
  0005b	ff d0		 call	 eax
$LN5@Pause_Togg:

; 337  :         }
; 338  :     }
; 339  : }

  0005d	8b e5		 mov	 esp, ebp
  0005f	5d		 pop	 ebp
  00060	c3		 ret	 0
?Pause_Toggle_Capture@@YAXXZ ENDP			; Pause_Toggle_Capture
PUBLIC	?PutRequest@@YAXPAUTGUIRequest@@@Z		; PutRequest
; Function compile flags: /Odtp
;	COMDAT ?PutRequest@@YAXPAUTGUIRequest@@@Z
_TEXT	SEGMENT
tv65 = -4						; size = 4
_req$ = 8						; size = 4
?PutRequest@@YAXPAUTGUIRequest@@@Z PROC			; PutRequest, COMDAT

; 215  : {

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

; 216  :     if (Request.type == REQ_NONE)

  00004	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?Request@@3UTGUIRequest@@A, 0
  0000b	0f 85 b2 00 00
	00		 jne	 $LN12@PutRequest

; 217  :     {
; 218  :         switch (req->type)

  00011	8b 45 08	 mov	 eax, DWORD PTR _req$[ebp]
  00014	8b 08		 mov	 ecx, DWORD PTR [eax]
  00016	89 4d fc	 mov	 DWORD PTR tv65[ebp], ecx
  00019	8b 55 fc	 mov	 edx, DWORD PTR tv65[ebp]
  0001c	83 ea 01	 sub	 edx, 1
  0001f	89 55 fc	 mov	 DWORD PTR tv65[ebp], edx
  00022	83 7d fc 03	 cmp	 DWORD PTR tv65[ebp], 3
  00026	0f 87 97 00 00
	00		 ja	 $LN12@PutRequest
  0002c	8b 45 fc	 mov	 eax, DWORD PTR tv65[ebp]
  0002f	ff 24 85 00 00
	00 00		 jmp	 DWORD PTR $LN14@PutRequest[eax*4]
$LN8@PutRequest:

; 219  :         {
; 220  :         case REQ_STILL:
; 221  :             if ((req->param1 > 0) && Providers_GetSnapshotsSource())

  00036	8b 4d 08	 mov	 ecx, DWORD PTR _req$[ebp]
  00039	83 79 04 00	 cmp	 DWORD PTR [ecx+4], 0
  0003d	7e 52		 jle	 SHORT $LN7@PutRequest
  0003f	e8 00 00 00 00	 call	 ?Providers_GetSnapshotsSource@@YAPAVCSource@@XZ ; Providers_GetSnapshotsSource
  00044	85 c0		 test	 eax, eax
  00046	74 49		 je	 SHORT $LN7@PutRequest

; 222  :             {
; 223  :                 Request.type = req->type;

  00048	8b 55 08	 mov	 edx, DWORD PTR _req$[ebp]
  0004b	8b 02		 mov	 eax, DWORD PTR [edx]
  0004d	a3 00 00 00 00	 mov	 DWORD PTR ?Request@@3UTGUIRequest@@A, eax

; 224  :                 Request.param1 = req->param1;

  00052	8b 4d 08	 mov	 ecx, DWORD PTR _req$[ebp]
  00055	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  00058	89 15 04 00 00
	00		 mov	 DWORD PTR ?Request@@3UTGUIRequest@@A+4, edx

; 225  :                 if (req->param1 > 1)

  0005e	8b 45 08	 mov	 eax, DWORD PTR _req$[ebp]
  00061	83 78 04 01	 cmp	 DWORD PTR [eax+4], 1
  00065	7e 0c		 jle	 SHORT $LN6@PutRequest

; 226  :                 {
; 227  :                     Request.param2 = 1;

  00067	c7 05 08 00 00
	00 01 00 00 00	 mov	 DWORD PTR ?Request@@3UTGUIRequest@@A+8, 1

; 228  :                 }
; 229  :                 else

  00071	eb 1e		 jmp	 SHORT $LN7@PutRequest
$LN6@PutRequest:

; 230  :                 {
; 231  :                     Request.param2 = (Setting_GetValue(WM_STILL_GETVALUE, STILLSINMEMORY)) == TRUE ? 1 : 0;

  00073	6a 07		 push	 7
  00075	68 29 80 00 00	 push	 32809			; 00008029H
  0007a	e8 00 00 00 00	 call	 ?Setting_GetValue@@YAJJJ@Z ; Setting_GetValue
  0007f	83 c4 08	 add	 esp, 8
  00082	83 e8 01	 sub	 eax, 1
  00085	f7 d8		 neg	 eax
  00087	1b c0		 sbb	 eax, eax
  00089	83 c0 01	 add	 eax, 1
  0008c	a3 08 00 00 00	 mov	 DWORD PTR ?Request@@3UTGUIRequest@@A+8, eax
$LN7@PutRequest:

; 232  :                 }
; 233  :             }
; 234  :             break;

  00091	eb 30		 jmp	 SHORT $LN12@PutRequest
$LN4@PutRequest:

; 235  :         case REQ_SNAPSHOT:
; 236  :             Request.type = req->type;

  00093	8b 4d 08	 mov	 ecx, DWORD PTR _req$[ebp]
  00096	8b 11		 mov	 edx, DWORD PTR [ecx]
  00098	89 15 00 00 00
	00		 mov	 DWORD PTR ?Request@@3UTGUIRequest@@A, edx

; 237  :             break;

  0009e	eb 23		 jmp	 SHORT $LN12@PutRequest
$LN3@PutRequest:

; 238  : #ifdef WANT_DSHOW_SUPPORT
; 239  :         case REQ_DSHOW_STOP:
; 240  :             Request.type = req->type;

  000a0	8b 45 08	 mov	 eax, DWORD PTR _req$[ebp]
  000a3	8b 08		 mov	 ecx, DWORD PTR [eax]
  000a5	89 0d 00 00 00
	00		 mov	 DWORD PTR ?Request@@3UTGUIRequest@@A, ecx

; 241  :             break;

  000ab	eb 16		 jmp	 SHORT $LN12@PutRequest
$LN2@PutRequest:

; 242  :         case REQ_DSHOW_CHANGERES:
; 243  :             Request.type = req->type;

  000ad	8b 55 08	 mov	 edx, DWORD PTR _req$[ebp]
  000b0	8b 02		 mov	 eax, DWORD PTR [edx]
  000b2	a3 00 00 00 00	 mov	 DWORD PTR ?Request@@3UTGUIRequest@@A, eax

; 244  :             Request.param1 = req->param1;

  000b7	8b 4d 08	 mov	 ecx, DWORD PTR _req$[ebp]
  000ba	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  000bd	89 15 04 00 00
	00		 mov	 DWORD PTR ?Request@@3UTGUIRequest@@A+4, edx
$LN12@PutRequest:

; 245  :             break;
; 246  : #endif
; 247  :         default:
; 248  :             break;
; 249  :         }
; 250  :     }
; 251  : }

  000c3	8b e5		 mov	 esp, ebp
  000c5	5d		 pop	 ebp
  000c6	c3		 ret	 0
  000c7	90		 npad	 1
$LN14@PutRequest:
  000c8	00 00 00 00	 DD	 $LN8@PutRequest
  000cc	00 00 00 00	 DD	 $LN4@PutRequest
  000d0	00 00 00 00	 DD	 $LN2@PutRequest
  000d4	00 00 00 00	 DD	 $LN3@PutRequest
?PutRequest@@YAXPAUTGUIRequest@@@Z ENDP			; PutRequest
PUBLIC	?Stop_Thread@@YAXXZ				; Stop_Thread
; Function compile flags: /Odtp
;	COMDAT ?Stop_Thread@@YAXXZ
_TEXT	SEGMENT
tv79 = -8						; size = 4
_dwResult$150606 = -4					; size = 4
?Stop_Thread@@YAXXZ PROC				; Stop_Thread, COMDAT

; 161  : {

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

; 162  :     if (g_hOutThread != NULL)

  00006	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?g_hOutThread@@3PAXA, 0 ; g_hOutThread
  0000d	0f 84 ad 00 00
	00		 je	 $LN5@Stop_Threa

; 163  :     {
; 164  :         SetThreadPriority(g_hOutThread, THREAD_PRIORITY_NORMAL);

  00013	6a 00		 push	 0
  00015	a1 00 00 00 00	 mov	 eax, DWORD PTR ?g_hOutThread@@3PAXA ; g_hOutThread
  0001a	50		 push	 eax
  0001b	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SetThreadPriority@8

; 165  : 
; 166  :         // Signal the stop
; 167  :         bStopThread = TRUE;

  00021	c7 05 00 00 00
	00 01 00 00 00	 mov	 DWORD PTR ?bStopThread@@3HA, 1 ; bStopThread

; 168  : 
; 169  :         // Wait 2 seconds for the thread to exit gracefully
; 170  :         DWORD dwResult = WaitForSingleObject(g_hOutThread, 2000);

  0002b	68 d0 07 00 00	 push	 2000			; 000007d0H
  00030	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?g_hOutThread@@3PAXA ; g_hOutThread
  00036	51		 push	 ecx
  00037	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__WaitForSingleObject@8
  0003d	89 45 fc	 mov	 DWORD PTR _dwResult$150606[ebp], eax

; 171  : 
; 172  :         if (dwResult != WAIT_OBJECT_0)

  00040	83 7d fc 00	 cmp	 DWORD PTR _dwResult$150606[ebp], 0
  00044	74 1e		 je	 SHORT $LN3@Stop_Threa

; 173  :         {
; 174  :             LOG(3,_T("Timeout waiting for YUVOutThread to exit, terminating it via TerminateThread()"));

  00046	68 00 00 00 00	 push	 OFFSET ??_C@_1JO@DJFKJDJC@?$AAT?$AAi?$AAm?$AAe?$AAo?$AAu?$AAt?$AA?5?$AAw?$AAa?$AAi?$AAt?$AAi?$AAn?$AAg?$AA?5?$AAf?$AAo?$AAr?$AA?5?$AAY?$AAU?$AAV?$AAO?$AAu?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd@
  0004b	6a 03		 push	 3
  0004d	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00052	83 c4 08	 add	 esp, 8

; 175  :             TerminateThread(g_hOutThread, 0);

  00055	6a 00		 push	 0
  00057	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?g_hOutThread@@3PAXA ; g_hOutThread
  0005d	52		 push	 edx
  0005e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__TerminateThread@8
$LN3@Stop_Threa:

; 176  :         }
; 177  : 
; 178  :         CloseHandle(g_hOutThread);

  00064	a1 00 00 00 00	 mov	 eax, DWORD PTR ?g_hOutThread@@3PAXA ; g_hOutThread
  00069	50		 push	 eax
  0006a	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__CloseHandle@4

; 179  :         g_hOutThread = NULL;

  00070	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?g_hOutThread@@3PAXA, 0 ; g_hOutThread

; 180  : 
; 181  :         if (dwResult != WAIT_OBJECT_0)

  0007a	83 7d fc 00	 cmp	 DWORD PTR _dwResult$150606[ebp], 0
  0007e	74 40		 je	 SHORT $LN5@Stop_Threa

; 182  :         {
; 183  :             // THIS SHOULD NOT HAPPEN
; 184  : 
; 185  :             // ...but it is and it's something we need to debug.
; 186  :             // There are deadlocks with GUI access from the YUVOutThread.
; 187  :             // --AtNak 2003-07-31  [In progress comments, remove when fixed.]
; 188  :             // http://sourceforge.net/mailarchive/message.php?msg_id=5703600
; 189  : 
; 190  : 						//possibly fixed by setting the timeout to 2 sec
; 191  : 						
; 192  : 						//restore audio after the thread has been interrupted by something else
; 193  : 						//(start of an application, high disk activity etc.)
; 194  :             if (!Providers_GetCurrentSource()->IsInTunerMode())

  00080	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  00085	89 45 f8	 mov	 DWORD PTR tv79[ebp], eax
  00088	8b 4d f8	 mov	 ecx, DWORD PTR tv79[ebp]
  0008b	8b 11		 mov	 edx, DWORD PTR [ecx]
  0008d	8b 4d f8	 mov	 ecx, DWORD PTR tv79[ebp]
  00090	8b 42 68	 mov	 eax, DWORD PTR [edx+104]
  00093	ff d0		 call	 eax
  00095	85 c0		 test	 eax, eax
  00097	75 27		 jne	 SHORT $LN5@Stop_Threa

; 195  :     					{
; 196  : 							keybd_event(VK_F16, 0, 0, 0);

  00099	6a 00		 push	 0
  0009b	6a 00		 push	 0
  0009d	6a 00		 push	 0
  0009f	6a 7f		 push	 127			; 0000007fH
  000a1	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__keybd_event@16

; 197  : 							Sleep(300);

  000a7	68 2c 01 00 00	 push	 300			; 0000012cH
  000ac	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__Sleep@4

; 198  : 							keybd_event(VK_F16, 0, KEYEVENTF_KEYUP, 0);			

  000b2	6a 00		 push	 0
  000b4	6a 02		 push	 2
  000b6	6a 00		 push	 0
  000b8	6a 7f		 push	 127			; 0000007fH
  000ba	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__keybd_event@16
$LN5@Stop_Threa:

; 199  : 							}
; 200  :         }
; 201  :     }
; 202  : }

  000c0	8b e5		 mov	 esp, ebp
  000c2	5d		 pop	 ebp
  000c3	c3		 ret	 0
?Stop_Thread@@YAXXZ ENDP				; Stop_Thread
PUBLIC	?Stop_Capture@@YAXXZ				; Stop_Capture
; Function compile flags: /Odtp
;	COMDAT ?Stop_Capture@@YAXXZ
_TEXT	SEGMENT
tv79 = -4						; size = 4
?Stop_Capture@@YAXXZ PROC				; Stop_Capture, COMDAT

; 387  : {

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

; 388  :     if (g_nCaptureStatus-- == 1)

  00004	a1 00 00 00 00	 mov	 eax, DWORD PTR ?g_nCaptureStatus@@3JA ; g_nCaptureStatus
  00009	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?g_nCaptureStatus@@3JA ; g_nCaptureStatus
  0000f	83 e9 01	 sub	 ecx, 1
  00012	89 0d 00 00 00
	00		 mov	 DWORD PTR ?g_nCaptureStatus@@3JA, ecx ; g_nCaptureStatus
  00018	83 f8 01	 cmp	 eax, 1
  0001b	75 5d		 jne	 SHORT $LN4@Stop_Captu@2

; 389  :     {
; 390  :         Audio_Mute();

  0001d	6a 00		 push	 0
  0001f	e8 00 00 00 00	 call	 ?Audio_Mute@@YAXK@Z	; Audio_Mute
  00024	83 c4 04	 add	 esp, 4

; 391  : 
; 392  :         if (pCalibration->IsRunning())

  00027	b9 00 00 00 00	 mov	 ecx, OFFSET ?pCalibration@@3V?$SmartPtr@VCCalibration@@@@A ; pCalibration
  0002c	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCalibration@@@@QBEPAVCCalibration@@XZ ; SmartPtr<CCalibration>::operator->
  00031	8b c8		 mov	 ecx, eax
  00033	e8 00 00 00 00	 call	 ?IsRunning@CCalibration@@QAEHXZ ; CCalibration::IsRunning
  00038	85 c0		 test	 eax, eax
  0003a	74 11		 je	 SHORT $LN2@Stop_Captu@2

; 393  :         {
; 394  :             pCalibration->Stop();

  0003c	b9 00 00 00 00	 mov	 ecx, OFFSET ?pCalibration@@3V?$SmartPtr@VCCalibration@@@@A ; pCalibration
  00041	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCalibration@@@@QBEPAVCCalibration@@XZ ; SmartPtr<CCalibration>::operator->
  00046	8b c8		 mov	 ecx, eax
  00048	e8 00 00 00 00	 call	 ?Stop@CCalibration@@QAEXXZ ; CCalibration::Stop
$LN2@Stop_Captu@2:

; 395  :         }
; 396  :         if (Providers_GetCurrentSource())

  0004d	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  00052	85 c0		 test	 eax, eax
  00054	74 1a		 je	 SHORT $LN1@Stop_Captu@2

; 397  :         {
; 398  :             //  Stop The Output Thread
; 399  :             Stop_Thread();

  00056	e8 00 00 00 00	 call	 ?Stop_Thread@@YAXXZ	; Stop_Thread

; 400  : 
; 401  :             //there is a Stop() call at the end of the output thread too
; 402  :             //maybe that call shoud be removed and add a __try/__except here?
; 403  :             //or just let the __try in MainWndProcSafe catch any problems?
; 404  :             Providers_GetCurrentSource()->Stop();

  0005b	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  00060	89 45 fc	 mov	 DWORD PTR tv79[ebp], eax
  00063	8b 55 fc	 mov	 edx, DWORD PTR tv79[ebp]
  00066	8b 02		 mov	 eax, DWORD PTR [edx]
  00068	8b 4d fc	 mov	 ecx, DWORD PTR tv79[ebp]
  0006b	8b 50 08	 mov	 edx, DWORD PTR [eax+8]
  0006e	ff d2		 call	 edx
$LN1@Stop_Captu@2:

; 405  :         }
; 406  :         UpdateSquarePixelsMode(FALSE);

  00070	6a 00		 push	 0
  00072	e8 00 00 00 00	 call	 ?UpdateSquarePixelsMode@@YAHH@Z ; UpdateSquarePixelsMode
  00077	83 c4 04	 add	 esp, 4
$LN4@Stop_Captu@2:

; 407  :     }
; 408  : }

  0007a	8b e5		 mov	 esp, ebp
  0007c	5d		 pop	 ebp
  0007d	c3		 ret	 0
?Stop_Capture@@YAXXZ ENDP				; Stop_Capture
PUBLIC	__$ArrayPad$
PUBLIC	?SaveStreamSnapshot@@YAXPAUTDeinterlaceInfo@@@Z	; SaveStreamSnapshot
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?SaveStreamSnapshot@@YAXPAUTDeinterlaceInfo@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?SaveStreamSnapshot@@YAXPAUTDeinterlaceInfo@@@Z$0
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?SaveStreamSnapshot@@YAXPAUTDeinterlaceInfo@@@Z$1
__ehfuncinfo$?SaveStreamSnapshot@@YAXPAUTDeinterlaceInfo@@@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?SaveStreamSnapshot@@YAXPAUTDeinterlaceInfo@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?SaveStreamSnapshot@@YAXPAUTDeinterlaceInfo@@@Z
_TEXT	SEGMENT
$T355073 = -172						; size = 28
$T355072 = -144						; size = 28
_CurLine$150662 = -116					; size = 4
_j$ = -112						; size = 4
_name$ = -108						; size = 26
__$ArrayPad$ = -80					; size = 4
_st$ = -76						; size = 48
_file$ = -24						; size = 4
_n$ = -20						; size = 4
_i$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_pInfo$ = 8						; size = 4
?SaveStreamSnapshot@@YAXPAUTDeinterlaceInfo@@@Z PROC	; SaveStreamSnapshot, COMDAT

; 264  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?SaveStreamSnapshot@@YAXPAUTDeinterlaceInfo@@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	81 ec a0 00 00
	00		 sub	 esp, 160		; 000000a0H
  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

; 265  :     TCHAR name[13];
; 266  :     int n = 0;

  0002b	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _n$[ebp], 0

; 267  :     int i = 0;

  00032	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
$LN10@SaveStream:

; 268  :     int j;
; 269  :     struct _stat st;
; 270  : 
; 271  :     while (n < 100)

  00039	83 7d ec 64	 cmp	 DWORD PTR _n$[ebp], 100	; 00000064H
  0003d	7d 38		 jge	 SHORT $LN9@SaveStream

; 272  :     {
; 273  :         _sntprintf(name, 13,  _T("sn%06d.dtv"),++n) ;

  0003f	8b 45 ec	 mov	 eax, DWORD PTR _n$[ebp]
  00042	83 c0 01	 add	 eax, 1
  00045	89 45 ec	 mov	 DWORD PTR _n$[ebp], eax
  00048	8b 4d ec	 mov	 ecx, DWORD PTR _n$[ebp]
  0004b	51		 push	 ecx
  0004c	68 00 00 00 00	 push	 OFFSET ??_C@_1BG@FIECEKJE@?$AAs?$AAn?$AA?$CF?$AA0?$AA6?$AAd?$AA?4?$AAd?$AAt?$AAv?$AA?$AA@
  00051	6a 0d		 push	 13			; 0000000dH
  00053	8d 55 94	 lea	 edx, DWORD PTR _name$[ebp]
  00056	52		 push	 edx
  00057	e8 00 00 00 00	 call	 __snwprintf
  0005c	83 c4 10	 add	 esp, 16			; 00000010H

; 274  :         if (_tstat(name, &st))

  0005f	8d 45 b4	 lea	 eax, DWORD PTR _st$[ebp]
  00062	50		 push	 eax
  00063	8d 4d 94	 lea	 ecx, DWORD PTR _name$[ebp]
  00066	51		 push	 ecx
  00067	e8 00 00 00 00	 call	 __wstat64i32
  0006c	83 c4 08	 add	 esp, 8
  0006f	85 c0		 test	 eax, eax
  00071	74 02		 je	 SHORT $LN8@SaveStream

; 275  :         {
; 276  :             break;

  00073	eb 02		 jmp	 SHORT $LN9@SaveStream
$LN8@SaveStream:

; 277  :         }
; 278  :     }

  00075	eb c2		 jmp	 SHORT $LN10@SaveStream
$LN9@SaveStream:

; 279  : 
; 280  :     if(n == 100)

  00077	83 7d ec 64	 cmp	 DWORD PTR _n$[ebp], 100	; 00000064H
  0007b	75 49		 jne	 SHORT $LN7@SaveStream

; 281  :     {
; 282  :         ErrorBox(_T("Could not create a file.  You may have too many snapshots already."));

  0007d	68 00 00 00 00	 push	 OFFSET ??_C@_1IG@JMMPFHFM@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAa?$AA?5?$AAf?$AAi?$AAl?$AAe?$AA?4?$AA?5?$AA?5?$AAY?$AAo?$AAu?$AA?5?$AAm?$AAa@
  00082	8d 8d 70 ff ff
	ff		 lea	 ecx, DWORD PTR $T355072[ebp]
  00088	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> >
  0008d	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00094	8d 95 70 ff ff
	ff		 lea	 edx, DWORD PTR $T355072[ebp]
  0009a	52		 push	 edx
  0009b	68 1a 01 00 00	 push	 282			; 0000011aH
  000a0	68 00 00 00 00	 push	 OFFSET ??_C@_1CC@MBPACLGO@?$AA?4?$AA?2?$AAO?$AAu?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AAs?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  000a5	6a 00		 push	 0
  000a7	e8 00 00 00 00	 call	 ?_ErrorBox@@YAXPAUHWND__@@PB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _ErrorBox
  000ac	83 c4 10	 add	 esp, 16			; 00000010H
  000af	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  000b6	8d 8d 70 ff ff
	ff		 lea	 ecx, DWORD PTR $T355072[ebp]
  000bc	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> >

; 283  :         return;

  000c1	e9 23 01 00 00	 jmp	 $LN11@SaveStream
$LN7@SaveStream:

; 284  :     }
; 285  : 
; 286  :     FILE* file = _tfopen(name, _T("wb"));

  000c6	68 00 00 00 00	 push	 OFFSET ??_C@_15MJDFFMKN@?$AAw?$AAb?$AA?$AA@
  000cb	8d 45 94	 lea	 eax, DWORD PTR _name$[ebp]
  000ce	50		 push	 eax
  000cf	e8 00 00 00 00	 call	 __wfopen
  000d4	83 c4 08	 add	 esp, 8
  000d7	89 45 e8	 mov	 DWORD PTR _file$[ebp], eax

; 287  :     if (!file)

  000da	83 7d e8 00	 cmp	 DWORD PTR _file$[ebp], 0
  000de	75 49		 jne	 SHORT $LN6@SaveStream

; 288  :     {
; 289  :         ErrorBox(_T("Could not open file in SaveStreamSnapshot"));

  000e0	68 00 00 00 00	 push	 OFFSET ??_C@_1FE@FAJOIGGG@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAo?$AAp?$AAe?$AAn?$AA?5?$AAf?$AAi?$AAl?$AAe?$AA?5?$AAi?$AAn?$AA?5?$AAS?$AAa?$AAv?$AAe?$AAS?$AAt?$AAr?$AAe?$AAa@
  000e5	8d 8d 54 ff ff
	ff		 lea	 ecx, DWORD PTR $T355073[ebp]
  000eb	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> >
  000f0	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1
  000f7	8d 8d 54 ff ff
	ff		 lea	 ecx, DWORD PTR $T355073[ebp]
  000fd	51		 push	 ecx
  000fe	68 21 01 00 00	 push	 289			; 00000121H
  00103	68 00 00 00 00	 push	 OFFSET ??_C@_1CC@MBPACLGO@?$AA?4?$AA?2?$AAO?$AAu?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AAs?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  00108	6a 00		 push	 0
  0010a	e8 00 00 00 00	 call	 ?_ErrorBox@@YAXPAUHWND__@@PB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _ErrorBox
  0010f	83 c4 10	 add	 esp, 16			; 00000010H
  00112	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00119	8d 8d 54 ff ff
	ff		 lea	 ecx, DWORD PTR $T355073[ebp]
  0011f	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> >

; 290  :         return;

  00124	e9 c0 00 00 00	 jmp	 $LN11@SaveStream
$LN6@SaveStream:

; 291  :     }
; 292  : 
; 293  :     // just save the Info struct
; 294  :     // most of the data is pointers which will be useless
; 295  :     // to anyone else
; 296  :     // but NULLs will be useful in determining how many
; 297  :     // fields we have.
; 298  :     // The rest will contain all the data we need to use
; 299  :     // the data in a test program
; 300  :     fwrite(pInfo, sizeof(TDeinterlaceInfo), 1, file);

  00129	8b 55 e8	 mov	 edx, DWORD PTR _file$[ebp]
  0012c	52		 push	 edx
  0012d	6a 01		 push	 1
  0012f	68 88 00 00 00	 push	 136			; 00000088H
  00134	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  00137	50		 push	 eax
  00138	e8 00 00 00 00	 call	 _fwrite
  0013d	83 c4 10	 add	 esp, 16			; 00000010H

; 301  : 
; 302  :     // save all the fields
; 303  :     i = 0;

  00140	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
$LN5@SaveStream:

; 304  :     while(i < MAX_FIELD_HISTORY && pInfo->PictureHistory[i] != NULL)

  00147	83 7d f0 05	 cmp	 DWORD PTR _i$[ebp], 5
  0014b	0f 8d 8c 00 00
	00		 jge	 $LN4@SaveStream
  00151	8b 4d f0	 mov	 ecx, DWORD PTR _i$[ebp]
  00154	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  00157	83 7c 8a 04 00	 cmp	 DWORD PTR [edx+ecx*4+4], 0
  0015c	74 7f		 je	 SHORT $LN4@SaveStream

; 305  :     {
; 306  :         //write out the header with flags
; 307  :         fwrite(pInfo->PictureHistory[i], sizeof(TPicture), 1, file);

  0015e	8b 45 e8	 mov	 eax, DWORD PTR _file$[ebp]
  00161	50		 push	 eax
  00162	6a 01		 push	 1
  00164	6a 0c		 push	 12			; 0000000cH
  00166	8b 4d f0	 mov	 ecx, DWORD PTR _i$[ebp]
  00169	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  0016c	8b 44 8a 04	 mov	 eax, DWORD PTR [edx+ecx*4+4]
  00170	50		 push	 eax
  00171	e8 00 00 00 00	 call	 _fwrite
  00176	83 c4 10	 add	 esp, 16			; 00000010H

; 308  : 
; 309  :         // write out the data
; 310  :         BYTE* CurLine = pInfo->PictureHistory[i]->pData;

  00179	8b 4d f0	 mov	 ecx, DWORD PTR _i$[ebp]
  0017c	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  0017f	8b 44 8a 04	 mov	 eax, DWORD PTR [edx+ecx*4+4]
  00183	8b 08		 mov	 ecx, DWORD PTR [eax]
  00185	89 4d 8c	 mov	 DWORD PTR _CurLine$150662[ebp], ecx

; 311  :         for(j = 0; j < pInfo->FieldHeight; ++j)

  00188	c7 45 90 00 00
	00 00		 mov	 DWORD PTR _j$[ebp], 0
  0018f	eb 09		 jmp	 SHORT $LN3@SaveStream
$LN2@SaveStream:
  00191	8b 55 90	 mov	 edx, DWORD PTR _j$[ebp]
  00194	83 c2 01	 add	 edx, 1
  00197	89 55 90	 mov	 DWORD PTR _j$[ebp], edx
$LN3@SaveStream:
  0019a	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  0019d	8b 4d 90	 mov	 ecx, DWORD PTR _j$[ebp]
  001a0	3b 48 54	 cmp	 ecx, DWORD PTR [eax+84]
  001a3	7d 2a		 jge	 SHORT $LN1@SaveStream

; 312  :         {
; 313  :             fwrite(CurLine, pInfo->LineLength, 1, file);

  001a5	8b 55 e8	 mov	 edx, DWORD PTR _file$[ebp]
  001a8	52		 push	 edx
  001a9	6a 01		 push	 1
  001ab	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  001ae	8b 48 48	 mov	 ecx, DWORD PTR [eax+72]
  001b1	51		 push	 ecx
  001b2	8b 55 8c	 mov	 edx, DWORD PTR _CurLine$150662[ebp]
  001b5	52		 push	 edx
  001b6	e8 00 00 00 00	 call	 _fwrite
  001bb	83 c4 10	 add	 esp, 16			; 00000010H

; 314  :             CurLine += pInfo->InputPitch;

  001be	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  001c1	8b 4d 8c	 mov	 ecx, DWORD PTR _CurLine$150662[ebp]
  001c4	03 88 84 00 00
	00		 add	 ecx, DWORD PTR [eax+132]
  001ca	89 4d 8c	 mov	 DWORD PTR _CurLine$150662[ebp], ecx

; 315  :         }

  001cd	eb c2		 jmp	 SHORT $LN2@SaveStream
$LN1@SaveStream:

; 316  :         i++;

  001cf	8b 55 f0	 mov	 edx, DWORD PTR _i$[ebp]
  001d2	83 c2 01	 add	 edx, 1
  001d5	89 55 f0	 mov	 DWORD PTR _i$[ebp], edx

; 317  :     }

  001d8	e9 6a ff ff ff	 jmp	 $LN5@SaveStream
$LN4@SaveStream:

; 318  :     fclose(file);

  001dd	8b 45 e8	 mov	 eax, DWORD PTR _file$[ebp]
  001e0	50		 push	 eax
  001e1	e8 00 00 00 00	 call	 _fclose
  001e6	83 c4 04	 add	 esp, 4
$LN11@SaveStream:

; 319  : }

  001e9	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  001ec	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  001f3	59		 pop	 ecx
  001f4	8b 4d b0	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  001f7	33 cd		 xor	 ecx, ebp
  001f9	e8 00 00 00 00	 call	 @__security_check_cookie@4
  001fe	8b e5		 mov	 esp, ebp
  00200	5d		 pop	 ebp
  00201	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?SaveStreamSnapshot@@YAXPAUTDeinterlaceInfo@@@Z$0:
  00000	8d 8d 70 ff ff
	ff		 lea	 ecx, DWORD PTR $T355072[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$?SaveStreamSnapshot@@YAXPAUTDeinterlaceInfo@@@Z$1:
  0000b	8d 8d 54 ff ff
	ff		 lea	 ecx, DWORD PTR $T355073[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$?SaveStreamSnapshot@@YAXPAUTDeinterlaceInfo@@@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 5c ff ff
	ff		 mov	 ecx, DWORD PTR [edx-164]
  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$?SaveStreamSnapshot@@YAXPAUTDeinterlaceInfo@@@Z
  00039	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?SaveStreamSnapshot@@YAXPAUTDeinterlaceInfo@@@Z ENDP	; SaveStreamSnapshot
PUBLIC	__$ArrayPad$
PUBLIC	?YUVOutThread@@YGKPAX@Z				; YUVOutThread
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?YUVOutThread@@YGKPAX@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?YUVOutThread@@YGKPAX@Z$6
	DD	00H
	DD	FLAT:__unwindfunclet$?YUVOutThread@@YGKPAX@Z$7
	DD	01H
	DD	FLAT:__unwindfunclet$?YUVOutThread@@YGKPAX@Z$8
	DD	02H
	DD	00H
	DD	03H
	DD	FLAT:__unwindfunclet$?YUVOutThread@@YGKPAX@Z$9
	DD	03H
	DD	00H
	DD	03H
	DD	00H
	DD	06H
	DD	FLAT:__unwindfunclet$?YUVOutThread@@YGKPAX@Z$10
	DD	03H
	DD	FLAT:__unwindfunclet$?YUVOutThread@@YGKPAX@Z$11
	DD	02H
	DD	00H
	DD	09H
	DD	FLAT:__unwindfunclet$?YUVOutThread@@YGKPAX@Z$12
	DD	02H
	DD	00H
	DD	02H
	DD	00H
	DD	0cH
	DD	FLAT:__unwindfunclet$?YUVOutThread@@YGKPAX@Z$13
__catchsym$?YUVOutThread@@YGKPAX@Z$14 DD 00H
	DD	00H
	DD	00H
	DD	FLAT:__catch$?YUVOutThread@@YGKPAX@Z$0
__catchsym$?YUVOutThread@@YGKPAX@Z$15 DD 00H
	DD	00H
	DD	00H
	DD	FLAT:__catch$?YUVOutThread@@YGKPAX@Z$2
__catchsym$?YUVOutThread@@YGKPAX@Z$16 DD 00H
	DD	00H
	DD	00H
	DD	FLAT:__catch$?YUVOutThread@@YGKPAX@Z$4
__tryblocktable$?YUVOutThread@@YGKPAX@Z DD 05H
	DD	05H
	DD	07H
	DD	01H
	DD	FLAT:__catchsym$?YUVOutThread@@YGKPAX@Z$14
	DD	03H
	DD	08H
	DD	0aH
	DD	01H
	DD	FLAT:__catchsym$?YUVOutThread@@YGKPAX@Z$15
	DD	0bH
	DD	0bH
	DD	0dH
	DD	01H
	DD	FLAT:__catchsym$?YUVOutThread@@YGKPAX@Z$16
__ehfuncinfo$?YUVOutThread@@YGKPAX@Z DD 019930522H
	DD	0eH
	DD	FLAT:__unwindtable$?YUVOutThread@@YGKPAX@Z
	DD	03H
	DD	FLAT:__tryblocktable$?YUVOutThread@@YGKPAX@Z
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?YUVOutThread@@YGKPAX@Z
_TEXT	SEGMENT
tv825 = -928						; size = 4
tv812 = -924						; size = 4
tv808 = -920						; size = 4
tv728 = -916						; size = 4
tv715 = -912						; size = 4
tv697 = -908						; size = 4
tv682 = -904						; size = 4
tv613 = -900						; size = 4
tv609 = -896						; size = 4
tv588 = -892						; size = 4
tv576 = -888						; size = 4
tv524 = -884						; size = 4
tv516 = -880						; size = 4
tv449 = -876						; size = 4
tv440 = -872						; size = 4
tv403 = -868						; size = 4
tv372 = -864						; size = 4
tv188 = -860						; size = 4
tv162 = -856						; size = 4
tv141 = -852						; size = 4
tv130 = -848						; size = 4
$T360814 = -844						; size = 4
$T360813 = -840						; size = 4
$T360812 = -836						; size = 28
$T360811 = -808						; size = 4
$T360810 = -804						; size = 28
$T360807 = -776						; size = 4
$T360806 = -772						; size = 4
$T360805 = -768						; size = 28
$T360800 = -740						; size = 4
$T360799 = -736						; size = 28
$T360794 = -708						; size = 4
$T360793 = -704						; size = 4
$T360792 = -700						; size = 4
$T360787 = -696						; size = 28
_i$150872 = -668					; size = 4
_CurrentLine$150870 = -664				; size = 4
_DestLine$150871 = -660					; size = 4
_StillBuffer$150867 = -656				; size = 4
_LinePitch$150868 = -652				; size = 4
_i$150857 = -648					; size = 4
_FlipFlag$150837 = -644					; size = 4
_bFlipNow$150817 = -640					; size = 4
_i$150790 = -636					; size = 4
_bDoVerticalFlipCurrent$150788 = -632			; size = 4
_bOverlayLocked$150813 = -628				; size = 4
_text$150775 = -624					; size = 256
_MemUsed$150770 = -364					; size = 4
_sBuffer$150763 = -360					; size = 64
_bUseExtraBuffer$ = -292				; size = 4
_lpMultiBuffer$ = -288					; size = 4
_thisThread$ = -284					; size = 32
_SourceAspectAdjust$ = -252				; size = 4
_IsFirstInSeriesFlag$ = -248				; size = 4
_bIsPAL$ = -244						; size = 4
_Info$ = -240						; size = 136
_message$ = -104					; size = 28
__$ArrayPad$ = -76					; size = 4
_CurrentMethod$ = -72					; size = 4
_bIsPresent$ = -68					; size = 4
_nHistory$ = -64					; size = 4
_bUseOverlay$ = -60					; size = 4
_OldFrameHeight$ = -56					; size = 4
_pSource$ = -52						; size = 4
_nMissing$ = -48					; size = 4
_PrevDeintMethod$ = -44					; size = 4
_pAllocBuf$ = -40					; size = 4
_OldFrameWidth$ = -36					; size = 4
_bFlipNow$ = -32					; size = 4
_ThisThread$ = -25					; size = 1
_bTakeStill$ = -24					; size = 4
_MultiPitch$ = -20					; size = 4
__$EHRec$ = -16						; size = 16
_lpThreadParameter$ = 8					; size = 4
?YUVOutThread@@YGKPAX@Z PROC				; YUVOutThread, COMDAT

; 456  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?YUVOutThread@@YGKPAX@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	81 ec 90 03 00
	00		 sub	 esp, 912		; 00000390H
  00018	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001d	33 c5		 xor	 eax, ebp
  0001f	89 45 b4	 mov	 DWORD PTR __$ArrayPad$[ebp], eax
  00022	53		 push	 ebx
  00023	56		 push	 esi
  00024	57		 push	 edi
  00025	50		 push	 eax
  00026	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp+4]
  00029	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  0002f	89 65 f0	 mov	 DWORD PTR __$EHRec$[ebp], esp

; 457  :     BOOL bFlipNow = TRUE;

  00032	c7 45 e0 01 00
	00 00		 mov	 DWORD PTR _bFlipNow$[ebp], 1

; 458  :     TDeinterlaceInfo Info;
; 459  :     DEINTERLACE_METHOD* PrevDeintMethod = NULL;

  00039	c7 45 d4 00 00
	00 00		 mov	 DWORD PTR _PrevDeintMethod$[ebp], 0

; 460  :     DEINTERLACE_METHOD* CurrentMethod = NULL;

  00040	c7 45 b8 00 00
	00 00		 mov	 DWORD PTR _CurrentMethod$[ebp], 0

; 461  :     int nHistory = 0;

  00047	c7 45 c0 00 00
	00 00		 mov	 DWORD PTR _nHistory$[ebp], 0

; 462  :     long SourceAspectAdjust = 1000;

  0004e	c7 85 04 ff ff
	ff e8 03 00 00	 mov	 DWORD PTR _SourceAspectAdjust$[ebp], 1000 ; 000003e8H

; 463  :     BYTE* pAllocBuf = NULL;

  00058	c7 45 d8 00 00
	00 00		 mov	 DWORD PTR _pAllocBuf$[ebp], 0

; 464  :     BOOL bTakeStill = FALSE;

  0005f	c7 45 e8 00 00
	00 00		 mov	 DWORD PTR _bTakeStill$[ebp], 0

; 465  :     BOOL bUseOverlay = TRUE;

  00066	c7 45 c4 01 00
	00 00		 mov	 DWORD PTR _bUseOverlay$[ebp], 1

; 466  :     BOOL bUseExtraBuffer;
; 467  :     BOOL bIsPresent;
; 468  :     int nMissing = 0;

  0006d	c7 45 d0 00 00
	00 00		 mov	 DWORD PTR _nMissing$[ebp], 0

; 469  :     BYTE* lpMultiBuffer = NULL;

  00074	c7 85 e0 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _lpMultiBuffer$[ebp], 0

; 470  :     int MultiPitch = 0;

  0007e	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _MultiPitch$[ebp], 0

; 471  :     BOOL IsFirstInSeriesFlag = TRUE;

  00085	c7 85 08 ff ff
	ff 01 00 00 00	 mov	 DWORD PTR _IsFirstInSeriesFlag$[ebp], 1

; 472  : 	int OldFrameWidth = -1;

  0008f	c7 45 dc ff ff
	ff ff		 mov	 DWORD PTR _OldFrameWidth$[ebp], -1

; 473  : 	int OldFrameHeight = -1;

  00096	c7 45 c8 ff ff
	ff ff		 mov	 DWORD PTR _OldFrameHeight$[ebp], -1

; 474  : 	std::string message;

  0009d	8d 4d 98	 lea	 ecx, DWORD PTR _message$[ebp]
  000a0	e8 00 00 00 00	 call	 ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
  000a5	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 0

; 475  : 
; 476  : 	DScalerThread thisThread(_T("YUV Out Thread"));

  000ac	68 00 00 00 00	 push	 OFFSET ??_C@_1BO@GHMDOHFD@?$AAY?$AAU?$AAV?$AA?5?$AAO?$AAu?$AAt?$AA?5?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AA?$AA@
  000b1	8d 8d e4 fe ff
	ff		 lea	 ecx, DWORD PTR _thisThread$[ebp]
  000b7	e8 00 00 00 00	 call	 ??0DScalerThread@@QAE@PB_W@Z ; DScalerThread::DScalerThread
  000bc	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+12], 1

; 477  : 
; 478  : #ifdef WANT_DSHOW_SUPPORT
; 479  :     //com init for this thread
; 480  :     ComInitialise ThisThread(COINIT_MULTITHREADED);

  000c0	6a 00		 push	 0
  000c2	8d 4d e7	 lea	 ecx, DWORD PTR _ThisThread$[ebp]
  000c5	e8 00 00 00 00	 call	 ??0ComInitialise@@QAE@K@Z ; ComInitialise::ComInitialise
  000ca	c6 45 fc 02	 mov	 BYTE PTR __$EHRec$[ebp+12], 2

; 481  : #endif
; 482  : 
; 483  :     CSource* pSource = Providers_GetCurrentSource();

  000ce	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  000d3	89 45 cc	 mov	 DWORD PTR _pSource$[ebp], eax

; 484  :     BOOL bIsPAL = GetTVFormat(pSource->GetFormat())->Is25fps;

  000d6	8b 45 cc	 mov	 eax, DWORD PTR _pSource$[ebp]
  000d9	8b 10		 mov	 edx, DWORD PTR [eax]
  000db	8b 4d cc	 mov	 ecx, DWORD PTR _pSource$[ebp]
  000de	8b 42 64	 mov	 eax, DWORD PTR [edx+100]
  000e1	ff d0		 call	 eax
  000e3	50		 push	 eax
  000e4	e8 00 00 00 00	 call	 ?GetTVFormat@@YAPAUTTVFormat@@W4eVideoFormat@@@Z ; GetTVFormat
  000e9	83 c4 04	 add	 esp, 4
  000ec	8b 48 10	 mov	 ecx, DWORD PTR [eax+16]
  000ef	89 8d 0c ff ff
	ff		 mov	 DWORD PTR _bIsPAL$[ebp], ecx

; 485  : 
; 486  :     Timing_Setup();

  000f5	e8 00 00 00 00	 call	 ?Timing_Setup@@YAXXZ	; Timing_Setup

; 487  : 
; 488  :     // set up Deinterlace Info struct
; 489  :     memset(&Info, 0, sizeof(Info));

  000fa	68 88 00 00 00	 push	 136			; 00000088H
  000ff	6a 00		 push	 0
  00101	8d 95 10 ff ff
	ff		 lea	 edx, DWORD PTR _Info$[ebp]
  00107	52		 push	 edx
  00108	e8 00 00 00 00	 call	 _memset
  0010d	83 c4 0c	 add	 esp, 12			; 0000000cH

; 490  :     Info.Version = DEINTERLACE_INFO_CURRENT_VERSION;

  00110	c7 85 10 ff ff
	ff 90 01 00 00	 mov	 DWORD PTR _Info$[ebp], 400 ; 00000190H

; 491  :     Info.CpuFeatureFlags = CpuFeatureFlags;

  0011a	a1 00 00 00 00	 mov	 eax, DWORD PTR ?CpuFeatureFlags@@3IA ; CpuFeatureFlags
  0011f	89 85 74 ff ff
	ff		 mov	 DWORD PTR _Info$[ebp+100], eax

; 492  :     Info.OverlayPitch = 0;

  00125	c7 85 54 ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _Info$[ebp+68], 0

; 493  :     if(CpuFeatureFlags & FEATURE_SSE)

  0012f	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?CpuFeatureFlags@@3IA ; CpuFeatureFlags
  00135	81 e1 00 20 00
	00		 and	 ecx, 8192		; 00002000H
  0013b	74 0c		 je	 SHORT $LN112@YUVOutThre

; 494  :     {
; 495  :         Info.pMemcpy = memcpySSE;

  0013d	c7 85 70 ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _Info$[ebp+96], OFFSET _memcpySSE

; 496  :     }
; 497  :     else

  00147	eb 0a		 jmp	 SHORT $LN111@YUVOutThre
$LN112@YUVOutThre:

; 498  :     {
; 499  :         Info.pMemcpy = memcpyMMX;

  00149	c7 85 70 ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _Info$[ebp+96], OFFSET _memcpyMMX
$LN111@YUVOutThre:

; 500  :     }
; 501  : 
; 502  :     ResetDeinterlaceStats();

  00153	e8 00 00 00 00	 call	 ?ResetDeinterlaceStats@@YAXXZ ; ResetDeinterlaceStats

; 503  :     ResetARStats();

  00158	e8 00 00 00 00	 call	 ?ResetARStats@@YAXXZ	; ResetARStats

; 504  : 
; 505  :     // catch anything fatal in this loop so we don't crash the machine
; 506  :     try
; 507  :     {

  0015d	c6 45 fc 03	 mov	 BYTE PTR __$EHRec$[ebp+12], 3
  00161	9b		 fwait

; 508  :         bUseExtraBuffer = Filter_WillWeDoOutput()
; 509  :                        || (pMultiFrames && pMultiFrames->IsActive())
; 510  :                        || (TimeShiftIsRunning() && !TimeShiftWorkOnInputFrames());

  00162	e8 00 00 00 00	 call	 ?Filter_WillWeDoOutput@@YAHXZ ; Filter_WillWeDoOutput
  00167	85 c0		 test	 eax, eax
  00169	75 36		 jne	 SHORT $LN116@YUVOutThre
  0016b	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?pMultiFrames@@3PAVCMultiFrames@@A, 0 ; pMultiFrames
  00172	74 0f		 je	 SHORT $LN115@YUVOutThre
  00174	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?pMultiFrames@@3PAVCMultiFrames@@A ; pMultiFrames
  0017a	e8 00 00 00 00	 call	 ?IsActive@CMultiFrames@@QAEHXZ ; CMultiFrames::IsActive
  0017f	85 c0		 test	 eax, eax
  00181	75 1e		 jne	 SHORT $LN116@YUVOutThre
$LN115@YUVOutThre:
  00183	e8 00 00 00 00	 call	 ?TimeShiftIsRunning@@YAHXZ ; TimeShiftIsRunning
  00188	85 c0		 test	 eax, eax
  0018a	74 09		 je	 SHORT $LN117@YUVOutThre
  0018c	e8 00 00 00 00	 call	 ?TimeShiftWorkOnInputFrames@@YAHXZ ; TimeShiftWorkOnInputFrames
  00191	85 c0		 test	 eax, eax
  00193	74 0c		 je	 SHORT $LN116@YUVOutThre
$LN117@YUVOutThre:
  00195	c7 85 b0 fc ff
	ff 00 00 00 00	 mov	 DWORD PTR tv130[ebp], 0
  0019f	eb 0a		 jmp	 SHORT $LN118@YUVOutThre
$LN116@YUVOutThre:
  001a1	c7 85 b0 fc ff
	ff 01 00 00 00	 mov	 DWORD PTR tv130[ebp], 1
$LN118@YUVOutThre:
  001ab	8b 95 b0 fc ff
	ff		 mov	 edx, DWORD PTR tv130[ebp]
  001b1	89 95 dc fe ff
	ff		 mov	 DWORD PTR _bUseExtraBuffer$[ebp], edx

; 511  : 
; 512  : 
; 513  :         // Anti-plop and update screen delay timers may have been cancelled.
; 514  :         // Reset to default values
; 515  :         bNoScreenUpdateDuringTuning = FALSE;

  001b7	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?bNoScreenUpdateDuringTuning@@3HA, 0 ; bNoScreenUpdateDuringTuning

; 516  : 
; 517  :         // Sets processor Affinity and Thread priority according to menu selection
; 518  :         SetOutputThreadProcessor();

  001c1	e8 00 00 00 00	 call	 ?SetOutputThreadProcessor@@YAXXZ ; SetOutputThreadProcessor

; 519  :         SetOutputThreadPriority();

  001c6	e8 00 00 00 00	 call	 ?SetOutputThreadPriority@@YAXXZ ; SetOutputThreadPriority

; 520  : 
; 521  :         PrevDeintMethod = GetCurrentDeintMethod();

  001cb	e8 00 00 00 00	 call	 ?GetCurrentDeintMethod@@YAPAU_DEINTERLACE_METHOD@@XZ ; GetCurrentDeintMethod
  001d0	89 45 d4	 mov	 DWORD PTR _PrevDeintMethod$[ebp], eax

; 522  : 
; 523  :         // reset the static variables in the detection code
; 524  :         if (bIsPAL)

  001d3	83 bd 0c ff ff
	ff 00		 cmp	 DWORD PTR _bIsPAL$[ebp], 0
  001da	74 16		 je	 SHORT $LN109@YUVOutThre

; 525  :         {
; 526  :             UpdatePALPulldownMode(NULL);

  001dc	6a 00		 push	 0
  001de	e8 00 00 00 00	 call	 ?UpdatePALPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z ; UpdatePALPulldownMode
  001e3	83 c4 04	 add	 esp, 4

; 527  :             UpdateProgPulldownModePAL(NULL);

  001e6	6a 00		 push	 0
  001e8	e8 00 00 00 00	 call	 ?UpdateProgPulldownModePAL@@YAXPAUTDeinterlaceInfo@@@Z ; UpdateProgPulldownModePAL
  001ed	83 c4 04	 add	 esp, 4

; 528  :         }
; 529  :         else

  001f0	eb 14		 jmp	 SHORT $LN108@YUVOutThre
$LN109@YUVOutThre:

; 530  :         {
; 531  :             UpdateNTSCPulldownMode(NULL);

  001f2	6a 00		 push	 0
  001f4	e8 00 00 00 00	 call	 ?UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z ; UpdateNTSCPulldownMode
  001f9	83 c4 04	 add	 esp, 4

; 532  :             UpdateProgPulldownModeNTSC(NULL);

  001fc	6a 00		 push	 0
  001fe	e8 00 00 00 00	 call	 ?UpdateProgPulldownModeNTSC@@YAXPAUTDeinterlaceInfo@@@Z ; UpdateProgPulldownModeNTSC
  00203	83 c4 04	 add	 esp, 4
$LN108@YUVOutThre:

; 533  :         }
; 534  : 
; 535  :         do
; 536  :         {
; 537  : 			if (bCheckSignalPresent)

  00206	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?bCheckSignalPresent@@3HA, 0 ; bCheckSignalPresent
  0020d	0f 84 81 00 00
	00		 je	 $LN104@YUVOutThre

; 538  :             {
; 539  :                 // Check every second if there is signal present
; 540  :                 // If there is a signal, ask the main thread to restore the main window
; 541  :                 Sleep(1000);

  00213	68 e8 03 00 00	 push	 1000			; 000003e8H
  00218	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__Sleep@4

; 542  :                 if (!Providers_GetCurrentSource()->IsVideoPresent())

  0021e	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  00223	89 85 ac fc ff
	ff		 mov	 DWORD PTR tv141[ebp], eax
  00229	8b 85 ac fc ff
	ff		 mov	 eax, DWORD PTR tv141[ebp]
  0022f	8b 10		 mov	 edx, DWORD PTR [eax]
  00231	8b 8d ac fc ff
	ff		 mov	 ecx, DWORD PTR tv141[ebp]
  00237	8b 82 94 00 00
	00		 mov	 eax, DWORD PTR [edx+148]
  0023d	ff d0		 call	 eax
  0023f	85 c0		 test	 eax, eax
  00241	75 05		 jne	 SHORT $LN103@YUVOutThre

; 543  :                 {
; 544  :                     continue;

  00243	e9 3b 12 00 00	 jmp	 $LN106@YUVOutThre
$LN103@YUVOutThre:

; 545  :                 }
; 546  :                 //wake up PC screen
; 547  :                 keybd_event(VK_F15, 0, 0, 0);

  00248	6a 00		 push	 0
  0024a	6a 00		 push	 0
  0024c	6a 00		 push	 0
  0024e	6a 7e		 push	 126			; 0000007eH
  00250	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__keybd_event@16

; 548  : 								Sleep(500);

  00256	68 f4 01 00 00	 push	 500			; 000001f4H
  0025b	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__Sleep@4

; 549  : 								keybd_event(VK_F15, 0, KEYEVENTF_KEYUP, 0);

  00261	6a 00		 push	 0
  00263	6a 02		 push	 2
  00265	6a 00		 push	 0
  00267	6a 7e		 push	 126			; 0000007eH
  00269	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__keybd_event@16

; 550  :                 PostMessageToMainWindow(UWM_SWITCH_WINDOW,0,0);

  0026f	6a 00		 push	 0
  00271	6a 00		 push	 0
  00273	68 07 90 00 00	 push	 36871			; 00009007H
  00278	e8 00 00 00 00	 call	 ?PostMessageToMainWindow@@YAXIIJ@Z ; PostMessageToMainWindow
  0027d	83 c4 0c	 add	 esp, 12			; 0000000cH

; 551  :                 bCheckSignalPresent = FALSE;

  00280	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?bCheckSignalPresent@@3HA, 0 ; bCheckSignalPresent

; 552  :                 //unmute audio
; 553  :                 Audio_Unmute();

  0028a	6a 00		 push	 0
  0028c	e8 00 00 00 00	 call	 ?Audio_Unmute@@YAXK@Z	; Audio_Unmute
  00291	83 c4 04	 add	 esp, 4
$LN104@YUVOutThre:

; 554  :             }
; 555  : 
; 556  :             if (bCheckSignalMissing)

  00294	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?bCheckSignalMissing@@3HA, 0 ; bCheckSignalMissing
  0029b	0f 84 84 00 00
	00		 je	 $LN98@YUVOutThre

; 557  :             {
; 558  :                 bIsPresent = Providers_GetCurrentSource()->IsVideoPresent();        

  002a1	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  002a6	89 85 a8 fc ff
	ff		 mov	 DWORD PTR tv162[ebp], eax
  002ac	8b 8d a8 fc ff
	ff		 mov	 ecx, DWORD PTR tv162[ebp]
  002b2	8b 11		 mov	 edx, DWORD PTR [ecx]
  002b4	8b 8d a8 fc ff
	ff		 mov	 ecx, DWORD PTR tv162[ebp]
  002ba	8b 82 94 00 00
	00		 mov	 eax, DWORD PTR [edx+148]
  002c0	ff d0		 call	 eax
  002c2	89 45 bc	 mov	 DWORD PTR _bIsPresent$[ebp], eax

; 559  :                 if (!bIsPresent)

  002c5	83 7d bc 00	 cmp	 DWORD PTR _bIsPresent$[ebp], 0
  002c9	75 43		 jne	 SHORT $LN101@YUVOutThre

; 560  :                 {
; 561  :                 nMissing++;

  002cb	8b 4d d0	 mov	 ecx, DWORD PTR _nMissing$[ebp]
  002ce	83 c1 01	 add	 ecx, 1
  002d1	89 4d d0	 mov	 DWORD PTR _nMissing$[ebp], ecx

; 562  :                 if (nMissing == 12)

  002d4	83 7d d0 0c	 cmp	 DWORD PTR _nMissing$[ebp], 12 ; 0000000cH
  002d8	75 0a		 jne	 SHORT $LN100@YUVOutThre

; 563  : 									{
; 564  : 								//mute audio when video signal lost to eliminate the plop
; 565  :                     	Audio_Mute();

  002da	6a 00		 push	 0
  002dc	e8 00 00 00 00	 call	 ?Audio_Mute@@YAXK@Z	; Audio_Mute
  002e1	83 c4 04	 add	 esp, 4
$LN100@YUVOutThre:

; 566  : 									}
; 567  : 								// Wait 30 consecutive fields before deciding that the signal is missing
; 568  : 								// Then ask the main thread to minimize the main window
; 569  :                     if (nMissing > 30)

  002e4	83 7d d0 1e	 cmp	 DWORD PTR _nMissing$[ebp], 30 ; 0000001eH
  002e8	7e 22		 jle	 SHORT $LN99@YUVOutThre

; 570  :                     {
; 571  :                         PostMessageToMainWindow(UWM_SWITCH_WINDOW,0,0);

  002ea	6a 00		 push	 0
  002ec	6a 00		 push	 0
  002ee	68 07 90 00 00	 push	 36871			; 00009007H
  002f3	e8 00 00 00 00	 call	 ?PostMessageToMainWindow@@YAXIIJ@Z ; PostMessageToMainWindow
  002f8	83 c4 0c	 add	 esp, 12			; 0000000cH

; 572  :                         bCheckSignalMissing = FALSE;

  002fb	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?bCheckSignalMissing@@3HA, 0 ; bCheckSignalMissing

; 573  :                         nMissing = 0;

  00305	c7 45 d0 00 00
	00 00		 mov	 DWORD PTR _nMissing$[ebp], 0
$LN99@YUVOutThre:

; 574  :                     }
; 575  :                 }
; 576  :                 else

  0030c	eb 17		 jmp	 SHORT $LN98@YUVOutThre
$LN101@YUVOutThre:

; 577  :                 {
; 578  : 					if (nMissing > 12)

  0030e	83 7d d0 0c	 cmp	 DWORD PTR _nMissing$[ebp], 12 ; 0000000cH
  00312	7e 0a		 jle	 SHORT $LN97@YUVOutThre

; 579  : 					{
; 580  : 						Audio_Unmute();

  00314	6a 00		 push	 0
  00316	e8 00 00 00 00	 call	 ?Audio_Unmute@@YAXK@Z	; Audio_Unmute
  0031b	83 c4 04	 add	 esp, 4
$LN97@YUVOutThre:

; 581  : 					}
; 582  :                     nMissing = 0;

  0031e	c7 45 d0 00 00
	00 00		 mov	 DWORD PTR _nMissing$[ebp], 0
$LN98@YUVOutThre:

; 583  :                 }
; 584  :             }
; 585  : 
; 586  : #ifdef USE_PERFORMANCE_STATS
; 587  :             pPerf->StartCount(PERF_WAIT_FIELD);
; 588  : #endif
; 589  : 
; 590  :             // update with any changes
; 591  :             CurrentMethod = GetCurrentDeintMethod();

  00325	e8 00 00 00 00	 call	 ?GetCurrentDeintMethod@@YAPAU_DEINTERLACE_METHOD@@XZ ; GetCurrentDeintMethod
  0032a	89 45 b8	 mov	 DWORD PTR _CurrentMethod$[ebp], eax

; 592  :             Info.bDoAccurateFlips = DoAccurateFlips;

  0032d	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?DoAccurateFlips@@3HA ; DoAccurateFlips
  00333	89 55 80	 mov	 DWORD PTR _Info$[ebp+112], edx

; 593  :             Info.bRunningLate = bHurryWhenLate;

  00336	a1 00 00 00 00	 mov	 eax, DWORD PTR ?bHurryWhenLate@@3HA ; bHurryWhenLate
  0033b	89 85 78 ff ff
	ff		 mov	 DWORD PTR _Info$[ebp+104], eax

; 594  :             Info.bMissedFrame = FALSE;

  00341	c7 85 7c ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _Info$[ebp+108], 0

; 595  :             //Info.OverlayPitch = OverlayPitch;
; 596  :             Info.CombFactor = -1;

  0034b	c7 85 6c ff ff
	ff ff ff ff ff	 mov	 DWORD PTR _Info$[ebp+92], -1

; 597  :             Info.FieldDiff = -1;

  00355	c7 85 68 ff ff
	ff ff ff ff ff	 mov	 DWORD PTR _Info$[ebp+88], -1

; 598  :             bFlipNow = FALSE;

  0035f	c7 45 e0 00 00
	00 00		 mov	 DWORD PTR _bFlipNow$[ebp], 0

; 599  :             bTakeStill = FALSE;

  00366	c7 45 e8 00 00
	00 00		 mov	 DWORD PTR _bTakeStill$[ebp], 0

; 600  :             Request.type = REQ_NONE;

  0036d	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?Request@@3UTGUIRequest@@A, 0

; 601  :             pAllocBuf = NULL;

  00377	c7 45 d8 00 00
	00 00		 mov	 DWORD PTR _pAllocBuf$[ebp], 0

; 602  :             bUseOverlay = TRUE;

  0037e	c7 45 c4 01 00
	00 00		 mov	 DWORD PTR _bUseOverlay$[ebp], 1

; 603  :             GetDestRect(&Info.DestRect);

  00385	8d 4d 84	 lea	 ecx, DWORD PTR _Info$[ebp+116]
  00388	51		 push	 ecx
  00389	e8 00 00 00 00	 call	 ?GetDestRect@@YAXPAUtagRECT@@@Z ; GetDestRect
  0038e	83 c4 04	 add	 esp, 4

; 604  : 
; 605  :             if (pMultiFrames && pMultiFrames->IsActive())

  00391	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?pMultiFrames@@3PAVCMultiFrames@@A, 0 ; pMultiFrames
  00398	74 1a		 je	 SHORT $LN96@YUVOutThre
  0039a	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?pMultiFrames@@3PAVCMultiFrames@@A ; pMultiFrames
  003a0	e8 00 00 00 00	 call	 ?IsActive@CMultiFrames@@QAEHXZ ; CMultiFrames::IsActive
  003a5	85 c0		 test	 eax, eax
  003a7	74 0b		 je	 SHORT $LN96@YUVOutThre

; 606  :             {
; 607  :                 pMultiFrames->SelectFrame();

  003a9	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?pMultiFrames@@3PAVCMultiFrames@@A ; pMultiFrames
  003af	e8 00 00 00 00	 call	 ?SelectFrame@CMultiFrames@@QAEXXZ ; CMultiFrames::SelectFrame
$LN96@YUVOutThre:

; 608  :             }
; 609  : 
; 610  :             // Go and get the next input field
; 611  :             // JudderTerminator
; 612  :             // We pass down a flag telling the function if we are
; 613  :             // requesting accurate timings of the incoming fields
; 614  :             // This will use up CPU but will
; 615  :             // allow us to flip at the right times
; 616  :             // collect the timings even if we are in video
; 617  :             // mode and bJudderTerminatorOnVideo if off
; 618  :             // to build up more accurate timings ready for
; 619  :             // when film is detected.
; 620  :             // don't do accurate timings if we are minimized as we want to reduce CPU
; 621  :             // consumption
; 622  :             pSource->GetNextField(&Info, Info.bDoAccurateFlips && !bMinimized);

  003b4	83 7d 80 00	 cmp	 DWORD PTR _Info$[ebp+112], 0
  003b8	74 15		 je	 SHORT $LN119@YUVOutThre
  003ba	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?bMinimized@@3HA, 0 ; bMinimized
  003c1	75 0c		 jne	 SHORT $LN119@YUVOutThre
  003c3	c7 85 a4 fc ff
	ff 01 00 00 00	 mov	 DWORD PTR tv188[ebp], 1
  003cd	eb 0a		 jmp	 SHORT $LN120@YUVOutThre
$LN119@YUVOutThre:
  003cf	c7 85 a4 fc ff
	ff 00 00 00 00	 mov	 DWORD PTR tv188[ebp], 0
$LN120@YUVOutThre:
  003d9	8b 95 a4 fc ff
	ff		 mov	 edx, DWORD PTR tv188[ebp]
  003df	52		 push	 edx
  003e0	8d 85 10 ff ff
	ff		 lea	 eax, DWORD PTR _Info$[ebp]
  003e6	50		 push	 eax
  003e7	8b 4d cc	 mov	 ecx, DWORD PTR _pSource$[ebp]
  003ea	8b 11		 mov	 edx, DWORD PTR [ecx]
  003ec	8b 4d cc	 mov	 ecx, DWORD PTR _pSource$[ebp]
  003ef	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  003f2	ff d0		 call	 eax

; 623  : 
; 624  : 			if((OldFrameWidth!=Info.FrameWidth)||(OldFrameHeight!=Info.FrameHeight))

  003f4	8b 4d dc	 mov	 ecx, DWORD PTR _OldFrameWidth$[ebp]
  003f7	3b 8d 5c ff ff
	ff		 cmp	 ecx, DWORD PTR _Info$[ebp+76]
  003fd	75 0b		 jne	 SHORT $LN94@YUVOutThre
  003ff	8b 55 c8	 mov	 edx, DWORD PTR _OldFrameHeight$[ebp]
  00402	3b 95 60 ff ff
	ff		 cmp	 edx, DWORD PTR _Info$[ebp+80]
  00408	74 55		 je	 SHORT $LN95@YUVOutThre
$LN94@YUVOutThre:

; 625  : 			{
; 626  : 				char sBuffer[64];
; 627  : 				OldFrameWidth = Info.FrameWidth;

  0040a	8b 85 5c ff ff
	ff		 mov	 eax, DWORD PTR _Info$[ebp+76]
  00410	89 45 dc	 mov	 DWORD PTR _OldFrameWidth$[ebp], eax

; 628  : 				OldFrameHeight = Info.FrameHeight;

  00413	8b 8d 60 ff ff
	ff		 mov	 ecx, DWORD PTR _Info$[ebp+80]
  00419	89 4d c8	 mov	 DWORD PTR _OldFrameHeight$[ebp], ecx

; 629  : 				sprintf(sBuffer,"%dx%d", OldFrameWidth, OldFrameHeight);

  0041c	8b 55 c8	 mov	 edx, DWORD PTR _OldFrameHeight$[ebp]
  0041f	52		 push	 edx
  00420	8b 45 dc	 mov	 eax, DWORD PTR _OldFrameWidth$[ebp]
  00423	50		 push	 eax
  00424	68 00 00 00 00	 push	 OFFSET ??_C@_05OEHCLJIP@?$CFdx?$CFd?$AA@
  00429	8d 8d 98 fe ff
	ff		 lea	 ecx, DWORD PTR _sBuffer$150763[ebp]
  0042f	51		 push	 ecx
  00430	e8 00 00 00 00	 call	 _sprintf
  00435	83 c4 10	 add	 esp, 16			; 00000010H

; 630  : 				message.assign(sBuffer);

  00438	8d 95 98 fe ff
	ff		 lea	 edx, DWORD PTR _sBuffer$150763[ebp]
  0043e	52		 push	 edx
  0043f	8d 4d 98	 lea	 ecx, DWORD PTR _message$[ebp]
  00442	e8 00 00 00 00	 call	 ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign

; 631  : 				PostMessageToMainWindow(UWM_SET_STATUS_SOURCERES, 0, (LPARAM) message.c_str());

  00447	8d 4d 98	 lea	 ecx, DWORD PTR _message$[ebp]
  0044a	e8 00 00 00 00	 call	 ?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::c_str
  0044f	50		 push	 eax
  00450	6a 00		 push	 0
  00452	68 05 90 00 00	 push	 36869			; 00009005H
  00457	e8 00 00 00 00	 call	 ?PostMessageToMainWindow@@YAXIIJ@Z ; PostMessageToMainWindow
  0045c	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN95@YUVOutThre:

; 632  : 			}
; 633  : 
; 634  : #ifdef USE_PERFORMANCE_STATS
; 635  :             pPerf->StopCount(PERF_WAIT_FIELD);
; 636  : #endif
; 637  : 
; 638  :             if (Info.bMissedFrame || Info.bRunningLate)

  0045f	83 bd 7c ff ff
	ff 00		 cmp	 DWORD PTR _Info$[ebp+108], 0
  00466	75 09		 jne	 SHORT $LN92@YUVOutThre
  00468	83 bd 78 ff ff
	ff 00		 cmp	 DWORD PTR _Info$[ebp+104], 0
  0046f	74 1d		 je	 SHORT $LN93@YUVOutThre
$LN92@YUVOutThre:

; 639  :             {
; 640  :                 LOG(2, _T("    Info.bMissedFrame %d - Info.bRunningLate %d"), Info.bMissedFrame, Info.bRunningLate);

  00471	8b 85 78 ff ff
	ff		 mov	 eax, DWORD PTR _Info$[ebp+104]
  00477	50		 push	 eax
  00478	8b 8d 7c ff ff
	ff		 mov	 ecx, DWORD PTR _Info$[ebp+108]
  0047e	51		 push	 ecx
  0047f	68 00 00 00 00	 push	 OFFSET ??_C@_1GA@LBMEHPBJ@?$AA?5?$AA?5?$AA?5?$AA?5?$AAI?$AAn?$AAf?$AAo?$AA?4?$AAb?$AAM?$AAi?$AAs?$AAs?$AAe?$AAd?$AAF?$AAr?$AAa?$AAm?$AAe?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?9?$AA?5?$AAI?$AAn?$AAf?$AAo?$AA?4@
  00484	6a 02		 push	 2
  00486	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  0048b	83 c4 10	 add	 esp, 16			; 00000010H
$LN93@YUVOutThre:

; 641  : #ifdef USE_PERFORMANCE_STATS
; 642  :                 for (int i = 0 ; i < PERF_TYPE_LASTONE ; ++i)
; 643  :                 {
; 644  :                     if (pPerf->IsValid((ePerfType)i) && (pPerf->GetDurationLastCycle((ePerfType)i) != -1))
; 645  :                     {
; 646  :                         LOG(2, _T("    %s : %d (avg %d)"),
; 647  :                             pPerf->GetName((ePerfType)i),
; 648  :                             pPerf->GetDurationLastCycle((ePerfType)i) * 10,
; 649  :                             pPerf->GetAverageDuration((ePerfType)i));
; 650  :                     }
; 651  :                 }
; 652  : #endif
; 653  :             }
; 654  : 
; 655  :             pPerf->InitCycle();

  0048e	b9 00 00 00 00	 mov	 ecx, OFFSET ?pPerf@@3V?$SmartPtr@VCPerf@@@@A ; pPerf
  00493	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCPerf@@@@QBEPAVCPerf@@XZ ; SmartPtr<CPerf>::operator->
  00498	8b c8		 mov	 ecx, eax
  0049a	e8 00 00 00 00	 call	 ?InitCycle@CPerf@@QAEXXZ ; CPerf::InitCycle

; 656  : 
; 657  :             if (Request.type == REQ_STILL)

  0049f	83 3d 00 00 00
	00 01		 cmp	 DWORD PTR ?Request@@3UTGUIRequest@@A, 1
  004a6	0f 85 75 01 00
	00		 jne	 $LN88@YUVOutThre

; 658  :             {
; 659  :                 bTakeStill = TRUE;

  004ac	c7 45 e8 01 00
	00 00		 mov	 DWORD PTR _bTakeStill$[ebp], 1

; 660  : 
; 661  :                 // When taking a still, we always work with system memory for performance reasons
; 662  : 
; 663  :                 // Memory already allocated to store snapshots
; 664  :                 int MemUsed = ((CStillSource*)Providers_GetSnapshotsSource())->CountMemoryUsage();

  004b3	e8 00 00 00 00	 call	 ?Providers_GetSnapshotsSource@@YAPAVCSource@@XZ ; Providers_GetSnapshotsSource
  004b8	8b c8		 mov	 ecx, eax
  004ba	e8 00 00 00 00	 call	 ?CountMemoryUsage@CStillSource@@QAEHXZ ; CStillSource::CountMemoryUsage
  004bf	89 85 94 fe ff
	ff		 mov	 DWORD PTR _MemUsed$150770[ebp], eax

; 665  : 
; 666  :                 // If we are taking a still in memory, we need to allocate
; 667  :                 // a memory buffer and use this buffer as output
; 668  :                 // That means too that the overlay will not be updated
; 669  :                 bUseOverlay = FALSE;

  004c5	c7 45 c4 00 00
	00 00		 mov	 DWORD PTR _bUseOverlay$[ebp], 0

; 670  :                 Info.OverlayPitch = (Info.FrameWidth * 2 * sizeof(BYTE) + 15) & 0xfffffff0;

  004cc	8b 95 5c ff ff
	ff		 mov	 edx, DWORD PTR _Info$[ebp+76]
  004d2	8d 44 12 0f	 lea	 eax, DWORD PTR [edx+edx+15]
  004d6	83 e0 f0	 and	 eax, -16		; fffffff0H
  004d9	89 85 54 ff ff
	ff		 mov	 DWORD PTR _Info$[ebp+68], eax

; 671  : 
; 672  :                 // Add the memory needed for the new snapshot
; 673  :                 MemUsed += Info.OverlayPitch * Info.FrameHeight;

  004df	8b 8d 54 ff ff
	ff		 mov	 ecx, DWORD PTR _Info$[ebp+68]
  004e5	0f af 8d 60 ff
	ff ff		 imul	 ecx, DWORD PTR _Info$[ebp+80]
  004ec	03 8d 94 fe ff
	ff		 add	 ecx, DWORD PTR _MemUsed$150770[ebp]
  004f2	89 8d 94 fe ff
	ff		 mov	 DWORD PTR _MemUsed$150770[ebp], ecx

; 674  :                 LOG(2, _T("MemUsed %d Mo"), MemUsed / 1048576);

  004f8	8b 85 94 fe ff
	ff		 mov	 eax, DWORD PTR _MemUsed$150770[ebp]
  004fe	99		 cdq
  004ff	81 e2 ff ff 0f
	00		 and	 edx, 1048575		; 000fffffH
  00505	03 c2		 add	 eax, edx
  00507	c1 f8 14	 sar	 eax, 20			; 00000014H
  0050a	50		 push	 eax
  0050b	68 00 00 00 00	 push	 OFFSET ??_C@_1BM@GGIKAGIN@?$AAM?$AAe?$AAm?$AAU?$AAs?$AAe?$AAd?$AA?5?$AA?$CF?$AAd?$AA?5?$AAM?$AAo?$AA?$AA@
  00510	6a 02		 push	 2
  00512	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00517	83 c4 0c	 add	 esp, 12			; 0000000cH

; 675  : 
; 676  :                 // Check that the max is not reached
; 677  :                 if ((MemUsed / 1048576) >= Setting_GetValue(WM_STILL_GETVALUE, MAXMEMFORSTILLS))

  0051a	8b 85 94 fe ff
	ff		 mov	 eax, DWORD PTR _MemUsed$150770[ebp]
  00520	99		 cdq
  00521	81 e2 ff ff 0f
	00		 and	 edx, 1048575		; 000fffffH
  00527	03 c2		 add	 eax, edx
  00529	8b f0		 mov	 esi, eax
  0052b	c1 fe 14	 sar	 esi, 20			; 00000014H
  0052e	6a 0d		 push	 13			; 0000000dH
  00530	68 29 80 00 00	 push	 32809			; 00008029H
  00535	e8 00 00 00 00	 call	 ?Setting_GetValue@@YAJJJ@Z ; Setting_GetValue
  0053a	83 c4 08	 add	 esp, 8
  0053d	3b f0		 cmp	 esi, eax
  0053f	7c 72		 jl	 SHORT $LN90@YUVOutThre

; 678  :                 {
; 679  :                     TCHAR text[128];
; 680  :                     pAllocBuf = NULL;

  00541	c7 45 d8 00 00
	00 00		 mov	 DWORD PTR _pAllocBuf$[ebp], 0

; 681  :                     _sntprintf(text, 128, _T("Max memory (%d Mo) reached\nChange the maximum value or\nclose some open stills"), Setting_GetValue(WM_STILL_GETVALUE, MAXMEMFORSTILLS));

  00548	6a 0d		 push	 13			; 0000000dH
  0054a	68 29 80 00 00	 push	 32809			; 00008029H
  0054f	e8 00 00 00 00	 call	 ?Setting_GetValue@@YAJJJ@Z ; Setting_GetValue
  00554	83 c4 08	 add	 esp, 8
  00557	50		 push	 eax
  00558	68 00 00 00 00	 push	 OFFSET ??_C@_1JM@GPLLGOKD@?$AAM?$AAa?$AAx?$AA?5?$AAm?$AAe?$AAm?$AAo?$AAr?$AAy?$AA?5?$AA?$CI?$AA?$CF?$AAd?$AA?5?$AAM?$AAo?$AA?$CJ?$AA?5?$AAr?$AAe?$AAa?$AAc?$AAh?$AAe?$AAd?$AA?6?$AAC?$AAh?$AAa?$AAn?$AAg@
  0055d	68 80 00 00 00	 push	 128			; 00000080H
  00562	8d 95 90 fd ff
	ff		 lea	 edx, DWORD PTR _text$150775[ebp]
  00568	52		 push	 edx
  00569	e8 00 00 00 00	 call	 __snwprintf
  0056e	83 c4 10	 add	 esp, 16			; 00000010H

; 682  :                     OSD_ShowText(text, 0);

  00571	8d 85 90 fd ff
	ff		 lea	 eax, DWORD PTR _text$150775[ebp]
  00577	50		 push	 eax
  00578	8d 8d 48 fd ff
	ff		 lea	 ecx, DWORD PTR $T360787[ebp]
  0057e	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> >
  00583	c6 45 fc 04	 mov	 BYTE PTR __$EHRec$[ebp+12], 4
  00587	6a 00		 push	 0
  00589	6a 00		 push	 0
  0058b	83 ec 08	 sub	 esp, 8
  0058e	d9 ee		 fldz
  00590	dd 1c 24	 fstp	 QWORD PTR [esp]
  00593	8d 8d 48 fd ff
	ff		 lea	 ecx, DWORD PTR $T360787[ebp]
  00599	51		 push	 ecx
  0059a	e8 00 00 00 00	 call	 ?OSD_ShowText@@YAXABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@NHH@Z ; OSD_ShowText
  0059f	83 c4 14	 add	 esp, 20			; 00000014H
  005a2	c6 45 fc 03	 mov	 BYTE PTR __$EHRec$[ebp+12], 3
  005a6	8d 8d 48 fd ff
	ff		 lea	 ecx, DWORD PTR $T360787[ebp]
  005ac	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> >

; 683  :                 }
; 684  :                 else

  005b1	eb 36		 jmp	 SHORT $LN89@YUVOutThre
$LN90@YUVOutThre:

; 685  :                 {
; 686  :                     pAllocBuf = (BYTE*)malloc(Info.OverlayPitch * Info.FrameHeight + 16);

  005b3	8b 95 54 ff ff
	ff		 mov	 edx, DWORD PTR _Info$[ebp+68]
  005b9	0f af 95 60 ff
	ff ff		 imul	 edx, DWORD PTR _Info$[ebp+80]
  005c0	83 c2 10	 add	 edx, 16			; 00000010H
  005c3	52		 push	 edx
  005c4	e8 00 00 00 00	 call	 _malloc
  005c9	83 c4 04	 add	 esp, 4
  005cc	89 45 d8	 mov	 DWORD PTR _pAllocBuf$[ebp], eax

; 687  :                     Info.Overlay = START_ALIGNED16(pAllocBuf);

  005cf	8b 4d d8	 mov	 ecx, DWORD PTR _pAllocBuf$[ebp]
  005d2	83 c1 10	 add	 ecx, 16			; 00000010H
  005d5	8b 45 d8	 mov	 eax, DWORD PTR _pAllocBuf$[ebp]
  005d8	33 d2		 xor	 edx, edx
  005da	be 10 00 00 00	 mov	 esi, 16			; 00000010H
  005df	f7 f6		 div	 esi
  005e1	2b ca		 sub	 ecx, edx
  005e3	89 8d 3c ff ff
	ff		 mov	 DWORD PTR _Info$[ebp+44], ecx
$LN89@YUVOutThre:

; 688  :                 }
; 689  :                 LOG(2, _T("Alloc for still - start buf %d, start frame %d"), pAllocBuf, Info.Overlay);

  005e9	8b 95 3c ff ff
	ff		 mov	 edx, DWORD PTR _Info$[ebp+44]
  005ef	52		 push	 edx
  005f0	8b 45 d8	 mov	 eax, DWORD PTR _pAllocBuf$[ebp]
  005f3	50		 push	 eax
  005f4	68 00 00 00 00	 push	 OFFSET ??_C@_1FO@EDKJFPJC@?$AAA?$AAl?$AAl?$AAo?$AAc?$AA?5?$AAf?$AAo?$AAr?$AA?5?$AAs?$AAt?$AAi?$AAl?$AAl?$AA?5?$AA?9?$AA?5?$AAs?$AAt?$AAa?$AAr?$AAt?$AA?5?$AAb?$AAu?$AAf?$AA?5?$AA?$CF?$AAd?$AA?0?$AA?5@
  005f9	6a 02		 push	 2
  005fb	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00600	83 c4 10	 add	 esp, 16			; 00000010H

; 690  :                 if (pAllocBuf == NULL)

  00603	83 7d d8 00	 cmp	 DWORD PTR _pAllocBuf$[ebp], 0
  00607	75 18		 jne	 SHORT $LN88@YUVOutThre

; 691  :                 {
; 692  :                     Request.type = REQ_NONE;

  00609	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?Request@@3UTGUIRequest@@A, 0

; 693  :                     bTakeStill = FALSE;

  00613	c7 45 e8 00 00
	00 00		 mov	 DWORD PTR _bTakeStill$[ebp], 0

; 694  :                     bUseOverlay = TRUE;

  0061a	c7 45 c4 01 00
	00 00		 mov	 DWORD PTR _bUseOverlay$[ebp], 1
$LN88@YUVOutThre:

; 695  :                 }
; 696  : 
; 697  :                 // After that line, we must use variable bTakeStill instead of Request
; 698  :                 // because Request could be set by the GUI thread at the same time,
; 699  :                 // and we must be certain that memory allocation has been done
; 700  :             }
; 701  : 
; 702  :             if(bIsPaused == FALSE)

  00621	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?bIsPaused@@3HA, 0 ; bIsPaused
  00628	0f 85 0f 0b 00
	00		 jne	 $LN87@YUVOutThre

; 703  :             {
; 704  :                 if(Info.PictureHistory[0] == NULL)

  0062e	83 bd 14 ff ff
	ff 00		 cmp	 DWORD PTR _Info$[ebp+4], 0
  00635	75 0d		 jne	 SHORT $LN86@YUVOutThre

; 705  :                 {
; 706  :                     Sleep(50);

  00637	6a 32		 push	 50			; 00000032H
  00639	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__Sleep@4

; 707  :                     continue;

  0063f	e9 3f 0e 00 00	 jmp	 $LN106@YUVOutThre
$LN86@YUVOutThre:

; 708  :                 }
; 709  :                 // calculate History: How many consecutive non-null PictureHistory[]s do we have?
; 710  :                 for( nHistory = 1; (nHistory < MAX_PICTURE_HISTORY) && (Info.PictureHistory[nHistory] != NULL); ++nHistory )

  00644	c7 45 c0 01 00
	00 00		 mov	 DWORD PTR _nHistory$[ebp], 1
  0064b	eb 09		 jmp	 SHORT $LN85@YUVOutThre
$LN84@YUVOutThre:
  0064d	8b 4d c0	 mov	 ecx, DWORD PTR _nHistory$[ebp]
  00650	83 c1 01	 add	 ecx, 1
  00653	89 4d c0	 mov	 DWORD PTR _nHistory$[ebp], ecx
$LN85@YUVOutThre:
  00656	83 7d c0 0a	 cmp	 DWORD PTR _nHistory$[ebp], 10 ; 0000000aH
  0065a	7d 0f		 jge	 SHORT $LN83@YUVOutThre
  0065c	8b 55 c0	 mov	 edx, DWORD PTR _nHistory$[ebp]
  0065f	83 bc 95 14 ff
	ff ff 00	 cmp	 DWORD PTR _Info$[ebp+edx*4+4], 0
  00667	74 02		 je	 SHORT $LN83@YUVOutThre

; 711  :                 {
; 712  :                     ; // Do nothing
; 713  :                 }

  00669	eb e2		 jmp	 SHORT $LN84@YUVOutThre
$LN83@YUVOutThre:

; 714  : 
; 715  :                 // Vertical flipping support
; 716  :                 // Here we change all the valid history so that the top line is the bottom one
; 717  :                 // and the pitch is negative
; 718  :                 // Note that we don't _T("own") these pictures but we have them for the time being
; 719  :                 // so make sure that we change them back after we use them
; 720  :                 // so just in case the setting gets changes while we are using it
; 721  :                 // we save the current value
; 722  :                 BOOL bDoVerticalFlipCurrent = bDoVerticalFlipSetting;

  0066b	a1 00 00 00 00	 mov	 eax, DWORD PTR ?bDoVerticalFlipSetting@@3HA ; bDoVerticalFlipSetting
  00670	89 85 88 fd ff
	ff		 mov	 DWORD PTR _bDoVerticalFlipCurrent$150788[ebp], eax

; 723  :                 if (bDoVerticalFlipCurrent)

  00676	83 bd 88 fd ff
	ff 00		 cmp	 DWORD PTR _bDoVerticalFlipCurrent$150788[ebp], 0
  0067d	0f 84 2d 01 00
	00		 je	 $LN82@YUVOutThre

; 724  :                 {
; 725  :                     for(int i(0); i < MAX_PICTURE_HISTORY; ++i)

  00683	c7 85 84 fd ff
	ff 00 00 00 00	 mov	 DWORD PTR _i$150790[ebp], 0
  0068d	eb 0f		 jmp	 SHORT $LN81@YUVOutThre
$LN80@YUVOutThre:
  0068f	8b 8d 84 fd ff
	ff		 mov	 ecx, DWORD PTR _i$150790[ebp]
  00695	83 c1 01	 add	 ecx, 1
  00698	89 8d 84 fd ff
	ff		 mov	 DWORD PTR _i$150790[ebp], ecx
$LN81@YUVOutThre:
  0069e	83 bd 84 fd ff
	ff 0a		 cmp	 DWORD PTR _i$150790[ebp], 10 ; 0000000aH
  006a5	0f 8d fc 00 00
	00		 jge	 $LN79@YUVOutThre

; 726  :                     {
; 727  :                         if(Info.PictureHistory[i] != NULL)

  006ab	8b 95 84 fd ff
	ff		 mov	 edx, DWORD PTR _i$150790[ebp]
  006b1	83 bc 95 14 ff
	ff ff 00	 cmp	 DWORD PTR _Info$[ebp+edx*4+4], 0
  006b9	0f 84 e3 00 00
	00		 je	 $LN75@YUVOutThre

; 728  :                         {
; 729  :                             Info.PictureHistory[i]->pData += (Info.FieldHeight-1) * Info.InputPitch;

  006bf	8b 85 84 fd ff
	ff		 mov	 eax, DWORD PTR _i$150790[ebp]
  006c5	8b 8c 85 14 ff
	ff ff		 mov	 ecx, DWORD PTR _Info$[ebp+eax*4+4]
  006cc	8b 95 64 ff ff
	ff		 mov	 edx, DWORD PTR _Info$[ebp+84]
  006d2	83 ea 01	 sub	 edx, 1
  006d5	0f af 55 94	 imul	 edx, DWORD PTR _Info$[ebp+132]
  006d9	03 11		 add	 edx, DWORD PTR [ecx]
  006db	8b 85 84 fd ff
	ff		 mov	 eax, DWORD PTR _i$150790[ebp]
  006e1	8b 8c 85 14 ff
	ff ff		 mov	 ecx, DWORD PTR _Info$[ebp+eax*4+4]
  006e8	89 11		 mov	 DWORD PTR [ecx], edx

; 730  : 
; 731  :                             // make the odd fields even and the even fields odd.
; 732  :                             if(Info.PictureHistory[i]->Flags & PICTURE_INTERLACED_ODD)

  006ea	8b 95 84 fd ff
	ff		 mov	 edx, DWORD PTR _i$150790[ebp]
  006f0	8b 84 95 14 ff
	ff ff		 mov	 eax, DWORD PTR _Info$[ebp+edx*4+4]
  006f7	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  006fa	83 e1 01	 and	 ecx, 1
  006fd	74 48		 je	 SHORT $LN77@YUVOutThre

; 733  :                             {
; 734  :                                 Info.PictureHistory[i]->Flags &= ~PICTURE_INTERLACED_ODD;

  006ff	8b 95 84 fd ff
	ff		 mov	 edx, DWORD PTR _i$150790[ebp]
  00705	8b 84 95 14 ff
	ff ff		 mov	 eax, DWORD PTR _Info$[ebp+edx*4+4]
  0070c	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  0070f	83 e1 fe	 and	 ecx, -2			; fffffffeH
  00712	8b 95 84 fd ff
	ff		 mov	 edx, DWORD PTR _i$150790[ebp]
  00718	8b 84 95 14 ff
	ff ff		 mov	 eax, DWORD PTR _Info$[ebp+edx*4+4]
  0071f	89 48 04	 mov	 DWORD PTR [eax+4], ecx

; 735  :                                 Info.PictureHistory[i]->Flags |= PICTURE_INTERLACED_EVEN;

  00722	8b 8d 84 fd ff
	ff		 mov	 ecx, DWORD PTR _i$150790[ebp]
  00728	8b 94 8d 14 ff
	ff ff		 mov	 edx, DWORD PTR _Info$[ebp+ecx*4+4]
  0072f	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00732	83 c8 02	 or	 eax, 2
  00735	8b 8d 84 fd ff
	ff		 mov	 ecx, DWORD PTR _i$150790[ebp]
  0073b	8b 94 8d 14 ff
	ff ff		 mov	 edx, DWORD PTR _Info$[ebp+ecx*4+4]
  00742	89 42 04	 mov	 DWORD PTR [edx+4], eax
  00745	eb 5b		 jmp	 SHORT $LN75@YUVOutThre
$LN77@YUVOutThre:

; 736  :                             }
; 737  :                             else if(Info.PictureHistory[i]->Flags & PICTURE_INTERLACED_EVEN)

  00747	8b 85 84 fd ff
	ff		 mov	 eax, DWORD PTR _i$150790[ebp]
  0074d	8b 8c 85 14 ff
	ff ff		 mov	 ecx, DWORD PTR _Info$[ebp+eax*4+4]
  00754	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  00757	83 e2 02	 and	 edx, 2
  0075a	74 46		 je	 SHORT $LN75@YUVOutThre

; 738  :                             {
; 739  :                                 Info.PictureHistory[i]->Flags &= ~PICTURE_INTERLACED_EVEN;

  0075c	8b 85 84 fd ff
	ff		 mov	 eax, DWORD PTR _i$150790[ebp]
  00762	8b 8c 85 14 ff
	ff ff		 mov	 ecx, DWORD PTR _Info$[ebp+eax*4+4]
  00769	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  0076c	83 e2 fd	 and	 edx, -3			; fffffffdH
  0076f	8b 85 84 fd ff
	ff		 mov	 eax, DWORD PTR _i$150790[ebp]
  00775	8b 8c 85 14 ff
	ff ff		 mov	 ecx, DWORD PTR _Info$[ebp+eax*4+4]
  0077c	89 51 04	 mov	 DWORD PTR [ecx+4], edx

; 740  :                                 Info.PictureHistory[i]->Flags |= PICTURE_INTERLACED_ODD;

  0077f	8b 95 84 fd ff
	ff		 mov	 edx, DWORD PTR _i$150790[ebp]
  00785	8b 84 95 14 ff
	ff ff		 mov	 eax, DWORD PTR _Info$[ebp+edx*4+4]
  0078c	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  0078f	83 c9 01	 or	 ecx, 1
  00792	8b 95 84 fd ff
	ff		 mov	 edx, DWORD PTR _i$150790[ebp]
  00798	8b 84 95 14 ff
	ff ff		 mov	 eax, DWORD PTR _Info$[ebp+edx*4+4]
  0079f	89 48 04	 mov	 DWORD PTR [eax+4], ecx
$LN75@YUVOutThre:

; 741  :                             }
; 742  :                         }
; 743  :                     }

  007a2	e9 e8 fe ff ff	 jmp	 $LN80@YUVOutThre
$LN79@YUVOutThre:

; 744  :                     Info.InputPitch *= -1;

  007a7	8b 4d 94	 mov	 ecx, DWORD PTR _Info$[ebp+132]
  007aa	6b c9 ff	 imul	 ecx, -1
  007ad	89 4d 94	 mov	 DWORD PTR _Info$[ebp+132], ecx
$LN82@YUVOutThre:

; 745  :                 }
; 746  : 
; 747  :                 // will be set to TRUE on first pass though
; 748  :                 // FALSE at all other times eben with dropped frames
; 749  :                 Info.PictureHistory[0]->IsFirstInSeries = IsFirstInSeriesFlag;

  007b0	8b 95 14 ff ff
	ff		 mov	 edx, DWORD PTR _Info$[ebp+4]
  007b6	8b 85 08 ff ff
	ff		 mov	 eax, DWORD PTR _IsFirstInSeriesFlag$[ebp]
  007bc	89 42 08	 mov	 DWORD PTR [edx+8], eax

; 750  :                 IsFirstInSeriesFlag = FALSE;

  007bf	c7 85 08 ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _IsFirstInSeriesFlag$[ebp], 0

; 751  : 
; 752  :                 // Card calibration
; 753  :                 if (pCalibration->IsRunning())

  007c9	b9 00 00 00 00	 mov	 ecx, OFFSET ?pCalibration@@3V?$SmartPtr@VCCalibration@@@@A ; pCalibration
  007ce	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCalibration@@@@QBEPAVCCalibration@@XZ ; SmartPtr<CCalibration>::operator->
  007d3	8b c8		 mov	 ecx, eax
  007d5	e8 00 00 00 00	 call	 ?IsRunning@CCalibration@@QAEHXZ ; CCalibration::IsRunning
  007da	85 c0		 test	 eax, eax
  007dc	74 1f		 je	 SHORT $LN74@YUVOutThre

; 754  :                 {
; 755  : #ifdef USE_PERFORMANCE_STATS
; 756  :                     pPerf->StartCount(PERF_CALIBRATION);
; 757  : #endif
; 758  : 
; 759  :                     pCalibration->Make(&Info, GetTickCount());

  007de	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetTickCount@0
  007e4	50		 push	 eax
  007e5	8d 8d 10 ff ff
	ff		 lea	 ecx, DWORD PTR _Info$[ebp]
  007eb	51		 push	 ecx
  007ec	b9 00 00 00 00	 mov	 ecx, OFFSET ?pCalibration@@3V?$SmartPtr@VCCalibration@@@@A ; pCalibration
  007f1	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCalibration@@@@QBEPAVCCalibration@@XZ ; SmartPtr<CCalibration>::operator->
  007f6	8b c8		 mov	 ecx, eax
  007f8	e8 00 00 00 00	 call	 ?Make@CCalibration@@QAEXPAUTDeinterlaceInfo@@H@Z ; CCalibration::Make
$LN74@YUVOutThre:

; 760  : 
; 761  : #ifdef USE_PERFORMANCE_STATS
; 762  :                     pPerf->StopCount(PERF_CALIBRATION);
; 763  : #endif
; 764  :                 }
; 765  : 
; 766  :                 // update the source area
; 767  :                 GetSourceRect(&Info.SourceRect);

  007fd	8d 95 40 ff ff
	ff		 lea	 edx, DWORD PTR _Info$[ebp+48]
  00803	52		 push	 edx
  00804	e8 00 00 00 00	 call	 ?GetSourceRect@@YAXPAUtagRECT@@@Z ; GetSourceRect
  00809	83 c4 04	 add	 esp, 4

; 768  : 
; 769  : #ifdef USE_PERFORMANCE_STATS
; 770  :                 pPerf->StartCount(PERF_INPUT_FILTERS);
; 771  : #endif
; 772  : 
; 773  :                 // do any filters that operarate on the input
; 774  :                 // only
; 775  :                 SourceAspectAdjust = Filter_DoInput(&Info, nHistory, (Info.bRunningLate || Info.bMissedFrame));

  0080c	83 bd 78 ff ff
	ff 00		 cmp	 DWORD PTR _Info$[ebp+104], 0
  00813	75 15		 jne	 SHORT $LN121@YUVOutThre
  00815	83 bd 7c ff ff
	ff 00		 cmp	 DWORD PTR _Info$[ebp+108], 0
  0081c	75 0c		 jne	 SHORT $LN121@YUVOutThre
  0081e	c7 85 a0 fc ff
	ff 00 00 00 00	 mov	 DWORD PTR tv372[ebp], 0
  00828	eb 0a		 jmp	 SHORT $LN122@YUVOutThre
$LN121@YUVOutThre:
  0082a	c7 85 a0 fc ff
	ff 01 00 00 00	 mov	 DWORD PTR tv372[ebp], 1
$LN122@YUVOutThre:
  00834	8b 85 a0 fc ff
	ff		 mov	 eax, DWORD PTR tv372[ebp]
  0083a	50		 push	 eax
  0083b	8b 4d c0	 mov	 ecx, DWORD PTR _nHistory$[ebp]
  0083e	51		 push	 ecx
  0083f	8d 95 10 ff ff
	ff		 lea	 edx, DWORD PTR _Info$[ebp]
  00845	52		 push	 edx
  00846	e8 00 00 00 00	 call	 ?Filter_DoInput@@YAJPAUTDeinterlaceInfo@@HH@Z ; Filter_DoInput
  0084b	83 c4 0c	 add	 esp, 12			; 0000000cH
  0084e	89 85 04 ff ff
	ff		 mov	 DWORD PTR _SourceAspectAdjust$[ebp], eax

; 776  : 
; 777  : #ifdef USE_PERFORMANCE_STATS
; 778  :                 pPerf->StopCount(PERF_INPUT_FILTERS);
; 779  : #endif
; 780  : 
; 781  :                 if (TimeShiftWorkOnInputFrames())

  00854	e8 00 00 00 00	 call	 ?TimeShiftWorkOnInputFrames@@YAHXZ ; TimeShiftWorkOnInputFrames
  00859	85 c0		 test	 eax, eax
  0085b	74 0f		 je	 SHORT $LN73@YUVOutThre

; 782  :                 {
; 783  : #ifdef USE_PERFORMANCE_STATS
; 784  :                     pPerf->StartCount(PERF_TIMESHIFT);
; 785  : #endif
; 786  : 
; 787  :                     // NOTE: I might go ahead and make the TimeShift module an input
; 788  :                     // filter at some point (i.e. FLT_TimeShift), but I'm not sure
; 789  :                     // if that's the right thing to do since it ties into other
; 790  :                     // parts of the app.
; 791  :                     TimeShiftOnNewInputFrame(&Info);

  0085d	8d 85 10 ff ff
	ff		 lea	 eax, DWORD PTR _Info$[ebp]
  00863	50		 push	 eax
  00864	e8 00 00 00 00	 call	 ?TimeShiftOnNewInputFrame@@YAHPAUTDeinterlaceInfo@@@Z ; TimeShiftOnNewInputFrame
  00869	83 c4 04	 add	 esp, 4
$LN73@YUVOutThre:

; 792  : 
; 793  : #ifdef USE_PERFORMANCE_STATS
; 794  :                     pPerf->StopCount(PERF_TIMESHIFT);
; 795  : #endif
; 796  :                 }
; 797  : 
; 798  :                 if (!bMinimized && !bNoScreenUpdateDuringTuning &&
; 799  :                     (VT_GetState() != VT_BLACK  || VT_IsTransparencyInPage()))

  0086c	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?bMinimized@@3HA, 0 ; bMinimized
  00873	0f 85 5d 01 00
	00		 jne	 $LN64@YUVOutThre
  00879	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?bNoScreenUpdateDuringTuning@@3HA, 0 ; bNoScreenUpdateDuringTuning
  00880	0f 85 50 01 00
	00		 jne	 $LN64@YUVOutThre
  00886	e8 00 00 00 00	 call	 ?VT_GetState@@YA?AW4eVTState@@XZ ; VT_GetState
  0088b	83 f8 01	 cmp	 eax, 1
  0088e	75 0d		 jne	 SHORT $LN71@YUVOutThre
  00890	e8 00 00 00 00	 call	 ?VT_IsTransparencyInPage@@YAHXZ ; VT_IsTransparencyInPage
  00895	85 c0		 test	 eax, eax
  00897	0f 84 39 01 00
	00		 je	 $LN64@YUVOutThre
$LN71@YUVOutThre:

; 800  :                 {
; 801  : #ifdef USE_PERFORMANCE_STATS
; 802  :                     pPerf->StartCount(PERF_PULLDOWN_DETECT);
; 803  : #endif
; 804  : 
; 805  :                     // do film detect
; 806  :                     if(Info.PictureHistory[0]->Flags & PICTURE_INTERLACED_MASK)

  0089d	8b 8d 14 ff ff
	ff		 mov	 ecx, DWORD PTR _Info$[ebp+4]
  008a3	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  008a6	83 e2 03	 and	 edx, 3
  008a9	0f 84 d0 00 00
	00		 je	 $LN70@YUVOutThre

; 807  :                     {
; 808  :                         if (UnsetProgressiveMode())

  008af	e8 00 00 00 00	 call	 ?UnsetProgressiveMode@@YAHXZ ; UnsetProgressiveMode
  008b4	85 c0		 test	 eax, eax
  008b6	74 08		 je	 SHORT $LN69@YUVOutThre

; 809  :                         {
; 810  :                             CurrentMethod = GetCurrentDeintMethod();

  008b8	e8 00 00 00 00	 call	 ?GetCurrentDeintMethod@@YAPAU_DEINTERLACE_METHOD@@XZ ; GetCurrentDeintMethod
  008bd	89 45 b8	 mov	 DWORD PTR _CurrentMethod$[ebp], eax
$LN69@YUVOutThre:

; 811  :                         }
; 812  : 
; 813  :                         // we have an interlaced source
; 814  :                         if(bAutoDetectMode == TRUE && !Info.bMissedFrame)

  008c0	83 3d 00 00 00
	00 01		 cmp	 DWORD PTR ?bAutoDetectMode@@3HA, 1 ; bAutoDetectMode
  008c7	0f 85 93 00 00
	00		 jne	 $LN68@YUVOutThre
  008cd	83 bd 7c ff ff
	ff 00		 cmp	 DWORD PTR _Info$[ebp+108], 0
  008d4	0f 85 86 00 00
	00		 jne	 $LN68@YUVOutThre

; 815  :                         {
; 816  :                             if(bIsPAL)

  008da	83 bd 0c ff ff
	ff 00		 cmp	 DWORD PTR _bIsPAL$[ebp], 0
  008e1	74 24		 je	 SHORT $LN67@YUVOutThre

; 817  :                             {
; 818  :                                 // we will need always need both comb and diff
; 819  :                                 // for film detect to work properly
; 820  :                                 PerformFilmDetectCalculations(&Info, TRUE, TRUE);

  008e3	6a 01		 push	 1
  008e5	6a 01		 push	 1
  008e7	8d 85 10 ff ff
	ff		 lea	 eax, DWORD PTR _Info$[ebp]
  008ed	50		 push	 eax
  008ee	e8 00 00 00 00	 call	 ?PerformFilmDetectCalculations@@YAXPAUTDeinterlaceInfo@@HH@Z ; PerformFilmDetectCalculations
  008f3	83 c4 0c	 add	 esp, 12			; 0000000cH

; 821  :                                 UpdatePALPulldownMode(&Info);

  008f6	8d 8d 10 ff ff
	ff		 lea	 ecx, DWORD PTR _Info$[ebp]
  008fc	51		 push	 ecx
  008fd	e8 00 00 00 00	 call	 ?UpdatePALPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z ; UpdatePALPulldownMode
  00902	83 c4 04	 add	 esp, 4

; 822  :                             }
; 823  :                             else

  00905	eb 4f		 jmp	 SHORT $LN66@YUVOutThre
$LN67@YUVOutThre:

; 824  :                             {
; 825  :                                 // we will need always need diff
; 826  :                                 // comb is needed in film Mode or when we ask for it
; 827  :                                 PerformFilmDetectCalculations(&Info,
; 828  :                                                             IsFilmMode() ||
; 829  :                                                                 CurrentMethod->bNeedCombFactor,
; 830  :                                                             TRUE);

  00907	e8 00 00 00 00	 call	 ?IsFilmMode@@YAHXZ	; IsFilmMode
  0090c	85 c0		 test	 eax, eax
  0090e	75 15		 jne	 SHORT $LN123@YUVOutThre
  00910	8b 55 b8	 mov	 edx, DWORD PTR _CurrentMethod$[ebp]
  00913	83 7a 5c 00	 cmp	 DWORD PTR [edx+92], 0
  00917	75 0c		 jne	 SHORT $LN123@YUVOutThre
  00919	c7 85 9c fc ff
	ff 00 00 00 00	 mov	 DWORD PTR tv403[ebp], 0
  00923	eb 0a		 jmp	 SHORT $LN124@YUVOutThre
$LN123@YUVOutThre:
  00925	c7 85 9c fc ff
	ff 01 00 00 00	 mov	 DWORD PTR tv403[ebp], 1
$LN124@YUVOutThre:
  0092f	6a 01		 push	 1
  00931	8b 85 9c fc ff
	ff		 mov	 eax, DWORD PTR tv403[ebp]
  00937	50		 push	 eax
  00938	8d 8d 10 ff ff
	ff		 lea	 ecx, DWORD PTR _Info$[ebp]
  0093e	51		 push	 ecx
  0093f	e8 00 00 00 00	 call	 ?PerformFilmDetectCalculations@@YAXPAUTDeinterlaceInfo@@HH@Z ; PerformFilmDetectCalculations
  00944	83 c4 0c	 add	 esp, 12			; 0000000cH

; 831  :                                 UpdateNTSCPulldownMode(&Info);

  00947	8d 95 10 ff ff
	ff		 lea	 edx, DWORD PTR _Info$[ebp]
  0094d	52		 push	 edx
  0094e	e8 00 00 00 00	 call	 ?UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z ; UpdateNTSCPulldownMode
  00953	83 c4 04	 add	 esp, 4
$LN66@YUVOutThre:

; 832  :                             }
; 833  :                             // get the current method again
; 834  :                             // after the film Modes have been selected
; 835  :                             CurrentMethod = GetCurrentDeintMethod();

  00956	e8 00 00 00 00	 call	 ?GetCurrentDeintMethod@@YAPAU_DEINTERLACE_METHOD@@XZ ; GetCurrentDeintMethod
  0095b	89 45 b8	 mov	 DWORD PTR _CurrentMethod$[ebp], eax

; 836  :                         }
; 837  :                         else

  0095e	eb 1d		 jmp	 SHORT $LN65@YUVOutThre
$LN68@YUVOutThre:

; 838  :                         {
; 839  :                             PerformFilmDetectCalculations(&Info,
; 840  :                                                             CurrentMethod->bNeedCombFactor,
; 841  :                                                             CurrentMethod->bNeedFieldDiff);

  00960	8b 45 b8	 mov	 eax, DWORD PTR _CurrentMethod$[ebp]
  00963	8b 48 58	 mov	 ecx, DWORD PTR [eax+88]
  00966	51		 push	 ecx
  00967	8b 55 b8	 mov	 edx, DWORD PTR _CurrentMethod$[ebp]
  0096a	8b 42 5c	 mov	 eax, DWORD PTR [edx+92]
  0096d	50		 push	 eax
  0096e	8d 8d 10 ff ff
	ff		 lea	 ecx, DWORD PTR _Info$[ebp]
  00974	51		 push	 ecx
  00975	e8 00 00 00 00	 call	 ?PerformFilmDetectCalculations@@YAXPAUTDeinterlaceInfo@@HH@Z ; PerformFilmDetectCalculations
  0097a	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN65@YUVOutThre:

; 842  :                         }
; 843  :                     }
; 844  :                     else

  0097d	eb 57		 jmp	 SHORT $LN64@YUVOutThre
$LN70@YUVOutThre:

; 845  :                     {
; 846  :                         // we have an progressive source
; 847  :                         // so do special progressive detect
; 848  :                         // so that we can do judder termination on
; 849  :                         // 24/25 fps sources even though we get the feed
; 850  :                         // at a full frame rate
; 851  :                         SetProgressiveMode();

  0097f	e8 00 00 00 00	 call	 ?SetProgressiveMode@@YAHXZ ; SetProgressiveMode

; 852  : 
; 853  :                         if(bAutoDetectMode == TRUE && !Info.bMissedFrame)

  00984	83 3d 00 00 00
	00 01		 cmp	 DWORD PTR ?bAutoDetectMode@@3HA, 1 ; bAutoDetectMode
  0098b	75 41		 jne	 SHORT $LN61@YUVOutThre
  0098d	83 bd 7c ff ff
	ff 00		 cmp	 DWORD PTR _Info$[ebp+108], 0
  00994	75 38		 jne	 SHORT $LN61@YUVOutThre

; 854  :                         {
; 855  :                             PerformProgFilmDetectCalculations(&Info);

  00996	8d 95 10 ff ff
	ff		 lea	 edx, DWORD PTR _Info$[ebp]
  0099c	52		 push	 edx
  0099d	e8 00 00 00 00	 call	 ?PerformProgFilmDetectCalculations@@YAXPAUTDeinterlaceInfo@@@Z ; PerformProgFilmDetectCalculations
  009a2	83 c4 04	 add	 esp, 4

; 856  :                             if(bIsPAL)

  009a5	83 bd 0c ff ff
	ff 00		 cmp	 DWORD PTR _bIsPAL$[ebp], 0
  009ac	74 11		 je	 SHORT $LN62@YUVOutThre

; 857  :                             {
; 858  :                                 UpdateProgPulldownModePAL(&Info);

  009ae	8d 85 10 ff ff
	ff		 lea	 eax, DWORD PTR _Info$[ebp]
  009b4	50		 push	 eax
  009b5	e8 00 00 00 00	 call	 ?UpdateProgPulldownModePAL@@YAXPAUTDeinterlaceInfo@@@Z ; UpdateProgPulldownModePAL
  009ba	83 c4 04	 add	 esp, 4

; 859  :                             }
; 860  :                             else

  009bd	eb 0f		 jmp	 SHORT $LN61@YUVOutThre
$LN62@YUVOutThre:

; 861  :                             {
; 862  :                                 UpdateProgPulldownModeNTSC(&Info);

  009bf	8d 8d 10 ff ff
	ff		 lea	 ecx, DWORD PTR _Info$[ebp]
  009c5	51		 push	 ecx
  009c6	e8 00 00 00 00	 call	 ?UpdateProgPulldownModeNTSC@@YAXPAUTDeinterlaceInfo@@@Z ; UpdateProgPulldownModeNTSC
  009cb	83 c4 04	 add	 esp, 4
$LN61@YUVOutThre:

; 863  :                             }
; 864  :                         }
; 865  :                         CurrentMethod = GetCurrentDeintMethod();

  009ce	e8 00 00 00 00	 call	 ?GetCurrentDeintMethod@@YAPAU_DEINTERLACE_METHOD@@XZ ; GetCurrentDeintMethod
  009d3	89 45 b8	 mov	 DWORD PTR _CurrentMethod$[ebp], eax
$LN64@YUVOutThre:

; 866  :                     }
; 867  : 
; 868  : #ifdef USE_PERFORMANCE_STATS
; 869  :                     pPerf->StopCount(PERF_PULLDOWN_DETECT);
; 870  : #endif
; 871  :                 }
; 872  : 
; 873  :                 if (bCaptureVBI == TRUE)

  009d6	83 3d 00 00 00
	00 01		 cmp	 DWORD PTR ?bCaptureVBI@@3HA, 1 ; bCaptureVBI
  009dd	75 17		 jne	 SHORT $LN60@YUVOutThre

; 874  :                 {
; 875  : #ifdef USE_PERFORMANCE_STATS
; 876  :                     pPerf->StartCount(PERF_VBI);
; 877  : #endif
; 878  : 
; 879  :                     pSource->DecodeVBI(&Info);

  009df	8d 95 10 ff ff
	ff		 lea	 edx, DWORD PTR _Info$[ebp]
  009e5	52		 push	 edx
  009e6	8b 45 cc	 mov	 eax, DWORD PTR _pSource$[ebp]
  009e9	8b 10		 mov	 edx, DWORD PTR [eax]
  009eb	8b 4d cc	 mov	 ecx, DWORD PTR _pSource$[ebp]
  009ee	8b 82 98 00 00
	00		 mov	 eax, DWORD PTR [edx+152]
  009f4	ff d0		 call	 eax
$LN60@YUVOutThre:

; 880  : 
; 881  : #ifdef USE_PERFORMANCE_STATS
; 882  :                     pPerf->StopCount(PERF_VBI);
; 883  : #endif
; 884  :                 }
; 885  : 
; 886  :                 // do we need to unlock overlay if we crash
; 887  :                 BOOL bOverlayLocked = FALSE;

  009f6	c7 85 8c fd ff
	ff 00 00 00 00	 mov	 DWORD PTR _bOverlayLocked$150813[ebp], 0
  00a00	c6 45 fc 05	 mov	 BYTE PTR __$EHRec$[ebp+12], 5
  00a04	9b		 fwait

; 888  : 
; 889  :                 try
; 890  :                 {
; 891  :                     if(!Info.bRunningLate && !bMinimized && !bNoScreenUpdateDuringTuning &&
; 892  :                         (VT_GetState() != VT_BLACK  || VT_IsTransparencyInPage()))

  00a05	83 bd 78 ff ff
	ff 00		 cmp	 DWORD PTR _Info$[ebp+104], 0
  00a0c	0f 85 1c 05 00
	00		 jne	 $LN42@YUVOutThre
  00a12	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?bMinimized@@3HA, 0 ; bMinimized
  00a19	0f 85 0f 05 00
	00		 jne	 $LN42@YUVOutThre
  00a1f	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?bNoScreenUpdateDuringTuning@@3HA, 0 ; bNoScreenUpdateDuringTuning
  00a26	0f 85 02 05 00
	00		 jne	 $LN42@YUVOutThre
  00a2c	e8 00 00 00 00	 call	 ?VT_GetState@@YA?AW4eVTState@@XZ ; VT_GetState
  00a31	83 f8 01	 cmp	 eax, 1
  00a34	75 0d		 jne	 SHORT $LN57@YUVOutThre
  00a36	e8 00 00 00 00	 call	 ?VT_IsTransparencyInPage@@YAHXZ ; VT_IsTransparencyInPage
  00a3b	85 c0		 test	 eax, eax
  00a3d	0f 84 eb 04 00
	00		 je	 $LN42@YUVOutThre
$LN57@YUVOutThre:

; 893  :                     {
; 894  :                         BOOL bFlipNow = FALSE;

  00a43	c7 85 80 fd ff
	ff 00 00 00 00	 mov	 DWORD PTR _bFlipNow$150817[ebp], 0

; 895  : 
; 896  :                         // do the aspect ratio only every other frame
; 897  :                         // also do this outside of the internal lock
; 898  :                         // to avoid conflicts
; 899  :                         if (Info.PictureHistory[0]->Flags & PICTURE_INTERLACED_ODD)

  00a4d	8b 8d 14 ff ff
	ff		 mov	 ecx, DWORD PTR _Info$[ebp+4]
  00a53	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  00a56	83 e2 01	 and	 edx, 1
  00a59	74 16		 je	 SHORT $LN56@YUVOutThre

; 900  :                         {
; 901  : #ifdef USE_PERFORMANCE_STATS
; 902  :                             pPerf->StartCount(PERF_RATIO);
; 903  : #endif
; 904  : 
; 905  :                             AdjustAspectRatio(SourceAspectAdjust, &Info);

  00a5b	8d 85 10 ff ff
	ff		 lea	 eax, DWORD PTR _Info$[ebp]
  00a61	50		 push	 eax
  00a62	8b 8d 04 ff ff
	ff		 mov	 ecx, DWORD PTR _SourceAspectAdjust$[ebp]
  00a68	51		 push	 ecx
  00a69	e8 00 00 00 00	 call	 ?AdjustAspectRatio@@YAXJPAUTDeinterlaceInfo@@@Z ; AdjustAspectRatio
  00a6e	83 c4 08	 add	 esp, 8
$LN56@YUVOutThre:

; 906  : 
; 907  : #ifdef USE_PERFORMANCE_STATS
; 908  :                             pPerf->StopCount(PERF_RATIO);
; 909  : #endif
; 910  :                         }
; 911  : 
; 912  :                         if(bUseOverlay)

  00a71	83 7d c4 00	 cmp	 DWORD PTR _bUseOverlay$[ebp], 0
  00a75	0f 84 d3 00 00
	00		 je	 $LN55@YUVOutThre

; 913  :                         {
; 914  : #ifdef USE_PERFORMANCE_STATS
; 915  :                             pPerf->StartCount(PERF_LOCK_OVERLAY);
; 916  : #endif
; 917  :                             // Need to be careful with the locking
; 918  :                             if(!GetActiveOutput()->Overlay_Lock_Back_Buffer(&Info, bUseExtraBuffer))

  00a7b	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  00a80	89 85 98 fc ff
	ff		 mov	 DWORD PTR tv440[ebp], eax
  00a86	8b 95 dc fe ff
	ff		 mov	 edx, DWORD PTR _bUseExtraBuffer$[ebp]
  00a8c	52		 push	 edx
  00a8d	8d 85 10 ff ff
	ff		 lea	 eax, DWORD PTR _Info$[ebp]
  00a93	50		 push	 eax
  00a94	8b 8d 98 fc ff
	ff		 mov	 ecx, DWORD PTR tv440[ebp]
  00a9a	8b 11		 mov	 edx, DWORD PTR [ecx]
  00a9c	8b 8d 98 fc ff
	ff		 mov	 ecx, DWORD PTR tv440[ebp]
  00aa2	8b 42 40	 mov	 eax, DWORD PTR [edx+64]
  00aa5	ff d0		 call	 eax
  00aa7	85 c0		 test	 eax, eax
  00aa9	0f 85 95 00 00
	00		 jne	 $LN54@YUVOutThre

; 919  :                             {
; 920  :                                 Providers_GetCurrentSource()->Stop();

  00aaf	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  00ab4	89 85 94 fc ff
	ff		 mov	 DWORD PTR tv449[ebp], eax
  00aba	8b 8d 94 fc ff
	ff		 mov	 ecx, DWORD PTR tv449[ebp]
  00ac0	8b 11		 mov	 edx, DWORD PTR [ecx]
  00ac2	8b 8d 94 fc ff
	ff		 mov	 ecx, DWORD PTR tv449[ebp]
  00ac8	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  00acb	ff d0		 call	 eax

; 921  :                                 LOG(1, _T("Falling out after Overlay_Lock_Back_Buffer"));

  00acd	68 00 00 00 00	 push	 OFFSET ??_C@_1FG@FAJFKDCF@?$AAF?$AAa?$AAl?$AAl?$AAi?$AAn?$AAg?$AA?5?$AAo?$AAu?$AAt?$AA?5?$AAa?$AAf?$AAt?$AAe?$AAr?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA_?$AAL?$AAo?$AAc?$AAk?$AA_?$AAB@
  00ad2	6a 01		 push	 1
  00ad4	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00ad9	83 c4 08	 add	 esp, 8

; 922  :                                 PostMessageToMainWindow(WM_COMMAND, IDM_OVERLAY_STOP, 0);

  00adc	6a 00		 push	 0
  00ade	68 4e 02 00 00	 push	 590			; 0000024eH
  00ae3	68 11 01 00 00	 push	 273			; 00000111H
  00ae8	e8 00 00 00 00	 call	 ?PostMessageToMainWindow@@YAXIIJ@Z ; PostMessageToMainWindow
  00aed	83 c4 0c	 add	 esp, 12			; 0000000cH

; 923  :                                 PostMessageToMainWindow(WM_COMMAND, IDM_OVERLAY_START, 0);

  00af0	6a 00		 push	 0
  00af2	68 4f 02 00 00	 push	 591			; 0000024fH
  00af7	68 11 01 00 00	 push	 273			; 00000111H
  00afc	e8 00 00 00 00	 call	 ?PostMessageToMainWindow@@YAXIIJ@Z ; PostMessageToMainWindow
  00b01	83 c4 0c	 add	 esp, 12			; 0000000cH

; 924  :                                 return 1;

  00b04	c7 85 44 fd ff
	ff 01 00 00 00	 mov	 DWORD PTR $T360792[ebp], 1
  00b0e	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+12], 1
  00b12	8d 4d e7	 lea	 ecx, DWORD PTR _ThisThread$[ebp]
  00b15	e8 00 00 00 00	 call	 ??1ComInitialise@@QAE@XZ ; ComInitialise::~ComInitialise
  00b1a	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+12], 0
  00b1e	8d 8d e4 fe ff
	ff		 lea	 ecx, DWORD PTR _thisThread$[ebp]
  00b24	e8 00 00 00 00	 call	 ??1DScalerThread@@QAE@XZ ; DScalerThread::~DScalerThread
  00b29	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
  00b30	8d 4d 98	 lea	 ecx, DWORD PTR _message$[ebp]
  00b33	e8 00 00 00 00	 call	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
  00b38	8b 85 44 fd ff
	ff		 mov	 eax, DWORD PTR $T360792[ebp]
  00b3e	9b		 fwait
  00b3f	e9 fc 0a 00 00	 jmp	 $LN113@YUVOutThre
$LN54@YUVOutThre:

; 925  :                             }
; 926  :                             bOverlayLocked = TRUE;

  00b44	c7 85 8c fd ff
	ff 01 00 00 00	 mov	 DWORD PTR _bOverlayLocked$150813[ebp], 1
$LN55@YUVOutThre:

; 927  : #ifdef USE_PERFORMANCE_STATS
; 928  :                             pPerf->StopCount(PERF_LOCK_OVERLAY);
; 929  : #endif
; 930  :                         }
; 931  : 
; 932  : #ifdef USE_PERFORMANCE_STATS
; 933  :                         pPerf->StartCount(PERF_DEINTERLACE);
; 934  : #endif
; 935  : 
; 936  :                         if (IsProgressiveMode())

  00b4e	e8 00 00 00 00	 call	 ?IsProgressiveMode@@YAHXZ ; IsProgressiveMode
  00b53	85 c0		 test	 eax, eax
  00b55	74 1a		 je	 SHORT $LN53@YUVOutThre

; 937  :                         {
; 938  :                             bFlipNow = CurrentMethod->pfnAlgorithm(&Info);

  00b57	8d 8d 10 ff ff
	ff		 lea	 ecx, DWORD PTR _Info$[ebp]
  00b5d	51		 push	 ecx
  00b5e	8b 55 b8	 mov	 edx, DWORD PTR _CurrentMethod$[ebp]
  00b61	8b 42 18	 mov	 eax, DWORD PTR [edx+24]
  00b64	ff d0		 call	 eax
  00b66	83 c4 04	 add	 esp, 4
  00b69	89 85 80 fd ff
	ff		 mov	 DWORD PTR _bFlipNow$150817[ebp], eax

; 939  :                         }
; 940  :                         // if we have dropped a field then do BOB
; 941  :                         // or if we need to get more history
; 942  :                         // if we are doing a half height Mode then just do that
; 943  :                         // anyway as it will be just as fast
; 944  :                         else if(CurrentMethod->bIsHalfHeight == FALSE &&

  00b6f	eb 4c		 jmp	 SHORT $LN49@YUVOutThre
$LN53@YUVOutThre:

; 945  :                                 ((Info.bMissedFrame == TRUE) || (nHistory < CurrentMethod->nFieldsRequired)))

  00b71	8b 4d b8	 mov	 ecx, DWORD PTR _CurrentMethod$[ebp]
  00b74	83 79 10 00	 cmp	 DWORD PTR [ecx+16], 0
  00b78	75 2b		 jne	 SHORT $LN51@YUVOutThre
  00b7a	83 bd 7c ff ff
	ff 01		 cmp	 DWORD PTR _Info$[ebp+108], 1
  00b81	74 0b		 je	 SHORT $LN50@YUVOutThre
  00b83	8b 55 b8	 mov	 edx, DWORD PTR _CurrentMethod$[ebp]
  00b86	8b 45 c0	 mov	 eax, DWORD PTR _nHistory$[ebp]
  00b89	3b 42 40	 cmp	 eax, DWORD PTR [edx+64]
  00b8c	7d 17		 jge	 SHORT $LN51@YUVOutThre
$LN50@YUVOutThre:

; 946  :                         {
; 947  :                             bFlipNow = Bob(&Info);

  00b8e	8d 8d 10 ff ff
	ff		 lea	 ecx, DWORD PTR _Info$[ebp]
  00b94	51		 push	 ecx
  00b95	e8 00 00 00 00	 call	 ?Bob@@YAHPAUTDeinterlaceInfo@@@Z ; Bob
  00b9a	83 c4 04	 add	 esp, 4
  00b9d	89 85 80 fd ff
	ff		 mov	 DWORD PTR _bFlipNow$150817[ebp], eax

; 948  :                         }
; 949  :                         else

  00ba3	eb 18		 jmp	 SHORT $LN49@YUVOutThre
$LN51@YUVOutThre:

; 950  :                         {
; 951  :                             bFlipNow = CurrentMethod->pfnAlgorithm(&Info);

  00ba5	8d 95 10 ff ff
	ff		 lea	 edx, DWORD PTR _Info$[ebp]
  00bab	52		 push	 edx
  00bac	8b 45 b8	 mov	 eax, DWORD PTR _CurrentMethod$[ebp]
  00baf	8b 48 18	 mov	 ecx, DWORD PTR [eax+24]
  00bb2	ff d1		 call	 ecx
  00bb4	83 c4 04	 add	 esp, 4
  00bb7	89 85 80 fd ff
	ff		 mov	 DWORD PTR _bFlipNow$150817[ebp], eax
$LN49@YUVOutThre:

; 952  :                         }
; 953  :                         CHECK_FPU_STACK;
; 954  : 
; 955  : #ifdef USE_PERFORMANCE_STATS
; 956  :                         pPerf->StopCount(PERF_DEINTERLACE);
; 957  : #endif
; 958  : 
; 959  :                         if (bFlipNow)

  00bbd	83 bd 80 fd ff
	ff 00		 cmp	 DWORD PTR _bFlipNow$150817[ebp], 0
  00bc4	74 1f		 je	 SHORT $LN47@YUVOutThre

; 960  :                         {
; 961  : #ifdef USE_PERFORMANCE_STATS
; 962  :                             pPerf->StartCount(PERF_OUTPUT_FILTERS);
; 963  : #endif
; 964  : 
; 965  :                             // Do any filters that run on the output
; 966  :                             // need to do this while the surface is locked
; 967  :                             Filter_DoOutput(&Info, nHistory, Info.bMissedFrame);

  00bc6	8b 95 7c ff ff
	ff		 mov	 edx, DWORD PTR _Info$[ebp+108]
  00bcc	52		 push	 edx
  00bcd	8b 45 c0	 mov	 eax, DWORD PTR _nHistory$[ebp]
  00bd0	50		 push	 eax
  00bd1	8d 8d 10 ff ff
	ff		 lea	 ecx, DWORD PTR _Info$[ebp]
  00bd7	51		 push	 ecx
  00bd8	e8 00 00 00 00	 call	 ?Filter_DoOutput@@YAXPAUTDeinterlaceInfo@@HH@Z ; Filter_DoOutput
  00bdd	83 c4 0c	 add	 esp, 12			; 0000000cH

; 968  : 
; 969  : #ifdef USE_PERFORMANCE_STATS
; 970  :                             pPerf->StopCount(PERF_OUTPUT_FILTERS);
; 971  : #endif
; 972  : 
; 973  :                             if (!TimeShiftWorkOnInputFrames())

  00be0	e8 00 00 00 00	 call	 ?TimeShiftWorkOnInputFrames@@YAHXZ ; TimeShiftWorkOnInputFrames
$LN47@YUVOutThre:

; 974  :                             {
; 975  : #ifdef USE_PERFORMANCE_STATS
; 976  :                                 pPerf->StartCount(PERF_TIMESHIFT);
; 977  : #endif
; 978  : 
; 979  :                                 /* CTimeShift::OnNewOutputFrame(&Info); */
; 980  : 
; 981  : #ifdef USE_PERFORMANCE_STATS
; 982  :                                 pPerf->StopCount(PERF_TIMESHIFT);
; 983  : #endif
; 984  :                             }
; 985  : 
; 986  :                         }
; 987  : 
; 988  : #ifdef USE_PERFORMANCE_STATS
; 989  :                         pPerf->StartCount(PERF_UNLOCK_OVERLAY);
; 990  : #endif
; 991  : 
; 992  :                         if(bOverlayLocked)

  00be5	83 bd 8c fd ff
	ff 00		 cmp	 DWORD PTR _bOverlayLocked$150813[ebp], 0
  00bec	0f 84 cc 00 00
	00		 je	 $LN46@YUVOutThre

; 993  :                         {
; 994  :                             // there should be no exit paths between this unlock and the lock
; 995  :                             // so we should be OK
; 996  :                             // somewhere above we will have locked the buffer, unlock before flip
; 997  :                             if(!GetActiveOutput()->Overlay_Unlock_Back_Buffer(bUseExtraBuffer))

  00bf2	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  00bf7	89 85 90 fc ff
	ff		 mov	 DWORD PTR tv516[ebp], eax
  00bfd	8b 95 dc fe ff
	ff		 mov	 edx, DWORD PTR _bUseExtraBuffer$[ebp]
  00c03	52		 push	 edx
  00c04	8b 85 90 fc ff
	ff		 mov	 eax, DWORD PTR tv516[ebp]
  00c0a	8b 10		 mov	 edx, DWORD PTR [eax]
  00c0c	8b 8d 90 fc ff
	ff		 mov	 ecx, DWORD PTR tv516[ebp]
  00c12	8b 42 44	 mov	 eax, DWORD PTR [edx+68]
  00c15	ff d0		 call	 eax
  00c17	85 c0		 test	 eax, eax
  00c19	0f 85 95 00 00
	00		 jne	 $LN45@YUVOutThre

; 998  :                             {
; 999  :                                 Providers_GetCurrentSource()->Stop();

  00c1f	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  00c24	89 85 8c fc ff
	ff		 mov	 DWORD PTR tv524[ebp], eax
  00c2a	8b 8d 8c fc ff
	ff		 mov	 ecx, DWORD PTR tv524[ebp]
  00c30	8b 11		 mov	 edx, DWORD PTR [ecx]
  00c32	8b 8d 8c fc ff
	ff		 mov	 ecx, DWORD PTR tv524[ebp]
  00c38	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  00c3b	ff d0		 call	 eax

; 1000 :                                 LOG(1, _T("Falling out after Overlay_Unlock_Back_Buffer"));

  00c3d	68 00 00 00 00	 push	 OFFSET ??_C@_1FK@MPHEIDIK@?$AAF?$AAa?$AAl?$AAl?$AAi?$AAn?$AAg?$AA?5?$AAo?$AAu?$AAt?$AA?5?$AAa?$AAf?$AAt?$AAe?$AAr?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA_?$AAU?$AAn?$AAl?$AAo?$AAc?$AAk@
  00c42	6a 01		 push	 1
  00c44	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00c49	83 c4 08	 add	 esp, 8

; 1001 :                                 PostMessageToMainWindow(WM_COMMAND, IDM_OVERLAY_STOP, 0);

  00c4c	6a 00		 push	 0
  00c4e	68 4e 02 00 00	 push	 590			; 0000024eH
  00c53	68 11 01 00 00	 push	 273			; 00000111H
  00c58	e8 00 00 00 00	 call	 ?PostMessageToMainWindow@@YAXIIJ@Z ; PostMessageToMainWindow
  00c5d	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1002 :                                 PostMessageToMainWindow(WM_COMMAND, IDM_OVERLAY_START, 0);

  00c60	6a 00		 push	 0
  00c62	68 4f 02 00 00	 push	 591			; 0000024fH
  00c67	68 11 01 00 00	 push	 273			; 00000111H
  00c6c	e8 00 00 00 00	 call	 ?PostMessageToMainWindow@@YAXIIJ@Z ; PostMessageToMainWindow
  00c71	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1003 :                                 return 1;

  00c74	c7 85 40 fd ff
	ff 01 00 00 00	 mov	 DWORD PTR $T360793[ebp], 1
  00c7e	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+12], 1
  00c82	8d 4d e7	 lea	 ecx, DWORD PTR _ThisThread$[ebp]
  00c85	e8 00 00 00 00	 call	 ??1ComInitialise@@QAE@XZ ; ComInitialise::~ComInitialise
  00c8a	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+12], 0
  00c8e	8d 8d e4 fe ff
	ff		 lea	 ecx, DWORD PTR _thisThread$[ebp]
  00c94	e8 00 00 00 00	 call	 ??1DScalerThread@@QAE@XZ ; DScalerThread::~DScalerThread
  00c99	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
  00ca0	8d 4d 98	 lea	 ecx, DWORD PTR _message$[ebp]
  00ca3	e8 00 00 00 00	 call	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
  00ca8	8b 85 40 fd ff
	ff		 mov	 eax, DWORD PTR $T360793[ebp]
  00cae	9b		 fwait
  00caf	e9 8c 09 00 00	 jmp	 $LN113@YUVOutThre
$LN45@YUVOutThre:

; 1004 :                             }
; 1005 :                             bOverlayLocked = FALSE;

  00cb4	c7 85 8c fd ff
	ff 00 00 00 00	 mov	 DWORD PTR _bOverlayLocked$150813[ebp], 0
$LN46@YUVOutThre:

; 1006 :                         }
; 1007 : 
; 1008 : #ifdef USE_PERFORMANCE_STATS
; 1009 :                         pPerf->StopCount(PERF_UNLOCK_OVERLAY);
; 1010 : #endif
; 1011 : 
; 1012 : 						if(bTakeStill && !bFlipNow)

  00cbe	83 7d e8 00	 cmp	 DWORD PTR _bTakeStill$[ebp], 0
  00cc2	74 22		 je	 SHORT $LN43@YUVOutThre
  00cc4	83 bd 80 fd ff
	ff 00		 cmp	 DWORD PTR _bFlipNow$150817[ebp], 0
  00ccb	75 19		 jne	 SHORT $LN43@YUVOutThre

; 1013 :                         {
; 1014 :                             bTakeStill = FALSE;

  00ccd	c7 45 e8 00 00
	00 00		 mov	 DWORD PTR _bTakeStill$[ebp], 0

; 1015 :                             if (pAllocBuf != NULL)

  00cd4	83 7d d8 00	 cmp	 DWORD PTR _pAllocBuf$[ebp], 0
  00cd8	74 0c		 je	 SHORT $LN43@YUVOutThre

; 1016 :                             {
; 1017 :                                 free(pAllocBuf);

  00cda	8b 4d d8	 mov	 ecx, DWORD PTR _pAllocBuf$[ebp]
  00cdd	51		 push	 ecx
  00cde	e8 00 00 00 00	 call	 _free
  00ce3	83 c4 04	 add	 esp, 4
$LN43@YUVOutThre:

; 1018 :                             }
; 1019 :                         }
; 1020 : 
; 1021 :                         // flip overlay if required
; 1022 :                         if (bFlipNow && bUseOverlay)

  00ce6	83 bd 80 fd ff
	ff 00		 cmp	 DWORD PTR _bFlipNow$150817[ebp], 0
  00ced	0f 84 3b 02 00
	00		 je	 $LN42@YUVOutThre
  00cf3	83 7d c4 00	 cmp	 DWORD PTR _bUseOverlay$[ebp], 0
  00cf7	0f 84 31 02 00
	00		 je	 $LN42@YUVOutThre

; 1023 :                         {
; 1024 : #ifdef USE_PERFORMANCE_STATS
; 1025 :                             pPerf->StartCount(PERF_FLIP_OVERLAY);
; 1026 : #endif
; 1027 : 
; 1028 :                             // setup flip flag
; 1029 :                             // the odd and even flags may help the scaled bob
; 1030 :                             // on some cards
; 1031 :                             DWORD FlipFlag = (WaitForFlip)?DDFLIP_WAIT:DDFLIP_DONOTWAIT;

  00cfd	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?WaitForFlip@@3HA ; WaitForFlip
  00d03	f7 da		 neg	 edx
  00d05	1b d2		 sbb	 edx, edx
  00d07	83 e2 e1	 and	 edx, -31		; ffffffe1H
  00d0a	83 c2 20	 add	 edx, 32			; 00000020H
  00d0d	89 95 7c fd ff
	ff		 mov	 DWORD PTR _FlipFlag$150837[ebp], edx

; 1032 :                             if(CurrentMethod->nMethodIndex == INDEX_SCALER_BOB)

  00d13	8b 45 b8	 mov	 eax, DWORD PTR _CurrentMethod$[ebp]
  00d16	83 78 2c 05	 cmp	 DWORD PTR [eax+44], 5
  00d1a	75 3c		 jne	 SHORT $LN38@YUVOutThre

; 1033 :                             {
; 1034 :                                 if(Info.PictureHistory[0]->Flags & PICTURE_INTERLACED_ODD)

  00d1c	8b 8d 14 ff ff
	ff		 mov	 ecx, DWORD PTR _Info$[ebp+4]
  00d22	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  00d25	83 e2 01	 and	 edx, 1
  00d28	74 11		 je	 SHORT $LN40@YUVOutThre

; 1035 :                                 {
; 1036 :                                     FlipFlag |= DDFLIP_ODD;

  00d2a	8b 85 7c fd ff
	ff		 mov	 eax, DWORD PTR _FlipFlag$150837[ebp]
  00d30	83 c8 04	 or	 eax, 4
  00d33	89 85 7c fd ff
	ff		 mov	 DWORD PTR _FlipFlag$150837[ebp], eax
  00d39	eb 1d		 jmp	 SHORT $LN38@YUVOutThre
$LN40@YUVOutThre:

; 1037 :                                 }
; 1038 :                                 else if(Info.PictureHistory[0]->Flags & PICTURE_INTERLACED_EVEN)

  00d3b	8b 8d 14 ff ff
	ff		 mov	 ecx, DWORD PTR _Info$[ebp+4]
  00d41	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  00d44	83 e2 02	 and	 edx, 2
  00d47	74 0f		 je	 SHORT $LN38@YUVOutThre

; 1039 :                                 {
; 1040 :                                     FlipFlag |= DDFLIP_EVEN;

  00d49	8b 85 7c fd ff
	ff		 mov	 eax, DWORD PTR _FlipFlag$150837[ebp]
  00d4f	83 c8 02	 or	 eax, 2
  00d52	89 85 7c fd ff
	ff		 mov	 DWORD PTR _FlipFlag$150837[ebp], eax
$LN38@YUVOutThre:

; 1041 :                                 }
; 1042 :                             }
; 1043 : 
; 1044 :                             if (pMultiFrames && pMultiFrames->IsActive())

  00d58	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?pMultiFrames@@3PAVCMultiFrames@@A, 0 ; pMultiFrames
  00d5f	74 35		 je	 SHORT $LN37@YUVOutThre
  00d61	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?pMultiFrames@@3PAVCMultiFrames@@A ; pMultiFrames
  00d67	e8 00 00 00 00	 call	 ?IsActive@CMultiFrames@@QAEHXZ ; CMultiFrames::IsActive
  00d6c	85 c0		 test	 eax, eax
  00d6e	74 26		 je	 SHORT $LN37@YUVOutThre

; 1045 :                             {
; 1046 :                                 pMultiFrames->UpdateFrame(&Info, &bUseExtraBuffer, &lpMultiBuffer, &MultiPitch);

  00d70	8d 4d ec	 lea	 ecx, DWORD PTR _MultiPitch$[ebp]
  00d73	51		 push	 ecx
  00d74	8d 95 e0 fe ff
	ff		 lea	 edx, DWORD PTR _lpMultiBuffer$[ebp]
  00d7a	52		 push	 edx
  00d7b	8d 85 dc fe ff
	ff		 lea	 eax, DWORD PTR _bUseExtraBuffer$[ebp]
  00d81	50		 push	 eax
  00d82	8d 8d 10 ff ff
	ff		 lea	 ecx, DWORD PTR _Info$[ebp]
  00d88	51		 push	 ecx
  00d89	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?pMultiFrames@@3PAVCMultiFrames@@A ; pMultiFrames
  00d8f	e8 00 00 00 00	 call	 ?UpdateFrame@CMultiFrames@@QAEXPAUTDeinterlaceInfo@@PAHPAPAE1@Z ; CMultiFrames::UpdateFrame

; 1047 :                             }
; 1048 :                             else

  00d94	eb 11		 jmp	 SHORT $LN36@YUVOutThre
$LN37@YUVOutThre:

; 1049 :                             {
; 1050 :                                 lpMultiBuffer = NULL;

  00d96	c7 85 e0 fe ff
	ff 00 00 00 00	 mov	 DWORD PTR _lpMultiBuffer$[ebp], 0

; 1051 :                                 MultiPitch = 0;

  00da0	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _MultiPitch$[ebp], 0
$LN36@YUVOutThre:

; 1052 :                             }
; 1053 : 
; 1054 :                             // JudderTerminator
; 1055 :                             // Here we space out the flips by waiting for a fixed time between
; 1056 :                             // flip calls.
; 1057 :                             // We need to go in if:
; 1058 :                             // - JudderTerminator is On
; 1059 :                             // - We are in film mode or we want JT on Video
; 1060 :                             // - the deinterlace method is the same as last time
; 1061 :                             if(Info.bDoAccurateFlips && (IsFilmMode() || bJudderTerminatorOnVideo) && PrevDeintMethod == CurrentMethod)

  00da7	83 7d 80 00	 cmp	 DWORD PTR _Info$[ebp+112], 0
  00dab	74 34		 je	 SHORT $LN35@YUVOutThre
  00dad	e8 00 00 00 00	 call	 ?IsFilmMode@@YAHXZ	; IsFilmMode
  00db2	85 c0		 test	 eax, eax
  00db4	75 09		 jne	 SHORT $LN34@YUVOutThre
  00db6	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?bJudderTerminatorOnVideo@@3HA, 0 ; bJudderTerminatorOnVideo
  00dbd	74 22		 je	 SHORT $LN35@YUVOutThre
$LN34@YUVOutThre:
  00dbf	8b 55 d4	 mov	 edx, DWORD PTR _PrevDeintMethod$[ebp]
  00dc2	3b 55 b8	 cmp	 edx, DWORD PTR _CurrentMethod$[ebp]
  00dc5	75 1a		 jne	 SHORT $LN35@YUVOutThre

; 1062 :                             {
; 1063 :                                 Timing_WaitForTimeToFlip(&Info, CurrentMethod, &bStopThread);

  00dc7	68 00 00 00 00	 push	 OFFSET ?bStopThread@@3HA ; bStopThread
  00dcc	8b 45 b8	 mov	 eax, DWORD PTR _CurrentMethod$[ebp]
  00dcf	50		 push	 eax
  00dd0	8d 8d 10 ff ff
	ff		 lea	 ecx, DWORD PTR _Info$[ebp]
  00dd6	51		 push	 ecx
  00dd7	e8 00 00 00 00	 call	 ?Timing_WaitForTimeToFlip@@YAXPAUTDeinterlaceInfo@@PAU_DEINTERLACE_METHOD@@PAH@Z ; Timing_WaitForTimeToFlip
  00ddc	83 c4 0c	 add	 esp, 12			; 0000000cH
  00ddf	eb 1d		 jmp	 SHORT $LN32@YUVOutThre
$LN35@YUVOutThre:

; 1064 :                             }
; 1065 :                             else if(Info.bDoAccurateFlips && (IsFilmMode() || bJudderTerminatorOnVideo))

  00de1	83 7d 80 00	 cmp	 DWORD PTR _Info$[ebp+112], 0
  00de5	74 17		 je	 SHORT $LN32@YUVOutThre
  00de7	e8 00 00 00 00	 call	 ?IsFilmMode@@YAHXZ	; IsFilmMode
  00dec	85 c0		 test	 eax, eax
  00dee	75 09		 jne	 SHORT $LN31@YUVOutThre
  00df0	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?bJudderTerminatorOnVideo@@3HA, 0 ; bJudderTerminatorOnVideo
  00df7	74 05		 je	 SHORT $LN32@YUVOutThre
$LN31@YUVOutThre:

; 1066 :                             {
; 1067 :                                 Timing_IncrementNoFlipAtTime();

  00df9	e8 00 00 00 00	 call	 ?Timing_IncrementNoFlipAtTime@@YAXXZ ; Timing_IncrementNoFlipAtTime
$LN32@YUVOutThre:

; 1068 :                             }
; 1069 : 
; 1070 :                             if(!GetActiveOutput()->Overlay_Flip(FlipFlag, bUseExtraBuffer, lpMultiBuffer, MultiPitch, &Info))

  00dfe	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  00e03	89 85 88 fc ff
	ff		 mov	 DWORD PTR tv576[ebp], eax
  00e09	8d 95 10 ff ff
	ff		 lea	 edx, DWORD PTR _Info$[ebp]
  00e0f	52		 push	 edx
  00e10	8b 45 ec	 mov	 eax, DWORD PTR _MultiPitch$[ebp]
  00e13	50		 push	 eax
  00e14	8b 8d e0 fe ff
	ff		 mov	 ecx, DWORD PTR _lpMultiBuffer$[ebp]
  00e1a	51		 push	 ecx
  00e1b	8b 95 dc fe ff
	ff		 mov	 edx, DWORD PTR _bUseExtraBuffer$[ebp]
  00e21	52		 push	 edx
  00e22	8b 85 7c fd ff
	ff		 mov	 eax, DWORD PTR _FlipFlag$150837[ebp]
  00e28	50		 push	 eax
  00e29	8b 8d 88 fc ff
	ff		 mov	 ecx, DWORD PTR tv576[ebp]
  00e2f	8b 11		 mov	 edx, DWORD PTR [ecx]
  00e31	8b 8d 88 fc ff
	ff		 mov	 ecx, DWORD PTR tv576[ebp]
  00e37	8b 42 50	 mov	 eax, DWORD PTR [edx+80]
  00e3a	ff d0		 call	 eax
  00e3c	85 c0		 test	 eax, eax
  00e3e	0f 85 95 00 00
	00		 jne	 $LN30@YUVOutThre

; 1071 :                             {
; 1072 :                                 Providers_GetCurrentSource()->Stop();

  00e44	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  00e49	89 85 84 fc ff
	ff		 mov	 DWORD PTR tv588[ebp], eax
  00e4f	8b 8d 84 fc ff
	ff		 mov	 ecx, DWORD PTR tv588[ebp]
  00e55	8b 11		 mov	 edx, DWORD PTR [ecx]
  00e57	8b 8d 84 fc ff
	ff		 mov	 ecx, DWORD PTR tv588[ebp]
  00e5d	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  00e60	ff d0		 call	 eax

; 1073 :                                 LOG(1, _T("Falling out after Overlay_Flip"));

  00e62	68 00 00 00 00	 push	 OFFSET ??_C@_1DO@NBELHMEC@?$AAF?$AAa?$AAl?$AAl?$AAi?$AAn?$AAg?$AA?5?$AAo?$AAu?$AAt?$AA?5?$AAa?$AAf?$AAt?$AAe?$AAr?$AA?5?$AAO?$AAv?$AAe?$AAr?$AAl?$AAa?$AAy?$AA_?$AAF?$AAl?$AAi?$AAp?$AA?$AA@
  00e67	6a 01		 push	 1
  00e69	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00e6e	83 c4 08	 add	 esp, 8

; 1074 :                                 PostMessageToMainWindow(WM_COMMAND, IDM_OVERLAY_STOP, 0);

  00e71	6a 00		 push	 0
  00e73	68 4e 02 00 00	 push	 590			; 0000024eH
  00e78	68 11 01 00 00	 push	 273			; 00000111H
  00e7d	e8 00 00 00 00	 call	 ?PostMessageToMainWindow@@YAXIIJ@Z ; PostMessageToMainWindow
  00e82	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1075 :                                 PostMessageToMainWindow(WM_COMMAND, IDM_OVERLAY_START, 0);

  00e85	6a 00		 push	 0
  00e87	68 4f 02 00 00	 push	 591			; 0000024fH
  00e8c	68 11 01 00 00	 push	 273			; 00000111H
  00e91	e8 00 00 00 00	 call	 ?PostMessageToMainWindow@@YAXIIJ@Z ; PostMessageToMainWindow
  00e96	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1076 :                                 return 1;

  00e99	c7 85 3c fd ff
	ff 01 00 00 00	 mov	 DWORD PTR $T360794[ebp], 1
  00ea3	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+12], 1
  00ea7	8d 4d e7	 lea	 ecx, DWORD PTR _ThisThread$[ebp]
  00eaa	e8 00 00 00 00	 call	 ??1ComInitialise@@QAE@XZ ; ComInitialise::~ComInitialise
  00eaf	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+12], 0
  00eb3	8d 8d e4 fe ff
	ff		 lea	 ecx, DWORD PTR _thisThread$[ebp]
  00eb9	e8 00 00 00 00	 call	 ??1DScalerThread@@QAE@XZ ; DScalerThread::~DScalerThread
  00ebe	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
  00ec5	8d 4d 98	 lea	 ecx, DWORD PTR _message$[ebp]
  00ec8	e8 00 00 00 00	 call	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
  00ecd	8b 85 3c fd ff
	ff		 mov	 eax, DWORD PTR $T360794[ebp]
  00ed3	9b		 fwait
  00ed4	e9 67 07 00 00	 jmp	 $LN113@YUVOutThre
$LN30@YUVOutThre:

; 1077 :                             }
; 1078 : 
; 1079 : 
; 1080 :                             // update which surface we write to only after a flip
; 1081 :                             bUseExtraBuffer = Filter_WillWeDoOutput()
; 1082 :                                            || (pMultiFrames && pMultiFrames->IsActive())
; 1083 :                                            || (TimeShiftIsRunning() && !TimeShiftWorkOnInputFrames());

  00ed9	e8 00 00 00 00	 call	 ?Filter_WillWeDoOutput@@YAHXZ ; Filter_WillWeDoOutput
  00ede	85 c0		 test	 eax, eax
  00ee0	75 36		 jne	 SHORT $LN126@YUVOutThre
  00ee2	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?pMultiFrames@@3PAVCMultiFrames@@A, 0 ; pMultiFrames
  00ee9	74 0f		 je	 SHORT $LN125@YUVOutThre
  00eeb	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?pMultiFrames@@3PAVCMultiFrames@@A ; pMultiFrames
  00ef1	e8 00 00 00 00	 call	 ?IsActive@CMultiFrames@@QAEHXZ ; CMultiFrames::IsActive
  00ef6	85 c0		 test	 eax, eax
  00ef8	75 1e		 jne	 SHORT $LN126@YUVOutThre
$LN125@YUVOutThre:
  00efa	e8 00 00 00 00	 call	 ?TimeShiftIsRunning@@YAHXZ ; TimeShiftIsRunning
  00eff	85 c0		 test	 eax, eax
  00f01	74 09		 je	 SHORT $LN127@YUVOutThre
  00f03	e8 00 00 00 00	 call	 ?TimeShiftWorkOnInputFrames@@YAHXZ ; TimeShiftWorkOnInputFrames
  00f08	85 c0		 test	 eax, eax
  00f0a	74 0c		 je	 SHORT $LN126@YUVOutThre
$LN127@YUVOutThre:
  00f0c	c7 85 80 fc ff
	ff 00 00 00 00	 mov	 DWORD PTR tv609[ebp], 0
  00f16	eb 0a		 jmp	 SHORT $LN128@YUVOutThre
$LN126@YUVOutThre:
  00f18	c7 85 80 fc ff
	ff 01 00 00 00	 mov	 DWORD PTR tv609[ebp], 1
$LN128@YUVOutThre:
  00f22	8b 8d 80 fc ff
	ff		 mov	 ecx, DWORD PTR tv609[ebp]
  00f28	89 8d dc fe ff
	ff		 mov	 DWORD PTR _bUseExtraBuffer$[ebp], ecx
$LN42@YUVOutThre:

; 1084 : 
; 1085 : #ifdef USE_PERFORMANCE_STATS
; 1086 :                             pPerf->StopCount(PERF_FLIP_OVERLAY);
; 1087 : #endif
; 1088 :                         }
; 1089 :                     }
; 1090 :                 }

  00f2e	9b		 fwait
  00f2f	e9 89 00 00 00	 jmp	 __tryend$?YUVOutThread@@YGKPAX@Z$1
__catch$?YUVOutThread@@YGKPAX@Z$0:

; 1091 :                 catch(...)
; 1092 :                 {
; 1093 :                     if(bOverlayLocked == TRUE)

  00f34	83 bd 8c fd ff
	ff 01		 cmp	 DWORD PTR _bOverlayLocked$150813[ebp], 1
  00f3b	75 25		 jne	 SHORT $LN29@YUVOutThre

; 1094 :                     {
; 1095 : #ifdef USE_PERFORMANCE_STATS
; 1096 :                         pPerf->StartCount(PERF_UNLOCK_OVERLAY);
; 1097 : #endif
; 1098 : 
; 1099 :                         GetActiveOutput()->Overlay_Unlock_Back_Buffer(bUseExtraBuffer);

  00f3d	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  00f42	89 85 7c fc ff
	ff		 mov	 DWORD PTR tv613[ebp], eax
  00f48	8b 95 dc fe ff
	ff		 mov	 edx, DWORD PTR _bUseExtraBuffer$[ebp]
  00f4e	52		 push	 edx
  00f4f	8b 85 7c fc ff
	ff		 mov	 eax, DWORD PTR tv613[ebp]
  00f55	8b 10		 mov	 edx, DWORD PTR [eax]
  00f57	8b 8d 7c fc ff
	ff		 mov	 ecx, DWORD PTR tv613[ebp]
  00f5d	8b 42 44	 mov	 eax, DWORD PTR [edx+68]
  00f60	ff d0		 call	 eax
$LN29@YUVOutThre:

; 1100 : 
; 1101 : #ifdef USE_PERFORMANCE_STATS
; 1102 :                         pPerf->StopCount(PERF_UNLOCK_OVERLAY);
; 1103 : #endif
; 1104 :                     }
; 1105 :                     ErrorBox(_T("Crash in output code. Restart DScaler."));

  00f62	68 00 00 00 00	 push	 OFFSET ??_C@_1EO@GJJJMFOA@?$AAC?$AAr?$AAa?$AAs?$AAh?$AA?5?$AAi?$AAn?$AA?5?$AAo?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?5?$AAc?$AAo?$AAd?$AAe?$AA?4?$AA?5?$AAR?$AAe?$AAs?$AAt?$AAa?$AAr?$AAt?$AA?5?$AAD?$AAS@
  00f67	8d 8d 20 fd ff
	ff		 lea	 ecx, DWORD PTR $T360799[ebp]
  00f6d	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> >
  00f72	c6 45 fc 07	 mov	 BYTE PTR __$EHRec$[ebp+12], 7
  00f76	8d 8d 20 fd ff
	ff		 lea	 ecx, DWORD PTR $T360799[ebp]
  00f7c	51		 push	 ecx
  00f7d	68 51 04 00 00	 push	 1105			; 00000451H
  00f82	68 00 00 00 00	 push	 OFFSET ??_C@_1CC@MBPACLGO@?$AA?4?$AA?2?$AAO?$AAu?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AAs?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  00f87	6a 00		 push	 0
  00f89	e8 00 00 00 00	 call	 ?_ErrorBox@@YAXPAUHWND__@@PB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _ErrorBox
  00f8e	83 c4 10	 add	 esp, 16			; 00000010H
  00f91	c6 45 fc 06	 mov	 BYTE PTR __$EHRec$[ebp+12], 6
  00f95	8d 8d 20 fd ff
	ff		 lea	 ecx, DWORD PTR $T360799[ebp]
  00f9b	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> >

; 1106 :                     return 1;

  00fa0	c7 85 1c fd ff
	ff 01 00 00 00	 mov	 DWORD PTR $T360800[ebp], 1
  00faa	c7 45 fc 03 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 3
  00fb1	b8 00 00 00 00	 mov	 eax, $LN150@YUVOutThre
  00fb6	c3		 ret	 0

; 1107 :                 }

  00fb7	b8 00 00 00 00	 mov	 eax, __tryend$?YUVOutThread@@YGKPAX@Z$1
  00fbc	c3		 ret	 0
__tryend$?YUVOutThread@@YGKPAX@Z$1:
  00fbd	c7 45 fc 03 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 3
  00fc4	eb 36		 jmp	 SHORT $LN149@YUVOutThre
$LN150@YUVOutThre:

; 1106 :                     return 1;

  00fc6	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+12], 1
  00fca	8d 4d e7	 lea	 ecx, DWORD PTR _ThisThread$[ebp]
  00fcd	e8 00 00 00 00	 call	 ??1ComInitialise@@QAE@XZ ; ComInitialise::~ComInitialise
  00fd2	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+12], 0
  00fd6	8d 8d e4 fe ff
	ff		 lea	 ecx, DWORD PTR _thisThread$[ebp]
  00fdc	e8 00 00 00 00	 call	 ??1DScalerThread@@QAE@XZ ; DScalerThread::~DScalerThread
  00fe1	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
  00fe8	8d 4d 98	 lea	 ecx, DWORD PTR _message$[ebp]
  00feb	e8 00 00 00 00	 call	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
  00ff0	8b 85 1c fd ff
	ff		 mov	 eax, DWORD PTR $T360800[ebp]
  00ff6	9b		 fwait
  00ff7	e9 44 06 00 00	 jmp	 $LN113@YUVOutThre
$LN149@YUVOutThre:

; 1108 : 
; 1109 :                 // Vertical flipping support
; 1110 :                 // change the pictures back to how they were before
; 1111 :                 // not that we use the bDoVerticalFlipCurrent
; 1112 :                 // at the top and here, so this variable cannot change
; 1113 :                 // during the processing
; 1114 :                 if (bDoVerticalFlipCurrent)

  00ffc	83 bd 88 fd ff
	ff 00		 cmp	 DWORD PTR _bDoVerticalFlipCurrent$150788[ebp], 0
  01003	0f 84 2f 01 00
	00		 je	 $LN25@YUVOutThre

; 1115 :                 {
; 1116 :                     // Use of a negative pitch + a pointer to the last line of the field
; 1117 :                     Info.InputPitch *= -1;

  01009	8b 55 94	 mov	 edx, DWORD PTR _Info$[ebp+132]
  0100c	6b d2 ff	 imul	 edx, -1
  0100f	89 55 94	 mov	 DWORD PTR _Info$[ebp+132], edx

; 1118 : 
; 1119 :                     for(int i(0); i < MAX_PICTURE_HISTORY; ++i)

  01012	c7 85 78 fd ff
	ff 00 00 00 00	 mov	 DWORD PTR _i$150857[ebp], 0
  0101c	eb 0f		 jmp	 SHORT $LN27@YUVOutThre
$LN26@YUVOutThre:
  0101e	8b 85 78 fd ff
	ff		 mov	 eax, DWORD PTR _i$150857[ebp]
  01024	83 c0 01	 add	 eax, 1
  01027	89 85 78 fd ff
	ff		 mov	 DWORD PTR _i$150857[ebp], eax
$LN27@YUVOutThre:
  0102d	83 bd 78 fd ff
	ff 0a		 cmp	 DWORD PTR _i$150857[ebp], 10 ; 0000000aH
  01034	0f 8d fe 00 00
	00		 jge	 $LN25@YUVOutThre

; 1120 :                     {
; 1121 :                         if(Info.PictureHistory[i] != NULL)

  0103a	8b 8d 78 fd ff
	ff		 mov	 ecx, DWORD PTR _i$150857[ebp]
  01040	83 bc 8d 14 ff
	ff ff 00	 cmp	 DWORD PTR _Info$[ebp+ecx*4+4], 0
  01048	0f 84 e5 00 00
	00		 je	 $LN21@YUVOutThre

; 1122 :                         {
; 1123 :                             Info.PictureHistory[i]->pData -= (Info.FieldHeight-1) * Info.InputPitch;

  0104e	8b 95 78 fd ff
	ff		 mov	 edx, DWORD PTR _i$150857[ebp]
  01054	8b 84 95 14 ff
	ff ff		 mov	 eax, DWORD PTR _Info$[ebp+edx*4+4]
  0105b	8b 8d 64 ff ff
	ff		 mov	 ecx, DWORD PTR _Info$[ebp+84]
  01061	83 e9 01	 sub	 ecx, 1
  01064	0f af 4d 94	 imul	 ecx, DWORD PTR _Info$[ebp+132]
  01068	8b 10		 mov	 edx, DWORD PTR [eax]
  0106a	2b d1		 sub	 edx, ecx
  0106c	8b 85 78 fd ff
	ff		 mov	 eax, DWORD PTR _i$150857[ebp]
  01072	8b 8c 85 14 ff
	ff ff		 mov	 ecx, DWORD PTR _Info$[ebp+eax*4+4]
  01079	89 11		 mov	 DWORD PTR [ecx], edx

; 1124 : 
; 1125 :                             // make the odd fields even and the even fields odd.
; 1126 :                             if(Info.PictureHistory[i]->Flags & PICTURE_INTERLACED_ODD)

  0107b	8b 95 78 fd ff
	ff		 mov	 edx, DWORD PTR _i$150857[ebp]
  01081	8b 84 95 14 ff
	ff ff		 mov	 eax, DWORD PTR _Info$[ebp+edx*4+4]
  01088	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  0108b	83 e1 01	 and	 ecx, 1
  0108e	74 48		 je	 SHORT $LN23@YUVOutThre

; 1127 :                             {
; 1128 :                                 Info.PictureHistory[i]->Flags &= ~PICTURE_INTERLACED_ODD;

  01090	8b 95 78 fd ff
	ff		 mov	 edx, DWORD PTR _i$150857[ebp]
  01096	8b 84 95 14 ff
	ff ff		 mov	 eax, DWORD PTR _Info$[ebp+edx*4+4]
  0109d	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  010a0	83 e1 fe	 and	 ecx, -2			; fffffffeH
  010a3	8b 95 78 fd ff
	ff		 mov	 edx, DWORD PTR _i$150857[ebp]
  010a9	8b 84 95 14 ff
	ff ff		 mov	 eax, DWORD PTR _Info$[ebp+edx*4+4]
  010b0	89 48 04	 mov	 DWORD PTR [eax+4], ecx

; 1129 :                                 Info.PictureHistory[i]->Flags |= PICTURE_INTERLACED_EVEN;

  010b3	8b 8d 78 fd ff
	ff		 mov	 ecx, DWORD PTR _i$150857[ebp]
  010b9	8b 94 8d 14 ff
	ff ff		 mov	 edx, DWORD PTR _Info$[ebp+ecx*4+4]
  010c0	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  010c3	83 c8 02	 or	 eax, 2
  010c6	8b 8d 78 fd ff
	ff		 mov	 ecx, DWORD PTR _i$150857[ebp]
  010cc	8b 94 8d 14 ff
	ff ff		 mov	 edx, DWORD PTR _Info$[ebp+ecx*4+4]
  010d3	89 42 04	 mov	 DWORD PTR [edx+4], eax
  010d6	eb 5b		 jmp	 SHORT $LN21@YUVOutThre
$LN23@YUVOutThre:

; 1130 :                             }
; 1131 :                             else if(Info.PictureHistory[i]->Flags & PICTURE_INTERLACED_EVEN)

  010d8	8b 85 78 fd ff
	ff		 mov	 eax, DWORD PTR _i$150857[ebp]
  010de	8b 8c 85 14 ff
	ff ff		 mov	 ecx, DWORD PTR _Info$[ebp+eax*4+4]
  010e5	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  010e8	83 e2 02	 and	 edx, 2
  010eb	74 46		 je	 SHORT $LN21@YUVOutThre

; 1132 :                             {
; 1133 :                                 Info.PictureHistory[i]->Flags &= ~PICTURE_INTERLACED_EVEN;

  010ed	8b 85 78 fd ff
	ff		 mov	 eax, DWORD PTR _i$150857[ebp]
  010f3	8b 8c 85 14 ff
	ff ff		 mov	 ecx, DWORD PTR _Info$[ebp+eax*4+4]
  010fa	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  010fd	83 e2 fd	 and	 edx, -3			; fffffffdH
  01100	8b 85 78 fd ff
	ff		 mov	 eax, DWORD PTR _i$150857[ebp]
  01106	8b 8c 85 14 ff
	ff ff		 mov	 ecx, DWORD PTR _Info$[ebp+eax*4+4]
  0110d	89 51 04	 mov	 DWORD PTR [ecx+4], edx

; 1134 :                                 Info.PictureHistory[i]->Flags |= PICTURE_INTERLACED_ODD;

  01110	8b 95 78 fd ff
	ff		 mov	 edx, DWORD PTR _i$150857[ebp]
  01116	8b 84 95 14 ff
	ff ff		 mov	 eax, DWORD PTR _Info$[ebp+edx*4+4]
  0111d	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  01120	83 c9 01	 or	 ecx, 1
  01123	8b 95 78 fd ff
	ff		 mov	 edx, DWORD PTR _i$150857[ebp]
  01129	8b 84 95 14 ff
	ff ff		 mov	 eax, DWORD PTR _Info$[ebp+edx*4+4]
  01130	89 48 04	 mov	 DWORD PTR [eax+4], ecx
$LN21@YUVOutThre:

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

  01133	e9 e6 fe ff ff	 jmp	 $LN26@YUVOutThre
$LN25@YUVOutThre:

; 1138 :                 }
; 1139 :             }
; 1140 :             else

  01138	e9 27 01 00 00	 jmp	 $LN19@YUVOutThre
$LN87@YUVOutThre:

; 1141 :             {
; 1142 :                 // When taking a still, we always work with system memory for performance reasons
; 1143 :                 if (bTakeStill)

  0113d	83 7d e8 00	 cmp	 DWORD PTR _bTakeStill$[ebp], 0
  01141	0f 84 1d 01 00
	00		 je	 $LN19@YUVOutThre

; 1144 :                 {
; 1145 :                     // We need to copy the content of the overlay in the memory buffer
; 1146 : 
; 1147 :                     BYTE* StillBuffer = Info.Overlay;

  01147	8b 8d 3c ff ff
	ff		 mov	 ecx, DWORD PTR _Info$[ebp+44]
  0114d	89 8d 70 fd ff
	ff		 mov	 DWORD PTR _StillBuffer$150867[ebp], ecx

; 1148 :                     int LinePitch = Info.OverlayPitch;

  01153	8b 95 54 ff ff
	ff		 mov	 edx, DWORD PTR _Info$[ebp+68]
  01159	89 95 74 fd ff
	ff		 mov	 DWORD PTR _LinePitch$150868[ebp], edx

; 1149 : 
; 1150 :                     // make sure the lock is checked
; 1151 :                     // and paired
; 1152 :                     if(GetActiveOutput()->Overlay_Lock(&Info))

  0115f	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  01164	89 85 78 fc ff
	ff		 mov	 DWORD PTR tv682[ebp], eax
  0116a	8d 85 10 ff ff
	ff		 lea	 eax, DWORD PTR _Info$[ebp]
  01170	50		 push	 eax
  01171	8b 8d 78 fc ff
	ff		 mov	 ecx, DWORD PTR tv682[ebp]
  01177	8b 11		 mov	 edx, DWORD PTR [ecx]
  01179	8b 8d 78 fc ff
	ff		 mov	 ecx, DWORD PTR tv682[ebp]
  0117f	8b 42 48	 mov	 eax, DWORD PTR [edx+72]
  01182	ff d0		 call	 eax
  01184	85 c0		 test	 eax, eax
  01186	0f 84 a7 00 00
	00		 je	 $LN18@YUVOutThre

; 1153 :                     {
; 1154 :                         BYTE* CurrentLine = Info.Overlay;

  0118c	8b 8d 3c ff ff
	ff		 mov	 ecx, DWORD PTR _Info$[ebp+44]
  01192	89 8d 68 fd ff
	ff		 mov	 DWORD PTR _CurrentLine$150870[ebp], ecx

; 1155 :                         BYTE* DestLine = StillBuffer;

  01198	8b 95 70 fd ff
	ff		 mov	 edx, DWORD PTR _StillBuffer$150867[ebp]
  0119e	89 95 6c fd ff
	ff		 mov	 DWORD PTR _DestLine$150871[ebp], edx

; 1156 :                         for (int i = 0; i < Info.FrameHeight; i++)

  011a4	c7 85 64 fd ff
	ff 00 00 00 00	 mov	 DWORD PTR _i$150872[ebp], 0
  011ae	eb 0f		 jmp	 SHORT $LN17@YUVOutThre
$LN16@YUVOutThre:
  011b0	8b 85 64 fd ff
	ff		 mov	 eax, DWORD PTR _i$150872[ebp]
  011b6	83 c0 01	 add	 eax, 1
  011b9	89 85 64 fd ff
	ff		 mov	 DWORD PTR _i$150872[ebp], eax
$LN17@YUVOutThre:
  011bf	8b 8d 64 fd ff
	ff		 mov	 ecx, DWORD PTR _i$150872[ebp]
  011c5	3b 8d 60 ff ff
	ff		 cmp	 ecx, DWORD PTR _Info$[ebp+80]
  011cb	7d 44		 jge	 SHORT $LN15@YUVOutThre

; 1157 :                         {
; 1158 :                             Info.pMemcpy(DestLine, CurrentLine, Info.LineLength);

  011cd	8b 95 58 ff ff
	ff		 mov	 edx, DWORD PTR _Info$[ebp+72]
  011d3	52		 push	 edx
  011d4	8b 85 68 fd ff
	ff		 mov	 eax, DWORD PTR _CurrentLine$150870[ebp]
  011da	50		 push	 eax
  011db	8b 8d 6c fd ff
	ff		 mov	 ecx, DWORD PTR _DestLine$150871[ebp]
  011e1	51		 push	 ecx
  011e2	ff 95 70 ff ff
	ff		 call	 DWORD PTR _Info$[ebp+96]
  011e8	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1159 :                             DestLine += LinePitch;

  011eb	8b 95 6c fd ff
	ff		 mov	 edx, DWORD PTR _DestLine$150871[ebp]
  011f1	03 95 74 fd ff
	ff		 add	 edx, DWORD PTR _LinePitch$150868[ebp]
  011f7	89 95 6c fd ff
	ff		 mov	 DWORD PTR _DestLine$150871[ebp], edx

; 1160 :                             CurrentLine += Info.OverlayPitch;

  011fd	8b 85 68 fd ff
	ff		 mov	 eax, DWORD PTR _CurrentLine$150870[ebp]
  01203	03 85 54 ff ff
	ff		 add	 eax, DWORD PTR _Info$[ebp+68]
  01209	89 85 68 fd ff
	ff		 mov	 DWORD PTR _CurrentLine$150870[ebp], eax

; 1161 :                         }

  0120f	eb 9f		 jmp	 SHORT $LN16@YUVOutThre
$LN15@YUVOutThre:

; 1162 :                         DO_EMMS;

  01211	0f 77		 emms

; 1163 :                         GetActiveOutput()->Overlay_Unlock();

  01213	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  01218	89 85 74 fc ff
	ff		 mov	 DWORD PTR tv697[ebp], eax
  0121e	8b 8d 74 fc ff
	ff		 mov	 ecx, DWORD PTR tv697[ebp]
  01224	8b 11		 mov	 edx, DWORD PTR [ecx]
  01226	8b 8d 74 fc ff
	ff		 mov	 ecx, DWORD PTR tv697[ebp]
  0122c	8b 42 4c	 mov	 eax, DWORD PTR [edx+76]
  0122f	ff d0		 call	 eax

; 1164 :                     }
; 1165 :                     else

  01231	eb 19		 jmp	 SHORT $LN13@YUVOutThre
$LN18@YUVOutThre:

; 1166 :                     {
; 1167 :                         bTakeStill = FALSE;

  01233	c7 45 e8 00 00
	00 00		 mov	 DWORD PTR _bTakeStill$[ebp], 0

; 1168 :                         if (pAllocBuf != NULL)

  0123a	83 7d d8 00	 cmp	 DWORD PTR _pAllocBuf$[ebp], 0
  0123e	74 0c		 je	 SHORT $LN13@YUVOutThre

; 1169 :                         {
; 1170 :                             free(pAllocBuf);

  01240	8b 4d d8	 mov	 ecx, DWORD PTR _pAllocBuf$[ebp]
  01243	51		 push	 ecx
  01244	e8 00 00 00 00	 call	 _free
  01249	83 c4 04	 add	 esp, 4
$LN13@YUVOutThre:

; 1171 :                         }
; 1172 :                     }
; 1173 : 
; 1174 :                     Info.Overlay = StillBuffer;

  0124c	8b 95 70 fd ff
	ff		 mov	 edx, DWORD PTR _StillBuffer$150867[ebp]
  01252	89 95 3c ff ff
	ff		 mov	 DWORD PTR _Info$[ebp+44], edx

; 1175 :                     Info.OverlayPitch = LinePitch;

  01258	8b 85 74 fd ff
	ff		 mov	 eax, DWORD PTR _LinePitch$150868[ebp]
  0125e	89 85 54 ff ff
	ff		 mov	 DWORD PTR _Info$[ebp+68], eax
$LN19@YUVOutThre:

; 1176 :                 }
; 1177 :             }
; 1178 : 
; 1179 :             if (bTakeStill)

  01264	83 7d e8 00	 cmp	 DWORD PTR _bTakeStill$[ebp], 0
  01268	0f 84 2c 01 00
	00		 je	 $LN8@YUVOutThre

; 1180 :             {
; 1181 :                 if (Request.param2)

  0126e	83 3d 08 00 00
	00 00		 cmp	 DWORD PTR ?Request@@3UTGUIRequest@@A+8, 0
  01275	74 4a		 je	 SHORT $LN11@YUVOutThre

; 1182 :                 {
; 1183 :                     ((CStillSource*) Providers_GetSnapshotsSource())->SaveSnapshotInMemory(CurrentMethod->bIsHalfHeight ? Info.FieldHeight : Info.FrameHeight, Info.FrameWidth, pAllocBuf, Info.OverlayPitch);

  01277	8b 4d b8	 mov	 ecx, DWORD PTR _CurrentMethod$[ebp]
  0127a	83 79 10 00	 cmp	 DWORD PTR [ecx+16], 0
  0127e	74 0e		 je	 SHORT $LN129@YUVOutThre
  01280	8b 95 64 ff ff
	ff		 mov	 edx, DWORD PTR _Info$[ebp+84]
  01286	89 95 70 fc ff
	ff		 mov	 DWORD PTR tv715[ebp], edx
  0128c	eb 0c		 jmp	 SHORT $LN130@YUVOutThre
$LN129@YUVOutThre:
  0128e	8b 85 60 ff ff
	ff		 mov	 eax, DWORD PTR _Info$[ebp+80]
  01294	89 85 70 fc ff
	ff		 mov	 DWORD PTR tv715[ebp], eax
$LN130@YUVOutThre:
  0129a	8b 8d 54 ff ff
	ff		 mov	 ecx, DWORD PTR _Info$[ebp+68]
  012a0	51		 push	 ecx
  012a1	8b 55 d8	 mov	 edx, DWORD PTR _pAllocBuf$[ebp]
  012a4	52		 push	 edx
  012a5	8b 85 5c ff ff
	ff		 mov	 eax, DWORD PTR _Info$[ebp+76]
  012ab	50		 push	 eax
  012ac	8b 8d 70 fc ff
	ff		 mov	 ecx, DWORD PTR tv715[ebp]
  012b2	51		 push	 ecx
  012b3	e8 00 00 00 00	 call	 ?Providers_GetSnapshotsSource@@YAPAVCSource@@XZ ; Providers_GetSnapshotsSource
  012b8	8b c8		 mov	 ecx, eax
  012ba	e8 00 00 00 00	 call	 ?SaveSnapshotInMemory@CStillSource@@QAEXHHPAEJ@Z ; CStillSource::SaveSnapshotInMemory

; 1184 :                 }
; 1185 :                 else

  012bf	eb 5d		 jmp	 SHORT $LN9@YUVOutThre
$LN11@YUVOutThre:

; 1186 :                 {
; 1187 :                     ((CStillSource*) Providers_GetSnapshotsSource())->SaveSnapshotInFile(CurrentMethod->bIsHalfHeight ? Info.FieldHeight : Info.FrameHeight, Info.FrameWidth, Info.Overlay, Info.OverlayPitch);

  012c1	8b 55 b8	 mov	 edx, DWORD PTR _CurrentMethod$[ebp]
  012c4	83 7a 10 00	 cmp	 DWORD PTR [edx+16], 0
  012c8	74 0e		 je	 SHORT $LN131@YUVOutThre
  012ca	8b 85 64 ff ff
	ff		 mov	 eax, DWORD PTR _Info$[ebp+84]
  012d0	89 85 6c fc ff
	ff		 mov	 DWORD PTR tv728[ebp], eax
  012d6	eb 0c		 jmp	 SHORT $LN132@YUVOutThre
$LN131@YUVOutThre:
  012d8	8b 8d 60 ff ff
	ff		 mov	 ecx, DWORD PTR _Info$[ebp+80]
  012de	89 8d 6c fc ff
	ff		 mov	 DWORD PTR tv728[ebp], ecx
$LN132@YUVOutThre:
  012e4	8b 95 54 ff ff
	ff		 mov	 edx, DWORD PTR _Info$[ebp+68]
  012ea	52		 push	 edx
  012eb	8b 85 3c ff ff
	ff		 mov	 eax, DWORD PTR _Info$[ebp+44]
  012f1	50		 push	 eax
  012f2	8b 8d 5c ff ff
	ff		 mov	 ecx, DWORD PTR _Info$[ebp+76]
  012f8	51		 push	 ecx
  012f9	8b 95 6c fc ff
	ff		 mov	 edx, DWORD PTR tv728[ebp]
  012ff	52		 push	 edx
  01300	e8 00 00 00 00	 call	 ?Providers_GetSnapshotsSource@@YAPAVCSource@@XZ ; Providers_GetSnapshotsSource
  01305	8b c8		 mov	 ecx, eax
  01307	e8 00 00 00 00	 call	 ?SaveSnapshotInFile@CStillSource@@QAEXHHPAEJ@Z ; CStillSource::SaveSnapshotInFile

; 1188 :                     if (pAllocBuf != NULL)

  0130c	83 7d d8 00	 cmp	 DWORD PTR _pAllocBuf$[ebp], 0
  01310	74 0c		 je	 SHORT $LN9@YUVOutThre

; 1189 :                     {
; 1190 :                         free(pAllocBuf);

  01312	8b 45 d8	 mov	 eax, DWORD PTR _pAllocBuf$[ebp]
  01315	50		 push	 eax
  01316	e8 00 00 00 00	 call	 _free
  0131b	83 c4 04	 add	 esp, 4
$LN9@YUVOutThre:

; 1191 :                     }
; 1192 :                 }
; 1193 :                 Request.param1--;

  0131e	8b 0d 04 00 00
	00		 mov	 ecx, DWORD PTR ?Request@@3UTGUIRequest@@A+4
  01324	83 e9 01	 sub	 ecx, 1
  01327	89 0d 04 00 00
	00		 mov	 DWORD PTR ?Request@@3UTGUIRequest@@A+4, ecx

; 1194 :                 if (Request.param1 <= 0)

  0132d	83 3d 04 00 00
	00 00		 cmp	 DWORD PTR ?Request@@3UTGUIRequest@@A+4, 0
  01334	7f 64		 jg	 SHORT $LN8@YUVOutThre

; 1195 :                 {
; 1196 :                     if (Request.param2 && Setting_GetValue(WM_STILL_GETVALUE, OSDFORSTILLS))

  01336	83 3d 08 00 00
	00 00		 cmp	 DWORD PTR ?Request@@3UTGUIRequest@@A+8, 0
  0133d	74 51		 je	 SHORT $LN7@YUVOutThre
  0133f	6a 0a		 push	 10			; 0000000aH
  01341	68 29 80 00 00	 push	 32809			; 00008029H
  01346	e8 00 00 00 00	 call	 ?Setting_GetValue@@YAJJJ@Z ; Setting_GetValue
  0134b	83 c4 08	 add	 esp, 8
  0134e	85 c0		 test	 eax, eax
  01350	74 3e		 je	 SHORT $LN7@YUVOutThre

; 1197 :                     {
; 1198 :                         OSD_ShowText(_T("Still(s) in memory"), 0);

  01352	68 00 00 00 00	 push	 OFFSET ??_C@_1CG@PJDCMLMO@?$AAS?$AAt?$AAi?$AAl?$AAl?$AA?$CI?$AAs?$AA?$CJ?$AA?5?$AAi?$AAn?$AA?5?$AAm?$AAe?$AAm?$AAo?$AAr?$AAy?$AA?$AA@
  01357	8d 8d 00 fd ff
	ff		 lea	 ecx, DWORD PTR $T360805[ebp]
  0135d	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> >
  01362	c6 45 fc 08	 mov	 BYTE PTR __$EHRec$[ebp+12], 8
  01366	6a 00		 push	 0
  01368	6a 00		 push	 0
  0136a	83 ec 08	 sub	 esp, 8
  0136d	d9 ee		 fldz
  0136f	dd 1c 24	 fstp	 QWORD PTR [esp]
  01372	8d 95 00 fd ff
	ff		 lea	 edx, DWORD PTR $T360805[ebp]
  01378	52		 push	 edx
  01379	e8 00 00 00 00	 call	 ?OSD_ShowText@@YAXABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@NHH@Z ; OSD_ShowText
  0137e	83 c4 14	 add	 esp, 20			; 00000014H
  01381	c6 45 fc 03	 mov	 BYTE PTR __$EHRec$[ebp+12], 3
  01385	8d 8d 00 fd ff
	ff		 lea	 ecx, DWORD PTR $T360805[ebp]
  0138b	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
$LN7@YUVOutThre:

; 1199 :                     }
; 1200 :                     Request.type = REQ_NONE;

  01390	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?Request@@3UTGUIRequest@@A, 0
$LN8@YUVOutThre:

; 1201 :                 }
; 1202 :             }
; 1203 : 
; 1204 :             // if asked save the current Info to a file
; 1205 :             if(Request.type == REQ_SNAPSHOT)

  0139a	83 3d 00 00 00
	00 02		 cmp	 DWORD PTR ?Request@@3UTGUIRequest@@A, 2
  013a1	75 19		 jne	 SHORT $LN6@YUVOutThre

; 1206 :             {
; 1207 :                 SaveStreamSnapshot(&Info);

  013a3	8d 85 10 ff ff
	ff		 lea	 eax, DWORD PTR _Info$[ebp]
  013a9	50		 push	 eax
  013aa	e8 00 00 00 00	 call	 ?SaveStreamSnapshot@@YAXPAUTDeinterlaceInfo@@@Z ; SaveStreamSnapshot
  013af	83 c4 04	 add	 esp, 4

; 1208 :                 Request.type = REQ_NONE;

  013b2	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?Request@@3UTGUIRequest@@A, 0
$LN6@YUVOutThre:

; 1209 :             }
; 1210 : 
; 1211 : #ifdef WANT_DSHOW_SUPPORT
; 1212 :             // if request for changing capture resolution
; 1213 :             if(Request.type == REQ_DSHOW_CHANGERES)

  013bc	83 3d 00 00 00
	00 03		 cmp	 DWORD PTR ?Request@@3UTGUIRequest@@A, 3
  013c3	75 1d		 jne	 SHORT $LN5@YUVOutThre

; 1214 :             {
; 1215 :                 ((CDSCaptureSource*)Providers_GetCurrentSource())->ChangeRes(Request.param1);

  013c5	8b 0d 04 00 00
	00		 mov	 ecx, DWORD PTR ?Request@@3UTGUIRequest@@A+4
  013cb	51		 push	 ecx
  013cc	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  013d1	8b c8		 mov	 ecx, eax
  013d3	e8 00 00 00 00	 call	 ?ChangeRes@CDSCaptureSource@@QAEHH@Z ; CDSCaptureSource::ChangeRes

; 1216 :                 Request.type = REQ_NONE;

  013d8	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?Request@@3UTGUIRequest@@A, 0
$LN5@YUVOutThre:

; 1217 :             }
; 1218 : 
; 1219 :             // if request for stopping the graph
; 1220 :             if(Request.type == REQ_DSHOW_STOP)

  013e2	83 3d 00 00 00
	00 04		 cmp	 DWORD PTR ?Request@@3UTGUIRequest@@A, 4
  013e9	75 16		 jne	 SHORT $LN4@YUVOutThre

; 1221 :             {
; 1222 :                 ((CDSSourceBase*)Providers_GetCurrentSource())->StopAndSeekToBeginning();

  013eb	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  013f0	8b c8		 mov	 ecx, eax
  013f2	e8 00 00 00 00	 call	 ?StopAndSeekToBeginning@CDSSourceBase@@QAEXXZ ; CDSSourceBase::StopAndSeekToBeginning

; 1223 :                 Request.type = REQ_NONE;

  013f7	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?Request@@3UTGUIRequest@@A, 0
$LN4@YUVOutThre:

; 1224 :             }
; 1225 : #endif
; 1226 : 
; 1227 :             if (pMultiFrames && pMultiFrames->IsSwitchRequested())

  01401	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?pMultiFrames@@3PAVCMultiFrames@@A, 0 ; pMultiFrames
  01408	74 73		 je	 SHORT $LN2@YUVOutThre
  0140a	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?pMultiFrames@@3PAVCMultiFrames@@A ; pMultiFrames
  01410	e8 00 00 00 00	 call	 ?IsSwitchRequested@CMultiFrames@@QAEHXZ ; CMultiFrames::IsSwitchRequested
  01415	85 c0		 test	 eax, eax
  01417	74 64		 je	 SHORT $LN2@YUVOutThre

; 1228 :             {
; 1229 :                 pMultiFrames->HandleSwitch();

  01419	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?pMultiFrames@@3PAVCMultiFrames@@A ; pMultiFrames
  0141f	e8 00 00 00 00	 call	 ?HandleSwitch@CMultiFrames@@QAEXXZ ; CMultiFrames::HandleSwitch

; 1230 :                 if (!pMultiFrames->IsActive())

  01424	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?pMultiFrames@@3PAVCMultiFrames@@A ; pMultiFrames
  0142a	e8 00 00 00 00	 call	 ?IsActive@CMultiFrames@@QAEHXZ ; CMultiFrames::IsActive
  0142f	85 c0		 test	 eax, eax
  01431	75 4a		 jne	 SHORT $LN2@YUVOutThre

; 1231 :                 {
; 1232 :                     delete pMultiFrames;

  01433	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?pMultiFrames@@3PAVCMultiFrames@@A ; pMultiFrames
  01439	89 95 f8 fc ff
	ff		 mov	 DWORD PTR $T360807[ebp], edx
  0143f	8b 85 f8 fc ff
	ff		 mov	 eax, DWORD PTR $T360807[ebp]
  01445	89 85 fc fc ff
	ff		 mov	 DWORD PTR $T360806[ebp], eax
  0144b	83 bd fc fc ff
	ff 00		 cmp	 DWORD PTR $T360806[ebp], 0
  01452	74 15		 je	 SHORT $LN133@YUVOutThre
  01454	6a 01		 push	 1
  01456	8b 8d fc fc ff
	ff		 mov	 ecx, DWORD PTR $T360806[ebp]
  0145c	e8 00 00 00 00	 call	 ??_GCMultiFrames@@QAEPAXI@Z
  01461	89 85 68 fc ff
	ff		 mov	 DWORD PTR tv808[ebp], eax
  01467	eb 0a		 jmp	 SHORT $LN134@YUVOutThre
$LN133@YUVOutThre:
  01469	c7 85 68 fc ff
	ff 00 00 00 00	 mov	 DWORD PTR tv808[ebp], 0
$LN134@YUVOutThre:

; 1233 :                     pMultiFrames = NULL;

  01473	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?pMultiFrames@@3PAVCMultiFrames@@A, 0 ; pMultiFrames
$LN2@YUVOutThre:

; 1234 :                 }
; 1235 :             }
; 1236 : 
; 1237 :             // save the last pulldown Mode so that we know if its changed
; 1238 :             PrevDeintMethod = CurrentMethod;

  0147d	8b 4d b8	 mov	 ecx, DWORD PTR _CurrentMethod$[ebp]
  01480	89 4d d4	 mov	 DWORD PTR _PrevDeintMethod$[ebp], ecx
$LN106@YUVOutThre:

; 1239 :         }
; 1240 :         while(!bStopThread);

  01483	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?bStopThread@@3HA, 0 ; bStopThread
  0148a	0f 84 76 ed ff
	ff		 je	 $LN108@YUVOutThre

; 1243 :     // if there is any exception thrown then exit the thread
; 1244 :     catch(...)

  01490	9b		 fwait

; 1241 : 
; 1242 :     }

  01491	eb 79		 jmp	 SHORT __tryend$?YUVOutThread@@YGKPAX@Z$3
__catch$?YUVOutThread@@YGKPAX@Z$2:

; 1245 :     {
; 1246 :         Providers_GetCurrentSource()->Stop();

  01493	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  01498	89 85 64 fc ff
	ff		 mov	 DWORD PTR tv812[ebp], eax
  0149e	8b 95 64 fc ff
	ff		 mov	 edx, DWORD PTR tv812[ebp]
  014a4	8b 02		 mov	 eax, DWORD PTR [edx]
  014a6	8b 8d 64 fc ff
	ff		 mov	 ecx, DWORD PTR tv812[ebp]
  014ac	8b 50 08	 mov	 edx, DWORD PTR [eax+8]
  014af	ff d2		 call	 edx

; 1247 :         ErrorBox(_T("Crash in OutThreads main loop. Restart DScaler."));

  014b1	68 00 00 00 00	 push	 OFFSET ??_C@_1GA@DLHPANFK@?$AAC?$AAr?$AAa?$AAs?$AAh?$AA?5?$AAi?$AAn?$AA?5?$AAO?$AAu?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AAs?$AA?5?$AAm?$AAa?$AAi?$AAn?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?4?$AA?5?$AAR@
  014b6	8d 8d dc fc ff
	ff		 lea	 ecx, DWORD PTR $T360810[ebp]
  014bc	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> >
  014c1	c6 45 fc 0a	 mov	 BYTE PTR __$EHRec$[ebp+12], 10 ; 0000000aH
  014c5	8d 85 dc fc ff
	ff		 lea	 eax, DWORD PTR $T360810[ebp]
  014cb	50		 push	 eax
  014cc	68 df 04 00 00	 push	 1247			; 000004dfH
  014d1	68 00 00 00 00	 push	 OFFSET ??_C@_1CC@MBPACLGO@?$AA?4?$AA?2?$AAO?$AAu?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AAs?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  014d6	6a 00		 push	 0
  014d8	e8 00 00 00 00	 call	 ?_ErrorBox@@YAXPAUHWND__@@PB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _ErrorBox
  014dd	83 c4 10	 add	 esp, 16			; 00000010H
  014e0	c6 45 fc 09	 mov	 BYTE PTR __$EHRec$[ebp+12], 9
  014e4	8d 8d dc fc ff
	ff		 lea	 ecx, DWORD PTR $T360810[ebp]
  014ea	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> >

; 1248 :         return 1;

  014ef	c7 85 d8 fc ff
	ff 01 00 00 00	 mov	 DWORD PTR $T360811[ebp], 1
  014f9	c7 45 fc 02 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 2
  01500	b8 00 00 00 00	 mov	 eax, $LN152@YUVOutThre
  01505	c3		 ret	 0

; 1249 :     }

  01506	b8 00 00 00 00	 mov	 eax, __tryend$?YUVOutThread@@YGKPAX@Z$3
  0150b	c3		 ret	 0
__tryend$?YUVOutThread@@YGKPAX@Z$3:
  0150c	c7 45 fc 02 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 2
  01513	eb 35		 jmp	 SHORT $LN151@YUVOutThre
$LN152@YUVOutThre:

; 1248 :         return 1;

  01515	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+12], 1
  01519	8d 4d e7	 lea	 ecx, DWORD PTR _ThisThread$[ebp]
  0151c	e8 00 00 00 00	 call	 ??1ComInitialise@@QAE@XZ ; ComInitialise::~ComInitialise
  01521	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+12], 0
  01525	8d 8d e4 fe ff
	ff		 lea	 ecx, DWORD PTR _thisThread$[ebp]
  0152b	e8 00 00 00 00	 call	 ??1DScalerThread@@QAE@XZ ; DScalerThread::~DScalerThread
  01530	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
  01537	8d 4d 98	 lea	 ecx, DWORD PTR _message$[ebp]
  0153a	e8 00 00 00 00	 call	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
  0153f	8b 85 d8 fc ff
	ff		 mov	 eax, DWORD PTR $T360811[ebp]
  01545	e9 f6 00 00 00	 jmp	 $LN113@YUVOutThre
$LN151@YUVOutThre:

; 1250 : 
; 1251 :     // try and stop the capture
; 1252 :     try
; 1253 :     {

  0154a	c6 45 fc 0b	 mov	 BYTE PTR __$EHRec$[ebp+12], 11 ; 0000000bH
  0154e	9b		 fwait

; 1254 :         Providers_GetCurrentSource()->Stop();

  0154f	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  01554	89 85 60 fc ff
	ff		 mov	 DWORD PTR tv825[ebp], eax
  0155a	8b 8d 60 fc ff
	ff		 mov	 ecx, DWORD PTR tv825[ebp]
  01560	8b 11		 mov	 edx, DWORD PTR [ecx]
  01562	8b 8d 60 fc ff
	ff		 mov	 ecx, DWORD PTR tv825[ebp]
  01568	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  0156b	ff d0		 call	 eax

; 1256 :     // if there is any exception thrown then exit the thread
; 1257 :     catch(...)

  0156d	9b		 fwait

; 1255 :     }

  0156e	eb 5b		 jmp	 SHORT __tryend$?YUVOutThread@@YGKPAX@Z$5
__catch$?YUVOutThread@@YGKPAX@Z$4:

; 1258 :     {
; 1259 :         ErrorBox(_T("Crash in in OutThreads Providers_GetCurrentSource()->Stop(). Restart DScaler."));

  01570	68 00 00 00 00	 push	 OFFSET ??_C@_1JM@BAPGJOIF@?$AAC?$AAr?$AAa?$AAs?$AAh?$AA?5?$AAi?$AAn?$AA?5?$AAi?$AAn?$AA?5?$AAO?$AAu?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AAs?$AA?5?$AAP?$AAr?$AAo?$AAv?$AAi?$AAd?$AAe?$AAr?$AAs@
  01575	8d 8d bc fc ff
	ff		 lea	 ecx, DWORD PTR $T360812[ebp]
  0157b	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> >
  01580	c6 45 fc 0d	 mov	 BYTE PTR __$EHRec$[ebp+12], 13 ; 0000000dH
  01584	8d 8d bc fc ff
	ff		 lea	 ecx, DWORD PTR $T360812[ebp]
  0158a	51		 push	 ecx
  0158b	68 eb 04 00 00	 push	 1259			; 000004ebH
  01590	68 00 00 00 00	 push	 OFFSET ??_C@_1CC@MBPACLGO@?$AA?4?$AA?2?$AAO?$AAu?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AAs?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  01595	6a 00		 push	 0
  01597	e8 00 00 00 00	 call	 ?_ErrorBox@@YAXPAUHWND__@@PB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _ErrorBox
  0159c	83 c4 10	 add	 esp, 16			; 00000010H
  0159f	c6 45 fc 0c	 mov	 BYTE PTR __$EHRec$[ebp+12], 12 ; 0000000cH
  015a3	8d 8d bc fc ff
	ff		 lea	 ecx, DWORD PTR $T360812[ebp]
  015a9	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> >

; 1260 :         return 1;

  015ae	c7 85 b8 fc ff
	ff 01 00 00 00	 mov	 DWORD PTR $T360813[ebp], 1
  015b8	c7 45 fc 02 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 2
  015bf	b8 00 00 00 00	 mov	 eax, $LN154@YUVOutThre
  015c4	c3		 ret	 0

; 1261 :     }

  015c5	b8 00 00 00 00	 mov	 eax, __tryend$?YUVOutThread@@YGKPAX@Z$5
  015ca	c3		 ret	 0
__tryend$?YUVOutThread@@YGKPAX@Z$5:
  015cb	c7 45 fc 02 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 2
  015d2	eb 32		 jmp	 SHORT $LN153@YUVOutThre
$LN154@YUVOutThre:

; 1260 :         return 1;

  015d4	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+12], 1
  015d8	8d 4d e7	 lea	 ecx, DWORD PTR _ThisThread$[ebp]
  015db	e8 00 00 00 00	 call	 ??1ComInitialise@@QAE@XZ ; ComInitialise::~ComInitialise
  015e0	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+12], 0
  015e4	8d 8d e4 fe ff
	ff		 lea	 ecx, DWORD PTR _thisThread$[ebp]
  015ea	e8 00 00 00 00	 call	 ??1DScalerThread@@QAE@XZ ; DScalerThread::~DScalerThread
  015ef	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
  015f6	8d 4d 98	 lea	 ecx, DWORD PTR _message$[ebp]
  015f9	e8 00 00 00 00	 call	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
  015fe	8b 85 b8 fc ff
	ff		 mov	 eax, DWORD PTR $T360813[ebp]
  01604	eb 3a		 jmp	 SHORT $LN113@YUVOutThre
$LN153@YUVOutThre:

; 1262 : 
; 1263 :     return 0;

  01606	c7 85 b4 fc ff
	ff 00 00 00 00	 mov	 DWORD PTR $T360814[ebp], 0
  01610	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+12], 1
  01614	8d 4d e7	 lea	 ecx, DWORD PTR _ThisThread$[ebp]
  01617	e8 00 00 00 00	 call	 ??1ComInitialise@@QAE@XZ ; ComInitialise::~ComInitialise
  0161c	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+12], 0
  01620	8d 8d e4 fe ff
	ff		 lea	 ecx, DWORD PTR _thisThread$[ebp]
  01626	e8 00 00 00 00	 call	 ??1DScalerThread@@QAE@XZ ; DScalerThread::~DScalerThread
  0162b	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
  01632	8d 4d 98	 lea	 ecx, DWORD PTR _message$[ebp]
  01635	e8 00 00 00 00	 call	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
  0163a	8b 85 b4 fc ff
	ff		 mov	 eax, DWORD PTR $T360814[ebp]
$LN113@YUVOutThre:

; 1264 : }

  01640	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp+4]
  01643	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0164a	59		 pop	 ecx
  0164b	5f		 pop	 edi
  0164c	5e		 pop	 esi
  0164d	5b		 pop	 ebx
  0164e	8b 4d b4	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  01651	33 cd		 xor	 ecx, ebp
  01653	e8 00 00 00 00	 call	 @__security_check_cookie@4
  01658	8b e5		 mov	 esp, ebp
  0165a	5d		 pop	 ebp
  0165b	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?YUVOutThread@@YGKPAX@Z$6:
  00000	8d 4d 98	 lea	 ecx, DWORD PTR _message$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >
__unwindfunclet$?YUVOutThread@@YGKPAX@Z$7:
  00008	8d 8d e4 fe ff
	ff		 lea	 ecx, DWORD PTR _thisThread$[ebp]
  0000e	e9 00 00 00 00	 jmp	 ??1DScalerThread@@QAE@XZ ; DScalerThread::~DScalerThread
__unwindfunclet$?YUVOutThread@@YGKPAX@Z$8:
  00013	8d 4d e7	 lea	 ecx, DWORD PTR _ThisThread$[ebp]
  00016	e9 00 00 00 00	 jmp	 ??1ComInitialise@@QAE@XZ ; ComInitialise::~ComInitialise
__unwindfunclet$?YUVOutThread@@YGKPAX@Z$9:
  0001b	8d 8d 48 fd ff
	ff		 lea	 ecx, DWORD PTR $T360787[ebp]
  00021	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$?YUVOutThread@@YGKPAX@Z$10:
  00026	8d 8d 20 fd ff
	ff		 lea	 ecx, DWORD PTR $T360799[ebp]
  0002c	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$?YUVOutThread@@YGKPAX@Z$11:
  00031	8d 8d 00 fd ff
	ff		 lea	 ecx, DWORD PTR $T360805[ebp]
  00037	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?YUVOutThread@@YGKPAX@Z$12:
  0003c	8d 8d dc fc ff
	ff		 lea	 ecx, DWORD PTR $T360810[ebp]
  00042	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$?YUVOutThread@@YGKPAX@Z$13:
  00047	8d 8d bc fc ff
	ff		 lea	 ecx, DWORD PTR $T360812[ebp]
  0004d	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$?YUVOutThread@@YGKPAX@Z:
  00052	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00056	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00059	8b 8a 5c fc ff
	ff		 mov	 ecx, DWORD PTR [edx-932]
  0005f	33 c8		 xor	 ecx, eax
  00061	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00066	8b 4a c0	 mov	 ecx, DWORD PTR [edx-64]
  00069	33 c8		 xor	 ecx, eax
  0006b	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00070	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?YUVOutThread@@YGKPAX@Z
  00075	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?YUVOutThread@@YGKPAX@Z ENDP				; YUVOutThread
PUBLIC	?Start_Thread@@YAXXZ				; Start_Thread
; Function compile flags: /Odtp
;	COMDAT ?Start_Thread@@YAXXZ
_TEXT	SEGMENT
tv66 = -4						; size = 4
?Start_Thread@@YAXXZ PROC				; Start_Thread, COMDAT

; 145  : {

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

; 146  :     // make sure we start with a clean sheet of paper
; 147  :     GetActiveOutput()->Overlay_Clean();

  00004	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  00009	89 45 fc	 mov	 DWORD PTR tv66[ebp], eax
  0000c	8b 45 fc	 mov	 eax, DWORD PTR tv66[ebp]
  0000f	8b 10		 mov	 edx, DWORD PTR [eax]
  00011	8b 4d fc	 mov	 ecx, DWORD PTR tv66[ebp]
  00014	8b 42 28	 mov	 eax, DWORD PTR [edx+40]
  00017	ff d0		 call	 eax

; 148  : 
; 149  :     bStopThread = FALSE;

  00019	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?bStopThread@@3HA, 0 ; bStopThread

; 150  : 
; 151  :     g_hOutThread = CreateThread((LPSECURITY_ATTRIBUTES) NULL,   // No security.
; 152  :                                 (DWORD) 0,                      // Same stack size.
; 153  :                                 YUVOutThread,                   // Thread procedure.
; 154  :                                 NULL,                           // Parameter.
; 155  :                                 (DWORD) 0,                      // Start immediatly.
; 156  :                                 (LPDWORD) &OutThreadID);        // Thread ID.

  00023	68 00 00 00 00	 push	 OFFSET ?OutThreadID@@3KA ; OutThreadID
  00028	6a 00		 push	 0
  0002a	6a 00		 push	 0
  0002c	68 00 00 00 00	 push	 OFFSET ?YUVOutThread@@YGKPAX@Z ; YUVOutThread
  00031	6a 00		 push	 0
  00033	6a 00		 push	 0
  00035	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__CreateThread@24
  0003b	a3 00 00 00 00	 mov	 DWORD PTR ?g_hOutThread@@3PAXA, eax ; g_hOutThread

; 157  : }

  00040	8b e5		 mov	 esp, ebp
  00042	5d		 pop	 ebp
  00043	c3		 ret	 0
?Start_Thread@@YAXXZ ENDP				; Start_Thread
PUBLIC	?Start_Capture@@YAXXZ				; Start_Capture
; Function compile flags: /Odtp
;	COMDAT ?Start_Capture@@YAXXZ
_TEXT	SEGMENT
tv147 = -28						; size = 4
tv136 = -24						; size = 4
tv95 = -20						; size = 4
tv86 = -16						; size = 4
tv70 = -12						; size = 4
$T360873 = -8						; size = 4
$T360872 = -4						; size = 4
?Start_Capture@@YAXXZ PROC				; Start_Capture, COMDAT

; 343  : {

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

; 344  :     if (g_nCaptureStatus++ == 0)

  00007	a1 00 00 00 00	 mov	 eax, DWORD PTR ?g_nCaptureStatus@@3JA ; g_nCaptureStatus
  0000c	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?g_nCaptureStatus@@3JA ; g_nCaptureStatus
  00012	83 c1 01	 add	 ecx, 1
  00015	89 0d 00 00 00
	00		 mov	 DWORD PTR ?g_nCaptureStatus@@3JA, ecx ; g_nCaptureStatus
  0001b	85 c0		 test	 eax, eax
  0001d	0f 85 5d 01 00
	00		 jne	 $LN7@Start_Capt

; 345  :     {
; 346  :         // make sure half height Modes are set correctly
; 347  :         LOG(1 , "Before Overlay Clean");

  00023	68 00 00 00 00	 push	 OFFSET ??_C@_0BF@LKJOELJN@Before?5Overlay?5Clean?$AA@
  00028	6a 01		 push	 1
  0002a	e8 00 00 00 00	 call	 ?LOG@@YAXHPBDZZ		; LOG
  0002f	83 c4 08	 add	 esp, 8

; 348  :         GetActiveOutput()->Overlay_Clean();

  00032	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  00037	89 45 f4	 mov	 DWORD PTR tv70[ebp], eax
  0003a	8b 55 f4	 mov	 edx, DWORD PTR tv70[ebp]
  0003d	8b 02		 mov	 eax, DWORD PTR [edx]
  0003f	8b 4d f4	 mov	 ecx, DWORD PTR tv70[ebp]
  00042	8b 50 28	 mov	 edx, DWORD PTR [eax+40]
  00045	ff d2		 call	 edx

; 349  : 
; 350  :         // moved this stuff out of the processing thared to avoid windo calls
; 351  :         // in the processing thread
; 352  :         if (pMultiFrames && pMultiFrames->IsActive())

  00047	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?pMultiFrames@@3PAVCMultiFrames@@A, 0 ; pMultiFrames
  0004e	0f 84 82 00 00
	00		 je	 $LN6@Start_Capt
  00054	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?pMultiFrames@@3PAVCMultiFrames@@A ; pMultiFrames
  0005a	e8 00 00 00 00	 call	 ?IsActive@CMultiFrames@@QAEHXZ ; CMultiFrames::IsActive
  0005f	85 c0		 test	 eax, eax
  00061	74 73		 je	 SHORT $LN6@Start_Capt

; 353  :         {
; 354  :             // Check whether preview mode must be switched to OFF
; 355  :             if ( (Providers_GetCurrentSource() != pMultiFrames->GetSource())
; 356  :               || ( (pMultiFrames->GetMode() == PREVIEW_CHANNELS)
; 357  :                 && !Providers_GetCurrentSource()->IsInTunerMode() ) )

  00063	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  00068	8b f0		 mov	 esi, eax
  0006a	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?pMultiFrames@@3PAVCMultiFrames@@A ; pMultiFrames
  00070	e8 00 00 00 00	 call	 ?GetSource@CMultiFrames@@QAEPAVCSource@@XZ ; CMultiFrames::GetSource
  00075	3b f0		 cmp	 esi, eax
  00077	75 28		 jne	 SHORT $LN4@Start_Capt
  00079	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?pMultiFrames@@3PAVCMultiFrames@@A ; pMultiFrames
  0007f	e8 00 00 00 00	 call	 ?GetMode@CMultiFrames@@QAE?AW4eMultiFramesMode@@XZ ; CMultiFrames::GetMode
  00084	85 c0		 test	 eax, eax
  00086	75 4e		 jne	 SHORT $LN6@Start_Capt
  00088	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  0008d	89 45 f0	 mov	 DWORD PTR tv86[ebp], eax
  00090	8b 45 f0	 mov	 eax, DWORD PTR tv86[ebp]
  00093	8b 10		 mov	 edx, DWORD PTR [eax]
  00095	8b 4d f0	 mov	 ecx, DWORD PTR tv86[ebp]
  00098	8b 42 68	 mov	 eax, DWORD PTR [edx+104]
  0009b	ff d0		 call	 eax
  0009d	85 c0		 test	 eax, eax
  0009f	75 35		 jne	 SHORT $LN6@Start_Capt
$LN4@Start_Capt:

; 358  :             {
; 359  :                 delete pMultiFrames;

  000a1	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?pMultiFrames@@3PAVCMultiFrames@@A ; pMultiFrames
  000a7	89 4d f8	 mov	 DWORD PTR $T360873[ebp], ecx
  000aa	8b 55 f8	 mov	 edx, DWORD PTR $T360873[ebp]
  000ad	89 55 fc	 mov	 DWORD PTR $T360872[ebp], edx
  000b0	83 7d fc 00	 cmp	 DWORD PTR $T360872[ebp], 0
  000b4	74 0f		 je	 SHORT $LN10@Start_Capt
  000b6	6a 01		 push	 1
  000b8	8b 4d fc	 mov	 ecx, DWORD PTR $T360872[ebp]
  000bb	e8 00 00 00 00	 call	 ??_GCMultiFrames@@QAEPAXI@Z
  000c0	89 45 ec	 mov	 DWORD PTR tv95[ebp], eax
  000c3	eb 07		 jmp	 SHORT $LN11@Start_Capt
$LN10@Start_Capt:
  000c5	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR tv95[ebp], 0
$LN11@Start_Capt:

; 360  :                 pMultiFrames = NULL;

  000cc	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?pMultiFrames@@3PAVCMultiFrames@@A, 0 ; pMultiFrames
$LN6@Start_Capt:

; 361  :             }
; 362  :         }
; 363  :         if (!pMultiFrames || !pMultiFrames->IsActive())

  000d6	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?pMultiFrames@@3PAVCMultiFrames@@A, 0 ; pMultiFrames
  000dd	74 0f		 je	 SHORT $LN2@Start_Capt
  000df	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?pMultiFrames@@3PAVCMultiFrames@@A ; pMultiFrames
  000e5	e8 00 00 00 00	 call	 ?IsActive@CMultiFrames@@QAEHXZ ; CMultiFrames::IsActive
  000ea	85 c0		 test	 eax, eax
  000ec	75 33		 jne	 SHORT $LN3@Start_Capt
$LN2@Start_Capt:

; 364  :         {
; 365  :             LOG(1 , "Before Aspect Ratio");

  000ee	68 00 00 00 00	 push	 OFFSET ??_C@_0BE@DOJBHKNN@Before?5Aspect?5Ratio?$AA@
  000f3	6a 01		 push	 1
  000f5	e8 00 00 00 00	 call	 ?LOG@@YAXHPBDZZ		; LOG
  000fa	83 c4 08	 add	 esp, 8

; 366  :             Providers_GetCurrentSource()->SetAspectRatioData();

  000fd	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  00102	89 45 e8	 mov	 DWORD PTR tv136[ebp], eax
  00105	8b 45 e8	 mov	 eax, DWORD PTR tv136[ebp]
  00108	8b 10		 mov	 edx, DWORD PTR [eax]
  0010a	8b 4d e8	 mov	 ecx, DWORD PTR tv136[ebp]
  0010d	8b 82 a8 00 00
	00		 mov	 eax, DWORD PTR [edx+168]
  00113	ff d0		 call	 eax

; 367  :             WorkoutOverlaySize(TRUE);

  00115	6a 01		 push	 1
  00117	6a 01		 push	 1
  00119	e8 00 00 00 00	 call	 ?WorkoutOverlaySize@@YAXHH@Z ; WorkoutOverlaySize
  0011e	83 c4 08	 add	 esp, 8
$LN3@Start_Capt:

; 368  :         }
; 369  : 
; 370  :         if (Providers_GetCurrentSource())

  00121	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  00126	85 c0		 test	 eax, eax
  00128	74 3d		 je	 SHORT $LN1@Start_Capt

; 371  :         {
; 372  :             LOG(1 , "Before Current Source Start");

  0012a	68 00 00 00 00	 push	 OFFSET ??_C@_0BM@DLAOONJD@Before?5Current?5Source?5Start?$AA@
  0012f	6a 01		 push	 1
  00131	e8 00 00 00 00	 call	 ?LOG@@YAXHPBDZZ		; LOG
  00136	83 c4 08	 add	 esp, 8

; 373  :             Providers_GetCurrentSource()->Start();

  00139	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  0013e	89 45 e4	 mov	 DWORD PTR tv147[ebp], eax
  00141	8b 4d e4	 mov	 ecx, DWORD PTR tv147[ebp]
  00144	8b 11		 mov	 edx, DWORD PTR [ecx]
  00146	8b 4d e4	 mov	 ecx, DWORD PTR tv147[ebp]
  00149	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  0014c	ff d0		 call	 eax

; 374  :             PrepareDeinterlaceMode();

  0014e	e8 00 00 00 00	 call	 ?PrepareDeinterlaceMode@@YAXXZ ; PrepareDeinterlaceMode

; 375  :             LOG(1 , "Before Start_Thread");

  00153	68 00 00 00 00	 push	 OFFSET ??_C@_0BE@MHCBNFMJ@Before?5Start_Thread?$AA@
  00158	6a 01		 push	 1
  0015a	e8 00 00 00 00	 call	 ?LOG@@YAXHPBDZZ		; LOG
  0015f	83 c4 08	 add	 esp, 8

; 376  :             Start_Thread();

  00162	e8 00 00 00 00	 call	 ?Start_Thread@@YAXXZ	; Start_Thread
$LN1@Start_Capt:

; 377  :         }
; 378  : 
; 379  :         LOG(1 , "Before Unmute");

  00167	68 00 00 00 00	 push	 OFFSET ??_C@_0O@LBBAJACB@Before?5Unmute?$AA@
  0016c	6a 01		 push	 1
  0016e	e8 00 00 00 00	 call	 ?LOG@@YAXHPBDZZ		; LOG
  00173	83 c4 08	 add	 esp, 8

; 380  :         Audio_Unmute();

  00176	6a 00		 push	 0
  00178	e8 00 00 00 00	 call	 ?Audio_Unmute@@YAXK@Z	; Audio_Unmute
  0017d	83 c4 04	 add	 esp, 4
$LN7@Start_Capt:

; 381  :     }
; 382  :     LOG(1 , "End of Start Thread");

  00180	68 00 00 00 00	 push	 OFFSET ??_C@_0BE@JJOCEAFG@End?5of?5Start?5Thread?$AA@
  00185	6a 01		 push	 1
  00187	e8 00 00 00 00	 call	 ?LOG@@YAXHPBDZZ		; LOG
  0018c	83 c4 08	 add	 esp, 8

; 383  : }

  0018f	5e		 pop	 esi
  00190	8b e5		 mov	 esp, ebp
  00192	5d		 pop	 ebp
  00193	c3		 ret	 0
?Start_Capture@@YAXXZ ENDP				; Start_Capture
PUBLIC	?Reset_Capture@@YAXXZ				; Reset_Capture
; Function compile flags: /Odtp
;	COMDAT ?Reset_Capture@@YAXXZ
_TEXT	SEGMENT
tv73 = -8						; size = 4
tv68 = -4						; size = 4
?Reset_Capture@@YAXXZ PROC				; Reset_Capture, COMDAT

; 412  : {

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

; 413  :     if (!Providers_GetCurrentSource())

  00006	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  0000b	85 c0		 test	 eax, eax
  0000d	75 02		 jne	 SHORT $LN1@Reset_Capt

; 414  :         return;

  0000f	eb 45		 jmp	 SHORT $LN2@Reset_Capt
$LN1@Reset_Capt:

; 415  :     Stop_Capture();

  00011	e8 00 00 00 00	 call	 ?Stop_Capture@@YAXXZ	; Stop_Capture

; 416  :     GetActiveOutput()->Overlay_Clean();

  00016	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  0001b	89 45 fc	 mov	 DWORD PTR tv68[ebp], eax
  0001e	8b 45 fc	 mov	 eax, DWORD PTR tv68[ebp]
  00021	8b 10		 mov	 edx, DWORD PTR [eax]
  00023	8b 4d fc	 mov	 ecx, DWORD PTR tv68[ebp]
  00026	8b 42 28	 mov	 eax, DWORD PTR [edx+40]
  00029	ff d0		 call	 eax

; 417  :     PrepareDeinterlaceMode();

  0002b	e8 00 00 00 00	 call	 ?PrepareDeinterlaceMode@@YAXXZ ; PrepareDeinterlaceMode

; 418  :     Providers_GetCurrentSource()->Reset();

  00030	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  00035	89 45 f8	 mov	 DWORD PTR tv73[ebp], eax
  00038	8b 4d f8	 mov	 ecx, DWORD PTR tv73[ebp]
  0003b	8b 11		 mov	 edx, DWORD PTR [ecx]
  0003d	8b 4d f8	 mov	 ecx, DWORD PTR tv73[ebp]
  00040	8b 42 0c	 mov	 eax, DWORD PTR [edx+12]
  00043	ff d0		 call	 eax

; 419  :     WorkoutOverlaySize(TRUE);

  00045	6a 01		 push	 1
  00047	6a 01		 push	 1
  00049	e8 00 00 00 00	 call	 ?WorkoutOverlaySize@@YAXHH@Z ; WorkoutOverlaySize
  0004e	83 c4 08	 add	 esp, 8

; 420  :     Start_Capture();

  00051	e8 00 00 00 00	 call	 ?Start_Capture@@YAXXZ	; Start_Capture
$LN2@Reset_Capt:

; 421  : }

  00056	8b e5		 mov	 esp, ebp
  00058	5d		 pop	 ebp
  00059	c3		 ret	 0
?Reset_Capture@@YAXXZ ENDP				; Reset_Capture
END
