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

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

INCLUDELIB OLDNAMES

PUBLIC	??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator=
PUBLIC	??4?$SmartPtr@VTIME_SHIFT@@@@QAEAAV0@PAVTIME_SHIFT@@@Z ; SmartPtr<TIME_SHIFT>::operator=
PUBLIC	??1CTSOptionsDlg@@UAE@XZ			; CTSOptionsDlg::~CTSOptionsDlg
PUBLIC	??$?6$$BY0BA@$$CBD@MakeString@@QAEAAV0@AAY0BA@$$CBD@Z ; MakeString::operator<<<char const [16]>
PUBLIC	?makeFormatValid@@YA?AW4tsFormat_t@@W41@@Z	; makeFormatValid
PUBLIC	?GetRawPointer@?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::GetRawPointer
PUBLIC	??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
PUBLIC	?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ	; SmartPtr<TIME_SHIFT>::IsValid
PUBLIC	??0?$SmartPtr@VTIME_SHIFT@@@@QAE@XZ		; SmartPtr<TIME_SHIFT>::SmartPtr<TIME_SHIFT>
PUBLIC	??_GTIME_SHIFT@@QAEPAXI@Z			; TIME_SHIFT::`scalar deleting destructor'
PUBLIC	?Clear@?$SmartPtr@VTIME_SHIFT@@@@QAEXXZ		; SmartPtr<TIME_SHIFT>::Clear
PUBLIC	??1?$SmartPtr@VTIME_SHIFT@@@@QAE@XZ		; SmartPtr<TIME_SHIFT>::~SmartPtr<TIME_SHIFT>
PUBLIC	??_C@_17OAIDBDBP@?$AAc?$AA?3?$AA?2?$AA?$AA@	; `string'
PUBLIC	??_C@_0BE@HIJKCDNA@GetDiskFreeSpaceExW?$AA@	; `string'
PUBLIC	??_C@_1GC@PLDBONEO@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAg?$AAe?$AAt?$AA?5?$AAt?$AAh?$AAe?$AA?5?$AAa?$AAd?$AAd?$AAr?$AAe?$AAs?$AAs?$AA?5?$AAf?$AAo?$AAr?$AA?5?$AAG?$AAe@ ; `string'
PUBLIC	??_C@_1CA@OHPNFDJP@?$AA?4?$AA?2?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@ ; `string'
PUBLIC	??_C@_1CO@DNIFJBOI@?$AAP?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd?$AA?$AA@ ; `string'
PUBLIC	??_C@_17BJPFHBEJ@?$AAC?$AA?3?$AA?2?$AA?$AA@	; `string'
PUBLIC	??_C@_17KLKMGCJO@?$AAf?$AAa?$AAt?$AA?$AA@	; `string'
PUBLIC	??_C@_1JC@BMFAGHFA@?$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?$AAD?$AAe?$AAl?$AAe?$AAt?$AAe@ ; `string'
PUBLIC	??_C@_1BM@PCCAFGML@?$AA?$CF?$AAs?$AA?2?$AAd?$AAs?$AA?$CF?$AA?4?$AA3?$AAu?$AA?4?$AAa?$AAv?$AAi?$AA?$AA@ ; `string'
PUBLIC	??_C@_1BM@DNEJLDMB@?$AAB?$AAu?$AAg?$AA?5?$AAf?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAi?$AAn?$AA?5?$AA?$AA@ ; `string'
PUBLIC	??_C@_0BA@OBGPPMEH@?4?2TimeShift?4cpp?$AA@	; `string'
PUBLIC	??_C@_1BM@CEJCBEB@?$AA?5?$AAa?$AAr?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAl?$AAi?$AAn?$AAe?$AA?5?$AA?$AA@ ; `string'
PUBLIC	??_C@_1BI@NIHBLACF@?$AAI?$AAn?$AAf?$AAo?$AAr?$AAm?$AAa?$AAt?$AAi?$AAo?$AAn?$AA?$AA@ ; `string'
PUBLIC	??_C@_1HI@IEHEEGLD@?$AAS?$AAo?$AAr?$AAr?$AAy?$AA?$CB?$AA?5?$AAY?$AAo?$AAu?$AA?5?$AAd?$AAo?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAh?$AAa?$AAv?$AAe?$AA?5?$AAe?$AAn?$AAo?$AAu?$AAg?$AAh?$AA?6?$AAd?$AAi@ ; `string'
PUBLIC	??_C@_1JC@JGKNOFEE@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAa?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA?5?$AAa?$AA?5?$AAr?$AAe?$AAc?$AAo?$AAr?$AAd?$AAi?$AAn?$AAg?$AA?5?$AAb@ ; `string'
PUBLIC	??_C@_1KO@OKHAKCAA@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAa?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA?5?$AAm?$AAe?$AAm?$AAo?$AAr?$AAy?$AA?5?$AAf?$AAo?$AAr?$AA?5?$AAt?$AAh@ ; `string'
PUBLIC	??_C@_1IK@DNNHMFHE@?$AAR?$AAe?$AAc?$AAo?$AAr?$AAd?$AAi?$AAn?$AAg?$AA?5?$AAs?$AAt?$AAo?$AAp?$AAp?$AAe?$AAd?$AA?4?$AA?5?$AAY?$AAo?$AAu?$AA?5?$AAc?$AAa?$AAn?$AA?5?$AAt?$AAr?$AAy?$AA?5?$AAa@ ; `string'
PUBLIC	??_C@_1EC@IBAPBHPC@?$AAB?$AAa?$AAd?$AA?5?$AAp?$AAa?$AAt?$AAh?$AA?3?$AA?5?$AA?$CF?$AAs?$AA?4?$AA?5?$AAU?$AAs?$AAi?$AAn?$AAg?$AA?5?$AAt?$AAh?$AAe?$AA?5?$AAd?$AAe?$AAf?$AAa?$AAu?$AAl?$AAt?$AA?4@ ; `string'
PUBLIC	??_C@_1BM@HLNFKNLA@?$AA?$CF?$AAd?$AAx?$AA?$CF?$AAd?$AAx?$AA?$CF?$AAd?$AA?5?$AA?$CI?$AA?$CF?$AAs?$AA?$CJ?$AA?$AA@ ; `string'
PUBLIC	??_C@_1O@HNMBIKEI@?$AAs?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@ ; `string'
PUBLIC	??_C@_19GABMCDCB@?$AAm?$AAo?$AAn?$AAo?$AA?$AA@	; `string'
PUBLIC	??_C@_1CG@IDJEGAKF@?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5?$AA?$CF?$AAd?$AA?5?$AAb?$AAi?$AAt?$AAs?$AA?0?$AA?5?$AA?$CF?$AAs?$AA?$AA@ ; `string'
PUBLIC	??_C@_1GO@CBCFJMFF@?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?5?$AAo?$AAp?$AAt?$AAi?$AAo?$AAn?$AAs?$AA?5?$AAa?$AAr?$AAe?$AA?5?$AAo?$AAn?$AAl?$AAy?$AA?5?$AAa?$AAv?$AAa?$AAi?$AAl@ ; `string'
PUBLIC	??_C@_1BK@CHOMKCEG@?$AAW?$AAa?$AAv?$AAe?$AAI?$AAn?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?$AA@ ; `string'
PUBLIC	??_C@_1BE@DAMFNGFL@?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?$AA@ ; `string'
PUBLIC	??_C@_1BM@IOJNHOMI@?$AAW?$AAa?$AAv?$AAe?$AAO?$AAu?$AAt?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?$AA@ ; `string'
PUBLIC	??_C@_1BE@MJFFEHDE@?$AAR?$AAe?$AAc?$AAH?$AAe?$AAi?$AAg?$AAh?$AAt?$AA?$AA@ ; `string'
PUBLIC	??_C@_1BE@IBHIMNMK@?$AAR?$AAe?$AAc?$AAF?$AAo?$AAr?$AAm?$AAa?$AAt?$AA?$AA@ ; `string'
PUBLIC	??_C@_1BC@MHPCDLK@?$AAV?$AAi?$AAd?$AAe?$AAo?$AAF?$AAC?$AAC?$AA?$AA@ ; `string'
PUBLIC	??_C@_1BG@LEKCADGO@?$AAS?$AAa?$AAv?$AAi?$AAn?$AAg?$AAP?$AAa?$AAt?$AAh?$AA?$AA@ ; `string'
PUBLIC	??_C@_1CC@BEPGOPMN@?$AAA?$AAV?$AAI?$AAF?$AAi?$AAl?$AAe?$AAS?$AAi?$AAz?$AAe?$AAL?$AAi?$AAm?$AAi?$AAt?$AA?$AA@ ; `string'
PUBLIC	??_C@_15EFLNJKHH@?$AA?$CF?$AAu?$AA?$AA@		; `string'
EXTRN	__imp__GetDiskFreeSpaceW@20:PROC
EXTRN	__wcslwr:PROC
EXTRN	__imp__GetVolumeInformationW@32:PROC
EXTRN	__imp__waveInGetNumDevs@0:PROC
EXTRN	__imp__waveInGetDevCapsW@12:PROC
EXTRN	__imp__lstrcmpW@8:PROC
EXTRN	__imp__waveOutGetNumDevs@0:PROC
EXTRN	__imp__waveOutGetDevCapsW@12:PROC
EXTRN	__imp__GetFileAttributesW@4:PROC
EXTRN	_ICCompressorChoose@24:PROC
EXTRN	_ICCompressorFree@4:PROC
EXTRN	__imp__GetPrivateProfileStructW@20:PROC
EXTRN	__imp__WritePrivateProfileStructW@20:PROC
;	COMDAT ??_C@_15EFLNJKHH@?$AA?$CF?$AAu?$AA?$AA@
CONST	SEGMENT
??_C@_15EFLNJKHH@?$AA?$CF?$AAu?$AA?$AA@ DB '%', 00H, 'u', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1CC@BEPGOPMN@?$AAA?$AAV?$AAI?$AAF?$AAi?$AAl?$AAe?$AAS?$AAi?$AAz?$AAe?$AAL?$AAi?$AAm?$AAi?$AAt?$AA?$AA@
CONST	SEGMENT
??_C@_1CC@BEPGOPMN@?$AAA?$AAV?$AAI?$AAF?$AAi?$AAl?$AAe?$AAS?$AAi?$AAz?$AAe?$AAL?$AAi?$AAm?$AAi?$AAt?$AA?$AA@ DB 'A'
	DB	00H, 'V', 00H, 'I', 00H, 'F', 00H, 'i', 00H, 'l', 00H, 'e', 00H
	DB	'S', 00H, 'i', 00H, 'z', 00H, 'e', 00H, 'L', 00H, 'i', 00H, 'm'
	DB	00H, 'i', 00H, 't', 00H, 00H, 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_1BG@LEKCADGO@?$AAS?$AAa?$AAv?$AAi?$AAn?$AAg?$AAP?$AAa?$AAt?$AAh?$AA?$AA@
CONST	SEGMENT
??_C@_1BG@LEKCADGO@?$AAS?$AAa?$AAv?$AAi?$AAn?$AAg?$AAP?$AAa?$AAt?$AAh?$AA?$AA@ DB 'S'
	DB	00H, 'a', 00H, 'v', 00H, 'i', 00H, 'n', 00H, 'g', 00H, 'P', 00H
	DB	'a', 00H, 't', 00H, 'h', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1BC@MHPCDLK@?$AAV?$AAi?$AAd?$AAe?$AAo?$AAF?$AAC?$AAC?$AA?$AA@
CONST	SEGMENT
??_C@_1BC@MHPCDLK@?$AAV?$AAi?$AAd?$AAe?$AAo?$AAF?$AAC?$AAC?$AA?$AA@ DB 'V'
	DB	00H, 'i', 00H, 'd', 00H, 'e', 00H, 'o', 00H, 'F', 00H, 'C', 00H
	DB	'C', 00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1BE@IBHIMNMK@?$AAR?$AAe?$AAc?$AAF?$AAo?$AAr?$AAm?$AAa?$AAt?$AA?$AA@
CONST	SEGMENT
??_C@_1BE@IBHIMNMK@?$AAR?$AAe?$AAc?$AAF?$AAo?$AAr?$AAm?$AAa?$AAt?$AA?$AA@ DB 'R'
	DB	00H, 'e', 00H, 'c', 00H, 'F', 00H, 'o', 00H, 'r', 00H, 'm', 00H
	DB	'a', 00H, 't', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1BE@MJFFEHDE@?$AAR?$AAe?$AAc?$AAH?$AAe?$AAi?$AAg?$AAh?$AAt?$AA?$AA@
CONST	SEGMENT
??_C@_1BE@MJFFEHDE@?$AAR?$AAe?$AAc?$AAH?$AAe?$AAi?$AAg?$AAh?$AAt?$AA?$AA@ DB 'R'
	DB	00H, 'e', 00H, 'c', 00H, 'H', 00H, 'e', 00H, 'i', 00H, 'g', 00H
	DB	'h', 00H, 't', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1BM@IOJNHOMI@?$AAW?$AAa?$AAv?$AAe?$AAO?$AAu?$AAt?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?$AA@
CONST	SEGMENT
??_C@_1BM@IOJNHOMI@?$AAW?$AAa?$AAv?$AAe?$AAO?$AAu?$AAt?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?$AA@ DB 'W'
	DB	00H, 'a', 00H, 'v', 00H, 'e', 00H, 'O', 00H, 'u', 00H, 't', 00H
	DB	'D', 00H, 'e', 00H, 'v', 00H, 'i', 00H, 'c', 00H, 'e', 00H, 00H
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_1BE@DAMFNGFL@?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?$AA@
CONST	SEGMENT
??_C@_1BE@DAMFNGFL@?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?$AA@ DB 'T'
	DB	00H, 'i', 00H, 'm', 00H, 'e', 00H, 'S', 00H, 'h', 00H, 'i', 00H
	DB	'f', 00H, 't', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1BK@CHOMKCEG@?$AAW?$AAa?$AAv?$AAe?$AAI?$AAn?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?$AA@
CONST	SEGMENT
??_C@_1BK@CHOMKCEG@?$AAW?$AAa?$AAv?$AAe?$AAI?$AAn?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?$AA@ DB 'W'
	DB	00H, 'a', 00H, 'v', 00H, 'e', 00H, 'I', 00H, 'n', 00H, 'D', 00H
	DB	'e', 00H, 'v', 00H, 'i', 00H, 'c', 00H, 'e', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1GO@CBCFJMFF@?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?5?$AAo?$AAp?$AAt?$AAi?$AAo?$AAn?$AAs?$AA?5?$AAa?$AAr?$AAe?$AA?5?$AAo?$AAn?$AAl?$AAy?$AA?5?$AAa?$AAv?$AAa?$AAi?$AAl@
CONST	SEGMENT
??_C@_1GO@CBCFJMFF@?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?5?$AAo?$AAp?$AAt?$AAi?$AAo?$AAn?$AAs?$AA?5?$AAa?$AAr?$AAe?$AA?5?$AAo?$AAn?$AAl?$AAy?$AA?5?$AAa?$AAv?$AAa?$AAi?$AAl@ DB 'T'
	DB	00H, 'i', 00H, 'm', 00H, 'e', 00H, 'S', 00H, 'h', 00H, 'i', 00H
	DB	'f', 00H, 't', 00H, ' ', 00H, 'o', 00H, 'p', 00H, 't', 00H, 'i'
	DB	00H, 'o', 00H, 'n', 00H, 's', 00H, ' ', 00H, 'a', 00H, 'r', 00H
	DB	'e', 00H, ' ', 00H, 'o', 00H, 'n', 00H, 'l', 00H, 'y', 00H, ' '
	DB	00H, 'a', 00H, 'v', 00H, 'a', 00H, 'i', 00H, 'l', 00H, 'a', 00H
	DB	'b', 00H, 'l', 00H, 'e', 00H, ' ', 00H, 'd', 00H, 'u', 00H, 'r'
	DB	00H, 'i', 00H, 'n', 00H, 'g', 00H, ' ', 00H, 's', 00H, 't', 00H
	DB	'o', 00H, 'p', 00H, ' ', 00H, 'm', 00H, 'o', 00H, 'd', 00H, 'e'
	DB	00H, '.', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1CG@IDJEGAKF@?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5?$AA?$CF?$AAd?$AA?5?$AAb?$AAi?$AAt?$AAs?$AA?0?$AA?5?$AA?$CF?$AAs?$AA?$AA@
CONST	SEGMENT
??_C@_1CG@IDJEGAKF@?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5?$AA?$CF?$AAd?$AA?5?$AAb?$AAi?$AAt?$AAs?$AA?0?$AA?5?$AA?$CF?$AAs?$AA?$AA@ DB '%'
	DB	00H, 'd', 00H, ' ', 00H, 'H', 00H, 'z', 00H, ',', 00H, ' ', 00H
	DB	'%', 00H, 'd', 00H, ' ', 00H, 'b', 00H, 'i', 00H, 't', 00H, 's'
	DB	00H, ',', 00H, ' ', 00H, '%', 00H, 's', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_19GABMCDCB@?$AAm?$AAo?$AAn?$AAo?$AA?$AA@
CONST	SEGMENT
??_C@_19GABMCDCB@?$AAm?$AAo?$AAn?$AAo?$AA?$AA@ DB 'm', 00H, 'o', 00H, 'n', 00H
	DB	'o', 00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1O@HNMBIKEI@?$AAs?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@
CONST	SEGMENT
??_C@_1O@HNMBIKEI@?$AAs?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@ DB 's', 00H, 't'
	DB	00H, 'e', 00H, 'r', 00H, 'e', 00H, 'o', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1BM@HLNFKNLA@?$AA?$CF?$AAd?$AAx?$AA?$CF?$AAd?$AAx?$AA?$CF?$AAd?$AA?5?$AA?$CI?$AA?$CF?$AAs?$AA?$CJ?$AA?$AA@
CONST	SEGMENT
??_C@_1BM@HLNFKNLA@?$AA?$CF?$AAd?$AAx?$AA?$CF?$AAd?$AAx?$AA?$CF?$AAd?$AA?5?$AA?$CI?$AA?$CF?$AAs?$AA?$CJ?$AA?$AA@ DB '%'
	DB	00H, 'd', 00H, 'x', 00H, '%', 00H, 'd', 00H, 'x', 00H, '%', 00H
	DB	'd', 00H, ' ', 00H, '(', 00H, '%', 00H, 's', 00H, ')', 00H, 00H
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_1EC@IBAPBHPC@?$AAB?$AAa?$AAd?$AA?5?$AAp?$AAa?$AAt?$AAh?$AA?3?$AA?5?$AA?$CF?$AAs?$AA?4?$AA?5?$AAU?$AAs?$AAi?$AAn?$AAg?$AA?5?$AAt?$AAh?$AAe?$AA?5?$AAd?$AAe?$AAf?$AAa?$AAu?$AAl?$AAt?$AA?4@
CONST	SEGMENT
??_C@_1EC@IBAPBHPC@?$AAB?$AAa?$AAd?$AA?5?$AAp?$AAa?$AAt?$AAh?$AA?3?$AA?5?$AA?$CF?$AAs?$AA?4?$AA?5?$AAU?$AAs?$AAi?$AAn?$AAg?$AA?5?$AAt?$AAh?$AAe?$AA?5?$AAd?$AAe?$AAf?$AAa?$AAu?$AAl?$AAt?$AA?4@ DB 'B'
	DB	00H, 'a', 00H, 'd', 00H, ' ', 00H, 'p', 00H, 'a', 00H, 't', 00H
	DB	'h', 00H, ':', 00H, ' ', 00H, '%', 00H, 's', 00H, '.', 00H, ' '
	DB	00H, 'U', 00H, 's', 00H, 'i', 00H, 'n', 00H, 'g', 00H, ' ', 00H
	DB	't', 00H, 'h', 00H, 'e', 00H, ' ', 00H, 'd', 00H, 'e', 00H, 'f'
	DB	00H, 'a', 00H, 'u', 00H, 'l', 00H, 't', 00H, '.', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1IK@DNNHMFHE@?$AAR?$AAe?$AAc?$AAo?$AAr?$AAd?$AAi?$AAn?$AAg?$AA?5?$AAs?$AAt?$AAo?$AAp?$AAp?$AAe?$AAd?$AA?4?$AA?5?$AAY?$AAo?$AAu?$AA?5?$AAc?$AAa?$AAn?$AA?5?$AAt?$AAr?$AAy?$AA?5?$AAa@
CONST	SEGMENT
??_C@_1IK@DNNHMFHE@?$AAR?$AAe?$AAc?$AAo?$AAr?$AAd?$AAi?$AAn?$AAg?$AA?5?$AAs?$AAt?$AAo?$AAp?$AAp?$AAe?$AAd?$AA?4?$AA?5?$AAY?$AAo?$AAu?$AA?5?$AAc?$AAa?$AAn?$AA?5?$AAt?$AAr?$AAy?$AA?5?$AAa@ DB 'R'
	DB	00H, 'e', 00H, 'c', 00H, 'o', 00H, 'r', 00H, 'd', 00H, 'i', 00H
	DB	'n', 00H, 'g', 00H, ' ', 00H, 's', 00H, 't', 00H, 'o', 00H, 'p'
	DB	00H, 'p', 00H, 'e', 00H, 'd', 00H, '.', 00H, ' ', 00H, 'Y', 00H
	DB	'o', 00H, 'u', 00H, ' ', 00H, 'c', 00H, 'a', 00H, 'n', 00H, ' '
	DB	00H, 't', 00H, 'r', 00H, 'y', 00H, ' ', 00H, 'a', 00H, 'n', 00H
	DB	'd', 00H, ' ', 00H, 'r', 00H, 'e', 00H, 'c', 00H, 'o', 00H, 'v'
	DB	00H, 'e', 00H, 'r', 00H, ' ', 00H, 't', 00H, 'h', 00H, 'e', 00H
	DB	' ', 00H, 'd', 00H, 'a', 00H, 't', 00H, 'a', 00H, ' ', 00H, 'w'
	DB	00H, 'i', 00H, 't', 00H, 'h', 00H, ' ', 00H, 'V', 00H, 'i', 00H
	DB	'r', 00H, 't', 00H, 'u', 00H, 'a', 00H, 'l', 00H, 'D', 00H, 'u'
	DB	00H, 'b', 00H, '.', 00H, 00H, 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_1KO@OKHAKCAA@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAa?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA?5?$AAm?$AAe?$AAm?$AAo?$AAr?$AAy?$AA?5?$AAf?$AAo?$AAr?$AA?5?$AAt?$AAh@
CONST	SEGMENT
??_C@_1KO@OKHAKCAA@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAa?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA?5?$AAm?$AAe?$AAm?$AAo?$AAr?$AAy?$AA?5?$AAf?$AAo?$AAr?$AA?5?$AAt?$AAh@ DB 'C'
	DB	00H, 'o', 00H, 'u', 00H, 'l', 00H, 'd', 00H, ' ', 00H, 'n', 00H
	DB	'o', 00H, 't', 00H, ' ', 00H, 'a', 00H, 'l', 00H, 'l', 00H, 'o'
	DB	00H, 'c', 00H, 'a', 00H, 't', 00H, 'e', 00H, ' ', 00H, 'm', 00H
	DB	'e', 00H, 'm', 00H, 'o', 00H, 'r', 00H, 'y', 00H, ' ', 00H, 'f'
	DB	00H, 'o', 00H, 'r', 00H, ' ', 00H, 't', 00H, 'h', 00H, 'e', 00H
	DB	' ', 00H, 'A', 00H, 'V', 00H, 'I', 00H, ' ', 00H, 'r', 00H, 'e'
	DB	00H, 'c', 00H, 'o', 00H, 'r', 00H, 'd', 00H, 'i', 00H, 'n', 00H
	DB	'g', 00H, ' ', 00H, 'd', 00H, 'a', 00H, 't', 00H, 'a', 00H, '.'
	DB	00H, ' ', 00H, 'Y', 00H, 'o', 00H, 'u', 00H, 'r', 00H, ' ', 00H
	DB	's', 00H, 'y', 00H, 's', 00H, 't', 00H, 'e', 00H, 'm', 00H, ' '
	DB	00H, 'i', 00H, 's', 00H, ' ', 00H, 't', 00H, 'o', 00H, 'o', 00H
	DB	' ', 00H, 'l', 00H, 'o', 00H, 'w', 00H, ' ', 00H, 'o', 00H, 'n'
	DB	00H, ' ', 00H, 'm', 00H, 'e', 00H, 'm', 00H, 'o', 00H, 'r', 00H
	DB	'y', 00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1JC@JGKNOFEE@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAa?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA?5?$AAa?$AA?5?$AAr?$AAe?$AAc?$AAo?$AAr?$AAd?$AAi?$AAn?$AAg?$AA?5?$AAb@
CONST	SEGMENT
??_C@_1JC@JGKNOFEE@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAa?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA?5?$AAa?$AA?5?$AAr?$AAe?$AAc?$AAo?$AAr?$AAd?$AAi?$AAn?$AAg?$AA?5?$AAb@ DB 'C'
	DB	00H, 'o', 00H, 'u', 00H, 'l', 00H, 'd', 00H, ' ', 00H, 'n', 00H
	DB	'o', 00H, 't', 00H, ' ', 00H, 'a', 00H, 'l', 00H, 'l', 00H, 'o'
	DB	00H, 'c', 00H, 'a', 00H, 't', 00H, 'e', 00H, ' ', 00H, 'a', 00H
	DB	' ', 00H, 'r', 00H, 'e', 00H, 'c', 00H, 'o', 00H, 'r', 00H, 'd'
	DB	00H, 'i', 00H, 'n', 00H, 'g', 00H, ' ', 00H, 'b', 00H, 'u', 00H
	DB	'f', 00H, 'f', 00H, 'e', 00H, 'r', 00H, '.', 00H, ' ', 00H, 'Y'
	DB	00H, 'o', 00H, 'u', 00H, 'r', 00H, ' ', 00H, 's', 00H, 'y', 00H
	DB	's', 00H, 't', 00H, 'e', 00H, 'm', 00H, ' ', 00H, 'i', 00H, 's'
	DB	00H, ' ', 00H, 't', 00H, 'o', 00H, 'o', 00H, ' ', 00H, 'l', 00H
	DB	'o', 00H, 'w', 00H, ' ', 00H, 'o', 00H, 'n', 00H, ' ', 00H, 'm'
	DB	00H, 'e', 00H, 'm', 00H, 'o', 00H, 'r', 00H, 'y', 00H, '.', 00H
	DB	00H, 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_1HI@IEHEEGLD@?$AAS?$AAo?$AAr?$AAr?$AAy?$AA?$CB?$AA?5?$AAY?$AAo?$AAu?$AA?5?$AAd?$AAo?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAh?$AAa?$AAv?$AAe?$AA?5?$AAe?$AAn?$AAo?$AAu?$AAg?$AAh?$AA?6?$AAd?$AAi@
CONST	SEGMENT
??_C@_1HI@IEHEEGLD@?$AAS?$AAo?$AAr?$AAr?$AAy?$AA?$CB?$AA?5?$AAY?$AAo?$AAu?$AA?5?$AAd?$AAo?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAh?$AAa?$AAv?$AAe?$AA?5?$AAe?$AAn?$AAo?$AAu?$AAg?$AAh?$AA?6?$AAd?$AAi@ DB 'S'
	DB	00H, 'o', 00H, 'r', 00H, 'r', 00H, 'y', 00H, '!', 00H, ' ', 00H
	DB	'Y', 00H, 'o', 00H, 'u', 00H, ' ', 00H, 'd', 00H, 'o', 00H, ' '
	DB	00H, 'n', 00H, 'o', 00H, 't', 00H, ' ', 00H, 'h', 00H, 'a', 00H
	DB	'v', 00H, 'e', 00H, ' ', 00H, 'e', 00H, 'n', 00H, 'o', 00H, 'u'
	DB	00H, 'g', 00H, 'h', 00H, 0aH, 00H, 'd', 00H, 'i', 00H, 's', 00H
	DB	'k', 00H, ' ', 00H, 's', 00H, 'p', 00H, 'a', 00H, 'c', 00H, 'e'
	DB	00H, ' ', 00H, 't', 00H, 'o', 00H, ' ', 00H, 'r', 00H, 'e', 00H
	DB	'c', 00H, 'o', 00H, 'r', 00H, 'd', 00H, ' ', 00H, 'a', 00H, ' '
	DB	00H, 'v', 00H, 'i', 00H, 'd', 00H, 'e', 00H, 'o', 00H, '.', 00H
	DB	00H, 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_1BI@NIHBLACF@?$AAI?$AAn?$AAf?$AAo?$AAr?$AAm?$AAa?$AAt?$AAi?$AAo?$AAn?$AA?$AA@
CONST	SEGMENT
??_C@_1BI@NIHBLACF@?$AAI?$AAn?$AAf?$AAo?$AAr?$AAm?$AAa?$AAt?$AAi?$AAo?$AAn?$AA?$AA@ DB 'I'
	DB	00H, 'n', 00H, 'f', 00H, 'o', 00H, 'r', 00H, 'm', 00H, 'a', 00H
	DB	't', 00H, 'i', 00H, 'o', 00H, 'n', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1BM@CEJCBEB@?$AA?5?$AAa?$AAr?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAl?$AAi?$AAn?$AAe?$AA?5?$AA?$AA@
CONST	SEGMENT
??_C@_1BM@CEJCBEB@?$AA?5?$AAa?$AAr?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAl?$AAi?$AAn?$AAe?$AA?5?$AA?$AA@ DB ' '
	DB	00H, 'a', 00H, 'r', 00H, 'o', 00H, 'u', 00H, 'n', 00H, 'd', 00H
	DB	' ', 00H, 'l', 00H, 'i', 00H, 'n', 00H, 'e', 00H, ' ', 00H, 00H
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_0BA@OBGPPMEH@?4?2TimeShift?4cpp?$AA@
CONST	SEGMENT
??_C@_0BA@OBGPPMEH@?4?2TimeShift?4cpp?$AA@ DB '.\TimeShift.cpp', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1BM@DNEJLDMB@?$AAB?$AAu?$AAg?$AA?5?$AAf?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAi?$AAn?$AA?5?$AA?$AA@
CONST	SEGMENT
??_C@_1BM@DNEJLDMB@?$AAB?$AAu?$AAg?$AA?5?$AAf?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAi?$AAn?$AA?5?$AA?$AA@ DB 'B'
	DB	00H, 'u', 00H, 'g', 00H, ' ', 00H, 'f', 00H, 'o', 00H, 'u', 00H
	DB	'n', 00H, 'd', 00H, ' ', 00H, 'i', 00H, 'n', 00H, ' ', 00H, 00H
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_1BM@PCCAFGML@?$AA?$CF?$AAs?$AA?2?$AAd?$AAs?$AA?$CF?$AA?4?$AA3?$AAu?$AA?4?$AAa?$AAv?$AAi?$AA?$AA@
CONST	SEGMENT
??_C@_1BM@PCCAFGML@?$AA?$CF?$AAs?$AA?2?$AAd?$AAs?$AA?$CF?$AA?4?$AA3?$AAu?$AA?4?$AAa?$AAv?$AAi?$AA?$AA@ DB '%'
	DB	00H, 's', 00H, '\', 00H, 'd', 00H, 's', 00H, '%', 00H, '.', 00H
	DB	'3', 00H, 'u', 00H, '.', 00H, 'a', 00H, 'v', 00H, 'i', 00H, 00H
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_1JC@BMFAGHFA@?$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?$AAD?$AAe?$AAl?$AAe?$AAt?$AAe@
CONST	SEGMENT
??_C@_1JC@BMFAGHFA@?$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?$AAD?$AAe?$AAl?$AAe?$AAt?$AAe@ 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, 'D'
	DB	00H, 'e', 00H, 'l', 00H, 'e', 00H, 't', 00H, 'e', 00H, ' ', 00H
	DB	's', 00H, 'o', 00H, 'm', 00H, 'e', 00H, ' ', 00H, 'o', 00H, 'f'
	DB	00H, ' ', 00H, 'y', 00H, 'o', 00H, 'u', 00H, 'r', 00H, ' ', 00H
	DB	'v', 00H, 'i', 00H, 'd', 00H, 'e', 00H, 'o', 00H, ' ', 00H, 'f'
	DB	00H, 'i', 00H, 'l', 00H, 'e', 00H, 's', 00H, ' ', 00H, 'a', 00H
	DB	'n', 00H, 'd', 00H, ' ', 00H, 't', 00H, 'r', 00H, 'y', 00H, ' '
	DB	00H, 'a', 00H, 'g', 00H, 'a', 00H, 'i', 00H, 'n', 00H, '.', 00H
	DB	00H, 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_17KLKMGCJO@?$AAf?$AAa?$AAt?$AA?$AA@
CONST	SEGMENT
??_C@_17KLKMGCJO@?$AAf?$AAa?$AAt?$AA?$AA@ DB 'f', 00H, 'a', 00H, 't', 00H
	DB	00H, 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_17BJPFHBEJ@?$AAC?$AA?3?$AA?2?$AA?$AA@
CONST	SEGMENT
??_C@_17BJPFHBEJ@?$AAC?$AA?3?$AA?2?$AA?$AA@ DB 'C', 00H, ':', 00H, '\', 00H
	DB	00H, 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_1CO@DNIFJBOI@?$AAP?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_1CO@DNIFJBOI@?$AAP?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd?$AA?$AA@ DB 'P'
	DB	00H, 'l', 00H, 'a', 00H, 't', 00H, 'f', 00H, 'o', 00H, 'r', 00H
	DB	'm', 00H, ' ', 00H, 'n', 00H, 'o', 00H, 't', 00H, ' ', 00H, 's'
	DB	00H, 'u', 00H, 'p', 00H, 'p', 00H, 'o', 00H, 'r', 00H, 't', 00H
	DB	'e', 00H, 'd', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1CA@OHPNFDJP@?$AA?4?$AA?2?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
CONST	SEGMENT
??_C@_1CA@OHPNFDJP@?$AA?4?$AA?2?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@ DB '.'
	DB	00H, '\', 00H, 'T', 00H, 'i', 00H, 'm', 00H, 'e', 00H, 'S', 00H
	DB	'h', 00H, 'i', 00H, 'f', 00H, 't', 00H, '.', 00H, 'c', 00H, 'p'
	DB	00H, 'p', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1GC@PLDBONEO@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAg?$AAe?$AAt?$AA?5?$AAt?$AAh?$AAe?$AA?5?$AAa?$AAd?$AAd?$AAr?$AAe?$AAs?$AAs?$AA?5?$AAf?$AAo?$AAr?$AA?5?$AAG?$AAe@
CONST	SEGMENT
??_C@_1GC@PLDBONEO@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAg?$AAe?$AAt?$AA?5?$AAt?$AAh?$AAe?$AA?5?$AAa?$AAd?$AAd?$AAr?$AAe?$AAs?$AAs?$AA?5?$AAf?$AAo?$AAr?$AA?5?$AAG?$AAe@ DB 'C'
	DB	00H, 'o', 00H, 'u', 00H, 'l', 00H, 'd', 00H, ' ', 00H, 'n', 00H
	DB	'o', 00H, 't', 00H, ' ', 00H, 'g', 00H, 'e', 00H, 't', 00H, ' '
	DB	00H, 't', 00H, 'h', 00H, 'e', 00H, ' ', 00H, 'a', 00H, 'd', 00H
	DB	'd', 00H, 'r', 00H, 'e', 00H, 's', 00H, 's', 00H, ' ', 00H, 'f'
	DB	00H, 'o', 00H, 'r', 00H, ' ', 00H, 'G', 00H, 'e', 00H, 't', 00H
	DB	'D', 00H, 'i', 00H, 's', 00H, 'k', 00H, 'F', 00H, 'r', 00H, 'e'
	DB	00H, 'e', 00H, 'S', 00H, 'p', 00H, 'a', 00H, 'c', 00H, 'e', 00H
	DB	'E', 00H, 'x', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_0BE@HIJKCDNA@GetDiskFreeSpaceExW?$AA@
CONST	SEGMENT
??_C@_0BE@HIJKCDNA@GetDiskFreeSpaceExW?$AA@ DB 'GetDiskFreeSpaceExW', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_17OAIDBDBP@?$AAc?$AA?3?$AA?2?$AA?$AA@
CONST	SEGMENT
??_C@_17OAIDBDBP@?$AAc?$AA?3?$AA?2?$AA?$AA@ DB 'c', 00H, ':', 00H, '\', 00H
	DB	00H, 00H					; `string'
_const8000 DW	08000H
	DW	08000H
	DW	08000H
	DW	08000H
_const00ff DW	0ffH
	DW	0ffH
	DW	0ffH
	DW	0ffH
_RvRuGvGu DW	0ea03H
	DW	0d257H
	DW	0fff1H
	DW	059b6H
_GvGuBvBu DW	07161H
	DW	0ffd3H
	DW	0ea03H
	DW	0d257H
_RvRuBvBu DW	07161H
	DW	0ffd3H
	DW	0fff1H
	DW	059b6H
_const128_0_128_0 DW 00H
	DW	080H
	DW	00H
	DW	080H
_UgUbYgYb DW	0e98H
	DW	04b23H
	DW	04000H
	DW	0d581H
_Ur0Yr0	DW	00H
	DW	02646H
	DW	00H
	DW	0ea7fH
_VgVbYgYb DW	0e98H
	DW	04b23H
	DW	0f5a2H
	DW	0ca5eH
_Vr0Yr0	DW	00H
	DW	02646H
	DW	00H
	DW	04000H
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\smartptr.h
;	COMDAT ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ PROC		; SmartPtr<TIME_SHIFT>::IsValid, COMDAT
; _this$ = ecx

; 221  :     {

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

; 222  :         if (counter && rawPtr) return TRUE;

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

; 223  :         return FALSE;

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

; 224  :     }

  00021	8b e5		 mov	 esp, ebp
  00023	5d		 pop	 ebp
  00024	c3		 ret	 0
?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ENDP		; SmartPtr<TIME_SHIFT>::IsValid
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$SmartPtr@VTIME_SHIFT@@@@QAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??0?$SmartPtr@VTIME_SHIFT@@@@QAE@XZ PROC		; SmartPtr<TIME_SHIFT>::SmartPtr<TIME_SHIFT>, COMDAT
; _this$ = ecx

; 76   :     SmartPtr() : rawPtr(0), counter(0) { }

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], 0
  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	c7 41 04 00 00
	00 00		 mov	 DWORD PTR [ecx+4], 0
  0001a	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0001d	8b e5		 mov	 esp, ebp
  0001f	5d		 pop	 ebp
  00020	c3		 ret	 0
??0?$SmartPtr@VTIME_SHIFT@@@@QAE@XZ ENDP		; SmartPtr<TIME_SHIFT>::SmartPtr<TIME_SHIFT>
_TEXT	ENDS
PUBLIC	?TimeShiftIsPathValid@@YAHPB_W@Z		; TimeShiftIsPathValid
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\timeshift.cpp
;	COMDAT ?TimeShiftIsPathValid@@YAHPB_W@Z
_TEXT	SEGMENT
tv69 = -8						; size = 4
_attr$ = -4						; size = 4
_path$ = 8						; size = 4
?TimeShiftIsPathValid@@YAHPB_W@Z PROC			; TimeShiftIsPathValid, COMDAT

; 1613 : {

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

; 1614 :     DWORD attr = GetFileAttributes(path);

  00006	8b 45 08	 mov	 eax, DWORD PTR _path$[ebp]
  00009	50		 push	 eax
  0000a	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetFileAttributesW@4
  00010	89 45 fc	 mov	 DWORD PTR _attr$[ebp], eax

; 1615 : 
; 1616 :     return (attr==INVALID_FILE_ATTRIBUTES ||
; 1617 :             !(attr & FILE_ATTRIBUTE_DIRECTORY)) ? FALSE : TRUE;

  00013	83 7d fc ff	 cmp	 DWORD PTR _attr$[ebp], -1
  00017	74 11		 je	 SHORT $LN3@TimeShiftI
  00019	8b 4d fc	 mov	 ecx, DWORD PTR _attr$[ebp]
  0001c	83 e1 10	 and	 ecx, 16			; 00000010H
  0001f	74 09		 je	 SHORT $LN3@TimeShiftI
  00021	c7 45 f8 01 00
	00 00		 mov	 DWORD PTR tv69[ebp], 1
  00028	eb 07		 jmp	 SHORT $LN4@TimeShiftI
$LN3@TimeShiftI:
  0002a	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR tv69[ebp], 0
$LN4@TimeShiftI:
  00031	8b 45 f8	 mov	 eax, DWORD PTR tv69[ebp]

; 1618 : }

  00034	8b e5		 mov	 esp, ebp
  00036	5d		 pop	 ebp
  00037	c3		 ret	 0
?TimeShiftIsPathValid@@YAHPB_W@Z ENDP			; TimeShiftIsPathValid
_TEXT	ENDS
PUBLIC	?TimeShiftCancelSchedule@@YAHXZ			; TimeShiftCancelSchedule
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftCancelSchedule@@YAHXZ
_TEXT	SEGMENT
?TimeShiftCancelSchedule@@YAHXZ PROC			; TimeShiftCancelSchedule, COMDAT

; 1351 : {

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

; 1352 :     return TRUE;

  00003	b8 01 00 00 00	 mov	 eax, 1

; 1353 : }

  00008	5d		 pop	 ebp
  00009	c3		 ret	 0
?TimeShiftCancelSchedule@@YAHXZ ENDP			; TimeShiftCancelSchedule
_TEXT	ENDS
PUBLIC	?TimeShiftWorkOnInputFrames@@YAHXZ		; TimeShiftWorkOnInputFrames
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftWorkOnInputFrames@@YAHXZ
_TEXT	SEGMENT
?TimeShiftWorkOnInputFrames@@YAHXZ PROC			; TimeShiftWorkOnInputFrames, COMDAT

; 1346 : {

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

; 1347 :     return TRUE;

  00003	b8 01 00 00 00	 mov	 eax, 1

; 1348 : }

  00008	5d		 pop	 ebp
  00009	c3		 ret	 0
?TimeShiftWorkOnInputFrames@@YAHXZ ENDP			; TimeShiftWorkOnInputFrames
_TEXT	ENDS
PUBLIC	__$ArrayPad$
PUBLIC	?GetMaximumVolumeFileSize@@YAKPB_W@Z		; GetMaximumVolumeFileSize
; Function compile flags: /Odtp
;	COMDAT ?GetMaximumVolumeFileSize@@YAKPB_W@Z
_TEXT	SEGMENT
_result$ = -84						; size = 4
_volume$ = -80						; size = 8
_fileSystem$ = -72					; size = 64
__$ArrayPad$ = -4					; size = 4
_path$ = 8						; size = 4
?GetMaximumVolumeFileSize@@YAKPB_W@Z PROC		; GetMaximumVolumeFileSize, COMDAT

; 778  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 54	 sub	 esp, 84			; 00000054H
  00006	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0000b	33 c5		 xor	 eax, ebp
  0000d	89 45 fc	 mov	 DWORD PTR __$ArrayPad$[ebp], eax

; 779  :     TCHAR  volume[] = _T("C:\\");

  00010	a1 00 00 00 00	 mov	 eax, DWORD PTR ??_C@_17BJPFHBEJ@?$AAC?$AA?3?$AA?2?$AA?$AA@
  00015	89 45 b0	 mov	 DWORD PTR _volume$[ebp], eax
  00018	8b 0d 04 00 00
	00		 mov	 ecx, DWORD PTR ??_C@_17BJPFHBEJ@?$AAC?$AA?3?$AA?2?$AA?$AA@+4
  0001e	89 4d b4	 mov	 DWORD PTR _volume$[ebp+4], ecx

; 780  :     TCHAR  fileSystem[32];
; 781  :     DWORD result   = 0;

  00021	c7 45 ac 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 782  : 
; 783  :     if (!timeShift.IsValid() || !path)

  00028	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0002d	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  00032	85 c0		 test	 eax, eax
  00034	74 06		 je	 SHORT $LN6@GetMaximum
  00036	83 7d 08 00	 cmp	 DWORD PTR _path$[ebp], 0
  0003a	75 08		 jne	 SHORT $LN7@GetMaximum
$LN6@GetMaximum:

; 784  :        return result;

  0003c	8b 45 ac	 mov	 eax, DWORD PTR _result$[ebp]
  0003f	e9 b4 00 00 00	 jmp	 $LN8@GetMaximum
$LN7@GetMaximum:

; 785  : 
; 786  :     volume[0] = path[0];

  00044	8b 55 08	 mov	 edx, DWORD PTR _path$[ebp]
  00047	66 8b 02	 mov	 ax, WORD PTR [edx]
  0004a	66 89 45 b0	 mov	 WORD PTR _volume$[ebp], ax

; 787  : 
; 788  :     if (!GetVolumeInformation(volume, NULL, 0, NULL, NULL, NULL, fileSystem,
; 789  :                               sizeof(fileSystem)))

  0004e	6a 40		 push	 64			; 00000040H
  00050	8d 4d b8	 lea	 ecx, DWORD PTR _fileSystem$[ebp]
  00053	51		 push	 ecx
  00054	6a 00		 push	 0
  00056	6a 00		 push	 0
  00058	6a 00		 push	 0
  0005a	6a 00		 push	 0
  0005c	6a 00		 push	 0
  0005e	8d 55 b0	 lea	 edx, DWORD PTR _volume$[ebp]
  00061	52		 push	 edx
  00062	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetVolumeInformationW@32
  00068	85 c0		 test	 eax, eax
  0006a	75 08		 jne	 SHORT $LN5@GetMaximum

; 790  :        return result;

  0006c	8b 45 ac	 mov	 eax, DWORD PTR _result$[ebp]
  0006f	e9 84 00 00 00	 jmp	 $LN8@GetMaximum
$LN5@GetMaximum:

; 791  : 
; 792  :     _tcslwr(fileSystem);

  00074	8d 45 b8	 lea	 eax, DWORD PTR _fileSystem$[ebp]
  00077	50		 push	 eax
  00078	e8 00 00 00 00	 call	 __wcslwr
  0007d	83 c4 04	 add	 esp, 4

; 793  :     if (_tcslen(fileSystem) >= 3)

  00080	8d 4d b8	 lea	 ecx, DWORD PTR _fileSystem$[ebp]
  00083	51		 push	 ecx
  00084	e8 00 00 00 00	 call	 _wcslen
  00089	83 c4 04	 add	 esp, 4
  0008c	83 f8 03	 cmp	 eax, 3
  0008f	72 64		 jb	 SHORT $LN4@GetMaximum

; 794  :     {
; 795  :         /* Check for a FAT file system. Look for the tstring fat([0-9][0-9])? */
; 796  :         if (_tcsncmp(fileSystem, _T("fat"), 3)==0)

  00091	6a 03		 push	 3
  00093	68 00 00 00 00	 push	 OFFSET ??_C@_17KLKMGCJO@?$AAf?$AAa?$AAt?$AA?$AA@
  00098	8d 55 b8	 lea	 edx, DWORD PTR _fileSystem$[ebp]
  0009b	52		 push	 edx
  0009c	e8 00 00 00 00	 call	 _wcsncmp
  000a1	83 c4 0c	 add	 esp, 12			; 0000000cH
  000a4	85 c0		 test	 eax, eax
  000a6	75 4d		 jne	 SHORT $LN4@GetMaximum

; 797  :         {
; 798  :             if (_tcslen(fileSystem)==3 ||
; 799  :                 (_tcslen(fileSystem)==5 &&
; 800  :                  fileSystem[3] >= '0' && fileSystem[3] <= '9' &&
; 801  :                  fileSystem[4] >= '0' && fileSystem[4] <= '9'))

  000a8	8d 45 b8	 lea	 eax, DWORD PTR _fileSystem$[ebp]
  000ab	50		 push	 eax
  000ac	e8 00 00 00 00	 call	 _wcslen
  000b1	83 c4 04	 add	 esp, 4
  000b4	83 f8 03	 cmp	 eax, 3
  000b7	74 35		 je	 SHORT $LN1@GetMaximum
  000b9	8d 4d b8	 lea	 ecx, DWORD PTR _fileSystem$[ebp]
  000bc	51		 push	 ecx
  000bd	e8 00 00 00 00	 call	 _wcslen
  000c2	83 c4 04	 add	 esp, 4
  000c5	83 f8 05	 cmp	 eax, 5
  000c8	75 2b		 jne	 SHORT $LN4@GetMaximum
  000ca	0f b7 55 be	 movzx	 edx, WORD PTR _fileSystem$[ebp+6]
  000ce	83 fa 30	 cmp	 edx, 48			; 00000030H
  000d1	7c 22		 jl	 SHORT $LN4@GetMaximum
  000d3	0f b7 45 be	 movzx	 eax, WORD PTR _fileSystem$[ebp+6]
  000d7	83 f8 39	 cmp	 eax, 57			; 00000039H
  000da	7f 19		 jg	 SHORT $LN4@GetMaximum
  000dc	0f b7 4d c0	 movzx	 ecx, WORD PTR _fileSystem$[ebp+8]
  000e0	83 f9 30	 cmp	 ecx, 48			; 00000030H
  000e3	7c 10		 jl	 SHORT $LN4@GetMaximum
  000e5	0f b7 55 c0	 movzx	 edx, WORD PTR _fileSystem$[ebp+8]
  000e9	83 fa 39	 cmp	 edx, 57			; 00000039H
  000ec	7f 07		 jg	 SHORT $LN4@GetMaximum
$LN1@GetMaximum:

; 802  :                result = AVI_4GiB_LIMIT; /* Use a limit that's a bit less than 4GiB */

  000ee	c7 45 ac 8c 0f
	00 00		 mov	 DWORD PTR _result$[ebp], 3980 ; 00000f8cH
$LN4@GetMaximum:

; 803  :         }
; 804  :     }
; 805  : 
; 806  :     return result;

  000f5	8b 45 ac	 mov	 eax, DWORD PTR _result$[ebp]
$LN8@GetMaximum:

; 807  : }

  000f8	8b 4d fc	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  000fb	33 cd		 xor	 ecx, ebp
  000fd	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00102	8b e5		 mov	 esp, ebp
  00104	5d		 pop	 ebp
  00105	c3		 ret	 0
?GetMaximumVolumeFileSize@@YAKPB_W@Z ENDP		; GetMaximumVolumeFileSize
_TEXT	ENDS
PUBLIC	?C_RGBtoYUV@@YAPAEPAE0K@Z			; C_RGBtoYUV
; Function compile flags: /Odtp
;	COMDAT ?C_RGBtoYUV@@YAPAEPAE0K@Z
_TEXT	SEGMENT
tv167 = -44						; size = 4
tv159 = -40						; size = 4
tv132 = -36						; size = 4
tv92 = -32						; size = 4
_U$142468 = -28						; size = 4
_G$142465 = -24						; size = 4
_Y$142467 = -20						; size = 4
_R$142466 = -16						; size = 4
_B$142464 = -12						; size = 4
_V$142469 = -8						; size = 4
_w2$ = -4						; size = 4
_dest$ = 8						; size = 4
_src$ = 12						; size = 4
_w$ = 16						; size = 4
?C_RGBtoYUV@@YAPAEPAE0K@Z PROC				; C_RGBtoYUV, COMDAT

; 640  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 2c	 sub	 esp, 44			; 0000002cH

; 641  :     DWORD w2 = w >> 1;

  00006	8b 45 10	 mov	 eax, DWORD PTR _w$[ebp]
  00009	d1 e8		 shr	 eax, 1
  0000b	89 45 fc	 mov	 DWORD PTR _w2$[ebp], eax
$LN2@C_RGBtoYUV:

; 642  : 
; 643  :     #define clip(x) (((x) & 0xffffff00) ? ((x) & 0x80000000) ? 0 : 255 : (x))
; 644  : 
; 645  :     while (w2--)

  0000e	8b 4d fc	 mov	 ecx, DWORD PTR _w2$[ebp]
  00011	8b 55 fc	 mov	 edx, DWORD PTR _w2$[ebp]
  00014	83 ea 01	 sub	 edx, 1
  00017	89 55 fc	 mov	 DWORD PTR _w2$[ebp], edx
  0001a	85 c9		 test	 ecx, ecx
  0001c	0f 84 05 02 00
	00		 je	 $LN1@C_RGBtoYUV

; 646  :     {
; 647  :         int B = *src++;

  00022	8b 45 0c	 mov	 eax, DWORD PTR _src$[ebp]
  00025	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  00028	89 4d f4	 mov	 DWORD PTR _B$142464[ebp], ecx
  0002b	8b 55 0c	 mov	 edx, DWORD PTR _src$[ebp]
  0002e	83 c2 01	 add	 edx, 1
  00031	89 55 0c	 mov	 DWORD PTR _src$[ebp], edx

; 648  :         int G = *src++;

  00034	8b 45 0c	 mov	 eax, DWORD PTR _src$[ebp]
  00037	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  0003a	89 4d e8	 mov	 DWORD PTR _G$142465[ebp], ecx
  0003d	8b 55 0c	 mov	 edx, DWORD PTR _src$[ebp]
  00040	83 c2 01	 add	 edx, 1
  00043	89 55 0c	 mov	 DWORD PTR _src$[ebp], edx

; 649  :         int R = *src++;

  00046	8b 45 0c	 mov	 eax, DWORD PTR _src$[ebp]
  00049	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  0004c	89 4d f0	 mov	 DWORD PTR _R$142466[ebp], ecx
  0004f	8b 55 0c	 mov	 edx, DWORD PTR _src$[ebp]
  00052	83 c2 01	 add	 edx, 1
  00055	89 55 0c	 mov	 DWORD PTR _src$[ebp], edx

; 650  : 
; 651  :         int Y = (R * 9798 + G * 19235 + B * 3736) >> 15;

  00058	8b 45 f0	 mov	 eax, DWORD PTR _R$142466[ebp]
  0005b	69 c0 46 26 00
	00		 imul	 eax, 9798		; 00002646H
  00061	8b 4d e8	 mov	 ecx, DWORD PTR _G$142465[ebp]
  00064	69 c9 23 4b 00
	00		 imul	 ecx, 19235		; 00004b23H
  0006a	03 c1		 add	 eax, ecx
  0006c	8b 55 f4	 mov	 edx, DWORD PTR _B$142464[ebp]
  0006f	69 d2 98 0e 00
	00		 imul	 edx, 3736		; 00000e98H
  00075	03 c2		 add	 eax, edx
  00077	c1 f8 0f	 sar	 eax, 15			; 0000000fH
  0007a	89 45 ec	 mov	 DWORD PTR _Y$142467[ebp], eax

; 652  :         int U = ((R * -5505 + G * -10879 + B * 16384) >> 15) + 128;

  0007d	8b 45 f0	 mov	 eax, DWORD PTR _R$142466[ebp]
  00080	69 c0 7f ea ff
	ff		 imul	 eax, -5505		; ffffea7fH
  00086	8b 4d e8	 mov	 ecx, DWORD PTR _G$142465[ebp]
  00089	69 c9 81 d5 ff
	ff		 imul	 ecx, -10879		; ffffd581H
  0008f	03 c1		 add	 eax, ecx
  00091	8b 55 f4	 mov	 edx, DWORD PTR _B$142464[ebp]
  00094	c1 e2 0e	 shl	 edx, 14			; 0000000eH
  00097	03 c2		 add	 eax, edx
  00099	c1 f8 0f	 sar	 eax, 15			; 0000000fH
  0009c	05 80 00 00 00	 add	 eax, 128		; 00000080H
  000a1	89 45 e4	 mov	 DWORD PTR _U$142468[ebp], eax

; 653  : 
; 654  :         *dest++ = clip(Y);

  000a4	8b 45 ec	 mov	 eax, DWORD PTR _Y$142467[ebp]
  000a7	25 00 ff ff ff	 and	 eax, -256		; ffffff00H
  000ac	74 1e		 je	 SHORT $LN5@C_RGBtoYUV
  000ae	8b 4d ec	 mov	 ecx, DWORD PTR _Y$142467[ebp]
  000b1	81 e1 00 00 00
	80		 and	 ecx, -2147483648	; 80000000H
  000b7	f7 d9		 neg	 ecx
  000b9	1b c9		 sbb	 ecx, ecx
  000bb	81 e1 01 ff ff
	ff		 and	 ecx, -255		; ffffff01H
  000c1	81 c1 ff 00 00
	00		 add	 ecx, 255		; 000000ffH
  000c7	89 4d e0	 mov	 DWORD PTR tv92[ebp], ecx
  000ca	eb 06		 jmp	 SHORT $LN6@C_RGBtoYUV
$LN5@C_RGBtoYUV:
  000cc	8b 55 ec	 mov	 edx, DWORD PTR _Y$142467[ebp]
  000cf	89 55 e0	 mov	 DWORD PTR tv92[ebp], edx
$LN6@C_RGBtoYUV:
  000d2	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]
  000d5	8a 4d e0	 mov	 cl, BYTE PTR tv92[ebp]
  000d8	88 08		 mov	 BYTE PTR [eax], cl
  000da	8b 55 08	 mov	 edx, DWORD PTR _dest$[ebp]
  000dd	83 c2 01	 add	 edx, 1
  000e0	89 55 08	 mov	 DWORD PTR _dest$[ebp], edx

; 655  :         *dest++ = clip(U);

  000e3	8b 45 e4	 mov	 eax, DWORD PTR _U$142468[ebp]
  000e6	25 00 ff ff ff	 and	 eax, -256		; ffffff00H
  000eb	74 1e		 je	 SHORT $LN7@C_RGBtoYUV
  000ed	8b 4d e4	 mov	 ecx, DWORD PTR _U$142468[ebp]
  000f0	81 e1 00 00 00
	80		 and	 ecx, -2147483648	; 80000000H
  000f6	f7 d9		 neg	 ecx
  000f8	1b c9		 sbb	 ecx, ecx
  000fa	81 e1 01 ff ff
	ff		 and	 ecx, -255		; ffffff01H
  00100	81 c1 ff 00 00
	00		 add	 ecx, 255		; 000000ffH
  00106	89 4d dc	 mov	 DWORD PTR tv132[ebp], ecx
  00109	eb 06		 jmp	 SHORT $LN8@C_RGBtoYUV
$LN7@C_RGBtoYUV:
  0010b	8b 55 e4	 mov	 edx, DWORD PTR _U$142468[ebp]
  0010e	89 55 dc	 mov	 DWORD PTR tv132[ebp], edx
$LN8@C_RGBtoYUV:
  00111	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]
  00114	8a 4d dc	 mov	 cl, BYTE PTR tv132[ebp]
  00117	88 08		 mov	 BYTE PTR [eax], cl
  00119	8b 55 08	 mov	 edx, DWORD PTR _dest$[ebp]
  0011c	83 c2 01	 add	 edx, 1
  0011f	89 55 08	 mov	 DWORD PTR _dest$[ebp], edx

; 656  : 
; 657  :         B = *src++;

  00122	8b 45 0c	 mov	 eax, DWORD PTR _src$[ebp]
  00125	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  00128	89 4d f4	 mov	 DWORD PTR _B$142464[ebp], ecx
  0012b	8b 55 0c	 mov	 edx, DWORD PTR _src$[ebp]
  0012e	83 c2 01	 add	 edx, 1
  00131	89 55 0c	 mov	 DWORD PTR _src$[ebp], edx

; 658  :         G = *src++;

  00134	8b 45 0c	 mov	 eax, DWORD PTR _src$[ebp]
  00137	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  0013a	89 4d e8	 mov	 DWORD PTR _G$142465[ebp], ecx
  0013d	8b 55 0c	 mov	 edx, DWORD PTR _src$[ebp]
  00140	83 c2 01	 add	 edx, 1
  00143	89 55 0c	 mov	 DWORD PTR _src$[ebp], edx

; 659  :         R = *src++;

  00146	8b 45 0c	 mov	 eax, DWORD PTR _src$[ebp]
  00149	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  0014c	89 4d f0	 mov	 DWORD PTR _R$142466[ebp], ecx
  0014f	8b 55 0c	 mov	 edx, DWORD PTR _src$[ebp]
  00152	83 c2 01	 add	 edx, 1
  00155	89 55 0c	 mov	 DWORD PTR _src$[ebp], edx

; 660  : 
; 661  :         Y = (R * 9798 + G * 19235 + B * 3736) >> 15;

  00158	8b 45 f0	 mov	 eax, DWORD PTR _R$142466[ebp]
  0015b	69 c0 46 26 00
	00		 imul	 eax, 9798		; 00002646H
  00161	8b 4d e8	 mov	 ecx, DWORD PTR _G$142465[ebp]
  00164	69 c9 23 4b 00
	00		 imul	 ecx, 19235		; 00004b23H
  0016a	03 c1		 add	 eax, ecx
  0016c	8b 55 f4	 mov	 edx, DWORD PTR _B$142464[ebp]
  0016f	69 d2 98 0e 00
	00		 imul	 edx, 3736		; 00000e98H
  00175	03 c2		 add	 eax, edx
  00177	c1 f8 0f	 sar	 eax, 15			; 0000000fH
  0017a	89 45 ec	 mov	 DWORD PTR _Y$142467[ebp], eax

; 662  :         int V = ((R * 16384 + G * -13730 + B * -2654) >> 15) + 128;

  0017d	8b 45 f0	 mov	 eax, DWORD PTR _R$142466[ebp]
  00180	c1 e0 0e	 shl	 eax, 14			; 0000000eH
  00183	8b 4d e8	 mov	 ecx, DWORD PTR _G$142465[ebp]
  00186	69 c9 5e ca ff
	ff		 imul	 ecx, -13730		; ffffca5eH
  0018c	03 c1		 add	 eax, ecx
  0018e	8b 55 f4	 mov	 edx, DWORD PTR _B$142464[ebp]
  00191	69 d2 a2 f5 ff
	ff		 imul	 edx, -2654		; fffff5a2H
  00197	03 c2		 add	 eax, edx
  00199	c1 f8 0f	 sar	 eax, 15			; 0000000fH
  0019c	05 80 00 00 00	 add	 eax, 128		; 00000080H
  001a1	89 45 f8	 mov	 DWORD PTR _V$142469[ebp], eax

; 663  : 
; 664  :         *dest++ = clip(Y);

  001a4	8b 45 ec	 mov	 eax, DWORD PTR _Y$142467[ebp]
  001a7	25 00 ff ff ff	 and	 eax, -256		; ffffff00H
  001ac	74 1e		 je	 SHORT $LN9@C_RGBtoYUV
  001ae	8b 4d ec	 mov	 ecx, DWORD PTR _Y$142467[ebp]
  001b1	81 e1 00 00 00
	80		 and	 ecx, -2147483648	; 80000000H
  001b7	f7 d9		 neg	 ecx
  001b9	1b c9		 sbb	 ecx, ecx
  001bb	81 e1 01 ff ff
	ff		 and	 ecx, -255		; ffffff01H
  001c1	81 c1 ff 00 00
	00		 add	 ecx, 255		; 000000ffH
  001c7	89 4d d8	 mov	 DWORD PTR tv159[ebp], ecx
  001ca	eb 06		 jmp	 SHORT $LN10@C_RGBtoYUV
$LN9@C_RGBtoYUV:
  001cc	8b 55 ec	 mov	 edx, DWORD PTR _Y$142467[ebp]
  001cf	89 55 d8	 mov	 DWORD PTR tv159[ebp], edx
$LN10@C_RGBtoYUV:
  001d2	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]
  001d5	8a 4d d8	 mov	 cl, BYTE PTR tv159[ebp]
  001d8	88 08		 mov	 BYTE PTR [eax], cl
  001da	8b 55 08	 mov	 edx, DWORD PTR _dest$[ebp]
  001dd	83 c2 01	 add	 edx, 1
  001e0	89 55 08	 mov	 DWORD PTR _dest$[ebp], edx

; 665  :         *dest++ = clip(V);

  001e3	8b 45 f8	 mov	 eax, DWORD PTR _V$142469[ebp]
  001e6	25 00 ff ff ff	 and	 eax, -256		; ffffff00H
  001eb	74 1e		 je	 SHORT $LN11@C_RGBtoYUV
  001ed	8b 4d f8	 mov	 ecx, DWORD PTR _V$142469[ebp]
  001f0	81 e1 00 00 00
	80		 and	 ecx, -2147483648	; 80000000H
  001f6	f7 d9		 neg	 ecx
  001f8	1b c9		 sbb	 ecx, ecx
  001fa	81 e1 01 ff ff
	ff		 and	 ecx, -255		; ffffff01H
  00200	81 c1 ff 00 00
	00		 add	 ecx, 255		; 000000ffH
  00206	89 4d d4	 mov	 DWORD PTR tv167[ebp], ecx
  00209	eb 06		 jmp	 SHORT $LN12@C_RGBtoYUV
$LN11@C_RGBtoYUV:
  0020b	8b 55 f8	 mov	 edx, DWORD PTR _V$142469[ebp]
  0020e	89 55 d4	 mov	 DWORD PTR tv167[ebp], edx
$LN12@C_RGBtoYUV:
  00211	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]
  00214	8a 4d d4	 mov	 cl, BYTE PTR tv167[ebp]
  00217	88 08		 mov	 BYTE PTR [eax], cl
  00219	8b 55 08	 mov	 edx, DWORD PTR _dest$[ebp]
  0021c	83 c2 01	 add	 edx, 1
  0021f	89 55 08	 mov	 DWORD PTR _dest$[ebp], edx

; 666  :     }

  00222	e9 e7 fd ff ff	 jmp	 $LN2@C_RGBtoYUV
$LN1@C_RGBtoYUV:

; 667  : 
; 668  :     return src;

  00227	8b 45 0c	 mov	 eax, DWORD PTR _src$[ebp]

; 669  : }

  0022a	8b e5		 mov	 esp, ebp
  0022c	5d		 pop	 ebp
  0022d	c3		 ret	 0
?C_RGBtoYUV@@YAPAEPAE0K@Z ENDP				; C_RGBtoYUV
_TEXT	ENDS
PUBLIC	?P3_RGBtoYUV@@YAPAEPAE0K@Z			; P3_RGBtoYUV
; Function compile flags: /Odtp
;	COMDAT ?P3_RGBtoYUV@@YAPAEPAE0K@Z
_TEXT	SEGMENT
_dest$ = 8						; size = 4
_src$ = 12						; size = 4
_w$ = 16						; size = 4
?P3_RGBtoYUV@@YAPAEPAE0K@Z PROC				; P3_RGBtoYUV, COMDAT

; 547  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	56		 push	 esi
  00004	57		 push	 edi

; 548  :     _asm
; 549  :     {
; 550  :         mov esi, src

  00005	8b 75 0c	 mov	 esi, DWORD PTR _src$[ebp]

; 551  :         mov edi, dest

  00008	8b 7d 08	 mov	 edi, DWORD PTR _dest$[ebp]

; 552  :         mov eax, w

  0000b	8b 45 10	 mov	 eax, DWORD PTR _w$[ebp]

; 553  :         shr eax, 2

  0000e	c1 e8 02	 shr	 eax, 2

; 554  : 
; 555  :         pxor mm0, mm0              ; mm0 = 0, constant

  00011	0f ef c0	 pxor	 mm0, mm0

; 556  :         movq mm7, const128_0_128_0 ; constant

  00014	0f 6f 3d 00 00
	00 00		 movq	 mm7, MMWORD PTR _const128_0_128_0
$next4$142454:

; 557  : 
; 558  :     next4:
; 559  :         // Process 4 pixels.  First YUYV is a, second is b.
; 560  :         // Source must be 12-byte aligned.
; 561  :         movd mm1, [esi+0]      ; mm1 = X X X X B1a R0a G0a B0a

  0001b	0f 6e 0e	 movd	 mm1, DWORD PTR [esi]

; 562  :         movd mm2, [esi+4]      ; mm2 = X X X X G0b B0b R1a G1a

  0001e	0f 6e 56 04	 movd	 mm2, DWORD PTR [esi+4]

; 563  :         movd mm3, [esi+8]      ; mm3 = X X X X R1b G1b B1b R0b

  00022	0f 6e 5e 08	 movd	 mm3, DWORD PTR [esi+8]

; 564  :         add esi, 12

  00026	83 c6 0c	 add	 esi, 12			; 0000000cH

; 565  : 
; 566  :         punpcklbw mm1, mm0     ; mm1 = B1a R0a G0a B0a

  00029	0f 60 c8	 punpcklbw mm1, mm0

; 567  :         punpcklbw mm2, mm0     ; mm2 = G0b B0b R1a G1a

  0002c	0f 60 d0	 punpcklbw mm2, mm0

; 568  :         punpcklbw mm3, mm0     ; mm3 = R1b G1b B1b R0b

  0002f	0f 60 d8	 punpcklbw mm3, mm0

; 569  : 
; 570  : 
; 571  :         pshufw mm4, mm1, 0x44  ; mm4 = G0a B0a G0a B0a

  00032	0f 70 e1 44	 pshufw	 mm4, mm1, 68		; 00000044H

; 572  :         pmaddwd mm4, UgUbYgYb  ; mm4 =   Ugb     Ygb

  00036	0f f5 25 00 00
	00 00		 pmaddwd mm4, MMWORD PTR _UgUbYgYb

; 573  : 
; 574  :         pshufw mm5, mm1, 0x88  ; mm5 = R0a XXX R0a XXX

  0003d	0f 70 e9 88	 pshufw	 mm5, mm1, -120		; ffffff88H

; 575  :         pmaddwd mm5, Ur0Yr0    ; mm5 =   Ur      Yr

  00041	0f f5 2d 00 00
	00 00		 pmaddwd mm5, MMWORD PTR _Ur0Yr0

; 576  : 
; 577  :         paddd mm4, mm5         ; mm4 =   Ua      Y0a

  00048	0f fe e5	 paddd	 mm4, mm5

; 578  :         psrad mm4, 15          ; mm4 >>= 15

  0004b	0f 72 e4 0f	 psrad	 mm4, 15			; 0000000fH

; 579  : 
; 580  : 
; 581  :         pshufw mm5, mm1, 0x0f  ; mm5 = XXX XXX B1a B1a

  0004f	0f 70 e9 0f	 pshufw	 mm5, mm1, 15		; 0000000fH

; 582  :         pshufw mm6, mm2, 0x00  ; mm6 = XXX XXX G1a G1a

  00053	0f 70 f2 00	 pshufw	 mm6, mm2, 0

; 583  : 
; 584  :         punpcklwd mm5, mm6     ; mm5 = G1a B1a G1a B1a

  00057	0f 61 ee	 punpcklwd mm5, mm6

; 585  :         pmaddwd mm5, VgVbYgYb  ; mm5 =   Vgb     Ygb

  0005a	0f f5 2d 00 00
	00 00		 pmaddwd mm5, MMWORD PTR _VgVbYgYb

; 586  : 
; 587  :         pshufw mm6, mm2, 0x44  ; mm6 = R1a XXX R1a XXX

  00061	0f 70 f2 44	 pshufw	 mm6, mm2, 68		; 00000044H

; 588  :         pmaddwd mm6, Vr0Yr0    ; mm6 =   Vr      Yr

  00065	0f f5 35 00 00
	00 00		 pmaddwd mm6, MMWORD PTR _Vr0Yr0

; 589  : 
; 590  :         paddd mm5, mm6         ; mm5 =   Va      Y1a

  0006c	0f fe ee	 paddd	 mm5, mm6

; 591  :         psrad mm5, 15          ; mm5 >>= 15

  0006f	0f 72 e5 0f	 psrad	 mm5, 15			; 0000000fH

; 592  : 
; 593  : 
; 594  :         pshufw mm2, mm2, 0xee  ; mm2 = G0b B0b G0b B0b

  00073	0f 70 d2 ee	 pshufw	 mm2, mm2, -18		; ffffffeeH

; 595  :         pmaddwd mm2, UgUbYgYb  ; mm2 =   Ugb     Ygb

  00077	0f f5 15 00 00
	00 00		 pmaddwd mm2, MMWORD PTR _UgUbYgYb

; 596  : 
; 597  :         pshufw mm1, mm3, 0x00  ; mm1 = R0b XXX R0b XXX

  0007e	0f 70 cb 00	 pshufw	 mm1, mm3, 0

; 598  :         pmaddwd mm1, Ur0Yr0    ; mm1 =   Ur      Yr

  00082	0f f5 0d 00 00
	00 00		 pmaddwd mm1, MMWORD PTR _Ur0Yr0

; 599  : 
; 600  :         paddd mm2, mm1         ; mm2 =   Ub      Y0b

  00089	0f fe d1	 paddd	 mm2, mm1

; 601  :         psrad mm2, 15          ; mm2 >>= 15

  0008c	0f 72 e2 0f	 psrad	 mm2, 15			; 0000000fH

; 602  : 
; 603  : 
; 604  :         pshufw mm6, mm3, 0x99  ; mm6 = G1b B1b G1b B1b

  00090	0f 70 f3 99	 pshufw	 mm6, mm3, -103		; ffffff99H

; 605  :         pmaddwd mm6, VgVbYgYb  ; mm6 =   Vgb     Ygb

  00094	0f f5 35 00 00
	00 00		 pmaddwd mm6, MMWORD PTR _VgVbYgYb

; 606  : 
; 607  :         pshufw mm3, mm3, 0xcc  ; mm3 = R1b XXX R1b XXX

  0009b	0f 70 db cc	 pshufw	 mm3, mm3, -52		; ffffffccH

; 608  :         pmaddwd mm3, Vr0Yr0    ; mm3 =   Vr      Yr

  0009f	0f f5 1d 00 00
	00 00		 pmaddwd mm3, MMWORD PTR _Vr0Yr0

; 609  : 
; 610  :         paddd mm6, mm3         ; mm6 =   Vb      Y1b

  000a6	0f fe f3	 paddd	 mm6, mm3

; 611  :         psrad mm6, 15          ; mm6 >>= 15

  000a9	0f 72 e6 0f	 psrad	 mm6, 15			; 0000000fH

; 612  : 
; 613  : 
; 614  :         packssdw mm4, mm5      ; mm4 = Va Y1a Ua Y0a

  000ad	0f 6b e5	 packssdw mm4, mm5

; 615  :         packssdw mm2, mm6      ; mm2 = Vb Y1b Ub Y0b

  000b0	0f 6b d6	 packssdw mm2, mm6

; 616  : 
; 617  :         paddsw mm4, mm7        ; mm4 = Va+128 Y1a Ua+128 Y0a

  000b3	0f ed e7	 paddsw	 mm4, mm7

; 618  :         paddsw mm2, mm7        ; mm2 = Vb+128 Y1b Ub+128 Y0b

  000b6	0f ed d7	 paddsw	 mm2, mm7

; 619  : 
; 620  :         packuswb mm4, mm2   ; mm4 = Vb+128 Y1b Ub+128 Y0b Va+128 Y1a Ua+128 Y0a

  000b9	0f 67 e2	 packuswb mm4, mm2

; 621  : 
; 622  : 
; 623  :         // Destination must be 8-byte aligned.
; 624  :         movq [edi], mm4

  000bc	0f 7f 27	 movq	 MMWORD PTR [edi], mm4

; 625  :         add edi, 8

  000bf	83 c7 08	 add	 edi, 8

; 626  : 
; 627  : 
; 628  :         dec eax

  000c2	48		 dec	 eax

; 629  :         jnz next4

  000c3	0f 85 52 ff ff
	ff		 jne	 $next4$142454

; 630  : 
; 631  :         mov src, esi

  000c9	89 75 0c	 mov	 DWORD PTR _src$[ebp], esi

; 632  :         emms

  000cc	0f 77		 emms

; 633  :     }
; 634  : 
; 635  :     return src;

  000ce	8b 45 0c	 mov	 eax, DWORD PTR _src$[ebp]

; 636  : }

  000d1	5f		 pop	 edi
  000d2	5e		 pop	 esi
  000d3	5d		 pop	 ebp
  000d4	c3		 ret	 0
?P3_RGBtoYUV@@YAPAEPAE0K@Z ENDP				; P3_RGBtoYUV
_TEXT	ENDS
PUBLIC	?P3_AvgYUV@@YAPAEPAE00K@Z			; P3_AvgYUV
; Function compile flags: /Odtp
;	COMDAT ?P3_AvgYUV@@YAPAEPAE00K@Z
_TEXT	SEGMENT
_dest$ = 8						; size = 4
_s1$ = 12						; size = 4
_s2$ = 16						; size = 4
_w$ = 20						; size = 4
?P3_AvgYUV@@YAPAEPAE00K@Z PROC				; P3_AvgYUV, COMDAT

; 508  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	53		 push	 ebx
  00004	56		 push	 esi
  00005	57		 push	 edi

; 509  :     __asm
; 510  :     {
; 511  :         mov edi, dest

  00006	8b 7d 08	 mov	 edi, DWORD PTR _dest$[ebp]

; 512  :         mov esi, s1

  00009	8b 75 0c	 mov	 esi, DWORD PTR _s1$[ebp]

; 513  :         mov ebx, s2

  0000c	8b 5d 10	 mov	 ebx, DWORD PTR _s2$[ebp]

; 514  : 
; 515  :         mov ecx, w

  0000f	8b 4d 14	 mov	 ecx, DWORD PTR _w$[ebp]

; 516  :         shr ecx, 2

  00012	c1 e9 02	 shr	 ecx, 2

; 517  :         jz end              /* Don't copy anything if the counter is equal to zero */

  00015	74 18		 je	 SHORT $end$142447
$next4$142448:

; 518  : 
; 519  :         next4:
; 520  :           movq mm0, [esi]   /* Copy 4 pixels from s1 */

  00017	0f 6f 06	 movq	 mm0, MMWORD PTR [esi]

; 521  :           movq mm1, [ebx]   /* Copy 4 pixels from s2 */

  0001a	0f 6f 0b	 movq	 mm1, MMWORD PTR [ebx]

; 522  : 
; 523  :           pavgb mm0, mm1    /* Average the two scanlines */

  0001d	0f e0 c1	 pavgb	 mm0, mm1

; 524  : 
; 525  :           movq [edi], mm0   /* Save the averaged scanline back into dest */

  00020	0f 7f 07	 movq	 MMWORD PTR [edi], mm0

; 526  : 
; 527  :           add edi, 8

  00023	83 c7 08	 add	 edi, 8

; 528  :           add esi, 8

  00026	83 c6 08	 add	 esi, 8

; 529  :           add ebx, 8

  00029	83 c3 08	 add	 ebx, 8

; 530  : 
; 531  :           dec ecx

  0002c	49		 dec	 ecx

; 532  :         jnz next4

  0002d	75 e8		 jne	 SHORT $next4$142448
$end$142447:

; 533  : 
; 534  :         end:
; 535  :         mov dest, edi

  0002f	89 7d 08	 mov	 DWORD PTR _dest$[ebp], edi

; 536  :         emms

  00032	0f 77		 emms

; 537  :     }
; 538  : 
; 539  :     return dest;

  00034	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]

; 540  : }

  00037	5f		 pop	 edi
  00038	5e		 pop	 esi
  00039	5b		 pop	 ebx
  0003a	5d		 pop	 ebp
  0003b	c3		 ret	 0
?P3_AvgYUV@@YAPAEPAE00K@Z ENDP				; P3_AvgYUV
_TEXT	ENDS
PUBLIC	?C_AvgYUV@@YAPAEPAE00K@Z			; C_AvgYUV
; Function compile flags: /Odtp
;	COMDAT ?C_AvgYUV@@YAPAEPAE00K@Z
_TEXT	SEGMENT
_dest$ = 8						; size = 4
_s1$ = 12						; size = 4
_s2$ = 16						; size = 4
_w$ = 20						; size = 4
?C_AvgYUV@@YAPAEPAE00K@Z PROC				; C_AvgYUV, COMDAT

; 485  : {

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

; 486  :     w >>= 1;

  00003	8b 45 14	 mov	 eax, DWORD PTR _w$[ebp]
  00006	d1 e8		 shr	 eax, 1
  00008	89 45 14	 mov	 DWORD PTR _w$[ebp], eax
$LN2@C_AvgYUV:

; 487  :     while (w > 0)

  0000b	83 7d 14 00	 cmp	 DWORD PTR _w$[ebp], 0
  0000f	0f 86 ce 00 00
	00		 jbe	 $LN1@C_AvgYUV

; 488  :     {
; 489  :         /* Y0 */
; 490  :         *dest++ = (BYTE)(((int)*s1++ + (int)*s2++) >> 1);

  00015	8b 4d 0c	 mov	 ecx, DWORD PTR _s1$[ebp]
  00018	0f b6 11	 movzx	 edx, BYTE PTR [ecx]
  0001b	8b 45 10	 mov	 eax, DWORD PTR _s2$[ebp]
  0001e	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  00021	03 d1		 add	 edx, ecx
  00023	d1 fa		 sar	 edx, 1
  00025	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]
  00028	88 10		 mov	 BYTE PTR [eax], dl
  0002a	8b 4d 08	 mov	 ecx, DWORD PTR _dest$[ebp]
  0002d	83 c1 01	 add	 ecx, 1
  00030	89 4d 08	 mov	 DWORD PTR _dest$[ebp], ecx
  00033	8b 55 10	 mov	 edx, DWORD PTR _s2$[ebp]
  00036	83 c2 01	 add	 edx, 1
  00039	89 55 10	 mov	 DWORD PTR _s2$[ebp], edx
  0003c	8b 45 0c	 mov	 eax, DWORD PTR _s1$[ebp]
  0003f	83 c0 01	 add	 eax, 1
  00042	89 45 0c	 mov	 DWORD PTR _s1$[ebp], eax

; 491  : 
; 492  :         /* U */
; 493  :         *dest++ = (BYTE)(((int)*s1++ + (int)*s2++) >> 1);

  00045	8b 4d 0c	 mov	 ecx, DWORD PTR _s1$[ebp]
  00048	0f b6 11	 movzx	 edx, BYTE PTR [ecx]
  0004b	8b 45 10	 mov	 eax, DWORD PTR _s2$[ebp]
  0004e	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  00051	03 d1		 add	 edx, ecx
  00053	d1 fa		 sar	 edx, 1
  00055	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]
  00058	88 10		 mov	 BYTE PTR [eax], dl
  0005a	8b 4d 08	 mov	 ecx, DWORD PTR _dest$[ebp]
  0005d	83 c1 01	 add	 ecx, 1
  00060	89 4d 08	 mov	 DWORD PTR _dest$[ebp], ecx
  00063	8b 55 10	 mov	 edx, DWORD PTR _s2$[ebp]
  00066	83 c2 01	 add	 edx, 1
  00069	89 55 10	 mov	 DWORD PTR _s2$[ebp], edx
  0006c	8b 45 0c	 mov	 eax, DWORD PTR _s1$[ebp]
  0006f	83 c0 01	 add	 eax, 1
  00072	89 45 0c	 mov	 DWORD PTR _s1$[ebp], eax

; 494  : 
; 495  :         /* Y1 */
; 496  :         *dest++ = (BYTE)(((int)*s1++ + (int)*s2++) >> 1);

  00075	8b 4d 0c	 mov	 ecx, DWORD PTR _s1$[ebp]
  00078	0f b6 11	 movzx	 edx, BYTE PTR [ecx]
  0007b	8b 45 10	 mov	 eax, DWORD PTR _s2$[ebp]
  0007e	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  00081	03 d1		 add	 edx, ecx
  00083	d1 fa		 sar	 edx, 1
  00085	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]
  00088	88 10		 mov	 BYTE PTR [eax], dl
  0008a	8b 4d 08	 mov	 ecx, DWORD PTR _dest$[ebp]
  0008d	83 c1 01	 add	 ecx, 1
  00090	89 4d 08	 mov	 DWORD PTR _dest$[ebp], ecx
  00093	8b 55 10	 mov	 edx, DWORD PTR _s2$[ebp]
  00096	83 c2 01	 add	 edx, 1
  00099	89 55 10	 mov	 DWORD PTR _s2$[ebp], edx
  0009c	8b 45 0c	 mov	 eax, DWORD PTR _s1$[ebp]
  0009f	83 c0 01	 add	 eax, 1
  000a2	89 45 0c	 mov	 DWORD PTR _s1$[ebp], eax

; 497  : 
; 498  :         /* V */
; 499  :         *dest++ = (BYTE)(((int)*s1++ + (int)*s2++) >> 1);

  000a5	8b 4d 0c	 mov	 ecx, DWORD PTR _s1$[ebp]
  000a8	0f b6 11	 movzx	 edx, BYTE PTR [ecx]
  000ab	8b 45 10	 mov	 eax, DWORD PTR _s2$[ebp]
  000ae	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  000b1	03 d1		 add	 edx, ecx
  000b3	d1 fa		 sar	 edx, 1
  000b5	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]
  000b8	88 10		 mov	 BYTE PTR [eax], dl
  000ba	8b 4d 08	 mov	 ecx, DWORD PTR _dest$[ebp]
  000bd	83 c1 01	 add	 ecx, 1
  000c0	89 4d 08	 mov	 DWORD PTR _dest$[ebp], ecx
  000c3	8b 55 10	 mov	 edx, DWORD PTR _s2$[ebp]
  000c6	83 c2 01	 add	 edx, 1
  000c9	89 55 10	 mov	 DWORD PTR _s2$[ebp], edx
  000cc	8b 45 0c	 mov	 eax, DWORD PTR _s1$[ebp]
  000cf	83 c0 01	 add	 eax, 1
  000d2	89 45 0c	 mov	 DWORD PTR _s1$[ebp], eax

; 500  : 
; 501  :         w--;

  000d5	8b 4d 14	 mov	 ecx, DWORD PTR _w$[ebp]
  000d8	83 e9 01	 sub	 ecx, 1
  000db	89 4d 14	 mov	 DWORD PTR _w$[ebp], ecx

; 502  :     }

  000de	e9 28 ff ff ff	 jmp	 $LN2@C_AvgYUV
$LN1@C_AvgYUV:

; 503  : 
; 504  :     return dest;

  000e3	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]

; 505  : }

  000e6	5d		 pop	 ebp
  000e7	c3		 ret	 0
?C_AvgYUV@@YAPAEPAE00K@Z ENDP				; C_AvgYUV
_TEXT	ENDS
PUBLIC	?C_AvgYUVtoRGB@@YAPAEPAE00K@Z			; C_AvgYUVtoRGB
; Function compile flags: /Odtp
;	COMDAT ?C_AvgYUVtoRGB@@YAPAEPAE00K@Z
_TEXT	SEGMENT
tv203 = -88						; size = 4
tv192 = -84						; size = 4
tv181 = -80						; size = 4
tv170 = -76						; size = 4
tv159 = -72						; size = 4
tv148 = -68						; size = 4
_Y0a$142397 = -64					; size = 4
_U$142414 = -60						; size = 4
_Va$142403 = -56					; size = 4
_Y0$142413 = -52					; size = 4
_Y1a$142401 = -48					; size = 4
_Vb$142411 = -44					; size = 4
_Y0b$142405 = -40					; size = 4
_V$142416 = -36						; size = 4
_Y1b$142409 = -32					; size = 4
_preR$142417 = -28					; size = 4
_preB$142419 = -24					; size = 4
_Y1$142415 = -20					; size = 4
_Ua$142399 = -16					; size = 4
_Ub$142407 = -12					; size = 4
_preG$142418 = -8					; size = 4
_w2$ = -4						; size = 4
_dest$ = 8						; size = 4
_src1$ = 12						; size = 4
_src2$ = 16						; size = 4
_w$ = 20						; size = 4
?C_AvgYUVtoRGB@@YAPAEPAE00K@Z PROC			; C_AvgYUVtoRGB, COMDAT

; 437  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 58	 sub	 esp, 88			; 00000058H

; 438  :     DWORD w2 = w >> 1;

  00006	8b 45 14	 mov	 eax, DWORD PTR _w$[ebp]
  00009	d1 e8		 shr	 eax, 1
  0000b	89 45 fc	 mov	 DWORD PTR _w2$[ebp], eax
$LN2@C_AvgYUVto:

; 439  : 
; 440  :     #define clip(x) (((x) & 0xffffff00) ? ((x) & 0x80000000) ? 0 : 255 : (x))
; 441  : 
; 442  :     while (w2--)

  0000e	8b 4d fc	 mov	 ecx, DWORD PTR _w2$[ebp]
  00011	8b 55 fc	 mov	 edx, DWORD PTR _w2$[ebp]
  00014	83 ea 01	 sub	 edx, 1
  00017	89 55 fc	 mov	 DWORD PTR _w2$[ebp], edx
  0001a	85 c9		 test	 ecx, ecx
  0001c	0f 84 d7 02 00
	00		 je	 $LN1@C_AvgYUVto

; 443  :     {
; 444  :         // Y0 U Y1 V for YUY2...
; 445  :         int Y0a = (int)DWORD(*src1++);

  00022	8b 45 0c	 mov	 eax, DWORD PTR _src1$[ebp]
  00025	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  00028	89 4d c0	 mov	 DWORD PTR _Y0a$142397[ebp], ecx
  0002b	8b 55 0c	 mov	 edx, DWORD PTR _src1$[ebp]
  0002e	83 c2 01	 add	 edx, 1
  00031	89 55 0c	 mov	 DWORD PTR _src1$[ebp], edx

; 446  :         int Ua =  (int)DWORD(*src1++) - 128;

  00034	8b 45 0c	 mov	 eax, DWORD PTR _src1$[ebp]
  00037	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  0003a	81 e9 80 00 00
	00		 sub	 ecx, 128		; 00000080H
  00040	89 4d f0	 mov	 DWORD PTR _Ua$142399[ebp], ecx
  00043	8b 55 0c	 mov	 edx, DWORD PTR _src1$[ebp]
  00046	83 c2 01	 add	 edx, 1
  00049	89 55 0c	 mov	 DWORD PTR _src1$[ebp], edx

; 447  :         int Y1a = (int)DWORD(*src1++);

  0004c	8b 45 0c	 mov	 eax, DWORD PTR _src1$[ebp]
  0004f	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  00052	89 4d d0	 mov	 DWORD PTR _Y1a$142401[ebp], ecx
  00055	8b 55 0c	 mov	 edx, DWORD PTR _src1$[ebp]
  00058	83 c2 01	 add	 edx, 1
  0005b	89 55 0c	 mov	 DWORD PTR _src1$[ebp], edx

; 448  :         int Va =  (int)DWORD(*src1++) - 128;

  0005e	8b 45 0c	 mov	 eax, DWORD PTR _src1$[ebp]
  00061	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  00064	81 e9 80 00 00
	00		 sub	 ecx, 128		; 00000080H
  0006a	89 4d c8	 mov	 DWORD PTR _Va$142403[ebp], ecx
  0006d	8b 55 0c	 mov	 edx, DWORD PTR _src1$[ebp]
  00070	83 c2 01	 add	 edx, 1
  00073	89 55 0c	 mov	 DWORD PTR _src1$[ebp], edx

; 449  : 
; 450  :         int Y0b = (int)DWORD(*src2++);

  00076	8b 45 10	 mov	 eax, DWORD PTR _src2$[ebp]
  00079	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  0007c	89 4d d8	 mov	 DWORD PTR _Y0b$142405[ebp], ecx
  0007f	8b 55 10	 mov	 edx, DWORD PTR _src2$[ebp]
  00082	83 c2 01	 add	 edx, 1
  00085	89 55 10	 mov	 DWORD PTR _src2$[ebp], edx

; 451  :         int Ub =  (int)DWORD(*src2++) - 128;

  00088	8b 45 10	 mov	 eax, DWORD PTR _src2$[ebp]
  0008b	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  0008e	81 e9 80 00 00
	00		 sub	 ecx, 128		; 00000080H
  00094	89 4d f4	 mov	 DWORD PTR _Ub$142407[ebp], ecx
  00097	8b 55 10	 mov	 edx, DWORD PTR _src2$[ebp]
  0009a	83 c2 01	 add	 edx, 1
  0009d	89 55 10	 mov	 DWORD PTR _src2$[ebp], edx

; 452  :         int Y1b = (int)DWORD(*src2++);

  000a0	8b 45 10	 mov	 eax, DWORD PTR _src2$[ebp]
  000a3	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  000a6	89 4d e0	 mov	 DWORD PTR _Y1b$142409[ebp], ecx
  000a9	8b 55 10	 mov	 edx, DWORD PTR _src2$[ebp]
  000ac	83 c2 01	 add	 edx, 1
  000af	89 55 10	 mov	 DWORD PTR _src2$[ebp], edx

; 453  :         int Vb =  (int)DWORD(*src2++) - 128;

  000b2	8b 45 10	 mov	 eax, DWORD PTR _src2$[ebp]
  000b5	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  000b8	81 e9 80 00 00
	00		 sub	 ecx, 128		; 00000080H
  000be	89 4d d4	 mov	 DWORD PTR _Vb$142411[ebp], ecx
  000c1	8b 55 10	 mov	 edx, DWORD PTR _src2$[ebp]
  000c4	83 c2 01	 add	 edx, 1
  000c7	89 55 10	 mov	 DWORD PTR _src2$[ebp], edx

; 454  : 
; 455  :         int Y0 = (Y0a + Y0b) >> 1;

  000ca	8b 45 c0	 mov	 eax, DWORD PTR _Y0a$142397[ebp]
  000cd	03 45 d8	 add	 eax, DWORD PTR _Y0b$142405[ebp]
  000d0	d1 f8		 sar	 eax, 1
  000d2	89 45 cc	 mov	 DWORD PTR _Y0$142413[ebp], eax

; 456  :         int U =  (Ua + Ub) >> 1;

  000d5	8b 4d f0	 mov	 ecx, DWORD PTR _Ua$142399[ebp]
  000d8	03 4d f4	 add	 ecx, DWORD PTR _Ub$142407[ebp]
  000db	d1 f9		 sar	 ecx, 1
  000dd	89 4d c4	 mov	 DWORD PTR _U$142414[ebp], ecx

; 457  :         int Y1 = (Y1a + Y1b) >> 1;

  000e0	8b 55 d0	 mov	 edx, DWORD PTR _Y1a$142401[ebp]
  000e3	03 55 e0	 add	 edx, DWORD PTR _Y1b$142409[ebp]
  000e6	d1 fa		 sar	 edx, 1
  000e8	89 55 ec	 mov	 DWORD PTR _Y1$142415[ebp], edx

; 458  :         int V =  (Va + Vb) >> 1;

  000eb	8b 45 c8	 mov	 eax, DWORD PTR _Va$142403[ebp]
  000ee	03 45 d4	 add	 eax, DWORD PTR _Vb$142411[ebp]
  000f1	d1 f8		 sar	 eax, 1
  000f3	89 45 dc	 mov	 DWORD PTR _V$142416[ebp], eax

; 459  : 
; 460  :         int preR = (U * -30 + V * 45931) >> 15;

  000f6	8b 4d c4	 mov	 ecx, DWORD PTR _U$142414[ebp]
  000f9	6b c9 e2	 imul	 ecx, -30		; ffffffe2H
  000fc	8b 55 dc	 mov	 edx, DWORD PTR _V$142416[ebp]
  000ff	69 d2 6b b3 00
	00		 imul	 edx, 45931		; 0000b36bH
  00105	03 ca		 add	 ecx, edx
  00107	c1 f9 0f	 sar	 ecx, 15			; 0000000fH
  0010a	89 4d e4	 mov	 DWORD PTR _preR$142417[ebp], ecx

; 461  :         int preG = (U * -11258 + V * -23378) >> 15;

  0010d	8b 45 c4	 mov	 eax, DWORD PTR _U$142414[ebp]
  00110	69 c0 06 d4 ff
	ff		 imul	 eax, -11258		; ffffd406H
  00116	8b 4d dc	 mov	 ecx, DWORD PTR _V$142416[ebp]
  00119	69 c9 ae a4 ff
	ff		 imul	 ecx, -23378		; ffffa4aeH
  0011f	03 c1		 add	 eax, ecx
  00121	c1 f8 0f	 sar	 eax, 15			; 0000000fH
  00124	89 45 f8	 mov	 DWORD PTR _preG$142418[ebp], eax

; 462  :         int preB = (U * 58050 + V * -90) >> 15;

  00127	8b 55 c4	 mov	 edx, DWORD PTR _U$142414[ebp]
  0012a	69 d2 c2 e2 00
	00		 imul	 edx, 58050		; 0000e2c2H
  00130	8b 45 dc	 mov	 eax, DWORD PTR _V$142416[ebp]
  00133	6b c0 a6	 imul	 eax, -90		; ffffffa6H
  00136	03 d0		 add	 edx, eax
  00138	c1 fa 0f	 sar	 edx, 15			; 0000000fH
  0013b	89 55 e8	 mov	 DWORD PTR _preB$142419[ebp], edx

; 463  : 
; 464  :         *dest++ = clip(Y0 + preB);

  0013e	8b 4d cc	 mov	 ecx, DWORD PTR _Y0$142413[ebp]
  00141	03 4d e8	 add	 ecx, DWORD PTR _preB$142419[ebp]
  00144	81 e1 00 ff ff
	ff		 and	 ecx, -256		; ffffff00H
  0014a	74 21		 je	 SHORT $LN5@C_AvgYUVto
  0014c	8b 55 cc	 mov	 edx, DWORD PTR _Y0$142413[ebp]
  0014f	03 55 e8	 add	 edx, DWORD PTR _preB$142419[ebp]
  00152	81 e2 00 00 00
	80		 and	 edx, -2147483648	; 80000000H
  00158	f7 da		 neg	 edx
  0015a	1b d2		 sbb	 edx, edx
  0015c	81 e2 01 ff ff
	ff		 and	 edx, -255		; ffffff01H
  00162	81 c2 ff 00 00
	00		 add	 edx, 255		; 000000ffH
  00168	89 55 bc	 mov	 DWORD PTR tv148[ebp], edx
  0016b	eb 09		 jmp	 SHORT $LN6@C_AvgYUVto
$LN5@C_AvgYUVto:
  0016d	8b 45 cc	 mov	 eax, DWORD PTR _Y0$142413[ebp]
  00170	03 45 e8	 add	 eax, DWORD PTR _preB$142419[ebp]
  00173	89 45 bc	 mov	 DWORD PTR tv148[ebp], eax
$LN6@C_AvgYUVto:
  00176	8b 4d 08	 mov	 ecx, DWORD PTR _dest$[ebp]
  00179	8a 55 bc	 mov	 dl, BYTE PTR tv148[ebp]
  0017c	88 11		 mov	 BYTE PTR [ecx], dl
  0017e	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]
  00181	83 c0 01	 add	 eax, 1
  00184	89 45 08	 mov	 DWORD PTR _dest$[ebp], eax

; 465  :         *dest++ = clip(Y0 + preG);

  00187	8b 4d cc	 mov	 ecx, DWORD PTR _Y0$142413[ebp]
  0018a	03 4d f8	 add	 ecx, DWORD PTR _preG$142418[ebp]
  0018d	81 e1 00 ff ff
	ff		 and	 ecx, -256		; ffffff00H
  00193	74 21		 je	 SHORT $LN7@C_AvgYUVto
  00195	8b 55 cc	 mov	 edx, DWORD PTR _Y0$142413[ebp]
  00198	03 55 f8	 add	 edx, DWORD PTR _preG$142418[ebp]
  0019b	81 e2 00 00 00
	80		 and	 edx, -2147483648	; 80000000H
  001a1	f7 da		 neg	 edx
  001a3	1b d2		 sbb	 edx, edx
  001a5	81 e2 01 ff ff
	ff		 and	 edx, -255		; ffffff01H
  001ab	81 c2 ff 00 00
	00		 add	 edx, 255		; 000000ffH
  001b1	89 55 b8	 mov	 DWORD PTR tv159[ebp], edx
  001b4	eb 09		 jmp	 SHORT $LN8@C_AvgYUVto
$LN7@C_AvgYUVto:
  001b6	8b 45 cc	 mov	 eax, DWORD PTR _Y0$142413[ebp]
  001b9	03 45 f8	 add	 eax, DWORD PTR _preG$142418[ebp]
  001bc	89 45 b8	 mov	 DWORD PTR tv159[ebp], eax
$LN8@C_AvgYUVto:
  001bf	8b 4d 08	 mov	 ecx, DWORD PTR _dest$[ebp]
  001c2	8a 55 b8	 mov	 dl, BYTE PTR tv159[ebp]
  001c5	88 11		 mov	 BYTE PTR [ecx], dl
  001c7	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]
  001ca	83 c0 01	 add	 eax, 1
  001cd	89 45 08	 mov	 DWORD PTR _dest$[ebp], eax

; 466  :         *dest++ = clip(Y0 + preR);

  001d0	8b 4d cc	 mov	 ecx, DWORD PTR _Y0$142413[ebp]
  001d3	03 4d e4	 add	 ecx, DWORD PTR _preR$142417[ebp]
  001d6	81 e1 00 ff ff
	ff		 and	 ecx, -256		; ffffff00H
  001dc	74 21		 je	 SHORT $LN9@C_AvgYUVto
  001de	8b 55 cc	 mov	 edx, DWORD PTR _Y0$142413[ebp]
  001e1	03 55 e4	 add	 edx, DWORD PTR _preR$142417[ebp]
  001e4	81 e2 00 00 00
	80		 and	 edx, -2147483648	; 80000000H
  001ea	f7 da		 neg	 edx
  001ec	1b d2		 sbb	 edx, edx
  001ee	81 e2 01 ff ff
	ff		 and	 edx, -255		; ffffff01H
  001f4	81 c2 ff 00 00
	00		 add	 edx, 255		; 000000ffH
  001fa	89 55 b4	 mov	 DWORD PTR tv170[ebp], edx
  001fd	eb 09		 jmp	 SHORT $LN10@C_AvgYUVto
$LN9@C_AvgYUVto:
  001ff	8b 45 cc	 mov	 eax, DWORD PTR _Y0$142413[ebp]
  00202	03 45 e4	 add	 eax, DWORD PTR _preR$142417[ebp]
  00205	89 45 b4	 mov	 DWORD PTR tv170[ebp], eax
$LN10@C_AvgYUVto:
  00208	8b 4d 08	 mov	 ecx, DWORD PTR _dest$[ebp]
  0020b	8a 55 b4	 mov	 dl, BYTE PTR tv170[ebp]
  0020e	88 11		 mov	 BYTE PTR [ecx], dl
  00210	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]
  00213	83 c0 01	 add	 eax, 1
  00216	89 45 08	 mov	 DWORD PTR _dest$[ebp], eax

; 467  : 
; 468  :         *dest++ = clip(Y1 + preB);

  00219	8b 4d ec	 mov	 ecx, DWORD PTR _Y1$142415[ebp]
  0021c	03 4d e8	 add	 ecx, DWORD PTR _preB$142419[ebp]
  0021f	81 e1 00 ff ff
	ff		 and	 ecx, -256		; ffffff00H
  00225	74 21		 je	 SHORT $LN11@C_AvgYUVto
  00227	8b 55 ec	 mov	 edx, DWORD PTR _Y1$142415[ebp]
  0022a	03 55 e8	 add	 edx, DWORD PTR _preB$142419[ebp]
  0022d	81 e2 00 00 00
	80		 and	 edx, -2147483648	; 80000000H
  00233	f7 da		 neg	 edx
  00235	1b d2		 sbb	 edx, edx
  00237	81 e2 01 ff ff
	ff		 and	 edx, -255		; ffffff01H
  0023d	81 c2 ff 00 00
	00		 add	 edx, 255		; 000000ffH
  00243	89 55 b0	 mov	 DWORD PTR tv181[ebp], edx
  00246	eb 09		 jmp	 SHORT $LN12@C_AvgYUVto
$LN11@C_AvgYUVto:
  00248	8b 45 ec	 mov	 eax, DWORD PTR _Y1$142415[ebp]
  0024b	03 45 e8	 add	 eax, DWORD PTR _preB$142419[ebp]
  0024e	89 45 b0	 mov	 DWORD PTR tv181[ebp], eax
$LN12@C_AvgYUVto:
  00251	8b 4d 08	 mov	 ecx, DWORD PTR _dest$[ebp]
  00254	8a 55 b0	 mov	 dl, BYTE PTR tv181[ebp]
  00257	88 11		 mov	 BYTE PTR [ecx], dl
  00259	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]
  0025c	83 c0 01	 add	 eax, 1
  0025f	89 45 08	 mov	 DWORD PTR _dest$[ebp], eax

; 469  :         *dest++ = clip(Y1 + preG);

  00262	8b 4d ec	 mov	 ecx, DWORD PTR _Y1$142415[ebp]
  00265	03 4d f8	 add	 ecx, DWORD PTR _preG$142418[ebp]
  00268	81 e1 00 ff ff
	ff		 and	 ecx, -256		; ffffff00H
  0026e	74 21		 je	 SHORT $LN13@C_AvgYUVto
  00270	8b 55 ec	 mov	 edx, DWORD PTR _Y1$142415[ebp]
  00273	03 55 f8	 add	 edx, DWORD PTR _preG$142418[ebp]
  00276	81 e2 00 00 00
	80		 and	 edx, -2147483648	; 80000000H
  0027c	f7 da		 neg	 edx
  0027e	1b d2		 sbb	 edx, edx
  00280	81 e2 01 ff ff
	ff		 and	 edx, -255		; ffffff01H
  00286	81 c2 ff 00 00
	00		 add	 edx, 255		; 000000ffH
  0028c	89 55 ac	 mov	 DWORD PTR tv192[ebp], edx
  0028f	eb 09		 jmp	 SHORT $LN14@C_AvgYUVto
$LN13@C_AvgYUVto:
  00291	8b 45 ec	 mov	 eax, DWORD PTR _Y1$142415[ebp]
  00294	03 45 f8	 add	 eax, DWORD PTR _preG$142418[ebp]
  00297	89 45 ac	 mov	 DWORD PTR tv192[ebp], eax
$LN14@C_AvgYUVto:
  0029a	8b 4d 08	 mov	 ecx, DWORD PTR _dest$[ebp]
  0029d	8a 55 ac	 mov	 dl, BYTE PTR tv192[ebp]
  002a0	88 11		 mov	 BYTE PTR [ecx], dl
  002a2	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]
  002a5	83 c0 01	 add	 eax, 1
  002a8	89 45 08	 mov	 DWORD PTR _dest$[ebp], eax

; 470  :         *dest++ = clip(Y1 + preR);

  002ab	8b 4d ec	 mov	 ecx, DWORD PTR _Y1$142415[ebp]
  002ae	03 4d e4	 add	 ecx, DWORD PTR _preR$142417[ebp]
  002b1	81 e1 00 ff ff
	ff		 and	 ecx, -256		; ffffff00H
  002b7	74 21		 je	 SHORT $LN15@C_AvgYUVto
  002b9	8b 55 ec	 mov	 edx, DWORD PTR _Y1$142415[ebp]
  002bc	03 55 e4	 add	 edx, DWORD PTR _preR$142417[ebp]
  002bf	81 e2 00 00 00
	80		 and	 edx, -2147483648	; 80000000H
  002c5	f7 da		 neg	 edx
  002c7	1b d2		 sbb	 edx, edx
  002c9	81 e2 01 ff ff
	ff		 and	 edx, -255		; ffffff01H
  002cf	81 c2 ff 00 00
	00		 add	 edx, 255		; 000000ffH
  002d5	89 55 a8	 mov	 DWORD PTR tv203[ebp], edx
  002d8	eb 09		 jmp	 SHORT $LN16@C_AvgYUVto
$LN15@C_AvgYUVto:
  002da	8b 45 ec	 mov	 eax, DWORD PTR _Y1$142415[ebp]
  002dd	03 45 e4	 add	 eax, DWORD PTR _preR$142417[ebp]
  002e0	89 45 a8	 mov	 DWORD PTR tv203[ebp], eax
$LN16@C_AvgYUVto:
  002e3	8b 4d 08	 mov	 ecx, DWORD PTR _dest$[ebp]
  002e6	8a 55 a8	 mov	 dl, BYTE PTR tv203[ebp]
  002e9	88 11		 mov	 BYTE PTR [ecx], dl
  002eb	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]
  002ee	83 c0 01	 add	 eax, 1
  002f1	89 45 08	 mov	 DWORD PTR _dest$[ebp], eax

; 471  :     }

  002f4	e9 15 fd ff ff	 jmp	 $LN2@C_AvgYUVto
$LN1@C_AvgYUVto:

; 472  : 
; 473  :     return dest;

  002f9	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]

; 474  : }

  002fc	8b e5		 mov	 esp, ebp
  002fe	5d		 pop	 ebp
  002ff	c3		 ret	 0
?C_AvgYUVtoRGB@@YAPAEPAE00K@Z ENDP			; C_AvgYUVtoRGB
_TEXT	ENDS
PUBLIC	?P3_AvgYUVtoRGB@@YAPAEPAE00K@Z			; P3_AvgYUVtoRGB
; Function compile flags: /Odtp
;	COMDAT ?P3_AvgYUVtoRGB@@YAPAEPAE00K@Z
_TEXT	SEGMENT
_dest$ = 8						; size = 4
_src1$ = 12						; size = 4
_src2$ = 16						; size = 4
_w$ = 20						; size = 4
?P3_AvgYUVtoRGB@@YAPAEPAE00K@Z PROC			; P3_AvgYUVtoRGB, COMDAT

; 357  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	56		 push	 esi
  00004	57		 push	 edi

; 358  :     _asm
; 359  :     {
; 360  :         mov esi, src1

  00005	8b 75 0c	 mov	 esi, DWORD PTR _src1$[ebp]

; 361  :         mov ecx, src2

  00008	8b 4d 10	 mov	 ecx, DWORD PTR _src2$[ebp]

; 362  : 
; 363  :         mov edi, dest

  0000b	8b 7d 08	 mov	 edi, DWORD PTR _dest$[ebp]

; 364  :         mov eax, w

  0000e	8b 45 14	 mov	 eax, DWORD PTR _w$[ebp]

; 365  :         shr eax, 2

  00011	c1 e8 02	 shr	 eax, 2
$next4$142386:

; 366  : 
; 367  :     next4:
; 368  :         // Process 4 pixels.  First YUYV is a, second is b.
; 369  :         // Source must be 8-byte aligned.
; 370  :         movq mm1, [esi]     ; mm1 = Vb+128 Y1b Ub+128 Y0b  Va+128 Y1a Ua+128 Y0a

  00014	0f 6f 0e	 movq	 mm1, MMWORD PTR [esi]

; 371  :         movq mm2, [ecx]     ; mm2 = Vb+128 Y1b Ub+128 Y0b  Va+128 Y1a Ua+128 Y0a

  00017	0f 6f 11	 movq	 mm2, MMWORD PTR [ecx]

; 372  :         add esi, 8

  0001a	83 c6 08	 add	 esi, 8

; 373  :         add ecx, 8

  0001d	83 c1 08	 add	 ecx, 8

; 374  :         pavgb mm1, mm2         ; mm1 = byte-wise average of mm1 and mm2

  00020	0f e0 ca	 pavgb	 mm1, mm2

; 375  :         pxor mm1, const8000    ; mm1 = Vb Y1b Ub Y0b  Va Y1a Ua Y0a

  00023	0f ef 0d 00 00
	00 00		 pxor	 mm1, MMWORD PTR _const8000

; 376  : 
; 377  :         movq mm0, mm1          ; mm0 = XX Y1b XX Y0b  XX Y1a XX Y0a

  0002a	0f 7f c8	 movq	 mm0, mm1

; 378  :         psraw mm1, 8           ; mm1 = Vb Ub Va Ua

  0002d	0f 71 e1 08	 psraw	 mm1, 8

; 379  : 
; 380  :         pshufw mm2, mm1, 0x44  ; mm2 = Va Ua Va Ua

  00031	0f 70 d1 44	 pshufw	 mm2, mm1, 68		; 00000044H

; 381  :         pmaddwd mm2, RvRuGvGu  ; mm2 = preRa preGa

  00035	0f f5 15 00 00
	00 00		 pmaddwd mm2, MMWORD PTR _RvRuGvGu

; 382  :         psrad mm2, 14          ; mm2 >>= 14

  0003c	0f 72 e2 0e	 psrad	 mm2, 14			; 0000000eH

; 383  : 
; 384  :         pshufw mm3, mm1, 0xee  ; mm3 = Vb Ub Vb Ub

  00040	0f 70 d9 ee	 pshufw	 mm3, mm1, -18		; ffffffeeH

; 385  :         pmaddwd mm3, GvGuBvBu  ; mm3 = preGb preBb

  00044	0f f5 1d 00 00
	00 00		 pmaddwd mm3, MMWORD PTR _GvGuBvBu

; 386  :         psrad mm3, 14          ; mm3 >>= 14

  0004b	0f 72 e3 0e	 psrad	 mm3, 14			; 0000000eH

; 387  : 
; 388  :         pmaddwd mm1, RvRuBvBu  ; mm1 = preRb preBa

  0004f	0f f5 0d 00 00
	00 00		 pmaddwd mm1, MMWORD PTR _RvRuBvBu

; 389  :         psrad mm1, 14          ; mm1 >>= 14

  00056	0f 72 e1 0e	 psrad	 mm1, 14			; 0000000eH

; 390  : 
; 391  :         movq mm6, mm2          ; mm6 = preRa preGa

  0005a	0f 7f d6	 movq	 mm6, mm2

; 392  :         packssdw mm2, mm1      ; mm2 = XXX preBa preRa preGa

  0005d	0f 6b d1	 packssdw mm2, mm1

; 393  :         pshufw mm2, mm2, 0x92  ; mm2 = preBa preRa preGa preBa

  00060	0f 70 d2 92	 pshufw	 mm2, mm2, -110		; ffffff92H

; 394  : 
; 395  :         pand mm0, const00ff    ; mm0 = Y1b Y0b Y1a Y0a

  00064	0f db 05 00 00
	00 00		 pand	 mm0, MMWORD PTR _const00ff

; 396  : 
; 397  :         pshufw mm4, mm0, 0x40  ; mm4 = Y1a Y0a Y0a Y0a

  0006b	0f 70 e0 40	 pshufw	 mm4, mm0, 64		; 00000040H

; 398  :         paddsw mm4, mm2        ; mm4 = B1a R0a G0a B0a

  0006f	0f ed e2	 paddsw	 mm4, mm2

; 399  : 
; 400  :         packssdw mm6, mm3      ; mm6 = preGb preBb preRa preGa

  00072	0f 6b f3	 packssdw mm6, mm3

; 401  :         pshufw mm5, mm0, 0xa5  ; mm5 = Y0b Y0b Y1a Y1a

  00075	0f 70 e8 a5	 pshufw	 mm5, mm0, -91		; ffffffa5H

; 402  :         paddsw mm5, mm6        ; mm5 = G0b B0b R1a G1a

  00079	0f ed ee	 paddsw	 mm5, mm6

; 403  : 
; 404  :         packssdw mm1, mm3      ; mm1 = preGb preBb preRb XXX

  0007c	0f 6b cb	 packssdw mm1, mm3

; 405  :         pshufw mm1, mm1, 0x79  ; mm1 = preRb preGb preBb preRb

  0007f	0f 70 c9 79	 pshufw	 mm1, mm1, 121		; 00000079H

; 406  : 
; 407  :         pshufw mm3, mm0, 0xfe  ; mm3 = Y1b Y1b Y1b Y0b

  00083	0f 70 d8 fe	 pshufw	 mm3, mm0, -2		; fffffffeH

; 408  :         paddsw mm3, mm1        ; mm3 = R1b G1b B1b R0b

  00087	0f ed d9	 paddsw	 mm3, mm1

; 409  : 
; 410  :         // Could speed this up slightly by unrolling this whole loop,
; 411  :         // so can guarantee alignment and can do a movq instead of two
; 412  :         // of these movds.
; 413  :         packuswb mm4, mm4      ; mm4 = X X X X B1a R0a G0a B0a

  0008a	0f 67 e4	 packuswb mm4, mm4

; 414  :         packuswb mm5, mm5      ; mm5 = X X X X G0b B0b R1a G1a

  0008d	0f 67 ed	 packuswb mm5, mm5

; 415  :         packuswb mm3, mm3      ; mm3 = X X X X R1b G1b B1b R0b

  00090	0f 67 db	 packuswb mm3, mm3

; 416  : 
; 417  :         movd [edi+0], mm4

  00093	0f 7e 27	 movd	 DWORD PTR [edi], mm4

; 418  :         movd [edi+4], mm5

  00096	0f 7e 6f 04	 movd	 DWORD PTR [edi+4], mm5

; 419  :         movd [edi+8], mm3

  0009a	0f 7e 5f 08	 movd	 DWORD PTR [edi+8], mm3

; 420  :         add edi, 12

  0009e	83 c7 0c	 add	 edi, 12			; 0000000cH

; 421  : 
; 422  :         dec eax

  000a1	48		 dec	 eax

; 423  :         jnz next4

  000a2	0f 85 6c ff ff
	ff		 jne	 $next4$142386

; 424  : 
; 425  :         mov dest, edi

  000a8	89 7d 08	 mov	 DWORD PTR _dest$[ebp], edi

; 426  :         emms

  000ab	0f 77		 emms

; 427  :     }
; 428  : 
; 429  :     return dest;

  000ad	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]

; 430  : }

  000b0	5f		 pop	 edi
  000b1	5e		 pop	 esi
  000b2	5d		 pop	 ebp
  000b3	c3		 ret	 0
?P3_AvgYUVtoRGB@@YAPAEPAE00K@Z ENDP			; P3_AvgYUVtoRGB
_TEXT	ENDS
PUBLIC	?C_CopyYUV@@YAPAEPAE0K@Z			; C_CopyYUV
; Function compile flags: /Odtp
;	COMDAT ?C_CopyYUV@@YAPAEPAE0K@Z
_TEXT	SEGMENT
_dest$ = 8						; size = 4
_src$ = 12						; size = 4
_w$ = 16						; size = 4
?C_CopyYUV@@YAPAEPAE0K@Z PROC				; C_CopyYUV, COMDAT

; 344  : {

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

; 345  :     w <<= 1;

  00003	8b 45 10	 mov	 eax, DWORD PTR _w$[ebp]
  00006	d1 e0		 shl	 eax, 1
  00008	89 45 10	 mov	 DWORD PTR _w$[ebp], eax

; 346  : 
; 347  :     memcpy(dest, src, w);

  0000b	8b 4d 10	 mov	 ecx, DWORD PTR _w$[ebp]
  0000e	51		 push	 ecx
  0000f	8b 55 0c	 mov	 edx, DWORD PTR _src$[ebp]
  00012	52		 push	 edx
  00013	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]
  00016	50		 push	 eax
  00017	e8 00 00 00 00	 call	 _memcpy
  0001c	83 c4 0c	 add	 esp, 12			; 0000000cH

; 348  : 
; 349  :     return dest + w;

  0001f	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]
  00022	03 45 10	 add	 eax, DWORD PTR _w$[ebp]

; 350  : }

  00025	5d		 pop	 ebp
  00026	c3		 ret	 0
?C_CopyYUV@@YAPAEPAE0K@Z ENDP				; C_CopyYUV
_TEXT	ENDS
PUBLIC	?C_YUVtoRGB@@YAPAEPAE0K@Z			; C_YUVtoRGB
; Function compile flags: /Odtp
;	COMDAT ?C_YUVtoRGB@@YAPAEPAE0K@Z
_TEXT	SEGMENT
tv185 = -56						; size = 4
tv174 = -52						; size = 4
tv163 = -48						; size = 4
tv152 = -44						; size = 4
tv141 = -40						; size = 4
tv130 = -36						; size = 4
_U$142366 = -32						; size = 4
_Y0$142364 = -28					; size = 4
_V$142370 = -24						; size = 4
_preR$142372 = -20					; size = 4
_preB$142374 = -16					; size = 4
_Y1$142368 = -12					; size = 4
_preG$142373 = -8					; size = 4
_w2$ = -4						; size = 4
_dest$ = 8						; size = 4
_src$ = 12						; size = 4
_w$ = 16						; size = 4
?C_YUVtoRGB@@YAPAEPAE0K@Z PROC				; C_YUVtoRGB, COMDAT

; 307  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 38	 sub	 esp, 56			; 00000038H

; 308  :     DWORD w2 = w >> 1;

  00006	8b 45 10	 mov	 eax, DWORD PTR _w$[ebp]
  00009	d1 e8		 shr	 eax, 1
  0000b	89 45 fc	 mov	 DWORD PTR _w2$[ebp], eax
$LN2@C_YUVtoRGB:

; 309  : 
; 310  :     #define clip(x) (((x) & 0xffffff00) ? ((x) & 0x80000000) ? 0 : 255 : (x))
; 311  : 
; 312  :     while (w2--)

  0000e	8b 4d fc	 mov	 ecx, DWORD PTR _w2$[ebp]
  00011	8b 55 fc	 mov	 edx, DWORD PTR _w2$[ebp]
  00014	83 ea 01	 sub	 edx, 1
  00017	89 55 fc	 mov	 DWORD PTR _w2$[ebp], edx
  0001a	85 c9		 test	 ecx, ecx
  0001c	0f 84 51 02 00
	00		 je	 $LN1@C_YUVtoRGB

; 313  :     {
; 314  :         // Y0 U Y1 V for YUY2...
; 315  :         int Y0 = (int)DWORD(*src++);

  00022	8b 45 0c	 mov	 eax, DWORD PTR _src$[ebp]
  00025	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  00028	89 4d e4	 mov	 DWORD PTR _Y0$142364[ebp], ecx
  0002b	8b 55 0c	 mov	 edx, DWORD PTR _src$[ebp]
  0002e	83 c2 01	 add	 edx, 1
  00031	89 55 0c	 mov	 DWORD PTR _src$[ebp], edx

; 316  :         int U =  (int)DWORD(*src++) - 128;

  00034	8b 45 0c	 mov	 eax, DWORD PTR _src$[ebp]
  00037	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  0003a	81 e9 80 00 00
	00		 sub	 ecx, 128		; 00000080H
  00040	89 4d e0	 mov	 DWORD PTR _U$142366[ebp], ecx
  00043	8b 55 0c	 mov	 edx, DWORD PTR _src$[ebp]
  00046	83 c2 01	 add	 edx, 1
  00049	89 55 0c	 mov	 DWORD PTR _src$[ebp], edx

; 317  :         int Y1 = (int)DWORD(*src++);

  0004c	8b 45 0c	 mov	 eax, DWORD PTR _src$[ebp]
  0004f	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  00052	89 4d f4	 mov	 DWORD PTR _Y1$142368[ebp], ecx
  00055	8b 55 0c	 mov	 edx, DWORD PTR _src$[ebp]
  00058	83 c2 01	 add	 edx, 1
  0005b	89 55 0c	 mov	 DWORD PTR _src$[ebp], edx

; 318  :         int V =  (int)DWORD(*src++) - 128;

  0005e	8b 45 0c	 mov	 eax, DWORD PTR _src$[ebp]
  00061	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  00064	81 e9 80 00 00
	00		 sub	 ecx, 128		; 00000080H
  0006a	89 4d e8	 mov	 DWORD PTR _V$142370[ebp], ecx
  0006d	8b 55 0c	 mov	 edx, DWORD PTR _src$[ebp]
  00070	83 c2 01	 add	 edx, 1
  00073	89 55 0c	 mov	 DWORD PTR _src$[ebp], edx

; 319  : 
; 320  :         int preR = (U * -30 + V * 45931) >> 15;

  00076	8b 45 e0	 mov	 eax, DWORD PTR _U$142366[ebp]
  00079	6b c0 e2	 imul	 eax, -30		; ffffffe2H
  0007c	8b 4d e8	 mov	 ecx, DWORD PTR _V$142370[ebp]
  0007f	69 c9 6b b3 00
	00		 imul	 ecx, 45931		; 0000b36bH
  00085	03 c1		 add	 eax, ecx
  00087	c1 f8 0f	 sar	 eax, 15			; 0000000fH
  0008a	89 45 ec	 mov	 DWORD PTR _preR$142372[ebp], eax

; 321  :         int preG = (U * -11258 + V * -23378) >> 15;

  0008d	8b 55 e0	 mov	 edx, DWORD PTR _U$142366[ebp]
  00090	69 d2 06 d4 ff
	ff		 imul	 edx, -11258		; ffffd406H
  00096	8b 45 e8	 mov	 eax, DWORD PTR _V$142370[ebp]
  00099	69 c0 ae a4 ff
	ff		 imul	 eax, -23378		; ffffa4aeH
  0009f	03 d0		 add	 edx, eax
  000a1	c1 fa 0f	 sar	 edx, 15			; 0000000fH
  000a4	89 55 f8	 mov	 DWORD PTR _preG$142373[ebp], edx

; 322  :         int preB = (U * 58050 + V * -90) >> 15;

  000a7	8b 4d e0	 mov	 ecx, DWORD PTR _U$142366[ebp]
  000aa	69 c9 c2 e2 00
	00		 imul	 ecx, 58050		; 0000e2c2H
  000b0	8b 55 e8	 mov	 edx, DWORD PTR _V$142370[ebp]
  000b3	6b d2 a6	 imul	 edx, -90		; ffffffa6H
  000b6	03 ca		 add	 ecx, edx
  000b8	c1 f9 0f	 sar	 ecx, 15			; 0000000fH
  000bb	89 4d f0	 mov	 DWORD PTR _preB$142374[ebp], ecx

; 323  : 
; 324  :         *dest++ = clip(Y0 + preB);

  000be	8b 45 e4	 mov	 eax, DWORD PTR _Y0$142364[ebp]
  000c1	03 45 f0	 add	 eax, DWORD PTR _preB$142374[ebp]
  000c4	25 00 ff ff ff	 and	 eax, -256		; ffffff00H
  000c9	74 21		 je	 SHORT $LN5@C_YUVtoRGB
  000cb	8b 4d e4	 mov	 ecx, DWORD PTR _Y0$142364[ebp]
  000ce	03 4d f0	 add	 ecx, DWORD PTR _preB$142374[ebp]
  000d1	81 e1 00 00 00
	80		 and	 ecx, -2147483648	; 80000000H
  000d7	f7 d9		 neg	 ecx
  000d9	1b c9		 sbb	 ecx, ecx
  000db	81 e1 01 ff ff
	ff		 and	 ecx, -255		; ffffff01H
  000e1	81 c1 ff 00 00
	00		 add	 ecx, 255		; 000000ffH
  000e7	89 4d dc	 mov	 DWORD PTR tv130[ebp], ecx
  000ea	eb 09		 jmp	 SHORT $LN6@C_YUVtoRGB
$LN5@C_YUVtoRGB:
  000ec	8b 55 e4	 mov	 edx, DWORD PTR _Y0$142364[ebp]
  000ef	03 55 f0	 add	 edx, DWORD PTR _preB$142374[ebp]
  000f2	89 55 dc	 mov	 DWORD PTR tv130[ebp], edx
$LN6@C_YUVtoRGB:
  000f5	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]
  000f8	8a 4d dc	 mov	 cl, BYTE PTR tv130[ebp]
  000fb	88 08		 mov	 BYTE PTR [eax], cl
  000fd	8b 55 08	 mov	 edx, DWORD PTR _dest$[ebp]
  00100	83 c2 01	 add	 edx, 1
  00103	89 55 08	 mov	 DWORD PTR _dest$[ebp], edx

; 325  :         *dest++ = clip(Y0 + preG);

  00106	8b 45 e4	 mov	 eax, DWORD PTR _Y0$142364[ebp]
  00109	03 45 f8	 add	 eax, DWORD PTR _preG$142373[ebp]
  0010c	25 00 ff ff ff	 and	 eax, -256		; ffffff00H
  00111	74 21		 je	 SHORT $LN7@C_YUVtoRGB
  00113	8b 4d e4	 mov	 ecx, DWORD PTR _Y0$142364[ebp]
  00116	03 4d f8	 add	 ecx, DWORD PTR _preG$142373[ebp]
  00119	81 e1 00 00 00
	80		 and	 ecx, -2147483648	; 80000000H
  0011f	f7 d9		 neg	 ecx
  00121	1b c9		 sbb	 ecx, ecx
  00123	81 e1 01 ff ff
	ff		 and	 ecx, -255		; ffffff01H
  00129	81 c1 ff 00 00
	00		 add	 ecx, 255		; 000000ffH
  0012f	89 4d d8	 mov	 DWORD PTR tv141[ebp], ecx
  00132	eb 09		 jmp	 SHORT $LN8@C_YUVtoRGB
$LN7@C_YUVtoRGB:
  00134	8b 55 e4	 mov	 edx, DWORD PTR _Y0$142364[ebp]
  00137	03 55 f8	 add	 edx, DWORD PTR _preG$142373[ebp]
  0013a	89 55 d8	 mov	 DWORD PTR tv141[ebp], edx
$LN8@C_YUVtoRGB:
  0013d	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]
  00140	8a 4d d8	 mov	 cl, BYTE PTR tv141[ebp]
  00143	88 08		 mov	 BYTE PTR [eax], cl
  00145	8b 55 08	 mov	 edx, DWORD PTR _dest$[ebp]
  00148	83 c2 01	 add	 edx, 1
  0014b	89 55 08	 mov	 DWORD PTR _dest$[ebp], edx

; 326  :         *dest++ = clip(Y0 + preR);

  0014e	8b 45 e4	 mov	 eax, DWORD PTR _Y0$142364[ebp]
  00151	03 45 ec	 add	 eax, DWORD PTR _preR$142372[ebp]
  00154	25 00 ff ff ff	 and	 eax, -256		; ffffff00H
  00159	74 21		 je	 SHORT $LN9@C_YUVtoRGB
  0015b	8b 4d e4	 mov	 ecx, DWORD PTR _Y0$142364[ebp]
  0015e	03 4d ec	 add	 ecx, DWORD PTR _preR$142372[ebp]
  00161	81 e1 00 00 00
	80		 and	 ecx, -2147483648	; 80000000H
  00167	f7 d9		 neg	 ecx
  00169	1b c9		 sbb	 ecx, ecx
  0016b	81 e1 01 ff ff
	ff		 and	 ecx, -255		; ffffff01H
  00171	81 c1 ff 00 00
	00		 add	 ecx, 255		; 000000ffH
  00177	89 4d d4	 mov	 DWORD PTR tv152[ebp], ecx
  0017a	eb 09		 jmp	 SHORT $LN10@C_YUVtoRGB
$LN9@C_YUVtoRGB:
  0017c	8b 55 e4	 mov	 edx, DWORD PTR _Y0$142364[ebp]
  0017f	03 55 ec	 add	 edx, DWORD PTR _preR$142372[ebp]
  00182	89 55 d4	 mov	 DWORD PTR tv152[ebp], edx
$LN10@C_YUVtoRGB:
  00185	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]
  00188	8a 4d d4	 mov	 cl, BYTE PTR tv152[ebp]
  0018b	88 08		 mov	 BYTE PTR [eax], cl
  0018d	8b 55 08	 mov	 edx, DWORD PTR _dest$[ebp]
  00190	83 c2 01	 add	 edx, 1
  00193	89 55 08	 mov	 DWORD PTR _dest$[ebp], edx

; 327  : 
; 328  :         *dest++ = clip(Y1 + preB);

  00196	8b 45 f4	 mov	 eax, DWORD PTR _Y1$142368[ebp]
  00199	03 45 f0	 add	 eax, DWORD PTR _preB$142374[ebp]
  0019c	25 00 ff ff ff	 and	 eax, -256		; ffffff00H
  001a1	74 21		 je	 SHORT $LN11@C_YUVtoRGB
  001a3	8b 4d f4	 mov	 ecx, DWORD PTR _Y1$142368[ebp]
  001a6	03 4d f0	 add	 ecx, DWORD PTR _preB$142374[ebp]
  001a9	81 e1 00 00 00
	80		 and	 ecx, -2147483648	; 80000000H
  001af	f7 d9		 neg	 ecx
  001b1	1b c9		 sbb	 ecx, ecx
  001b3	81 e1 01 ff ff
	ff		 and	 ecx, -255		; ffffff01H
  001b9	81 c1 ff 00 00
	00		 add	 ecx, 255		; 000000ffH
  001bf	89 4d d0	 mov	 DWORD PTR tv163[ebp], ecx
  001c2	eb 09		 jmp	 SHORT $LN12@C_YUVtoRGB
$LN11@C_YUVtoRGB:
  001c4	8b 55 f4	 mov	 edx, DWORD PTR _Y1$142368[ebp]
  001c7	03 55 f0	 add	 edx, DWORD PTR _preB$142374[ebp]
  001ca	89 55 d0	 mov	 DWORD PTR tv163[ebp], edx
$LN12@C_YUVtoRGB:
  001cd	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]
  001d0	8a 4d d0	 mov	 cl, BYTE PTR tv163[ebp]
  001d3	88 08		 mov	 BYTE PTR [eax], cl
  001d5	8b 55 08	 mov	 edx, DWORD PTR _dest$[ebp]
  001d8	83 c2 01	 add	 edx, 1
  001db	89 55 08	 mov	 DWORD PTR _dest$[ebp], edx

; 329  :         *dest++ = clip(Y1 + preG);

  001de	8b 45 f4	 mov	 eax, DWORD PTR _Y1$142368[ebp]
  001e1	03 45 f8	 add	 eax, DWORD PTR _preG$142373[ebp]
  001e4	25 00 ff ff ff	 and	 eax, -256		; ffffff00H
  001e9	74 21		 je	 SHORT $LN13@C_YUVtoRGB
  001eb	8b 4d f4	 mov	 ecx, DWORD PTR _Y1$142368[ebp]
  001ee	03 4d f8	 add	 ecx, DWORD PTR _preG$142373[ebp]
  001f1	81 e1 00 00 00
	80		 and	 ecx, -2147483648	; 80000000H
  001f7	f7 d9		 neg	 ecx
  001f9	1b c9		 sbb	 ecx, ecx
  001fb	81 e1 01 ff ff
	ff		 and	 ecx, -255		; ffffff01H
  00201	81 c1 ff 00 00
	00		 add	 ecx, 255		; 000000ffH
  00207	89 4d cc	 mov	 DWORD PTR tv174[ebp], ecx
  0020a	eb 09		 jmp	 SHORT $LN14@C_YUVtoRGB
$LN13@C_YUVtoRGB:
  0020c	8b 55 f4	 mov	 edx, DWORD PTR _Y1$142368[ebp]
  0020f	03 55 f8	 add	 edx, DWORD PTR _preG$142373[ebp]
  00212	89 55 cc	 mov	 DWORD PTR tv174[ebp], edx
$LN14@C_YUVtoRGB:
  00215	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]
  00218	8a 4d cc	 mov	 cl, BYTE PTR tv174[ebp]
  0021b	88 08		 mov	 BYTE PTR [eax], cl
  0021d	8b 55 08	 mov	 edx, DWORD PTR _dest$[ebp]
  00220	83 c2 01	 add	 edx, 1
  00223	89 55 08	 mov	 DWORD PTR _dest$[ebp], edx

; 330  :         *dest++ = clip(Y1 + preR);

  00226	8b 45 f4	 mov	 eax, DWORD PTR _Y1$142368[ebp]
  00229	03 45 ec	 add	 eax, DWORD PTR _preR$142372[ebp]
  0022c	25 00 ff ff ff	 and	 eax, -256		; ffffff00H
  00231	74 21		 je	 SHORT $LN15@C_YUVtoRGB
  00233	8b 4d f4	 mov	 ecx, DWORD PTR _Y1$142368[ebp]
  00236	03 4d ec	 add	 ecx, DWORD PTR _preR$142372[ebp]
  00239	81 e1 00 00 00
	80		 and	 ecx, -2147483648	; 80000000H
  0023f	f7 d9		 neg	 ecx
  00241	1b c9		 sbb	 ecx, ecx
  00243	81 e1 01 ff ff
	ff		 and	 ecx, -255		; ffffff01H
  00249	81 c1 ff 00 00
	00		 add	 ecx, 255		; 000000ffH
  0024f	89 4d c8	 mov	 DWORD PTR tv185[ebp], ecx
  00252	eb 09		 jmp	 SHORT $LN16@C_YUVtoRGB
$LN15@C_YUVtoRGB:
  00254	8b 55 f4	 mov	 edx, DWORD PTR _Y1$142368[ebp]
  00257	03 55 ec	 add	 edx, DWORD PTR _preR$142372[ebp]
  0025a	89 55 c8	 mov	 DWORD PTR tv185[ebp], edx
$LN16@C_YUVtoRGB:
  0025d	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]
  00260	8a 4d c8	 mov	 cl, BYTE PTR tv185[ebp]
  00263	88 08		 mov	 BYTE PTR [eax], cl
  00265	8b 55 08	 mov	 edx, DWORD PTR _dest$[ebp]
  00268	83 c2 01	 add	 edx, 1
  0026b	89 55 08	 mov	 DWORD PTR _dest$[ebp], edx

; 331  :     }

  0026e	e9 9b fd ff ff	 jmp	 $LN2@C_YUVtoRGB
$LN1@C_YUVtoRGB:

; 332  : 
; 333  :     return dest;

  00273	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]

; 334  : }

  00276	8b e5		 mov	 esp, ebp
  00278	5d		 pop	 ebp
  00279	c3		 ret	 0
?C_YUVtoRGB@@YAPAEPAE0K@Z ENDP				; C_YUVtoRGB
_TEXT	ENDS
PUBLIC	?P3_YUVtoRGB@@YAPAEPAE0K@Z			; P3_YUVtoRGB
; Function compile flags: /Odtp
;	COMDAT ?P3_YUVtoRGB@@YAPAEPAE0K@Z
_TEXT	SEGMENT
_dest$ = 8						; size = 4
_src$ = 12						; size = 4
_w$ = 16						; size = 4
?P3_YUVtoRGB@@YAPAEPAE0K@Z PROC				; P3_YUVtoRGB, COMDAT

; 235  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	56		 push	 esi
  00004	57		 push	 edi

; 236  :     _asm
; 237  :     {
; 238  :         mov esi, src

  00005	8b 75 0c	 mov	 esi, DWORD PTR _src$[ebp]

; 239  :         mov edi, dest

  00008	8b 7d 08	 mov	 edi, DWORD PTR _dest$[ebp]

; 240  :         mov eax, w

  0000b	8b 45 10	 mov	 eax, DWORD PTR _w$[ebp]

; 241  :         shr eax, 2

  0000e	c1 e8 02	 shr	 eax, 2
$next4$142353:

; 242  : 
; 243  :     next4:
; 244  :         // Process 4 pixels.  First YUYV is a, second is b.
; 245  :         // Source must be 8-byte aligned.
; 246  :         movq mm1, [esi]     ; mm1 = Vb+128 Y1b Ub+128 Y0b  Va+128 Y1a Ua+128 Y0a

  00011	0f 6f 0e	 movq	 mm1, MMWORD PTR [esi]

; 247  :         add esi, 8

  00014	83 c6 08	 add	 esi, 8

; 248  :         pxor mm1, const8000    ; mm1 = Vb Y1b Ub Y0b  Va Y1a Ua Y0a

  00017	0f ef 0d 00 00
	00 00		 pxor	 mm1, MMWORD PTR _const8000

; 249  : 
; 250  :         movq mm0, mm1          ; mm0 = XX Y1b XX Y0b  XX Y1a XX Y0a

  0001e	0f 7f c8	 movq	 mm0, mm1

; 251  :         psraw mm1, 8           ; mm1 = Vb Ub Va Ua

  00021	0f 71 e1 08	 psraw	 mm1, 8

; 252  : 
; 253  :         pshufw mm2, mm1, 0x44  ; mm2 = Va Ua Va Ua

  00025	0f 70 d1 44	 pshufw	 mm2, mm1, 68		; 00000044H

; 254  :         pmaddwd mm2, RvRuGvGu  ; mm2 = preRa preGa

  00029	0f f5 15 00 00
	00 00		 pmaddwd mm2, MMWORD PTR _RvRuGvGu

; 255  :         psrad mm2, 14          ; mm2 >>= 14

  00030	0f 72 e2 0e	 psrad	 mm2, 14			; 0000000eH

; 256  : 
; 257  :         pshufw mm3, mm1, 0xee  ; mm3 = Vb Ub Vb Ub

  00034	0f 70 d9 ee	 pshufw	 mm3, mm1, -18		; ffffffeeH

; 258  :         pmaddwd mm3, GvGuBvBu  ; mm3 = preGb preBb

  00038	0f f5 1d 00 00
	00 00		 pmaddwd mm3, MMWORD PTR _GvGuBvBu

; 259  :         psrad mm3, 14          ; mm3 >>= 14

  0003f	0f 72 e3 0e	 psrad	 mm3, 14			; 0000000eH

; 260  : 
; 261  :         pmaddwd mm1, RvRuBvBu  ; mm1 = preRb preBa

  00043	0f f5 0d 00 00
	00 00		 pmaddwd mm1, MMWORD PTR _RvRuBvBu

; 262  :         psrad mm1, 14          ; mm1 >>= 14

  0004a	0f 72 e1 0e	 psrad	 mm1, 14			; 0000000eH

; 263  : 
; 264  :         movq mm6, mm2          ; mm6 = preRa preGa

  0004e	0f 7f d6	 movq	 mm6, mm2

; 265  :         packssdw mm2, mm1      ; mm2 = XXX preBa preRa preGa

  00051	0f 6b d1	 packssdw mm2, mm1

; 266  :         pshufw mm2, mm2, 0x92  ; mm2 = preBa preRa preGa preBa

  00054	0f 70 d2 92	 pshufw	 mm2, mm2, -110		; ffffff92H

; 267  : 
; 268  :         pand mm0, const00ff    ; mm0 = Y1b Y0b Y1a Y0a

  00058	0f db 05 00 00
	00 00		 pand	 mm0, MMWORD PTR _const00ff

; 269  : 
; 270  :         pshufw mm4, mm0, 0x40  ; mm4 = Y1a Y0a Y0a Y0a

  0005f	0f 70 e0 40	 pshufw	 mm4, mm0, 64		; 00000040H

; 271  :         paddsw mm4, mm2        ; mm4 = B1a R0a G0a B0a

  00063	0f ed e2	 paddsw	 mm4, mm2

; 272  : 
; 273  :         packssdw mm6, mm3      ; mm6 = preGb preBb preRa preGa

  00066	0f 6b f3	 packssdw mm6, mm3

; 274  :         pshufw mm5, mm0, 0xa5  ; mm5 = Y0b Y0b Y1a Y1a

  00069	0f 70 e8 a5	 pshufw	 mm5, mm0, -91		; ffffffa5H

; 275  :         paddsw mm5, mm6        ; mm5 = G0b B0b R1a G1a

  0006d	0f ed ee	 paddsw	 mm5, mm6

; 276  : 
; 277  :         packssdw mm1, mm3      ; mm1 = preGb preBb preRb XXX

  00070	0f 6b cb	 packssdw mm1, mm3

; 278  :         pshufw mm1, mm1, 0x79  ; mm1 = preRb preGb preBb preRb

  00073	0f 70 c9 79	 pshufw	 mm1, mm1, 121		; 00000079H

; 279  : 
; 280  :         pshufw mm3, mm0, 0xfe  ; mm3 = Y1b Y1b Y1b Y0b

  00077	0f 70 d8 fe	 pshufw	 mm3, mm0, -2		; fffffffeH

; 281  :         paddsw mm3, mm1        ; mm3 = R1b G1b B1b R0b

  0007b	0f ed d9	 paddsw	 mm3, mm1

; 282  : 
; 283  :         // Could speed this up slightly by unrolling this whole loop,
; 284  :         // so can guarantee alignment and can do a movq instead of two
; 285  :         // of these movds.
; 286  :         packuswb mm4, mm4      ; mm4 = X X X X B1a R0a G0a B0a

  0007e	0f 67 e4	 packuswb mm4, mm4

; 287  :         packuswb mm5, mm5      ; mm5 = X X X X G0b B0b R1a G1a

  00081	0f 67 ed	 packuswb mm5, mm5

; 288  :         packuswb mm3, mm3      ; mm3 = X X X X R1b G1b B1b R0b

  00084	0f 67 db	 packuswb mm3, mm3

; 289  : 
; 290  :         movd [edi+0], mm4

  00087	0f 7e 27	 movd	 DWORD PTR [edi], mm4

; 291  :         movd [edi+4], mm5

  0008a	0f 7e 6f 04	 movd	 DWORD PTR [edi+4], mm5

; 292  :         movd [edi+8], mm3

  0008e	0f 7e 5f 08	 movd	 DWORD PTR [edi+8], mm3

; 293  :         add edi, 12

  00092	83 c7 0c	 add	 edi, 12			; 0000000cH

; 294  : 
; 295  :         dec eax

  00095	48		 dec	 eax

; 296  :         jnz next4

  00096	0f 85 75 ff ff
	ff		 jne	 $next4$142353

; 297  : 
; 298  :         mov dest, edi

  0009c	89 7d 08	 mov	 DWORD PTR _dest$[ebp], edi

; 299  :         emms

  0009f	0f 77		 emms

; 300  :     }
; 301  : 
; 302  :     return dest;

  000a1	8b 45 08	 mov	 eax, DWORD PTR _dest$[ebp]

; 303  : }

  000a4	5f		 pop	 edi
  000a5	5e		 pop	 esi
  000a6	5d		 pop	 ebp
  000a7	c3		 ret	 0
?P3_YUVtoRGB@@YAPAEPAE0K@Z ENDP				; P3_YUVtoRGB
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?makeFormatValid@@YA?AW4tsFormat_t@@W41@@Z
_TEXT	SEGMENT
_format$ = 8						; size = 4
?makeFormatValid@@YA?AW4tsFormat_t@@W41@@Z PROC		; makeFormatValid, COMDAT

; 98   : {

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

; 99   :     if (format != FORMAT_YUY2 && format != FORMAT_RGB)

  00003	83 7d 08 00	 cmp	 DWORD PTR _format$[ebp], 0
  00007	74 0d		 je	 SHORT $LN1@makeFormat
  00009	83 7d 08 01	 cmp	 DWORD PTR _format$[ebp], 1
  0000d	74 07		 je	 SHORT $LN1@makeFormat

; 100  :        format = FORMAT_YUY2;

  0000f	c7 45 08 00 00
	00 00		 mov	 DWORD PTR _format$[ebp], 0
$LN1@makeFormat:

; 101  : 
; 102  :     return format;

  00016	8b 45 08	 mov	 eax, DWORD PTR _format$[ebp]

; 103  : }

  00019	5d		 pop	 ebp
  0001a	c3		 ret	 0
?makeFormatValid@@YA?AW4tsFormat_t@@W41@@Z ENDP		; makeFormatValid
;	COMDAT xdata$x
; File c:\develop\dscaler423a\dscaler\smartptr.h
xdata$x	SEGMENT
__unwindtable$?GetRawPointer@?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?GetRawPointer@?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ$0
__ehfuncinfo$?GetRawPointer@?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?GetRawPointer@?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?GetRawPointer@?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ
_TEXT	SEGMENT
tv72 = -32						; size = 4
_this$ = -28						; size = 4
$T304359 = -24						; size = 4
$T304358 = -20						; size = 4
$T304357 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?GetRawPointer@?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ PROC ; SmartPtr<TIME_SHIFT>::GetRawPointer, COMDAT
; _this$ = ecx

; 205  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?GetRawPointer@?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 14	 sub	 esp, 20			; 00000014H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d e4	 mov	 DWORD PTR _this$[ebp], ecx

; 206  :         if (rawPtr == 0) throw new NullPointerException;

  00028	8b 45 e4	 mov	 eax, DWORD PTR _this$[ebp]
  0002b	83 38 00	 cmp	 DWORD PTR [eax], 0
  0002e	75 4f		 jne	 SHORT $LN1@GetRawPoin@12
  00030	6a 0c		 push	 12			; 0000000cH
  00032	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  00037	83 c4 04	 add	 esp, 4
  0003a	89 45 e8	 mov	 DWORD PTR $T304359[ebp], eax
  0003d	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00044	83 7d e8 00	 cmp	 DWORD PTR $T304359[ebp], 0
  00048	74 0d		 je	 SHORT $LN4@GetRawPoin@12
  0004a	8b 4d e8	 mov	 ecx, DWORD PTR $T304359[ebp]
  0004d	e8 00 00 00 00	 call	 ??0NullPointerException@@QAE@XZ ; NullPointerException::NullPointerException
  00052	89 45 e0	 mov	 DWORD PTR tv72[ebp], eax
  00055	eb 07		 jmp	 SHORT $LN5@GetRawPoin@12
$LN4@GetRawPoin@12:
  00057	c7 45 e0 00 00
	00 00		 mov	 DWORD PTR tv72[ebp], 0
$LN5@GetRawPoin@12:
  0005e	8b 4d e0	 mov	 ecx, DWORD PTR tv72[ebp]
  00061	89 4d ec	 mov	 DWORD PTR $T304358[ebp], ecx
  00064	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0006b	8b 55 ec	 mov	 edx, DWORD PTR $T304358[ebp]
  0006e	89 55 f0	 mov	 DWORD PTR $T304357[ebp], edx
  00071	68 00 00 00 00	 push	 OFFSET __TI3PAUNullPointerException@@
  00076	8d 45 f0	 lea	 eax, DWORD PTR $T304357[ebp]
  00079	50		 push	 eax
  0007a	e8 00 00 00 00	 call	 __CxxThrowException@8
$LN1@GetRawPoin@12:

; 207  :         return const_cast<X*>(rawPtr);

  0007f	8b 4d e4	 mov	 ecx, DWORD PTR _this$[ebp]
  00082	8b 01		 mov	 eax, DWORD PTR [ecx]
$LN3@GetRawPoin@12:

; 208  :     }

  00084	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00087	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0008e	59		 pop	 ecx
  0008f	8b e5		 mov	 esp, ebp
  00091	5d		 pop	 ebp
  00092	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?GetRawPointer@?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ$0:
  00000	8b 45 e8	 mov	 eax, DWORD PTR $T304359[ebp]
  00003	50		 push	 eax
  00004	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00009	59		 pop	 ecx
  0000a	c3		 ret	 0
__ehhandler$?GetRawPointer@?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 4a e8	 mov	 ecx, DWORD PTR [edx-24]
  00015	33 c8		 xor	 ecx, eax
  00017	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?GetRawPointer@?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ
  00021	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?GetRawPointer@?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ENDP ; SmartPtr<TIME_SHIFT>::GetRawPointer
; Function compile flags: /Odtp
;	COMDAT ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ PROC	; SmartPtr<TIME_SHIFT>::operator->, COMDAT
; _this$ = ecx

; 168  :     {

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

; 169  :         return GetRawPointer();

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?GetRawPointer@?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::GetRawPointer

; 170  :     }

  0000f	8b e5		 mov	 esp, ebp
  00011	5d		 pop	 ebp
  00012	c3		 ret	 0
??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ENDP	; SmartPtr<TIME_SHIFT>::operator->
_TEXT	ENDS
PUBLIC	?TimeShiftOnSetMenu@@YAHPAUHMENU__@@@Z		; TimeShiftOnSetMenu
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\timeshift.cpp
;	COMDAT ?TimeShiftOnSetMenu@@YAHPAUHMENU__@@@Z
_TEXT	SEGMENT
tv73 = -12						; size = 4
_item$ = -8						; size = 4
_result$ = -4						; size = 4
_hMenu$ = 8						; size = 4
?TimeShiftOnSetMenu@@YAHPAUHMENU__@@@Z PROC		; TimeShiftOnSetMenu, COMDAT

; 1934 : {

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

; 1935 :     BOOL result = FALSE;

  00006	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 1936 :     int  item   = IDM_TSSTOP;

  0000d	c7 45 f8 f0 07
	00 00		 mov	 DWORD PTR _item$[ebp], 2032 ; 000007f0H

; 1937 : 
; 1938 :     if (timeShift.IsValid())

  00014	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00019	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  0001e	85 c0		 test	 eax, eax
  00020	74 6e		 je	 SHORT $LN10@TimeShiftO

; 1939 :     {
; 1940 :         EnterCriticalSection(&timeShift->lock);

  00022	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00027	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0002c	50		 push	 eax
  0002d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1941 : 
; 1942 :         switch (timeShift->mode)

  00033	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00038	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0003d	8b 40 18	 mov	 eax, DWORD PTR [eax+24]
  00040	89 45 f4	 mov	 DWORD PTR tv73[ebp], eax
  00043	8b 4d f4	 mov	 ecx, DWORD PTR tv73[ebp]
  00046	83 e9 01	 sub	 ecx, 1
  00049	89 4d f4	 mov	 DWORD PTR tv73[ebp], ecx
  0004c	83 7d f4 05	 cmp	 DWORD PTR tv73[ebp], 5
  00050	77 0a		 ja	 SHORT $LN7@TimeShiftO
  00052	8b 55 f4	 mov	 edx, DWORD PTR tv73[ebp]
  00055	ff 24 95 00 00
	00 00		 jmp	 DWORD PTR $LN13@TimeShiftO[edx*4]
$LN7@TimeShiftO:

; 1943 :         {
; 1944 :             default:
; 1945 :             case MODE_STOPPED:
; 1946 :                 item = IDM_TSSTOP;

  0005c	c7 45 f8 f0 07
	00 00		 mov	 DWORD PTR _item$[ebp], 2032 ; 000007f0H

; 1947 :             break;

  00063	eb 2b		 jmp	 SHORT $LN10@TimeShiftO
$LN6@TimeShiftO:

; 1948 : 
; 1949 :             case MODE_PLAYING:
; 1950 :                 item = IDM_TSPLAY;

  00065	c7 45 f8 f1 07
	00 00		 mov	 DWORD PTR _item$[ebp], 2033 ; 000007f1H

; 1951 :             break;

  0006c	eb 22		 jmp	 SHORT $LN10@TimeShiftO
$LN5@TimeShiftO:

; 1952 : 
; 1953 :             case MODE_RECORDING:
; 1954 :             case MODE_SHIFTING:
; 1955 :                 item = IDM_TSRECORD;

  0006e	c7 45 f8 ef 07
	00 00		 mov	 DWORD PTR _item$[ebp], 2031 ; 000007efH

; 1956 :             break;

  00075	eb 19		 jmp	 SHORT $LN10@TimeShiftO
$LN4@TimeShiftO:

; 1957 : 
; 1958 :             case MODE_PAUSED:
; 1959 :                 item = IDM_TSPAUSE;

  00077	c7 45 f8 f2 07
	00 00		 mov	 DWORD PTR _item$[ebp], 2034 ; 000007f2H

; 1960 :             break;

  0007e	eb 10		 jmp	 SHORT $LN10@TimeShiftO
$LN3@TimeShiftO:

; 1961 : 
; 1962 :             case MODE_FASTFWD:
; 1963 :                 item = IDM_TSFFWD;

  00080	c7 45 f8 f3 07
	00 00		 mov	 DWORD PTR _item$[ebp], 2035 ; 000007f3H

; 1964 :             break;

  00087	eb 07		 jmp	 SHORT $LN10@TimeShiftO
$LN2@TimeShiftO:

; 1965 : 
; 1966 :             case MODE_REWIND:
; 1967 :                 item = IDM_TSRWND;

  00089	c7 45 f8 f4 07
	00 00		 mov	 DWORD PTR _item$[ebp], 2036 ; 000007f4H
$LN10@TimeShiftO:

; 1968 :             break;
; 1969 :         }
; 1970 :     }
; 1971 : 
; 1972 :     CheckMenuRadioItem(hMenu, IDM_TSRECORD, IDM_TSNEXT, item, MF_BYCOMMAND);

  00090	6a 00		 push	 0
  00092	8b 45 f8	 mov	 eax, DWORD PTR _item$[ebp]
  00095	50		 push	 eax
  00096	68 f6 07 00 00	 push	 2038			; 000007f6H
  0009b	68 ef 07 00 00	 push	 2031			; 000007efH
  000a0	8b 4d 08	 mov	 ecx, DWORD PTR _hMenu$[ebp]
  000a3	51		 push	 ecx
  000a4	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__CheckMenuRadioItem@20

; 1973 : 
; 1974 :     if (timeShift.IsValid())

  000aa	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000af	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  000b4	85 c0		 test	 eax, eax
  000b6	74 11		 je	 SHORT $LN1@TimeShiftO

; 1975 :        LeaveCriticalSection(&timeShift->lock);

  000b8	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000bd	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000c2	50		 push	 eax
  000c3	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4
$LN1@TimeShiftO:

; 1976 : 
; 1977 :     return result;

  000c9	8b 45 fc	 mov	 eax, DWORD PTR _result$[ebp]

; 1978 : }

  000cc	8b e5		 mov	 esp, ebp
  000ce	5d		 pop	 ebp
  000cf	c3		 ret	 0
$LN13@TimeShiftO:
  000d0	00 00 00 00	 DD	 $LN6@TimeShiftO
  000d4	00 00 00 00	 DD	 $LN5@TimeShiftO
  000d8	00 00 00 00	 DD	 $LN5@TimeShiftO
  000dc	00 00 00 00	 DD	 $LN4@TimeShiftO
  000e0	00 00 00 00	 DD	 $LN3@TimeShiftO
  000e4	00 00 00 00	 DD	 $LN2@TimeShiftO
?TimeShiftOnSetMenu@@YAHPAUHMENU__@@@Z ENDP		; TimeShiftOnSetMenu
_TEXT	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1CTSOptionsDlg@@UAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1CTSOptionsDlg@@UAE@XZ$0
__ehfuncinfo$??1CTSOptionsDlg@@UAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1CTSOptionsDlg@@UAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??1CTSOptionsDlg@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1CTSOptionsDlg@@UAE@XZ PROC				; CTSOptionsDlg::~CTSOptionsDlg, COMDAT
; _this$ = ecx
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??1CTSOptionsDlg@@UAE@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00017	33 c5		 xor	 eax, ebp
  00019	50		 push	 eax
  0001a	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001d	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00023	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx
  00026	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0002d	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00034	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00037	e8 00 00 00 00	 call	 ??1CDSDialog@@UAE@XZ	; CDSDialog::~CDSDialog
  0003c	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0003f	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00046	59		 pop	 ecx
  00047	8b e5		 mov	 esp, ebp
  00049	5d		 pop	 ebp
  0004a	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1CTSOptionsDlg@@UAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1CDSDialog@@UAE@XZ	; CDSDialog::~CDSDialog
__ehhandler$??1CTSOptionsDlg@@UAE@XZ:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??1CTSOptionsDlg@@UAE@XZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??1CTSOptionsDlg@@UAE@XZ ENDP				; CTSOptionsDlg::~CTSOptionsDlg
PUBLIC	?TimeShiftGetAudioCompressionDesc@@YAHPA_WK@Z	; TimeShiftGetAudioCompressionDesc
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftGetAudioCompressionDesc@@YAHPA_WK@Z
_TEXT	SEGMENT
tv78 = -8						; size = 4
_result$ = -4						; size = 4
_dest$ = 8						; size = 4
_length$ = 12						; size = 4
?TimeShiftGetAudioCompressionDesc@@YAHPA_WK@Z PROC	; TimeShiftGetAudioCompressionDesc, COMDAT

; 1841 : {

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

; 1842 :     BOOL result = FALSE;

  00006	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 1843 : 
; 1844 :     if (timeShift.IsValid() && dest)

  0000d	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00012	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  00017	85 c0		 test	 eax, eax
  00019	0f 84 99 00 00
	00		 je	 $LN2@TimeShiftG
  0001f	83 7d 08 00	 cmp	 DWORD PTR _dest$[ebp], 0
  00023	0f 84 8f 00 00
	00		 je	 $LN2@TimeShiftG

; 1845 :     {
; 1846 :         EnterCriticalSection(&timeShift->lock);

  00029	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0002e	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00033	50		 push	 eax
  00034	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1847 : 
; 1848 :         if (_sntprintf(dest, length, _T("%d Hz, %d bits, %s"),
; 1849 :                       timeShift->waveFormat.nSamplesPerSec,
; 1850 :                       timeShift->waveFormat.wBitsPerSample,
; 1851 :                       timeShift->waveFormat.nChannels==2 ? _T("stereo") :
; 1852 :                                                            _T("mono")) > 0)

  0003a	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0003f	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00044	0f b7 80 fa 00
	00 00		 movzx	 eax, WORD PTR [eax+250]
  0004b	83 f8 02	 cmp	 eax, 2
  0004e	75 09		 jne	 SHORT $LN5@TimeShiftG
  00050	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR tv78[ebp], OFFSET ??_C@_1O@HNMBIKEI@?$AAs?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@
  00057	eb 07		 jmp	 SHORT $LN6@TimeShiftG
$LN5@TimeShiftG:
  00059	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR tv78[ebp], OFFSET ??_C@_19GABMCDCB@?$AAm?$AAo?$AAn?$AAo?$AA?$AA@
$LN6@TimeShiftG:
  00060	8b 4d f8	 mov	 ecx, DWORD PTR tv78[ebp]
  00063	51		 push	 ecx
  00064	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00069	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0006e	0f b7 90 06 01
	00 00		 movzx	 edx, WORD PTR [eax+262]
  00075	52		 push	 edx
  00076	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0007b	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00080	8b 80 fc 00 00
	00		 mov	 eax, DWORD PTR [eax+252]
  00086	50		 push	 eax
  00087	68 00 00 00 00	 push	 OFFSET ??_C@_1CG@IDJEGAKF@?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5?$AA?$CF?$AAd?$AA?5?$AAb?$AAi?$AAt?$AAs?$AA?0?$AA?5?$AA?$CF?$AAs?$AA?$AA@
  0008c	8b 4d 0c	 mov	 ecx, DWORD PTR _length$[ebp]
  0008f	51		 push	 ecx
  00090	8b 55 08	 mov	 edx, DWORD PTR _dest$[ebp]
  00093	52		 push	 edx
  00094	e8 00 00 00 00	 call	 __snwprintf
  00099	83 c4 18	 add	 esp, 24			; 00000018H
  0009c	85 c0		 test	 eax, eax
  0009e	7e 07		 jle	 SHORT $LN1@TimeShiftG

; 1853 :            result = TRUE;

  000a0	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1
$LN1@TimeShiftG:

; 1854 : 
; 1855 :         LeaveCriticalSection(&timeShift->lock);

  000a7	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000ac	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000b1	50		 push	 eax
  000b2	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4
$LN2@TimeShiftG:

; 1856 :     }
; 1857 : 
; 1858 :     return result;

  000b8	8b 45 fc	 mov	 eax, DWORD PTR _result$[ebp]

; 1859 : }

  000bb	8b e5		 mov	 esp, ebp
  000bd	5d		 pop	 ebp
  000be	c3		 ret	 0
?TimeShiftGetAudioCompressionDesc@@YAHPA_WK@Z ENDP	; TimeShiftGetAudioCompressionDesc
_TEXT	ENDS
PUBLIC	?TimeShiftSetFourCC@@YAHK@Z			; TimeShiftSetFourCC
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftSetFourCC@@YAHK@Z
_TEXT	SEGMENT
_result$ = -4						; size = 4
_fcc$ = 8						; size = 4
?TimeShiftSetFourCC@@YAHK@Z PROC			; TimeShiftSetFourCC, COMDAT

; 1783 : {

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

; 1784 :     BOOL result = FALSE;

  00004	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 1785 : 
; 1786 :     if (timeShift.IsValid())

  0000b	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00010	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  00015	85 c0		 test	 eax, eax
  00017	74 49		 je	 SHORT $LN2@TimeShiftS

; 1787 :     {
; 1788 :         EnterCriticalSection(&timeShift->lock);

  00019	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0001e	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00023	50		 push	 eax
  00024	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1789 : 
; 1790 :         if (timeShift->mode==MODE_STOPPED)

  0002a	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0002f	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00034	83 78 18 00	 cmp	 DWORD PTR [eax+24], 0
  00038	75 17		 jne	 SHORT $LN1@TimeShiftS

; 1791 :         {
; 1792 :             timeShift->fccHandler = fcc;

  0003a	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0003f	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00044	8b 4d 08	 mov	 ecx, DWORD PTR _fcc$[ebp]
  00047	89 48 24	 mov	 DWORD PTR [eax+36], ecx

; 1793 :             result                = TRUE;

  0004a	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1
$LN1@TimeShiftS:

; 1794 :         }
; 1795 : 
; 1796 :         LeaveCriticalSection(&timeShift->lock);

  00051	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00056	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0005b	50		 push	 eax
  0005c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4
$LN2@TimeShiftS:

; 1797 :     }
; 1798 : 
; 1799 :     return result;

  00062	8b 45 fc	 mov	 eax, DWORD PTR _result$[ebp]

; 1800 : }

  00065	8b e5		 mov	 esp, ebp
  00067	5d		 pop	 ebp
  00068	c3		 ret	 0
?TimeShiftSetFourCC@@YAHK@Z ENDP			; TimeShiftSetFourCC
_TEXT	ENDS
PUBLIC	?TimeShiftGetFourCC@@YAHPAK@Z			; TimeShiftGetFourCC
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftGetFourCC@@YAHPAK@Z
_TEXT	SEGMENT
_result$ = -4						; size = 4
_fcc$ = 8						; size = 4
?TimeShiftGetFourCC@@YAHPAK@Z PROC			; TimeShiftGetFourCC, COMDAT

; 1763 : {

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

; 1764 :     BOOL result = FALSE;

  00004	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 1765 : 
; 1766 :     if (timeShift.IsValid() && fcc)

  0000b	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00010	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  00015	85 c0		 test	 eax, eax
  00017	74 51		 je	 SHORT $LN2@TimeShiftG@2
  00019	83 7d 08 00	 cmp	 DWORD PTR _fcc$[ebp], 0
  0001d	74 4b		 je	 SHORT $LN2@TimeShiftG@2

; 1767 :     {
; 1768 :         EnterCriticalSection(&timeShift->lock);

  0001f	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00024	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00029	50		 push	 eax
  0002a	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1769 : 
; 1770 :         if (timeShift->mode==MODE_STOPPED)

  00030	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00035	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0003a	83 78 18 00	 cmp	 DWORD PTR [eax+24], 0
  0003e	75 19		 jne	 SHORT $LN1@TimeShiftG@2

; 1771 :         {
; 1772 :             *fcc   = timeShift->fccHandler;

  00040	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00045	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0004a	8b 4d 08	 mov	 ecx, DWORD PTR _fcc$[ebp]
  0004d	8b 50 24	 mov	 edx, DWORD PTR [eax+36]
  00050	89 11		 mov	 DWORD PTR [ecx], edx

; 1773 :             result = TRUE;

  00052	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1
$LN1@TimeShiftG@2:

; 1774 :         }
; 1775 : 
; 1776 :         LeaveCriticalSection(&timeShift->lock);

  00059	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0005e	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00063	50		 push	 eax
  00064	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4
$LN2@TimeShiftG@2:

; 1777 :     }
; 1778 : 
; 1779 :     return result;

  0006a	8b 45 fc	 mov	 eax, DWORD PTR _result$[ebp]

; 1780 : }

  0006d	8b e5		 mov	 esp, ebp
  0006f	5d		 pop	 ebp
  00070	c3		 ret	 0
?TimeShiftGetFourCC@@YAHPAK@Z ENDP			; TimeShiftGetFourCC
_TEXT	ENDS
PUBLIC	?TimeShiftSetRecFormat@@YAHW4tsFormat_t@@@Z	; TimeShiftSetRecFormat
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftSetRecFormat@@YAHW4tsFormat_t@@@Z
_TEXT	SEGMENT
_result$ = -4						; size = 4
_format$ = 8						; size = 4
?TimeShiftSetRecFormat@@YAHW4tsFormat_t@@@Z PROC	; TimeShiftSetRecFormat, COMDAT

; 1743 : {

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

; 1744 :     BOOL result = FALSE;

  00004	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 1745 : 
; 1746 :     if (timeShift.IsValid())

  0000b	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00010	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  00015	85 c0		 test	 eax, eax
  00017	74 49		 je	 SHORT $LN2@TimeShiftS@2

; 1747 :     {
; 1748 :         EnterCriticalSection(&timeShift->lock);

  00019	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0001e	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00023	50		 push	 eax
  00024	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1749 : 
; 1750 :         if (timeShift->mode==MODE_STOPPED)

  0002a	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0002f	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00034	83 78 18 00	 cmp	 DWORD PTR [eax+24], 0
  00038	75 17		 jne	 SHORT $LN1@TimeShiftS@2

; 1751 :         {
; 1752 :             timeShift->format = format;

  0003a	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0003f	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00044	8b 4d 08	 mov	 ecx, DWORD PTR _format$[ebp]
  00047	89 48 1c	 mov	 DWORD PTR [eax+28], ecx

; 1753 :             result            = TRUE;

  0004a	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1
$LN1@TimeShiftS@2:

; 1754 :         }
; 1755 : 
; 1756 :         LeaveCriticalSection(&timeShift->lock);

  00051	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00056	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0005b	50		 push	 eax
  0005c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4
$LN2@TimeShiftS@2:

; 1757 :     }
; 1758 : 
; 1759 :     return result;

  00062	8b 45 fc	 mov	 eax, DWORD PTR _result$[ebp]

; 1760 : }

  00065	8b e5		 mov	 esp, ebp
  00067	5d		 pop	 ebp
  00068	c3		 ret	 0
?TimeShiftSetRecFormat@@YAHW4tsFormat_t@@@Z ENDP	; TimeShiftSetRecFormat
_TEXT	ENDS
PUBLIC	?TimeShiftGetRecFormat@@YAHPAW4tsFormat_t@@@Z	; TimeShiftGetRecFormat
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftGetRecFormat@@YAHPAW4tsFormat_t@@@Z
_TEXT	SEGMENT
_result$ = -4						; size = 4
_format$ = 8						; size = 4
?TimeShiftGetRecFormat@@YAHPAW4tsFormat_t@@@Z PROC	; TimeShiftGetRecFormat, COMDAT

; 1730 : {

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

; 1731 :     BOOL result = FALSE;

  00004	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 1732 : 
; 1733 :     if (timeShift.IsValid() && format)

  0000b	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00010	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  00015	85 c0		 test	 eax, eax
  00017	74 1f		 je	 SHORT $LN1@TimeShiftG@3
  00019	83 7d 08 00	 cmp	 DWORD PTR _format$[ebp], 0
  0001d	74 19		 je	 SHORT $LN1@TimeShiftG@3

; 1734 :     {
; 1735 :         *format = timeShift->format;

  0001f	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00024	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00029	8b 4d 08	 mov	 ecx, DWORD PTR _format$[ebp]
  0002c	8b 50 1c	 mov	 edx, DWORD PTR [eax+28]
  0002f	89 11		 mov	 DWORD PTR [ecx], edx

; 1736 :         result  = TRUE;

  00031	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1
$LN1@TimeShiftG@3:

; 1737 :     }
; 1738 : 
; 1739 :     return result;

  00038	8b 45 fc	 mov	 eax, DWORD PTR _result$[ebp]

; 1740 : }

  0003b	8b e5		 mov	 esp, ebp
  0003d	5d		 pop	 ebp
  0003e	c3		 ret	 0
?TimeShiftGetRecFormat@@YAHPAW4tsFormat_t@@@Z ENDP	; TimeShiftGetRecFormat
_TEXT	ENDS
PUBLIC	?TimeShiftSetRecHeight@@YAHH@Z			; TimeShiftSetRecHeight
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftSetRecHeight@@YAHH@Z
_TEXT	SEGMENT
_result$ = -4						; size = 4
_index$ = 8						; size = 4
?TimeShiftSetRecHeight@@YAHH@Z PROC			; TimeShiftSetRecHeight, COMDAT

; 1710 : {

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

; 1711 :     BOOL result = FALSE;

  00004	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 1712 : 
; 1713 :     if (timeShift.IsValid())

  0000b	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00010	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  00015	85 c0		 test	 eax, eax
  00017	74 49		 je	 SHORT $LN2@TimeShiftS@3

; 1714 :     {
; 1715 :         EnterCriticalSection(&timeShift->lock);

  00019	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0001e	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00023	50		 push	 eax
  00024	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1716 : 
; 1717 :         if (timeShift->mode==MODE_STOPPED)

  0002a	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0002f	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00034	83 78 18 00	 cmp	 DWORD PTR [eax+24], 0
  00038	75 17		 jne	 SHORT $LN1@TimeShiftS@3

; 1718 :         {
; 1719 :             timeShift->recHeight = index;

  0003a	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0003f	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00044	8b 4d 08	 mov	 ecx, DWORD PTR _index$[ebp]
  00047	89 48 20	 mov	 DWORD PTR [eax+32], ecx

; 1720 :             result               = TRUE;

  0004a	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1
$LN1@TimeShiftS@3:

; 1721 :         }
; 1722 : 
; 1723 :         LeaveCriticalSection(&timeShift->lock);

  00051	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00056	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0005b	50		 push	 eax
  0005c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4
$LN2@TimeShiftS@3:

; 1724 :     }
; 1725 : 
; 1726 :     return result;

  00062	8b 45 fc	 mov	 eax, DWORD PTR _result$[ebp]

; 1727 : }

  00065	8b e5		 mov	 esp, ebp
  00067	5d		 pop	 ebp
  00068	c3		 ret	 0
?TimeShiftSetRecHeight@@YAHH@Z ENDP			; TimeShiftSetRecHeight
_TEXT	ENDS
PUBLIC	?TimeShiftGetRecHeight@@YAHPAH@Z		; TimeShiftGetRecHeight
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftGetRecHeight@@YAHPAH@Z
_TEXT	SEGMENT
_result$ = -4						; size = 4
_index$ = 8						; size = 4
?TimeShiftGetRecHeight@@YAHPAH@Z PROC			; TimeShiftGetRecHeight, COMDAT

; 1697 : {

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

; 1698 :     BOOL result = FALSE;

  00004	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 1699 : 
; 1700 :     if (timeShift.IsValid() && index)

  0000b	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00010	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  00015	85 c0		 test	 eax, eax
  00017	74 1f		 je	 SHORT $LN1@TimeShiftG@4
  00019	83 7d 08 00	 cmp	 DWORD PTR _index$[ebp], 0
  0001d	74 19		 je	 SHORT $LN1@TimeShiftG@4

; 1701 :     {
; 1702 :         *index = timeShift->recHeight;

  0001f	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00024	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00029	8b 4d 08	 mov	 ecx, DWORD PTR _index$[ebp]
  0002c	8b 50 20	 mov	 edx, DWORD PTR [eax+32]
  0002f	89 11		 mov	 DWORD PTR [ecx], edx

; 1703 :         result = TRUE;

  00031	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1
$LN1@TimeShiftG@4:

; 1704 :     }
; 1705 : 
; 1706 :     return result;

  00038	8b 45 fc	 mov	 eax, DWORD PTR _result$[ebp]

; 1707 : }

  0003b	8b e5		 mov	 esp, ebp
  0003d	5d		 pop	 ebp
  0003e	c3		 ret	 0
?TimeShiftGetRecHeight@@YAHPAH@Z ENDP			; TimeShiftGetRecHeight
_TEXT	ENDS
PUBLIC	?TimeShiftGetWaveOutDevice@@YAHPAPA_W@Z		; TimeShiftGetWaveOutDevice
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftGetWaveOutDevice@@YAHPAPA_W@Z
_TEXT	SEGMENT
_result$ = -4						; size = 4
_ppszDevice$ = 8					; size = 4
?TimeShiftGetWaveOutDevice@@YAHPAPA_W@Z PROC		; TimeShiftGetWaveOutDevice, COMDAT

; 1684 : {

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

; 1685 :     BOOL result = FALSE;

  00004	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 1686 : 
; 1687 :     if (timeShift.IsValid() && ppszDevice)

  0000b	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00010	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  00015	85 c0		 test	 eax, eax
  00017	74 21		 je	 SHORT $LN1@TimeShiftG@5
  00019	83 7d 08 00	 cmp	 DWORD PTR _ppszDevice$[ebp], 0
  0001d	74 1b		 je	 SHORT $LN1@TimeShiftG@5

; 1688 :     {
; 1689 :         *ppszDevice = (TCHAR*)&timeShift->waveOutDevice;

  0001f	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00024	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00029	05 90 00 00 00	 add	 eax, 144		; 00000090H
  0002e	8b 4d 08	 mov	 ecx, DWORD PTR _ppszDevice$[ebp]
  00031	89 01		 mov	 DWORD PTR [ecx], eax

; 1690 :         result = TRUE;

  00033	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1
$LN1@TimeShiftG@5:

; 1691 :     }
; 1692 : 
; 1693 :     return result;

  0003a	8b 45 fc	 mov	 eax, DWORD PTR _result$[ebp]

; 1694 : }

  0003d	8b e5		 mov	 esp, ebp
  0003f	5d		 pop	 ebp
  00040	c3		 ret	 0
?TimeShiftGetWaveOutDevice@@YAHPAPA_W@Z ENDP		; TimeShiftGetWaveOutDevice
_TEXT	ENDS
PUBLIC	?TimeShiftGetWaveInDevice@@YAHPAPA_W@Z		; TimeShiftGetWaveInDevice
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftGetWaveInDevice@@YAHPAPA_W@Z
_TEXT	SEGMENT
_result$ = -4						; size = 4
_ppszDevice$ = 8					; size = 4
?TimeShiftGetWaveInDevice@@YAHPAPA_W@Z PROC		; TimeShiftGetWaveInDevice, COMDAT

; 1671 : {

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

; 1672 :     BOOL result = FALSE;

  00004	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 1673 : 
; 1674 :     if (timeShift.IsValid() && ppszDevice)

  0000b	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00010	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  00015	85 c0		 test	 eax, eax
  00017	74 1f		 je	 SHORT $LN1@TimeShiftG@6
  00019	83 7d 08 00	 cmp	 DWORD PTR _ppszDevice$[ebp], 0
  0001d	74 19		 je	 SHORT $LN1@TimeShiftG@6

; 1675 :     {
; 1676 :         *ppszDevice = (TCHAR* )&timeShift->waveInDevice;

  0001f	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00024	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00029	83 c0 50	 add	 eax, 80			; 00000050H
  0002c	8b 4d 08	 mov	 ecx, DWORD PTR _ppszDevice$[ebp]
  0002f	89 01		 mov	 DWORD PTR [ecx], eax

; 1677 :         result = TRUE;

  00031	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1
$LN1@TimeShiftG@6:

; 1678 :     }
; 1679 : 
; 1680 :     return result;

  00038	8b 45 fc	 mov	 eax, DWORD PTR _result$[ebp]

; 1681 : }

  0003b	8b e5		 mov	 esp, ebp
  0003d	5d		 pop	 ebp
  0003e	c3		 ret	 0
?TimeShiftGetWaveInDevice@@YAHPAPA_W@Z ENDP		; TimeShiftGetWaveInDevice
_TEXT	ENDS
PUBLIC	?TimeShiftGetDimensions@@YAHPAH0@Z		; TimeShiftGetDimensions
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftGetDimensions@@YAHPAH0@Z
_TEXT	SEGMENT
_result$ = -4						; size = 4
_w$ = 8							; size = 4
_h$ = 12						; size = 4
?TimeShiftGetDimensions@@YAHPAH0@Z PROC			; TimeShiftGetDimensions, COMDAT

; 1654 : {

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

; 1655 :     BOOL result = FALSE;

  00004	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 1656 : 
; 1657 :     if (timeShift.IsValid() && w && h)

  0000b	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00010	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  00015	85 c0		 test	 eax, eax
  00017	74 5f		 je	 SHORT $LN1@TimeShiftG@7
  00019	83 7d 08 00	 cmp	 DWORD PTR _w$[ebp], 0
  0001d	74 59		 je	 SHORT $LN1@TimeShiftG@7
  0001f	83 7d 0c 00	 cmp	 DWORD PTR _h$[ebp], 0
  00023	74 53		 je	 SHORT $LN1@TimeShiftG@7

; 1658 :     {
; 1659 :         EnterCriticalSection(&timeShift->lock);

  00025	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0002a	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0002f	50		 push	 eax
  00030	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1660 :         *w = timeShift->bih.biWidth;

  00036	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0003b	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00040	8b 4d 08	 mov	 ecx, DWORD PTR _w$[ebp]
  00043	8b 90 d4 00 00
	00		 mov	 edx, DWORD PTR [eax+212]
  00049	89 11		 mov	 DWORD PTR [ecx], edx

; 1661 :         *h = timeShift->bih.biHeight;

  0004b	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00050	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00055	8b 4d 0c	 mov	 ecx, DWORD PTR _h$[ebp]
  00058	8b 90 d8 00 00
	00		 mov	 edx, DWORD PTR [eax+216]
  0005e	89 11		 mov	 DWORD PTR [ecx], edx

; 1662 :         LeaveCriticalSection(&timeShift->lock);

  00060	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00065	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0006a	50		 push	 eax
  0006b	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1663 : 
; 1664 :         result = TRUE;

  00071	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1
$LN1@TimeShiftG@7:

; 1665 :     }
; 1666 : 
; 1667 :     return result;

  00078	8b 45 fc	 mov	 eax, DWORD PTR _result$[ebp]

; 1668 : }

  0007b	8b e5		 mov	 esp, ebp
  0007d	5d		 pop	 ebp
  0007e	c3		 ret	 0
?TimeShiftGetDimensions@@YAHPAH0@Z ENDP			; TimeShiftGetDimensions
_TEXT	ENDS
PUBLIC	?TimeShiftGetFileSizeLimit@@YAKXZ		; TimeShiftGetFileSizeLimit
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftGetFileSizeLimit@@YAKXZ
_TEXT	SEGMENT
tv70 = -4						; size = 4
?TimeShiftGetFileSizeLimit@@YAKXZ PROC			; TimeShiftGetFileSizeLimit, COMDAT

; 1649 : {

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

; 1650 :     return timeShift.IsValid() ? timeShift->sizeLimit : 0;

  00004	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00009	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  0000e	85 c0		 test	 eax, eax
  00010	74 12		 je	 SHORT $LN3@TimeShiftG@8
  00012	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00017	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0001c	8b 40 44	 mov	 eax, DWORD PTR [eax+68]
  0001f	89 45 fc	 mov	 DWORD PTR tv70[ebp], eax
  00022	eb 07		 jmp	 SHORT $LN4@TimeShiftG@8
$LN3@TimeShiftG@8:
  00024	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR tv70[ebp], 0
$LN4@TimeShiftG@8:
  0002b	8b 45 fc	 mov	 eax, DWORD PTR tv70[ebp]

; 1651 : }

  0002e	8b e5		 mov	 esp, ebp
  00030	5d		 pop	 ebp
  00031	c3		 ret	 0
?TimeShiftGetFileSizeLimit@@YAKXZ ENDP			; TimeShiftGetFileSizeLimit
_TEXT	ENDS
PUBLIC	?TimeShiftSetFileSizeLimit@@YAHK@Z		; TimeShiftSetFileSizeLimit
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftSetFileSizeLimit@@YAHK@Z
_TEXT	SEGMENT
_result$ = -4						; size = 4
_sizeLimit$ = 8						; size = 4
?TimeShiftSetFileSizeLimit@@YAHK@Z PROC			; TimeShiftSetFileSizeLimit, COMDAT

; 1621 : {

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

; 1622 :     BOOL result = FALSE;

  00004	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 1623 : 
; 1624 :     if (timeShift.IsValid())

  0000b	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00010	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  00015	85 c0		 test	 eax, eax
  00017	74 59		 je	 SHORT $LN3@TimeShiftS@4

; 1625 :     {
; 1626 :         EnterCriticalSection(&timeShift->lock);

  00019	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0001e	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00023	50		 push	 eax
  00024	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1627 : 
; 1628 :         if (timeShift->mode==MODE_STOPPED)

  0002a	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0002f	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00034	83 78 18 00	 cmp	 DWORD PTR [eax+24], 0
  00038	75 27		 jne	 SHORT $LN2@TimeShiftS@4

; 1629 :         {
; 1630 :             if (sizeLimit > MAX_FILE_SIZE)

  0003a	81 7d 08 40 42
	0f 00		 cmp	 DWORD PTR _sizeLimit$[ebp], 1000000 ; 000f4240H
  00041	76 07		 jbe	 SHORT $LN1@TimeShiftS@4

; 1631 :                sizeLimit = MAX_FILE_SIZE;

  00043	c7 45 08 40 42
	0f 00		 mov	 DWORD PTR _sizeLimit$[ebp], 1000000 ; 000f4240H
$LN1@TimeShiftS@4:

; 1632 : 
; 1633 :             timeShift->sizeLimit = sizeLimit;

  0004a	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0004f	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00054	8b 4d 08	 mov	 ecx, DWORD PTR _sizeLimit$[ebp]
  00057	89 48 44	 mov	 DWORD PTR [eax+68], ecx

; 1634 :             result               = TRUE;

  0005a	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1
$LN2@TimeShiftS@4:

; 1635 :         }
; 1636 : 
; 1637 :         LeaveCriticalSection(&timeShift->lock);

  00061	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00066	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0006b	50		 push	 eax
  0006c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4
$LN3@TimeShiftS@4:

; 1638 :     }
; 1639 : 
; 1640 :     return result;

  00072	8b 45 fc	 mov	 eax, DWORD PTR _result$[ebp]

; 1641 : }

  00075	8b e5		 mov	 esp, ebp
  00077	5d		 pop	 ebp
  00078	c3		 ret	 0
?TimeShiftSetFileSizeLimit@@YAHK@Z ENDP			; TimeShiftSetFileSizeLimit
_TEXT	ENDS
PUBLIC	?TimeShiftSetWaveOutDevice@@YAHPB_W@Z		; TimeShiftSetWaveOutDevice
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftSetWaveOutDevice@@YAHPB_W@Z
_TEXT	SEGMENT
_result$ = -4						; size = 4
_pszDevice$ = 8						; size = 4
?TimeShiftSetWaveOutDevice@@YAHPB_W@Z PROC		; TimeShiftSetWaveOutDevice, COMDAT

; 1484 : {

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

; 1485 :     BOOL result = FALSE;

  00004	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 1486 : 
; 1487 :     if (timeShift.IsValid() && pszDevice)

  0000b	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00010	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  00015	85 c0		 test	 eax, eax
  00017	74 5d		 je	 SHORT $LN2@TimeShiftS@5
  00019	83 7d 08 00	 cmp	 DWORD PTR _pszDevice$[ebp], 0
  0001d	74 57		 je	 SHORT $LN2@TimeShiftS@5

; 1488 :     {
; 1489 :         EnterCriticalSection(&timeShift->lock);

  0001f	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00024	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00029	50		 push	 eax
  0002a	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1490 :         if (timeShift->mode==MODE_STOPPED)

  00030	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00035	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0003a	83 78 18 00	 cmp	 DWORD PTR [eax+24], 0
  0003e	75 25		 jne	 SHORT $LN1@TimeShiftS@5

; 1491 :         {
; 1492 :             _tcsncpy(timeShift->waveOutDevice, pszDevice,
; 1493 :                     sizeof(timeShift->waveOutDevice) /sizeof(TCHAR));

  00040	6a 20		 push	 32			; 00000020H
  00042	8b 45 08	 mov	 eax, DWORD PTR _pszDevice$[ebp]
  00045	50		 push	 eax
  00046	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0004b	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00050	05 90 00 00 00	 add	 eax, 144		; 00000090H
  00055	50		 push	 eax
  00056	e8 00 00 00 00	 call	 _wcsncpy
  0005b	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1494 :             result = TRUE;

  0005e	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1
$LN1@TimeShiftS@5:

; 1495 :         }
; 1496 : 
; 1497 :         LeaveCriticalSection(&timeShift->lock);

  00065	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0006a	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0006f	50		 push	 eax
  00070	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4
$LN2@TimeShiftS@5:

; 1498 :     }
; 1499 : 
; 1500 :     return result;

  00076	8b 45 fc	 mov	 eax, DWORD PTR _result$[ebp]

; 1501 : }

  00079	8b e5		 mov	 esp, ebp
  0007b	5d		 pop	 ebp
  0007c	c3		 ret	 0
?TimeShiftSetWaveOutDevice@@YAHPB_W@Z ENDP		; TimeShiftSetWaveOutDevice
_TEXT	ENDS
PUBLIC	__$ArrayPad$
PUBLIC	?TimeShiftGetWaveOutDeviceIndex@@YAHPAH@Z	; TimeShiftGetWaveOutDeviceIndex
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftGetWaveOutDeviceIndex@@YAHPAH@Z
_TEXT	SEGMENT
_result$ = -108						; size = 4
_woc$ = -104						; size = 84
__$ArrayPad$ = -12					; size = 4
_i$ = -8						; size = 4
_count$ = -4						; size = 4
_index$ = 8						; size = 4
?TimeShiftGetWaveOutDeviceIndex@@YAHPAH@Z PROC		; TimeShiftGetWaveOutDeviceIndex, COMDAT

; 1449 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 6c	 sub	 esp, 108		; 0000006cH
  00006	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0000b	33 c5		 xor	 eax, ebp
  0000d	89 45 f4	 mov	 DWORD PTR __$ArrayPad$[ebp], eax

; 1450 :     int         count;
; 1451 :     int         i;
; 1452 :     BOOL        result = FALSE;

  00010	c7 45 94 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 1453 :     WAVEOUTCAPS woc;
; 1454 : 
; 1455 :     if (timeShift.IsValid() && index)

  00017	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0001c	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  00021	85 c0		 test	 eax, eax
  00023	0f 84 cc 00 00
	00		 je	 $LN8@TimeShiftG@9
  00029	83 7d 08 00	 cmp	 DWORD PTR _index$[ebp], 0
  0002d	0f 84 c2 00 00
	00		 je	 $LN8@TimeShiftG@9

; 1456 :     {
; 1457 :         EnterCriticalSection(&timeShift->lock);

  00033	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00038	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0003d	50		 push	 eax
  0003e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1458 : 
; 1459 :         count  = waveOutGetNumDevs();

  00044	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__waveOutGetNumDevs@0
  0004a	89 45 fc	 mov	 DWORD PTR _count$[ebp], eax

; 1460 :         *index = 0;

  0004d	8b 45 08	 mov	 eax, DWORD PTR _index$[ebp]
  00050	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], 0

; 1461 :         if (_tcslen(timeShift->waveOutDevice) && count)

  00056	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0005b	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00060	05 90 00 00 00	 add	 eax, 144		; 00000090H
  00065	50		 push	 eax
  00066	e8 00 00 00 00	 call	 _wcslen
  0006b	83 c4 04	 add	 esp, 4
  0006e	85 c0		 test	 eax, eax
  00070	74 6b		 je	 SHORT $LN7@TimeShiftG@9
  00072	83 7d fc 00	 cmp	 DWORD PTR _count$[ebp], 0
  00076	74 65		 je	 SHORT $LN7@TimeShiftG@9

; 1462 :         {
; 1463 :             for(i = 0; i < count && !result; i++)

  00078	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  0007f	eb 09		 jmp	 SHORT $LN6@TimeShiftG@9
$LN5@TimeShiftG@9:
  00081	8b 4d f8	 mov	 ecx, DWORD PTR _i$[ebp]
  00084	83 c1 01	 add	 ecx, 1
  00087	89 4d f8	 mov	 DWORD PTR _i$[ebp], ecx
$LN6@TimeShiftG@9:
  0008a	8b 55 f8	 mov	 edx, DWORD PTR _i$[ebp]
  0008d	3b 55 fc	 cmp	 edx, DWORD PTR _count$[ebp]
  00090	7d 49		 jge	 SHORT $LN4@TimeShiftG@9
  00092	83 7d 94 00	 cmp	 DWORD PTR _result$[ebp], 0
  00096	75 43		 jne	 SHORT $LN4@TimeShiftG@9

; 1464 :             {
; 1465 :                 if (waveOutGetDevCaps(i, &woc, sizeof(woc))==MMSYSERR_NOERROR)

  00098	6a 54		 push	 84			; 00000054H
  0009a	8d 45 98	 lea	 eax, DWORD PTR _woc$[ebp]
  0009d	50		 push	 eax
  0009e	8b 4d f8	 mov	 ecx, DWORD PTR _i$[ebp]
  000a1	51		 push	 ecx
  000a2	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__waveOutGetDevCapsW@12
  000a8	85 c0		 test	 eax, eax
  000aa	75 2d		 jne	 SHORT $LN3@TimeShiftG@9

; 1466 :                 {
; 1467 :                     if (!lstrcmp(timeShift->waveOutDevice, woc.szPname))

  000ac	8d 55 a0	 lea	 edx, DWORD PTR _woc$[ebp+8]
  000af	52		 push	 edx
  000b0	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000b5	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000ba	05 90 00 00 00	 add	 eax, 144		; 00000090H
  000bf	50		 push	 eax
  000c0	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__lstrcmpW@8
  000c6	85 c0		 test	 eax, eax
  000c8	75 0f		 jne	 SHORT $LN3@TimeShiftG@9

; 1468 :                     {
; 1469 :                         *index = i;

  000ca	8b 45 08	 mov	 eax, DWORD PTR _index$[ebp]
  000cd	8b 4d f8	 mov	 ecx, DWORD PTR _i$[ebp]
  000d0	89 08		 mov	 DWORD PTR [eax], ecx

; 1470 :                         result = TRUE;

  000d2	c7 45 94 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1
$LN3@TimeShiftG@9:

; 1471 :                     }
; 1472 :                 }

  000d9	eb a6		 jmp	 SHORT $LN5@TimeShiftG@9
$LN4@TimeShiftG@9:

; 1473 :             }

  000db	eb 07		 jmp	 SHORT $LN1@TimeShiftG@9
$LN7@TimeShiftG@9:

; 1474 :         } else
; 1475 :           result = TRUE;

  000dd	c7 45 94 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1
$LN1@TimeShiftG@9:

; 1476 : 
; 1477 :         LeaveCriticalSection(&timeShift->lock);

  000e4	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000e9	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000ee	50		 push	 eax
  000ef	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4
$LN8@TimeShiftG@9:

; 1478 :     }
; 1479 : 
; 1480 :     return result;

  000f5	8b 45 94	 mov	 eax, DWORD PTR _result$[ebp]

; 1481 : }

  000f8	8b 4d f4	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  000fb	33 cd		 xor	 ecx, ebp
  000fd	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00102	8b e5		 mov	 esp, ebp
  00104	5d		 pop	 ebp
  00105	c3		 ret	 0
?TimeShiftGetWaveOutDeviceIndex@@YAHPAH@Z ENDP		; TimeShiftGetWaveOutDeviceIndex
_TEXT	ENDS
PUBLIC	?TimeShiftSetWaveInDevice@@YAHPB_W@Z		; TimeShiftSetWaveInDevice
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftSetWaveInDevice@@YAHPB_W@Z
_TEXT	SEGMENT
_result$ = -4						; size = 4
_pszDevice$ = 8						; size = 4
?TimeShiftSetWaveInDevice@@YAHPB_W@Z PROC		; TimeShiftSetWaveInDevice, COMDAT

; 1429 : {

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

; 1430 :     BOOL result = FALSE;

  00004	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 1431 : 
; 1432 :     if (timeShift.IsValid() && pszDevice)

  0000b	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00010	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  00015	85 c0		 test	 eax, eax
  00017	74 5b		 je	 SHORT $LN2@TimeShiftS@6
  00019	83 7d 08 00	 cmp	 DWORD PTR _pszDevice$[ebp], 0
  0001d	74 55		 je	 SHORT $LN2@TimeShiftS@6

; 1433 :     {
; 1434 :         EnterCriticalSection(&timeShift->lock);

  0001f	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00024	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00029	50		 push	 eax
  0002a	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1435 :         if (timeShift->mode==MODE_STOPPED)

  00030	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00035	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0003a	83 78 18 00	 cmp	 DWORD PTR [eax+24], 0
  0003e	75 23		 jne	 SHORT $LN1@TimeShiftS@6

; 1436 :         {
; 1437 :             _tcsncpy(timeShift->waveInDevice, pszDevice,
; 1438 :                     sizeof(timeShift->waveInDevice)/ sizeof(TCHAR));

  00040	6a 20		 push	 32			; 00000020H
  00042	8b 45 08	 mov	 eax, DWORD PTR _pszDevice$[ebp]
  00045	50		 push	 eax
  00046	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0004b	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00050	83 c0 50	 add	 eax, 80			; 00000050H
  00053	50		 push	 eax
  00054	e8 00 00 00 00	 call	 _wcsncpy
  00059	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1439 :             result = TRUE;

  0005c	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1
$LN1@TimeShiftS@6:

; 1440 :         }
; 1441 : 
; 1442 :         LeaveCriticalSection(&timeShift->lock);

  00063	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00068	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0006d	50		 push	 eax
  0006e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4
$LN2@TimeShiftS@6:

; 1443 :     }
; 1444 : 
; 1445 :     return result;

  00074	8b 45 fc	 mov	 eax, DWORD PTR _result$[ebp]

; 1446 : }

  00077	8b e5		 mov	 esp, ebp
  00079	5d		 pop	 ebp
  0007a	c3		 ret	 0
?TimeShiftSetWaveInDevice@@YAHPB_W@Z ENDP		; TimeShiftSetWaveInDevice
_TEXT	ENDS
PUBLIC	__$ArrayPad$
PUBLIC	?TimeShiftGetWaveInDeviceIndex@@YAHPAH@Z	; TimeShiftGetWaveInDeviceIndex
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftGetWaveInDeviceIndex@@YAHPAH@Z
_TEXT	SEGMENT
_result$ = -100						; size = 4
_wic$ = -96						; size = 80
__$ArrayPad$ = -12					; size = 4
_i$ = -8						; size = 4
_count$ = -4						; size = 4
_index$ = 8						; size = 4
?TimeShiftGetWaveInDeviceIndex@@YAHPAH@Z PROC		; TimeShiftGetWaveInDeviceIndex, COMDAT

; 1394 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 64	 sub	 esp, 100		; 00000064H
  00006	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0000b	33 c5		 xor	 eax, ebp
  0000d	89 45 f4	 mov	 DWORD PTR __$ArrayPad$[ebp], eax

; 1395 :     int        count;
; 1396 :     int        i;
; 1397 :     BOOL       result = FALSE;

  00010	c7 45 9c 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 1398 :     WAVEINCAPS wic;
; 1399 : 
; 1400 :     if (timeShift.IsValid() && index)

  00017	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0001c	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  00021	85 c0		 test	 eax, eax
  00023	0f 84 c8 00 00
	00		 je	 $LN8@TimeShiftG@10
  00029	83 7d 08 00	 cmp	 DWORD PTR _index$[ebp], 0
  0002d	0f 84 be 00 00
	00		 je	 $LN8@TimeShiftG@10

; 1401 :     {
; 1402 :         EnterCriticalSection(&timeShift->lock);

  00033	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00038	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0003d	50		 push	 eax
  0003e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1403 : 
; 1404 :         count  = waveInGetNumDevs();

  00044	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__waveInGetNumDevs@0
  0004a	89 45 fc	 mov	 DWORD PTR _count$[ebp], eax

; 1405 :         *index = 0;

  0004d	8b 45 08	 mov	 eax, DWORD PTR _index$[ebp]
  00050	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], 0

; 1406 :         if (_tcslen(timeShift->waveInDevice) && count)

  00056	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0005b	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00060	83 c0 50	 add	 eax, 80			; 00000050H
  00063	50		 push	 eax
  00064	e8 00 00 00 00	 call	 _wcslen
  00069	83 c4 04	 add	 esp, 4
  0006c	85 c0		 test	 eax, eax
  0006e	74 69		 je	 SHORT $LN7@TimeShiftG@10
  00070	83 7d fc 00	 cmp	 DWORD PTR _count$[ebp], 0
  00074	74 63		 je	 SHORT $LN7@TimeShiftG@10

; 1407 :         {
; 1408 :             for (i = 0; i < count && !result; i++)

  00076	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  0007d	eb 09		 jmp	 SHORT $LN6@TimeShiftG@10
$LN5@TimeShiftG@10:
  0007f	8b 4d f8	 mov	 ecx, DWORD PTR _i$[ebp]
  00082	83 c1 01	 add	 ecx, 1
  00085	89 4d f8	 mov	 DWORD PTR _i$[ebp], ecx
$LN6@TimeShiftG@10:
  00088	8b 55 f8	 mov	 edx, DWORD PTR _i$[ebp]
  0008b	3b 55 fc	 cmp	 edx, DWORD PTR _count$[ebp]
  0008e	7d 47		 jge	 SHORT $LN4@TimeShiftG@10
  00090	83 7d 9c 00	 cmp	 DWORD PTR _result$[ebp], 0
  00094	75 41		 jne	 SHORT $LN4@TimeShiftG@10

; 1409 :             {
; 1410 :                 if (waveInGetDevCaps(i, &wic, sizeof(wic))==MMSYSERR_NOERROR)

  00096	6a 50		 push	 80			; 00000050H
  00098	8d 45 a0	 lea	 eax, DWORD PTR _wic$[ebp]
  0009b	50		 push	 eax
  0009c	8b 4d f8	 mov	 ecx, DWORD PTR _i$[ebp]
  0009f	51		 push	 ecx
  000a0	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__waveInGetDevCapsW@12
  000a6	85 c0		 test	 eax, eax
  000a8	75 2b		 jne	 SHORT $LN3@TimeShiftG@10

; 1411 :                 {
; 1412 :                     if (!lstrcmp(timeShift->waveInDevice, wic.szPname))

  000aa	8d 55 a8	 lea	 edx, DWORD PTR _wic$[ebp+8]
  000ad	52		 push	 edx
  000ae	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000b3	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000b8	83 c0 50	 add	 eax, 80			; 00000050H
  000bb	50		 push	 eax
  000bc	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__lstrcmpW@8
  000c2	85 c0		 test	 eax, eax
  000c4	75 0f		 jne	 SHORT $LN3@TimeShiftG@10

; 1413 :                     {
; 1414 :                         *index = i;

  000c6	8b 45 08	 mov	 eax, DWORD PTR _index$[ebp]
  000c9	8b 4d f8	 mov	 ecx, DWORD PTR _i$[ebp]
  000cc	89 08		 mov	 DWORD PTR [eax], ecx

; 1415 :                         result = TRUE;

  000ce	c7 45 9c 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1
$LN3@TimeShiftG@10:

; 1416 :                     }
; 1417 :                 }

  000d5	eb a8		 jmp	 SHORT $LN5@TimeShiftG@10
$LN4@TimeShiftG@10:

; 1418 :             }

  000d7	eb 07		 jmp	 SHORT $LN1@TimeShiftG@10
$LN7@TimeShiftG@10:

; 1419 :         } else
; 1420 :           result = TRUE;

  000d9	c7 45 9c 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1
$LN1@TimeShiftG@10:

; 1421 : 
; 1422 :         LeaveCriticalSection(&timeShift->lock);

  000e0	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000e5	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000ea	50		 push	 eax
  000eb	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4
$LN8@TimeShiftG@10:

; 1423 :     }
; 1424 : 
; 1425 :     return result;

  000f1	8b 45 9c	 mov	 eax, DWORD PTR _result$[ebp]

; 1426 : }

  000f4	8b 4d f4	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  000f7	33 cd		 xor	 ecx, ebp
  000f9	e8 00 00 00 00	 call	 @__security_check_cookie@4
  000fe	8b e5		 mov	 esp, ebp
  00100	5d		 pop	 ebp
  00101	c3		 ret	 0
?TimeShiftGetWaveInDeviceIndex@@YAHPAH@Z ENDP		; TimeShiftGetWaveInDeviceIndex
_TEXT	ENDS
PUBLIC	?TimeShiftIsRunning@@YAHXZ			; TimeShiftIsRunning
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftIsRunning@@YAHXZ
_TEXT	SEGMENT
_result$ = -4						; size = 4
?TimeShiftIsRunning@@YAHXZ PROC				; TimeShiftIsRunning, COMDAT

; 1333 : {

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

; 1334 :     BOOL result = FALSE;

  00004	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 1335 : 
; 1336 :     if (timeShift.IsValid())

  0000b	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00010	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  00015	85 c0		 test	 eax, eax
  00017	74 17		 je	 SHORT $LN2@TimeShiftI@2

; 1337 :     {
; 1338 :         if (timeShift->mode != MODE_STOPPED)

  00019	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0001e	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00023	83 78 18 00	 cmp	 DWORD PTR [eax+24], 0
  00027	74 07		 je	 SHORT $LN2@TimeShiftI@2

; 1339 :            result = TRUE;

  00029	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1
$LN2@TimeShiftI@2:

; 1340 :     }
; 1341 : 
; 1342 :     return result;

  00030	8b 45 fc	 mov	 eax, DWORD PTR _result$[ebp]

; 1343 : }

  00033	8b e5		 mov	 esp, ebp
  00035	5d		 pop	 ebp
  00036	c3		 ret	 0
?TimeShiftIsRunning@@YAHXZ ENDP				; TimeShiftIsRunning
PUBLIC	?TimeShiftGetSavingPath@@YAPB_WXZ		; TimeShiftGetSavingPath
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftGetSavingPath@@YAPB_WXZ
_TEXT	SEGMENT
tv72 = -4						; size = 4
?TimeShiftGetSavingPath@@YAPB_WXZ PROC			; TimeShiftGetSavingPath, COMDAT

; 1644 : {

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

; 1645 :     return timeShift.IsValid() ? timeShift->savingPath.c_str() : NULL;

  00004	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00009	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  0000e	85 c0		 test	 eax, eax
  00010	74 19		 je	 SHORT $LN3@TimeShiftG@11
  00012	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00017	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0001c	83 c0 28	 add	 eax, 40			; 00000028H
  0001f	8b c8		 mov	 ecx, eax
  00021	e8 00 00 00 00	 call	 ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str
  00026	89 45 fc	 mov	 DWORD PTR tv72[ebp], eax
  00029	eb 07		 jmp	 SHORT $LN4@TimeShiftG@11
$LN3@TimeShiftG@11:
  0002b	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR tv72[ebp], 0
$LN4@TimeShiftG@11:
  00032	8b 45 fc	 mov	 eax, DWORD PTR tv72[ebp]

; 1646 : }

  00035	8b e5		 mov	 esp, ebp
  00037	5d		 pop	 ebp
  00038	c3		 ret	 0
?TimeShiftGetSavingPath@@YAPB_WXZ ENDP			; TimeShiftGetSavingPath
PUBLIC	__$ArrayPad$
PUBLIC	?TimeShiftWriteToINI@@YAHXZ			; TimeShiftWriteToINI
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftWriteToINI@@YAHXZ
_TEXT	SEGMENT
_result$ = -76						; size = 4
_temp$ = -72						; size = 64
__$ArrayPad$ = -4					; size = 4
?TimeShiftWriteToINI@@YAHXZ PROC			; TimeShiftWriteToINI, COMDAT

; 2031 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 4c	 sub	 esp, 76			; 0000004cH
  00006	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0000b	33 c5		 xor	 eax, ebp
  0000d	89 45 fc	 mov	 DWORD PTR __$ArrayPad$[ebp], eax

; 2032 :     BOOL         result = FALSE;

  00010	c7 45 b4 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 2033 :     TCHAR        temp[32];
; 2034 : 
; 2035 :     if (timeShift.IsValid())

  00017	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0001c	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  00021	85 c0		 test	 eax, eax
  00023	0f 84 53 01 00
	00		 je	 $LN1@TimeShiftW

; 2036 :     {
; 2037 :         WritePrivateProfileString(_T("TimeShift"), _T("SavingPath"),
; 2038 :                                   timeShift->savingPath.c_str(), GetIniFileForSettings());

  00029	e8 00 00 00 00	 call	 ?GetIniFileForSettings@@YAPB_WXZ ; GetIniFileForSettings
  0002e	50		 push	 eax
  0002f	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00034	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00039	83 c0 28	 add	 eax, 40			; 00000028H
  0003c	8b c8		 mov	 ecx, eax
  0003e	e8 00 00 00 00	 call	 ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str
  00043	50		 push	 eax
  00044	68 00 00 00 00	 push	 OFFSET ??_C@_1BG@LEKCADGO@?$AAS?$AAa?$AAv?$AAi?$AAn?$AAg?$AAP?$AAa?$AAt?$AAh?$AA?$AA@
  00049	68 00 00 00 00	 push	 OFFSET ??_C@_1BE@DAMFNGFL@?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?$AA@
  0004e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__WritePrivateProfileStringW@16

; 2039 : 
; 2040 :         _sntprintf(temp, sizeof(temp), _T("%u"), timeShift->sizeLimit);

  00054	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00059	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0005e	8b 40 44	 mov	 eax, DWORD PTR [eax+68]
  00061	50		 push	 eax
  00062	68 00 00 00 00	 push	 OFFSET ??_C@_15EFLNJKHH@?$AA?$CF?$AAu?$AA?$AA@
  00067	6a 40		 push	 64			; 00000040H
  00069	8d 4d b8	 lea	 ecx, DWORD PTR _temp$[ebp]
  0006c	51		 push	 ecx
  0006d	e8 00 00 00 00	 call	 __snwprintf
  00072	83 c4 10	 add	 esp, 16			; 00000010H

; 2041 :         WritePrivateProfileString(_T("TimeShift"), _T("AVIFileSizeLimit"), temp,
; 2042 :                                   GetIniFileForSettings());

  00075	e8 00 00 00 00	 call	 ?GetIniFileForSettings@@YAPB_WXZ ; GetIniFileForSettings
  0007a	50		 push	 eax
  0007b	8d 55 b8	 lea	 edx, DWORD PTR _temp$[ebp]
  0007e	52		 push	 edx
  0007f	68 00 00 00 00	 push	 OFFSET ??_C@_1CC@BEPGOPMN@?$AAA?$AAV?$AAI?$AAF?$AAi?$AAl?$AAe?$AAS?$AAi?$AAz?$AAe?$AAL?$AAi?$AAm?$AAi?$AAt?$AA?$AA@
  00084	68 00 00 00 00	 push	 OFFSET ??_C@_1BE@DAMFNGFL@?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?$AA@
  00089	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__WritePrivateProfileStringW@16

; 2043 : 
; 2044 :         WritePrivateProfileString(_T("TimeShift"), _T("WaveInDevice"),
; 2045 :                                   timeShift->waveInDevice, GetIniFileForSettings());

  0008f	e8 00 00 00 00	 call	 ?GetIniFileForSettings@@YAPB_WXZ ; GetIniFileForSettings
  00094	50		 push	 eax
  00095	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0009a	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0009f	83 c0 50	 add	 eax, 80			; 00000050H
  000a2	50		 push	 eax
  000a3	68 00 00 00 00	 push	 OFFSET ??_C@_1BK@CHOMKCEG@?$AAW?$AAa?$AAv?$AAe?$AAI?$AAn?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?$AA@
  000a8	68 00 00 00 00	 push	 OFFSET ??_C@_1BE@DAMFNGFL@?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?$AA@
  000ad	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__WritePrivateProfileStringW@16

; 2046 :         WritePrivateProfileString(_T("TimeShift"), _T("WaveOutDevice"),
; 2047 :                                   timeShift->waveOutDevice, GetIniFileForSettings());

  000b3	e8 00 00 00 00	 call	 ?GetIniFileForSettings@@YAPB_WXZ ; GetIniFileForSettings
  000b8	50		 push	 eax
  000b9	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000be	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000c3	05 90 00 00 00	 add	 eax, 144		; 00000090H
  000c8	50		 push	 eax
  000c9	68 00 00 00 00	 push	 OFFSET ??_C@_1BM@IOJNHOMI@?$AAW?$AAa?$AAv?$AAe?$AAO?$AAu?$AAt?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?$AA@
  000ce	68 00 00 00 00	 push	 OFFSET ??_C@_1BE@DAMFNGFL@?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?$AA@
  000d3	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__WritePrivateProfileStringW@16

; 2048 : 
; 2049 :         _sntprintf(temp, sizeof(temp), _T("%u"), timeShift->recHeight);

  000d9	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000de	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000e3	8b 40 20	 mov	 eax, DWORD PTR [eax+32]
  000e6	50		 push	 eax
  000e7	68 00 00 00 00	 push	 OFFSET ??_C@_15EFLNJKHH@?$AA?$CF?$AAu?$AA?$AA@
  000ec	6a 40		 push	 64			; 00000040H
  000ee	8d 4d b8	 lea	 ecx, DWORD PTR _temp$[ebp]
  000f1	51		 push	 ecx
  000f2	e8 00 00 00 00	 call	 __snwprintf
  000f7	83 c4 10	 add	 esp, 16			; 00000010H

; 2050 :         WritePrivateProfileString(_T("TimeShift"), _T("RecHeight"), temp, GetIniFileForSettings());

  000fa	e8 00 00 00 00	 call	 ?GetIniFileForSettings@@YAPB_WXZ ; GetIniFileForSettings
  000ff	50		 push	 eax
  00100	8d 55 b8	 lea	 edx, DWORD PTR _temp$[ebp]
  00103	52		 push	 edx
  00104	68 00 00 00 00	 push	 OFFSET ??_C@_1BE@MJFFEHDE@?$AAR?$AAe?$AAc?$AAH?$AAe?$AAi?$AAg?$AAh?$AAt?$AA?$AA@
  00109	68 00 00 00 00	 push	 OFFSET ??_C@_1BE@DAMFNGFL@?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?$AA@
  0010e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__WritePrivateProfileStringW@16

; 2051 : 
; 2052 :         _sntprintf(temp, sizeof(temp), _T("%u"), timeShift->format);

  00114	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00119	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0011e	8b 40 1c	 mov	 eax, DWORD PTR [eax+28]
  00121	50		 push	 eax
  00122	68 00 00 00 00	 push	 OFFSET ??_C@_15EFLNJKHH@?$AA?$CF?$AAu?$AA?$AA@
  00127	6a 40		 push	 64			; 00000040H
  00129	8d 4d b8	 lea	 ecx, DWORD PTR _temp$[ebp]
  0012c	51		 push	 ecx
  0012d	e8 00 00 00 00	 call	 __snwprintf
  00132	83 c4 10	 add	 esp, 16			; 00000010H

; 2053 :         WritePrivateProfileString(_T("TimeShift"), _T("RecFormat"), temp, GetIniFileForSettings());

  00135	e8 00 00 00 00	 call	 ?GetIniFileForSettings@@YAPB_WXZ ; GetIniFileForSettings
  0013a	50		 push	 eax
  0013b	8d 55 b8	 lea	 edx, DWORD PTR _temp$[ebp]
  0013e	52		 push	 edx
  0013f	68 00 00 00 00	 push	 OFFSET ??_C@_1BE@IBHIMNMK@?$AAR?$AAe?$AAc?$AAF?$AAo?$AAr?$AAm?$AAa?$AAt?$AA?$AA@
  00144	68 00 00 00 00	 push	 OFFSET ??_C@_1BE@DAMFNGFL@?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?$AA@
  00149	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__WritePrivateProfileStringW@16

; 2054 : 
; 2055 :         WritePrivateProfileStruct(_T("TimeShift"), _T("VideoFCC"),
; 2056 :                                   &timeShift->fccHandler, sizeof(FOURCC),
; 2057 :                                   GetIniFileForSettings());

  0014f	e8 00 00 00 00	 call	 ?GetIniFileForSettings@@YAPB_WXZ ; GetIniFileForSettings
  00154	50		 push	 eax
  00155	6a 04		 push	 4
  00157	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0015c	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00161	83 c0 24	 add	 eax, 36			; 00000024H
  00164	50		 push	 eax
  00165	68 00 00 00 00	 push	 OFFSET ??_C@_1BC@MHPCDLK@?$AAV?$AAi?$AAd?$AAe?$AAo?$AAF?$AAC?$AAC?$AA?$AA@
  0016a	68 00 00 00 00	 push	 OFFSET ??_C@_1BE@DAMFNGFL@?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?$AA@
  0016f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__WritePrivateProfileStructW@20

; 2058 : 
; 2059 :         result = TRUE;

  00175	c7 45 b4 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1
$LN1@TimeShiftW:

; 2060 :     }
; 2061 : 
; 2062 :     return result;

  0017c	8b 45 b4	 mov	 eax, DWORD PTR _result$[ebp]

; 2063 : }

  0017f	8b 4d fc	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  00182	33 cd		 xor	 ecx, ebp
  00184	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00189	8b e5		 mov	 esp, ebp
  0018b	5d		 pop	 ebp
  0018c	c3		 ret	 0
?TimeShiftWriteToINI@@YAHXZ ENDP			; TimeShiftWriteToINI
PUBLIC	??0TIME_SHIFT@@QAE@PAUHWND__@@@Z		; TIME_SHIFT::TIME_SHIFT
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0TIME_SHIFT@@QAE@PAUHWND__@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0TIME_SHIFT@@QAE@PAUHWND__@@@Z$0
__ehfuncinfo$??0TIME_SHIFT@@QAE@PAUHWND__@@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0TIME_SHIFT@@QAE@PAUHWND__@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??0TIME_SHIFT@@QAE@PAUHWND__@@@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_hWndIn$ = 8						; size = 4
??0TIME_SHIFT@@QAE@PAUHWND__@@@Z PROC			; TIME_SHIFT::TIME_SHIFT, COMDAT
; _this$ = ecx

; 853  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??0TIME_SHIFT@@QAE@PAUHWND__@@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00017	33 c5		 xor	 eax, ebp
  00019	50		 push	 eax
  0001a	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001d	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00023	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx
  00026	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00029	c7 40 18 00 00
	00 00		 mov	 DWORD PTR [eax+24], 0
  00030	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00033	c7 41 1c 00 00
	00 00		 mov	 DWORD PTR [ecx+28], 0
  0003a	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  0003d	c7 42 20 01 00
	00 00		 mov	 DWORD PTR [edx+32], 1
  00044	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00047	c7 40 24 00 00
	00 00		 mov	 DWORD PTR [eax+36], 0
  0004e	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00051	83 c1 28	 add	 ecx, 40			; 00000028H
  00054	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00059	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00060	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00063	8b 55 08	 mov	 edx, DWORD PTR _hWndIn$[ebp]
  00066	89 51 4c	 mov	 DWORD PTR [ecx+76], edx
  00069	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  0006c	c7 80 0c 01 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+268], 0
  00076	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00079	c7 81 10 01 00
	00 00 00 00 00	 mov	 DWORD PTR [ecx+272], 0
  00083	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00086	c7 82 14 01 00
	00 00 00 00 00	 mov	 DWORD PTR [edx+276], 0

; 854  :     memset(&bih, 0, sizeof(BITMAPINFOHEADER));

  00090	6a 28		 push	 40			; 00000028H
  00092	6a 00		 push	 0
  00094	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00097	05 d0 00 00 00	 add	 eax, 208		; 000000d0H
  0009c	50		 push	 eax
  0009d	e8 00 00 00 00	 call	 _memset
  000a2	83 c4 0c	 add	 esp, 12			; 0000000cH

; 855  :     memset(&waveFormat, 0, sizeof(WAVEFORMATEX));

  000a5	6a 12		 push	 18			; 00000012H
  000a7	6a 00		 push	 0
  000a9	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  000ac	81 c1 f8 00 00
	00		 add	 ecx, 248		; 000000f8H
  000b2	51		 push	 ecx
  000b3	e8 00 00 00 00	 call	 _memset
  000b8	83 c4 0c	 add	 esp, 12			; 0000000cH

; 856  :     buffer.record = 0;

  000bb	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  000be	c7 42 48 00 00
	00 00		 mov	 DWORD PTR [edx+72], 0

; 857  : 
; 858  :     waveFormat.wFormatTag      = WAVE_FORMAT_PCM;

  000c5	b8 01 00 00 00	 mov	 eax, 1
  000ca	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  000cd	66 89 81 f8 00
	00 00		 mov	 WORD PTR [ecx+248], ax

; 859  :     waveFormat.nChannels       = 2;

  000d4	ba 02 00 00 00	 mov	 edx, 2
  000d9	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  000dc	66 89 90 fa 00
	00 00		 mov	 WORD PTR [eax+250], dx

; 860  :     waveFormat.nSamplesPerSec  = 48000;

  000e3	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  000e6	c7 81 fc 00 00
	00 80 bb 00 00	 mov	 DWORD PTR [ecx+252], 48000 ; 0000bb80H

; 861  :     waveFormat.wBitsPerSample  = 16;

  000f0	ba 10 00 00 00	 mov	 edx, 16			; 00000010H
  000f5	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  000f8	66 89 90 06 01
	00 00		 mov	 WORD PTR [eax+262], dx

; 862  :     waveFormat.nBlockAlign     = (waveFormat.nChannels * waveFormat.wBitsPerSample) / 8;

  000ff	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00102	0f b7 81 fa 00
	00 00		 movzx	 eax, WORD PTR [ecx+250]
  00109	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  0010c	0f b7 8a 06 01
	00 00		 movzx	 ecx, WORD PTR [edx+262]
  00113	0f af c1	 imul	 eax, ecx
  00116	99		 cdq
  00117	83 e2 07	 and	 edx, 7
  0011a	03 c2		 add	 eax, edx
  0011c	c1 f8 03	 sar	 eax, 3
  0011f	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00122	66 89 82 04 01
	00 00		 mov	 WORD PTR [edx+260], ax

; 863  :     waveFormat.nAvgBytesPerSec = waveFormat.nSamplesPerSec * waveFormat.nBlockAlign;

  00129	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  0012c	0f b7 88 04 01
	00 00		 movzx	 ecx, WORD PTR [eax+260]
  00133	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00136	0f af 8a fc 00
	00 00		 imul	 ecx, DWORD PTR [edx+252]
  0013d	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00140	89 88 00 01 00
	00		 mov	 DWORD PTR [eax+256], ecx

; 864  :     sizeLimit = 0;

  00146	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00149	c7 41 44 00 00
	00 00		 mov	 DWORD PTR [ecx+68], 0

; 865  :     InitializeCriticalSection(&lock);

  00150	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00153	52		 push	 edx
  00154	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__InitializeCriticalSection@4

; 866  : }

  0015a	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00161	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00164	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00167	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0016e	59		 pop	 ecx
  0016f	8b e5		 mov	 esp, ebp
  00171	5d		 pop	 ebp
  00172	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0TIME_SHIFT@@QAE@PAUHWND__@@@Z$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	83 c1 28	 add	 ecx, 40			; 00000028H
  00006	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__ehhandler$??0TIME_SHIFT@@QAE@PAUHWND__@@@Z:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  00015	33 c8		 xor	 ecx, eax
  00017	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??0TIME_SHIFT@@QAE@PAUHWND__@@@Z
  00021	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??0TIME_SHIFT@@QAE@PAUHWND__@@@Z ENDP			; TIME_SHIFT::TIME_SHIFT
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\xstring
;	COMDAT ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
__Ptr$ = 8						; size = 4
??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z PROC ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator=, COMDAT
; _this$ = ecx

; 920  : 		{	// assign [_Ptr, <null>)

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

; 921  : 		return (assign(_Ptr));

  00007	8b 45 08	 mov	 eax, DWORD PTR __Ptr$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000e	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

; 922  : 		}

  00013	8b e5		 mov	 esp, ebp
  00015	5d		 pop	 ebp
  00016	c2 04 00	 ret	 4
??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z ENDP ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator=
PUBLIC	?TimeShiftVerifySavingPath@@YAHXZ		; TimeShiftVerifySavingPath
;	COMDAT xdata$x
; File c:\develop\dscaler423a\dscaler\timeshift.cpp
xdata$x	SEGMENT
__unwindtable$?TimeShiftVerifySavingPath@@YAHXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?TimeShiftVerifySavingPath@@YAHXZ$0
__ehfuncinfo$?TimeShiftVerifySavingPath@@YAHXZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?TimeShiftVerifySavingPath@@YAHXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?TimeShiftVerifySavingPath@@YAHXZ
_TEXT	SEGMENT
tv130 = -56						; size = 4
tv131 = -52						; size = 4
$T331972 = -48						; size = 28
_result$ = -20						; size = 4
_attr$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
?TimeShiftVerifySavingPath@@YAHXZ PROC			; TimeShiftVerifySavingPath, COMDAT

; 1510 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?TimeShiftVerifySavingPath@@YAHXZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 2c	 sub	 esp, 44			; 0000002cH
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax

; 1511 :     BOOL  result;
; 1512 :     DWORD attr;
; 1513 : 
; 1514 :     result = TRUE;

  00025	c7 45 ec 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1

; 1515 : 
; 1516 :     /* Check the file attributes first. Make sure the path exists. */
; 1517 :     attr = GetFileAttributes(timeShift->savingPath.c_str());

  0002c	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00031	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00036	83 c0 28	 add	 eax, 40			; 00000028H
  00039	8b c8		 mov	 ecx, eax
  0003b	e8 00 00 00 00	 call	 ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str
  00040	50		 push	 eax
  00041	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetFileAttributesW@4
  00047	89 45 f0	 mov	 DWORD PTR _attr$[ebp], eax

; 1518 :     if (attr != INVALID_FILE_ATTRIBUTES)

  0004a	83 7d f0 ff	 cmp	 DWORD PTR _attr$[ebp], -1
  0004e	0f 84 92 00 00
	00		 je	 $LN5@TimeShiftV

; 1519 :     {
; 1520 :         if (!(attr & FILE_ATTRIBUTE_DIRECTORY))

  00054	8b 45 f0	 mov	 eax, DWORD PTR _attr$[ebp]
  00057	83 e0 10	 and	 eax, 16			; 00000010H
  0005a	0f 85 84 00 00
	00		 jne	 $LN4@TimeShiftV

; 1521 :         {
; 1522 :             /* Might be a file. Try removing everything after the last back
; 1523 :                slash in the path. */
; 1524 :             timeShift->savingPath = StripFile(timeShift->savingPath);

  00060	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00065	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0006a	83 c0 28	 add	 eax, 40			; 00000028H
  0006d	50		 push	 eax
  0006e	8d 4d d0	 lea	 ecx, DWORD PTR $T331972[ebp]
  00071	51		 push	 ecx
  00072	e8 00 00 00 00	 call	 ?StripFile@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV12@@Z ; StripFile
  00077	83 c4 08	 add	 esp, 8
  0007a	89 45 cc	 mov	 DWORD PTR tv131[ebp], eax
  0007d	8b 55 cc	 mov	 edx, DWORD PTR tv131[ebp]
  00080	89 55 c8	 mov	 DWORD PTR tv130[ebp], edx
  00083	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0008a	8b 45 c8	 mov	 eax, DWORD PTR tv130[ebp]
  0008d	50		 push	 eax
  0008e	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00093	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00098	83 c0 28	 add	 eax, 40			; 00000028H
  0009b	8b c8		 mov	 ecx, eax
  0009d	e8 00 00 00 00	 call	 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=
  000a2	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  000a9	8d 4d d0	 lea	 ecx, DWORD PTR $T331972[ebp]
  000ac	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> >

; 1525 : 
; 1526 :             attr = GetFileAttributes(timeShift->savingPath.c_str());

  000b1	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000b6	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000bb	83 c0 28	 add	 eax, 40			; 00000028H
  000be	8b c8		 mov	 ecx, eax
  000c0	e8 00 00 00 00	 call	 ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str
  000c5	50		 push	 eax
  000c6	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetFileAttributesW@4
  000cc	89 45 f0	 mov	 DWORD PTR _attr$[ebp], eax

; 1527 :             if (attr==INVALID_FILE_ATTRIBUTES ||!(attr & FILE_ATTRIBUTE_DIRECTORY))

  000cf	83 7d f0 ff	 cmp	 DWORD PTR _attr$[ebp], -1
  000d3	74 08		 je	 SHORT $LN2@TimeShiftV
  000d5	8b 4d f0	 mov	 ecx, DWORD PTR _attr$[ebp]
  000d8	83 e1 10	 and	 ecx, 16			; 00000010H
  000db	75 07		 jne	 SHORT $LN4@TimeShiftV
$LN2@TimeShiftV:

; 1528 :             {
; 1529 :                 result = FALSE;

  000dd	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0
$LN4@TimeShiftV:

; 1530 :             }
; 1531 :         }
; 1532 :     }
; 1533 :     else

  000e4	eb 07		 jmp	 SHORT $LN1@TimeShiftV
$LN5@TimeShiftV:

; 1534 :     {
; 1535 :         result = FALSE;

  000e6	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0
$LN1@TimeShiftV:

; 1536 :     }
; 1537 : 
; 1538 :     return result;

  000ed	8b 45 ec	 mov	 eax, DWORD PTR _result$[ebp]

; 1539 : }

  000f0	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  000f3	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000fa	59		 pop	 ecx
  000fb	8b e5		 mov	 esp, ebp
  000fd	5d		 pop	 ebp
  000fe	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?TimeShiftVerifySavingPath@@YAHXZ$0:
  00000	8d 4d d0	 lea	 ecx, DWORD PTR $T331972[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__ehhandler$?TimeShiftVerifySavingPath@@YAHXZ:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a d0	 mov	 ecx, DWORD PTR [edx-48]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?TimeShiftVerifySavingPath@@YAHXZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?TimeShiftVerifySavingPath@@YAHXZ ENDP			; TimeShiftVerifySavingPath
PUBLIC	?TimeShiftWriteVideo@@YAHPAUTDeinterlaceInfo@@@Z ; TimeShiftWriteVideo
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftWriteVideo@@YAHPAUTDeinterlaceInfo@@@Z
_TEXT	SEGMENT
tv220 = -56						; size = 4
tv186 = -52						; size = 4
_frameTime$ = -48					; size = 8
_result$ = -40						; size = 4
_more$ = -36						; size = 4
_offset$ = -32						; size = 4
_scanLine$ = -28					; size = 8
_dest$ = -20						; size = 4
_pitch$ = -16						; size = 4
_y$ = -12						; size = 4
_h$ = -8						; size = 4
_w$ = -4						; size = 4
_pInfo$ = 8						; size = 4
?TimeShiftWriteVideo@@YAHPAUTDeinterlaceInfo@@@Z PROC	; TimeShiftWriteVideo, COMDAT

; 1152 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 38	 sub	 esp, 56			; 00000038H
  00006	56		 push	 esi

; 1153 :     aviTime_t frameTime;
; 1154 :     LPBYTE    dest;
; 1155 :     DWORD     w, h;
; 1156 :     DWORD     more;
; 1157 :     DWORD     y;
; 1158 :     long      pitch;
; 1159 :     int       offset;
; 1160 :     BYTE      *scanLine[2];
; 1161 :     BOOL      result = TRUE;

  00007	c7 45 d8 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1

; 1162 : 
; 1163 :     if (!timeShift.IsValid() || !timeShift->file || !pInfo->PictureHistory[0])

  0000e	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00013	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  00018	85 c0		 test	 eax, eax
  0001a	74 1c		 je	 SHORT $LN31@TimeShiftW@2
  0001c	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00021	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00026	83 b8 14 01 00
	00 00		 cmp	 DWORD PTR [eax+276], 0
  0002d	74 09		 je	 SHORT $LN31@TimeShiftW@2
  0002f	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  00032	83 78 04 00	 cmp	 DWORD PTR [eax+4], 0
  00036	75 07		 jne	 SHORT $LN32@TimeShiftW@2
$LN31@TimeShiftW@2:

; 1164 :        return FALSE;

  00038	33 c0		 xor	 eax, eax
  0003a	e9 27 04 00 00	 jmp	 $LN33@TimeShiftW@2
$LN32@TimeShiftW@2:

; 1165 : 
; 1166 :     if ((timeShift->recHeight==TS_HALFHEIGHTEVEN &&
; 1167 :          (pInfo->PictureHistory[0]->Flags & PICTURE_INTERLACED_EVEN)) ||
; 1168 :         (timeShift->recHeight==TS_HALFHEIGHTODD &&
; 1169 :          (pInfo->PictureHistory[0]->Flags & PICTURE_INTERLACED_ODD)) ||
; 1170 :         (timeShift->recHeight==TS_HALFHEIGHTAVG &&
; 1171 :          pInfo->PictureHistory[1] &&
; 1172 :          (pInfo->PictureHistory[0]->Flags & PICTURE_INTERLACED_EVEN)) ||
; 1173 :         (timeShift->recHeight==TS_FULLHEIGHT &&
; 1174 :          pInfo->PictureHistory[1] &&
; 1175 :          (pInfo->PictureHistory[0]->Flags & PICTURE_INTERLACED_ODD)))

  0003f	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00044	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00049	83 78 20 01	 cmp	 DWORD PTR [eax+32], 1
  0004d	75 0e		 jne	 SHORT $LN28@TimeShiftW@2
  0004f	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  00052	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  00055	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00058	83 e0 02	 and	 eax, 2
  0005b	75 78		 jne	 SHORT $LN29@TimeShiftW@2
$LN28@TimeShiftW@2:
  0005d	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00062	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00067	83 78 20 02	 cmp	 DWORD PTR [eax+32], 2
  0006b	75 0e		 jne	 SHORT $LN27@TimeShiftW@2
  0006d	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  00070	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  00073	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00076	83 e0 01	 and	 eax, 1
  00079	75 5a		 jne	 SHORT $LN29@TimeShiftW@2
$LN27@TimeShiftW@2:
  0007b	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00080	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00085	83 78 20 03	 cmp	 DWORD PTR [eax+32], 3
  00089	75 17		 jne	 SHORT $LN26@TimeShiftW@2
  0008b	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  0008e	83 79 08 00	 cmp	 DWORD PTR [ecx+8], 0
  00092	74 0e		 je	 SHORT $LN26@TimeShiftW@2
  00094	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  00097	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  0009a	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  0009d	83 e1 02	 and	 ecx, 2
  000a0	75 33		 jne	 SHORT $LN29@TimeShiftW@2
$LN26@TimeShiftW@2:
  000a2	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000a7	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000ac	83 78 20 00	 cmp	 DWORD PTR [eax+32], 0
  000b0	0f 85 ad 03 00
	00		 jne	 $LN30@TimeShiftW@2
  000b6	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  000b9	83 7a 08 00	 cmp	 DWORD PTR [edx+8], 0
  000bd	0f 84 a0 03 00
	00		 je	 $LN30@TimeShiftW@2
  000c3	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  000c6	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  000c9	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  000cc	83 e2 01	 and	 edx, 1
  000cf	0f 84 8e 03 00
	00		 je	 $LN30@TimeShiftW@2
$LN29@TimeShiftW@2:

; 1176 :     {
; 1177 :         if (aviFrameReady(timeShift->file))

  000d5	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000da	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000df	8b 80 14 01 00
	00		 mov	 eax, DWORD PTR [eax+276]
  000e5	50		 push	 eax
  000e6	e8 00 00 00 00	 call	 _aviFrameReady
  000eb	83 c4 04	 add	 esp, 4
  000ee	85 c0		 test	 eax, eax
  000f0	0f 84 6d 03 00
	00		 je	 $LN30@TimeShiftW@2

; 1178 :         {
; 1179 :             frameTime = aviGetTimer();

  000f6	e8 00 00 00 00	 call	 _aviGetTimer
  000fb	89 45 d0	 mov	 DWORD PTR _frameTime$[ebp], eax
  000fe	89 55 d4	 mov	 DWORD PTR _frameTime$[ebp+4], edx

; 1180 :             dest      = timeShift->buffer.record;

  00101	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00106	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0010b	8b 48 48	 mov	 ecx, DWORD PTR [eax+72]
  0010e	89 4d ec	 mov	 DWORD PTR _dest$[ebp], ecx

; 1181 :             w         = (pInfo->FrameWidth >> 2) << 2;

  00111	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  00114	8b 42 4c	 mov	 eax, DWORD PTR [edx+76]
  00117	c1 f8 02	 sar	 eax, 2
  0011a	c1 e0 02	 shl	 eax, 2
  0011d	89 45 fc	 mov	 DWORD PTR _w$[ebp], eax

; 1182 : 
; 1183 :             if (timeShift->bih.biWidth < w)

  00120	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00125	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0012a	8b 88 d4 00 00
	00		 mov	 ecx, DWORD PTR [eax+212]
  00130	3b 4d fc	 cmp	 ecx, DWORD PTR _w$[ebp]
  00133	73 13		 jae	 SHORT $LN24@TimeShiftW@2

; 1184 :                w = timeShift->bih.biWidth;

  00135	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0013a	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0013f	8b 90 d4 00 00
	00		 mov	 edx, DWORD PTR [eax+212]
  00145	89 55 fc	 mov	 DWORD PTR _w$[ebp], edx
$LN24@TimeShiftW@2:

; 1185 : 
; 1186 :             if (timeShift->recHeight != TS_FULLHEIGHT)

  00148	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0014d	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00152	83 78 20 00	 cmp	 DWORD PTR [eax+32], 0
  00156	74 3e		 je	 SHORT $LN23@TimeShiftW@2

; 1187 :                h = min(timeShift->bih.biHeight, pInfo->FieldHeight);

  00158	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0015d	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00162	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  00165	8b 90 d8 00 00
	00		 mov	 edx, DWORD PTR [eax+216]
  0016b	3b 51 54	 cmp	 edx, DWORD PTR [ecx+84]
  0016e	7d 15		 jge	 SHORT $LN35@TimeShiftW@2
  00170	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00175	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0017a	8b 80 d8 00 00
	00		 mov	 eax, DWORD PTR [eax+216]
  00180	89 45 cc	 mov	 DWORD PTR tv186[ebp], eax
  00183	eb 09		 jmp	 SHORT $LN36@TimeShiftW@2
$LN35@TimeShiftW@2:
  00185	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  00188	8b 51 54	 mov	 edx, DWORD PTR [ecx+84]
  0018b	89 55 cc	 mov	 DWORD PTR tv186[ebp], edx
$LN36@TimeShiftW@2:
  0018e	8b 45 cc	 mov	 eax, DWORD PTR tv186[ebp]
  00191	89 45 f8	 mov	 DWORD PTR _h$[ebp], eax

; 1188 :                else

  00194	eb 13		 jmp	 SHORT $LN22@TimeShiftW@2
$LN23@TimeShiftW@2:

; 1189 :                h = timeShift->bih.biHeight; /* Use the actual height of the frame */

  00196	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0019b	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  001a0	8b 88 d8 00 00
	00		 mov	 ecx, DWORD PTR [eax+216]
  001a6	89 4d f8	 mov	 DWORD PTR _h$[ebp], ecx
$LN22@TimeShiftW@2:

; 1190 : 
; 1191 :             more = (timeShift->bih.biBitCount >> 3) *
; 1192 :                    (timeShift->bih.biWidth - w);

  001a9	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  001ae	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  001b3	0f b7 b0 de 00
	00 00		 movzx	 esi, WORD PTR [eax+222]
  001ba	c1 fe 03	 sar	 esi, 3
  001bd	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  001c2	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  001c7	8b 90 d4 00 00
	00		 mov	 edx, DWORD PTR [eax+212]
  001cd	2b 55 fc	 sub	 edx, DWORD PTR _w$[ebp]
  001d0	0f af f2	 imul	 esi, edx
  001d3	89 75 dc	 mov	 DWORD PTR _more$[ebp], esi

; 1193 : 
; 1194 :             /* YUY2 scans from top to bottom. RGB is the opposite. */
; 1195 :             if (timeShift->format==FORMAT_YUY2)

  001d6	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  001db	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  001e0	83 78 1c 00	 cmp	 DWORD PTR [eax+28], 0
  001e4	75 15		 jne	 SHORT $LN21@TimeShiftW@2

; 1196 :             {
; 1197 :                 y     = 0;

  001e6	c7 45 f4 00 00
	00 00		 mov	 DWORD PTR _y$[ebp], 0

; 1198 :                 pitch = pInfo->InputPitch;

  001ed	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  001f0	8b 88 84 00 00
	00		 mov	 ecx, DWORD PTR [eax+132]
  001f6	89 4d f0	 mov	 DWORD PTR _pitch$[ebp], ecx

; 1199 :             } else

  001f9	eb 34		 jmp	 SHORT $LN20@TimeShiftW@2
$LN21@TimeShiftW@2:

; 1200 :             {
; 1201 :                 if (timeShift->recHeight != TS_FULLHEIGHT)

  001fb	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00200	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00205	83 78 20 00	 cmp	 DWORD PTR [eax+32], 0
  00209	74 0b		 je	 SHORT $LN19@TimeShiftW@2

; 1202 :                    y = h - 1;

  0020b	8b 55 f8	 mov	 edx, DWORD PTR _h$[ebp]
  0020e	83 ea 01	 sub	 edx, 1
  00211	89 55 f4	 mov	 DWORD PTR _y$[ebp], edx

; 1203 :                    else

  00214	eb 0b		 jmp	 SHORT $LN18@TimeShiftW@2
$LN19@TimeShiftW@2:

; 1204 :                    y = (h >> 1) - 1;

  00216	8b 45 f8	 mov	 eax, DWORD PTR _h$[ebp]
  00219	d1 e8		 shr	 eax, 1
  0021b	83 e8 01	 sub	 eax, 1
  0021e	89 45 f4	 mov	 DWORD PTR _y$[ebp], eax
$LN18@TimeShiftW@2:

; 1205 : 
; 1206 :                 pitch = -pInfo->InputPitch;

  00221	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  00224	8b 91 84 00 00
	00		 mov	 edx, DWORD PTR [ecx+132]
  0022a	f7 da		 neg	 edx
  0022c	89 55 f0	 mov	 DWORD PTR _pitch$[ebp], edx
$LN20@TimeShiftW@2:

; 1207 :             }
; 1208 : 
; 1209 :             switch (timeShift->recHeight)

  0022f	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00234	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00239	8b 40 20	 mov	 eax, DWORD PTR [eax+32]
  0023c	89 45 c8	 mov	 DWORD PTR tv220[ebp], eax
  0023f	83 7d c8 03	 cmp	 DWORD PTR tv220[ebp], 3
  00243	0f 87 e0 01 00
	00		 ja	 $LN16@TimeShiftW@2
  00249	8b 4d c8	 mov	 ecx, DWORD PTR tv220[ebp]
  0024c	ff 24 8d 00 00
	00 00		 jmp	 DWORD PTR $LN37@TimeShiftW@2[ecx*4]
$LN15@TimeShiftW@2:

; 1210 :             {
; 1211 :                 case TS_HALFHEIGHTAVG:
; 1212 :                     scanLine[0] = pInfo->PictureHistory[0]->pData + y *
; 1213 :                                   pInfo->InputPitch;

  00253	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  00256	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00259	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  0025c	8b 55 f4	 mov	 edx, DWORD PTR _y$[ebp]
  0025f	0f af 91 84 00
	00 00		 imul	 edx, DWORD PTR [ecx+132]
  00266	03 10		 add	 edx, DWORD PTR [eax]
  00268	89 55 e4	 mov	 DWORD PTR _scanLine$[ebp], edx

; 1214 :                     scanLine[1] = pInfo->PictureHistory[1]->pData + y *
; 1215 :                                   pInfo->InputPitch;

  0026b	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  0026e	8b 48 08	 mov	 ecx, DWORD PTR [eax+8]
  00271	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  00274	8b 45 f4	 mov	 eax, DWORD PTR _y$[ebp]
  00277	0f af 82 84 00
	00 00		 imul	 eax, DWORD PTR [edx+132]
  0027e	03 01		 add	 eax, DWORD PTR [ecx]
  00280	89 45 e8	 mov	 DWORD PTR _scanLine$[ebp+4], eax

; 1216 : 
; 1217 :                     for (y = 0; y < h; y++)

  00283	c7 45 f4 00 00
	00 00		 mov	 DWORD PTR _y$[ebp], 0
  0028a	eb 09		 jmp	 SHORT $LN14@TimeShiftW@2
$LN13@TimeShiftW@2:
  0028c	8b 4d f4	 mov	 ecx, DWORD PTR _y$[ebp]
  0028f	83 c1 01	 add	 ecx, 1
  00292	89 4d f4	 mov	 DWORD PTR _y$[ebp], ecx
$LN14@TimeShiftW@2:
  00295	8b 55 f4	 mov	 edx, DWORD PTR _y$[ebp]
  00298	3b 55 f8	 cmp	 edx, DWORD PTR _h$[ebp]
  0029b	73 3f		 jae	 SHORT $LN12@TimeShiftW@2

; 1218 :                     {
; 1219 :                         dest = timeShift->lpbAvgScanline(dest,
; 1220 :                                                          scanLine[0],
; 1221 :                                                          scanLine[1],
; 1222 :                                                          w) + more;

  0029d	8b 45 fc	 mov	 eax, DWORD PTR _w$[ebp]
  002a0	50		 push	 eax
  002a1	8b 4d e8	 mov	 ecx, DWORD PTR _scanLine$[ebp+4]
  002a4	51		 push	 ecx
  002a5	8b 55 e4	 mov	 edx, DWORD PTR _scanLine$[ebp]
  002a8	52		 push	 edx
  002a9	8b 45 ec	 mov	 eax, DWORD PTR _dest$[ebp]
  002ac	50		 push	 eax
  002ad	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  002b2	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  002b7	8b 88 10 01 00
	00		 mov	 ecx, DWORD PTR [eax+272]
  002bd	ff d1		 call	 ecx
  002bf	83 c4 10	 add	 esp, 16			; 00000010H
  002c2	03 45 dc	 add	 eax, DWORD PTR _more$[ebp]
  002c5	89 45 ec	 mov	 DWORD PTR _dest$[ebp], eax

; 1223 : 
; 1224 :                         scanLine[0] += pitch;

  002c8	8b 55 e4	 mov	 edx, DWORD PTR _scanLine$[ebp]
  002cb	03 55 f0	 add	 edx, DWORD PTR _pitch$[ebp]
  002ce	89 55 e4	 mov	 DWORD PTR _scanLine$[ebp], edx

; 1225 :                         scanLine[1] += pitch;

  002d1	8b 45 e8	 mov	 eax, DWORD PTR _scanLine$[ebp+4]
  002d4	03 45 f0	 add	 eax, DWORD PTR _pitch$[ebp]
  002d7	89 45 e8	 mov	 DWORD PTR _scanLine$[ebp+4], eax

; 1226 :                     }

  002da	eb b0		 jmp	 SHORT $LN13@TimeShiftW@2
$LN12@TimeShiftW@2:

; 1227 :                 break;

  002dc	e9 48 01 00 00	 jmp	 $LN16@TimeShiftW@2
$LN11@TimeShiftW@2:

; 1228 : 
; 1229 :                 case TS_HALFHEIGHTEVEN:
; 1230 :                 case TS_HALFHEIGHTODD:
; 1231 :                     scanLine[0] = pInfo->PictureHistory[0]->pData + y *
; 1232 :                                   pInfo->InputPitch;

  002e1	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  002e4	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  002e7	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  002ea	8b 4d f4	 mov	 ecx, DWORD PTR _y$[ebp]
  002ed	0f af 88 84 00
	00 00		 imul	 ecx, DWORD PTR [eax+132]
  002f4	03 0a		 add	 ecx, DWORD PTR [edx]
  002f6	89 4d e4	 mov	 DWORD PTR _scanLine$[ebp], ecx

; 1233 : 
; 1234 :                     for (y = 0; y < h; y++)

  002f9	c7 45 f4 00 00
	00 00		 mov	 DWORD PTR _y$[ebp], 0
  00300	eb 09		 jmp	 SHORT $LN10@TimeShiftW@2
$LN9@TimeShiftW@2:
  00302	8b 55 f4	 mov	 edx, DWORD PTR _y$[ebp]
  00305	83 c2 01	 add	 edx, 1
  00308	89 55 f4	 mov	 DWORD PTR _y$[ebp], edx
$LN10@TimeShiftW@2:
  0030b	8b 45 f4	 mov	 eax, DWORD PTR _y$[ebp]
  0030e	3b 45 f8	 cmp	 eax, DWORD PTR _h$[ebp]
  00311	73 32		 jae	 SHORT $LN8@TimeShiftW@2

; 1235 :                     {
; 1236 :                         dest = timeShift->lpbCopyScanline(dest,
; 1237 :                                                           scanLine[0],
; 1238 :                                                           w) + more;

  00313	8b 4d fc	 mov	 ecx, DWORD PTR _w$[ebp]
  00316	51		 push	 ecx
  00317	8b 55 e4	 mov	 edx, DWORD PTR _scanLine$[ebp]
  0031a	52		 push	 edx
  0031b	8b 45 ec	 mov	 eax, DWORD PTR _dest$[ebp]
  0031e	50		 push	 eax
  0031f	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00324	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00329	8b 88 0c 01 00
	00		 mov	 ecx, DWORD PTR [eax+268]
  0032f	ff d1		 call	 ecx
  00331	83 c4 0c	 add	 esp, 12			; 0000000cH
  00334	03 45 dc	 add	 eax, DWORD PTR _more$[ebp]
  00337	89 45 ec	 mov	 DWORD PTR _dest$[ebp], eax

; 1239 : 
; 1240 :                         scanLine[0] += pitch;

  0033a	8b 55 e4	 mov	 edx, DWORD PTR _scanLine$[ebp]
  0033d	03 55 f0	 add	 edx, DWORD PTR _pitch$[ebp]
  00340	89 55 e4	 mov	 DWORD PTR _scanLine$[ebp], edx

; 1241 :                     }

  00343	eb bd		 jmp	 SHORT $LN9@TimeShiftW@2
$LN8@TimeShiftW@2:

; 1242 :                 break;

  00345	e9 df 00 00 00	 jmp	 $LN16@TimeShiftW@2
$LN7@TimeShiftW@2:

; 1243 : 
; 1244 :                 case TS_FULLHEIGHT:
; 1245 :                     /* If the recording format is RGB, then the first scanline
; 1246 :                        in the recording buffer that will be written to is at
; 1247 :                        y = h - 1. If h - 1 is an odd value, then the offset
; 1248 :                        needs to be set so that the first scanline that's saved
; 1249 :                        is the odd one instead of the even one so that the order
; 1250 :                        of the scanlines in the frame is correct. */
; 1251 :                     if (timeShift->format==FORMAT_RGB && ((h - 1) % 2))

  0034a	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0034f	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00354	83 78 1c 01	 cmp	 DWORD PTR [eax+28], 1
  00358	75 1c		 jne	 SHORT $LN6@TimeShiftW@2
  0035a	8b 45 f8	 mov	 eax, DWORD PTR _h$[ebp]
  0035d	83 e8 01	 sub	 eax, 1
  00360	33 d2		 xor	 edx, edx
  00362	b9 02 00 00 00	 mov	 ecx, 2
  00367	f7 f1		 div	 ecx
  00369	85 d2		 test	 edx, edx
  0036b	74 09		 je	 SHORT $LN6@TimeShiftW@2

; 1252 :                        offset = 1;

  0036d	c7 45 e0 01 00
	00 00		 mov	 DWORD PTR _offset$[ebp], 1

; 1253 :                        else

  00374	eb 07		 jmp	 SHORT $LN5@TimeShiftW@2
$LN6@TimeShiftW@2:

; 1254 :                        offset = 0;

  00376	c7 45 e0 00 00
	00 00		 mov	 DWORD PTR _offset$[ebp], 0
$LN5@TimeShiftW@2:

; 1255 : 
; 1256 :                     /* Even */
; 1257 :                     scanLine[0] = pInfo->PictureHistory[1]->pData + y *
; 1258 :                                   pInfo->InputPitch;

  0037d	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  00380	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  00383	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  00386	8b 55 f4	 mov	 edx, DWORD PTR _y$[ebp]
  00389	0f af 91 84 00
	00 00		 imul	 edx, DWORD PTR [ecx+132]
  00390	03 10		 add	 edx, DWORD PTR [eax]
  00392	89 55 e4	 mov	 DWORD PTR _scanLine$[ebp], edx

; 1259 : 
; 1260 :                     /* Odd */
; 1261 :                     scanLine[1] = pInfo->PictureHistory[0]->pData + y *
; 1262 :                                   pInfo->InputPitch;

  00395	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  00398	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  0039b	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  0039e	8b 45 f4	 mov	 eax, DWORD PTR _y$[ebp]
  003a1	0f af 82 84 00
	00 00		 imul	 eax, DWORD PTR [edx+132]
  003a8	03 01		 add	 eax, DWORD PTR [ecx]
  003aa	89 45 e8	 mov	 DWORD PTR _scanLine$[ebp+4], eax

; 1263 : 
; 1264 :                     for (y = 0; y < h; y++)

  003ad	c7 45 f4 00 00
	00 00		 mov	 DWORD PTR _y$[ebp], 0
  003b4	eb 09		 jmp	 SHORT $LN4@TimeShiftW@2
$LN3@TimeShiftW@2:
  003b6	8b 4d f4	 mov	 ecx, DWORD PTR _y$[ebp]
  003b9	83 c1 01	 add	 ecx, 1
  003bc	89 4d f4	 mov	 DWORD PTR _y$[ebp], ecx
$LN4@TimeShiftW@2:
  003bf	8b 55 f4	 mov	 edx, DWORD PTR _y$[ebp]
  003c2	3b 55 f8	 cmp	 edx, DWORD PTR _h$[ebp]
  003c5	73 62		 jae	 SHORT $LN16@TimeShiftW@2

; 1265 :                     {
; 1266 :                         dest = timeShift->lpbCopyScanline(dest,
; 1267 :                                                           scanLine[(y + offset) % 2],
; 1268 :                                                           w) + more;

  003c7	8b 45 fc	 mov	 eax, DWORD PTR _w$[ebp]
  003ca	50		 push	 eax
  003cb	8b 45 f4	 mov	 eax, DWORD PTR _y$[ebp]
  003ce	03 45 e0	 add	 eax, DWORD PTR _offset$[ebp]
  003d1	33 d2		 xor	 edx, edx
  003d3	b9 02 00 00 00	 mov	 ecx, 2
  003d8	f7 f1		 div	 ecx
  003da	8b 54 95 e4	 mov	 edx, DWORD PTR _scanLine$[ebp+edx*4]
  003de	52		 push	 edx
  003df	8b 45 ec	 mov	 eax, DWORD PTR _dest$[ebp]
  003e2	50		 push	 eax
  003e3	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  003e8	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  003ed	8b 88 0c 01 00
	00		 mov	 ecx, DWORD PTR [eax+268]
  003f3	ff d1		 call	 ecx
  003f5	83 c4 0c	 add	 esp, 12			; 0000000cH
  003f8	03 45 dc	 add	 eax, DWORD PTR _more$[ebp]
  003fb	89 45 ec	 mov	 DWORD PTR _dest$[ebp], eax

; 1269 : 
; 1270 :                         scanLine[(y + offset) % 2] += pitch;

  003fe	8b 45 f4	 mov	 eax, DWORD PTR _y$[ebp]
  00401	03 45 e0	 add	 eax, DWORD PTR _offset$[ebp]
  00404	33 d2		 xor	 edx, edx
  00406	b9 02 00 00 00	 mov	 ecx, 2
  0040b	f7 f1		 div	 ecx
  0040d	8b 4c 95 e4	 mov	 ecx, DWORD PTR _scanLine$[ebp+edx*4]
  00411	03 4d f0	 add	 ecx, DWORD PTR _pitch$[ebp]
  00414	8b 45 f4	 mov	 eax, DWORD PTR _y$[ebp]
  00417	03 45 e0	 add	 eax, DWORD PTR _offset$[ebp]
  0041a	33 d2		 xor	 edx, edx
  0041c	be 02 00 00 00	 mov	 esi, 2
  00421	f7 f6		 div	 esi
  00423	89 4c 95 e4	 mov	 DWORD PTR _scanLine$[ebp+edx*4], ecx

; 1271 :                     }

  00427	eb 8d		 jmp	 SHORT $LN3@TimeShiftW@2
$LN16@TimeShiftW@2:

; 1272 :                 break;
; 1273 :             }
; 1274 : 
; 1275 :             if (!aviSaveFrame(timeShift->file, timeShift->buffer.record,
; 1276 :                               frameTime))

  00429	8b 55 d4	 mov	 edx, DWORD PTR _frameTime$[ebp+4]
  0042c	52		 push	 edx
  0042d	8b 45 d0	 mov	 eax, DWORD PTR _frameTime$[ebp]
  00430	50		 push	 eax
  00431	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00436	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0043b	8b 48 48	 mov	 ecx, DWORD PTR [eax+72]
  0043e	51		 push	 ecx
  0043f	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00444	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00449	8b 90 14 01 00
	00		 mov	 edx, DWORD PTR [eax+276]
  0044f	52		 push	 edx
  00450	e8 00 00 00 00	 call	 _aviSaveFrame
  00455	83 c4 10	 add	 esp, 16			; 00000010H
  00458	85 c0		 test	 eax, eax
  0045a	75 07		 jne	 SHORT $LN30@TimeShiftW@2

; 1277 :                result = FALSE;

  0045c	c7 45 d8 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0
$LN30@TimeShiftW@2:

; 1278 :         }
; 1279 :     }
; 1280 : 
; 1281 :     return result;

  00463	8b 45 d8	 mov	 eax, DWORD PTR _result$[ebp]
$LN33@TimeShiftW@2:

; 1282 : }

  00466	5e		 pop	 esi
  00467	8b e5		 mov	 esp, ebp
  00469	5d		 pop	 ebp
  0046a	c3		 ret	 0
  0046b	90		 npad	 1
$LN37@TimeShiftW@2:
  0046c	00 00 00 00	 DD	 $LN7@TimeShiftW@2
  00470	00 00 00 00	 DD	 $LN11@TimeShiftW@2
  00474	00 00 00 00	 DD	 $LN11@TimeShiftW@2
  00478	00 00 00 00	 DD	 $LN15@TimeShiftW@2
?TimeShiftWriteVideo@@YAHPAUTDeinterlaceInfo@@@Z ENDP	; TimeShiftWriteVideo
_TEXT	ENDS
PUBLIC	?TimeShiftStop@@YAHXZ				; TimeShiftStop
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftStop@@YAHXZ
_TEXT	SEGMENT
_result$ = -4						; size = 4
?TimeShiftStop@@YAHXZ PROC				; TimeShiftStop, COMDAT

; 1118 : {

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

; 1119 :     BOOL result = FALSE;

  00004	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 1120 : 
; 1121 :     if (timeShift.IsValid())

  0000b	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00010	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  00015	85 c0		 test	 eax, eax
  00017	0f 84 b1 00 00
	00		 je	 $LN3@TimeShiftS@7

; 1122 :     {
; 1123 :         EnterCriticalSection(&timeShift->lock);

  0001d	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00022	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00027	50		 push	 eax
  00028	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1124 : 
; 1125 :         timeShift->mode = MODE_STOPPED;

  0002e	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00033	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00038	c7 40 18 00 00
	00 00		 mov	 DWORD PTR [eax+24], 0

; 1126 : 
; 1127 :         if (timeShift->file)

  0003f	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00044	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00049	83 b8 14 01 00
	00 00		 cmp	 DWORD PTR [eax+276], 0
  00050	74 2d		 je	 SHORT $LN2@TimeShiftS@7

; 1128 :         {
; 1129 :             aviFileDestroy(timeShift->file);

  00052	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00057	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0005c	8b 80 14 01 00
	00		 mov	 eax, DWORD PTR [eax+276]
  00062	50		 push	 eax
  00063	e8 00 00 00 00	 call	 _aviFileDestroy
  00068	83 c4 04	 add	 esp, 4

; 1130 :             timeShift->file = NULL;

  0006b	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00070	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00075	c7 80 14 01 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+276], 0
$LN2@TimeShiftS@7:

; 1131 :         }
; 1132 : 
; 1133 :         if (timeShift->buffer.record)

  0007f	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00084	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00089	83 78 48 00	 cmp	 DWORD PTR [eax+72], 0
  0008d	74 27		 je	 SHORT $LN1@TimeShiftS@7

; 1134 :         {
; 1135 :             free(timeShift->buffer.record);

  0008f	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00094	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00099	8b 48 48	 mov	 ecx, DWORD PTR [eax+72]
  0009c	51		 push	 ecx
  0009d	e8 00 00 00 00	 call	 _free
  000a2	83 c4 04	 add	 esp, 4

; 1136 :             timeShift->buffer.record = NULL;

  000a5	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000aa	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000af	c7 40 48 00 00
	00 00		 mov	 DWORD PTR [eax+72], 0
$LN1@TimeShiftS@7:

; 1137 :         }
; 1138 : 
; 1139 :         LeaveCriticalSection(&timeShift->lock);

  000b6	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000bb	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000c0	50		 push	 eax
  000c1	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1140 : 
; 1141 :         result = TRUE;

  000c7	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1
$LN3@TimeShiftS@7:

; 1142 :     }
; 1143 : 
; 1144 :     return result;

  000ce	8b 45 fc	 mov	 eax, DWORD PTR _result$[ebp]

; 1145 : }

  000d1	8b e5		 mov	 esp, ebp
  000d3	5d		 pop	 ebp
  000d4	c3		 ret	 0
?TimeShiftStop@@YAHXZ ENDP				; TimeShiftStop
_TEXT	ENDS
PUBLIC	??1TIME_SHIFT@@QAE@XZ				; TIME_SHIFT::~TIME_SHIFT
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1TIME_SHIFT@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1TIME_SHIFT@@QAE@XZ$0
__ehfuncinfo$??1TIME_SHIFT@@QAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1TIME_SHIFT@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??1TIME_SHIFT@@QAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1TIME_SHIFT@@QAE@XZ PROC				; TIME_SHIFT::~TIME_SHIFT, COMDAT
; _this$ = ecx

; 869  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??1TIME_SHIFT@@QAE@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00017	33 c5		 xor	 eax, ebp
  00019	50		 push	 eax
  0001a	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001d	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00023	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx
  00026	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0

; 870  :     /* Stop recording */
; 871  :     TimeShiftStop();

  0002d	e8 00 00 00 00	 call	 ?TimeShiftStop@@YAHXZ	; TimeShiftStop

; 872  : 
; 873  :     DeleteCriticalSection(&timeShift->lock);

  00032	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00037	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0003c	50		 push	 eax
  0003d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__DeleteCriticalSection@4

; 874  : }

  00043	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0004a	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0004d	83 c1 28	 add	 ecx, 40			; 00000028H
  00050	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> >
  00055	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00058	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0005f	59		 pop	 ecx
  00060	8b e5		 mov	 esp, ebp
  00062	5d		 pop	 ebp
  00063	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1TIME_SHIFT@@QAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	83 c1 28	 add	 ecx, 40			; 00000028H
  00006	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__ehhandler$??1TIME_SHIFT@@QAE@XZ:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  00015	33 c8		 xor	 ecx, eax
  00017	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??1TIME_SHIFT@@QAE@XZ
  00021	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??1TIME_SHIFT@@QAE@XZ ENDP				; TIME_SHIFT::~TIME_SHIFT
; Function compile flags: /Odtp
;	COMDAT ??_GTIME_SHIFT@@QAEPAXI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___flags$ = 8						; size = 4
??_GTIME_SHIFT@@QAEPAXI@Z PROC				; TIME_SHIFT::`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	 ??1TIME_SHIFT@@QAE@XZ	; TIME_SHIFT::~TIME_SHIFT
  0000f	8b 45 08	 mov	 eax, DWORD PTR ___flags$[ebp]
  00012	83 e0 01	 and	 eax, 1
  00015	74 0c		 je	 SHORT $LN1@scalar@404
  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@404:
  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
??_GTIME_SHIFT@@QAEPAXI@Z ENDP				; TIME_SHIFT::`scalar deleting destructor'
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\smartptr.h
_TEXT	ENDS
;	COMDAT ?Clear@?$SmartPtr@VTIME_SHIFT@@@@QAEXXZ
_TEXT	SEGMENT
tv82 = -20						; size = 4
_this$ = -16						; size = 4
$T340806 = -12						; size = 4
$T340805 = -8						; size = 4
$T340804 = -4						; size = 4
?Clear@?$SmartPtr@VTIME_SHIFT@@@@QAEXXZ PROC		; SmartPtr<TIME_SHIFT>::Clear, COMDAT
; _this$ = ecx

; 240  :     {

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

; 241  :         if (counter)

  00009	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	83 78 04 00	 cmp	 DWORD PTR [eax+4], 0
  00010	74 5d		 je	 SHORT $LN2@Clear@250

; 242  :         {
; 243  :             (counter->count)--;

  00012	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00015	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  00018	8b 02		 mov	 eax, DWORD PTR [edx]
  0001a	83 e8 01	 sub	 eax, 1
  0001d	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00020	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  00023	89 02		 mov	 DWORD PTR [edx], eax

; 244  : 
; 245  :             if (counter->count == 0)

  00025	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00028	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  0002b	83 39 00	 cmp	 DWORD PTR [ecx], 0
  0002e	75 3f		 jne	 SHORT $LN2@Clear@250

; 246  :             {
; 247  :                 delete counter;

  00030	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00033	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00036	89 45 fc	 mov	 DWORD PTR $T340804[ebp], eax
  00039	8b 4d fc	 mov	 ecx, DWORD PTR $T340804[ebp]
  0003c	51		 push	 ecx
  0003d	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00042	83 c4 04	 add	 esp, 4

; 248  :                 delete rawPtr;

  00045	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00048	8b 02		 mov	 eax, DWORD PTR [edx]
  0004a	89 45 f4	 mov	 DWORD PTR $T340806[ebp], eax
  0004d	8b 4d f4	 mov	 ecx, DWORD PTR $T340806[ebp]
  00050	89 4d f8	 mov	 DWORD PTR $T340805[ebp], ecx
  00053	83 7d f8 00	 cmp	 DWORD PTR $T340805[ebp], 0
  00057	74 0f		 je	 SHORT $LN5@Clear@250
  00059	6a 01		 push	 1
  0005b	8b 4d f8	 mov	 ecx, DWORD PTR $T340805[ebp]
  0005e	e8 00 00 00 00	 call	 ??_GTIME_SHIFT@@QAEPAXI@Z
  00063	89 45 ec	 mov	 DWORD PTR tv82[ebp], eax
  00066	eb 07		 jmp	 SHORT $LN2@Clear@250
$LN5@Clear@250:
  00068	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR tv82[ebp], 0
$LN2@Clear@250:

; 249  :             }
; 250  :         }
; 251  :         counter = 0;

  0006f	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00072	c7 42 04 00 00
	00 00		 mov	 DWORD PTR [edx+4], 0

; 252  :         rawPtr = 0;

  00079	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  0007c	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], 0

; 253  :     }

  00082	8b e5		 mov	 esp, ebp
  00084	5d		 pop	 ebp
  00085	c3		 ret	 0
?Clear@?$SmartPtr@VTIME_SHIFT@@@@QAEXXZ ENDP		; SmartPtr<TIME_SHIFT>::Clear
_TEXT	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??4?$SmartPtr@VTIME_SHIFT@@@@QAEAAV0@PAVTIME_SHIFT@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??4?$SmartPtr@VTIME_SHIFT@@@@QAEAAV0@PAVTIME_SHIFT@@@Z$0
__ehfuncinfo$??4?$SmartPtr@VTIME_SHIFT@@@@QAEAAV0@PAVTIME_SHIFT@@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??4?$SmartPtr@VTIME_SHIFT@@@@QAEAAV0@PAVTIME_SHIFT@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??4?$SmartPtr@VTIME_SHIFT@@@@QAEAAV0@PAVTIME_SHIFT@@@Z
_TEXT	SEGMENT
tv75 = -28						; size = 4
_this$ = -24						; size = 4
$T340812 = -20						; size = 4
$T340811 = -16						; size = 4
__$EHRec$ = -12						; size = 12
_raw$ = 8						; size = 4
??4?$SmartPtr@VTIME_SHIFT@@@@QAEAAV0@PAVTIME_SHIFT@@@Z PROC ; SmartPtr<TIME_SHIFT>::operator=, COMDAT
; _this$ = ecx

; 153  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??4?$SmartPtr@VTIME_SHIFT@@@@QAEAAV0@PAVTIME_SHIFT@@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 10	 sub	 esp, 16			; 00000010H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d e8	 mov	 DWORD PTR _this$[ebp], ecx

; 154  : 
; 155  :         Clear();

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

; 156  :         if (raw)

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

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

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

; 159  :             rawPtr = raw;

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

; 160  :         }
; 161  :         return *this;

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

; 162  :     }

  00087	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0008a	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00091	59		 pop	 ecx
  00092	8b e5		 mov	 esp, ebp
  00094	5d		 pop	 ebp
  00095	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??4?$SmartPtr@VTIME_SHIFT@@@@QAEAAV0@PAVTIME_SHIFT@@@Z$0:
  00000	8b 45 ec	 mov	 eax, DWORD PTR $T340812[ebp]
  00003	50		 push	 eax
  00004	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00009	59		 pop	 ecx
  0000a	c3		 ret	 0
__ehhandler$??4?$SmartPtr@VTIME_SHIFT@@@@QAEAAV0@PAVTIME_SHIFT@@@Z:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 4a ec	 mov	 ecx, DWORD PTR [edx-20]
  00015	33 c8		 xor	 ecx, eax
  00017	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??4?$SmartPtr@VTIME_SHIFT@@@@QAEAAV0@PAVTIME_SHIFT@@@Z
  00021	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??4?$SmartPtr@VTIME_SHIFT@@@@QAEAAV0@PAVTIME_SHIFT@@@Z ENDP ; SmartPtr<TIME_SHIFT>::operator=
; Function compile flags: /Odtp
;	COMDAT ??1?$SmartPtr@VTIME_SHIFT@@@@QAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??1?$SmartPtr@VTIME_SHIFT@@@@QAE@XZ PROC		; SmartPtr<TIME_SHIFT>::~SmartPtr<TIME_SHIFT>, COMDAT
; _this$ = ecx

; 105  :     {

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

; 106  :         Clear();

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?Clear@?$SmartPtr@VTIME_SHIFT@@@@QAEXXZ ; SmartPtr<TIME_SHIFT>::Clear

; 107  :     }

  0000f	8b e5		 mov	 esp, ebp
  00011	5d		 pop	 ebp
  00012	c3		 ret	 0
??1?$SmartPtr@VTIME_SHIFT@@@@QAE@XZ ENDP		; SmartPtr<TIME_SHIFT>::~SmartPtr<TIME_SHIFT>
PUBLIC	?TimeShiftSetSavingPath@@YAHPA_W@Z		; TimeShiftSetSavingPath
;	COMDAT xdata$x
; File c:\develop\dscaler423a\dscaler\timeshift.cpp
xdata$x	SEGMENT
__unwindtable$?TimeShiftSetSavingPath@@YAHPA_W@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?TimeShiftSetSavingPath@@YAHPA_W@Z$0
__ehfuncinfo$?TimeShiftSetSavingPath@@YAHPA_W@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?TimeShiftSetSavingPath@@YAHPA_W@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?TimeShiftSetSavingPath@@YAHPA_W@Z
_TEXT	SEGMENT
tv164 = -56						; size = 4
tv165 = -52						; size = 4
$T347429 = -48						; size = 28
_failed$ = -20						; size = 4
_i$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_path$ = 8						; size = 4
?TimeShiftSetSavingPath@@YAHPA_W@Z PROC			; TimeShiftSetSavingPath, COMDAT

; 1550 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?TimeShiftSetSavingPath@@YAHPA_W@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 2c	 sub	 esp, 44			; 0000002cH
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax

; 1551 :     BOOL  failed = TRUE;

  00025	c7 45 ec 01 00
	00 00		 mov	 DWORD PTR _failed$[ebp], 1

; 1552 :     int   i;
; 1553 : 
; 1554 :     if (!timeShift.IsValid())

  0002c	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00031	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  00036	85 c0		 test	 eax, eax
  00038	75 07		 jne	 SHORT $LN13@TimeShiftS@8

; 1555 :        return FALSE;

  0003a	33 c0		 xor	 eax, eax
  0003c	e9 78 01 00 00	 jmp	 $LN14@TimeShiftS@8
$LN13@TimeShiftS@8:

; 1556 : 
; 1557 :     EnterCriticalSection(&timeShift->lock);

  00041	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00046	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0004b	50		 push	 eax
  0004c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1558 : 
; 1559 :     if (timeShift->mode==MODE_STOPPED)

  00052	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00057	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0005c	83 78 18 00	 cmp	 DWORD PTR [eax+24], 0
  00060	0f 85 39 01 00
	00		 jne	 $LN12@TimeShiftS@8

; 1560 :     {
; 1561 :         failed = FALSE;

  00066	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _failed$[ebp], 0

; 1562 : 
; 1563 :         if (path)

  0006d	83 7d 08 00	 cmp	 DWORD PTR _path$[ebp], 0
  00071	0f 84 87 00 00
	00		 je	 $LN11@TimeShiftS@8

; 1564 :         {
; 1565 :             /* Get a copy of the new path */
; 1566 :             timeShift->savingPath = path;

  00077	8b 45 08	 mov	 eax, DWORD PTR _path$[ebp]
  0007a	50		 push	 eax
  0007b	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00080	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00085	83 c0 28	 add	 eax, 40			; 00000028H
  00088	8b c8		 mov	 ecx, eax
  0008a	e8 00 00 00 00	 call	 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=

; 1567 : 
; 1568 :             /* Convert all forward slashes to back slashes */
; 1569 :             for (i = timeShift->savingPath.length() - 1; i >= 0; i--)

  0008f	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00094	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00099	83 c0 28	 add	 eax, 40			; 00000028H
  0009c	8b c8		 mov	 ecx, eax
  0009e	e8 00 00 00 00	 call	 ?length@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::length
  000a3	83 e8 01	 sub	 eax, 1
  000a6	89 45 f0	 mov	 DWORD PTR _i$[ebp], eax
  000a9	eb 09		 jmp	 SHORT $LN10@TimeShiftS@8
$LN9@TimeShiftS@8:
  000ab	8b 4d f0	 mov	 ecx, DWORD PTR _i$[ebp]
  000ae	83 e9 01	 sub	 ecx, 1
  000b1	89 4d f0	 mov	 DWORD PTR _i$[ebp], ecx
$LN10@TimeShiftS@8:
  000b4	83 7d f0 00	 cmp	 DWORD PTR _i$[ebp], 0
  000b8	7c 42		 jl	 SHORT $LN8@TimeShiftS@8

; 1570 :             {
; 1571 :                 if (timeShift->savingPath[i]=='/')

  000ba	8b 55 f0	 mov	 edx, DWORD PTR _i$[ebp]
  000bd	52		 push	 edx
  000be	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000c3	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000c8	83 c0 28	 add	 eax, 40			; 00000028H
  000cb	8b c8		 mov	 ecx, eax
  000cd	e8 00 00 00 00	 call	 ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator[]
  000d2	0f b7 00	 movzx	 eax, WORD PTR [eax]
  000d5	83 f8 2f	 cmp	 eax, 47			; 0000002fH
  000d8	75 20		 jne	 SHORT $LN7@TimeShiftS@8

; 1572 :                 {
; 1573 :                    timeShift->savingPath[i] = '\\';

  000da	8b 4d f0	 mov	 ecx, DWORD PTR _i$[ebp]
  000dd	51		 push	 ecx
  000de	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000e3	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000e8	83 c0 28	 add	 eax, 40			; 00000028H
  000eb	8b c8		 mov	 ecx, eax
  000ed	e8 00 00 00 00	 call	 ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator[]
  000f2	ba 5c 00 00 00	 mov	 edx, 92			; 0000005cH
  000f7	66 89 10	 mov	 WORD PTR [eax], dx
$LN7@TimeShiftS@8:

; 1574 :                 }
; 1575 :             }

  000fa	eb af		 jmp	 SHORT $LN9@TimeShiftS@8
$LN8@TimeShiftS@8:

; 1576 :         }
; 1577 :         else

  000fc	eb 07		 jmp	 SHORT $LN6@TimeShiftS@8
$LN11@TimeShiftS@8:

; 1578 :         {
; 1579 :             failed = TRUE;

  000fe	c7 45 ec 01 00
	00 00		 mov	 DWORD PTR _failed$[ebp], 1
$LN6@TimeShiftS@8:

; 1580 :         }
; 1581 : 
; 1582 : 
; 1583 :         if (!failed)

  00105	83 7d ec 00	 cmp	 DWORD PTR _failed$[ebp], 0
  00109	75 10		 jne	 SHORT $LN5@TimeShiftS@8

; 1584 :         {
; 1585 :             /* Check to see if this path is valid */
; 1586 :             if (!TimeShiftVerifySavingPath())

  0010b	e8 00 00 00 00	 call	 ?TimeShiftVerifySavingPath@@YAHXZ ; TimeShiftVerifySavingPath
  00110	85 c0		 test	 eax, eax
  00112	75 07		 jne	 SHORT $LN5@TimeShiftS@8

; 1587 :             {
; 1588 :                failed = TRUE;

  00114	c7 45 ec 01 00
	00 00		 mov	 DWORD PTR _failed$[ebp], 1
$LN5@TimeShiftS@8:

; 1589 :             }
; 1590 :         }
; 1591 : 
; 1592 :         if (failed)

  0011b	83 7d ec 00	 cmp	 DWORD PTR _failed$[ebp], 0
  0011f	74 7e		 je	 SHORT $LN12@TimeShiftS@8

; 1593 :         {
; 1594 :             if (path)

  00121	83 7d 08 00	 cmp	 DWORD PTR _path$[ebp], 0
  00125	74 13		 je	 SHORT $LN2@TimeShiftS@8

; 1595 :             {
; 1596 :                LOG(1, _T("Bad path: %s. Using the default."), path);

  00127	8b 45 08	 mov	 eax, DWORD PTR _path$[ebp]
  0012a	50		 push	 eax
  0012b	68 00 00 00 00	 push	 OFFSET ??_C@_1EC@IBAPBHPC@?$AAB?$AAa?$AAd?$AA?5?$AAp?$AAa?$AAt?$AAh?$AA?3?$AA?5?$AA?$CF?$AAs?$AA?4?$AA?5?$AAU?$AAs?$AAi?$AAn?$AAg?$AA?5?$AAt?$AAh?$AAe?$AA?5?$AAd?$AAe?$AAf?$AAa?$AAu?$AAl?$AAt?$AA?4@
  00130	6a 01		 push	 1
  00132	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00137	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN2@TimeShiftS@8:

; 1597 :             }
; 1598 : 
; 1599 :             timeShift->savingPath = GetUserVideoPath();

  0013a	8d 4d d0	 lea	 ecx, DWORD PTR $T347429[ebp]
  0013d	51		 push	 ecx
  0013e	e8 00 00 00 00	 call	 ?GetUserVideoPath@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ; GetUserVideoPath
  00143	83 c4 04	 add	 esp, 4
  00146	89 45 cc	 mov	 DWORD PTR tv165[ebp], eax
  00149	8b 55 cc	 mov	 edx, DWORD PTR tv165[ebp]
  0014c	89 55 c8	 mov	 DWORD PTR tv164[ebp], edx
  0014f	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00156	8b 45 c8	 mov	 eax, DWORD PTR tv164[ebp]
  00159	50		 push	 eax
  0015a	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0015f	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00164	83 c0 28	 add	 eax, 40			; 00000028H
  00167	8b c8		 mov	 ecx, eax
  00169	e8 00 00 00 00	 call	 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@ABV01@@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=
  0016e	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00175	8d 4d d0	 lea	 ecx, DWORD PTR $T347429[ebp]
  00178	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> >

; 1600 :             if (!TimeShiftVerifySavingPath())

  0017d	e8 00 00 00 00	 call	 ?TimeShiftVerifySavingPath@@YAHXZ ; TimeShiftVerifySavingPath
  00182	85 c0		 test	 eax, eax
  00184	75 19		 jne	 SHORT $LN12@TimeShiftS@8

; 1601 :             {
; 1602 :                timeShift->savingPath =  TS_DEFAULT_PATH;

  00186	68 00 00 00 00	 push	 OFFSET ??_C@_17BJPFHBEJ@?$AAC?$AA?3?$AA?2?$AA?$AA@
  0018b	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00190	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00195	83 c0 28	 add	 eax, 40			; 00000028H
  00198	8b c8		 mov	 ecx, eax
  0019a	e8 00 00 00 00	 call	 ??4?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV01@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator=
$LN12@TimeShiftS@8:

; 1603 :             }
; 1604 :         }
; 1605 :     }
; 1606 : 
; 1607 :     LeaveCriticalSection(&timeShift->lock);

  0019f	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  001a4	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  001a9	50		 push	 eax
  001aa	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1608 : 
; 1609 :     return failed ? FALSE : TRUE;

  001b0	33 c0		 xor	 eax, eax
  001b2	83 7d ec 00	 cmp	 DWORD PTR _failed$[ebp], 0
  001b6	0f 94 c0	 sete	 al
$LN14@TimeShiftS@8:

; 1610 : }

  001b9	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  001bc	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  001c3	59		 pop	 ecx
  001c4	8b e5		 mov	 esp, ebp
  001c6	5d		 pop	 ebp
  001c7	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?TimeShiftSetSavingPath@@YAHPA_W@Z$0:
  00000	8d 4d d0	 lea	 ecx, DWORD PTR $T347429[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__ehhandler$?TimeShiftSetSavingPath@@YAHPA_W@Z:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a d0	 mov	 ecx, DWORD PTR [edx-48]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?TimeShiftSetSavingPath@@YAHPA_W@Z
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?TimeShiftSetSavingPath@@YAHPA_W@Z ENDP			; TimeShiftSetSavingPath
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\stringhelpers.h
;	COMDAT ??$?6$$BY0BA@$$CBD@MakeString@@QAEAAV0@AAY0BA@$$CBD@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_Input$ = 8						; size = 4
??$?6$$BY0BA@$$CBD@MakeString@@QAEAAV0@AAY0BA@$$CBD@Z PROC ; MakeString::operator<<<char const [16]>, COMDAT
; _this$ = ecx

; 68   :    {

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

; 69   :       m_Buffer << Input;

  00007	8b 45 08	 mov	 eax, DWORD PTR _Input$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000e	51		 push	 ecx
  0000f	e8 00 00 00 00	 call	 ??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@PBD@Z ; std::operator<<<wchar_t,std::char_traits<wchar_t> >
  00014	83 c4 08	 add	 esp, 8

; 70   :       return *this;

  00017	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]

; 71   :    }

  0001a	8b e5		 mov	 esp, ebp
  0001c	5d		 pop	 ebp
  0001d	c2 04 00	 ret	 4
??$?6$$BY0BA@$$CBD@MakeString@@QAEAAV0@AAY0BA@$$CBD@Z ENDP ; MakeString::operator<<<char const [16]>
_TEXT	ENDS
PUBLIC	?TimeShiftReadFromINI@@YAHXZ			; TimeShiftReadFromINI
;	COMDAT xdata$x
; File c:\develop\dscaler423a\dscaler\timeshift.cpp
xdata$x	SEGMENT
__unwindtable$?TimeShiftReadFromINI@@YAHXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?TimeShiftReadFromINI@@YAHXZ$0
__ehfuncinfo$?TimeShiftReadFromINI@@YAHXZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?TimeShiftReadFromINI@@YAHXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?TimeShiftReadFromINI@@YAHXZ
_TEXT	SEGMENT
_Buffer$143270 = -40					; size = 24
_result$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
?TimeShiftReadFromINI@@YAHXZ PROC			; TimeShiftReadFromINI, COMDAT

; 1985 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?TimeShiftReadFromINI@@YAHXZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 1c	 sub	 esp, 28			; 0000001cH
  00014	56		 push	 esi
  00015	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001a	33 c5		 xor	 eax, ebp
  0001c	50		 push	 eax
  0001d	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  00020	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax

; 1986 :     BOOL         result = FALSE;

  00026	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 1987 : 
; 1988 :     if (timeShift.IsValid())

  0002d	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00032	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  00037	85 c0		 test	 eax, eax
  00039	0f 84 9e 01 00
	00		 je	 $LN1@TimeShiftR

; 1989 :     {
; 1990 :         GetPrivateProfileString(_T("TimeShift"), _T("WaveInDevice"), _T(""),
; 1991 :                                 timeShift->waveInDevice, MAXPNAMELEN,
; 1992 :                                 GetIniFileForSettings());

  0003f	e8 00 00 00 00	 call	 ?GetIniFileForSettings@@YAPB_WXZ ; GetIniFileForSettings
  00044	50		 push	 eax
  00045	6a 20		 push	 32			; 00000020H
  00047	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0004c	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00051	83 c0 50	 add	 eax, 80			; 00000050H
  00054	50		 push	 eax
  00055	68 00 00 00 00	 push	 OFFSET ??_C@_11LOCGONAA@?$AA?$AA@
  0005a	68 00 00 00 00	 push	 OFFSET ??_C@_1BK@CHOMKCEG@?$AAW?$AAa?$AAv?$AAe?$AAI?$AAn?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?$AA@
  0005f	68 00 00 00 00	 push	 OFFSET ??_C@_1BE@DAMFNGFL@?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?$AA@
  00064	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetPrivateProfileStringW@24

; 1993 :         GetPrivateProfileString(_T("TimeShift"), _T("WaveOutDevice"), _T(""),
; 1994 :                                 timeShift->waveOutDevice, MAXPNAMELEN,
; 1995 :                                 GetIniFileForSettings());

  0006a	e8 00 00 00 00	 call	 ?GetIniFileForSettings@@YAPB_WXZ ; GetIniFileForSettings
  0006f	50		 push	 eax
  00070	6a 20		 push	 32			; 00000020H
  00072	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00077	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0007c	05 90 00 00 00	 add	 eax, 144		; 00000090H
  00081	50		 push	 eax
  00082	68 00 00 00 00	 push	 OFFSET ??_C@_11LOCGONAA@?$AA?$AA@
  00087	68 00 00 00 00	 push	 OFFSET ??_C@_1BM@IOJNHOMI@?$AAW?$AAa?$AAv?$AAe?$AAO?$AAu?$AAt?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AA?$AA@
  0008c	68 00 00 00 00	 push	 OFFSET ??_C@_1BE@DAMFNGFL@?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?$AA@
  00091	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetPrivateProfileStringW@24

; 1996 : 
; 1997 :         timeShift->recHeight = GetPrivateProfileInt(_T("TimeShift"), _T("RecHeight"),
; 1998 :                                                     timeShift->recHeight,
; 1999 :                                                     GetIniFileForSettings());

  00097	e8 00 00 00 00	 call	 ?GetIniFileForSettings@@YAPB_WXZ ; GetIniFileForSettings
  0009c	50		 push	 eax
  0009d	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000a2	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000a7	8b 40 20	 mov	 eax, DWORD PTR [eax+32]
  000aa	50		 push	 eax
  000ab	68 00 00 00 00	 push	 OFFSET ??_C@_1BE@MJFFEHDE@?$AAR?$AAe?$AAc?$AAH?$AAe?$AAi?$AAg?$AAh?$AAt?$AA?$AA@
  000b0	68 00 00 00 00	 push	 OFFSET ??_C@_1BE@DAMFNGFL@?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?$AA@
  000b5	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetPrivateProfileIntW@16
  000bb	8b f0		 mov	 esi, eax
  000bd	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000c2	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000c7	89 70 20	 mov	 DWORD PTR [eax+32], esi

; 2000 : 
; 2001 :         timeShift->format = (tsFormat_t)GetPrivateProfileInt(_T("TimeShift"),
; 2002 :                                                              _T("RecFormat"),
; 2003 :                                                              timeShift->format,
; 2004 :                                                              GetIniFileForSettings());

  000ca	e8 00 00 00 00	 call	 ?GetIniFileForSettings@@YAPB_WXZ ; GetIniFileForSettings
  000cf	50		 push	 eax
  000d0	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000d5	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000da	8b 48 1c	 mov	 ecx, DWORD PTR [eax+28]
  000dd	51		 push	 ecx
  000de	68 00 00 00 00	 push	 OFFSET ??_C@_1BE@IBHIMNMK@?$AAR?$AAe?$AAc?$AAF?$AAo?$AAr?$AAm?$AAa?$AAt?$AA?$AA@
  000e3	68 00 00 00 00	 push	 OFFSET ??_C@_1BE@DAMFNGFL@?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?$AA@
  000e8	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetPrivateProfileIntW@16
  000ee	8b f0		 mov	 esi, eax
  000f0	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000f5	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000fa	89 70 1c	 mov	 DWORD PTR [eax+28], esi

; 2005 : 
; 2006 :         /* Make sure the format is valid */
; 2007 :         timeShift->format = makeFormatValid(timeShift->format);

  000fd	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00102	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00107	8b 50 1c	 mov	 edx, DWORD PTR [eax+28]
  0010a	52		 push	 edx
  0010b	e8 00 00 00 00	 call	 ?makeFormatValid@@YA?AW4tsFormat_t@@W41@@Z ; makeFormatValid
  00110	83 c4 04	 add	 esp, 4
  00113	8b f0		 mov	 esi, eax
  00115	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0011a	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0011f	89 70 1c	 mov	 DWORD PTR [eax+28], esi

; 2008 : 
; 2009 :         GetPrivateProfileStruct(_T("TimeShift"), _T("VideoFCC"),
; 2010 :                                 &timeShift->fccHandler, sizeof(FOURCC),
; 2011 :                                 GetIniFileForSettings());

  00122	e8 00 00 00 00	 call	 ?GetIniFileForSettings@@YAPB_WXZ ; GetIniFileForSettings
  00127	50		 push	 eax
  00128	6a 04		 push	 4
  0012a	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0012f	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00134	83 c0 24	 add	 eax, 36			; 00000024H
  00137	50		 push	 eax
  00138	68 00 00 00 00	 push	 OFFSET ??_C@_1BC@MHPCDLK@?$AAV?$AAi?$AAd?$AAe?$AAo?$AAF?$AAC?$AAC?$AA?$AA@
  0013d	68 00 00 00 00	 push	 OFFSET ??_C@_1BE@DAMFNGFL@?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?$AA@
  00142	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetPrivateProfileStructW@20

; 2012 : 
; 2013 :         vector<TCHAR> Buffer(MAX_PATH + 1);

  00148	68 05 01 00 00	 push	 261			; 00000105H
  0014d	8d 4d d8	 lea	 ecx, DWORD PTR _Buffer$143270[ebp]
  00150	e8 00 00 00 00	 call	 ??0?$vector@_WV?$allocator@_W@std@@@std@@QAE@I@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::vector<wchar_t,std::allocator<wchar_t> >
  00155	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0

; 2014 :         GetPrivateProfileString(_T("TimeShift"), _T("SavingPath"),
; 2015 :                                 _T(""), &Buffer[0], MAX_PATH,
; 2016 :                                 GetIniFileForSettings());

  0015c	e8 00 00 00 00	 call	 ?GetIniFileForSettings@@YAPB_WXZ ; GetIniFileForSettings
  00161	50		 push	 eax
  00162	68 04 01 00 00	 push	 260			; 00000104H
  00167	6a 00		 push	 0
  00169	8d 4d d8	 lea	 ecx, DWORD PTR _Buffer$143270[ebp]
  0016c	e8 00 00 00 00	 call	 ??A?$vector@_WV?$allocator@_W@std@@@std@@QAEAA_WI@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::operator[]
  00171	50		 push	 eax
  00172	68 00 00 00 00	 push	 OFFSET ??_C@_11LOCGONAA@?$AA?$AA@
  00177	68 00 00 00 00	 push	 OFFSET ??_C@_1BG@LEKCADGO@?$AAS?$AAa?$AAv?$AAi?$AAn?$AAg?$AAP?$AAa?$AAt?$AAh?$AA?$AA@
  0017c	68 00 00 00 00	 push	 OFFSET ??_C@_1BE@DAMFNGFL@?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?$AA@
  00181	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetPrivateProfileStringW@24

; 2017 :         TimeShiftSetSavingPath(&Buffer[0]);

  00187	6a 00		 push	 0
  00189	8d 4d d8	 lea	 ecx, DWORD PTR _Buffer$143270[ebp]
  0018c	e8 00 00 00 00	 call	 ??A?$vector@_WV?$allocator@_W@std@@@std@@QAEAA_WI@Z ; std::vector<wchar_t,std::allocator<wchar_t> >::operator[]
  00191	50		 push	 eax
  00192	e8 00 00 00 00	 call	 ?TimeShiftSetSavingPath@@YAHPA_W@Z ; TimeShiftSetSavingPath
  00197	83 c4 04	 add	 esp, 4

; 2018 : 
; 2019 :         TimeShiftSetFileSizeLimit(GetPrivateProfileInt(_T("TimeShift"),
; 2020 :                                                        _T("AVIFileSizeLimit"),
; 2021 :                                                        timeShift->sizeLimit,
; 2022 :                                                        GetIniFileForSettings()));

  0019a	e8 00 00 00 00	 call	 ?GetIniFileForSettings@@YAPB_WXZ ; GetIniFileForSettings
  0019f	50		 push	 eax
  001a0	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  001a5	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  001aa	8b 40 44	 mov	 eax, DWORD PTR [eax+68]
  001ad	50		 push	 eax
  001ae	68 00 00 00 00	 push	 OFFSET ??_C@_1CC@BEPGOPMN@?$AAA?$AAV?$AAI?$AAF?$AAi?$AAl?$AAe?$AAS?$AAi?$AAz?$AAe?$AAL?$AAi?$AAm?$AAi?$AAt?$AA?$AA@
  001b3	68 00 00 00 00	 push	 OFFSET ??_C@_1BE@DAMFNGFL@?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?$AA@
  001b8	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetPrivateProfileIntW@16
  001be	50		 push	 eax
  001bf	e8 00 00 00 00	 call	 ?TimeShiftSetFileSizeLimit@@YAHK@Z ; TimeShiftSetFileSizeLimit
  001c4	83 c4 04	 add	 esp, 4

; 2023 : 
; 2024 :         result = TRUE;

  001c7	c7 45 f0 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1

; 2025 :     }

  001ce	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  001d5	8d 4d d8	 lea	 ecx, DWORD PTR _Buffer$143270[ebp]
  001d8	e8 00 00 00 00	 call	 ??1?$vector@_WV?$allocator@_W@std@@@std@@QAE@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::~vector<wchar_t,std::allocator<wchar_t> >
$LN1@TimeShiftR:

; 2026 : 
; 2027 :     return result;

  001dd	8b 45 f0	 mov	 eax, DWORD PTR _result$[ebp]

; 2028 : }

  001e0	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  001e3	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  001ea	59		 pop	 ecx
  001eb	5e		 pop	 esi
  001ec	8b e5		 mov	 esp, ebp
  001ee	5d		 pop	 ebp
  001ef	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?TimeShiftReadFromINI@@YAHXZ$0:
  00000	8d 4d d8	 lea	 ecx, DWORD PTR _Buffer$143270[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$vector@_WV?$allocator@_W@std@@@std@@QAE@XZ ; std::vector<wchar_t,std::allocator<wchar_t> >::~vector<wchar_t,std::allocator<wchar_t> >
__ehhandler$?TimeShiftReadFromINI@@YAHXZ:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a dc	 mov	 ecx, DWORD PTR [edx-36]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?TimeShiftReadFromINI@@YAHXZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?TimeShiftReadFromINI@@YAHXZ ENDP			; TimeShiftReadFromINI
PUBLIC	__$ArrayPad$
PUBLIC	?TimeShiftGetDimensions@@YAHPAUtagBITMAPINFOHEADER@@HW4tsFormat_t@@@Z ; TimeShiftGetDimensions
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?TimeShiftGetDimensions@@YAHPAUtagBITMAPINFOHEADER@@HW4tsFormat_t@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?TimeShiftGetDimensions@@YAHPAUtagBITMAPINFOHEADER@@HW4tsFormat_t@@@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?TimeShiftGetDimensions@@YAHPAUtagBITMAPINFOHEADER@@HW4tsFormat_t@@@Z$1
	DD	01H
	DD	FLAT:__unwindfunclet$?TimeShiftGetDimensions@@YAHPAUtagBITMAPINFOHEADER@@HW4tsFormat_t@@@Z$2
	DD	00H
	DD	FLAT:__unwindfunclet$?TimeShiftGetDimensions@@YAHPAUtagBITMAPINFOHEADER@@HW4tsFormat_t@@@Z$2
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?TimeShiftGetDimensions@@YAHPAUtagBITMAPINFOHEADER@@HW4tsFormat_t@@@Z$2
__ehfuncinfo$?TimeShiftGetDimensions@@YAHPAUtagBITMAPINFOHEADER@@HW4tsFormat_t@@@Z DD 019930522H
	DD	05H
	DD	FLAT:__unwindtable$?TimeShiftGetDimensions@@YAHPAUtagBITMAPINFOHEADER@@HW4tsFormat_t@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?TimeShiftGetDimensions@@YAHPAUtagBITMAPINFOHEADER@@HW4tsFormat_t@@@Z
_TEXT	SEGMENT
tv166 = -228						; size = 4
tv169 = -224						; size = 4
$T349230 = -220						; size = 28
$T349229 = -192						; size = 4
$T349228 = -188						; size = 128
_bugText$142756 = -60					; size = 28
__$ArrayPad$ = -32					; size = 4
_result$ = -28						; size = 4
_pSource$ = -24						; size = 4
_h$ = -20						; size = 4
_w$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_bih$ = 8						; size = 4
_recHeight$ = 12					; size = 4
_format$ = 16						; size = 4
?TimeShiftGetDimensions@@YAHPAUtagBITMAPINFOHEADER@@HW4tsFormat_t@@@Z PROC ; TimeShiftGetDimensions, COMDAT

; 1361 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?TimeShiftGetDimensions@@YAHPAUtagBITMAPINFOHEADER@@HW4tsFormat_t@@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	81 ec d8 00 00
	00		 sub	 esp, 216		; 000000d8H
  00017	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001c	33 c5		 xor	 eax, ebp
  0001e	89 45 e0	 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

; 1362 :     CSource *pSource = Providers_GetCurrentSource();

  0002b	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  00030	89 45 e8	 mov	 DWORD PTR _pSource$[ebp], eax

; 1363 :     int     w, h;
; 1364 :     BOOL    result = FALSE;

  00033	c7 45 e4 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 1365 : 
; 1366 :     if (!pSource || !bih)

  0003a	83 7d e8 00	 cmp	 DWORD PTR _pSource$[ebp], 0
  0003e	74 0a		 je	 SHORT $LN2@TimeShiftG@13
  00040	83 7d 08 00	 cmp	 DWORD PTR _bih$[ebp], 0
  00044	0f 85 d1 00 00
	00		 jne	 $LN3@TimeShiftG@13
$LN2@TimeShiftG@13:

; 1367 :     {
; 1368 :         BUG();

  0004a	c7 85 40 ff ff
	ff 58 05 00 00	 mov	 DWORD PTR $T349229[ebp], 1368 ; 00000558H
  00054	8d 8d 44 ff ff
	ff		 lea	 ecx, DWORD PTR $T349228[ebp]
  0005a	e8 00 00 00 00	 call	 ??0MakeString@@QAE@XZ
  0005f	89 85 20 ff ff
	ff		 mov	 DWORD PTR tv169[ebp], eax
  00065	8b 85 20 ff ff
	ff		 mov	 eax, DWORD PTR tv169[ebp]
  0006b	89 85 1c ff ff
	ff		 mov	 DWORD PTR tv166[ebp], eax
  00071	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00078	8d 8d 24 ff ff
	ff		 lea	 ecx, DWORD PTR $T349230[ebp]
  0007e	51		 push	 ecx
  0007f	8d 95 40 ff ff
	ff		 lea	 edx, DWORD PTR $T349229[ebp]
  00085	52		 push	 edx
  00086	68 00 00 00 00	 push	 OFFSET ??_C@_1BM@CEJCBEB@?$AA?5?$AAa?$AAr?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAl?$AAi?$AAn?$AAe?$AA?5?$AA?$AA@
  0008b	68 00 00 00 00	 push	 OFFSET ??_C@_0BA@OBGPPMEH@?4?2TimeShift?4cpp?$AA@
  00090	68 00 00 00 00	 push	 OFFSET ??_C@_1BM@DNEJLDMB@?$AAB?$AAu?$AAg?$AA?5?$AAf?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAi?$AAn?$AA?5?$AA?$AA@
  00095	8b 8d 1c ff ff
	ff		 mov	 ecx, DWORD PTR tv166[ebp]
  0009b	e8 00 00 00 00	 call	 ??$?6$$BY0O@$$CB_W@MakeString@@QAEAAV0@AAY0O@$$CB_W@Z ; MakeString::operator<<<wchar_t const [14]>
  000a0	8b c8		 mov	 ecx, eax
  000a2	e8 00 00 00 00	 call	 ??$?6$$BY0BA@$$CBD@MakeString@@QAEAAV0@AAY0BA@$$CBD@Z ; MakeString::operator<<<char const [16]>
  000a7	8b c8		 mov	 ecx, eax
  000a9	e8 00 00 00 00	 call	 ??$?6$$BY0O@$$CB_W@MakeString@@QAEAAV0@AAY0O@$$CB_W@Z ; MakeString::operator<<<wchar_t const [14]>
  000ae	8b c8		 mov	 ecx, eax
  000b0	e8 00 00 00 00	 call	 ??$?6H@MakeString@@QAEAAV0@ABH@Z ; MakeString::operator<<<int>
  000b5	8b c8		 mov	 ecx, eax
  000b7	e8 00 00 00 00	 call	 ??BMakeString@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ; MakeString::operator std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  000bc	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  000c0	8d 85 24 ff ff
	ff		 lea	 eax, DWORD PTR $T349230[ebp]
  000c6	50		 push	 eax
  000c7	8d 4d c4	 lea	 ecx, DWORD PTR _bugText$142756[ebp]
  000ca	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  000cf	c6 45 fc 03	 mov	 BYTE PTR __$EHRec$[ebp+8], 3
  000d3	8d 8d 24 ff ff
	ff		 lea	 ecx, DWORD PTR $T349230[ebp]
  000d9	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> >
  000de	c6 45 fc 04	 mov	 BYTE PTR __$EHRec$[ebp+8], 4
  000e2	8d 8d 44 ff ff
	ff		 lea	 ecx, DWORD PTR $T349228[ebp]
  000e8	e8 00 00 00 00	 call	 ??1MakeString@@QAE@XZ
  000ed	6a 00		 push	 0
  000ef	68 00 00 00 00	 push	 OFFSET ??_C@_1M@ILHOPKA@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?$AA@
  000f4	8d 4d c4	 lea	 ecx, DWORD PTR _bugText$142756[ebp]
  000f7	e8 00 00 00 00	 call	 ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str
  000fc	50		 push	 eax
  000fd	6a 00		 push	 0
  000ff	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__MessageBoxW@16
  00105	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0010c	8d 4d c4	 lea	 ecx, DWORD PTR _bugText$142756[ebp]
  0010f	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> >

; 1369 :         return FALSE;

  00114	33 c0		 xor	 eax, eax
  00116	e9 c6 00 00 00	 jmp	 $LN4@TimeShiftG@13
$LN3@TimeShiftG@13:

; 1370 :     }
; 1371 : 
; 1372 :     /* Use the default width and field heights to determine the size */
; 1373 :     w = pSource->GetWidth();

  0011b	8b 4d e8	 mov	 ecx, DWORD PTR _pSource$[ebp]
  0011e	8b 11		 mov	 edx, DWORD PTR [ecx]
  00120	8b 4d e8	 mov	 ecx, DWORD PTR _pSource$[ebp]
  00123	8b 42 74	 mov	 eax, DWORD PTR [edx+116]
  00126	ff d0		 call	 eax
  00128	89 45 f0	 mov	 DWORD PTR _w$[ebp], eax

; 1374 :     h = pSource->GetHeight();

  0012b	8b 4d e8	 mov	 ecx, DWORD PTR _pSource$[ebp]
  0012e	8b 11		 mov	 edx, DWORD PTR [ecx]
  00130	8b 4d e8	 mov	 ecx, DWORD PTR _pSource$[ebp]
  00133	8b 42 78	 mov	 eax, DWORD PTR [edx+120]
  00136	ff d0		 call	 eax
  00138	89 45 ec	 mov	 DWORD PTR _h$[ebp], eax

; 1375 : 
; 1376 :     /* Create the bitmap info header */
; 1377 :     memset(bih, 0, sizeof(BITMAPINFOHEADER));

  0013b	6a 28		 push	 40			; 00000028H
  0013d	6a 00		 push	 0
  0013f	8b 4d 08	 mov	 ecx, DWORD PTR _bih$[ebp]
  00142	51		 push	 ecx
  00143	e8 00 00 00 00	 call	 _memset
  00148	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1378 :     bih->biSize  = sizeof(BITMAPINFOHEADER);

  0014b	8b 55 08	 mov	 edx, DWORD PTR _bih$[ebp]
  0014e	c7 02 28 00 00
	00		 mov	 DWORD PTR [edx], 40	; 00000028H

; 1379 :     bih->biWidth = (w >> 2) << 2; /* 4-pixel (12-byte) align */

  00154	8b 45 f0	 mov	 eax, DWORD PTR _w$[ebp]
  00157	c1 f8 02	 sar	 eax, 2
  0015a	c1 e0 02	 shl	 eax, 2
  0015d	8b 4d 08	 mov	 ecx, DWORD PTR _bih$[ebp]
  00160	89 41 04	 mov	 DWORD PTR [ecx+4], eax

; 1380 : 
; 1381 :     bih->biHeight = h >> 1;

  00163	8b 55 ec	 mov	 edx, DWORD PTR _h$[ebp]
  00166	d1 fa		 sar	 edx, 1
  00168	8b 45 08	 mov	 eax, DWORD PTR _bih$[ebp]
  0016b	89 50 08	 mov	 DWORD PTR [eax+8], edx

; 1382 :     if (recHeight==TS_FULLHEIGHT)

  0016e	83 7d 0c 00	 cmp	 DWORD PTR _recHeight$[ebp], 0
  00172	75 0e		 jne	 SHORT $LN1@TimeShiftG@13

; 1383 :        bih->biHeight <<= 1; /* Make biHeight a multiple of 2 */

  00174	8b 4d 08	 mov	 ecx, DWORD PTR _bih$[ebp]
  00177	8b 51 08	 mov	 edx, DWORD PTR [ecx+8]
  0017a	d1 e2		 shl	 edx, 1
  0017c	8b 45 08	 mov	 eax, DWORD PTR _bih$[ebp]
  0017f	89 50 08	 mov	 DWORD PTR [eax+8], edx
$LN1@TimeShiftG@13:

; 1384 : 
; 1385 :     bih->biPlanes      = 1;

  00182	b9 01 00 00 00	 mov	 ecx, 1
  00187	8b 55 08	 mov	 edx, DWORD PTR _bih$[ebp]
  0018a	66 89 4a 0c	 mov	 WORD PTR [edx+12], cx

; 1386 :     bih->biBitCount    = format==FORMAT_YUY2 ? 16 : 24;

  0018e	33 c0		 xor	 eax, eax
  00190	83 7d 10 00	 cmp	 DWORD PTR _format$[ebp], 0
  00194	0f 95 c0	 setne	 al
  00197	8d 04 c5 10 00
	00 00		 lea	 eax, DWORD PTR [eax*8+16]
  0019e	8b 4d 08	 mov	 ecx, DWORD PTR _bih$[ebp]
  001a1	66 89 41 0e	 mov	 WORD PTR [ecx+14], ax

; 1387 :     bih->biCompression = format==FORMAT_YUY2 ? YUY2_FOURCC : RGB_FOURCC;

  001a5	8b 55 10	 mov	 edx, DWORD PTR _format$[ebp]
  001a8	f7 da		 neg	 edx
  001aa	1b d2		 sbb	 edx, edx
  001ac	81 e2 a7 aa a6
	cd		 and	 edx, -844715353		; cda6aaa7H
  001b2	81 c2 59 55 59
	32		 add	 edx, 844715353		; 32595559H
  001b8	8b 45 08	 mov	 eax, DWORD PTR _bih$[ebp]
  001bb	89 50 10	 mov	 DWORD PTR [eax+16], edx

; 1388 :     bih->biSizeImage   = (bih->biBitCount >> 3) * bih->biWidth * bih->biHeight;

  001be	8b 4d 08	 mov	 ecx, DWORD PTR _bih$[ebp]
  001c1	0f b7 51 0e	 movzx	 edx, WORD PTR [ecx+14]
  001c5	c1 fa 03	 sar	 edx, 3
  001c8	8b 45 08	 mov	 eax, DWORD PTR _bih$[ebp]
  001cb	0f af 50 04	 imul	 edx, DWORD PTR [eax+4]
  001cf	8b 4d 08	 mov	 ecx, DWORD PTR _bih$[ebp]
  001d2	0f af 51 08	 imul	 edx, DWORD PTR [ecx+8]
  001d6	8b 45 08	 mov	 eax, DWORD PTR _bih$[ebp]
  001d9	89 50 14	 mov	 DWORD PTR [eax+20], edx

; 1389 : 
; 1390 :     return TRUE;

  001dc	b8 01 00 00 00	 mov	 eax, 1
$LN4@TimeShiftG@13:

; 1391 : }

  001e1	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  001e4	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  001eb	59		 pop	 ecx
  001ec	8b 4d e0	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  001ef	33 cd		 xor	 ecx, ebp
  001f1	e8 00 00 00 00	 call	 @__security_check_cookie@4
  001f6	8b e5		 mov	 esp, ebp
  001f8	5d		 pop	 ebp
  001f9	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?TimeShiftGetDimensions@@YAHPAUtagBITMAPINFOHEADER@@HW4tsFormat_t@@@Z$0:
  00000	8d 8d 44 ff ff
	ff		 lea	 ecx, DWORD PTR $T349228[ebp]
  00006	e9 00 00 00 00	 jmp	 ??1MakeString@@QAE@XZ
__unwindfunclet$?TimeShiftGetDimensions@@YAHPAUtagBITMAPINFOHEADER@@HW4tsFormat_t@@@Z$1:
  0000b	8d 8d 24 ff ff
	ff		 lea	 ecx, DWORD PTR $T349230[ebp]
  00011	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?TimeShiftGetDimensions@@YAHPAUtagBITMAPINFOHEADER@@HW4tsFormat_t@@@Z$2:
  00016	8d 4d c4	 lea	 ecx, DWORD PTR _bugText$142756[ebp]
  00019	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__ehhandler$?TimeShiftGetDimensions@@YAHPAUtagBITMAPINFOHEADER@@HW4tsFormat_t@@@Z:
  0001e	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00022	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00025	8b 8a 24 ff ff
	ff		 mov	 ecx, DWORD PTR [edx-220]
  0002b	33 c8		 xor	 ecx, eax
  0002d	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00032	8b 4a ec	 mov	 ecx, DWORD PTR [edx-20]
  00035	33 c8		 xor	 ecx, eax
  00037	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0003c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?TimeShiftGetDimensions@@YAHPAUtagBITMAPINFOHEADER@@HW4tsFormat_t@@@Z
  00041	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?TimeShiftGetDimensions@@YAHPAUtagBITMAPINFOHEADER@@HW4tsFormat_t@@@Z ENDP ; TimeShiftGetDimensions
PUBLIC	__$ArrayPad$
PUBLIC	?TimeShiftShutdown@@YAXXZ			; TimeShiftShutdown
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?TimeShiftShutdown@@YAXXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?TimeShiftShutdown@@YAXXZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$?TimeShiftShutdown@@YAXXZ$1
	DD	01H
	DD	FLAT:__unwindfunclet$?TimeShiftShutdown@@YAXXZ$2
	DD	00H
	DD	FLAT:__unwindfunclet$?TimeShiftShutdown@@YAXXZ$2
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?TimeShiftShutdown@@YAXXZ$2
__ehfuncinfo$?TimeShiftShutdown@@YAXXZ DD 019930522H
	DD	05H
	DD	FLAT:__unwindtable$?TimeShiftShutdown@@YAXXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?TimeShiftShutdown@@YAXXZ
_TEXT	SEGMENT
tv132 = -212						; size = 4
tv135 = -208						; size = 4
$T349245 = -204						; size = 28
$T349244 = -176						; size = 4
$T349243 = -172						; size = 128
_bugText$142604 = -44					; size = 28
__$ArrayPad$ = -16					; size = 4
__$EHRec$ = -12						; size = 12
?TimeShiftShutdown@@YAXXZ PROC				; TimeShiftShutdown, COMDAT

; 905  : {

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

; 906  :     if (timeShift.IsValid())

  0002b	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00030	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  00035	85 c0		 test	 eax, eax
  00037	74 11		 je	 SHORT $LN2@TimeShiftS@9

; 907  :     {
; 908  :         timeShift = 0L;

  00039	6a 00		 push	 0
  0003b	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00040	e8 00 00 00 00	 call	 ??4?$SmartPtr@VTIME_SHIFT@@@@QAEAAV0@PAVTIME_SHIFT@@@Z ; SmartPtr<TIME_SHIFT>::operator=

; 909  :     } else

  00045	e9 ca 00 00 00	 jmp	 $LN3@TimeShiftS@9
$LN2@TimeShiftS@9:

; 910  :       BUG();

  0004a	c7 85 50 ff ff
	ff 8e 03 00 00	 mov	 DWORD PTR $T349244[ebp], 910 ; 0000038eH
  00054	8d 8d 54 ff ff
	ff		 lea	 ecx, DWORD PTR $T349243[ebp]
  0005a	e8 00 00 00 00	 call	 ??0MakeString@@QAE@XZ
  0005f	89 85 30 ff ff
	ff		 mov	 DWORD PTR tv135[ebp], eax
  00065	8b 85 30 ff ff
	ff		 mov	 eax, DWORD PTR tv135[ebp]
  0006b	89 85 2c ff ff
	ff		 mov	 DWORD PTR tv132[ebp], eax
  00071	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00078	8d 8d 34 ff ff
	ff		 lea	 ecx, DWORD PTR $T349245[ebp]
  0007e	51		 push	 ecx
  0007f	8d 95 50 ff ff
	ff		 lea	 edx, DWORD PTR $T349244[ebp]
  00085	52		 push	 edx
  00086	68 00 00 00 00	 push	 OFFSET ??_C@_1BM@CEJCBEB@?$AA?5?$AAa?$AAr?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAl?$AAi?$AAn?$AAe?$AA?5?$AA?$AA@
  0008b	68 00 00 00 00	 push	 OFFSET ??_C@_0BA@OBGPPMEH@?4?2TimeShift?4cpp?$AA@
  00090	68 00 00 00 00	 push	 OFFSET ??_C@_1BM@DNEJLDMB@?$AAB?$AAu?$AAg?$AA?5?$AAf?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAi?$AAn?$AA?5?$AA?$AA@
  00095	8b 8d 2c ff ff
	ff		 mov	 ecx, DWORD PTR tv132[ebp]
  0009b	e8 00 00 00 00	 call	 ??$?6$$BY0O@$$CB_W@MakeString@@QAEAAV0@AAY0O@$$CB_W@Z ; MakeString::operator<<<wchar_t const [14]>
  000a0	8b c8		 mov	 ecx, eax
  000a2	e8 00 00 00 00	 call	 ??$?6$$BY0BA@$$CBD@MakeString@@QAEAAV0@AAY0BA@$$CBD@Z ; MakeString::operator<<<char const [16]>
  000a7	8b c8		 mov	 ecx, eax
  000a9	e8 00 00 00 00	 call	 ??$?6$$BY0O@$$CB_W@MakeString@@QAEAAV0@AAY0O@$$CB_W@Z ; MakeString::operator<<<wchar_t const [14]>
  000ae	8b c8		 mov	 ecx, eax
  000b0	e8 00 00 00 00	 call	 ??$?6H@MakeString@@QAEAAV0@ABH@Z ; MakeString::operator<<<int>
  000b5	8b c8		 mov	 ecx, eax
  000b7	e8 00 00 00 00	 call	 ??BMakeString@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ; MakeString::operator std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  000bc	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  000c0	8d 85 34 ff ff
	ff		 lea	 eax, DWORD PTR $T349245[ebp]
  000c6	50		 push	 eax
  000c7	8d 4d d4	 lea	 ecx, DWORD PTR _bugText$142604[ebp]
  000ca	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  000cf	c6 45 fc 03	 mov	 BYTE PTR __$EHRec$[ebp+8], 3
  000d3	8d 8d 34 ff ff
	ff		 lea	 ecx, DWORD PTR $T349245[ebp]
  000d9	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> >
  000de	c6 45 fc 04	 mov	 BYTE PTR __$EHRec$[ebp+8], 4
  000e2	8d 8d 54 ff ff
	ff		 lea	 ecx, DWORD PTR $T349243[ebp]
  000e8	e8 00 00 00 00	 call	 ??1MakeString@@QAE@XZ
  000ed	6a 00		 push	 0
  000ef	68 00 00 00 00	 push	 OFFSET ??_C@_1M@ILHOPKA@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?$AA@
  000f4	8d 4d d4	 lea	 ecx, DWORD PTR _bugText$142604[ebp]
  000f7	e8 00 00 00 00	 call	 ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str
  000fc	50		 push	 eax
  000fd	6a 00		 push	 0
  000ff	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__MessageBoxW@16
  00105	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0010c	8d 4d d4	 lea	 ecx, DWORD PTR _bugText$142604[ebp]
  0010f	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> >
$LN3@TimeShiftS@9:

; 911  : }

  00114	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00117	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0011e	59		 pop	 ecx
  0011f	8b 4d f0	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  00122	33 cd		 xor	 ecx, ebp
  00124	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00129	8b e5		 mov	 esp, ebp
  0012b	5d		 pop	 ebp
  0012c	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?TimeShiftShutdown@@YAXXZ$0:
  00000	8d 8d 54 ff ff
	ff		 lea	 ecx, DWORD PTR $T349243[ebp]
  00006	e9 00 00 00 00	 jmp	 ??1MakeString@@QAE@XZ
__unwindfunclet$?TimeShiftShutdown@@YAXXZ$1:
  0000b	8d 8d 34 ff ff
	ff		 lea	 ecx, DWORD PTR $T349245[ebp]
  00011	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?TimeShiftShutdown@@YAXXZ$2:
  00016	8d 4d d4	 lea	 ecx, DWORD PTR _bugText$142604[ebp]
  00019	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__ehhandler$?TimeShiftShutdown@@YAXXZ:
  0001e	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00022	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00025	8b 8a 34 ff ff
	ff		 mov	 ecx, DWORD PTR [edx-204]
  0002b	33 c8		 xor	 ecx, eax
  0002d	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00032	8b 4a fc	 mov	 ecx, DWORD PTR [edx-4]
  00035	33 c8		 xor	 ecx, eax
  00037	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0003c	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?TimeShiftShutdown@@YAXXZ
  00041	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?TimeShiftShutdown@@YAXXZ ENDP				; TimeShiftShutdown
PUBLIC	__$ArrayPad$
PUBLIC	?TimeShiftInit@@YAHPAUHWND__@@@Z		; TimeShiftInit
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?TimeShiftInit@@YAHPAUHWND__@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?TimeShiftInit@@YAHPAUHWND__@@@Z$0
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?TimeShiftInit@@YAHPAUHWND__@@@Z$1
	DD	01H
	DD	FLAT:__unwindfunclet$?TimeShiftInit@@YAHPAUHWND__@@@Z$2
	DD	02H
	DD	FLAT:__unwindfunclet$?TimeShiftInit@@YAHPAUHWND__@@@Z$3
	DD	01H
	DD	FLAT:__unwindfunclet$?TimeShiftInit@@YAHPAUHWND__@@@Z$3
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?TimeShiftInit@@YAHPAUHWND__@@@Z$3
__ehfuncinfo$?TimeShiftInit@@YAHPAUHWND__@@@Z DD 019930522H
	DD	06H
	DD	FLAT:__unwindtable$?TimeShiftInit@@YAHPAUHWND__@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?TimeShiftInit@@YAHPAUHWND__@@@Z
_TEXT	SEGMENT
tv141 = -224						; size = 4
tv145 = -220						; size = 4
tv77 = -216						; size = 4
$T349264 = -212						; size = 28
$T349263 = -184						; size = 4
$T349262 = -180						; size = 128
$T349259 = -52						; size = 4
$T349258 = -48						; size = 4
_bugText$142594 = -44					; size = 28
__$ArrayPad$ = -16					; size = 4
__$EHRec$ = -12						; size = 12
_hWnd$ = 8						; size = 4
?TimeShiftInit@@YAHPAUHWND__@@@Z PROC			; TimeShiftInit, COMDAT

; 887  : {

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

; 888  : 
; 889  :     if (!timeShift.IsValid())

  0002b	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00030	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  00035	85 c0		 test	 eax, eax
  00037	75 63		 jne	 SHORT $LN2@TimeShiftI@4

; 890  :     {
; 891  :         timeShift = new TIME_SHIFT(hWnd);

  00039	68 18 01 00 00	 push	 280			; 00000118H
  0003e	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  00043	83 c4 04	 add	 esp, 4
  00046	89 45 cc	 mov	 DWORD PTR $T349259[ebp], eax
  00049	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00050	83 7d cc 00	 cmp	 DWORD PTR $T349259[ebp], 0
  00054	74 14		 je	 SHORT $LN5@TimeShiftI@4
  00056	8b 45 08	 mov	 eax, DWORD PTR _hWnd$[ebp]
  00059	50		 push	 eax
  0005a	8b 4d cc	 mov	 ecx, DWORD PTR $T349259[ebp]
  0005d	e8 00 00 00 00	 call	 ??0TIME_SHIFT@@QAE@PAUHWND__@@@Z ; TIME_SHIFT::TIME_SHIFT
  00062	89 85 28 ff ff
	ff		 mov	 DWORD PTR tv77[ebp], eax
  00068	eb 0a		 jmp	 SHORT $LN6@TimeShiftI@4
$LN5@TimeShiftI@4:
  0006a	c7 85 28 ff ff
	ff 00 00 00 00	 mov	 DWORD PTR tv77[ebp], 0
$LN6@TimeShiftI@4:
  00074	8b 8d 28 ff ff
	ff		 mov	 ecx, DWORD PTR tv77[ebp]
  0007a	89 4d d0	 mov	 DWORD PTR $T349258[ebp], ecx
  0007d	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00084	8b 55 d0	 mov	 edx, DWORD PTR $T349258[ebp]
  00087	52		 push	 edx
  00088	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0008d	e8 00 00 00 00	 call	 ??4?$SmartPtr@VTIME_SHIFT@@@@QAEAAV0@PAVTIME_SHIFT@@@Z ; SmartPtr<TIME_SHIFT>::operator=

; 892  :         TimeShiftReadFromINI();

  00092	e8 00 00 00 00	 call	 ?TimeShiftReadFromINI@@YAHXZ ; TimeShiftReadFromINI

; 893  : 
; 894  :     }
; 895  :     else

  00097	e9 ca 00 00 00	 jmp	 $LN1@TimeShiftI@4
$LN2@TimeShiftI@4:

; 896  :     {
; 897  :         BUG();

  0009c	c7 85 48 ff ff
	ff 81 03 00 00	 mov	 DWORD PTR $T349263[ebp], 897 ; 00000381H
  000a6	8d 8d 4c ff ff
	ff		 lea	 ecx, DWORD PTR $T349262[ebp]
  000ac	e8 00 00 00 00	 call	 ??0MakeString@@QAE@XZ
  000b1	89 85 24 ff ff
	ff		 mov	 DWORD PTR tv145[ebp], eax
  000b7	8b 85 24 ff ff
	ff		 mov	 eax, DWORD PTR tv145[ebp]
  000bd	89 85 20 ff ff
	ff		 mov	 DWORD PTR tv141[ebp], eax
  000c3	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1
  000ca	8d 8d 2c ff ff
	ff		 lea	 ecx, DWORD PTR $T349264[ebp]
  000d0	51		 push	 ecx
  000d1	8d 95 48 ff ff
	ff		 lea	 edx, DWORD PTR $T349263[ebp]
  000d7	52		 push	 edx
  000d8	68 00 00 00 00	 push	 OFFSET ??_C@_1BM@CEJCBEB@?$AA?5?$AAa?$AAr?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAl?$AAi?$AAn?$AAe?$AA?5?$AA?$AA@
  000dd	68 00 00 00 00	 push	 OFFSET ??_C@_0BA@OBGPPMEH@?4?2TimeShift?4cpp?$AA@
  000e2	68 00 00 00 00	 push	 OFFSET ??_C@_1BM@DNEJLDMB@?$AAB?$AAu?$AAg?$AA?5?$AAf?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAi?$AAn?$AA?5?$AA?$AA@
  000e7	8b 8d 20 ff ff
	ff		 mov	 ecx, DWORD PTR tv141[ebp]
  000ed	e8 00 00 00 00	 call	 ??$?6$$BY0O@$$CB_W@MakeString@@QAEAAV0@AAY0O@$$CB_W@Z ; MakeString::operator<<<wchar_t const [14]>
  000f2	8b c8		 mov	 ecx, eax
  000f4	e8 00 00 00 00	 call	 ??$?6$$BY0BA@$$CBD@MakeString@@QAEAAV0@AAY0BA@$$CBD@Z ; MakeString::operator<<<char const [16]>
  000f9	8b c8		 mov	 ecx, eax
  000fb	e8 00 00 00 00	 call	 ??$?6$$BY0O@$$CB_W@MakeString@@QAEAAV0@AAY0O@$$CB_W@Z ; MakeString::operator<<<wchar_t const [14]>
  00100	8b c8		 mov	 ecx, eax
  00102	e8 00 00 00 00	 call	 ??$?6H@MakeString@@QAEAAV0@ABH@Z ; MakeString::operator<<<int>
  00107	8b c8		 mov	 ecx, eax
  00109	e8 00 00 00 00	 call	 ??BMakeString@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ; MakeString::operator std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  0010e	c6 45 fc 02	 mov	 BYTE PTR __$EHRec$[ebp+8], 2
  00112	8d 85 2c ff ff
	ff		 lea	 eax, DWORD PTR $T349264[ebp]
  00118	50		 push	 eax
  00119	8d 4d d4	 lea	 ecx, DWORD PTR _bugText$142594[ebp]
  0011c	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00121	c6 45 fc 04	 mov	 BYTE PTR __$EHRec$[ebp+8], 4
  00125	8d 8d 2c ff ff
	ff		 lea	 ecx, DWORD PTR $T349264[ebp]
  0012b	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> >
  00130	c6 45 fc 05	 mov	 BYTE PTR __$EHRec$[ebp+8], 5
  00134	8d 8d 4c ff ff
	ff		 lea	 ecx, DWORD PTR $T349262[ebp]
  0013a	e8 00 00 00 00	 call	 ??1MakeString@@QAE@XZ
  0013f	6a 00		 push	 0
  00141	68 00 00 00 00	 push	 OFFSET ??_C@_1M@ILHOPKA@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?$AA@
  00146	8d 4d d4	 lea	 ecx, DWORD PTR _bugText$142594[ebp]
  00149	e8 00 00 00 00	 call	 ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str
  0014e	50		 push	 eax
  0014f	6a 00		 push	 0
  00151	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__MessageBoxW@16
  00157	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0015e	8d 4d d4	 lea	 ecx, DWORD PTR _bugText$142594[ebp]
  00161	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> >
$LN1@TimeShiftI@4:

; 898  :     }
; 899  : 
; 900  :     return TRUE;

  00166	b8 01 00 00 00	 mov	 eax, 1

; 901  : }

  0016b	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0016e	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00175	59		 pop	 ecx
  00176	8b 4d f0	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  00179	33 cd		 xor	 ecx, ebp
  0017b	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00180	8b e5		 mov	 esp, ebp
  00182	5d		 pop	 ebp
  00183	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?TimeShiftInit@@YAHPAUHWND__@@@Z$0:
  00000	8b 45 cc	 mov	 eax, DWORD PTR $T349259[ebp]
  00003	50		 push	 eax
  00004	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00009	59		 pop	 ecx
  0000a	c3		 ret	 0
__unwindfunclet$?TimeShiftInit@@YAHPAUHWND__@@@Z$1:
  0000b	8d 8d 4c ff ff
	ff		 lea	 ecx, DWORD PTR $T349262[ebp]
  00011	e9 00 00 00 00	 jmp	 ??1MakeString@@QAE@XZ
__unwindfunclet$?TimeShiftInit@@YAHPAUHWND__@@@Z$2:
  00016	8d 8d 2c ff ff
	ff		 lea	 ecx, DWORD PTR $T349264[ebp]
  0001c	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?TimeShiftInit@@YAHPAUHWND__@@@Z$3:
  00021	8d 4d d4	 lea	 ecx, DWORD PTR _bugText$142594[ebp]
  00024	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$?TimeShiftInit@@YAHPAUHWND__@@@Z:
  00029	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0002d	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00030	8b 8a 28 ff ff
	ff		 mov	 ecx, DWORD PTR [edx-216]
  00036	33 c8		 xor	 ecx, eax
  00038	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0003d	8b 4a fc	 mov	 ecx, DWORD PTR [edx-4]
  00040	33 c8		 xor	 ecx, eax
  00042	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00047	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?TimeShiftInit@@YAHPAUHWND__@@@Z
  0004c	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?TimeShiftInit@@YAHPAUHWND__@@@Z ENDP			; TimeShiftInit
PUBLIC	__$ArrayPad$
PUBLIC	?TimeShiftVideoCompressionOptions@@YAHPAUHWND__@@HW4tsFormat_t@@PAK@Z ; TimeShiftVideoCompressionOptions
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?TimeShiftVideoCompressionOptions@@YAHPAUHWND__@@HW4tsFormat_t@@PAK@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?TimeShiftVideoCompressionOptions@@YAHPAUHWND__@@HW4tsFormat_t@@PAK@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?TimeShiftVideoCompressionOptions@@YAHPAUHWND__@@HW4tsFormat_t@@PAK@Z$1
	DD	01H
	DD	FLAT:__unwindfunclet$?TimeShiftVideoCompressionOptions@@YAHPAUHWND__@@HW4tsFormat_t@@PAK@Z$2
	DD	00H
	DD	FLAT:__unwindfunclet$?TimeShiftVideoCompressionOptions@@YAHPAUHWND__@@HW4tsFormat_t@@PAK@Z$2
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?TimeShiftVideoCompressionOptions@@YAHPAUHWND__@@HW4tsFormat_t@@PAK@Z$2
__ehfuncinfo$?TimeShiftVideoCompressionOptions@@YAHPAUHWND__@@HW4tsFormat_t@@PAK@Z DD 019930522H
	DD	05H
	DD	FLAT:__unwindtable$?TimeShiftVideoCompressionOptions@@YAHPAUHWND__@@HW4tsFormat_t@@PAK@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?TimeShiftVideoCompressionOptions@@YAHPAUHWND__@@HW4tsFormat_t@@PAK@Z
_TEXT	SEGMENT
tv145 = -324						; size = 4
tv148 = -320						; size = 4
$T351896 = -316						; size = 28
$T351895 = -288						; size = 4
$T351894 = -284						; size = 128
_bugText$142978 = -156					; size = 28
__$ArrayPad$ = -128					; size = 4
_cv$ = -124						; size = 64
_result$ = -56						; size = 4
_bih$ = -52						; size = 40
__$EHRec$ = -12						; size = 12
_hWndParent$ = 8					; size = 4
_recHeight$ = 12					; size = 4
_format$ = 16						; size = 4
_fccHandler$ = 20					; size = 4
?TimeShiftVideoCompressionOptions@@YAHPAUHWND__@@HW4tsFormat_t@@PAK@Z PROC ; TimeShiftVideoCompressionOptions, COMDAT

; 1906 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?TimeShiftVideoCompressionOptions@@YAHPAUHWND__@@HW4tsFormat_t@@PAK@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	81 ec 38 01 00
	00		 sub	 esp, 312		; 00000138H
  00017	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001c	33 c5		 xor	 eax, ebp
  0001e	89 45 80	 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

; 1907 :     COMPVARS         cv;
; 1908 :     BOOL             result = FALSE;

  0002b	c7 45 c8 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 1909 :     BITMAPINFOHEADER bih;
; 1910 : 
; 1911 :     if (fccHandler && TimeShiftGetDimensions(&bih, recHeight, format))

  00032	83 7d 14 00	 cmp	 DWORD PTR _fccHandler$[ebp], 0
  00036	74 7d		 je	 SHORT $LN3@TimeShiftV@2
  00038	8b 45 10	 mov	 eax, DWORD PTR _format$[ebp]
  0003b	50		 push	 eax
  0003c	8b 4d 0c	 mov	 ecx, DWORD PTR _recHeight$[ebp]
  0003f	51		 push	 ecx
  00040	8d 55 cc	 lea	 edx, DWORD PTR _bih$[ebp]
  00043	52		 push	 edx
  00044	e8 00 00 00 00	 call	 ?TimeShiftGetDimensions@@YAHPAUtagBITMAPINFOHEADER@@HW4tsFormat_t@@@Z ; TimeShiftGetDimensions
  00049	83 c4 0c	 add	 esp, 12			; 0000000cH
  0004c	85 c0		 test	 eax, eax
  0004e	74 65		 je	 SHORT $LN3@TimeShiftV@2

; 1912 :     {
; 1913 :         memset(&cv, 0, sizeof(COMPVARS));

  00050	6a 40		 push	 64			; 00000040H
  00052	6a 00		 push	 0
  00054	8d 45 84	 lea	 eax, DWORD PTR _cv$[ebp]
  00057	50		 push	 eax
  00058	e8 00 00 00 00	 call	 _memset
  0005d	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1914 : 
; 1915 :         cv.cbSize     = sizeof(COMPVARS);

  00060	c7 45 84 40 00
	00 00		 mov	 DWORD PTR _cv$[ebp], 64	; 00000040H

; 1916 :         cv.dwFlags    = ICMF_COMPVARS_VALID;

  00067	c7 45 88 01 00
	00 00		 mov	 DWORD PTR _cv$[ebp+4], 1

; 1917 :         cv.fccType    = ICTYPE_VIDEO;

  0006e	c7 45 90 76 69
	64 63		 mov	 DWORD PTR _cv$[ebp+12], 1667524982 ; 63646976H

; 1918 :         cv.fccHandler = *fccHandler;

  00075	8b 4d 14	 mov	 ecx, DWORD PTR _fccHandler$[ebp]
  00078	8b 11		 mov	 edx, DWORD PTR [ecx]
  0007a	89 55 94	 mov	 DWORD PTR _cv$[ebp+16], edx

; 1919 : 
; 1920 :         if (ICCompressorChoose(hWndParent, 0, &bih, NULL, &cv, NULL))

  0007d	6a 00		 push	 0
  0007f	8d 45 84	 lea	 eax, DWORD PTR _cv$[ebp]
  00082	50		 push	 eax
  00083	6a 00		 push	 0
  00085	8d 4d cc	 lea	 ecx, DWORD PTR _bih$[ebp]
  00088	51		 push	 ecx
  00089	6a 00		 push	 0
  0008b	8b 55 08	 mov	 edx, DWORD PTR _hWndParent$[ebp]
  0008e	52		 push	 edx
  0008f	e8 00 00 00 00	 call	 _ICCompressorChoose@24
  00094	85 c0		 test	 eax, eax
  00096	74 18		 je	 SHORT $LN2@TimeShiftV@2

; 1921 :         {
; 1922 :             *fccHandler = cv.fccHandler;

  00098	8b 45 14	 mov	 eax, DWORD PTR _fccHandler$[ebp]
  0009b	8b 4d 94	 mov	 ecx, DWORD PTR _cv$[ebp+16]
  0009e	89 08		 mov	 DWORD PTR [eax], ecx

; 1923 :             result      = TRUE;

  000a0	c7 45 c8 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1

; 1924 : 
; 1925 :             ICCompressorFree(&cv);

  000a7	8d 55 84	 lea	 edx, DWORD PTR _cv$[ebp]
  000aa	52		 push	 edx
  000ab	e8 00 00 00 00	 call	 _ICCompressorFree@4
$LN2@TimeShiftV@2:

; 1926 :         }
; 1927 :     } else

  000b0	e9 d3 00 00 00	 jmp	 $LN1@TimeShiftV@2
$LN3@TimeShiftV@2:

; 1928 :       BUG();

  000b5	c7 85 e0 fe ff
	ff 88 07 00 00	 mov	 DWORD PTR $T351895[ebp], 1928 ; 00000788H
  000bf	8d 8d e4 fe ff
	ff		 lea	 ecx, DWORD PTR $T351894[ebp]
  000c5	e8 00 00 00 00	 call	 ??0MakeString@@QAE@XZ
  000ca	89 85 c0 fe ff
	ff		 mov	 DWORD PTR tv148[ebp], eax
  000d0	8b 85 c0 fe ff
	ff		 mov	 eax, DWORD PTR tv148[ebp]
  000d6	89 85 bc fe ff
	ff		 mov	 DWORD PTR tv145[ebp], eax
  000dc	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  000e3	8d 8d c4 fe ff
	ff		 lea	 ecx, DWORD PTR $T351896[ebp]
  000e9	51		 push	 ecx
  000ea	8d 95 e0 fe ff
	ff		 lea	 edx, DWORD PTR $T351895[ebp]
  000f0	52		 push	 edx
  000f1	68 00 00 00 00	 push	 OFFSET ??_C@_1BM@CEJCBEB@?$AA?5?$AAa?$AAr?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAl?$AAi?$AAn?$AAe?$AA?5?$AA?$AA@
  000f6	68 00 00 00 00	 push	 OFFSET ??_C@_0BA@OBGPPMEH@?4?2TimeShift?4cpp?$AA@
  000fb	68 00 00 00 00	 push	 OFFSET ??_C@_1BM@DNEJLDMB@?$AAB?$AAu?$AAg?$AA?5?$AAf?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAi?$AAn?$AA?5?$AA?$AA@
  00100	8b 8d bc fe ff
	ff		 mov	 ecx, DWORD PTR tv145[ebp]
  00106	e8 00 00 00 00	 call	 ??$?6$$BY0O@$$CB_W@MakeString@@QAEAAV0@AAY0O@$$CB_W@Z ; MakeString::operator<<<wchar_t const [14]>
  0010b	8b c8		 mov	 ecx, eax
  0010d	e8 00 00 00 00	 call	 ??$?6$$BY0BA@$$CBD@MakeString@@QAEAAV0@AAY0BA@$$CBD@Z ; MakeString::operator<<<char const [16]>
  00112	8b c8		 mov	 ecx, eax
  00114	e8 00 00 00 00	 call	 ??$?6$$BY0O@$$CB_W@MakeString@@QAEAAV0@AAY0O@$$CB_W@Z ; MakeString::operator<<<wchar_t const [14]>
  00119	8b c8		 mov	 ecx, eax
  0011b	e8 00 00 00 00	 call	 ??$?6H@MakeString@@QAEAAV0@ABH@Z ; MakeString::operator<<<int>
  00120	8b c8		 mov	 ecx, eax
  00122	e8 00 00 00 00	 call	 ??BMakeString@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ; MakeString::operator std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00127	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  0012b	8d 85 c4 fe ff
	ff		 lea	 eax, DWORD PTR $T351896[ebp]
  00131	50		 push	 eax
  00132	8d 8d 64 ff ff
	ff		 lea	 ecx, DWORD PTR _bugText$142978[ebp]
  00138	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  0013d	c6 45 fc 03	 mov	 BYTE PTR __$EHRec$[ebp+8], 3
  00141	8d 8d c4 fe ff
	ff		 lea	 ecx, DWORD PTR $T351896[ebp]
  00147	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> >
  0014c	c6 45 fc 04	 mov	 BYTE PTR __$EHRec$[ebp+8], 4
  00150	8d 8d e4 fe ff
	ff		 lea	 ecx, DWORD PTR $T351894[ebp]
  00156	e8 00 00 00 00	 call	 ??1MakeString@@QAE@XZ
  0015b	6a 00		 push	 0
  0015d	68 00 00 00 00	 push	 OFFSET ??_C@_1M@ILHOPKA@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?$AA@
  00162	8d 8d 64 ff ff
	ff		 lea	 ecx, DWORD PTR _bugText$142978[ebp]
  00168	e8 00 00 00 00	 call	 ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str
  0016d	50		 push	 eax
  0016e	6a 00		 push	 0
  00170	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__MessageBoxW@16
  00176	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0017d	8d 8d 64 ff ff
	ff		 lea	 ecx, DWORD PTR _bugText$142978[ebp]
  00183	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> >
$LN1@TimeShiftV@2:

; 1929 : 
; 1930 :     return result;

  00188	8b 45 c8	 mov	 eax, DWORD PTR _result$[ebp]

; 1931 : }

  0018b	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0018e	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00195	59		 pop	 ecx
  00196	8b 4d 80	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  00199	33 cd		 xor	 ecx, ebp
  0019b	e8 00 00 00 00	 call	 @__security_check_cookie@4
  001a0	8b e5		 mov	 esp, ebp
  001a2	5d		 pop	 ebp
  001a3	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?TimeShiftVideoCompressionOptions@@YAHPAUHWND__@@HW4tsFormat_t@@PAK@Z$0:
  00000	8d 8d e4 fe ff
	ff		 lea	 ecx, DWORD PTR $T351894[ebp]
  00006	e9 00 00 00 00	 jmp	 ??1MakeString@@QAE@XZ
__unwindfunclet$?TimeShiftVideoCompressionOptions@@YAHPAUHWND__@@HW4tsFormat_t@@PAK@Z$1:
  0000b	8d 8d c4 fe ff
	ff		 lea	 ecx, DWORD PTR $T351896[ebp]
  00011	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?TimeShiftVideoCompressionOptions@@YAHPAUHWND__@@HW4tsFormat_t@@PAK@Z$2:
  00016	8d 8d 64 ff ff
	ff		 lea	 ecx, DWORD PTR _bugText$142978[ebp]
  0001c	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__ehhandler$?TimeShiftVideoCompressionOptions@@YAHPAUHWND__@@HW4tsFormat_t@@PAK@Z:
  00021	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00025	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00028	8b 8a c4 fe ff
	ff		 mov	 ecx, DWORD PTR [edx-316]
  0002e	33 c8		 xor	 ecx, eax
  00030	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00035	8b 4a 8c	 mov	 ecx, DWORD PTR [edx-116]
  00038	33 c8		 xor	 ecx, eax
  0003a	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0003f	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?TimeShiftVideoCompressionOptions@@YAHPAUHWND__@@HW4tsFormat_t@@PAK@Z
  00044	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?TimeShiftVideoCompressionOptions@@YAHPAUHWND__@@HW4tsFormat_t@@PAK@Z ENDP ; TimeShiftVideoCompressionOptions
PUBLIC	__$ArrayPad$
PUBLIC	?TimeShiftOnOptions@@YAHXZ			; TimeShiftOnOptions
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?TimeShiftOnOptions@@YAHXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?TimeShiftOnOptions@@YAHXZ$0
__ehfuncinfo$?TimeShiftOnOptions@@YAHXZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?TimeShiftOnOptions@@YAHXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?TimeShiftOnOptions@@YAHXZ
_TEXT	SEGMENT
_dlg$142948 = -580					; size = 556
__$ArrayPad$ = -20					; size = 4
_result$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
?TimeShiftOnOptions@@YAHXZ PROC				; TimeShiftOnOptions, COMDAT

; 1866 : {

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

; 1867 :     BOOL result = FALSE;

  0002b	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 1868 : 
; 1869 :     if (timeShift.IsValid())

  00032	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00037	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  0003c	85 c0		 test	 eax, eax
  0003e	0f 84 80 00 00
	00		 je	 $LN4@TimeShiftO@2

; 1870 :     {
; 1871 :         // No enter critical section here.  If we're stopped, there is no
; 1872 :         // need for one.  If we're recording, we'll show an error box and not
; 1873 :         // access critical member variables anyway so recording can continue.
; 1874 : 
; 1875 :         if (timeShift->mode==MODE_STOPPED)

  00044	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00049	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0004e	83 78 18 00	 cmp	 DWORD PTR [eax+24], 0
  00052	75 50		 jne	 SHORT $LN3@TimeShiftO@2

; 1876 :         {
; 1877 :             CTSOptionsDlg dlg;

  00054	8d 8d bc fd ff
	ff		 lea	 ecx, DWORD PTR _dlg$142948[ebp]
  0005a	e8 00 00 00 00	 call	 ??0CTSOptionsDlg@@QAE@XZ ; CTSOptionsDlg::CTSOptionsDlg
  0005f	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0

; 1878 :             if (dlg.DoModal(timeShift->hWnd) == IDOK)

  00066	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0006b	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00070	8b 40 4c	 mov	 eax, DWORD PTR [eax+76]
  00073	50		 push	 eax
  00074	8d 8d bc fd ff
	ff		 lea	 ecx, DWORD PTR _dlg$142948[ebp]
  0007a	e8 00 00 00 00	 call	 ?DoModal@CDSDialog@@QAEHPAUHWND__@@@Z ; CDSDialog::DoModal
  0007f	83 f8 01	 cmp	 eax, 1
  00082	75 0c		 jne	 SHORT $LN2@TimeShiftO@2

; 1879 :             {
; 1880 :                 result = TRUE;

  00084	c7 45 f0 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1

; 1881 :                 TimeShiftWriteToINI();

  0008b	e8 00 00 00 00	 call	 ?TimeShiftWriteToINI@@YAHXZ ; TimeShiftWriteToINI
$LN2@TimeShiftO@2:

; 1882 :             }
; 1883 :         } else

  00090	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00097	8d 8d bc fd ff
	ff		 lea	 ecx, DWORD PTR _dlg$142948[ebp]
  0009d	e8 00 00 00 00	 call	 ??1CTSOptionsDlg@@UAE@XZ
  000a2	eb 20		 jmp	 SHORT $LN4@TimeShiftO@2
$LN3@TimeShiftO@2:

; 1884 :           MessageBox(timeShift->hWnd,
; 1885 :                      _T("TimeShift options are only available during stop mode."),
; 1886 :                      _T("Information"),
; 1887 :                      MB_OK);

  000a4	6a 00		 push	 0
  000a6	68 00 00 00 00	 push	 OFFSET ??_C@_1BI@NIHBLACF@?$AAI?$AAn?$AAf?$AAo?$AAr?$AAm?$AAa?$AAt?$AAi?$AAo?$AAn?$AA?$AA@
  000ab	68 00 00 00 00	 push	 OFFSET ??_C@_1GO@CBCFJMFF@?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?5?$AAo?$AAp?$AAt?$AAi?$AAo?$AAn?$AAs?$AA?5?$AAa?$AAr?$AAe?$AA?5?$AAo?$AAn?$AAl?$AAy?$AA?5?$AAa?$AAv?$AAa?$AAi?$AAl@
  000b0	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000b5	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000ba	8b 48 4c	 mov	 ecx, DWORD PTR [eax+76]
  000bd	51		 push	 ecx
  000be	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__MessageBoxW@16
$LN4@TimeShiftO@2:

; 1888 :     }
; 1889 : 
; 1890 :     return result;

  000c4	8b 45 f0	 mov	 eax, DWORD PTR _result$[ebp]

; 1891 : }

  000c7	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  000ca	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000d1	59		 pop	 ecx
  000d2	8b 4d ec	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  000d5	33 cd		 xor	 ecx, ebp
  000d7	e8 00 00 00 00	 call	 @__security_check_cookie@4
  000dc	8b e5		 mov	 esp, ebp
  000de	5d		 pop	 ebp
  000df	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?TimeShiftOnOptions@@YAHXZ$0:
  00000	8d 8d bc fd ff
	ff		 lea	 ecx, DWORD PTR _dlg$142948[ebp]
  00006	e9 00 00 00 00	 jmp	 ??1CTSOptionsDlg@@UAE@XZ
__ehhandler$?TimeShiftOnOptions@@YAHXZ:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 8a c4 fd ff
	ff		 mov	 ecx, DWORD PTR [edx-572]
  00018	33 c8		 xor	 ecx, eax
  0001a	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001f	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  00022	33 c8		 xor	 ecx, eax
  00024	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00029	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?TimeShiftOnOptions@@YAHXZ
  0002e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?TimeShiftOnOptions@@YAHXZ ENDP				; TimeShiftOnOptions
PUBLIC	?TimeShiftGetVideoCompressionDesc@@YAHPA_WKHW4tsFormat_t@@@Z ; TimeShiftGetVideoCompressionDesc
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftGetVideoCompressionDesc@@YAHPA_WKHW4tsFormat_t@@@Z
_TEXT	SEGMENT
tv72 = -48						; size = 4
_result$ = -44						; size = 4
_bih$ = -40						; size = 40
_dest$ = 8						; size = 4
_length$ = 12						; size = 4
_recHeight$ = 16					; size = 4
_format$ = 20						; size = 4
?TimeShiftGetVideoCompressionDesc@@YAHPA_WKHW4tsFormat_t@@@Z PROC ; TimeShiftGetVideoCompressionDesc, COMDAT

; 1813 : {

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

; 1814 :     BOOL             result = FALSE;

  00006	c7 45 d4 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 1815 :     BITMAPINFOHEADER bih;
; 1816 : 
; 1817 :     if (dest)

  0000d	83 7d 08 00	 cmp	 DWORD PTR _dest$[ebp], 0
  00011	74 5f		 je	 SHORT $LN3@TimeShiftG@14

; 1818 :     {
; 1819 :         if (TimeShiftGetDimensions(&bih, recHeight, format))

  00013	8b 45 14	 mov	 eax, DWORD PTR _format$[ebp]
  00016	50		 push	 eax
  00017	8b 4d 10	 mov	 ecx, DWORD PTR _recHeight$[ebp]
  0001a	51		 push	 ecx
  0001b	8d 55 d8	 lea	 edx, DWORD PTR _bih$[ebp]
  0001e	52		 push	 edx
  0001f	e8 00 00 00 00	 call	 ?TimeShiftGetDimensions@@YAHPAUtagBITMAPINFOHEADER@@HW4tsFormat_t@@@Z ; TimeShiftGetDimensions
  00024	83 c4 0c	 add	 esp, 12			; 0000000cH
  00027	85 c0		 test	 eax, eax
  00029	74 47		 je	 SHORT $LN3@TimeShiftG@14

; 1820 :         {
; 1821 :             if (_sntprintf(dest, length, _T("%dx%dx%d (%s)"),
; 1822 :                                 bih.biWidth,
; 1823 :                                 bih.biHeight,
; 1824 :                                 bih.biBitCount,
; 1825 :                                 format==FORMAT_YUY2 ? _T("YUY2") : _T("RGB")) > 0)

  0002b	83 7d 14 00	 cmp	 DWORD PTR _format$[ebp], 0
  0002f	75 09		 jne	 SHORT $LN6@TimeShiftG@14
  00031	c7 45 d0 00 00
	00 00		 mov	 DWORD PTR tv72[ebp], OFFSET ??_C@_19DFBBKOLM@?$AAY?$AAU?$AAY?$AA2?$AA?$AA@
  00038	eb 07		 jmp	 SHORT $LN7@TimeShiftG@14
$LN6@TimeShiftG@14:
  0003a	c7 45 d0 00 00
	00 00		 mov	 DWORD PTR tv72[ebp], OFFSET ??_C@_17KOJOHOEP@?$AAR?$AAG?$AAB?$AA?$AA@
$LN7@TimeShiftG@14:
  00041	8b 45 d0	 mov	 eax, DWORD PTR tv72[ebp]
  00044	50		 push	 eax
  00045	0f b7 4d e6	 movzx	 ecx, WORD PTR _bih$[ebp+14]
  00049	51		 push	 ecx
  0004a	8b 55 e0	 mov	 edx, DWORD PTR _bih$[ebp+8]
  0004d	52		 push	 edx
  0004e	8b 45 dc	 mov	 eax, DWORD PTR _bih$[ebp+4]
  00051	50		 push	 eax
  00052	68 00 00 00 00	 push	 OFFSET ??_C@_1BM@HLNFKNLA@?$AA?$CF?$AAd?$AAx?$AA?$CF?$AAd?$AAx?$AA?$CF?$AAd?$AA?5?$AA?$CI?$AA?$CF?$AAs?$AA?$CJ?$AA?$AA@
  00057	8b 4d 0c	 mov	 ecx, DWORD PTR _length$[ebp]
  0005a	51		 push	 ecx
  0005b	8b 55 08	 mov	 edx, DWORD PTR _dest$[ebp]
  0005e	52		 push	 edx
  0005f	e8 00 00 00 00	 call	 __snwprintf
  00064	83 c4 1c	 add	 esp, 28			; 0000001cH
  00067	85 c0		 test	 eax, eax
  00069	7e 07		 jle	 SHORT $LN3@TimeShiftG@14

; 1826 :                result = TRUE;

  0006b	c7 45 d4 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1
$LN3@TimeShiftG@14:

; 1827 :         }
; 1828 :     }
; 1829 : 
; 1830 :     return result;

  00072	8b 45 d4	 mov	 eax, DWORD PTR _result$[ebp]

; 1831 : }

  00075	8b e5		 mov	 esp, ebp
  00077	5d		 pop	 ebp
  00078	c3		 ret	 0
?TimeShiftGetVideoCompressionDesc@@YAHPA_WKHW4tsFormat_t@@@Z ENDP ; TimeShiftGetVideoCompressionDesc
PUBLIC	__$ArrayPad$
PUBLIC	?FindNextFileName@@YAHPA_WK@Z			; FindNextFileName
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?FindNextFileName@@YAHPA_WK@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?FindNextFileName@@YAHPA_WK@Z$0
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?FindNextFileName@@YAHPA_WK@Z$1
	DD	01H
	DD	FLAT:__unwindfunclet$?FindNextFileName@@YAHPA_WK@Z$2
	DD	02H
	DD	FLAT:__unwindfunclet$?FindNextFileName@@YAHPA_WK@Z$3
	DD	01H
	DD	FLAT:__unwindfunclet$?FindNextFileName@@YAHPA_WK@Z$3
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?FindNextFileName@@YAHPA_WK@Z$3
__ehfuncinfo$?FindNextFileName@@YAHPA_WK@Z DD 019930522H
	DD	06H
	DD	FLAT:__unwindtable$?FindNextFileName@@YAHPA_WK@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?FindNextFileName@@YAHPA_WK@Z
_TEXT	SEGMENT
tv157 = -248						; size = 4
tv69 = -244						; size = 4
tv78 = -240						; size = 4
$T353669 = -236						; size = 28
$T353668 = -208						; size = 4
$T353667 = -204						; size = 128
$T353666 = -76						; size = 28
_bugText$142563 = -48					; size = 28
__$ArrayPad$ = -20					; size = 4
_curFile$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_fileName$ = 8						; size = 4
_length$ = 12						; size = 4
?FindNextFileName@@YAHPA_WK@Z PROC			; FindNextFileName, COMDAT

; 816  : {

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

; 817  :     int curFile = 0;

  0002b	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _curFile$[ebp], 0

; 818  : 
; 819  :     if (!timeShift.IsValid())

  00032	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00037	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  0003c	85 c0		 test	 eax, eax
  0003e	75 07		 jne	 SHORT $LN5@FindNextFi

; 820  :        return FALSE;

  00040	33 c0		 xor	 eax, eax
  00042	e9 7f 01 00 00	 jmp	 $LN7@FindNextFi
$LN5@FindNextFi:

; 821  : 
; 822  :     do
; 823  :     {
; 824  :         if (curFile==1000)

  00047	81 7d f0 e8 03
	00 00		 cmp	 DWORD PTR _curFile$[ebp], 1000 ; 000003e8H
  0004e	75 42		 jne	 SHORT $LN2@FindNextFi

; 825  :         {
; 826  :             ErrorBox(_T("Could not create a file.  ")
; 827  :                      _T("Delete some of your video files and try again."));

  00050	68 00 00 00 00	 push	 OFFSET ??_C@_1JC@BMFAGHFA@?$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?$AAD?$AAe?$AAl?$AAe?$AAt?$AAe@
  00055	8d 4d b4	 lea	 ecx, DWORD PTR $T353666[ebp]
  00058	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> >
  0005d	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00064	8d 45 b4	 lea	 eax, DWORD PTR $T353666[ebp]
  00067	50		 push	 eax
  00068	68 3b 03 00 00	 push	 827			; 0000033bH
  0006d	68 00 00 00 00	 push	 OFFSET ??_C@_1CA@OHPNFDJP@?$AA?4?$AA?2?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  00072	6a 00		 push	 0
  00074	e8 00 00 00 00	 call	 ?_ErrorBox@@YAXPAUHWND__@@PB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _ErrorBox
  00079	83 c4 10	 add	 esp, 16			; 00000010H
  0007c	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00083	8d 4d b4	 lea	 ecx, DWORD PTR $T353666[ebp]
  00086	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> >

; 828  : 
; 829  :             return FALSE;

  0008b	33 c0		 xor	 eax, eax
  0008d	e9 34 01 00 00	 jmp	 $LN7@FindNextFi
$LN2@FindNextFi:

; 830  :         }
; 831  : 
; 832  :         if (_sntprintf(fileName, length, _T("%s\\ds%.3u.avi"),
; 833  :                       timeShift->savingPath.c_str(), curFile++) >= length)

  00092	8b 4d f0	 mov	 ecx, DWORD PTR _curFile$[ebp]
  00095	89 8d 10 ff ff
	ff		 mov	 DWORD PTR tv78[ebp], ecx
  0009b	8b 95 10 ff ff
	ff		 mov	 edx, DWORD PTR tv78[ebp]
  000a1	52		 push	 edx
  000a2	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000a7	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000ac	83 c0 28	 add	 eax, 40			; 00000028H
  000af	8b c8		 mov	 ecx, eax
  000b1	e8 00 00 00 00	 call	 ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str
  000b6	50		 push	 eax
  000b7	68 00 00 00 00	 push	 OFFSET ??_C@_1BM@PCCAFGML@?$AA?$CF?$AAs?$AA?2?$AAd?$AAs?$AA?$CF?$AA?4?$AA3?$AAu?$AA?4?$AAa?$AAv?$AAi?$AA?$AA@
  000bc	8b 45 0c	 mov	 eax, DWORD PTR _length$[ebp]
  000bf	50		 push	 eax
  000c0	8b 4d 08	 mov	 ecx, DWORD PTR _fileName$[ebp]
  000c3	51		 push	 ecx
  000c4	e8 00 00 00 00	 call	 __snwprintf
  000c9	83 c4 14	 add	 esp, 20			; 00000014H
  000cc	8b 55 0c	 mov	 edx, DWORD PTR _length$[ebp]
  000cf	8b 4d f0	 mov	 ecx, DWORD PTR _curFile$[ebp]
  000d2	83 c1 01	 add	 ecx, 1
  000d5	89 4d f0	 mov	 DWORD PTR _curFile$[ebp], ecx
  000d8	3b c2		 cmp	 eax, edx
  000da	0f 82 ce 00 00
	00		 jb	 $LN4@FindNextFi

; 834  :         {
; 835  :             BUG();

  000e0	c7 85 30 ff ff
	ff 43 03 00 00	 mov	 DWORD PTR $T353668[ebp], 835 ; 00000343H
  000ea	8d 8d 34 ff ff
	ff		 lea	 ecx, DWORD PTR $T353667[ebp]
  000f0	e8 00 00 00 00	 call	 ??0MakeString@@QAE@XZ
  000f5	89 85 0c ff ff
	ff		 mov	 DWORD PTR tv69[ebp], eax
  000fb	8b 95 0c ff ff
	ff		 mov	 edx, DWORD PTR tv69[ebp]
  00101	89 95 08 ff ff
	ff		 mov	 DWORD PTR tv157[ebp], edx
  00107	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1
  0010e	8d 85 14 ff ff
	ff		 lea	 eax, DWORD PTR $T353669[ebp]
  00114	50		 push	 eax
  00115	8d 8d 30 ff ff
	ff		 lea	 ecx, DWORD PTR $T353668[ebp]
  0011b	51		 push	 ecx
  0011c	68 00 00 00 00	 push	 OFFSET ??_C@_1BM@CEJCBEB@?$AA?5?$AAa?$AAr?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAl?$AAi?$AAn?$AAe?$AA?5?$AA?$AA@
  00121	68 00 00 00 00	 push	 OFFSET ??_C@_0BA@OBGPPMEH@?4?2TimeShift?4cpp?$AA@
  00126	68 00 00 00 00	 push	 OFFSET ??_C@_1BM@DNEJLDMB@?$AAB?$AAu?$AAg?$AA?5?$AAf?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAi?$AAn?$AA?5?$AA?$AA@
  0012b	8b 8d 08 ff ff
	ff		 mov	 ecx, DWORD PTR tv157[ebp]
  00131	e8 00 00 00 00	 call	 ??$?6$$BY0O@$$CB_W@MakeString@@QAEAAV0@AAY0O@$$CB_W@Z ; MakeString::operator<<<wchar_t const [14]>
  00136	8b c8		 mov	 ecx, eax
  00138	e8 00 00 00 00	 call	 ??$?6$$BY0BA@$$CBD@MakeString@@QAEAAV0@AAY0BA@$$CBD@Z ; MakeString::operator<<<char const [16]>
  0013d	8b c8		 mov	 ecx, eax
  0013f	e8 00 00 00 00	 call	 ??$?6$$BY0O@$$CB_W@MakeString@@QAEAAV0@AAY0O@$$CB_W@Z ; MakeString::operator<<<wchar_t const [14]>
  00144	8b c8		 mov	 ecx, eax
  00146	e8 00 00 00 00	 call	 ??$?6H@MakeString@@QAEAAV0@ABH@Z ; MakeString::operator<<<int>
  0014b	8b c8		 mov	 ecx, eax
  0014d	e8 00 00 00 00	 call	 ??BMakeString@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ; MakeString::operator std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00152	c6 45 fc 02	 mov	 BYTE PTR __$EHRec$[ebp+8], 2
  00156	8d 95 14 ff ff
	ff		 lea	 edx, DWORD PTR $T353669[ebp]
  0015c	52		 push	 edx
  0015d	8d 4d d0	 lea	 ecx, DWORD PTR _bugText$142563[ebp]
  00160	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00165	c6 45 fc 04	 mov	 BYTE PTR __$EHRec$[ebp+8], 4
  00169	8d 8d 14 ff ff
	ff		 lea	 ecx, DWORD PTR $T353669[ebp]
  0016f	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> >
  00174	c6 45 fc 05	 mov	 BYTE PTR __$EHRec$[ebp+8], 5
  00178	8d 8d 34 ff ff
	ff		 lea	 ecx, DWORD PTR $T353667[ebp]
  0017e	e8 00 00 00 00	 call	 ??1MakeString@@QAE@XZ
  00183	6a 00		 push	 0
  00185	68 00 00 00 00	 push	 OFFSET ??_C@_1M@ILHOPKA@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?$AA@
  0018a	8d 4d d0	 lea	 ecx, DWORD PTR _bugText$142563[ebp]
  0018d	e8 00 00 00 00	 call	 ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str
  00192	50		 push	 eax
  00193	6a 00		 push	 0
  00195	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__MessageBoxW@16
  0019b	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  001a2	8d 4d d0	 lea	 ecx, DWORD PTR _bugText$142563[ebp]
  001a5	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> >

; 836  :             return FALSE;

  001aa	33 c0		 xor	 eax, eax
  001ac	eb 18		 jmp	 SHORT $LN7@FindNextFi
$LN4@FindNextFi:

; 837  :         }
; 838  :     } while (GetFileAttributes(fileName) != 0xffffffff);

  001ae	8b 45 08	 mov	 eax, DWORD PTR _fileName$[ebp]
  001b1	50		 push	 eax
  001b2	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetFileAttributesW@4
  001b8	83 f8 ff	 cmp	 eax, -1
  001bb	0f 85 86 fe ff
	ff		 jne	 $LN5@FindNextFi

; 839  : 
; 840  :     return TRUE;

  001c1	b8 01 00 00 00	 mov	 eax, 1
$LN7@FindNextFi:

; 841  : }

  001c6	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  001c9	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  001d0	59		 pop	 ecx
  001d1	8b 4d ec	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  001d4	33 cd		 xor	 ecx, ebp
  001d6	e8 00 00 00 00	 call	 @__security_check_cookie@4
  001db	8b e5		 mov	 esp, ebp
  001dd	5d		 pop	 ebp
  001de	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?FindNextFileName@@YAHPA_WK@Z$0:
  00000	8d 4d b4	 lea	 ecx, DWORD PTR $T353666[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?FindNextFileName@@YAHPA_WK@Z$1:
  00008	8d 8d 34 ff ff
	ff		 lea	 ecx, DWORD PTR $T353667[ebp]
  0000e	e9 00 00 00 00	 jmp	 ??1MakeString@@QAE@XZ
__unwindfunclet$?FindNextFileName@@YAHPA_WK@Z$2:
  00013	8d 8d 14 ff ff
	ff		 lea	 ecx, DWORD PTR $T353669[ebp]
  00019	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?FindNextFileName@@YAHPA_WK@Z$3:
  0001e	8d 4d d0	 lea	 ecx, DWORD PTR _bugText$142563[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> >
__ehhandler$?FindNextFileName@@YAHPA_WK@Z:
  00026	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0002a	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0002d	8b 8a 10 ff ff
	ff		 mov	 ecx, DWORD PTR [edx-240]
  00033	33 c8		 xor	 ecx, eax
  00035	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0003a	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  0003d	33 c8		 xor	 ecx, eax
  0003f	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00044	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?FindNextFileName@@YAHPA_WK@Z
  00049	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?FindNextFileName@@YAHPA_WK@Z ENDP			; FindNextFileName
PUBLIC	__$ArrayPad$
PUBLIC	?GetFreeDiskSpace@@YA_KXZ			; GetFreeDiskSpace
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?GetFreeDiskSpace@@YA_KXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?GetFreeDiskSpace@@YA_KXZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$?GetFreeDiskSpace@@YA_KXZ$1
__ehfuncinfo$?GetFreeDiskSpace@@YA_KXZ DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?GetFreeDiskSpace@@YA_KXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?GetFreeDiskSpace@@YA_KXZ
_TEXT	SEGMENT
tv84 = -472						; size = 4
$T353689 = -468						; size = 8
$T353688 = -460						; size = 8
$T353687 = -452						; size = 8
$T353686 = -444						; size = 8
$T353685 = -432						; size = 28
$T353684 = -404						; size = 8
$T353683 = -396						; size = 8
_TotalNumberOfFreeBytes$142500 = -388			; size = 8
_ProcAdd$142501 = -376					; size = 4
_FreeBytesAvailableToCaller$142498 = -372		; size = 8
_TotalNumberOfBytes$142499 = -364			; size = 8
_VersionInfo$ = -356					; size = 276
_lpszDrivePath$ = -76					; size = 8
_lpNumberOfFreeClusters$ = -68				; size = 4
_lpSectorsPerCluster$ = -64				; size = 4
_strProcName$ = -60					; size = 28
__$ArrayPad$ = -32					; size = 4
_lpTotalNumberOfClusters$ = -28				; size = 4
_lpBytesPerSector$ = -24				; size = 4
_totalbytes$ = -20					; size = 8
__$EHRec$ = -12						; size = 12
?GetFreeDiskSpace@@YA_KXZ PROC				; GetFreeDiskSpace, COMDAT

; 682  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?GetFreeDiskSpace@@YA_KXZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	81 ec cc 01 00
	00		 sub	 esp, 460		; 000001ccH
  00017	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001c	33 c5		 xor	 eax, ebp
  0001e	89 45 e0	 mov	 DWORD PTR __$ArrayPad$[ebp], eax
  00021	56		 push	 esi
  00022	50		 push	 eax
  00023	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  00026	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax

; 683  :     ULONGLONG totalbytes = 0; /**< Free disk space in bytes */

  0002c	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _totalbytes$[ebp], 0
  00033	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _totalbytes$[ebp+4], 0

; 684  : 
; 685  :     typedef BOOL (CALLBACK *DSKFREE)(LPCTSTR,
; 686  :                                      PULARGE_INTEGER,
; 687  :                                      PULARGE_INTEGER,
; 688  :                                      PULARGE_INTEGER);
; 689  :     OSVERSIONINFO VersionInfo;
; 690  :     VersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);

  0003a	c7 85 9c fe ff
	ff 14 01 00 00	 mov	 DWORD PTR _VersionInfo$[ebp], 276 ; 00000114H

; 691  :     string strProcName;

  00044	8d 4d c4	 lea	 ecx, DWORD PTR _strProcName$[ebp]
  00047	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> >
  0004c	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0

; 692  :     TCHAR lpszDrivePath[4] = _T("c:\\");

  00053	a1 00 00 00 00	 mov	 eax, DWORD PTR ??_C@_17OAIDBDBP@?$AAc?$AA?3?$AA?2?$AA?$AA@
  00058	89 45 b4	 mov	 DWORD PTR _lpszDrivePath$[ebp], eax
  0005b	8b 0d 04 00 00
	00		 mov	 ecx, DWORD PTR ??_C@_17OAIDBDBP@?$AAc?$AA?3?$AA?2?$AA?$AA@+4
  00061	89 4d b8	 mov	 DWORD PTR _lpszDrivePath$[ebp+4], ecx

; 693  : 
; 694  :     if (!timeShift.IsValid())

  00064	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00069	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  0006e	85 c0		 test	 eax, eax
  00070	75 32		 jne	 SHORT $LN11@GetFreeDis

; 695  :        return totalbytes;

  00072	8b 55 ec	 mov	 edx, DWORD PTR _totalbytes$[ebp]
  00075	89 95 74 fe ff
	ff		 mov	 DWORD PTR $T353683[ebp], edx
  0007b	8b 45 f0	 mov	 eax, DWORD PTR _totalbytes$[ebp+4]
  0007e	89 85 78 fe ff
	ff		 mov	 DWORD PTR $T353683[ebp+4], eax
  00084	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0008b	8d 4d c4	 lea	 ecx, DWORD PTR _strProcName$[ebp]
  0008e	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> >
  00093	8b 85 74 fe ff
	ff		 mov	 eax, DWORD PTR $T353683[ebp]
  00099	8b 95 78 fe ff
	ff		 mov	 edx, DWORD PTR $T353683[ebp+4]
  0009f	e9 7c 02 00 00	 jmp	 $LN12@GetFreeDis
$LN11@GetFreeDis:

; 696  : 
; 697  :     lpszDrivePath[0] = timeShift->savingPath[0];

  000a4	6a 00		 push	 0
  000a6	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000ab	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000b0	83 c0 28	 add	 eax, 40			; 00000028H
  000b3	8b c8		 mov	 ecx, eax
  000b5	e8 00 00 00 00	 call	 ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::operator[]
  000ba	66 8b 08	 mov	 cx, WORD PTR [eax]
  000bd	66 89 4d b4	 mov	 WORD PTR _lpszDrivePath$[ebp], cx

; 698  : 
; 699  :     // Get Operating System Version information
; 700  :     if(!GetVersionEx(&VersionInfo))

  000c1	8d 95 9c fe ff
	ff		 lea	 edx, DWORD PTR _VersionInfo$[ebp]
  000c7	52		 push	 edx
  000c8	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetVersionExW@4
  000ce	85 c0		 test	 eax, eax
  000d0	75 32		 jne	 SHORT $LN10@GetFreeDis

; 701  :         return totalbytes;

  000d2	8b 45 ec	 mov	 eax, DWORD PTR _totalbytes$[ebp]
  000d5	89 85 6c fe ff
	ff		 mov	 DWORD PTR $T353684[ebp], eax
  000db	8b 4d f0	 mov	 ecx, DWORD PTR _totalbytes$[ebp+4]
  000de	89 8d 70 fe ff
	ff		 mov	 DWORD PTR $T353684[ebp+4], ecx
  000e4	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  000eb	8d 4d c4	 lea	 ecx, DWORD PTR _strProcName$[ebp]
  000ee	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> >
  000f3	8b 85 6c fe ff
	ff		 mov	 eax, DWORD PTR $T353684[ebp]
  000f9	8b 95 70 fe ff
	ff		 mov	 edx, DWORD PTR $T353684[ebp+4]
  000ff	e9 1c 02 00 00	 jmp	 $LN12@GetFreeDis
$LN10@GetFreeDis:

; 702  : 
; 703  :     switch ( VersionInfo.dwPlatformId )

  00104	8b 95 ac fe ff
	ff		 mov	 edx, DWORD PTR _VersionInfo$[ebp+16]
  0010a	89 95 28 fe ff
	ff		 mov	 DWORD PTR tv84[ebp], edx
  00110	83 bd 28 fe ff
	ff 01		 cmp	 DWORD PTR tv84[ebp], 1
  00117	74 1c		 je	 SHORT $LN5@GetFreeDis
  00119	83 bd 28 fe ff
	ff 02		 cmp	 DWORD PTR tv84[ebp], 2
  00120	74 05		 je	 SHORT $LN7@GetFreeDis
  00122	e9 37 01 00 00	 jmp	 $LN1@GetFreeDis
$LN7@GetFreeDis:

; 704  :     {
; 705  :         case VER_PLATFORM_WIN32_NT:
; 706  :             if (VersionInfo.dwMajorVersion < 4)  // NT 3.51 or less

  00127	83 bd a0 fe ff
	ff 04		 cmp	 DWORD PTR _VersionInfo$[ebp+4], 4
  0012e	73 05		 jae	 SHORT $LN5@GetFreeDis

; 707  :                break;

  00130	e9 6c 01 00 00	 jmp	 $LN8@GetFreeDis
$LN5@GetFreeDis:

; 708  : 
; 709  :         case VER_PLATFORM_WIN32_WINDOWS:       // Windows 95 or higher
; 710  :             if (LOWORD(VersionInfo.dwBuildNumber) <= 1000)

  00135	8b 85 a8 fe ff
	ff		 mov	 eax, DWORD PTR _VersionInfo$[ebp+12]
  0013b	25 ff ff 00 00	 and	 eax, 65535		; 0000ffffH
  00140	0f b7 c8	 movzx	 ecx, ax
  00143	81 f9 e8 03 00
	00		 cmp	 ecx, 1000		; 000003e8H
  00149	7f 05		 jg	 SHORT $LN4@GetFreeDis

; 711  :                break;                          // Non-Windows 95 OSR2

  0014b	e9 51 01 00 00	 jmp	 $LN8@GetFreeDis
$LN4@GetFreeDis:

; 712  : 
; 713  :             // This code if for Windows 95 OSR2 or higher and
; 714  :             // Windows NT 4.0 or higher and Windows XP
; 715  :             ULARGE_INTEGER FreeBytesAvailableToCaller;
; 716  :             ULARGE_INTEGER TotalNumberOfBytes;
; 717  :             ULARGE_INTEGER TotalNumberOfFreeBytes;
; 718  :             DSKFREE        ProcAdd;
; 719  : 
; 720  :             #ifdef _UNICODE   // Unicode version of GetDiskFreeSpaceEx
; 721  :                 strProcName = "GetDiskFreeSpaceExW";

  00150	68 00 00 00 00	 push	 OFFSET ??_C@_0BE@HIJKCDNA@GetDiskFreeSpaceExW?$AA@
  00155	8d 4d c4	 lea	 ecx, DWORD PTR _strProcName$[ebp]
  00158	e8 00 00 00 00	 call	 ??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator=

; 722  :             #else             // Standard version of GetDiskFreeSpaceEx
; 723  :                 strProcName = "GetDiskFreeSpaceExA";
; 724  :             #endif
; 725  : 
; 726  :             // Get ProcAddress for GetDiskFreeSpaceEx function
; 727  :             ProcAdd = (DSKFREE)GetProcAddress(GetModuleHandle(_T("kernel32.dll")),
; 728  :                                               strProcName.c_str());

  0015d	8d 4d c4	 lea	 ecx, DWORD PTR _strProcName$[ebp]
  00160	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
  00165	50		 push	 eax
  00166	68 00 00 00 00	 push	 OFFSET ??_C@_1BK@MGMFAEKH@?$AAk?$AAe?$AAr?$AAn?$AAe?$AAl?$AA3?$AA2?$AA?4?$AAd?$AAl?$AAl?$AA?$AA@
  0016b	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetModuleHandleW@4
  00171	50		 push	 eax
  00172	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetProcAddress@8
  00178	89 85 88 fe ff
	ff		 mov	 DWORD PTR _ProcAdd$142501[ebp], eax

; 729  : 
; 730  :             if (!ProcAdd)

  0017e	83 bd 88 fe ff
	ff 00		 cmp	 DWORD PTR _ProcAdd$142501[ebp], 0
  00185	75 70		 jne	 SHORT $LN3@GetFreeDis

; 731  :             {
; 732  :                 ErrorBox(_T("Could not get the address for GetDiskFreeSpaceEx"));

  00187	68 00 00 00 00	 push	 OFFSET ??_C@_1GC@PLDBONEO@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAg?$AAe?$AAt?$AA?5?$AAt?$AAh?$AAe?$AA?5?$AAa?$AAd?$AAd?$AAr?$AAe?$AAs?$AAs?$AA?5?$AAf?$AAo?$AAr?$AA?5?$AAG?$AAe@
  0018c	8d 8d 50 fe ff
	ff		 lea	 ecx, DWORD PTR $T353685[ebp]
  00192	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> >
  00197	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  0019b	8d 95 50 fe ff
	ff		 lea	 edx, DWORD PTR $T353685[ebp]
  001a1	52		 push	 edx
  001a2	68 dc 02 00 00	 push	 732			; 000002dcH
  001a7	68 00 00 00 00	 push	 OFFSET ??_C@_1CA@OHPNFDJP@?$AA?4?$AA?2?$AAT?$AAi?$AAm?$AAe?$AAS?$AAh?$AAi?$AAf?$AAt?$AA?4?$AAc?$AAp?$AAp?$AA?$AA@
  001ac	6a 00		 push	 0
  001ae	e8 00 00 00 00	 call	 ?_ErrorBox@@YAXPAUHWND__@@PB_WHABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; _ErrorBox
  001b3	83 c4 10	 add	 esp, 16			; 00000010H
  001b6	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  001ba	8d 8d 50 fe ff
	ff		 lea	 ecx, DWORD PTR $T353685[ebp]
  001c0	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> >

; 733  :                 return totalbytes;

  001c5	8b 45 ec	 mov	 eax, DWORD PTR _totalbytes$[ebp]
  001c8	89 85 44 fe ff
	ff		 mov	 DWORD PTR $T353686[ebp], eax
  001ce	8b 4d f0	 mov	 ecx, DWORD PTR _totalbytes$[ebp+4]
  001d1	89 8d 48 fe ff
	ff		 mov	 DWORD PTR $T353686[ebp+4], ecx
  001d7	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  001de	8d 4d c4	 lea	 ecx, DWORD PTR _strProcName$[ebp]
  001e1	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> >
  001e6	8b 85 44 fe ff
	ff		 mov	 eax, DWORD PTR $T353686[ebp]
  001ec	8b 95 48 fe ff
	ff		 mov	 edx, DWORD PTR $T353686[ebp+4]
  001f2	e9 29 01 00 00	 jmp	 $LN12@GetFreeDis
$LN3@GetFreeDis:

; 734  :             }
; 735  : 
; 736  :             // Execute the GetDiskFreeSpaceEx function
; 737  :             if (ProcAdd(lpszDrivePath,
; 738  :                         &FreeBytesAvailableToCaller,
; 739  :                         &TotalNumberOfBytes,
; 740  :                         &TotalNumberOfFreeBytes))

  001f7	8d 95 7c fe ff
	ff		 lea	 edx, DWORD PTR _TotalNumberOfFreeBytes$142500[ebp]
  001fd	52		 push	 edx
  001fe	8d 85 94 fe ff
	ff		 lea	 eax, DWORD PTR _TotalNumberOfBytes$142499[ebp]
  00204	50		 push	 eax
  00205	8d 8d 8c fe ff
	ff		 lea	 ecx, DWORD PTR _FreeBytesAvailableToCaller$142498[ebp]
  0020b	51		 push	 ecx
  0020c	8d 55 b4	 lea	 edx, DWORD PTR _lpszDrivePath$[ebp]
  0020f	52		 push	 edx
  00210	ff 95 88 fe ff
	ff		 call	 DWORD PTR _ProcAdd$142501[ebp]
  00216	85 c0		 test	 eax, eax
  00218	74 12		 je	 SHORT $LN2@GetFreeDis

; 741  :                totalbytes = FreeBytesAvailableToCaller.QuadPart;

  0021a	8b 85 8c fe ff
	ff		 mov	 eax, DWORD PTR _FreeBytesAvailableToCaller$142498[ebp]
  00220	89 45 ec	 mov	 DWORD PTR _totalbytes$[ebp], eax
  00223	8b 8d 90 fe ff
	ff		 mov	 ecx, DWORD PTR _FreeBytesAvailableToCaller$142498[ebp+4]
  00229	89 4d f0	 mov	 DWORD PTR _totalbytes$[ebp+4], ecx
$LN2@GetFreeDis:

; 742  : 
; 743  :         return totalbytes;

  0022c	8b 55 ec	 mov	 edx, DWORD PTR _totalbytes$[ebp]
  0022f	89 95 3c fe ff
	ff		 mov	 DWORD PTR $T353687[ebp], edx
  00235	8b 45 f0	 mov	 eax, DWORD PTR _totalbytes$[ebp+4]
  00238	89 85 40 fe ff
	ff		 mov	 DWORD PTR $T353687[ebp+4], eax
  0023e	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00245	8d 4d c4	 lea	 ecx, DWORD PTR _strProcName$[ebp]
  00248	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> >
  0024d	8b 85 3c fe ff
	ff		 mov	 eax, DWORD PTR $T353687[ebp]
  00253	8b 95 40 fe ff
	ff		 mov	 edx, DWORD PTR $T353687[ebp+4]
  00259	e9 c2 00 00 00	 jmp	 $LN12@GetFreeDis
$LN1@GetFreeDis:

; 744  : 
; 745  :         default :
; 746  :             ::MessageBox( NULL,
; 747  :                           _T("Platform not supported"),
; 748  :                           NULL,
; 749  :                           MB_OK | MB_ICONERROR | MB_TASKMODAL
; 750  :                          );

  0025e	68 10 20 00 00	 push	 8208			; 00002010H
  00263	6a 00		 push	 0
  00265	68 00 00 00 00	 push	 OFFSET ??_C@_1CO@DNIFJBOI@?$AAP?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd?$AA?$AA@
  0026a	6a 00		 push	 0
  0026c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__MessageBoxW@16

; 751  :         return totalbytes;

  00272	8b 4d ec	 mov	 ecx, DWORD PTR _totalbytes$[ebp]
  00275	89 8d 34 fe ff
	ff		 mov	 DWORD PTR $T353688[ebp], ecx
  0027b	8b 55 f0	 mov	 edx, DWORD PTR _totalbytes$[ebp+4]
  0027e	89 95 38 fe ff
	ff		 mov	 DWORD PTR $T353688[ebp+4], edx
  00284	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0028b	8d 4d c4	 lea	 ecx, DWORD PTR _strProcName$[ebp]
  0028e	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> >
  00293	8b 85 34 fe ff
	ff		 mov	 eax, DWORD PTR $T353688[ebp]
  00299	8b 95 38 fe ff
	ff		 mov	 edx, DWORD PTR $T353688[ebp+4]
  0029f	eb 7f		 jmp	 SHORT $LN12@GetFreeDis
$LN8@GetFreeDis:

; 752  :     }
; 753  : 
; 754  :     // This code if for Non-Windows 95 OSR2 (early Windows 95) and
; 755  :     // Windows NT 3.51 or lower (well you never know! - would DScaler run?)
; 756  :     DWORD lpSectorsPerCluster = 0;

  002a1	c7 45 c0 00 00
	00 00		 mov	 DWORD PTR _lpSectorsPerCluster$[ebp], 0

; 757  :     DWORD lpBytesPerSector = 0;

  002a8	c7 45 e8 00 00
	00 00		 mov	 DWORD PTR _lpBytesPerSector$[ebp], 0

; 758  :     DWORD lpNumberOfFreeClusters = 0;

  002af	c7 45 bc 00 00
	00 00		 mov	 DWORD PTR _lpNumberOfFreeClusters$[ebp], 0

; 759  :     DWORD lpTotalNumberOfClusters = 0;

  002b6	c7 45 e4 00 00
	00 00		 mov	 DWORD PTR _lpTotalNumberOfClusters$[ebp], 0

; 760  : 
; 761  :     GetDiskFreeSpace(lpszDrivePath,
; 762  :                      &lpSectorsPerCluster,
; 763  :                      &lpBytesPerSector,
; 764  :                      &lpNumberOfFreeClusters,
; 765  :                      &lpTotalNumberOfClusters);

  002bd	8d 45 e4	 lea	 eax, DWORD PTR _lpTotalNumberOfClusters$[ebp]
  002c0	50		 push	 eax
  002c1	8d 4d bc	 lea	 ecx, DWORD PTR _lpNumberOfFreeClusters$[ebp]
  002c4	51		 push	 ecx
  002c5	8d 55 e8	 lea	 edx, DWORD PTR _lpBytesPerSector$[ebp]
  002c8	52		 push	 edx
  002c9	8d 45 c0	 lea	 eax, DWORD PTR _lpSectorsPerCluster$[ebp]
  002cc	50		 push	 eax
  002cd	8d 4d b4	 lea	 ecx, DWORD PTR _lpszDrivePath$[ebp]
  002d0	51		 push	 ecx
  002d1	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetDiskFreeSpaceW@20

; 766  :     totalbytes = (ULONGLONG)lpNumberOfFreeClusters *
; 767  :                  (ULONGLONG)lpBytesPerSector * (ULONGLONG)lpSectorsPerCluster;

  002d7	8b 45 bc	 mov	 eax, DWORD PTR _lpNumberOfFreeClusters$[ebp]
  002da	8b 55 e8	 mov	 edx, DWORD PTR _lpBytesPerSector$[ebp]
  002dd	f7 e2		 mul	 edx
  002df	8b 4d c0	 mov	 ecx, DWORD PTR _lpSectorsPerCluster$[ebp]
  002e2	33 f6		 xor	 esi, esi
  002e4	56		 push	 esi
  002e5	51		 push	 ecx
  002e6	52		 push	 edx
  002e7	50		 push	 eax
  002e8	e8 00 00 00 00	 call	 __allmul
  002ed	89 45 ec	 mov	 DWORD PTR _totalbytes$[ebp], eax
  002f0	89 55 f0	 mov	 DWORD PTR _totalbytes$[ebp+4], edx

; 768  : 
; 769  :     return totalbytes;

  002f3	8b 55 ec	 mov	 edx, DWORD PTR _totalbytes$[ebp]
  002f6	89 95 2c fe ff
	ff		 mov	 DWORD PTR $T353689[ebp], edx
  002fc	8b 45 f0	 mov	 eax, DWORD PTR _totalbytes$[ebp+4]
  002ff	89 85 30 fe ff
	ff		 mov	 DWORD PTR $T353689[ebp+4], eax
  00305	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0030c	8d 4d c4	 lea	 ecx, DWORD PTR _strProcName$[ebp]
  0030f	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> >
  00314	8b 85 2c fe ff
	ff		 mov	 eax, DWORD PTR $T353689[ebp]
  0031a	8b 95 30 fe ff
	ff		 mov	 edx, DWORD PTR $T353689[ebp+4]
$LN12@GetFreeDis:

; 770  : }

  00320	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00323	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0032a	59		 pop	 ecx
  0032b	5e		 pop	 esi
  0032c	8b 4d e0	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  0032f	33 cd		 xor	 ecx, ebp
  00331	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00336	8b e5		 mov	 esp, ebp
  00338	5d		 pop	 ebp
  00339	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?GetFreeDiskSpace@@YA_KXZ$0:
  00000	8d 4d c4	 lea	 ecx, DWORD PTR _strProcName$[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$?GetFreeDiskSpace@@YA_KXZ$1:
  00008	8d 8d 50 fe ff
	ff		 lea	 ecx, DWORD PTR $T353685[ebp]
  0000e	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$?GetFreeDiskSpace@@YA_KXZ:
  00013	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00017	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0001a	8b 8a 2c fe ff
	ff		 mov	 ecx, DWORD PTR [edx-468]
  00020	33 c8		 xor	 ecx, eax
  00022	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00027	8b 4a ec	 mov	 ecx, DWORD PTR [edx-20]
  0002a	33 c8		 xor	 ecx, eax
  0002c	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00031	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?GetFreeDiskSpace@@YA_KXZ
  00036	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?GetFreeDiskSpace@@YA_KXZ ENDP				; GetFreeDiskSpace
PUBLIC	__$ArrayPad$
PUBLIC	?TimeShiftRecord@@YAHXZ				; TimeShiftRecord
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?TimeShiftRecord@@YAHXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?TimeShiftRecord@@YAHXZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$?TimeShiftRecord@@YAHXZ$1
	DD	01H
	DD	FLAT:__unwindfunclet$?TimeShiftRecord@@YAHXZ$2
	DD	00H
	DD	FLAT:__unwindfunclet$?TimeShiftRecord@@YAHXZ$2
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?TimeShiftRecord@@YAHXZ$2
__ehfuncinfo$?TimeShiftRecord@@YAHXZ DD 019930522H
	DD	05H
	DD	FLAT:__unwindtable$?TimeShiftRecord@@YAHXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?TimeShiftRecord@@YAHXZ
_TEXT	SEGMENT
tv248 = -780						; size = 4
tv352 = -776						; size = 4
tv355 = -772						; size = 4
$T358629 = -768						; size = 28
$T358628 = -740						; size = 4
$T358627 = -736						; size = 128
_VideoFormat$142650 = -608				; size = 4
_bugText$142640 = -604					; size = 28
_rate$ = -576						; size = 4
_fileName$ = -572					; size = 522
__$ArrayPad$ = -44					; size = 4
_deviceId$ = -40					; size = 4
_result$ = -36						; size = 4
_limit$ = -32						; size = 4
_freeSpace$ = -28					; size = 8
_scale$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
?TimeShiftRecord@@YAHXZ PROC				; TimeShiftRecord, COMDAT

; 939  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?TimeShiftRecord@@YAHXZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	81 ec 00 03 00
	00		 sub	 esp, 768		; 00000300H
  00017	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001c	33 c5		 xor	 eax, ebp
  0001e	89 45 d4	 mov	 DWORD PTR __$ArrayPad$[ebp], eax
  00021	56		 push	 esi
  00022	50		 push	 eax
  00023	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  00026	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax

; 940  :     int       deviceId;
; 941  :     DWORD     rate, scale;
; 942  :     TCHAR     fileName[MAX_PATH + 1];
; 943  :     BOOL      result = FALSE;

  0002c	c7 45 dc 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 944  :     ULONGLONG freeSpace;
; 945  :     DWORD     limit;
; 946  : 
; 947  :     if (!timeShift.IsValid())

  00033	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00038	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  0003d	85 c0		 test	 eax, eax
  0003f	75 07		 jne	 SHORT $LN26@TimeShiftR@2

; 948  :        return FALSE;

  00041	33 c0		 xor	 eax, eax
  00043	e9 bc 05 00 00	 jmp	 $LN27@TimeShiftR@2
$LN26@TimeShiftR@2:

; 949  : 
; 950  :     /* If less than 300 MB free disk space don't even start recoding */
; 951  :     freeSpace = GetFreeDiskSpace();

  00048	e8 00 00 00 00	 call	 ?GetFreeDiskSpace@@YA_KXZ ; GetFreeDiskSpace
  0004d	89 45 e4	 mov	 DWORD PTR _freeSpace$[ebp], eax
  00050	89 55 e8	 mov	 DWORD PTR _freeSpace$[ebp+4], edx

; 952  :     if (freeSpace < 314572800)

  00053	83 7d e8 00	 cmp	 DWORD PTR _freeSpace$[ebp+4], 0
  00057	77 32		 ja	 SHORT $LN25@TimeShiftR@2
  00059	72 09		 jb	 SHORT $LN32@TimeShiftR@2
  0005b	81 7d e4 00 00
	c0 12		 cmp	 DWORD PTR _freeSpace$[ebp], 314572800 ; 12c00000H
  00062	73 27		 jae	 SHORT $LN25@TimeShiftR@2
$LN32@TimeShiftR@2:

; 953  :     {
; 954  :         MessageBox(timeShift->hWnd,
; 955  :                    _T("Sorry! You do not have enough\n")
; 956  :                    _T("disk space to record a video."),
; 957  :                    _T("Information"),
; 958  :                    MB_ICONEXCLAMATION | MB_OK);

  00064	6a 30		 push	 48			; 00000030H
  00066	68 00 00 00 00	 push	 OFFSET ??_C@_1BI@NIHBLACF@?$AAI?$AAn?$AAf?$AAo?$AAr?$AAm?$AAa?$AAt?$AAi?$AAo?$AAn?$AA?$AA@
  0006b	68 00 00 00 00	 push	 OFFSET ??_C@_1HI@IEHEEGLD@?$AAS?$AAo?$AAr?$AAr?$AAy?$AA?$CB?$AA?5?$AAY?$AAo?$AAu?$AA?5?$AAd?$AAo?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAh?$AAa?$AAv?$AAe?$AA?5?$AAe?$AAn?$AAo?$AAu?$AAg?$AAh?$AA?6?$AAd?$AAi@
  00070	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00075	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0007a	8b 40 4c	 mov	 eax, DWORD PTR [eax+76]
  0007d	50		 push	 eax
  0007e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__MessageBoxW@16

; 959  : 
; 960  :         return FALSE;

  00084	33 c0		 xor	 eax, eax
  00086	e9 79 05 00 00	 jmp	 $LN27@TimeShiftR@2
$LN25@TimeShiftR@2:

; 961  :     }
; 962  : 
; 963  :     EnterCriticalSection(&timeShift->lock);

  0008b	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00090	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00095	50		 push	 eax
  00096	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 964  : 
; 965  :     /* Start recording if stopped  */
; 966  :     if (timeShift->mode==MODE_STOPPED)

  0009c	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000a1	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000a6	83 78 18 00	 cmp	 DWORD PTR [eax+24], 0
  000aa	0f 85 40 05 00
	00		 jne	 $LN24@TimeShiftR@2

; 967  :     {
; 968  :         /* Clear all variables. */
; 969  :         TimeShiftStop();

  000b0	e8 00 00 00 00	 call	 ?TimeShiftStop@@YAHXZ	; TimeShiftStop

; 970  : 
; 971  :         /* Update the recording format */
; 972  :         TimeShiftGetDimensions(&timeShift->bih, timeShift->recHeight,
; 973  :                                timeShift->format);

  000b5	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000ba	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000bf	8b 48 1c	 mov	 ecx, DWORD PTR [eax+28]
  000c2	51		 push	 ecx
  000c3	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000c8	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000cd	8b 50 20	 mov	 edx, DWORD PTR [eax+32]
  000d0	52		 push	 edx
  000d1	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000d6	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000db	05 d0 00 00 00	 add	 eax, 208		; 000000d0H
  000e0	50		 push	 eax
  000e1	e8 00 00 00 00	 call	 ?TimeShiftGetDimensions@@YAHPAUtagBITMAPINFOHEADER@@HW4tsFormat_t@@@Z ; TimeShiftGetDimensions
  000e6	83 c4 0c	 add	 esp, 12			; 0000000cH

; 974  : 
; 975  :         /* Set up the scanline function pointers */
; 976  :         if (CpuFeatureFlags & P3_OR_BETTER)

  000e9	a1 00 00 00 00	 mov	 eax, DWORD PTR ?CpuFeatureFlags@@3IA ; CpuFeatureFlags
  000ee	25 00 22 00 00	 and	 eax, 8704		; 00002200H
  000f3	74 64		 je	 SHORT $LN23@TimeShiftR@2

; 977  :         {
; 978  :             if (timeShift->format==FORMAT_YUY2)

  000f5	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000fa	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000ff	83 78 1c 00	 cmp	 DWORD PTR [eax+28], 0
  00103	75 2a		 jne	 SHORT $LN22@TimeShiftR@2

; 979  :             {
; 980  :                 timeShift->lpbCopyScanline = C_CopyYUV;

  00105	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0010a	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0010f	c7 80 0c 01 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+268], OFFSET ?C_CopyYUV@@YAPAEPAE0K@Z ; C_CopyYUV

; 981  :                 timeShift->lpbAvgScanline  = P3_AvgYUV;

  00119	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0011e	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00123	c7 80 10 01 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+272], OFFSET ?P3_AvgYUV@@YAPAEPAE00K@Z ; P3_AvgYUV

; 982  :             } else

  0012d	eb 28		 jmp	 SHORT $LN21@TimeShiftR@2
$LN22@TimeShiftR@2:

; 983  :             {
; 984  :                 timeShift->lpbCopyScanline = P3_YUVtoRGB;

  0012f	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00134	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00139	c7 80 0c 01 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+268], OFFSET ?P3_YUVtoRGB@@YAPAEPAE0K@Z ; P3_YUVtoRGB

; 985  :                 timeShift->lpbAvgScanline  = P3_AvgYUVtoRGB;

  00143	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00148	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0014d	c7 80 10 01 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+272], OFFSET ?P3_AvgYUVtoRGB@@YAPAEPAE00K@Z ; P3_AvgYUVtoRGB
$LN21@TimeShiftR@2:

; 986  :             }
; 987  :         } else

  00157	eb 62		 jmp	 SHORT $LN20@TimeShiftR@2
$LN23@TimeShiftR@2:

; 988  :         {
; 989  :             if (timeShift->format==FORMAT_YUY2)

  00159	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0015e	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00163	83 78 1c 00	 cmp	 DWORD PTR [eax+28], 0
  00167	75 2a		 jne	 SHORT $LN19@TimeShiftR@2

; 990  :             {
; 991  :                 timeShift->lpbCopyScanline = C_CopyYUV;

  00169	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0016e	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00173	c7 80 0c 01 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+268], OFFSET ?C_CopyYUV@@YAPAEPAE0K@Z ; C_CopyYUV

; 992  :                 timeShift->lpbAvgScanline  = C_AvgYUV;

  0017d	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00182	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00187	c7 80 10 01 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+272], OFFSET ?C_AvgYUV@@YAPAEPAE00K@Z ; C_AvgYUV

; 993  :             } else

  00191	eb 28		 jmp	 SHORT $LN20@TimeShiftR@2
$LN19@TimeShiftR@2:

; 994  :             {
; 995  :                 timeShift->lpbCopyScanline = C_YUVtoRGB;

  00193	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00198	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0019d	c7 80 0c 01 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+268], OFFSET ?C_YUVtoRGB@@YAPAEPAE0K@Z ; C_YUVtoRGB

; 996  :                 timeShift->lpbAvgScanline  = C_AvgYUVtoRGB;

  001a7	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  001ac	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  001b1	c7 80 10 01 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+272], OFFSET ?C_AvgYUVtoRGB@@YAPAEPAE00K@Z ; C_AvgYUVtoRGB
$LN20@TimeShiftR@2:

; 997  :             }
; 998  :         }
; 999  : 
; 1000 :         result = TRUE;

  001bb	c7 45 dc 01 00
	00 00		 mov	 DWORD PTR _result$[ebp], 1

; 1001 : 
; 1002 :         /* This buffer shouldn't be allocated at this point */
; 1003 :         if (timeShift->buffer.record)

  001c2	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  001c7	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  001cc	83 78 48 00	 cmp	 DWORD PTR [eax+72], 0
  001d0	0f 84 e9 00 00
	00		 je	 $LN17@TimeShiftR@2

; 1004 :         {
; 1005 :             BUG();

  001d6	c7 85 1c fd ff
	ff ed 03 00 00	 mov	 DWORD PTR $T358628[ebp], 1005 ; 000003edH
  001e0	8d 8d 20 fd ff
	ff		 lea	 ecx, DWORD PTR $T358627[ebp]
  001e6	e8 00 00 00 00	 call	 ??0MakeString@@QAE@XZ
  001eb	89 85 fc fc ff
	ff		 mov	 DWORD PTR tv355[ebp], eax
  001f1	8b 8d fc fc ff
	ff		 mov	 ecx, DWORD PTR tv355[ebp]
  001f7	89 8d f8 fc ff
	ff		 mov	 DWORD PTR tv352[ebp], ecx
  001fd	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00204	8d 95 00 fd ff
	ff		 lea	 edx, DWORD PTR $T358629[ebp]
  0020a	52		 push	 edx
  0020b	8d 85 1c fd ff
	ff		 lea	 eax, DWORD PTR $T358628[ebp]
  00211	50		 push	 eax
  00212	68 00 00 00 00	 push	 OFFSET ??_C@_1BM@CEJCBEB@?$AA?5?$AAa?$AAr?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAl?$AAi?$AAn?$AAe?$AA?5?$AA?$AA@
  00217	68 00 00 00 00	 push	 OFFSET ??_C@_0BA@OBGPPMEH@?4?2TimeShift?4cpp?$AA@
  0021c	68 00 00 00 00	 push	 OFFSET ??_C@_1BM@DNEJLDMB@?$AAB?$AAu?$AAg?$AA?5?$AAf?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAi?$AAn?$AA?5?$AA?$AA@
  00221	8b 8d f8 fc ff
	ff		 mov	 ecx, DWORD PTR tv352[ebp]
  00227	e8 00 00 00 00	 call	 ??$?6$$BY0O@$$CB_W@MakeString@@QAEAAV0@AAY0O@$$CB_W@Z ; MakeString::operator<<<wchar_t const [14]>
  0022c	8b c8		 mov	 ecx, eax
  0022e	e8 00 00 00 00	 call	 ??$?6$$BY0BA@$$CBD@MakeString@@QAEAAV0@AAY0BA@$$CBD@Z ; MakeString::operator<<<char const [16]>
  00233	8b c8		 mov	 ecx, eax
  00235	e8 00 00 00 00	 call	 ??$?6$$BY0O@$$CB_W@MakeString@@QAEAAV0@AAY0O@$$CB_W@Z ; MakeString::operator<<<wchar_t const [14]>
  0023a	8b c8		 mov	 ecx, eax
  0023c	e8 00 00 00 00	 call	 ??$?6H@MakeString@@QAEAAV0@ABH@Z ; MakeString::operator<<<int>
  00241	8b c8		 mov	 ecx, eax
  00243	e8 00 00 00 00	 call	 ??BMakeString@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ ; MakeString::operator std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00248	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  0024c	8d 8d 00 fd ff
	ff		 lea	 ecx, DWORD PTR $T358629[ebp]
  00252	51		 push	 ecx
  00253	8d 8d a4 fd ff
	ff		 lea	 ecx, DWORD PTR _bugText$142640[ebp]
  00259	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV01@@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  0025e	c6 45 fc 03	 mov	 BYTE PTR __$EHRec$[ebp+8], 3
  00262	8d 8d 00 fd ff
	ff		 lea	 ecx, DWORD PTR $T358629[ebp]
  00268	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> >
  0026d	c6 45 fc 04	 mov	 BYTE PTR __$EHRec$[ebp+8], 4
  00271	8d 8d 20 fd ff
	ff		 lea	 ecx, DWORD PTR $T358627[ebp]
  00277	e8 00 00 00 00	 call	 ??1MakeString@@QAE@XZ
  0027c	6a 00		 push	 0
  0027e	68 00 00 00 00	 push	 OFFSET ??_C@_1M@ILHOPKA@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?$AA@
  00283	8d 8d a4 fd ff
	ff		 lea	 ecx, DWORD PTR _bugText$142640[ebp]
  00289	e8 00 00 00 00	 call	 ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str
  0028e	50		 push	 eax
  0028f	6a 00		 push	 0
  00291	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__MessageBoxW@16
  00297	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0029e	8d 8d a4 fd ff
	ff		 lea	 ecx, DWORD PTR _bugText$142640[ebp]
  002a4	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> >

; 1006 :             free(timeShift->buffer.record);

  002a9	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  002ae	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  002b3	8b 50 48	 mov	 edx, DWORD PTR [eax+72]
  002b6	52		 push	 edx
  002b7	e8 00 00 00 00	 call	 _free
  002bc	83 c4 04	 add	 esp, 4
$LN17@TimeShiftR@2:

; 1007 :         }
; 1008 : 
; 1009 :         timeShift->buffer.record = (BYTE *)malloc(timeShift->bih.biSizeImage);

  002bf	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  002c4	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  002c9	8b 80 e4 00 00
	00		 mov	 eax, DWORD PTR [eax+228]
  002cf	50		 push	 eax
  002d0	e8 00 00 00 00	 call	 _malloc
  002d5	83 c4 04	 add	 esp, 4
  002d8	8b f0		 mov	 esi, eax
  002da	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  002df	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  002e4	89 70 48	 mov	 DWORD PTR [eax+72], esi

; 1010 :         if (!timeShift->buffer.record)

  002e7	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  002ec	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  002f1	83 78 48 00	 cmp	 DWORD PTR [eax+72], 0
  002f5	75 2c		 jne	 SHORT $LN16@TimeShiftR@2

; 1011 :         {
; 1012 :             TimeShiftStop();

  002f7	e8 00 00 00 00	 call	 ?TimeShiftStop@@YAHXZ	; TimeShiftStop

; 1013 : 
; 1014 :             MessageBox(timeShift->hWnd, _T("Could not allocate a recording ")
; 1015 :                                         _T("buffer. Your system is too low on ")
; 1016 :                                         _T("memory."),
; 1017 :                                         _T("Error"),
; 1018 :                                         MB_OK | MB_ICONERROR);

  002fc	6a 10		 push	 16			; 00000010H
  002fe	68 00 00 00 00	 push	 OFFSET ??_C@_1M@ILHOPKA@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?$AA@
  00303	68 00 00 00 00	 push	 OFFSET ??_C@_1JC@JGKNOFEE@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAa?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA?5?$AAa?$AA?5?$AAr?$AAe?$AAc?$AAo?$AAr?$AAd?$AAi?$AAn?$AAg?$AA?5?$AAb@
  00308	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0030d	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00312	8b 48 4c	 mov	 ecx, DWORD PTR [eax+76]
  00315	51		 push	 ecx
  00316	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__MessageBoxW@16

; 1019 : 
; 1020 :             result = FALSE;

  0031c	c7 45 dc 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0
$LN16@TimeShiftR@2:

; 1021 :         }
; 1022 : 
; 1023 :         /* Get the file name to use */
; 1024 :         if (result && FindNextFileName(fileName, sizeof(fileName)))

  00323	83 7d dc 00	 cmp	 DWORD PTR _result$[ebp], 0
  00327	0f 84 bc 02 00
	00		 je	 $LN15@TimeShiftR@2
  0032d	68 0a 02 00 00	 push	 522			; 0000020aH
  00332	8d 95 c4 fd ff
	ff		 lea	 edx, DWORD PTR _fileName$[ebp]
  00338	52		 push	 edx
  00339	e8 00 00 00 00	 call	 ?FindNextFileName@@YAHPA_WK@Z ; FindNextFileName
  0033e	83 c4 08	 add	 esp, 8
  00341	85 c0		 test	 eax, eax
  00343	0f 84 a0 02 00
	00		 je	 $LN15@TimeShiftR@2

; 1025 :         {
; 1026 :             timeShift->file = aviFileCreate();

  00349	e8 00 00 00 00	 call	 _aviFileCreate
  0034e	8b f0		 mov	 esi, eax
  00350	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00355	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0035a	89 b0 14 01 00
	00		 mov	 DWORD PTR [eax+276], esi

; 1027 :             if (!timeShift->file)

  00360	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00365	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0036a	83 b8 14 01 00
	00 00		 cmp	 DWORD PTR [eax+276], 0
  00371	75 2c		 jne	 SHORT $LN14@TimeShiftR@2

; 1028 :             {
; 1029 :                 TimeShiftStop();

  00373	e8 00 00 00 00	 call	 ?TimeShiftStop@@YAHXZ	; TimeShiftStop

; 1030 : 
; 1031 :                 MessageBox(timeShift->hWnd, _T("Could not allocate memory for ")
; 1032 :                                             _T("the AVI recording data. Your ")
; 1033 :                                             _T("system is too low on memory"),
; 1034 :                                             _T("Error"),
; 1035 :                                             MB_OK | MB_ICONERROR);

  00378	6a 10		 push	 16			; 00000010H
  0037a	68 00 00 00 00	 push	 OFFSET ??_C@_1M@ILHOPKA@?$AAE?$AAr?$AAr?$AAo?$AAr?$AA?$AA@
  0037f	68 00 00 00 00	 push	 OFFSET ??_C@_1KO@OKHAKCAA@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAa?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA?5?$AAm?$AAe?$AAm?$AAo?$AAr?$AAy?$AA?5?$AAf?$AAo?$AAr?$AA?5?$AAt?$AAh@
  00384	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00389	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0038e	8b 40 4c	 mov	 eax, DWORD PTR [eax+76]
  00391	50		 push	 eax
  00392	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__MessageBoxW@16

; 1036 : 
; 1037 :                 result = FALSE;

  00398	c7 45 dc 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0
$LN14@TimeShiftR@2:

; 1038 :             }
; 1039 : 
; 1040 :             if (result)

  0039f	83 7d dc 00	 cmp	 DWORD PTR _result$[ebp], 0
  003a3	0f 84 4f 01 00
	00		 je	 $LN13@TimeShiftR@2

; 1041 :             {
; 1042 :                 eVideoFormat VideoFormat;
; 1043 : 
; 1044 :                 if (Providers_GetCurrentSource())

  003a9	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  003ae	85 c0		 test	 eax, eax
  003b0	74 26		 je	 SHORT $LN12@TimeShiftR@2

; 1045 :                    VideoFormat = Providers_GetCurrentSource()->GetFormat();

  003b2	e8 00 00 00 00	 call	 ?Providers_GetCurrentSource@@YAPAVCSource@@XZ ; Providers_GetCurrentSource
  003b7	89 85 f4 fc ff
	ff		 mov	 DWORD PTR tv248[ebp], eax
  003bd	8b 8d f4 fc ff
	ff		 mov	 ecx, DWORD PTR tv248[ebp]
  003c3	8b 11		 mov	 edx, DWORD PTR [ecx]
  003c5	8b 8d f4 fc ff
	ff		 mov	 ecx, DWORD PTR tv248[ebp]
  003cb	8b 42 64	 mov	 eax, DWORD PTR [edx+100]
  003ce	ff d0		 call	 eax
  003d0	89 85 a0 fd ff
	ff		 mov	 DWORD PTR _VideoFormat$142650[ebp], eax

; 1046 :                    else

  003d6	eb 0a		 jmp	 SHORT $LN11@TimeShiftR@2
$LN12@TimeShiftR@2:

; 1047 :                    VideoFormat = VIDEOFORMAT_NTSC_M;

  003d8	c7 85 a0 fd ff
	ff 11 00 00 00	 mov	 DWORD PTR _VideoFormat$142650[ebp], 17 ; 00000011H
$LN11@TimeShiftR@2:

; 1048 : 
; 1049 :                 if (GetTVFormat(VideoFormat)->Is25fps)

  003e2	8b 8d a0 fd ff
	ff		 mov	 ecx, DWORD PTR _VideoFormat$142650[ebp]
  003e8	51		 push	 ecx
  003e9	e8 00 00 00 00	 call	 ?GetTVFormat@@YAPAUTTVFormat@@W4eVideoFormat@@@Z ; GetTVFormat
  003ee	83 c4 04	 add	 esp, 4
  003f1	83 78 10 00	 cmp	 DWORD PTR [eax+16], 0
  003f5	74 13		 je	 SHORT $LN10@TimeShiftR@2

; 1050 :                 {
; 1051 :                     /* PAL */
; 1052 :                     rate  = PAL_RATE;

  003f7	c7 85 c0 fd ff
	ff 19 00 00 00	 mov	 DWORD PTR _rate$[ebp], 25 ; 00000019H

; 1053 :                     scale = PAL_SCALE;

  00401	c7 45 f0 01 00
	00 00		 mov	 DWORD PTR _scale$[ebp], 1

; 1054 :                 } else

  00408	eb 11		 jmp	 SHORT $LN9@TimeShiftR@2
$LN10@TimeShiftR@2:

; 1055 :                 {
; 1056 :                     /* NTSC */
; 1057 :                     rate  = NTSC_RATE;

  0040a	c7 85 c0 fd ff
	ff 1e 00 00 00	 mov	 DWORD PTR _rate$[ebp], 30 ; 0000001eH

; 1058 :                     scale = NTSC_SCALE;

  00414	c7 45 f0 01 00
	00 00		 mov	 DWORD PTR _scale$[ebp], 1
$LN9@TimeShiftR@2:

; 1059 :                 }
; 1060 : 
; 1061 :                 /* Set the format of the video stream */
; 1062 :                 aviVideoDefineStream(timeShift->file, rate, scale,
; 1063 :                                      timeShift->bih.biWidth,
; 1064 :                                      timeShift->bih.biHeight);

  0041b	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00420	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00425	8b 90 d8 00 00
	00		 mov	 edx, DWORD PTR [eax+216]
  0042b	52		 push	 edx
  0042c	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00431	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00436	8b 80 d4 00 00
	00		 mov	 eax, DWORD PTR [eax+212]
  0043c	50		 push	 eax
  0043d	8b 4d f0	 mov	 ecx, DWORD PTR _scale$[ebp]
  00440	51		 push	 ecx
  00441	8b 95 c0 fd ff
	ff		 mov	 edx, DWORD PTR _rate$[ebp]
  00447	52		 push	 edx
  00448	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0044d	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00452	8b 80 14 01 00
	00		 mov	 eax, DWORD PTR [eax+276]
  00458	50		 push	 eax
  00459	e8 00 00 00 00	 call	 _aviVideoDefineStream
  0045e	83 c4 14	 add	 esp, 20			; 00000014H

; 1065 :                 aviVideoSetHandler(timeShift->file,
; 1066 :                                    timeShift->fccHandler,
; 1067 :                                    timeShift->bih.biCompression,
; 1068 :                                    timeShift->bih.biBitCount);

  00461	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00466	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0046b	0f b7 88 de 00
	00 00		 movzx	 ecx, WORD PTR [eax+222]
  00472	51		 push	 ecx
  00473	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00478	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0047d	8b 90 e0 00 00
	00		 mov	 edx, DWORD PTR [eax+224]
  00483	52		 push	 edx
  00484	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00489	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0048e	8b 40 24	 mov	 eax, DWORD PTR [eax+36]
  00491	50		 push	 eax
  00492	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00497	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0049c	8b 88 14 01 00
	00		 mov	 ecx, DWORD PTR [eax+276]
  004a2	51		 push	 ecx
  004a3	e8 00 00 00 00	 call	 _aviVideoSetHandler
  004a8	83 c4 10	 add	 esp, 16			; 00000010H

; 1069 : 
; 1070 :                 if (TimeShiftGetWaveInDeviceIndex(&deviceId))

  004ab	8d 55 d8	 lea	 edx, DWORD PTR _deviceId$[ebp]
  004ae	52		 push	 edx
  004af	e8 00 00 00 00	 call	 ?TimeShiftGetWaveInDeviceIndex@@YAHPAH@Z ; TimeShiftGetWaveInDeviceIndex
  004b4	83 c4 04	 add	 esp, 4
  004b7	85 c0		 test	 eax, eax
  004b9	74 3d		 je	 SHORT $LN13@TimeShiftR@2

; 1071 :                 {
; 1072 :                     /* Set the format of the audio stream */
; 1073 :                     aviAudioDefineStream(timeShift->file, deviceId,
; 1074 :                                          &timeShift->waveFormat,
; 1075 :                                          &timeShift->waveFormat);

  004bb	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  004c0	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  004c5	05 f8 00 00 00	 add	 eax, 248		; 000000f8H
  004ca	50		 push	 eax
  004cb	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  004d0	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  004d5	05 f8 00 00 00	 add	 eax, 248		; 000000f8H
  004da	50		 push	 eax
  004db	8b 45 d8	 mov	 eax, DWORD PTR _deviceId$[ebp]
  004de	50		 push	 eax
  004df	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  004e4	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  004e9	8b 88 14 01 00
	00		 mov	 ecx, DWORD PTR [eax+276]
  004ef	51		 push	 ecx
  004f0	e8 00 00 00 00	 call	 _aviAudioDefineStream
  004f5	83 c4 10	 add	 esp, 16			; 00000010H
$LN13@TimeShiftR@2:

; 1076 :                 }
; 1077 :             }
; 1078 : 
; 1079 :             if (result)

  004f8	83 7d dc 00	 cmp	 DWORD PTR _result$[ebp], 0
  004fc	0f 84 e5 00 00
	00		 je	 $LN7@TimeShiftR@2

; 1080 :             {
; 1081 :                 limit = GetMaximumVolumeFileSize(fileName);

  00502	8d 95 c4 fd ff
	ff		 lea	 edx, DWORD PTR _fileName$[ebp]
  00508	52		 push	 edx
  00509	e8 00 00 00 00	 call	 ?GetMaximumVolumeFileSize@@YAKPB_W@Z ; GetMaximumVolumeFileSize
  0050e	83 c4 04	 add	 esp, 4
  00511	89 45 e0	 mov	 DWORD PTR _limit$[ebp], eax

; 1082 :                 if (limit)

  00514	83 7d e0 00	 cmp	 DWORD PTR _limit$[ebp], 0
  00518	74 34		 je	 SHORT $LN6@TimeShiftR@2

; 1083 :                 {
; 1084 :                     /* There's a limit to the size of the recorded files. If
; 1085 :                        the set TimeShift limit is 0 (unlimited) or greater than
; 1086 :                        the value that GetMaximumVolumeFileSize returned then
; 1087 :                        use the returned value. Otherwise, use the non-zero
; 1088 :                        limit that the user set. */
; 1089 :                     if (timeShift->sizeLimit && timeShift->sizeLimit < limit)

  0051a	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0051f	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00524	83 78 44 00	 cmp	 DWORD PTR [eax+68], 0
  00528	74 22		 je	 SHORT $LN5@TimeShiftR@2
  0052a	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0052f	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00534	8b 40 44	 mov	 eax, DWORD PTR [eax+68]
  00537	3b 45 e0	 cmp	 eax, DWORD PTR _limit$[ebp]
  0053a	73 10		 jae	 SHORT $LN5@TimeShiftR@2

; 1090 :                        limit = timeShift->sizeLimit;

  0053c	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00541	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00546	8b 48 44	 mov	 ecx, DWORD PTR [eax+68]
  00549	89 4d e0	 mov	 DWORD PTR _limit$[ebp], ecx
$LN5@TimeShiftR@2:

; 1091 :                 } else

  0054c	eb 10		 jmp	 SHORT $LN4@TimeShiftR@2
$LN6@TimeShiftR@2:

; 1092 :                 {
; 1093 :                     /* There's no specific limit to the size of the recorded
; 1094 :                        files so use the limit that was set by the user */
; 1095 :                     limit = timeShift->sizeLimit;

  0054e	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00553	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00558	8b 50 44	 mov	 edx, DWORD PTR [eax+68]
  0055b	89 55 e0	 mov	 DWORD PTR _limit$[ebp], edx
$LN4@TimeShiftR@2:

; 1096 :                 }
; 1097 : 
; 1098 :                 aviSetLimit(timeShift->file, limit);

  0055e	8b 45 e0	 mov	 eax, DWORD PTR _limit$[ebp]
  00561	50		 push	 eax
  00562	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00567	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0056c	8b 88 14 01 00
	00		 mov	 ecx, DWORD PTR [eax+276]
  00572	51		 push	 ecx
  00573	e8 00 00 00 00	 call	 _aviSetLimit
  00578	83 c4 08	 add	 esp, 8

; 1099 :                 if (aviBeginWriting(timeShift->file, fileName))

  0057b	8d 95 c4 fd ff
	ff		 lea	 edx, DWORD PTR _fileName$[ebp]
  00581	52		 push	 edx
  00582	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00587	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0058c	8b 80 14 01 00
	00		 mov	 eax, DWORD PTR [eax+276]
  00592	50		 push	 eax
  00593	e8 00 00 00 00	 call	 _aviBeginWriting
  00598	83 c4 08	 add	 esp, 8
  0059b	85 c0		 test	 eax, eax
  0059d	74 13		 je	 SHORT $LN3@TimeShiftR@2

; 1100 :                    timeShift->mode = MODE_RECORDING;

  0059f	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  005a4	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  005a9	c7 40 18 02 00
	00 00		 mov	 DWORD PTR [eax+24], 2

; 1101 :                    else

  005b0	eb 35		 jmp	 SHORT $LN7@TimeShiftR@2
$LN3@TimeShiftR@2:

; 1102 :                    {
; 1103 :                        aviDisplayError(timeShift->file, timeShift->hWnd, NULL);

  005b2	6a 00		 push	 0
  005b4	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  005b9	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  005be	8b 48 4c	 mov	 ecx, DWORD PTR [eax+76]
  005c1	51		 push	 ecx
  005c2	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  005c7	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  005cc	8b 90 14 01 00
	00		 mov	 edx, DWORD PTR [eax+276]
  005d2	52		 push	 edx
  005d3	e8 00 00 00 00	 call	 _aviDisplayError
  005d8	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1104 :                        TimeShiftStop();

  005db	e8 00 00 00 00	 call	 ?TimeShiftStop@@YAHXZ	; TimeShiftStop

; 1105 :                        result = FALSE;

  005e0	c7 45 dc 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0
$LN7@TimeShiftR@2:

; 1106 :                    }
; 1107 :             }
; 1108 :         } else

  005e7	eb 07		 jmp	 SHORT $LN24@TimeShiftR@2
$LN15@TimeShiftR@2:

; 1109 :           result = FALSE;

  005e9	c7 45 dc 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0
$LN24@TimeShiftR@2:

; 1110 :     }
; 1111 : 
; 1112 :     LeaveCriticalSection(&timeShift->lock);

  005f0	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  005f5	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  005fa	50		 push	 eax
  005fb	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1113 : 
; 1114 :     return result;

  00601	8b 45 dc	 mov	 eax, DWORD PTR _result$[ebp]
$LN27@TimeShiftR@2:

; 1115 : }

  00604	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00607	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0060e	59		 pop	 ecx
  0060f	5e		 pop	 esi
  00610	8b 4d d4	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  00613	33 cd		 xor	 ecx, ebp
  00615	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0061a	8b e5		 mov	 esp, ebp
  0061c	5d		 pop	 ebp
  0061d	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?TimeShiftRecord@@YAHXZ$0:
  00000	8d 8d 20 fd ff
	ff		 lea	 ecx, DWORD PTR $T358627[ebp]
  00006	e9 00 00 00 00	 jmp	 ??1MakeString@@QAE@XZ
__unwindfunclet$?TimeShiftRecord@@YAHXZ$1:
  0000b	8d 8d 00 fd ff
	ff		 lea	 ecx, DWORD PTR $T358629[ebp]
  00011	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__unwindfunclet$?TimeShiftRecord@@YAHXZ$2:
  00016	8d 8d a4 fd ff
	ff		 lea	 ecx, DWORD PTR _bugText$142640[ebp]
  0001c	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__ehhandler$?TimeShiftRecord@@YAHXZ:
  00021	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00025	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00028	8b 8a f8 fc ff
	ff		 mov	 ecx, DWORD PTR [edx-776]
  0002e	33 c8		 xor	 ecx, eax
  00030	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00035	8b 4a e0	 mov	 ecx, DWORD PTR [edx-32]
  00038	33 c8		 xor	 ecx, eax
  0003a	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0003f	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?TimeShiftRecord@@YAHXZ
  00044	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?TimeShiftRecord@@YAHXZ ENDP				; TimeShiftRecord
PUBLIC	?TimeShiftPause@@YAHXZ				; TimeShiftPause
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftPause@@YAHXZ
_TEXT	SEGMENT
_result$ = -4						; size = 4
?TimeShiftPause@@YAHXZ PROC				; TimeShiftPause, COMDAT

; 914  : {

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

; 915  :     BOOL result = FALSE;

  00004	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 916  : 
; 917  :     if (timeShift.IsValid())

  0000b	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00010	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  00015	85 c0		 test	 eax, eax
  00017	74 56		 je	 SHORT $LN5@TimeShiftP

; 918  :     {
; 919  :         EnterCriticalSection(&timeShift->lock);

  00019	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0001e	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00023	50		 push	 eax
  00024	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 920  : 
; 921  :         /* Only start _T("time shifing") if paused */
; 922  :         if (timeShift->mode==MODE_PAUSED)

  0002a	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0002f	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00034	83 78 18 04	 cmp	 DWORD PTR [eax+24], 4
  00038	75 0a		 jne	 SHORT $LN4@TimeShiftP

; 923  :            result = TimeShiftRecord();

  0003a	e8 00 00 00 00	 call	 ?TimeShiftRecord@@YAHXZ	; TimeShiftRecord
  0003f	89 45 fc	 mov	 DWORD PTR _result$[ebp], eax

; 924  :            else if (timeShift->mode==MODE_RECORDING ||

  00042	eb 1a		 jmp	 SHORT $LN3@TimeShiftP
$LN4@TimeShiftP:

; 925  :                     timeShift->mode==MODE_SHIFTING)

  00044	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00049	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  0004e	83 78 18 02	 cmp	 DWORD PTR [eax+24], 2
  00052	74 0a		 je	 SHORT $LN3@TimeShiftP
  00054	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00059	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
$LN3@TimeShiftP:

; 926  :            {
; 927  :                 /* Pause recording/shifting */
; 928  :                 /*timeShift->mode = MODE_PAUSED;
; 929  :                 result = TRUE;*/
; 930  :            }
; 931  : 
; 932  :         LeaveCriticalSection(&timeShift->lock);

  0005e	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00063	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00068	50		 push	 eax
  00069	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4
$LN5@TimeShiftP:

; 933  :     }
; 934  : 
; 935  :     return result;

  0006f	8b 45 fc	 mov	 eax, DWORD PTR _result$[ebp]

; 936  : }

  00072	8b e5		 mov	 esp, ebp
  00074	5d		 pop	 ebp
  00075	c3		 ret	 0
?TimeShiftPause@@YAHXZ ENDP				; TimeShiftPause
PUBLIC	?TimeShiftOnNewInputFrame@@YAHPAUTDeinterlaceInfo@@@Z ; TimeShiftOnNewInputFrame
; Function compile flags: /Odtp
;	COMDAT ?TimeShiftOnNewInputFrame@@YAHPAUTDeinterlaceInfo@@@Z
_TEXT	SEGMENT
_result$ = -8						; size = 4
_error$ = -4						; size = 4
_pInfo$ = 8						; size = 4
?TimeShiftOnNewInputFrame@@YAHPAUTDeinterlaceInfo@@@Z PROC ; TimeShiftOnNewInputFrame, COMDAT

; 1286 : {

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

; 1287 :     BOOL result = FALSE;

  00006	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 1288 :     BOOL error  = FALSE;

  0000d	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _error$[ebp], 0

; 1289 : 
; 1290 :     if (timeShift.IsValid())

  00014	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00019	e8 00 00 00 00	 call	 ?IsValid@?$SmartPtr@VTIME_SHIFT@@@@QBEHXZ ; SmartPtr<TIME_SHIFT>::IsValid
  0001e	85 c0		 test	 eax, eax
  00020	0f 84 d0 00 00
	00		 je	 $LN8@TimeShiftO@3

; 1291 :     {
; 1292 :         EnterCriticalSection(&timeShift->lock);

  00026	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0002b	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00030	50		 push	 eax
  00031	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1293 : 
; 1294 :         if (timeShift->mode==MODE_RECORDING ||
; 1295 :             timeShift->mode==MODE_PAUSED ||
; 1296 :             timeShift->mode==MODE_SHIFTING)

  00037	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0003c	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00041	83 78 18 02	 cmp	 DWORD PTR [eax+24], 2
  00045	74 20		 je	 SHORT $LN6@TimeShiftO@3
  00047	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0004c	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00051	83 78 18 04	 cmp	 DWORD PTR [eax+24], 4
  00055	74 10		 je	 SHORT $LN6@TimeShiftO@3
  00057	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0005c	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00061	83 78 18 03	 cmp	 DWORD PTR [eax+24], 3
  00065	75 47		 jne	 SHORT $LN7@TimeShiftO@3
$LN6@TimeShiftO@3:

; 1297 :         {
; 1298 :             if (!TimeShiftWriteVideo(pInfo))

  00067	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  0006a	50		 push	 eax
  0006b	e8 00 00 00 00	 call	 ?TimeShiftWriteVideo@@YAHPAUTDeinterlaceInfo@@@Z ; TimeShiftWriteVideo
  00070	83 c4 04	 add	 esp, 4
  00073	85 c0		 test	 eax, eax
  00075	75 10		 jne	 SHORT $LN5@TimeShiftO@3

; 1299 :             {
; 1300 :                 result = FALSE;

  00077	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _result$[ebp], 0

; 1301 :                 error  = TRUE;

  0007e	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _error$[ebp], 1

; 1302 :             } else

  00085	eb 27		 jmp	 SHORT $LN7@TimeShiftO@3
$LN5@TimeShiftO@3:

; 1303 :             {
; 1304 :                 /* If the file size limit has been reached then start recording
; 1305 :                    to a different file */
; 1306 :                 if (aviLimitReached(timeShift->file))

  00087	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  0008c	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  00091	8b 88 14 01 00
	00		 mov	 ecx, DWORD PTR [eax+276]
  00097	51		 push	 ecx
  00098	e8 00 00 00 00	 call	 _aviLimitReached
  0009d	83 c4 04	 add	 esp, 4
  000a0	85 c0		 test	 eax, eax
  000a2	74 0a		 je	 SHORT $LN7@TimeShiftO@3

; 1307 :                 {
; 1308 :                     /* This is pretty cheap but it works */
; 1309 :                     TimeShiftStop();

  000a4	e8 00 00 00 00	 call	 ?TimeShiftStop@@YAHXZ	; TimeShiftStop

; 1310 :                     TimeShiftRecord();

  000a9	e8 00 00 00 00	 call	 ?TimeShiftRecord@@YAHXZ	; TimeShiftRecord
$LN7@TimeShiftO@3:

; 1311 :                 }
; 1312 :             }
; 1313 :         }
; 1314 : 
; 1315 :         LeaveCriticalSection(&timeShift->lock);

  000ae	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000b3	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000b8	50		 push	 eax
  000b9	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1316 : 
; 1317 :         /* Stop recording if something bad happened */
; 1318 :         if (error)

  000bf	83 7d fc 00	 cmp	 DWORD PTR _error$[ebp], 0
  000c3	74 31		 je	 SHORT $LN8@TimeShiftO@3

; 1319 :         {
; 1320 :             aviDisplayError(timeShift->file, timeShift->hWnd,
; 1321 :                             _T("Recording stopped. You can try and recover ")
; 1322 :                             _T("the data with VirtualDub."));

  000c5	68 00 00 00 00	 push	 OFFSET ??_C@_1IK@DNNHMFHE@?$AAR?$AAe?$AAc?$AAo?$AAr?$AAd?$AAi?$AAn?$AAg?$AA?5?$AAs?$AAt?$AAo?$AAp?$AAp?$AAe?$AAd?$AA?4?$AA?5?$AAY?$AAo?$AAu?$AA?5?$AAc?$AAa?$AAn?$AA?5?$AAt?$AAr?$AAy?$AA?5?$AAa@
  000ca	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000cf	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000d4	8b 50 4c	 mov	 edx, DWORD PTR [eax+76]
  000d7	52		 push	 edx
  000d8	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  000dd	e8 00 00 00 00	 call	 ??C?$SmartPtr@VTIME_SHIFT@@@@QBEPAVTIME_SHIFT@@XZ ; SmartPtr<TIME_SHIFT>::operator->
  000e2	8b 80 14 01 00
	00		 mov	 eax, DWORD PTR [eax+276]
  000e8	50		 push	 eax
  000e9	e8 00 00 00 00	 call	 _aviDisplayError
  000ee	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1323 :             TimeShiftStop();

  000f1	e8 00 00 00 00	 call	 ?TimeShiftStop@@YAHXZ	; TimeShiftStop
$LN8@TimeShiftO@3:

; 1324 :         } else
; 1325 :         {
; 1326 :         }
; 1327 :     }
; 1328 : 
; 1329 :     return result;

  000f6	8b 45 f8	 mov	 eax, DWORD PTR _result$[ebp]

; 1330 : }

  000f9	8b e5		 mov	 esp, ebp
  000fb	5d		 pop	 ebp
  000fc	c3		 ret	 0
?TimeShiftOnNewInputFrame@@YAHPAUTDeinterlaceInfo@@@Z ENDP ; TimeShiftOnNewInputFrame
; Function compile flags: /Odtp
;	COMDAT ??__EtimeShift@@YAXXZ
text$yc	SEGMENT
??__EtimeShift@@YAXXZ PROC				; `dynamic initializer for 'timeShift'', COMDAT

; 82   : SmartPtr<TIME_SHIFT> timeShift;

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00008	e8 00 00 00 00	 call	 ??0?$SmartPtr@VTIME_SHIFT@@@@QAE@XZ ; SmartPtr<TIME_SHIFT>::SmartPtr<TIME_SHIFT>
  0000d	68 00 00 00 00	 push	 OFFSET ??__FtimeShift@@YAXXZ ; `dynamic atexit destructor for 'timeShift''
  00012	e8 00 00 00 00	 call	 _atexit
  00017	83 c4 04	 add	 esp, 4
  0001a	5d		 pop	 ebp
  0001b	c3		 ret	 0
??__EtimeShift@@YAXXZ ENDP				; `dynamic initializer for 'timeShift''
; Function compile flags: /Odtp
;	COMDAT ??__FtimeShift@@YAXXZ
text$yd	SEGMENT
??__FtimeShift@@YAXXZ PROC				; `dynamic atexit destructor for 'timeShift'', COMDAT
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET ?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A ; timeShift
  00008	e8 00 00 00 00	 call	 ??1?$SmartPtr@VTIME_SHIFT@@@@QAE@XZ ; SmartPtr<TIME_SHIFT>::~SmartPtr<TIME_SHIFT>
  0000d	5d		 pop	 ebp
  0000e	c3		 ret	 0
??__FtimeShift@@YAXXZ ENDP				; `dynamic atexit destructor for 'timeShift''
PUBLIC	?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A	; timeShift
	ALIGN	8

?timeShift@@3V?$SmartPtr@VTIME_SHIFT@@@@A DQ 01H DUP (?) ; timeShift
_timeShift$initializer$ DD FLAT:??__EtimeShift@@YAXXZ
END
