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

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

INCLUDELIB OLDNAMES

PUBLIC	??_C@_0BD@GLPBHHJM@NTSCBadCadenceMode?$AA@	; `string'
PUBLIC	??_C@_0BG@MNMKIEOO@NTSC?5Bad?5Cadence?5Mode?$AA@ ; `string'
PUBLIC	??_C@_0P@CPOCPMKL@MaxCallsToComb?$AA@		; `string'
PUBLIC	??_C@_0BJ@JOINGMEC@Max?5Calls?5to?5Comb?5Method?$AA@ ; `string'
PUBLIC	??_C@_0BC@BKDHBJOP@PulldownSwitchMax?$AA@	; `string'
PUBLIC	??_C@_0BE@JDHJDFDG@Pulldown?5Switch?5Max?$AA@	; `string'
PUBLIC	??_C@_0BH@EANCDPLL@PulldownSwitchInterval?$AA@	; `string'
PUBLIC	??_C@_0BJ@LOJGLBNN@Pulldown?5Switch?5Interval?$AA@ ; `string'
PUBLIC	??_C@_0BB@GOANIPEL@bFallbackToVideo?$AA@	; `string'
PUBLIC	??_C@_0BE@MMMBGGCD@Bad?5Pulldown?5Filter?$AA@	; `string'
PUBLIC	??_C@_0BG@LBMEOPPI@ThresholdPulldownComb?$AA@	; `string'
PUBLIC	??_C@_0BM@NGENMKCC@Threshold?53?32?5Pulldown?5Comb?$AA@ ; `string'
PUBLIC	??_C@_0BK@JNDMECDG@ThresholdPulldownMismatch?$AA@ ; `string'
PUBLIC	??_C@_0CA@NDMEEIDJ@Threshold?53?32?5Pulldown?5Mismatch?$AA@ ; `string'
PUBLIC	??_C@_0BE@IBBFIAGE@Threshold32Pulldown?$AA@	; `string'
PUBLIC	??_C@_0BH@MEINJNHK@Threshold?53?32?5Pulldown?$AA@ ; `string'
PUBLIC	??_C@_0BF@FDFHOHFN@PulldownRepeatCount2?$AA@	; `string'
PUBLIC	??_C@_0BP@IOKMMLME@NTSC?5Pulldown?5Repeat?5Count?5Out?$AA@ ; `string'
PUBLIC	??_C@_0BE@CMKDDMHC@PulldownRepeatCount?$AA@	; `string'
PUBLIC	??_C@_0BO@OIPHDPJA@NTSC?5Pulldown?5Repeat?5Count?5In?$AA@ ; `string'
PUBLIC	??_C@_0BF@JAPEIMED@NTSCFilmFallbackMode?$AA@	; `string'
PUBLIC	??_C@_0BA@JABMAFFC@NTSC?5Video?5Mode?$AA@	; `string'
PUBLIC	?FilmModeNTSCComb@@YAHPAUTDeinterlaceInfo@@@Z	; FilmModeNTSCComb
PUBLIC	?FilmModeNTSC5th@@YAHPAUTDeinterlaceInfo@@@Z	; FilmModeNTSC5th
PUBLIC	?FilmModeNTSC4th@@YAHPAUTDeinterlaceInfo@@@Z	; FilmModeNTSC4th
PUBLIC	?FilmModeNTSC3rd@@YAHPAUTDeinterlaceInfo@@@Z	; FilmModeNTSC3rd
PUBLIC	?FilmModeNTSC2nd@@YAHPAUTDeinterlaceInfo@@@Z	; FilmModeNTSC2nd
PUBLIC	?FilmModeNTSC1st@@YAHPAUTDeinterlaceInfo@@@Z	; FilmModeNTSC1st
PUBLIC	?ModeSwitchTimestamps@@3PAKA			; ModeSwitchTimestamps
PUBLIC	?ModeSwitchMethods@@3PAPAU_DEINTERLACE_METHOD@@A ; ModeSwitchMethods
PUBLIC	?NumSwitches@@3HA				; NumSwitches
PUBLIC	?NTSCFilmFallbackIndex@@3JA			; NTSCFilmFallbackIndex
PUBLIC	?NTSCBadCadenceIndex@@3JA			; NTSCBadCadenceIndex
PUBLIC	?Threshold32Pulldown@@3JA			; Threshold32Pulldown
PUBLIC	?ThresholdPulldownMismatch@@3JA			; ThresholdPulldownMismatch
PUBLIC	?ThresholdPulldownComb@@3JA			; ThresholdPulldownComb
PUBLIC	?bFallbackToVideo@@3HA				; bFallbackToVideo
PUBLIC	?PulldownRepeatCount@@3JA			; PulldownRepeatCount
PUBLIC	?PulldownRepeatCount2@@3JA			; PulldownRepeatCount2
PUBLIC	?PulldownSwitchMax@@3JA				; PulldownSwitchMax
PUBLIC	?PulldownSwitchInterval@@3JA			; PulldownSwitchInterval
PUBLIC	?MaxCallsToNTSCComb@@3JA			; MaxCallsToNTSCComb
PUBLIC	?NextPulldownRepeatCount@@3JA			; NextPulldownRepeatCount
PUBLIC	??_C@_1DM@NGLDAEND@?$AAB?$AAa?$AAc?$AAk?$AA?5?$AAt?$AAo?$AA?5?$AAV?$AAi?$AAd?$AAe?$AAo?$AA?0?$AA?5?$AAN?$AAo?$AA?5?$AAf?$AAi?$AAe?$AAl?$AAd?$AA?5?$AAp?$AAa?$AAi?$AAr?$AAs?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DM@FEHJHAGL@?$AAB?$AAa?$AAc?$AAk?$AA?5?$AAt?$AAo?$AA?5?$AAV?$AAi?$AAd?$AAe?$AAo?$AA?0?$AA?5?$AAc?$AAo?$AAm?$AAb?$AA?5?$AAf?$AAa?$AAc?$AAt?$AAo?$AAr?$AA?5?$AA?$CF?$AAd?$AA?$AA@ ; `string'
PUBLIC	??_C@_1EI@PAKLCFAG@?$AAG?$AAo?$AAn?$AAe?$AA?5?$AAt?$AAo?$AA?5?$AAC?$AAo?$AAm?$AAb?$AA?5?$AAM?$AAe?$AAt?$AAh?$AAo?$AAd?$AA?0?$AA?5?$AAc?$AAo?$AAm?$AAb?$AA?5?$AAf?$AAa?$AAc?$AAt?$AAo?$AAr@ ; `string'
PUBLIC	??_C@_1CK@LMLMKBAI@?$AAG?$AAo?$AAn?$AAe?$AA?5?$AAt?$AAo?$AA?5?$AAf?$AAi?$AAl?$AAm?$AA?5?$AAM?$AAo?$AAd?$AAe?$AA?5?$AA?$CF?$AAd?$AA?$AA@ ; `string'
PUBLIC	??_C@_1FO@PGGFCLIO@?$AAT?$AAo?$AAo?$AA?5?$AAm?$AAu?$AAc?$AAh?$AA?5?$AAf?$AAi?$AAl?$AAm?$AA?5?$AAM?$AAo?$AAd?$AAe?$AA?5?$AAc?$AAy?$AAc?$AAl?$AAi?$AAn?$AAg?$AA?0?$AA?5?$AAs?$AAw?$AAi?$AAt@ ; `string'
PUBLIC	??_C@_1BM@FNJBPAPA@?$AAR?$AAa?$AAp?$AAi?$AAd?$AA?5?$AAC?$AAy?$AAc?$AAl?$AAi?$AAn?$AAg?$AA?$AA@ ; `string'
PUBLIC	??_C@_1CK@HPGEOKAK@?$AAF?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAP?$AAu?$AAl?$AAl?$AAd?$AAo?$AAw?$AAn?$AA?5?$AAM?$AAa?$AAt?$AAc?$AAh?$AA?$AA@ ; `string'
PUBLIC	?FD60Settings@@3PAUSETTING@@A			; FD60Settings
?ModeSwitchTimestamps@@3PAKA DD 032H DUP (?)		; ModeSwitchTimestamps
?ModeSwitchMethods@@3PAPAU_DEINTERLACE_METHOD@@A DD 032H DUP (?) ; ModeSwitchMethods
?NumSwitches@@3HA DD 01H DUP (?)			; NumSwitches
?NextPulldownRepeatCount@@3JA DD 01H DUP (?)		; NextPulldownRepeatCount
;	COMDAT ?MISMATCH_COUNT@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA
_BSS	SEGMENT
?MISMATCH_COUNT@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA DD 01H DUP (?) ; `UpdateNTSCPulldownMode'::`2'::MISMATCH_COUNT
_BSS	ENDS
;	COMDAT ?MOVIE_FIELD_CYCLE@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA
_BSS	SEGMENT
?MOVIE_FIELD_CYCLE@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA DD 01H DUP (?) ; `UpdateNTSCPulldownMode'::`2'::MOVIE_FIELD_CYCLE
_BSS	ENDS
;	COMDAT ?MOVIE_VERIFY_CYCLE@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA
_BSS	SEGMENT
?MOVIE_VERIFY_CYCLE@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA DD 01H DUP (?) ; `UpdateNTSCPulldownMode'::`2'::MOVIE_VERIFY_CYCLE
_BSS	ENDS
;	COMDAT ?OldPulldownMethod@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4PAU_DEINTERLACE_METHOD@@A
_BSS	SEGMENT
?OldPulldownMethod@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4PAU_DEINTERLACE_METHOD@@A DD 01H DUP (?) ; `UpdateNTSCPulldownMode'::`2'::OldPulldownMethod
_BSS	ENDS
;	COMDAT ?LastCombFactor@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA
_BSS	SEGMENT
?LastCombFactor@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA DD 01H DUP (?) ; `UpdateNTSCPulldownMode'::`2'::LastCombFactor
_BSS	ENDS
;	COMDAT ?NumCalls@?1??FilmModeNTSCComb@@YAHPAUTDeinterlaceInfo@@@Z@4JA
_BSS	SEGMENT
?NumCalls@?1??FilmModeNTSCComb@@YAHPAUTDeinterlaceInfo@@@Z@4JA DD 01H DUP (?) ; `FilmModeNTSCComb'::`2'::NumCalls
;	COMDAT ??_C@_0BD@GLPBHHJM@NTSCBadCadenceMode?$AA@
CONST	SEGMENT
??_C@_0BD@GLPBHHJM@NTSCBadCadenceMode?$AA@ DB 'NTSCBadCadenceMode', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BG@MNMKIEOO@NTSC?5Bad?5Cadence?5Mode?$AA@
CONST	SEGMENT
??_C@_0BG@MNMKIEOO@NTSC?5Bad?5Cadence?5Mode?$AA@ DB 'NTSC Bad Cadence Mod'
	DB	'e', 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_0P@CPOCPMKL@MaxCallsToComb?$AA@
CONST	SEGMENT
??_C@_0P@CPOCPMKL@MaxCallsToComb?$AA@ DB 'MaxCallsToComb', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BJ@JOINGMEC@Max?5Calls?5to?5Comb?5Method?$AA@
CONST	SEGMENT
??_C@_0BJ@JOINGMEC@Max?5Calls?5to?5Comb?5Method?$AA@ DB 'Max Calls to Com'
	DB	'b Method', 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_0BC@BKDHBJOP@PulldownSwitchMax?$AA@
CONST	SEGMENT
??_C@_0BC@BKDHBJOP@PulldownSwitchMax?$AA@ DB 'PulldownSwitchMax', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BE@JDHJDFDG@Pulldown?5Switch?5Max?$AA@
CONST	SEGMENT
??_C@_0BE@JDHJDFDG@Pulldown?5Switch?5Max?$AA@ DB 'Pulldown Switch Max', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BH@EANCDPLL@PulldownSwitchInterval?$AA@
CONST	SEGMENT
??_C@_0BH@EANCDPLL@PulldownSwitchInterval?$AA@ DB 'PulldownSwitchInterval'
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_0BJ@LOJGLBNN@Pulldown?5Switch?5Interval?$AA@
CONST	SEGMENT
??_C@_0BJ@LOJGLBNN@Pulldown?5Switch?5Interval?$AA@ DB 'Pulldown Switch In'
	DB	'terval', 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_0BB@GOANIPEL@bFallbackToVideo?$AA@
CONST	SEGMENT
??_C@_0BB@GOANIPEL@bFallbackToVideo?$AA@ DB 'bFallbackToVideo', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BE@MMMBGGCD@Bad?5Pulldown?5Filter?$AA@
CONST	SEGMENT
??_C@_0BE@MMMBGGCD@Bad?5Pulldown?5Filter?$AA@ DB 'Bad Pulldown Filter', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BG@LBMEOPPI@ThresholdPulldownComb?$AA@
CONST	SEGMENT
??_C@_0BG@LBMEOPPI@ThresholdPulldownComb?$AA@ DB 'ThresholdPulldownComb', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BM@NGENMKCC@Threshold?53?32?5Pulldown?5Comb?$AA@
CONST	SEGMENT
??_C@_0BM@NGENMKCC@Threshold?53?32?5Pulldown?5Comb?$AA@ DB 'Threshold 3:2'
	DB	' Pulldown Comb', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_0BK@JNDMECDG@ThresholdPulldownMismatch?$AA@
CONST	SEGMENT
??_C@_0BK@JNDMECDG@ThresholdPulldownMismatch?$AA@ DB 'ThresholdPulldownMi'
	DB	'smatch', 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_0CA@NDMEEIDJ@Threshold?53?32?5Pulldown?5Mismatch?$AA@
CONST	SEGMENT
??_C@_0CA@NDMEEIDJ@Threshold?53?32?5Pulldown?5Mismatch?$AA@ DB 'Threshold'
	DB	' 3:2 Pulldown Mismatch', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0BE@IBBFIAGE@Threshold32Pulldown?$AA@
CONST	SEGMENT
??_C@_0BE@IBBFIAGE@Threshold32Pulldown?$AA@ DB 'Threshold32Pulldown', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BH@MEINJNHK@Threshold?53?32?5Pulldown?$AA@
CONST	SEGMENT
??_C@_0BH@MEINJNHK@Threshold?53?32?5Pulldown?$AA@ DB 'Threshold 3:2 Pulld'
	DB	'own', 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_0BF@FDFHOHFN@PulldownRepeatCount2?$AA@
CONST	SEGMENT
??_C@_0BF@FDFHOHFN@PulldownRepeatCount2?$AA@ DB 'PulldownRepeatCount2', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BP@IOKMMLME@NTSC?5Pulldown?5Repeat?5Count?5Out?$AA@
CONST	SEGMENT
??_C@_0BP@IOKMMLME@NTSC?5Pulldown?5Repeat?5Count?5Out?$AA@ DB 'NTSC Pulld'
	DB	'own Repeat Count Out', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_0BE@CMKDDMHC@PulldownRepeatCount?$AA@
CONST	SEGMENT
??_C@_0BE@CMKDDMHC@PulldownRepeatCount?$AA@ DB 'PulldownRepeatCount', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BO@OIPHDPJA@NTSC?5Pulldown?5Repeat?5Count?5In?$AA@
CONST	SEGMENT
??_C@_0BO@OIPHDPJA@NTSC?5Pulldown?5Repeat?5Count?5In?$AA@ DB 'NTSC Pulldo'
	DB	'wn Repeat Count In', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_0BF@JAPEIMED@NTSCFilmFallbackMode?$AA@
CONST	SEGMENT
??_C@_0BF@JAPEIMED@NTSCFilmFallbackMode?$AA@ DB 'NTSCFilmFallbackMode', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BA@JABMAFFC@NTSC?5Video?5Mode?$AA@
CONST	SEGMENT
??_C@_0BA@JABMAFFC@NTSC?5Video?5Mode?$AA@ DB 'NTSC Video Mode', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1CK@HPGEOKAK@?$AAF?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAP?$AAu?$AAl?$AAl?$AAd?$AAo?$AAw?$AAn?$AA?5?$AAM?$AAa?$AAt?$AAc?$AAh?$AA?$AA@
CONST	SEGMENT
??_C@_1CK@HPGEOKAK@?$AAF?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAP?$AAu?$AAl?$AAl?$AAd?$AAo?$AAw?$AAn?$AA?5?$AAM?$AAa?$AAt?$AAc?$AAh?$AA?$AA@ DB 'F'
	DB	00H, 'o', 00H, 'u', 00H, 'n', 00H, 'd', 00H, ' ', 00H, 'P', 00H
	DB	'u', 00H, 'l', 00H, 'l', 00H, 'd', 00H, 'o', 00H, 'w', 00H, 'n'
	DB	00H, ' ', 00H, 'M', 00H, 'a', 00H, 't', 00H, 'c', 00H, 'h', 00H
	DB	00H, 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_1BM@FNJBPAPA@?$AAR?$AAa?$AAp?$AAi?$AAd?$AA?5?$AAC?$AAy?$AAc?$AAl?$AAi?$AAn?$AAg?$AA?$AA@
CONST	SEGMENT
??_C@_1BM@FNJBPAPA@?$AAR?$AAa?$AAp?$AAi?$AAd?$AA?5?$AAC?$AAy?$AAc?$AAl?$AAi?$AAn?$AAg?$AA?$AA@ DB 'R'
	DB	00H, 'a', 00H, 'p', 00H, 'i', 00H, 'd', 00H, ' ', 00H, 'C', 00H
	DB	'y', 00H, 'c', 00H, 'l', 00H, 'i', 00H, 'n', 00H, 'g', 00H, 00H
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_1FO@PGGFCLIO@?$AAT?$AAo?$AAo?$AA?5?$AAm?$AAu?$AAc?$AAh?$AA?5?$AAf?$AAi?$AAl?$AAm?$AA?5?$AAM?$AAo?$AAd?$AAe?$AA?5?$AAc?$AAy?$AAc?$AAl?$AAi?$AAn?$AAg?$AA?0?$AA?5?$AAs?$AAw?$AAi?$AAt@
CONST	SEGMENT
??_C@_1FO@PGGFCLIO@?$AAT?$AAo?$AAo?$AA?5?$AAm?$AAu?$AAc?$AAh?$AA?5?$AAf?$AAi?$AAl?$AAm?$AA?5?$AAM?$AAo?$AAd?$AAe?$AA?5?$AAc?$AAy?$AAc?$AAl?$AAi?$AAn?$AAg?$AA?0?$AA?5?$AAs?$AAw?$AAi?$AAt@ DB 'T'
	DB	00H, 'o', 00H, 'o', 00H, ' ', 00H, 'm', 00H, 'u', 00H, 'c', 00H
	DB	'h', 00H, ' ', 00H, 'f', 00H, 'i', 00H, 'l', 00H, 'm', 00H, ' '
	DB	00H, 'M', 00H, 'o', 00H, 'd', 00H, 'e', 00H, ' ', 00H, 'c', 00H
	DB	'y', 00H, 'c', 00H, 'l', 00H, 'i', 00H, 'n', 00H, 'g', 00H, ','
	DB	00H, ' ', 00H, 's', 00H, 'w', 00H, 'i', 00H, 't', 00H, 'c', 00H
	DB	'h', 00H, 'i', 00H, 'n', 00H, 'g', 00H, ' ', 00H, 't', 00H, 'o'
	DB	00H, ' ', 00H, 'v', 00H, 'i', 00H, 'd', 00H, 'e', 00H, 'o', 00H
	DB	00H, 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_1CK@LMLMKBAI@?$AAG?$AAo?$AAn?$AAe?$AA?5?$AAt?$AAo?$AA?5?$AAf?$AAi?$AAl?$AAm?$AA?5?$AAM?$AAo?$AAd?$AAe?$AA?5?$AA?$CF?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_1CK@LMLMKBAI@?$AAG?$AAo?$AAn?$AAe?$AA?5?$AAt?$AAo?$AA?5?$AAf?$AAi?$AAl?$AAm?$AA?5?$AAM?$AAo?$AAd?$AAe?$AA?5?$AA?$CF?$AAd?$AA?$AA@ DB 'G'
	DB	00H, 'o', 00H, 'n', 00H, 'e', 00H, ' ', 00H, 't', 00H, 'o', 00H
	DB	' ', 00H, 'f', 00H, 'i', 00H, 'l', 00H, 'm', 00H, ' ', 00H, 'M'
	DB	00H, 'o', 00H, 'd', 00H, 'e', 00H, ' ', 00H, '%', 00H, 'd', 00H
	DB	00H, 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_1EI@PAKLCFAG@?$AAG?$AAo?$AAn?$AAe?$AA?5?$AAt?$AAo?$AA?5?$AAC?$AAo?$AAm?$AAb?$AA?5?$AAM?$AAe?$AAt?$AAh?$AAo?$AAd?$AA?0?$AA?5?$AAc?$AAo?$AAm?$AAb?$AA?5?$AAf?$AAa?$AAc?$AAt?$AAo?$AAr@
CONST	SEGMENT
??_C@_1EI@PAKLCFAG@?$AAG?$AAo?$AAn?$AAe?$AA?5?$AAt?$AAo?$AA?5?$AAC?$AAo?$AAm?$AAb?$AA?5?$AAM?$AAe?$AAt?$AAh?$AAo?$AAd?$AA?0?$AA?5?$AAc?$AAo?$AAm?$AAb?$AA?5?$AAf?$AAa?$AAc?$AAt?$AAo?$AAr@ DB 'G'
	DB	00H, 'o', 00H, 'n', 00H, 'e', 00H, ' ', 00H, 't', 00H, 'o', 00H
	DB	' ', 00H, 'C', 00H, 'o', 00H, 'm', 00H, 'b', 00H, ' ', 00H, 'M'
	DB	00H, 'e', 00H, 't', 00H, 'h', 00H, 'o', 00H, 'd', 00H, ',', 00H
	DB	' ', 00H, 'c', 00H, 'o', 00H, 'm', 00H, 'b', 00H, ' ', 00H, 'f'
	DB	00H, 'a', 00H, 'c', 00H, 't', 00H, 'o', 00H, 'r', 00H, ' ', 00H
	DB	'%', 00H, 'd', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1DM@FEHJHAGL@?$AAB?$AAa?$AAc?$AAk?$AA?5?$AAt?$AAo?$AA?5?$AAV?$AAi?$AAd?$AAe?$AAo?$AA?0?$AA?5?$AAc?$AAo?$AAm?$AAb?$AA?5?$AAf?$AAa?$AAc?$AAt?$AAo?$AAr?$AA?5?$AA?$CF?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_1DM@FEHJHAGL@?$AAB?$AAa?$AAc?$AAk?$AA?5?$AAt?$AAo?$AA?5?$AAV?$AAi?$AAd?$AAe?$AAo?$AA?0?$AA?5?$AAc?$AAo?$AAm?$AAb?$AA?5?$AAf?$AAa?$AAc?$AAt?$AAo?$AAr?$AA?5?$AA?$CF?$AAd?$AA?$AA@ DB 'B'
	DB	00H, 'a', 00H, 'c', 00H, 'k', 00H, ' ', 00H, 't', 00H, 'o', 00H
	DB	' ', 00H, 'V', 00H, 'i', 00H, 'd', 00H, 'e', 00H, 'o', 00H, ','
	DB	00H, ' ', 00H, 'c', 00H, 'o', 00H, 'm', 00H, 'b', 00H, ' ', 00H
	DB	'f', 00H, 'a', 00H, 'c', 00H, 't', 00H, 'o', 00H, 'r', 00H, ' '
	DB	00H, '%', 00H, 'd', 00H, 00H, 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_1DM@NGLDAEND@?$AAB?$AAa?$AAc?$AAk?$AA?5?$AAt?$AAo?$AA?5?$AAV?$AAi?$AAd?$AAe?$AAo?$AA?0?$AA?5?$AAN?$AAo?$AA?5?$AAf?$AAi?$AAe?$AAl?$AAd?$AA?5?$AAp?$AAa?$AAi?$AAr?$AAs?$AA?$AA@
CONST	SEGMENT
??_C@_1DM@NGLDAEND@?$AAB?$AAa?$AAc?$AAk?$AA?5?$AAt?$AAo?$AA?5?$AAV?$AAi?$AAd?$AAe?$AAo?$AA?0?$AA?5?$AAN?$AAo?$AA?5?$AAf?$AAi?$AAe?$AAl?$AAd?$AA?5?$AAp?$AAa?$AAi?$AAr?$AAs?$AA?$AA@ DB 'B'
	DB	00H, 'a', 00H, 'c', 00H, 'k', 00H, ' ', 00H, 't', 00H, 'o', 00H
	DB	' ', 00H, 'V', 00H, 'i', 00H, 'd', 00H, 'e', 00H, 'o', 00H, ','
	DB	00H, ' ', 00H, 'N', 00H, 'o', 00H, ' ', 00H, 'f', 00H, 'i', 00H
	DB	'e', 00H, 'l', 00H, 'd', 00H, ' ', 00H, 'p', 00H, 'a', 00H, 'i'
	DB	00H, 'r', 00H, 's', 00H, 00H, 00H		; `string'
CONST	ENDS
;	COMDAT ?LastFilmMode@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4W4eFilmPulldownMode@@A
_DATA	SEGMENT
?LastFilmMode@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4W4eFilmPulldownMode@@A DD 09H ; `UpdateNTSCPulldownMode'::`2'::LastFilmMode
?NTSCFilmFallbackIndex@@3JA DD 010H			; NTSCFilmFallbackIndex
?NTSCBadCadenceIndex@@3JA DD 011H			; NTSCBadCadenceIndex
?Threshold32Pulldown@@3JA DD 0fH			; Threshold32Pulldown
?ThresholdPulldownMismatch@@3JA DD 064H			; ThresholdPulldownMismatch
?ThresholdPulldownComb@@3JA DD 012cH			; ThresholdPulldownComb
?bFallbackToVideo@@3HA DD 01H				; bFallbackToVideo
?PulldownRepeatCount@@3JA DD 04H			; PulldownRepeatCount
?PulldownRepeatCount2@@3JA DD 02H			; PulldownRepeatCount2
?PulldownSwitchMax@@3JA DD 04H				; PulldownSwitchMax
?PulldownSwitchInterval@@3JA DD 0bb8H			; PulldownSwitchInterval
?MaxCallsToNTSCComb@@3JA DD 014H			; MaxCallsToNTSCComb
?FD60Settings@@3PAUSETTING@@A DD FLAT:??_C@_0BA@JABMAFFC@NTSC?5Video?5Mode?$AA@ ; FD60Settings
	DD	03H
	DD	00H
	DD	FLAT:?NTSCFilmFallbackIndex@@3JA
	DD	010H
	DD	00H
	DD	063H
	DD	01H
	DD	01H
	DD	FLAT:?DeinterlaceNames@@3PAPBDA
	DD	FLAT:??_C@_08BJADNCEH@Pulldown?$AA@
	DD	FLAT:??_C@_0BF@JAPEIMED@NTSCFilmFallbackMode?$AA@
	DD	00H
	DD	FLAT:??_C@_0BO@OIPHDPJA@NTSC?5Pulldown?5Repeat?5Count?5In?$AA@
	DD	04H
	DD	00H
	DD	FLAT:?PulldownRepeatCount@@3JA
	DD	04H
	DD	01H
	DD	0aH
	DD	01H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_08BJADNCEH@Pulldown?$AA@
	DD	FLAT:??_C@_0BE@CMKDDMHC@PulldownRepeatCount?$AA@
	DD	00H
	DD	FLAT:??_C@_0BP@IOKMMLME@NTSC?5Pulldown?5Repeat?5Count?5Out?$AA@
	DD	04H
	DD	00H
	DD	FLAT:?PulldownRepeatCount2@@3JA
	DD	02H
	DD	01H
	DD	0aH
	DD	01H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_08BJADNCEH@Pulldown?$AA@
	DD	FLAT:??_C@_0BF@FDFHOHFN@PulldownRepeatCount2?$AA@
	DD	00H
	DD	FLAT:??_C@_0BH@MEINJNHK@Threshold?53?32?5Pulldown?$AA@
	DD	04H
	DD	00H
	DD	FLAT:?Threshold32Pulldown@@3JA
	DD	0fH
	DD	01H
	DD	01388H
	DD	05H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_08BJADNCEH@Pulldown?$AA@
	DD	FLAT:??_C@_0BE@IBBFIAGE@Threshold32Pulldown?$AA@
	DD	00H
	DD	FLAT:??_C@_0CA@NDMEEIDJ@Threshold?53?32?5Pulldown?5Mismatch?$AA@
	DD	04H
	DD	00H
	DD	FLAT:?ThresholdPulldownMismatch@@3JA
	DD	064H
	DD	01H
	DD	02710H
	DD	0aH
	DD	01H
	DD	00H
	DD	FLAT:??_C@_08BJADNCEH@Pulldown?$AA@
	DD	FLAT:??_C@_0BK@JNDMECDG@ThresholdPulldownMismatch?$AA@
	DD	00H
	DD	FLAT:??_C@_0BM@NGENMKCC@Threshold?53?32?5Pulldown?5Comb?$AA@
	DD	04H
	DD	00H
	DD	FLAT:?ThresholdPulldownComb@@3JA
	DD	012cH
	DD	01H
	DD	01388H
	DD	0aH
	DD	01H
	DD	00H
	DD	FLAT:??_C@_08BJADNCEH@Pulldown?$AA@
	DD	FLAT:??_C@_0BG@LBMEOPPI@ThresholdPulldownComb?$AA@
	DD	00H
	DD	FLAT:??_C@_0BE@MMMBGGCD@Bad?5Pulldown?5Filter?$AA@
	DD	01H
	DD	00H
	DD	FLAT:?bFallbackToVideo@@3HA
	DD	01H
	DD	00H
	DD	01H
	DD	01H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_08BJADNCEH@Pulldown?$AA@
	DD	FLAT:??_C@_0BB@GOANIPEL@bFallbackToVideo?$AA@
	DD	00H
	DD	FLAT:??_C@_0BJ@LOJGLBNN@Pulldown?5Switch?5Interval?$AA@
	DD	04H
	DD	00H
	DD	FLAT:?PulldownSwitchInterval@@3JA
	DD	0bb8H
	DD	00H
	DD	02710H
	DD	0aH
	DD	01H
	DD	00H
	DD	FLAT:??_C@_08BJADNCEH@Pulldown?$AA@
	DD	FLAT:??_C@_0BH@EANCDPLL@PulldownSwitchInterval?$AA@
	DD	00H
	DD	FLAT:??_C@_0BE@JDHJDFDG@Pulldown?5Switch?5Max?$AA@
	DD	04H
	DD	00H
	DD	FLAT:?PulldownSwitchMax@@3JA
	DD	04H
	DD	00H
	DD	064H
	DD	0aH
	DD	01H
	DD	00H
	DD	FLAT:??_C@_08BJADNCEH@Pulldown?$AA@
	DD	FLAT:??_C@_0BC@BKDHBJOP@PulldownSwitchMax?$AA@
	DD	00H
	DD	FLAT:??_C@_0BJ@JOINGMEC@Max?5Calls?5to?5Comb?5Method?$AA@
	DD	04H
	DD	00H
	DD	FLAT:?MaxCallsToNTSCComb@@3JA
	DD	014H
	DD	00H
	DD	03e8H
	DD	0aH
	DD	01H
	DD	00H
	DD	FLAT:??_C@_08BJADNCEH@Pulldown?$AA@
	DD	FLAT:??_C@_0P@CPOCPMKL@MaxCallsToComb?$AA@
	DD	00H
	DD	FLAT:??_C@_0BG@MNMKIEOO@NTSC?5Bad?5Cadence?5Mode?$AA@
	DD	03H
	DD	00H
	DD	FLAT:?NTSCBadCadenceIndex@@3JA
	DD	011H
	DD	00H
	DD	063H
	DD	01H
	DD	01H
	DD	FLAT:?DeinterlaceNames@@3PAPBDA
	DD	FLAT:??_C@_08BJADNCEH@Pulldown?$AA@
	DD	FLAT:??_C@_0BD@GLPBHHJM@NTSCBadCadenceMode?$AA@
	DD	00H
PUBLIC	?FD60_SetMenu@@YAXPAUHMENU__@@@Z		; FD60_SetMenu
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\fd_60hz.cpp
;	COMDAT ?FD60_SetMenu@@YAXPAUHMENU__@@@Z
_TEXT	SEGMENT
_hMenu$ = 8						; size = 4
?FD60_SetMenu@@YAXPAUHMENU__@@@Z PROC			; FD60_SetMenu, COMDAT

; 691  : {

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

; 692  :     CheckMenuItemBool(hMenu, IDM_FALLBACK, bFallbackToVideo);

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

; 693  : }

  0001f	5d		 pop	 ebp
  00020	c3		 ret	 0
?FD60_SetMenu@@YAXPAUHMENU__@@@Z ENDP			; FD60_SetMenu
_TEXT	ENDS
PUBLIC	?FD60_GetSetting@@YAPAUSETTING@@W4FD60_SETTING@@@Z ; FD60_GetSetting
; Function compile flags: /Odtp
;	COMDAT ?FD60_GetSetting@@YAPAUSETTING@@W4FD60_SETTING@@@Z
_TEXT	SEGMENT
_Setting$ = 8						; size = 4
?FD60_GetSetting@@YAPAUSETTING@@W4FD60_SETTING@@@Z PROC	; FD60_GetSetting, COMDAT

; 679  : {

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

; 680  :     if(Setting > -1 && Setting < FD60_SETTING_LASTONE)

  00003	83 7d 08 ff	 cmp	 DWORD PTR _Setting$[ebp], -1
  00007	7e 15		 jle	 SHORT $LN2@FD60_GetSe
  00009	83 7d 08 0b	 cmp	 DWORD PTR _Setting$[ebp], 11 ; 0000000bH
  0000d	7d 0f		 jge	 SHORT $LN2@FD60_GetSe

; 681  :     {
; 682  :         return &(FD60Settings[Setting]);

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

; 683  :     }
; 684  :     else

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

; 685  :     {
; 686  :         return NULL;

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

; 687  :     }
; 688  : }

  00020	5d		 pop	 ebp
  00021	c3		 ret	 0
?FD60_GetSetting@@YAPAUSETTING@@W4FD60_SETTING@@@Z ENDP	; FD60_GetSetting
_TEXT	ENDS
PUBLIC	?FlipNTSC5th@@YAHHH@Z				; FlipNTSC5th
; Function compile flags: /Odtp
;	COMDAT ?FlipNTSC5th@@YAHHH@Z
_TEXT	SEGMENT
tv64 = -8						; size = 4
_bFlipNow$ = -4						; size = 4
_CurrentFrame$ = 8					; size = 4
_bIsOdd$ = 12						; size = 4
?FlipNTSC5th@@YAHHH@Z PROC				; FlipNTSC5th, COMDAT

; 506  : {

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

; 507  :     BOOL bFlipNow;
; 508  :     // Film Mode.  If we have an entire new frame, display it.
; 509  :     switch(CurrentFrame)

  00006	8b 45 08	 mov	 eax, DWORD PTR _CurrentFrame$[ebp]
  00009	89 45 f8	 mov	 DWORD PTR tv64[ebp], eax
  0000c	83 7d f8 04	 cmp	 DWORD PTR tv64[ebp], 4
  00010	77 3d		 ja	 SHORT $LN6@FlipNTSC5t
  00012	8b 4d f8	 mov	 ecx, DWORD PTR tv64[ebp]
  00015	ff 24 8d 00 00
	00 00		 jmp	 DWORD PTR $LN10@FlipNTSC5t[ecx*4]
$LN5@FlipNTSC5t:

; 510  :     {
; 511  :     case 0:  bFlipNow = !bIsOdd;  break;

  0001c	33 d2		 xor	 edx, edx
  0001e	83 7d 0c 00	 cmp	 DWORD PTR _bIsOdd$[ebp], 0
  00022	0f 94 c2	 sete	 dl
  00025	89 55 fc	 mov	 DWORD PTR _bFlipNow$[ebp], edx
  00028	eb 25		 jmp	 SHORT $LN6@FlipNTSC5t
$LN4@FlipNTSC5t:

; 512  :     case 1:  bFlipNow = !bIsOdd;  break;

  0002a	33 c0		 xor	 eax, eax
  0002c	83 7d 0c 00	 cmp	 DWORD PTR _bIsOdd$[ebp], 0
  00030	0f 94 c0	 sete	 al
  00033	89 45 fc	 mov	 DWORD PTR _bFlipNow$[ebp], eax
  00036	eb 17		 jmp	 SHORT $LN6@FlipNTSC5t
$LN3@FlipNTSC5t:

; 513  :     case 2:  bFlipNow = bIsOdd;   break;

  00038	8b 4d 0c	 mov	 ecx, DWORD PTR _bIsOdd$[ebp]
  0003b	89 4d fc	 mov	 DWORD PTR _bFlipNow$[ebp], ecx
  0003e	eb 0f		 jmp	 SHORT $LN6@FlipNTSC5t
$LN2@FlipNTSC5t:

; 514  :     case 3:  bFlipNow = bIsOdd;   break;

  00040	8b 55 0c	 mov	 edx, DWORD PTR _bIsOdd$[ebp]
  00043	89 55 fc	 mov	 DWORD PTR _bFlipNow$[ebp], edx
  00046	eb 07		 jmp	 SHORT $LN6@FlipNTSC5t
$LN1@FlipNTSC5t:

; 515  :     case 4:  bFlipNow = FALSE;    break;

  00048	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _bFlipNow$[ebp], 0
$LN6@FlipNTSC5t:

; 516  :     }
; 517  :     return bFlipNow;

  0004f	8b 45 fc	 mov	 eax, DWORD PTR _bFlipNow$[ebp]

; 518  : }

  00052	8b e5		 mov	 esp, ebp
  00054	5d		 pop	 ebp
  00055	c3		 ret	 0
  00056	8b ff		 npad	 2
$LN10@FlipNTSC5t:
  00058	00 00 00 00	 DD	 $LN5@FlipNTSC5t
  0005c	00 00 00 00	 DD	 $LN4@FlipNTSC5t
  00060	00 00 00 00	 DD	 $LN3@FlipNTSC5t
  00064	00 00 00 00	 DD	 $LN2@FlipNTSC5t
  00068	00 00 00 00	 DD	 $LN1@FlipNTSC5t
?FlipNTSC5th@@YAHHH@Z ENDP				; FlipNTSC5th
_TEXT	ENDS
PUBLIC	?FlipNTSC4th@@YAHHH@Z				; FlipNTSC4th
; Function compile flags: /Odtp
;	COMDAT ?FlipNTSC4th@@YAHHH@Z
_TEXT	SEGMENT
tv64 = -8						; size = 4
_bFlipNow$ = -4						; size = 4
_CurrentFrame$ = 8					; size = 4
_bIsOdd$ = 12						; size = 4
?FlipNTSC4th@@YAHHH@Z PROC				; FlipNTSC4th, COMDAT

; 491  : {

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

; 492  :     BOOL bFlipNow;
; 493  :     // Film Mode.  If we have an entire new frame, display it.
; 494  :     switch(CurrentFrame)

  00006	8b 45 08	 mov	 eax, DWORD PTR _CurrentFrame$[ebp]
  00009	89 45 f8	 mov	 DWORD PTR tv64[ebp], eax
  0000c	83 7d f8 04	 cmp	 DWORD PTR tv64[ebp], 4
  00010	77 3d		 ja	 SHORT $LN6@FlipNTSC4t
  00012	8b 4d f8	 mov	 ecx, DWORD PTR tv64[ebp]
  00015	ff 24 8d 00 00
	00 00		 jmp	 DWORD PTR $LN10@FlipNTSC4t[ecx*4]
$LN5@FlipNTSC4t:

; 495  :     {
; 496  :     case 0:  bFlipNow = !bIsOdd;  break;

  0001c	33 d2		 xor	 edx, edx
  0001e	83 7d 0c 00	 cmp	 DWORD PTR _bIsOdd$[ebp], 0
  00022	0f 94 c2	 sete	 dl
  00025	89 55 fc	 mov	 DWORD PTR _bFlipNow$[ebp], edx
  00028	eb 25		 jmp	 SHORT $LN6@FlipNTSC4t
$LN4@FlipNTSC4t:

; 497  :     case 1:  bFlipNow = bIsOdd;   break;

  0002a	8b 45 0c	 mov	 eax, DWORD PTR _bIsOdd$[ebp]
  0002d	89 45 fc	 mov	 DWORD PTR _bFlipNow$[ebp], eax
  00030	eb 1d		 jmp	 SHORT $LN6@FlipNTSC4t
$LN3@FlipNTSC4t:

; 498  :     case 2:  bFlipNow = bIsOdd;   break;

  00032	8b 4d 0c	 mov	 ecx, DWORD PTR _bIsOdd$[ebp]
  00035	89 4d fc	 mov	 DWORD PTR _bFlipNow$[ebp], ecx
  00038	eb 15		 jmp	 SHORT $LN6@FlipNTSC4t
$LN2@FlipNTSC4t:

; 499  :     case 3:  bFlipNow = FALSE;    break;

  0003a	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _bFlipNow$[ebp], 0
  00041	eb 0c		 jmp	 SHORT $LN6@FlipNTSC4t
$LN1@FlipNTSC4t:

; 500  :     case 4:  bFlipNow = !bIsOdd;  break;

  00043	33 d2		 xor	 edx, edx
  00045	83 7d 0c 00	 cmp	 DWORD PTR _bIsOdd$[ebp], 0
  00049	0f 94 c2	 sete	 dl
  0004c	89 55 fc	 mov	 DWORD PTR _bFlipNow$[ebp], edx
$LN6@FlipNTSC4t:

; 501  :     }
; 502  :     return bFlipNow;

  0004f	8b 45 fc	 mov	 eax, DWORD PTR _bFlipNow$[ebp]

; 503  : }

  00052	8b e5		 mov	 esp, ebp
  00054	5d		 pop	 ebp
  00055	c3		 ret	 0
  00056	8b ff		 npad	 2
$LN10@FlipNTSC4t:
  00058	00 00 00 00	 DD	 $LN5@FlipNTSC4t
  0005c	00 00 00 00	 DD	 $LN4@FlipNTSC4t
  00060	00 00 00 00	 DD	 $LN3@FlipNTSC4t
  00064	00 00 00 00	 DD	 $LN2@FlipNTSC4t
  00068	00 00 00 00	 DD	 $LN1@FlipNTSC4t
?FlipNTSC4th@@YAHHH@Z ENDP				; FlipNTSC4th
_TEXT	ENDS
PUBLIC	?FlipNTSC3rd@@YAHHH@Z				; FlipNTSC3rd
; Function compile flags: /Odtp
;	COMDAT ?FlipNTSC3rd@@YAHHH@Z
_TEXT	SEGMENT
tv64 = -8						; size = 4
_bFlipNow$ = -4						; size = 4
_CurrentFrame$ = 8					; size = 4
_bIsOdd$ = 12						; size = 4
?FlipNTSC3rd@@YAHHH@Z PROC				; FlipNTSC3rd, COMDAT

; 476  : {

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

; 477  :     BOOL bFlipNow;
; 478  :     // Film Mode.  If we have an entire new frame, display it.
; 479  :     switch(CurrentFrame)

  00006	8b 45 08	 mov	 eax, DWORD PTR _CurrentFrame$[ebp]
  00009	89 45 f8	 mov	 DWORD PTR tv64[ebp], eax
  0000c	83 7d f8 04	 cmp	 DWORD PTR tv64[ebp], 4
  00010	77 3d		 ja	 SHORT $LN6@FlipNTSC3r
  00012	8b 4d f8	 mov	 ecx, DWORD PTR tv64[ebp]
  00015	ff 24 8d 00 00
	00 00		 jmp	 DWORD PTR $LN10@FlipNTSC3r[ecx*4]
$LN5@FlipNTSC3r:

; 480  :     {
; 481  :     case 0:  bFlipNow = bIsOdd;   break;

  0001c	8b 55 0c	 mov	 edx, DWORD PTR _bIsOdd$[ebp]
  0001f	89 55 fc	 mov	 DWORD PTR _bFlipNow$[ebp], edx
  00022	eb 2b		 jmp	 SHORT $LN6@FlipNTSC3r
$LN4@FlipNTSC3r:

; 482  :     case 1:  bFlipNow = bIsOdd;   break;

  00024	8b 45 0c	 mov	 eax, DWORD PTR _bIsOdd$[ebp]
  00027	89 45 fc	 mov	 DWORD PTR _bFlipNow$[ebp], eax
  0002a	eb 23		 jmp	 SHORT $LN6@FlipNTSC3r
$LN3@FlipNTSC3r:

; 483  :     case 2:  bFlipNow = FALSE;    break;

  0002c	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _bFlipNow$[ebp], 0
  00033	eb 1a		 jmp	 SHORT $LN6@FlipNTSC3r
$LN2@FlipNTSC3r:

; 484  :     case 3:  bFlipNow = !bIsOdd;  break;

  00035	33 c9		 xor	 ecx, ecx
  00037	83 7d 0c 00	 cmp	 DWORD PTR _bIsOdd$[ebp], 0
  0003b	0f 94 c1	 sete	 cl
  0003e	89 4d fc	 mov	 DWORD PTR _bFlipNow$[ebp], ecx
  00041	eb 0c		 jmp	 SHORT $LN6@FlipNTSC3r
$LN1@FlipNTSC3r:

; 485  :     case 4:  bFlipNow = !bIsOdd;  break;

  00043	33 d2		 xor	 edx, edx
  00045	83 7d 0c 00	 cmp	 DWORD PTR _bIsOdd$[ebp], 0
  00049	0f 94 c2	 sete	 dl
  0004c	89 55 fc	 mov	 DWORD PTR _bFlipNow$[ebp], edx
$LN6@FlipNTSC3r:

; 486  :     }
; 487  :     return bFlipNow;

  0004f	8b 45 fc	 mov	 eax, DWORD PTR _bFlipNow$[ebp]

; 488  : }

  00052	8b e5		 mov	 esp, ebp
  00054	5d		 pop	 ebp
  00055	c3		 ret	 0
  00056	8b ff		 npad	 2
$LN10@FlipNTSC3r:
  00058	00 00 00 00	 DD	 $LN5@FlipNTSC3r
  0005c	00 00 00 00	 DD	 $LN4@FlipNTSC3r
  00060	00 00 00 00	 DD	 $LN3@FlipNTSC3r
  00064	00 00 00 00	 DD	 $LN2@FlipNTSC3r
  00068	00 00 00 00	 DD	 $LN1@FlipNTSC3r
?FlipNTSC3rd@@YAHHH@Z ENDP				; FlipNTSC3rd
_TEXT	ENDS
PUBLIC	?FlipNTSC2nd@@YAHHH@Z				; FlipNTSC2nd
; Function compile flags: /Odtp
;	COMDAT ?FlipNTSC2nd@@YAHHH@Z
_TEXT	SEGMENT
tv64 = -8						; size = 4
_bFlipNow$ = -4						; size = 4
_CurrentFrame$ = 8					; size = 4
_bIsOdd$ = 12						; size = 4
?FlipNTSC2nd@@YAHHH@Z PROC				; FlipNTSC2nd, COMDAT

; 461  : {

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

; 462  :     BOOL bFlipNow;
; 463  :     // Film Mode.  If we have an entire new frame, display it.
; 464  :     switch(CurrentFrame)

  00006	8b 45 08	 mov	 eax, DWORD PTR _CurrentFrame$[ebp]
  00009	89 45 f8	 mov	 DWORD PTR tv64[ebp], eax
  0000c	83 7d f8 04	 cmp	 DWORD PTR tv64[ebp], 4
  00010	77 3d		 ja	 SHORT $LN6@FlipNTSC2n
  00012	8b 4d f8	 mov	 ecx, DWORD PTR tv64[ebp]
  00015	ff 24 8d 00 00
	00 00		 jmp	 DWORD PTR $LN10@FlipNTSC2n[ecx*4]
$LN5@FlipNTSC2n:

; 465  :     {
; 466  :     case 0:  bFlipNow = bIsOdd;   break;

  0001c	8b 55 0c	 mov	 edx, DWORD PTR _bIsOdd$[ebp]
  0001f	89 55 fc	 mov	 DWORD PTR _bFlipNow$[ebp], edx
  00022	eb 2b		 jmp	 SHORT $LN6@FlipNTSC2n
$LN4@FlipNTSC2n:

; 467  :     case 1:  bFlipNow = FALSE;    break;

  00024	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _bFlipNow$[ebp], 0
  0002b	eb 22		 jmp	 SHORT $LN6@FlipNTSC2n
$LN3@FlipNTSC2n:

; 468  :     case 2:  bFlipNow = !bIsOdd;  break;

  0002d	33 c0		 xor	 eax, eax
  0002f	83 7d 0c 00	 cmp	 DWORD PTR _bIsOdd$[ebp], 0
  00033	0f 94 c0	 sete	 al
  00036	89 45 fc	 mov	 DWORD PTR _bFlipNow$[ebp], eax
  00039	eb 14		 jmp	 SHORT $LN6@FlipNTSC2n
$LN2@FlipNTSC2n:

; 469  :     case 3:  bFlipNow = !bIsOdd;  break;

  0003b	33 c9		 xor	 ecx, ecx
  0003d	83 7d 0c 00	 cmp	 DWORD PTR _bIsOdd$[ebp], 0
  00041	0f 94 c1	 sete	 cl
  00044	89 4d fc	 mov	 DWORD PTR _bFlipNow$[ebp], ecx
  00047	eb 06		 jmp	 SHORT $LN6@FlipNTSC2n
$LN1@FlipNTSC2n:

; 470  :     case 4:  bFlipNow = bIsOdd;   break;

  00049	8b 55 0c	 mov	 edx, DWORD PTR _bIsOdd$[ebp]
  0004c	89 55 fc	 mov	 DWORD PTR _bFlipNow$[ebp], edx
$LN6@FlipNTSC2n:

; 471  :     }
; 472  :     return bFlipNow;

  0004f	8b 45 fc	 mov	 eax, DWORD PTR _bFlipNow$[ebp]

; 473  : }

  00052	8b e5		 mov	 esp, ebp
  00054	5d		 pop	 ebp
  00055	c3		 ret	 0
  00056	8b ff		 npad	 2
$LN10@FlipNTSC2n:
  00058	00 00 00 00	 DD	 $LN5@FlipNTSC2n
  0005c	00 00 00 00	 DD	 $LN4@FlipNTSC2n
  00060	00 00 00 00	 DD	 $LN3@FlipNTSC2n
  00064	00 00 00 00	 DD	 $LN2@FlipNTSC2n
  00068	00 00 00 00	 DD	 $LN1@FlipNTSC2n
?FlipNTSC2nd@@YAHHH@Z ENDP				; FlipNTSC2nd
_TEXT	ENDS
PUBLIC	?FlipNTSC1st@@YAHHH@Z				; FlipNTSC1st
; Function compile flags: /Odtp
;	COMDAT ?FlipNTSC1st@@YAHHH@Z
_TEXT	SEGMENT
tv64 = -8						; size = 4
_bFlipNow$ = -4						; size = 4
_CurrentFrame$ = 8					; size = 4
_bIsOdd$ = 12						; size = 4
?FlipNTSC1st@@YAHHH@Z PROC				; FlipNTSC1st, COMDAT

; 446  : {

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

; 447  :     BOOL bFlipNow;
; 448  :     // Film Mode.  If we have an entire new frame, display it.
; 449  :     switch(CurrentFrame)

  00006	8b 45 08	 mov	 eax, DWORD PTR _CurrentFrame$[ebp]
  00009	89 45 f8	 mov	 DWORD PTR tv64[ebp], eax
  0000c	83 7d f8 04	 cmp	 DWORD PTR tv64[ebp], 4
  00010	77 3d		 ja	 SHORT $LN6@FlipNTSC1s
  00012	8b 4d f8	 mov	 ecx, DWORD PTR tv64[ebp]
  00015	ff 24 8d 00 00
	00 00		 jmp	 DWORD PTR $LN10@FlipNTSC1s[ecx*4]
$LN5@FlipNTSC1s:

; 450  :     {
; 451  :     case 0:  bFlipNow = FALSE;    break;

  0001c	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _bFlipNow$[ebp], 0
  00023	eb 2a		 jmp	 SHORT $LN6@FlipNTSC1s
$LN4@FlipNTSC1s:

; 452  :     case 1:  bFlipNow = !bIsOdd;  break;

  00025	33 d2		 xor	 edx, edx
  00027	83 7d 0c 00	 cmp	 DWORD PTR _bIsOdd$[ebp], 0
  0002b	0f 94 c2	 sete	 dl
  0002e	89 55 fc	 mov	 DWORD PTR _bFlipNow$[ebp], edx
  00031	eb 1c		 jmp	 SHORT $LN6@FlipNTSC1s
$LN3@FlipNTSC1s:

; 453  :     case 2:  bFlipNow = !bIsOdd;  break;

  00033	33 c0		 xor	 eax, eax
  00035	83 7d 0c 00	 cmp	 DWORD PTR _bIsOdd$[ebp], 0
  00039	0f 94 c0	 sete	 al
  0003c	89 45 fc	 mov	 DWORD PTR _bFlipNow$[ebp], eax
  0003f	eb 0e		 jmp	 SHORT $LN6@FlipNTSC1s
$LN2@FlipNTSC1s:

; 454  :     case 3:  bFlipNow = bIsOdd;   break;

  00041	8b 4d 0c	 mov	 ecx, DWORD PTR _bIsOdd$[ebp]
  00044	89 4d fc	 mov	 DWORD PTR _bFlipNow$[ebp], ecx
  00047	eb 06		 jmp	 SHORT $LN6@FlipNTSC1s
$LN1@FlipNTSC1s:

; 455  :     case 4:  bFlipNow = bIsOdd;   break;

  00049	8b 55 0c	 mov	 edx, DWORD PTR _bIsOdd$[ebp]
  0004c	89 55 fc	 mov	 DWORD PTR _bFlipNow$[ebp], edx
$LN6@FlipNTSC1s:

; 456  :     }
; 457  :     return bFlipNow;

  0004f	8b 45 fc	 mov	 eax, DWORD PTR _bFlipNow$[ebp]

; 458  : }

  00052	8b e5		 mov	 esp, ebp
  00054	5d		 pop	 ebp
  00055	c3		 ret	 0
  00056	8b ff		 npad	 2
$LN10@FlipNTSC1s:
  00058	00 00 00 00	 DD	 $LN5@FlipNTSC1s
  0005c	00 00 00 00	 DD	 $LN4@FlipNTSC1s
  00060	00 00 00 00	 DD	 $LN3@FlipNTSC1s
  00064	00 00 00 00	 DD	 $LN2@FlipNTSC1s
  00068	00 00 00 00	 DD	 $LN1@FlipNTSC1s
?FlipNTSC1st@@YAHHH@Z ENDP				; FlipNTSC1st
_TEXT	ENDS
PUBLIC	?GetFilmModeFromPosition@@YA?AW4eFilmPulldownMode@@PAUTDeinterlaceInfo@@@Z ; GetFilmModeFromPosition
; Function compile flags: /Odtp
;	COMDAT ?GetFilmModeFromPosition@@YA?AW4eFilmPulldownMode@@PAUTDeinterlaceInfo@@@Z
_TEXT	SEGMENT
tv73 = -8						; size = 4
tv70 = -4						; size = 4
_pInfo$ = 8						; size = 4
?GetFilmModeFromPosition@@YA?AW4eFilmPulldownMode@@PAUTDeinterlaceInfo@@@Z PROC ; GetFilmModeFromPosition, COMDAT

; 418  : {

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

; 419  :     if(pInfo->PictureHistory[0]->Flags & PICTURE_INTERLACED_ODD)

  00006	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  00009	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  0000c	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  0000f	83 e2 01	 and	 edx, 1
  00012	74 46		 je	 SHORT $LN16@GetFilmMod

; 420  :     {
; 421  :         switch(pInfo->CurrentFrame)

  00014	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  00017	8b 48 40	 mov	 ecx, DWORD PTR [eax+64]
  0001a	89 4d fc	 mov	 DWORD PTR tv70[ebp], ecx
  0001d	83 7d fc 04	 cmp	 DWORD PTR tv70[ebp], 4
  00021	77 35		 ja	 SHORT $LN14@GetFilmMod
  00023	8b 55 fc	 mov	 edx, DWORD PTR tv70[ebp]
  00026	ff 24 95 00 00
	00 00		 jmp	 DWORD PTR $LN19@GetFilmMod[edx*4]
$LN13@GetFilmMod:

; 422  :         {
; 423  :         case 0:  return FILM_32_PULLDOWN_2;  break;

  0002d	b8 04 00 00 00	 mov	 eax, 4
  00032	eb 6f		 jmp	 SHORT $LN17@GetFilmMod
  00034	eb 22		 jmp	 SHORT $LN14@GetFilmMod
$LN12@GetFilmMod:

; 424  :         case 1:  return FILM_32_PULLDOWN_3;  break;

  00036	b8 05 00 00 00	 mov	 eax, 5
  0003b	eb 66		 jmp	 SHORT $LN17@GetFilmMod
  0003d	eb 19		 jmp	 SHORT $LN14@GetFilmMod
$LN11@GetFilmMod:

; 425  :         case 2:  return FILM_32_PULLDOWN_4;  break;

  0003f	b8 06 00 00 00	 mov	 eax, 6
  00044	eb 5d		 jmp	 SHORT $LN17@GetFilmMod
  00046	eb 10		 jmp	 SHORT $LN14@GetFilmMod
$LN10@GetFilmMod:

; 426  :         case 3:  return FILM_32_PULLDOWN_0;  break;

  00048	b8 02 00 00 00	 mov	 eax, 2
  0004d	eb 54		 jmp	 SHORT $LN17@GetFilmMod
  0004f	eb 07		 jmp	 SHORT $LN14@GetFilmMod
$LN9@GetFilmMod:

; 427  :         case 4:  return FILM_32_PULLDOWN_1;  break;

  00051	b8 03 00 00 00	 mov	 eax, 3
  00056	eb 4b		 jmp	 SHORT $LN17@GetFilmMod
$LN14@GetFilmMod:

; 428  :         }
; 429  :     }
; 430  :     else

  00058	eb 44		 jmp	 SHORT $LN8@GetFilmMod
$LN16@GetFilmMod:

; 431  :     {
; 432  :         switch(pInfo->CurrentFrame)

  0005a	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  0005d	8b 48 40	 mov	 ecx, DWORD PTR [eax+64]
  00060	89 4d f8	 mov	 DWORD PTR tv73[ebp], ecx
  00063	83 7d f8 04	 cmp	 DWORD PTR tv73[ebp], 4
  00067	77 35		 ja	 SHORT $LN8@GetFilmMod
  00069	8b 55 f8	 mov	 edx, DWORD PTR tv73[ebp]
  0006c	ff 24 95 00 00
	00 00		 jmp	 DWORD PTR $LN20@GetFilmMod[edx*4]
$LN5@GetFilmMod:

; 433  :         {
; 434  :         case 0:  return FILM_32_PULLDOWN_4;  break;

  00073	b8 06 00 00 00	 mov	 eax, 6
  00078	eb 29		 jmp	 SHORT $LN17@GetFilmMod
  0007a	eb 22		 jmp	 SHORT $LN8@GetFilmMod
$LN4@GetFilmMod:

; 435  :         case 1:  return FILM_32_PULLDOWN_0;  break;

  0007c	b8 02 00 00 00	 mov	 eax, 2
  00081	eb 20		 jmp	 SHORT $LN17@GetFilmMod
  00083	eb 19		 jmp	 SHORT $LN8@GetFilmMod
$LN3@GetFilmMod:

; 436  :         case 2:  return FILM_32_PULLDOWN_1;  break;

  00085	b8 03 00 00 00	 mov	 eax, 3
  0008a	eb 17		 jmp	 SHORT $LN17@GetFilmMod
  0008c	eb 10		 jmp	 SHORT $LN8@GetFilmMod
$LN2@GetFilmMod:

; 437  :         case 3:  return FILM_32_PULLDOWN_2;  break;

  0008e	b8 04 00 00 00	 mov	 eax, 4
  00093	eb 0e		 jmp	 SHORT $LN17@GetFilmMod
  00095	eb 07		 jmp	 SHORT $LN8@GetFilmMod
$LN1@GetFilmMod:

; 438  :         case 4:  return FILM_32_PULLDOWN_3;  break;

  00097	b8 05 00 00 00	 mov	 eax, 5
  0009c	eb 05		 jmp	 SHORT $LN17@GetFilmMod
$LN8@GetFilmMod:

; 439  :         }
; 440  :     }
; 441  :     return FILM_32_PULLDOWN_0;

  0009e	b8 02 00 00 00	 mov	 eax, 2
$LN17@GetFilmMod:

; 442  : }

  000a3	8b e5		 mov	 esp, ebp
  000a5	5d		 pop	 ebp
  000a6	c3		 ret	 0
  000a7	90		 npad	 1
$LN19@GetFilmMod:
  000a8	00 00 00 00	 DD	 $LN13@GetFilmMod
  000ac	00 00 00 00	 DD	 $LN12@GetFilmMod
  000b0	00 00 00 00	 DD	 $LN11@GetFilmMod
  000b4	00 00 00 00	 DD	 $LN10@GetFilmMod
  000b8	00 00 00 00	 DD	 $LN9@GetFilmMod
$LN20@GetFilmMod:
  000bc	00 00 00 00	 DD	 $LN5@GetFilmMod
  000c0	00 00 00 00	 DD	 $LN4@GetFilmMod
  000c4	00 00 00 00	 DD	 $LN3@GetFilmMod
  000c8	00 00 00 00	 DD	 $LN2@GetFilmMod
  000cc	00 00 00 00	 DD	 $LN1@GetFilmMod
?GetFilmModeFromPosition@@YA?AW4eFilmPulldownMode@@PAUTDeinterlaceInfo@@@Z ENDP ; GetFilmModeFromPosition
_TEXT	ENDS
PUBLIC	?ResetModeSwitches@@YAXXZ			; ResetModeSwitches
; Function compile flags: /Odtp
;	COMDAT ?ResetModeSwitches@@YAXXZ
_TEXT	SEGMENT
?ResetModeSwitches@@YAXXZ PROC				; ResetModeSwitches, COMDAT

; 64   : {

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

; 65   :     memset(&ModeSwitchTimestamps[0], 0, sizeof(ModeSwitchTimestamps));

  00003	68 c8 00 00 00	 push	 200			; 000000c8H
  00008	6a 00		 push	 0
  0000a	68 00 00 00 00	 push	 OFFSET ?ModeSwitchTimestamps@@3PAKA ; ModeSwitchTimestamps
  0000f	e8 00 00 00 00	 call	 _memset
  00014	83 c4 0c	 add	 esp, 12			; 0000000cH

; 66   :     memset(&ModeSwitchMethods[0], 0, sizeof(ModeSwitchMethods));

  00017	68 c8 00 00 00	 push	 200			; 000000c8H
  0001c	6a 00		 push	 0
  0001e	68 00 00 00 00	 push	 OFFSET ?ModeSwitchMethods@@3PAPAU_DEINTERLACE_METHOD@@A ; ModeSwitchMethods
  00023	e8 00 00 00 00	 call	 _memset
  00028	83 c4 0c	 add	 esp, 12			; 0000000cH

; 67   :     NumSwitches = 0;

  0002b	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?NumSwitches@@3HA, 0 ; NumSwitches

; 68   : }

  00035	5d		 pop	 ebp
  00036	c3		 ret	 0
?ResetModeSwitches@@YAXXZ ENDP				; ResetModeSwitches
PUBLIC	?DidWeExpectWeave@@YAHPAUTDeinterlaceInfo@@@Z	; DidWeExpectWeave
; Function compile flags: /Odtp
;	COMDAT ?DidWeExpectWeave@@YAHPAUTDeinterlaceInfo@@@Z
_TEXT	SEGMENT
tv71 = -12						; size = 4
_IsOdd$ = -8						; size = 4
_RetVal$ = -4						; size = 4
_pInfo$ = 8						; size = 4
?DidWeExpectWeave@@YAHPAUTDeinterlaceInfo@@@Z PROC	; DidWeExpectWeave, COMDAT

; 574  : {

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

; 575  :     BOOL RetVal;
; 576  :     BOOL IsOdd((pInfo->PictureHistory[0]->Flags & PICTURE_INTERLACED_ODD) > 0);

  00006	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  00009	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  0000c	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  0000f	83 e2 01	 and	 edx, 1
  00012	33 c0		 xor	 eax, eax
  00014	3b c2		 cmp	 eax, edx
  00016	1b c9		 sbb	 ecx, ecx
  00018	f7 d9		 neg	 ecx
  0001a	89 4d f8	 mov	 DWORD PTR _IsOdd$[ebp], ecx

; 577  : 
; 578  :     switch(GetFilmMode())

  0001d	e8 00 00 00 00	 call	 ?GetFilmMode@@YA?AW4eFilmPulldownMode@@XZ ; GetFilmMode
  00022	89 45 f4	 mov	 DWORD PTR tv71[ebp], eax
  00025	8b 55 f4	 mov	 edx, DWORD PTR tv71[ebp]
  00028	83 ea 02	 sub	 edx, 2
  0002b	89 55 f4	 mov	 DWORD PTR tv71[ebp], edx
  0002e	83 7d f4 04	 cmp	 DWORD PTR tv71[ebp], 4
  00032	77 7d		 ja	 SHORT $LN1@DidWeExpec
  00034	8b 45 f4	 mov	 eax, DWORD PTR tv71[ebp]
  00037	ff 24 85 00 00
	00 00		 jmp	 DWORD PTR $LN11@DidWeExpec[eax*4]
$LN6@DidWeExpec:

; 579  :     {
; 580  :     case FILM_32_PULLDOWN_0:
; 581  :         return FlipNTSC1st(pInfo->CurrentFrame, IsOdd);

  0003e	8b 4d f8	 mov	 ecx, DWORD PTR _IsOdd$[ebp]
  00041	51		 push	 ecx
  00042	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  00045	8b 42 40	 mov	 eax, DWORD PTR [edx+64]
  00048	50		 push	 eax
  00049	e8 00 00 00 00	 call	 ?FlipNTSC1st@@YAHHH@Z	; FlipNTSC1st
  0004e	83 c4 08	 add	 esp, 8
  00051	eb 68		 jmp	 SHORT $LN9@DidWeExpec

; 582  :         break;

  00053	eb 63		 jmp	 SHORT $LN7@DidWeExpec
$LN5@DidWeExpec:

; 583  :     case FILM_32_PULLDOWN_1:
; 584  :         return FlipNTSC2nd(pInfo->CurrentFrame, IsOdd);

  00055	8b 4d f8	 mov	 ecx, DWORD PTR _IsOdd$[ebp]
  00058	51		 push	 ecx
  00059	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  0005c	8b 42 40	 mov	 eax, DWORD PTR [edx+64]
  0005f	50		 push	 eax
  00060	e8 00 00 00 00	 call	 ?FlipNTSC2nd@@YAHHH@Z	; FlipNTSC2nd
  00065	83 c4 08	 add	 esp, 8
  00068	eb 51		 jmp	 SHORT $LN9@DidWeExpec

; 585  :         break;

  0006a	eb 4c		 jmp	 SHORT $LN7@DidWeExpec
$LN4@DidWeExpec:

; 586  :     case FILM_32_PULLDOWN_2:
; 587  :         return FlipNTSC3rd(pInfo->CurrentFrame, IsOdd);

  0006c	8b 4d f8	 mov	 ecx, DWORD PTR _IsOdd$[ebp]
  0006f	51		 push	 ecx
  00070	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  00073	8b 42 40	 mov	 eax, DWORD PTR [edx+64]
  00076	50		 push	 eax
  00077	e8 00 00 00 00	 call	 ?FlipNTSC3rd@@YAHHH@Z	; FlipNTSC3rd
  0007c	83 c4 08	 add	 esp, 8
  0007f	eb 3a		 jmp	 SHORT $LN9@DidWeExpec

; 588  :         break;

  00081	eb 35		 jmp	 SHORT $LN7@DidWeExpec
$LN3@DidWeExpec:

; 589  :     case FILM_32_PULLDOWN_3:
; 590  :         return FlipNTSC4th(pInfo->CurrentFrame, IsOdd);

  00083	8b 4d f8	 mov	 ecx, DWORD PTR _IsOdd$[ebp]
  00086	51		 push	 ecx
  00087	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  0008a	8b 42 40	 mov	 eax, DWORD PTR [edx+64]
  0008d	50		 push	 eax
  0008e	e8 00 00 00 00	 call	 ?FlipNTSC4th@@YAHHH@Z	; FlipNTSC4th
  00093	83 c4 08	 add	 esp, 8
  00096	eb 23		 jmp	 SHORT $LN9@DidWeExpec

; 591  :         break;

  00098	eb 1e		 jmp	 SHORT $LN7@DidWeExpec
$LN2@DidWeExpec:

; 592  :     case FILM_32_PULLDOWN_4:
; 593  :         return FlipNTSC5th(pInfo->CurrentFrame, IsOdd);

  0009a	8b 4d f8	 mov	 ecx, DWORD PTR _IsOdd$[ebp]
  0009d	51		 push	 ecx
  0009e	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  000a1	8b 42 40	 mov	 eax, DWORD PTR [edx+64]
  000a4	50		 push	 eax
  000a5	e8 00 00 00 00	 call	 ?FlipNTSC5th@@YAHHH@Z	; FlipNTSC5th
  000aa	83 c4 08	 add	 esp, 8
  000ad	eb 0c		 jmp	 SHORT $LN9@DidWeExpec

; 594  :         break;

  000af	eb 07		 jmp	 SHORT $LN7@DidWeExpec
$LN1@DidWeExpec:

; 595  :     default:
; 596  :         RetVal = FALSE;

  000b1	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _RetVal$[ebp], 0
$LN7@DidWeExpec:

; 597  :         break;
; 598  :     }
; 599  :     return RetVal;

  000b8	8b 45 fc	 mov	 eax, DWORD PTR _RetVal$[ebp]
$LN9@DidWeExpec:

; 600  : }

  000bb	8b e5		 mov	 esp, ebp
  000bd	5d		 pop	 ebp
  000be	c3		 ret	 0
  000bf	90		 npad	 1
$LN11@DidWeExpec:
  000c0	00 00 00 00	 DD	 $LN6@DidWeExpec
  000c4	00 00 00 00	 DD	 $LN5@DidWeExpec
  000c8	00 00 00 00	 DD	 $LN4@DidWeExpec
  000cc	00 00 00 00	 DD	 $LN3@DidWeExpec
  000d0	00 00 00 00	 DD	 $LN2@DidWeExpec
?DidWeExpectWeave@@YAHPAUTDeinterlaceInfo@@@Z ENDP	; DidWeExpectWeave
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?FilmModeNTSC5th@@YAHPAUTDeinterlaceInfo@@@Z
_TEXT	SEGMENT
_pInfo$ = 8						; size = 4
?FilmModeNTSC5th@@YAHPAUTDeinterlaceInfo@@@Z PROC	; FilmModeNTSC5th, COMDAT

; 541  : {

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

; 542  :     return SimpleFilmMode(pInfo, FlipNTSC5th);

  00003	68 00 00 00 00	 push	 OFFSET ?FlipNTSC5th@@YAHHH@Z ; FlipNTSC5th
  00008	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  0000b	50		 push	 eax
  0000c	e8 00 00 00 00	 call	 ?SimpleFilmMode@@YAHPAUTDeinterlaceInfo@@P6AHHH@Z@Z ; SimpleFilmMode
  00011	83 c4 08	 add	 esp, 8

; 543  : }

  00014	5d		 pop	 ebp
  00015	c3		 ret	 0
?FilmModeNTSC5th@@YAHPAUTDeinterlaceInfo@@@Z ENDP	; FilmModeNTSC5th
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?FilmModeNTSC4th@@YAHPAUTDeinterlaceInfo@@@Z
_TEXT	SEGMENT
_pInfo$ = 8						; size = 4
?FilmModeNTSC4th@@YAHPAUTDeinterlaceInfo@@@Z PROC	; FilmModeNTSC4th, COMDAT

; 536  : {

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

; 537  :     return SimpleFilmMode(pInfo, FlipNTSC4th);

  00003	68 00 00 00 00	 push	 OFFSET ?FlipNTSC4th@@YAHHH@Z ; FlipNTSC4th
  00008	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  0000b	50		 push	 eax
  0000c	e8 00 00 00 00	 call	 ?SimpleFilmMode@@YAHPAUTDeinterlaceInfo@@P6AHHH@Z@Z ; SimpleFilmMode
  00011	83 c4 08	 add	 esp, 8

; 538  : }

  00014	5d		 pop	 ebp
  00015	c3		 ret	 0
?FilmModeNTSC4th@@YAHPAUTDeinterlaceInfo@@@Z ENDP	; FilmModeNTSC4th
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?FilmModeNTSC3rd@@YAHPAUTDeinterlaceInfo@@@Z
_TEXT	SEGMENT
_pInfo$ = 8						; size = 4
?FilmModeNTSC3rd@@YAHPAUTDeinterlaceInfo@@@Z PROC	; FilmModeNTSC3rd, COMDAT

; 531  : {

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

; 532  :     return SimpleFilmMode(pInfo, FlipNTSC3rd);

  00003	68 00 00 00 00	 push	 OFFSET ?FlipNTSC3rd@@YAHHH@Z ; FlipNTSC3rd
  00008	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  0000b	50		 push	 eax
  0000c	e8 00 00 00 00	 call	 ?SimpleFilmMode@@YAHPAUTDeinterlaceInfo@@P6AHHH@Z@Z ; SimpleFilmMode
  00011	83 c4 08	 add	 esp, 8

; 533  : }

  00014	5d		 pop	 ebp
  00015	c3		 ret	 0
?FilmModeNTSC3rd@@YAHPAUTDeinterlaceInfo@@@Z ENDP	; FilmModeNTSC3rd
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?FilmModeNTSC2nd@@YAHPAUTDeinterlaceInfo@@@Z
_TEXT	SEGMENT
_pInfo$ = 8						; size = 4
?FilmModeNTSC2nd@@YAHPAUTDeinterlaceInfo@@@Z PROC	; FilmModeNTSC2nd, COMDAT

; 526  : {

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

; 527  :     return SimpleFilmMode(pInfo, FlipNTSC2nd);

  00003	68 00 00 00 00	 push	 OFFSET ?FlipNTSC2nd@@YAHHH@Z ; FlipNTSC2nd
  00008	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  0000b	50		 push	 eax
  0000c	e8 00 00 00 00	 call	 ?SimpleFilmMode@@YAHPAUTDeinterlaceInfo@@P6AHHH@Z@Z ; SimpleFilmMode
  00011	83 c4 08	 add	 esp, 8

; 528  : }

  00014	5d		 pop	 ebp
  00015	c3		 ret	 0
?FilmModeNTSC2nd@@YAHPAUTDeinterlaceInfo@@@Z ENDP	; FilmModeNTSC2nd
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?FilmModeNTSC1st@@YAHPAUTDeinterlaceInfo@@@Z
_TEXT	SEGMENT
_pInfo$ = 8						; size = 4
?FilmModeNTSC1st@@YAHPAUTDeinterlaceInfo@@@Z PROC	; FilmModeNTSC1st, COMDAT

; 521  : {

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

; 522  :     return SimpleFilmMode(pInfo, FlipNTSC1st);

  00003	68 00 00 00 00	 push	 OFFSET ?FlipNTSC1st@@YAHHH@Z ; FlipNTSC1st
  00008	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  0000b	50		 push	 eax
  0000c	e8 00 00 00 00	 call	 ?SimpleFilmMode@@YAHPAUTDeinterlaceInfo@@P6AHHH@Z@Z ; SimpleFilmMode
  00011	83 c4 08	 add	 esp, 8

; 523  : }

  00014	5d		 pop	 ebp
  00015	c3		 ret	 0
?FilmModeNTSC1st@@YAHPAUTDeinterlaceInfo@@@Z ENDP	; FilmModeNTSC1st
_TEXT	ENDS
PUBLIC	?TrackModeSwitches@@YAHXZ			; TrackModeSwitches
; Function compile flags: /Odtp
;	COMDAT ?TrackModeSwitches@@YAHXZ
_TEXT	SEGMENT
_ticks$141099 = -4					; size = 4
?TrackModeSwitches@@YAHXZ PROC				; TrackModeSwitches, COMDAT

; 83   : {

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

; 84   :     if(IsFilmMode() &&
; 85   :         GetCurrentDeintMethod() != ModeSwitchMethods[0])

  00004	e8 00 00 00 00	 call	 ?IsFilmMode@@YAHXZ	; IsFilmMode
  00009	85 c0		 test	 eax, eax
  0000b	0f 84 c1 00 00
	00		 je	 $LN4@TrackModeS@2
  00011	e8 00 00 00 00	 call	 ?GetCurrentDeintMethod@@YAPAU_DEINTERLACE_METHOD@@XZ ; GetCurrentDeintMethod
  00016	3b 05 00 00 00
	00		 cmp	 eax, DWORD PTR ?ModeSwitchMethods@@3PAPAU_DEINTERLACE_METHOD@@A
  0001c	0f 84 b0 00 00
	00		 je	 $LN4@TrackModeS@2

; 86   :     {
; 87   :         // Scroll the list of timestamps.  Most recent is first in the list.
; 88   :         memmove(&ModeSwitchTimestamps[1], &ModeSwitchTimestamps[0], sizeof(ModeSwitchTimestamps) - sizeof(DWORD));

  00022	68 c4 00 00 00	 push	 196			; 000000c4H
  00027	68 00 00 00 00	 push	 OFFSET ?ModeSwitchTimestamps@@3PAKA
  0002c	68 04 00 00 00	 push	 OFFSET ?ModeSwitchTimestamps@@3PAKA+4
  00031	e8 00 00 00 00	 call	 _memmove
  00036	83 c4 0c	 add	 esp, 12			; 0000000cH

; 89   :         memmove(&ModeSwitchMethods[1], &ModeSwitchMethods[0], sizeof(ModeSwitchMethods) - sizeof(DEINTERLACE_METHOD*));

  00039	68 c4 00 00 00	 push	 196			; 000000c4H
  0003e	68 00 00 00 00	 push	 OFFSET ?ModeSwitchMethods@@3PAPAU_DEINTERLACE_METHOD@@A
  00043	68 04 00 00 00	 push	 OFFSET ?ModeSwitchMethods@@3PAPAU_DEINTERLACE_METHOD@@A+4
  00048	e8 00 00 00 00	 call	 _memmove
  0004d	83 c4 0c	 add	 esp, 12			; 0000000cH

; 90   :         ModeSwitchTimestamps[0] = GetTickCount();

  00050	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetTickCount@0
  00056	a3 00 00 00 00	 mov	 DWORD PTR ?ModeSwitchTimestamps@@3PAKA, eax

; 91   :         ModeSwitchMethods[0] = GetCurrentDeintMethod();

  0005b	e8 00 00 00 00	 call	 ?GetCurrentDeintMethod@@YAPAU_DEINTERLACE_METHOD@@XZ ; GetCurrentDeintMethod
  00060	a3 00 00 00 00	 mov	 DWORD PTR ?ModeSwitchMethods@@3PAPAU_DEINTERLACE_METHOD@@A, eax

; 92   :         if(NumSwitches < MAXMODESWITCHES)

  00065	83 3d 00 00 00
	00 32		 cmp	 DWORD PTR ?NumSwitches@@3HA, 50 ; NumSwitches, 00000032H
  0006c	7d 0d		 jge	 SHORT $LN3@TrackModeS@2

; 93   :         {
; 94   :             NumSwitches++;

  0006e	a1 00 00 00 00	 mov	 eax, DWORD PTR ?NumSwitches@@3HA ; NumSwitches
  00073	83 c0 01	 add	 eax, 1
  00076	a3 00 00 00 00	 mov	 DWORD PTR ?NumSwitches@@3HA, eax ; NumSwitches
$LN3@TrackModeS@2:

; 95   :         }
; 96   : 
; 97   :         if (PulldownSwitchMax > 1 && PulldownSwitchInterval > 0 &&  // if the user wants to track switches
; 98   :             PulldownSwitchMax <= NumSwitches &&
; 99   :             ModeSwitchTimestamps[PulldownSwitchMax - 1] > 0)        // and there have been enough of them

  0007b	83 3d 00 00 00
	00 01		 cmp	 DWORD PTR ?PulldownSwitchMax@@3JA, 1 ; PulldownSwitchMax
  00082	7e 4e		 jle	 SHORT $LN4@TrackModeS@2
  00084	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?PulldownSwitchInterval@@3JA, 0 ; PulldownSwitchInterval
  0008b	7e 45		 jle	 SHORT $LN4@TrackModeS@2
  0008d	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?PulldownSwitchMax@@3JA ; PulldownSwitchMax
  00093	3b 0d 00 00 00
	00		 cmp	 ecx, DWORD PTR ?NumSwitches@@3HA ; NumSwitches
  00099	7f 37		 jg	 SHORT $LN4@TrackModeS@2
  0009b	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?PulldownSwitchMax@@3JA ; PulldownSwitchMax
  000a1	83 3c 95 fc ff
	ff ff 00	 cmp	 DWORD PTR ?ModeSwitchTimestamps@@3PAKA[edx*4-4], 0
  000a9	76 27		 jbe	 SHORT $LN4@TrackModeS@2

; 100  :         {
; 101  :             int ticks = ModeSwitchTimestamps[0] - ModeSwitchTimestamps[PulldownSwitchMax - 1];

  000ab	a1 00 00 00 00	 mov	 eax, DWORD PTR ?PulldownSwitchMax@@3JA ; PulldownSwitchMax
  000b0	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?ModeSwitchTimestamps@@3PAKA
  000b6	2b 0c 85 fc ff
	ff ff		 sub	 ecx, DWORD PTR ?ModeSwitchTimestamps@@3PAKA[eax*4-4]
  000bd	89 4d fc	 mov	 DWORD PTR _ticks$141099[ebp], ecx

; 102  :             if (ticks <= PulldownSwitchInterval)

  000c0	8b 55 fc	 mov	 edx, DWORD PTR _ticks$141099[ebp]
  000c3	3b 15 00 00 00
	00		 cmp	 edx, DWORD PTR ?PulldownSwitchInterval@@3JA ; PulldownSwitchInterval
  000c9	7f 07		 jg	 SHORT $LN4@TrackModeS@2

; 103  :                 return TRUE;

  000cb	b8 01 00 00 00	 mov	 eax, 1
  000d0	eb 02		 jmp	 SHORT $LN5@TrackModeS@2
$LN4@TrackModeS@2:

; 104  :         }
; 105  :     }
; 106  : 
; 107  :     return FALSE;

  000d2	33 c0		 xor	 eax, eax
$LN5@TrackModeS@2:

; 108  : }

  000d4	8b e5		 mov	 esp, ebp
  000d6	5d		 pop	 ebp
  000d7	c3		 ret	 0
?TrackModeSwitches@@YAHXZ ENDP				; TrackModeSwitches
; Function compile flags: /Odtp
;	COMDAT ?FilmModeNTSCComb@@YAHPAUTDeinterlaceInfo@@@Z
_TEXT	SEGMENT
_DeintMethod$ = -4					; size = 4
_pInfo$ = 8						; size = 4
?FilmModeNTSCComb@@YAHPAUTDeinterlaceInfo@@@Z PROC	; FilmModeNTSCComb, COMDAT

; 546  : {

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

; 547  :     static long NumCalls = 0;
; 548  :     DEINTERLACE_METHOD* DeintMethod;
; 549  : 
; 550  :     if(pInfo == NULL)

  00004	83 7d 08 00	 cmp	 DWORD PTR _pInfo$[ebp], 0
  00008	75 0e		 jne	 SHORT $LN4@FilmModeNT

; 551  :     {
; 552  :         NumCalls = 0;

  0000a	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?NumCalls@?1??FilmModeNTSCComb@@YAHPAUTDeinterlaceInfo@@@Z@4JA, 0

; 553  :         return FALSE;

  00014	33 c0		 xor	 eax, eax
  00016	eb 7d		 jmp	 SHORT $LN5@FilmModeNT
$LN4@FilmModeNT:

; 554  :     }
; 555  : 
; 556  :     ++NumCalls;

  00018	a1 00 00 00 00	 mov	 eax, DWORD PTR ?NumCalls@?1??FilmModeNTSCComb@@YAHPAUTDeinterlaceInfo@@@Z@4JA
  0001d	83 c0 01	 add	 eax, 1
  00020	a3 00 00 00 00	 mov	 DWORD PTR ?NumCalls@?1??FilmModeNTSCComb@@YAHPAUTDeinterlaceInfo@@@Z@4JA, eax

; 557  :     if(NumCalls > MaxCallsToNTSCComb)

  00025	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?NumCalls@?1??FilmModeNTSCComb@@YAHPAUTDeinterlaceInfo@@@Z@4JA
  0002b	3b 0d 00 00 00
	00		 cmp	 ecx, DWORD PTR ?MaxCallsToNTSCComb@@3JA ; MaxCallsToNTSCComb
  00031	7e 1e		 jle	 SHORT $LN3@FilmModeNT

; 558  :     {
; 559  :         SetVideoDeinterlaceIndex(NTSCFilmFallbackIndex);

  00033	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?NTSCFilmFallbackIndex@@3JA ; NTSCFilmFallbackIndex
  00039	52		 push	 edx
  0003a	e8 00 00 00 00	 call	 ?SetVideoDeinterlaceIndex@@YAXH@Z ; SetVideoDeinterlaceIndex
  0003f	83 c4 04	 add	 esp, 4

; 560  :         LOG(2, _T("Gone back to video from Comb Mode"));

  00042	68 00 00 00 00	 push	 OFFSET ??_C@_1EE@CGONMJLM@?$AAG?$AAo?$AAn?$AAe?$AA?5?$AAb?$AAa?$AAc?$AAk?$AA?5?$AAt?$AAo?$AA?5?$AAv?$AAi?$AAd?$AAe?$AAo?$AA?5?$AAf?$AAr?$AAo?$AAm?$AA?5?$AAC?$AAo?$AAm?$AAb?$AA?5?$AAM?$AAo?$AAd@
  00047	6a 02		 push	 2
  00049	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  0004e	83 c4 08	 add	 esp, 8
$LN3@FilmModeNT:

; 561  :     }
; 562  :     DeintMethod = GetVideoDeintIndex(NTSCBadCadenceIndex);

  00051	a1 00 00 00 00	 mov	 eax, DWORD PTR ?NTSCBadCadenceIndex@@3JA ; NTSCBadCadenceIndex
  00056	50		 push	 eax
  00057	e8 00 00 00 00	 call	 ?GetVideoDeintIndex@@YAPAU_DEINTERLACE_METHOD@@H@Z ; GetVideoDeintIndex
  0005c	83 c4 04	 add	 esp, 4
  0005f	89 45 fc	 mov	 DWORD PTR _DeintMethod$[ebp], eax

; 563  :     if(DeintMethod != NULL && DeintMethod->nMethodIndex == NTSCBadCadenceIndex)

  00062	83 7d fc 00	 cmp	 DWORD PTR _DeintMethod$[ebp], 0
  00066	74 21		 je	 SHORT $LN2@FilmModeNT
  00068	8b 4d fc	 mov	 ecx, DWORD PTR _DeintMethod$[ebp]
  0006b	8b 51 2c	 mov	 edx, DWORD PTR [ecx+44]
  0006e	3b 15 00 00 00
	00		 cmp	 edx, DWORD PTR ?NTSCBadCadenceIndex@@3JA ; NTSCBadCadenceIndex
  00074	75 13		 jne	 SHORT $LN2@FilmModeNT

; 564  :     {
; 565  :         return DeintMethod->pfnAlgorithm(pInfo);

  00076	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  00079	50		 push	 eax
  0007a	8b 4d fc	 mov	 ecx, DWORD PTR _DeintMethod$[ebp]
  0007d	8b 51 18	 mov	 edx, DWORD PTR [ecx+24]
  00080	ff d2		 call	 edx
  00082	83 c4 04	 add	 esp, 4
  00085	eb 0e		 jmp	 SHORT $LN5@FilmModeNT

; 566  :     }
; 567  :     else

  00087	eb 0c		 jmp	 SHORT $LN5@FilmModeNT
$LN2@FilmModeNT:

; 568  :     {
; 569  :         return Bob(pInfo);

  00089	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  0008c	50		 push	 eax
  0008d	e8 00 00 00 00	 call	 ?Bob@@YAHPAUTDeinterlaceInfo@@@Z ; Bob
  00092	83 c4 04	 add	 esp, 4
$LN5@FilmModeNT:

; 570  :     }
; 571  : }

  00095	8b e5		 mov	 esp, ebp
  00097	5d		 pop	 ebp
  00098	c3		 ret	 0
?FilmModeNTSCComb@@YAHPAUTDeinterlaceInfo@@@Z ENDP	; FilmModeNTSCComb
_TEXT	ENDS
PUBLIC	?UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z ; UpdateNTSCPulldownMode
; Function compile flags: /Odtp
;	COMDAT ?UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z
_TEXT	SEGMENT
_NewFilmMode$141134 = -8				; size = 4
_SwitchToVideo$ = -1					; size = 1
_pInfo$ = 8						; size = 4
?UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z PROC ; UpdateNTSCPulldownMode, COMDAT

; 144  : {

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

; 145  :     boolean SwitchToVideo = FALSE;

  00006	c6 45 ff 00	 mov	 BYTE PTR _SwitchToVideo$[ebp], 0

; 146  :     static long MISMATCH_COUNT = 0;
; 147  :     static long MOVIE_FIELD_CYCLE = 0;
; 148  :     static long MOVIE_VERIFY_CYCLE = 0;
; 149  :     static DEINTERLACE_METHOD* OldPulldownMethod = NULL;
; 150  :     static eFilmPulldownMode LastFilmMode = FILMPULLDOWNMODES_LAST_ONE;
; 151  :     static long LastCombFactor = 0;
; 152  : 
; 153  :     // Call with pInfo == NULL is an initialization call.
; 154  :     // This resets static variables when we start the thread each time.
; 155  :     if(pInfo == NULL)

  0000a	83 7d 08 00	 cmp	 DWORD PTR _pInfo$[ebp], 0
  0000e	75 3c		 jne	 SHORT $LN35@UpdateNTSC

; 156  :     {
; 157  :         MOVIE_VERIFY_CYCLE = 0;

  00010	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?MOVIE_VERIFY_CYCLE@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, 0

; 158  :         MOVIE_FIELD_CYCLE = 0;

  0001a	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?MOVIE_FIELD_CYCLE@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, 0

; 159  :         MISMATCH_COUNT = 0;

  00024	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?MISMATCH_COUNT@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, 0

; 160  :         LastFilmMode = FILMPULLDOWNMODES_LAST_ONE;

  0002e	c7 05 00 00 00
	00 09 00 00 00	 mov	 DWORD PTR ?LastFilmMode@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4W4eFilmPulldownMode@@A, 9

; 161  :         LastCombFactor = 0;

  00038	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?LastCombFactor@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, 0

; 162  :         ResetModeSwitches();

  00042	e8 00 00 00 00	 call	 ?ResetModeSwitches@@YAXXZ ; ResetModeSwitches

; 163  :         return;

  00047	e9 23 04 00 00	 jmp	 $LN36@UpdateNTSC
$LN35@UpdateNTSC:

; 164  :     }
; 165  : 
; 166  : 
; 167  :     // If the field difference is bigger than the threshold, then
; 168  :     // the current field is very different from the field two fields ago.
; 169  :     // Threshold32Pulldown probably should be changed to be automatically
; 170  :     // compensating depending on the material.
; 171  : 
; 172  :     //CompareFields(pInfo);
; 173  :     if(pInfo->FieldDiff > Threshold32Pulldown)

  0004c	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  0004f	8b 48 58	 mov	 ecx, DWORD PTR [eax+88]
  00052	3b 0d 00 00 00
	00		 cmp	 ecx, DWORD PTR ?Threshold32Pulldown@@3JA ; Threshold32Pulldown
  00058	0f 8e a2 01 00
	00		 jle	 $LN34@UpdateNTSC

; 174  :     {
; 175  :         if (IsFilmMode())

  0005e	e8 00 00 00 00	 call	 ?IsFilmMode@@YAHXZ	; IsFilmMode
  00063	85 c0		 test	 eax, eax
  00065	0f 84 81 01 00
	00		 je	 $LN33@UpdateNTSC

; 176  :         {
; 177  :             if ((MISMATCH_COUNT > PulldownRepeatCount2 * 5 && bFallbackToVideo) ||
; 178  :                 (MISMATCH_COUNT > PulldownRepeatCount * 5 && !bFallbackToVideo))

  0006b	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?PulldownRepeatCount2@@3JA ; PulldownRepeatCount2
  00071	6b d2 05	 imul	 edx, 5
  00074	39 15 00 00 00
	00		 cmp	 DWORD PTR ?MISMATCH_COUNT@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, edx
  0007a	7e 09		 jle	 SHORT $LN30@UpdateNTSC
  0007c	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?bFallbackToVideo@@3HA, 0 ; bFallbackToVideo
  00083	75 19		 jne	 SHORT $LN31@UpdateNTSC
$LN30@UpdateNTSC:
  00085	a1 00 00 00 00	 mov	 eax, DWORD PTR ?PulldownRepeatCount@@3JA ; PulldownRepeatCount
  0008a	6b c0 05	 imul	 eax, 5
  0008d	39 05 00 00 00
	00		 cmp	 DWORD PTR ?MISMATCH_COUNT@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, eax
  00093	7e 40		 jle	 SHORT $LN32@UpdateNTSC
  00095	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?bFallbackToVideo@@3HA, 0 ; bFallbackToVideo
  0009c	75 37		 jne	 SHORT $LN32@UpdateNTSC
$LN31@UpdateNTSC:

; 179  :             {
; 180  :                 // There have been no duplicate fields lately.
; 181  :                 // It's probably video source.
; 182  :                 //
; 183  :                 // MAX_MISMATCH should be a reasonably high Value so
; 184  :                 // that we do not have an oversensitive hair-trigger
; 185  :                 // in switching to video source everytime there is
; 186  :                 // video noise or a single spurious field added/dropped
; 187  :                 // during a movie causing mis-synchronization problems.
; 188  :                 LOG(2, _T("Back to Video, No field pairs"));

  0009e	68 00 00 00 00	 push	 OFFSET ??_C@_1DM@NGLDAEND@?$AAB?$AAa?$AAc?$AAk?$AA?5?$AAt?$AAo?$AA?5?$AAV?$AAi?$AAd?$AAe?$AAo?$AA?0?$AA?5?$AAN?$AAo?$AA?5?$AAf?$AAi?$AAe?$AAl?$AAd?$AA?5?$AAp?$AAa?$AAi?$AAr?$AAs?$AA?$AA@
  000a3	6a 02		 push	 2
  000a5	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  000aa	83 c4 08	 add	 esp, 8

; 189  :                 SetVideoDeinterlaceIndex(NTSCFilmFallbackIndex);

  000ad	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?NTSCFilmFallbackIndex@@3JA ; NTSCFilmFallbackIndex
  000b3	51		 push	 ecx
  000b4	e8 00 00 00 00	 call	 ?SetVideoDeinterlaceIndex@@YAXH@Z ; SetVideoDeinterlaceIndex
  000b9	83 c4 04	 add	 esp, 4

; 190  :                 MOVIE_VERIFY_CYCLE = 0;

  000bc	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?MOVIE_VERIFY_CYCLE@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, 0

; 191  :                 MOVIE_FIELD_CYCLE = 0;

  000c6	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?MOVIE_FIELD_CYCLE@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, 0

; 192  :             }
; 193  :             else

  000d0	e9 15 01 00 00	 jmp	 $LN29@UpdateNTSC
$LN32@UpdateNTSC:

; 194  :             {
; 195  :                 // If we're in a film Mode and an incoming field would cause
; 196  :                 // weave artifacts, optionally switch to video Mode but make
; 197  :                 // it very easy to get back into film Mode in case this was
; 198  :                 // just a glitchy scene change.
; 199  :                 if (ThresholdPulldownMismatch > 0 &&            // only do video-force check if there's a threshold.
; 200  :                     pInfo->FieldDiff >= ThresholdPulldownMismatch &&    // only force video if this field is very different,
; 201  :                     DidWeExpectWeave(pInfo) &&              // and we would weave it with the previous field,
; 202  :                     pInfo->CombFactor > (LastCombFactor + ThresholdPulldownComb) &&   // and it'd produce artifacts
; 203  :                     pInfo->CombFactor > ThresholdPulldownComb)

  000d5	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?ThresholdPulldownMismatch@@3JA, 0 ; ThresholdPulldownMismatch
  000dc	0f 8e f9 00 00
	00		 jle	 $LN28@UpdateNTSC
  000e2	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  000e5	8b 42 58	 mov	 eax, DWORD PTR [edx+88]
  000e8	3b 05 00 00 00
	00		 cmp	 eax, DWORD PTR ?ThresholdPulldownMismatch@@3JA ; ThresholdPulldownMismatch
  000ee	0f 8c e7 00 00
	00		 jl	 $LN28@UpdateNTSC
  000f4	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  000f7	51		 push	 ecx
  000f8	e8 00 00 00 00	 call	 ?DidWeExpectWeave@@YAHPAUTDeinterlaceInfo@@@Z ; DidWeExpectWeave
  000fd	83 c4 04	 add	 esp, 4
  00100	85 c0		 test	 eax, eax
  00102	0f 84 d3 00 00
	00		 je	 $LN28@UpdateNTSC
  00108	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?LastCombFactor@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA
  0010e	03 15 00 00 00
	00		 add	 edx, DWORD PTR ?ThresholdPulldownComb@@3JA ; ThresholdPulldownComb
  00114	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  00117	39 50 5c	 cmp	 DWORD PTR [eax+92], edx
  0011a	0f 8e bb 00 00
	00		 jle	 $LN28@UpdateNTSC
  00120	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  00123	8b 51 5c	 mov	 edx, DWORD PTR [ecx+92]
  00126	3b 15 00 00 00
	00		 cmp	 edx, DWORD PTR ?ThresholdPulldownComb@@3JA ; ThresholdPulldownComb
  0012c	0f 8e a9 00 00
	00		 jle	 $LN28@UpdateNTSC

; 204  :                 {
; 205  :                     if (bFallbackToVideo)

  00132	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?bFallbackToVideo@@3HA, 0 ; bFallbackToVideo
  00139	74 49		 je	 SHORT $LN27@UpdateNTSC

; 206  :                     {
; 207  :                         SwitchToVideo = TRUE;

  0013b	c6 45 ff 01	 mov	 BYTE PTR _SwitchToVideo$[ebp], 1

; 208  :                         NextPulldownRepeatCount = 1;

  0013f	c7 05 00 00 00
	00 01 00 00 00	 mov	 DWORD PTR ?NextPulldownRepeatCount@@3JA, 1 ; NextPulldownRepeatCount

; 209  :                         LOG(2, _T("Back to Video, comb factor %d"), pInfo->CombFactor);

  00149	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  0014c	8b 48 5c	 mov	 ecx, DWORD PTR [eax+92]
  0014f	51		 push	 ecx
  00150	68 00 00 00 00	 push	 OFFSET ??_C@_1DM@FEHJHAGL@?$AAB?$AAa?$AAc?$AAk?$AA?5?$AAt?$AAo?$AA?5?$AAV?$AAi?$AAd?$AAe?$AAo?$AA?0?$AA?5?$AAc?$AAo?$AAm?$AAb?$AA?5?$AAf?$AAa?$AAc?$AAt?$AAo?$AAr?$AA?5?$AA?$CF?$AAd?$AA?$AA@
  00155	6a 02		 push	 2
  00157	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  0015c	83 c4 0c	 add	 esp, 12			; 0000000cH

; 210  :                         SetVideoDeinterlaceIndex(NTSCFilmFallbackIndex);

  0015f	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?NTSCFilmFallbackIndex@@3JA ; NTSCFilmFallbackIndex
  00165	52		 push	 edx
  00166	e8 00 00 00 00	 call	 ?SetVideoDeinterlaceIndex@@YAXH@Z ; SetVideoDeinterlaceIndex
  0016b	83 c4 04	 add	 esp, 4

; 211  :                         MOVIE_VERIFY_CYCLE = 0;

  0016e	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?MOVIE_VERIFY_CYCLE@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, 0

; 212  :                         MOVIE_FIELD_CYCLE = 0;

  00178	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?MOVIE_FIELD_CYCLE@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, 0

; 213  :                     }
; 214  :                     else

  00182	eb 48		 jmp	 SHORT $LN26@UpdateNTSC
$LN27@UpdateNTSC:

; 215  :                     {
; 216  :                         // Reset the paramters of the Comb method
; 217  :                         FilmModeNTSCComb(NULL);

  00184	6a 00		 push	 0
  00186	e8 00 00 00 00	 call	 ?FilmModeNTSCComb@@YAHPAUTDeinterlaceInfo@@@Z ; FilmModeNTSCComb
  0018b	83 c4 04	 add	 esp, 4

; 218  :                         // go to Comb Mode but be ready to go back into film Mode
; 219  :                         // as soon as we find a match
; 220  :                         SetFilmDeinterlaceMode(FILM_32_PULLDOWN_COMB);

  0018e	6a 07		 push	 7
  00190	e8 00 00 00 00	 call	 ?SetFilmDeinterlaceMode@@YAXW4eFilmPulldownMode@@@Z ; SetFilmDeinterlaceMode
  00195	83 c4 04	 add	 esp, 4

; 221  :                         MOVIE_VERIFY_CYCLE = PulldownRepeatCount;

  00198	a1 00 00 00 00	 mov	 eax, DWORD PTR ?PulldownRepeatCount@@3JA ; PulldownRepeatCount
  0019d	a3 00 00 00 00	 mov	 DWORD PTR ?MOVIE_VERIFY_CYCLE@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, eax

; 222  :                         NextPulldownRepeatCount = 0;

  001a2	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?NextPulldownRepeatCount@@3JA, 0 ; NextPulldownRepeatCount

; 223  :                         LastFilmMode = FILM_32_PULLDOWN_COMB;

  001ac	c7 05 00 00 00
	00 07 00 00 00	 mov	 DWORD PTR ?LastFilmMode@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4W4eFilmPulldownMode@@A, 7

; 224  :                         LOG(2, _T("Gone to Comb Method, comb factor %d"), pInfo->CombFactor);

  001b6	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  001b9	8b 51 5c	 mov	 edx, DWORD PTR [ecx+92]
  001bc	52		 push	 edx
  001bd	68 00 00 00 00	 push	 OFFSET ??_C@_1EI@PAKLCFAG@?$AAG?$AAo?$AAn?$AAe?$AA?5?$AAt?$AAo?$AA?5?$AAC?$AAo?$AAm?$AAb?$AA?5?$AAM?$AAe?$AAt?$AAh?$AAo?$AAd?$AA?0?$AA?5?$AAc?$AAo?$AAm?$AAb?$AA?5?$AAf?$AAa?$AAc?$AAt?$AAo?$AAr@
  001c2	6a 02		 push	 2
  001c4	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  001c9	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN26@UpdateNTSC:

; 225  :                     }
; 226  :                     MISMATCH_COUNT++;

  001cc	a1 00 00 00 00	 mov	 eax, DWORD PTR ?MISMATCH_COUNT@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA
  001d1	83 c0 01	 add	 eax, 1
  001d4	a3 00 00 00 00	 mov	 DWORD PTR ?MISMATCH_COUNT@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, eax

; 227  :                 }
; 228  :                 else

  001d9	eb 0f		 jmp	 SHORT $LN29@UpdateNTSC
$LN28@UpdateNTSC:

; 229  :                 {
; 230  :                     MISMATCH_COUNT++;

  001db	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?MISMATCH_COUNT@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA
  001e1	83 c1 01	 add	 ecx, 1
  001e4	89 0d 00 00 00
	00		 mov	 DWORD PTR ?MISMATCH_COUNT@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, ecx
$LN29@UpdateNTSC:

; 231  :                 }
; 232  :             }
; 233  :         }
; 234  :         else

  001ea	eb 0f		 jmp	 SHORT $LN24@UpdateNTSC
$LN33@UpdateNTSC:

; 235  :         {
; 236  :             MISMATCH_COUNT++;

  001ec	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?MISMATCH_COUNT@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA
  001f2	83 c2 01	 add	 edx, 1
  001f5	89 15 00 00 00
	00		 mov	 DWORD PTR ?MISMATCH_COUNT@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, edx
$LN24@UpdateNTSC:

; 237  :         }
; 238  :     }
; 239  :     else

  001fb	e9 5b 02 00 00	 jmp	 $LN23@UpdateNTSC
$LN34@UpdateNTSC:

; 240  :     {
; 241  :         // It's either a stationary image OR a duplicate field in a movie
; 242  :         if(MISMATCH_COUNT == 4)

  00200	83 3d 00 00 00
	00 04		 cmp	 DWORD PTR ?MISMATCH_COUNT@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, 4
  00207	0f 85 31 02 00
	00		 jne	 $LN22@UpdateNTSC

; 243  :         {
; 244  :             eFilmPulldownMode NewFilmMode = GetFilmModeFromPosition(pInfo);

  0020d	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  00210	50		 push	 eax
  00211	e8 00 00 00 00	 call	 ?GetFilmModeFromPosition@@YA?AW4eFilmPulldownMode@@PAUTDeinterlaceInfo@@@Z ; GetFilmModeFromPosition
  00216	83 c4 04	 add	 esp, 4
  00219	89 45 f8	 mov	 DWORD PTR _NewFilmMode$141134[ebp], eax

; 245  :             // 3:2 pulldown is a cycle of 5 fields where there is only
; 246  :             // one duplicate field pair, and 4 mismatching pairs.
; 247  :             // We need to continue detection for at least PulldownRepeatCount
; 248  :             // cycles to be very certain that it is actually 3:2 pulldown.
; 249  :             // For a repeat Count of 2, this would mean a latency of 10
; 250  :             // fields.
; 251  :             //
; 252  :             // If NextPulldownRepeatCount is nonzero, it's a temporary
; 253  :             // repeat Count setting attempting to compensate for some kind
; 254  :             // of anomaly in the sequence of fields, so use it instead.
; 255  :             if(NewFilmMode == LastFilmMode ||
; 256  :                 (IsFilmMode() && LastFilmMode == FILM_32_PULLDOWN_COMB) ||
; 257  :                 LastFilmMode == FILMPULLDOWNMODES_LAST_ONE)

  0021c	8b 4d f8	 mov	 ecx, DWORD PTR _NewFilmMode$141134[ebp]
  0021f	3b 0d 00 00 00
	00		 cmp	 ecx, DWORD PTR ?LastFilmMode@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4W4eFilmPulldownMode@@A
  00225	74 1f		 je	 SHORT $LN20@UpdateNTSC
  00227	e8 00 00 00 00	 call	 ?IsFilmMode@@YAHXZ	; IsFilmMode
  0022c	85 c0		 test	 eax, eax
  0022e	74 09		 je	 SHORT $LN19@UpdateNTSC
  00230	83 3d 00 00 00
	00 07		 cmp	 DWORD PTR ?LastFilmMode@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4W4eFilmPulldownMode@@A, 7
  00237	74 0d		 je	 SHORT $LN20@UpdateNTSC
$LN19@UpdateNTSC:
  00239	83 3d 00 00 00
	00 09		 cmp	 DWORD PTR ?LastFilmMode@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4W4eFilmPulldownMode@@A, 9
  00240	0f 85 07 01 00
	00		 jne	 $LN21@UpdateNTSC
$LN20@UpdateNTSC:

; 258  :             {
; 259  :                 if(((NextPulldownRepeatCount > 0 && MOVIE_VERIFY_CYCLE >= NextPulldownRepeatCount) ||
; 260  :                    (NextPulldownRepeatCount == 0 && MOVIE_VERIFY_CYCLE >= PulldownRepeatCount)))

  00246	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?NextPulldownRepeatCount@@3JA, 0 ; NextPulldownRepeatCount
  0024d	7e 0e		 jle	 SHORT $LN16@UpdateNTSC
  0024f	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?MOVIE_VERIFY_CYCLE@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA
  00255	3b 15 00 00 00
	00		 cmp	 edx, DWORD PTR ?NextPulldownRepeatCount@@3JA ; NextPulldownRepeatCount
  0025b	7d 1e		 jge	 SHORT $LN17@UpdateNTSC
$LN16@UpdateNTSC:
  0025d	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?NextPulldownRepeatCount@@3JA, 0 ; NextPulldownRepeatCount
  00264	0f 85 b8 00 00
	00		 jne	 $LN18@UpdateNTSC
  0026a	a1 00 00 00 00	 mov	 eax, DWORD PTR ?MOVIE_VERIFY_CYCLE@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA
  0026f	3b 05 00 00 00
	00		 cmp	 eax, DWORD PTR ?PulldownRepeatCount@@3JA ; PulldownRepeatCount
  00275	0f 8c a7 00 00
	00		 jl	 $LN18@UpdateNTSC
$LN17@UpdateNTSC:

; 261  :                 {
; 262  :                     // If the pulldown repeat Count was temporarily changed, get
; 263  :                     // rid of the temporary setting.
; 264  :                     NextPulldownRepeatCount = 0;

  0027b	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?NextPulldownRepeatCount@@3JA, 0 ; NextPulldownRepeatCount

; 265  : 
; 266  :                     // This executes regardless whether we've just entered or
; 267  :                     // if we're *already* in 3:2 pulldown. Either way, we are
; 268  :                     // currently now (re)synchronized to 3:2 pulldown and that
; 269  :                     // we've now detected the duplicate field.
; 270  :                     //
; 271  :                     SetFilmDeinterlaceMode(NewFilmMode);

  00285	8b 4d f8	 mov	 ecx, DWORD PTR _NewFilmMode$141134[ebp]
  00288	51		 push	 ecx
  00289	e8 00 00 00 00	 call	 ?SetFilmDeinterlaceMode@@YAXW4eFilmPulldownMode@@@Z ; SetFilmDeinterlaceMode
  0028e	83 c4 04	 add	 esp, 4

; 272  : 
; 273  :                     if (OldPulldownMethod != GetCurrentDeintMethod())

  00291	e8 00 00 00 00	 call	 ?GetCurrentDeintMethod@@YAPAU_DEINTERLACE_METHOD@@XZ ; GetCurrentDeintMethod
  00296	39 05 00 00 00
	00		 cmp	 DWORD PTR ?OldPulldownMethod@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4PAU_DEINTERLACE_METHOD@@A, eax
  0029c	74 78		 je	 SHORT $LN15@UpdateNTSC

; 274  :                     {
; 275  :                         LOG(2, _T("Gone to film Mode %d"), NewFilmMode - FILM_32_PULLDOWN_0);

  0029e	8b 55 f8	 mov	 edx, DWORD PTR _NewFilmMode$141134[ebp]
  002a1	83 ea 02	 sub	 edx, 2
  002a4	52		 push	 edx
  002a5	68 00 00 00 00	 push	 OFFSET ??_C@_1CK@LMLMKBAI@?$AAG?$AAo?$AAn?$AAe?$AA?5?$AAt?$AAo?$AA?5?$AAf?$AAi?$AAl?$AAm?$AA?5?$AAM?$AAo?$AAd?$AAe?$AA?5?$AA?$CF?$AAd?$AA?$AA@
  002aa	6a 02		 push	 2
  002ac	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  002b1	83 c4 0c	 add	 esp, 12			; 0000000cH

; 276  :                         // A Mode switch.  If we've done a lot of them recently,
; 277  :                         // force video Mode since it means we're having trouble
; 278  :                         // locking onto a reliable film Mode.
; 279  :                         //
; 280  :                         // This stuff happens during these situations
; 281  :                         // - Time compressed movies, which ruins 3:2 sequence
; 282  :                         // - Poorly telecined movies
; 283  :                         // - Erratic framerates during transfers of old movies
; 284  :                         // - TV commercials that vary framerates
; 285  :                         // - Cartoons using nonstandard pulldown
; 286  :                         // - Super-noisy video
; 287  :                         //
; 288  :                         // Therefore, we should switch to video Mode and ignore
; 289  :                         // switching back to movie Mode for at least a certain
; 290  :                         // amount of time.
; 291  :                         //
; 292  :                         // This is only triggered on switches between different
; 293  :                         // film Modes, not switches between video and film Mode.
; 294  :                         // Since we can drop down to video if we're not sure
; 295  :                         // we should stay in pulldown Mode, we don't want to
; 296  :                         // bail out of film Mode if we subsequently decide that
; 297  :                         // the film Mode we just dropped out of was correct.
; 298  :                         if (TrackModeSwitches())

  002b4	e8 00 00 00 00	 call	 ?TrackModeSwitches@@YAHXZ ; TrackModeSwitches
  002b9	85 c0		 test	 eax, eax
  002bb	74 59		 je	 SHORT $LN15@UpdateNTSC

; 299  :                         {
; 300  :                             if(bFallbackToVideo)

  002bd	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?bFallbackToVideo@@3HA, 0 ; bFallbackToVideo
  002c4	74 41		 je	 SHORT $LN13@UpdateNTSC

; 301  :                             {
; 302  :                                 SetVideoDeinterlaceIndex(NTSCFilmFallbackIndex);

  002c6	a1 00 00 00 00	 mov	 eax, DWORD PTR ?NTSCFilmFallbackIndex@@3JA ; NTSCFilmFallbackIndex
  002cb	50		 push	 eax
  002cc	e8 00 00 00 00	 call	 ?SetVideoDeinterlaceIndex@@YAXH@Z ; SetVideoDeinterlaceIndex
  002d1	83 c4 04	 add	 esp, 4

; 303  :                                 MOVIE_VERIFY_CYCLE = 0;

  002d4	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?MOVIE_VERIFY_CYCLE@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, 0

; 304  :                                 MOVIE_FIELD_CYCLE = 0;

  002de	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?MOVIE_FIELD_CYCLE@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, 0

; 305  :                                 LOG(2, _T("Too much film Mode cycling, switching to video"));

  002e8	68 00 00 00 00	 push	 OFFSET ??_C@_1FO@PGGFCLIO@?$AAT?$AAo?$AAo?$AA?5?$AAm?$AAu?$AAc?$AAh?$AA?5?$AAf?$AAi?$AAl?$AAm?$AA?5?$AAM?$AAo?$AAd?$AAe?$AA?5?$AAc?$AAy?$AAc?$AAl?$AAi?$AAn?$AAg?$AA?0?$AA?5?$AAs?$AAw?$AAi?$AAt@
  002ed	6a 02		 push	 2
  002ef	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  002f4	83 c4 08	 add	 esp, 8

; 306  : 
; 307  :                                 /** Require pulldown Mode to be consistent for the
; 308  :                                     rapid-Mode-switch interval before we'll lock onto
; 309  :                                     film Mode again.  This is probably too long in most
; 310  :                                     cases, but making it shorter than the interval would
; 311  :                                     run the risk of switching back to film Mode just in
; 312  :                                     time to hit a rapid sequence of Mode changes.
; 313  : 
; 314  :                                     83 is (5 fields/cycle) / (60 fields/sec) * (1000 ms/sec).
; 315  : 
; 316  :                                     \todo Eliminate hardcoded values
; 317  : 
; 318  :                                     NextPulldownRepeatCount = PulldownSwitchInterval / 83;
; 319  :                                 */
; 320  :                                 NextPulldownRepeatCount = PulldownRepeatCount * 2;

  002f7	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?PulldownRepeatCount@@3JA ; PulldownRepeatCount
  002fd	d1 e1		 shl	 ecx, 1
  002ff	89 0d 00 00 00
	00		 mov	 DWORD PTR ?NextPulldownRepeatCount@@3JA, ecx ; NextPulldownRepeatCount

; 321  :                             }
; 322  :                             else

  00305	eb 0f		 jmp	 SHORT $LN15@UpdateNTSC
$LN13@UpdateNTSC:

; 323  :                             {
; 324  :                                 LOG(2, _T("Rapid Cycling"));

  00307	68 00 00 00 00	 push	 OFFSET ??_C@_1BM@FNJBPAPA@?$AAR?$AAa?$AAp?$AAi?$AAd?$AA?5?$AAC?$AAy?$AAc?$AAl?$AAi?$AAn?$AAg?$AA?$AA@
  0030c	6a 02		 push	 2
  0030e	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00313	83 c4 08	 add	 esp, 8
$LN15@UpdateNTSC:

; 325  :                             }
; 326  :                         }
; 327  :                     }
; 328  : 
; 329  :                     OldPulldownMethod = GetCurrentDeintMethod();

  00316	e8 00 00 00 00	 call	 ?GetCurrentDeintMethod@@YAPAU_DEINTERLACE_METHOD@@XZ ; GetCurrentDeintMethod
  0031b	a3 00 00 00 00	 mov	 DWORD PTR ?OldPulldownMethod@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4PAU_DEINTERLACE_METHOD@@A, eax

; 330  :                 }
; 331  :                 else

  00320	eb 1e		 jmp	 SHORT $LN11@UpdateNTSC
$LN18@UpdateNTSC:

; 332  :                 {
; 333  :                     // We've detected possible 3:2 pulldown.  However, we need
; 334  :                     // to keep watching the 3:2 pulldown for at least a few 5-field
; 335  :                     // cycles before jumping to conclusion that it's really 3:2
; 336  :                     // pulldown and not a FALSE alarm
; 337  :                     //
; 338  :                     MOVIE_VERIFY_CYCLE++;

  00322	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?MOVIE_VERIFY_CYCLE@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA
  00328	83 c2 01	 add	 edx, 1
  0032b	89 15 00 00 00
	00		 mov	 DWORD PTR ?MOVIE_VERIFY_CYCLE@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, edx

; 339  :                     LOG(2, _T("Found Pulldown Match"));

  00331	68 00 00 00 00	 push	 OFFSET ??_C@_1CK@HPGEOKAK@?$AAF?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAP?$AAu?$AAl?$AAl?$AAd?$AAo?$AAw?$AAn?$AA?5?$AAM?$AAa?$AAt?$AAc?$AAh?$AA?$AA@
  00336	6a 02		 push	 2
  00338	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  0033d	83 c4 08	 add	 esp, 8
$LN11@UpdateNTSC:

; 340  :                 }
; 341  :                 LastFilmMode = NewFilmMode;

  00340	8b 45 f8	 mov	 eax, DWORD PTR _NewFilmMode$141134[ebp]
  00343	a3 00 00 00 00	 mov	 DWORD PTR ?LastFilmMode@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4W4eFilmPulldownMode@@A, eax

; 342  :             }
; 343  :             else

  00348	e9 ef 00 00 00	 jmp	 $LN10@UpdateNTSC
$LN21@UpdateNTSC:

; 344  :             {
; 345  :                 if(bFallbackToVideo)

  0034d	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?bFallbackToVideo@@3HA, 0 ; bFallbackToVideo
  00354	74 73		 je	 SHORT $LN9@UpdateNTSC

; 346  :                 {
; 347  :                     if(IsFilmMode())

  00356	e8 00 00 00 00	 call	 ?IsFilmMode@@YAHXZ	; IsFilmMode
  0035b	85 c0		 test	 eax, eax
  0035d	74 55		 je	 SHORT $LN8@UpdateNTSC

; 348  :                     {
; 349  :                         SetFilmDeinterlaceMode(NewFilmMode);

  0035f	8b 4d f8	 mov	 ecx, DWORD PTR _NewFilmMode$141134[ebp]
  00362	51		 push	 ecx
  00363	e8 00 00 00 00	 call	 ?SetFilmDeinterlaceMode@@YAXW4eFilmPulldownMode@@@Z ; SetFilmDeinterlaceMode
  00368	83 c4 04	 add	 esp, 4

; 350  :                         if(TrackModeSwitches())

  0036b	e8 00 00 00 00	 call	 ?TrackModeSwitches@@YAHXZ ; TrackModeSwitches
  00370	85 c0		 test	 eax, eax
  00372	74 3e		 je	 SHORT $LN7@UpdateNTSC

; 351  :                         {
; 352  :                             SetVideoDeinterlaceIndex(NTSCFilmFallbackIndex);

  00374	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?NTSCFilmFallbackIndex@@3JA ; NTSCFilmFallbackIndex
  0037a	52		 push	 edx
  0037b	e8 00 00 00 00	 call	 ?SetVideoDeinterlaceIndex@@YAXH@Z ; SetVideoDeinterlaceIndex
  00380	83 c4 04	 add	 esp, 4

; 353  :                             MOVIE_VERIFY_CYCLE = 0;

  00383	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?MOVIE_VERIFY_CYCLE@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, 0

; 354  :                             MOVIE_FIELD_CYCLE = 0;

  0038d	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?MOVIE_FIELD_CYCLE@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, 0

; 355  :                             LOG(2, _T("Too much film Mode cycling, switching to video"));

  00397	68 00 00 00 00	 push	 OFFSET ??_C@_1FO@PGGFCLIO@?$AAT?$AAo?$AAo?$AA?5?$AAm?$AAu?$AAc?$AAh?$AA?5?$AAf?$AAi?$AAl?$AAm?$AA?5?$AAM?$AAo?$AAd?$AAe?$AA?5?$AAc?$AAy?$AAc?$AAl?$AAi?$AAn?$AAg?$AA?0?$AA?5?$AAs?$AAw?$AAi?$AAt@
  0039c	6a 02		 push	 2
  0039e	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  003a3	83 c4 08	 add	 esp, 8

; 356  :                             NextPulldownRepeatCount = PulldownRepeatCount * 2;

  003a6	a1 00 00 00 00	 mov	 eax, DWORD PTR ?PulldownRepeatCount@@3JA ; PulldownRepeatCount
  003ab	d1 e0		 shl	 eax, 1
  003ad	a3 00 00 00 00	 mov	 DWORD PTR ?NextPulldownRepeatCount@@3JA, eax ; NextPulldownRepeatCount
$LN7@UpdateNTSC:

; 357  :                         }
; 358  :                     }
; 359  :                     else

  003b2	eb 13		 jmp	 SHORT $LN6@UpdateNTSC
$LN8@UpdateNTSC:

; 360  :                     {
; 361  :                         MOVIE_VERIFY_CYCLE = 1;

  003b4	c7 05 00 00 00
	00 01 00 00 00	 mov	 DWORD PTR ?MOVIE_VERIFY_CYCLE@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, 1

; 362  :                         LastFilmMode = NewFilmMode;

  003be	8b 4d f8	 mov	 ecx, DWORD PTR _NewFilmMode$141134[ebp]
  003c1	89 0d 00 00 00
	00		 mov	 DWORD PTR ?LastFilmMode@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4W4eFilmPulldownMode@@A, ecx
$LN6@UpdateNTSC:

; 363  :                     }
; 364  :                 }
; 365  :                 else

  003c7	eb 73		 jmp	 SHORT $LN10@UpdateNTSC
$LN9@UpdateNTSC:

; 366  :                 {
; 367  :                     SetFilmDeinterlaceMode(NewFilmMode);

  003c9	8b 55 f8	 mov	 edx, DWORD PTR _NewFilmMode$141134[ebp]
  003cc	52		 push	 edx
  003cd	e8 00 00 00 00	 call	 ?SetFilmDeinterlaceMode@@YAXW4eFilmPulldownMode@@@Z ; SetFilmDeinterlaceMode
  003d2	83 c4 04	 add	 esp, 4

; 368  :                     LOG(2, _T("Gone to film Mode %d"), NewFilmMode - FILM_32_PULLDOWN_0);

  003d5	8b 45 f8	 mov	 eax, DWORD PTR _NewFilmMode$141134[ebp]
  003d8	83 e8 02	 sub	 eax, 2
  003db	50		 push	 eax
  003dc	68 00 00 00 00	 push	 OFFSET ??_C@_1CK@LMLMKBAI@?$AAG?$AAo?$AAn?$AAe?$AA?5?$AAt?$AAo?$AA?5?$AAf?$AAi?$AAl?$AAm?$AA?5?$AAM?$AAo?$AAd?$AAe?$AA?5?$AA?$CF?$AAd?$AA?$AA@
  003e1	6a 02		 push	 2
  003e3	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  003e8	83 c4 0c	 add	 esp, 12			; 0000000cH

; 369  :                     if(TrackModeSwitches())

  003eb	e8 00 00 00 00	 call	 ?TrackModeSwitches@@YAHXZ ; TrackModeSwitches
  003f0	85 c0		 test	 eax, eax
  003f2	74 40		 je	 SHORT $LN4@UpdateNTSC

; 370  :                     {
; 371  :                         SetVideoDeinterlaceIndex(NTSCFilmFallbackIndex);

  003f4	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?NTSCFilmFallbackIndex@@3JA ; NTSCFilmFallbackIndex
  003fa	51		 push	 ecx
  003fb	e8 00 00 00 00	 call	 ?SetVideoDeinterlaceIndex@@YAXH@Z ; SetVideoDeinterlaceIndex
  00400	83 c4 04	 add	 esp, 4

; 372  :                         MOVIE_VERIFY_CYCLE = 0;

  00403	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?MOVIE_VERIFY_CYCLE@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, 0

; 373  :                         MOVIE_FIELD_CYCLE = 0;

  0040d	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?MOVIE_FIELD_CYCLE@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, 0

; 374  :                         LOG(2, _T("Too much film Mode cycling, switching to video"));

  00417	68 00 00 00 00	 push	 OFFSET ??_C@_1FO@PGGFCLIO@?$AAT?$AAo?$AAo?$AA?5?$AAm?$AAu?$AAc?$AAh?$AA?5?$AAf?$AAi?$AAl?$AAm?$AA?5?$AAM?$AAo?$AAd?$AAe?$AA?5?$AAc?$AAy?$AAc?$AAl?$AAi?$AAn?$AAg?$AA?0?$AA?5?$AAs?$AAw?$AAi?$AAt@
  0041c	6a 02		 push	 2
  0041e	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00423	83 c4 08	 add	 esp, 8

; 375  :                         NextPulldownRepeatCount = PulldownRepeatCount * 2;

  00426	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?PulldownRepeatCount@@3JA ; PulldownRepeatCount
  0042c	d1 e2		 shl	 edx, 1
  0042e	89 15 00 00 00
	00		 mov	 DWORD PTR ?NextPulldownRepeatCount@@3JA, edx ; NextPulldownRepeatCount
$LN4@UpdateNTSC:

; 376  :                     }
; 377  :                     LastFilmMode = NewFilmMode;

  00434	8b 45 f8	 mov	 eax, DWORD PTR _NewFilmMode$141134[ebp]
  00437	a3 00 00 00 00	 mov	 DWORD PTR ?LastFilmMode@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4W4eFilmPulldownMode@@A, eax
$LN10@UpdateNTSC:

; 378  :                 }
; 379  :             }
; 380  :         }
; 381  :         else

  0043c	eb 13		 jmp	 SHORT $LN3@UpdateNTSC
$LN22@UpdateNTSC:

; 382  :         {
; 383  :             // If we've just seen rapid-fire pulldown Mode switches,
; 384  :             // require all the duplicate fields to be at the same point
; 385  :             // in the pulldown sequence.  Getting here means a duplicate
; 386  :             // field happened in a different place than in the previous
; 387  :             // cycle, so reset the Count of pulldown matches.
; 388  :             //
; 389  :             // As noted below, this will mean that it takes a long time to
; 390  :             // switch back to film Mode if we hit a bunch of still frames
; 391  :             // after a rapid-fire Mode switch sequence.
; 392  :             if (NextPulldownRepeatCount > 0) MOVIE_VERIFY_CYCLE = 0;

  0043e	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?NextPulldownRepeatCount@@3JA, 0 ; NextPulldownRepeatCount
  00445	7e 0a		 jle	 SHORT $LN3@UpdateNTSC
  00447	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?MOVIE_VERIFY_CYCLE@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, 0
$LN3@UpdateNTSC:

; 393  : 
; 394  :             // Normally,
; 395  :             // If execution point hits here, it is probably just
; 396  :             // stationary video. That would produce lots of duplicate
; 397  :             // field pairs. We can't determine whether it's video or
; 398  :             // movie source. Therefore, we want to keep doing the
; 399  :             // current algorithm from a prior detection. Therefore,
; 400  :             // don't modify any variables EXCEPT the MISMATCH_COUNT
; 401  :             // variable which will be reset to 0 below.
; 402  :             // Also, occasionally we'll hit here during synchronization
; 403  :             // problems during a movie, such as a spurious field added
; 404  :             // or dropped. Reset MISMATCH_COUNT to 0 below and let
; 405  :             // detection cycle happen again in order to re-synchronize.
; 406  :             //
; 407  :         }
; 408  :         MISMATCH_COUNT = 0;

  00451	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?MISMATCH_COUNT@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, 0
$LN23@UpdateNTSC:

; 409  :     }
; 410  : 
; 411  :     if(pInfo->CombFactor > 0)

  0045b	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  0045e	83 79 5c 00	 cmp	 DWORD PTR [ecx+92], 0
  00462	7e 0b		 jle	 SHORT $LN36@UpdateNTSC

; 412  :     {
; 413  :         LastCombFactor = pInfo->CombFactor;

  00464	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  00467	8b 42 5c	 mov	 eax, DWORD PTR [edx+92]
  0046a	a3 00 00 00 00	 mov	 DWORD PTR ?LastCombFactor@?1??UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z@4JA, eax
$LN36@UpdateNTSC:

; 414  :     }
; 415  : }

  0046f	8b e5		 mov	 esp, ebp
  00471	5d		 pop	 ebp
  00472	c3		 ret	 0
?UpdateNTSCPulldownMode@@YAXPAUTDeinterlaceInfo@@@Z ENDP ; UpdateNTSCPulldownMode
END
