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

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

INCLUDELIB OLDNAMES

PUBLIC	??B?$DynamicFunctionParent@P6APAUFILTER_METHOD@@J@Z@@QBEHXZ ; DynamicFunctionParent<FILTER_METHOD * (__cdecl*)(long)>::operator int
PUBLIC	??0?$DynamicFunctionParent@P6APAUFILTER_METHOD@@J@Z@@QAE@PB_WPBD@Z ; DynamicFunctionParent<FILTER_METHOD * (__cdecl*)(long)>::DynamicFunctionParent<FILTER_METHOD * (__cdecl*)(long)>
PUBLIC	??0?$DynamicFunctionC1@PAUFILTER_METHOD@@J@@QAE@PB_WPBD@Z ; DynamicFunctionC1<FILTER_METHOD *,long>::DynamicFunctionC1<FILTER_METHOD *,long>
PUBLIC	??R?$DynamicFunctionC1@PAUFILTER_METHOD@@J@@QBEPAUFILTER_METHOD@@J@Z ; DynamicFunctionC1<FILTER_METHOD *,long>::operator()
PUBLIC	??$swap@PAUFILTER_METHOD@@@std@@YAXAAPAUFILTER_METHOD@@0@Z ; std::swap<FILTER_METHOD *>
PUBLIC	??$swap@V?$SmartPtr@VCSettingsHolder@@@@@std@@YAXAAV?$SmartPtr@VCSettingsHolder@@@@0@Z ; std::swap<SmartPtr<CSettingsHolder> >
PUBLIC	?NumFilters@@3JA				; NumFilters
PUBLIC	?Filters@@3PAPAUFILTER_METHOD@@A		; Filters
PUBLIC	??_C@_0BE@FNDHMKOJ@GetFilterPluginInfo?$AA@	; `string'
PUBLIC	??_C@_1CG@OBJLLCMD@?$AAP?$AAl?$AAu?$AAg?$AAi?$AAn?$AA?5?$AA?$CF?$AAs?$AA?5?$AAo?$AAb?$AAs?$AAo?$AAl?$AAe?$AAt?$AAe?$AA?$AA@ ; `string'
PUBLIC	??_C@_1EO@BGMLDJIB@?$AAP?$AAl?$AAu?$AAg?$AAi?$AAn?$AA?5?$AA?$CF?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAc?$AAo?$AAm?$AAp?$AAa?$AAt?$AAi?$AAb?$AAl?$AAe?$AA?5?$AAw?$AAi?$AAt?$AAh?$AA?5?$AAy?$AAo@ ; `string'
PUBLIC	??_C@_0BG@LMIHEJEG@Temporal?5Noise?5Filter?$AA@	; `string'
PUBLIC	??_C@_0BF@JMACIMHN@Gradual?5Noise?5Filter?$AA@	; `string'
PUBLIC	??_C@_0BF@EJPFAEGD@Temporal?5Comb?5Filter?$AA@	; `string'
PUBLIC	??_C@_0BG@OBGDJCH@Adaptive?5Noise?5Filter?$AA@	; `string'
PUBLIC	??_C@_1BM@GOLPGNBA@?$AAF?$AAi?$AAl?$AAt?$AAe?$AAr?$AA?5?$AAo?$AAr?$AAd?$AAe?$AAr?$AA?3?$AA?$AA@ ; `string'
PUBLIC	??_C@_06JHFPGJO@?5?5?9?5?$CFs?$AA@		; `string'
PUBLIC	??_C@_1BE@HDIHICHC@?$AAF?$AAL?$AAT?$AA_?$AA?$CK?$AA?4?$AAd?$AAl?$AAl?$AA?$AA@ ; `string'
PUBLIC	??_C@_1BO@GONCMKFF@?$AAL?$AAo?$AAa?$AAd?$AAi?$AAn?$AAg?$AA?5?$AA?$CF?$AAs?$AA?5?$AA?4?$AA?4?$AA?4?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DG@NNLCPJM@?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AAI?$AAn?$AAp?$AAu?$AAt?$AA?5?$AAF?$AAi?$AAl?$AAt?$AAe?$AAr?$AAs?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DI@FHBEPLHJ@?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?5?$AAF?$AAi?$AAl?$AAt?$AAe?$AAr?$AAs?$AA?$AA@ ; `string'
PUBLIC	??_C@_17OGGONFHH@?$AA?5?$AAO?$AAN?$AA?$AA@	; `string'
PUBLIC	??_C@_19MEOLKKII@?$AA?5?$AAO?$AAF?$AAF?$AA?$AA@	; `string'
PUBLIC	??_C@_1BM@CLHFIOEN@?$AAF?$AAl?$AAt?$AA?5?$AAO?$AAn?$AA?5?$AAO?$AAf?$AAf?$AA?5?$AA?9?$AA?5?$AA?$AA@ ; `string'
PUBLIC	??_C@_1CA@GIAOMLHH@?$AAF?$AAl?$AAt?$AA?5?$AAS?$AAe?$AAt?$AAt?$AAi?$AAn?$AAg?$AAs?$AA?5?$AA?9?$AA?5?$AA?$AA@ ; `string'
EXTRN	_strcmp:PROC
?NumFilters@@3JA DD 01H DUP (?)				; NumFilters
?Filters@@3PAPAUFILTER_METHOD@@A DD 064H DUP (?)	; Filters
;	COMDAT ??_C@_1CA@GIAOMLHH@?$AAF?$AAl?$AAt?$AA?5?$AAS?$AAe?$AAt?$AAt?$AAi?$AAn?$AAg?$AAs?$AA?5?$AA?9?$AA?5?$AA?$AA@
CONST	SEGMENT
??_C@_1CA@GIAOMLHH@?$AAF?$AAl?$AAt?$AA?5?$AAS?$AAe?$AAt?$AAt?$AAi?$AAn?$AAg?$AAs?$AA?5?$AA?9?$AA?5?$AA?$AA@ DB 'F'
	DB	00H, 'l', 00H, 't', 00H, ' ', 00H, 'S', 00H, 'e', 00H, 't', 00H
	DB	't', 00H, 'i', 00H, 'n', 00H, 'g', 00H, 's', 00H, ' ', 00H, '-'
	DB	00H, ' ', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1BM@CLHFIOEN@?$AAF?$AAl?$AAt?$AA?5?$AAO?$AAn?$AA?5?$AAO?$AAf?$AAf?$AA?5?$AA?9?$AA?5?$AA?$AA@
CONST	SEGMENT
??_C@_1BM@CLHFIOEN@?$AAF?$AAl?$AAt?$AA?5?$AAO?$AAn?$AA?5?$AAO?$AAf?$AAf?$AA?5?$AA?9?$AA?5?$AA?$AA@ DB 'F'
	DB	00H, 'l', 00H, 't', 00H, ' ', 00H, 'O', 00H, 'n', 00H, ' ', 00H
	DB	'O', 00H, 'f', 00H, 'f', 00H, ' ', 00H, '-', 00H, ' ', 00H, 00H
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_19MEOLKKII@?$AA?5?$AAO?$AAF?$AAF?$AA?$AA@
CONST	SEGMENT
??_C@_19MEOLKKII@?$AA?5?$AAO?$AAF?$AAF?$AA?$AA@ DB ' ', 00H, 'O', 00H, 'F'
	DB	00H, 'F', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_17OGGONFHH@?$AA?5?$AAO?$AAN?$AA?$AA@
CONST	SEGMENT
??_C@_17OGGONFHH@?$AA?5?$AAO?$AAN?$AA?$AA@ DB ' ', 00H, 'O', 00H, 'N', 00H
	DB	00H, 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_1DI@FHBEPLHJ@?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?5?$AAF?$AAi?$AAl?$AAt?$AAe?$AAr?$AAs?$AA?$AA@
CONST	SEGMENT
??_C@_1DI@FHBEPLHJ@?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?5?$AAF?$AAi?$AAl?$AAt?$AAe?$AAr?$AAs?$AA?$AA@ DB ' '
	DB	00H, ' ', 00H, ' ', 00H, ' ', 00H, ' ', 00H, ' ', 00H, ' ', 00H
	DB	' ', 00H, ' ', 00H, ' ', 00H, ' ', 00H, ' ', 00H, ' ', 00H, 'O'
	DB	00H, 'u', 00H, 't', 00H, 'p', 00H, 'u', 00H, 't', 00H, ' ', 00H
	DB	'F', 00H, 'i', 00H, 'l', 00H, 't', 00H, 'e', 00H, 'r', 00H, 's'
	DB	00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1DG@NNLCPJM@?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AAI?$AAn?$AAp?$AAu?$AAt?$AA?5?$AAF?$AAi?$AAl?$AAt?$AAe?$AAr?$AAs?$AA?$AA@
CONST	SEGMENT
??_C@_1DG@NNLCPJM@?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AAI?$AAn?$AAp?$AAu?$AAt?$AA?5?$AAF?$AAi?$AAl?$AAt?$AAe?$AAr?$AAs?$AA?$AA@ DB ' '
	DB	00H, ' ', 00H, ' ', 00H, ' ', 00H, ' ', 00H, ' ', 00H, ' ', 00H
	DB	' ', 00H, ' ', 00H, ' ', 00H, ' ', 00H, ' ', 00H, ' ', 00H, 'I'
	DB	00H, 'n', 00H, 'p', 00H, 'u', 00H, 't', 00H, ' ', 00H, 'F', 00H
	DB	'i', 00H, 'l', 00H, 't', 00H, 'e', 00H, 'r', 00H, 's', 00H, 00H
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_1BO@GONCMKFF@?$AAL?$AAo?$AAa?$AAd?$AAi?$AAn?$AAg?$AA?5?$AA?$CF?$AAs?$AA?5?$AA?4?$AA?4?$AA?4?$AA?$AA@
CONST	SEGMENT
??_C@_1BO@GONCMKFF@?$AAL?$AAo?$AAa?$AAd?$AAi?$AAn?$AAg?$AA?5?$AA?$CF?$AAs?$AA?5?$AA?4?$AA?4?$AA?4?$AA?$AA@ DB 'L'
	DB	00H, 'o', 00H, 'a', 00H, 'd', 00H, 'i', 00H, 'n', 00H, 'g', 00H
	DB	' ', 00H, '%', 00H, 's', 00H, ' ', 00H, '.', 00H, '.', 00H, '.'
	DB	00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1BE@HDIHICHC@?$AAF?$AAL?$AAT?$AA_?$AA?$CK?$AA?4?$AAd?$AAl?$AAl?$AA?$AA@
CONST	SEGMENT
??_C@_1BE@HDIHICHC@?$AAF?$AAL?$AAT?$AA_?$AA?$CK?$AA?4?$AAd?$AAl?$AAl?$AA?$AA@ DB 'F'
	DB	00H, 'L', 00H, 'T', 00H, '_', 00H, '*', 00H, '.', 00H, 'd', 00H
	DB	'l', 00H, 'l', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_06JHFPGJO@?5?5?9?5?$CFs?$AA@
CONST	SEGMENT
??_C@_06JHFPGJO@?5?5?9?5?$CFs?$AA@ DB '  - %s', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1BM@GOLPGNBA@?$AAF?$AAi?$AAl?$AAt?$AAe?$AAr?$AA?5?$AAo?$AAr?$AAd?$AAe?$AAr?$AA?3?$AA?$AA@
CONST	SEGMENT
??_C@_1BM@GOLPGNBA@?$AAF?$AAi?$AAl?$AAt?$AAe?$AAr?$AA?5?$AAo?$AAr?$AAd?$AAe?$AAr?$AA?3?$AA?$AA@ DB 'F'
	DB	00H, 'i', 00H, 'l', 00H, 't', 00H, 'e', 00H, 'r', 00H, ' ', 00H
	DB	'o', 00H, 'r', 00H, 'd', 00H, 'e', 00H, 'r', 00H, ':', 00H, 00H
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_0BG@OBGDJCH@Adaptive?5Noise?5Filter?$AA@
CONST	SEGMENT
??_C@_0BG@OBGDJCH@Adaptive?5Noise?5Filter?$AA@ DB 'Adaptive Noise Filter', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BF@EJPFAEGD@Temporal?5Comb?5Filter?$AA@
CONST	SEGMENT
??_C@_0BF@EJPFAEGD@Temporal?5Comb?5Filter?$AA@ DB 'Temporal Comb Filter', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BF@JMACIMHN@Gradual?5Noise?5Filter?$AA@
CONST	SEGMENT
??_C@_0BF@JMACIMHN@Gradual?5Noise?5Filter?$AA@ DB 'Gradual Noise Filter', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BG@LMIHEJEG@Temporal?5Noise?5Filter?$AA@
CONST	SEGMENT
??_C@_0BG@LMIHEJEG@Temporal?5Noise?5Filter?$AA@ DB 'Temporal Noise Filter'
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_1EO@BGMLDJIB@?$AAP?$AAl?$AAu?$AAg?$AAi?$AAn?$AA?5?$AA?$CF?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAc?$AAo?$AAm?$AAp?$AAa?$AAt?$AAi?$AAb?$AAl?$AAe?$AA?5?$AAw?$AAi?$AAt?$AAh?$AA?5?$AAy?$AAo@
CONST	SEGMENT
??_C@_1EO@BGMLDJIB@?$AAP?$AAl?$AAu?$AAg?$AAi?$AAn?$AA?5?$AA?$CF?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAc?$AAo?$AAm?$AAp?$AAa?$AAt?$AAi?$AAb?$AAl?$AAe?$AA?5?$AAw?$AAi?$AAt?$AAh?$AA?5?$AAy?$AAo@ DB 'P'
	DB	00H, 'l', 00H, 'u', 00H, 'g', 00H, 'i', 00H, 'n', 00H, ' ', 00H
	DB	'%', 00H, 's', 00H, ' ', 00H, 'n', 00H, 'o', 00H, 't', 00H, ' '
	DB	00H, 'c', 00H, 'o', 00H, 'm', 00H, 'p', 00H, 'a', 00H, 't', 00H
	DB	'i', 00H, 'b', 00H, 'l', 00H, 'e', 00H, ' ', 00H, 'w', 00H, 'i'
	DB	00H, 't', 00H, 'h', 00H, ' ', 00H, 'y', 00H, 'o', 00H, 'u', 00H
	DB	'r', 00H, ' ', 00H, 'C', 00H, 'P', 00H, 'U', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1CG@OBJLLCMD@?$AAP?$AAl?$AAu?$AAg?$AAi?$AAn?$AA?5?$AA?$CF?$AAs?$AA?5?$AAo?$AAb?$AAs?$AAo?$AAl?$AAe?$AAt?$AAe?$AA?$AA@
CONST	SEGMENT
??_C@_1CG@OBJLLCMD@?$AAP?$AAl?$AAu?$AAg?$AAi?$AAn?$AA?5?$AA?$CF?$AAs?$AA?5?$AAo?$AAb?$AAs?$AAo?$AAl?$AAe?$AAt?$AAe?$AA?$AA@ DB 'P'
	DB	00H, 'l', 00H, 'u', 00H, 'g', 00H, 'i', 00H, 'n', 00H, ' ', 00H
	DB	'%', 00H, 's', 00H, ' ', 00H, 'o', 00H, 'b', 00H, 's', 00H, 'o'
	DB	00H, 'l', 00H, 'e', 00H, 't', 00H, 'e', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BE@FNDHMKOJ@GetFilterPluginInfo?$AA@
CONST	SEGMENT
??_C@_0BE@FNDHMKOJ@GetFilterPluginInfo?$AA@ DB 'GetFilterPluginInfo', 00H ; `string'
; Function compile flags: /Odtp
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\utility
;	COMDAT ??$swap@PAUFILTER_METHOD@@@std@@YAXAAPAUFILTER_METHOD@@0@Z
_TEXT	SEGMENT
__Tmp$143627 = -4					; size = 4
__Left$ = 8						; size = 4
__Right$ = 12						; size = 4
??$swap@PAUFILTER_METHOD@@@std@@YAXAAPAUFILTER_METHOD@@0@Z PROC ; std::swap<FILTER_METHOD *>, COMDAT

; 17   : 	{	// exchange values stored at _Left and _Right

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

; 18   : 	if (&_Left != &_Right)

  00004	8b 45 08	 mov	 eax, DWORD PTR __Left$[ebp]
  00007	3b 45 0c	 cmp	 eax, DWORD PTR __Right$[ebp]
  0000a	74 1a		 je	 SHORT $LN2@swap

; 19   : 		{	// different, worth swapping
; 20   : 		_Ty _Tmp = _Left;

  0000c	8b 4d 08	 mov	 ecx, DWORD PTR __Left$[ebp]
  0000f	8b 11		 mov	 edx, DWORD PTR [ecx]
  00011	89 55 fc	 mov	 DWORD PTR __Tmp$143627[ebp], edx

; 21   : 
; 22   : 		_Left = _Right;

  00014	8b 45 08	 mov	 eax, DWORD PTR __Left$[ebp]
  00017	8b 4d 0c	 mov	 ecx, DWORD PTR __Right$[ebp]
  0001a	8b 11		 mov	 edx, DWORD PTR [ecx]
  0001c	89 10		 mov	 DWORD PTR [eax], edx

; 23   : 		_Right = _Tmp;

  0001e	8b 45 0c	 mov	 eax, DWORD PTR __Right$[ebp]
  00021	8b 4d fc	 mov	 ecx, DWORD PTR __Tmp$143627[ebp]
  00024	89 08		 mov	 DWORD PTR [eax], ecx
$LN2@swap:

; 24   : 		}
; 25   : 	}

  00026	8b e5		 mov	 esp, ebp
  00028	5d		 pop	 ebp
  00029	c3		 ret	 0
??$swap@PAUFILTER_METHOD@@@std@@YAXAAPAUFILTER_METHOD@@0@Z ENDP ; std::swap<FILTER_METHOD *>
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\dynamicfunction.h
_TEXT	ENDS
;	COMDAT ??B?$DynamicFunctionParent@P6APAUFILTER_METHOD@@J@Z@@QBEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??B?$DynamicFunctionParent@P6APAUFILTER_METHOD@@J@Z@@QBEHXZ PROC ; DynamicFunctionParent<FILTER_METHOD * (__cdecl*)(long)>::operator int, COMDAT
; _this$ = ecx

; 39   :     {

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

; 40   :         return m_pFunc != 0;

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

; 41   :     }

  00014	8b e5		 mov	 esp, ebp
  00016	5d		 pop	 ebp
  00017	c3		 ret	 0
??B?$DynamicFunctionParent@P6APAUFILTER_METHOD@@J@Z@@QBEHXZ ENDP ; DynamicFunctionParent<FILTER_METHOD * (__cdecl*)(long)>::operator int
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??R?$DynamicFunctionC1@PAUFILTER_METHOD@@J@@QBEPAUFILTER_METHOD@@J@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_Param1$ = 8						; size = 4
??R?$DynamicFunctionC1@PAUFILTER_METHOD@@J@@QBEPAUFILTER_METHOD@@J@Z PROC ; DynamicFunctionC1<FILTER_METHOD *,long>::operator(), COMDAT
; _this$ = ecx

; 57   :     {

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

; 58   :         return m_pFunc(Param1);

  00007	8b 45 08	 mov	 eax, DWORD PTR _Param1$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000e	8b 11		 mov	 edx, DWORD PTR [ecx]
  00010	ff d2		 call	 edx
  00012	83 c4 04	 add	 esp, 4

; 59   :     }

  00015	8b e5		 mov	 esp, ebp
  00017	5d		 pop	 ebp
  00018	c2 04 00	 ret	 4
??R?$DynamicFunctionC1@PAUFILTER_METHOD@@J@@QBEPAUFILTER_METHOD@@J@Z ENDP ; DynamicFunctionC1<FILTER_METHOD *,long>::operator()
_TEXT	ENDS
PUBLIC	?Filter_SetMenu@@YAXPAUHMENU__@@@Z		; Filter_SetMenu
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\filter.cpp
;	COMDAT ?Filter_SetMenu@@YAXPAUHMENU__@@@Z
_TEXT	SEGMENT
_i$ = -4						; size = 4
_hMenu$ = 8						; size = 4
?Filter_SetMenu@@YAXPAUHMENU__@@@Z PROC			; Filter_SetMenu, COMDAT

; 344  : {

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

; 345  :     int i;
; 346  :     for(i = 0; i < NumFilters; i++)

  00004	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  0000b	eb 09		 jmp	 SHORT $LN3@Filter_Set
$LN2@Filter_Set:
  0000d	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  00010	83 c0 01	 add	 eax, 1
  00013	89 45 fc	 mov	 DWORD PTR _i$[ebp], eax
$LN3@Filter_Set:
  00016	8b 4d fc	 mov	 ecx, DWORD PTR _i$[ebp]
  00019	3b 0d 00 00 00
	00		 cmp	 ecx, DWORD PTR ?NumFilters@@3JA ; NumFilters
  0001f	7d 2f		 jge	 SHORT $LN4@Filter_Set

; 347  :     {
; 348  :         CheckMenuItemBool(hMenu, Filters[i]->MenuId, Filters[i]->bActive);

  00021	8b 55 fc	 mov	 edx, DWORD PTR _i$[ebp]
  00024	8b 04 95 00 00
	00 00		 mov	 eax, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[edx*4]
  0002b	8b 48 14	 mov	 ecx, DWORD PTR [eax+20]
  0002e	f7 d9		 neg	 ecx
  00030	1b c9		 sbb	 ecx, ecx
  00032	83 e1 08	 and	 ecx, 8
  00035	51		 push	 ecx
  00036	8b 55 fc	 mov	 edx, DWORD PTR _i$[ebp]
  00039	8b 04 95 00 00
	00 00		 mov	 eax, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[edx*4]
  00040	8b 48 20	 mov	 ecx, DWORD PTR [eax+32]
  00043	51		 push	 ecx
  00044	8b 55 08	 mov	 edx, DWORD PTR _hMenu$[ebp]
  00047	52		 push	 edx
  00048	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__CheckMenuItem@12
  0004e	eb bd		 jmp	 SHORT $LN2@Filter_Set
$LN4@Filter_Set:

; 349  :     }
; 350  : }

  00050	8b e5		 mov	 esp, ebp
  00052	5d		 pop	 ebp
  00053	c3		 ret	 0
?Filter_SetMenu@@YAXPAUHMENU__@@@Z ENDP			; Filter_SetMenu
_TEXT	ENDS
PUBLIC	?GetFilterOrder@@YAHPAUFILTER_METHOD@@@Z	; GetFilterOrder
; Function compile flags: /Odtp
;	COMDAT ?GetFilterOrder@@YAHPAUFILTER_METHOD@@@Z
_TEXT	SEGMENT
_Filter_Method$ = 8					; size = 4
?GetFilterOrder@@YAHPAUFILTER_METHOD@@@Z PROC		; GetFilterOrder, COMDAT

; 188  : {

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

; 189  :     if(strcmp(Filter_Method->szName, "Temporal Noise Filter") == 0)

  00003	68 00 00 00 00	 push	 OFFSET ??_C@_0BG@LMIHEJEG@Temporal?5Noise?5Filter?$AA@
  00008	8b 45 08	 mov	 eax, DWORD PTR _Filter_Method$[ebp]
  0000b	8b 48 0c	 mov	 ecx, DWORD PTR [eax+12]
  0000e	51		 push	 ecx
  0000f	e8 00 00 00 00	 call	 _strcmp
  00014	83 c4 08	 add	 esp, 8
  00017	85 c0		 test	 eax, eax
  00019	75 09		 jne	 SHORT $LN8@GetFilterO

; 190  :     {
; 191  :         return 35;

  0001b	b8 23 00 00 00	 mov	 eax, 35			; 00000023H
  00020	eb 6e		 jmp	 SHORT $LN9@GetFilterO
  00022	eb 6c		 jmp	 SHORT $LN9@GetFilterO
$LN8@GetFilterO:

; 192  :     }
; 193  :     else if(strcmp(Filter_Method->szName, "Gradual Noise Filter") == 0)

  00024	68 00 00 00 00	 push	 OFFSET ??_C@_0BF@JMACIMHN@Gradual?5Noise?5Filter?$AA@
  00029	8b 55 08	 mov	 edx, DWORD PTR _Filter_Method$[ebp]
  0002c	8b 42 0c	 mov	 eax, DWORD PTR [edx+12]
  0002f	50		 push	 eax
  00030	e8 00 00 00 00	 call	 _strcmp
  00035	83 c4 08	 add	 esp, 8
  00038	85 c0		 test	 eax, eax
  0003a	75 09		 jne	 SHORT $LN6@GetFilterO

; 194  :     {
; 195  :         return 35;

  0003c	b8 23 00 00 00	 mov	 eax, 35			; 00000023H
  00041	eb 4d		 jmp	 SHORT $LN9@GetFilterO
  00043	eb 4b		 jmp	 SHORT $LN9@GetFilterO
$LN6@GetFilterO:

; 196  :     }
; 197  :     else if(strcmp(Filter_Method->szName, "Temporal Comb Filter") == 0)

  00045	68 00 00 00 00	 push	 OFFSET ??_C@_0BF@EJPFAEGD@Temporal?5Comb?5Filter?$AA@
  0004a	8b 4d 08	 mov	 ecx, DWORD PTR _Filter_Method$[ebp]
  0004d	8b 51 0c	 mov	 edx, DWORD PTR [ecx+12]
  00050	52		 push	 edx
  00051	e8 00 00 00 00	 call	 _strcmp
  00056	83 c4 08	 add	 esp, 8
  00059	85 c0		 test	 eax, eax
  0005b	75 09		 jne	 SHORT $LN4@GetFilterO

; 198  :     {
; 199  :         return 45;

  0005d	b8 2d 00 00 00	 mov	 eax, 45			; 0000002dH
  00062	eb 2c		 jmp	 SHORT $LN9@GetFilterO
  00064	eb 2a		 jmp	 SHORT $LN9@GetFilterO
$LN4@GetFilterO:

; 200  :     }
; 201  :     else if(strcmp(Filter_Method->szName, "Adaptive Noise Filter") == 0)

  00066	68 00 00 00 00	 push	 OFFSET ??_C@_0BG@OBGDJCH@Adaptive?5Noise?5Filter?$AA@
  0006b	8b 45 08	 mov	 eax, DWORD PTR _Filter_Method$[ebp]
  0006e	8b 48 0c	 mov	 ecx, DWORD PTR [eax+12]
  00071	51		 push	 ecx
  00072	e8 00 00 00 00	 call	 _strcmp
  00077	83 c4 08	 add	 esp, 8
  0007a	85 c0		 test	 eax, eax
  0007c	75 09		 jne	 SHORT $LN2@GetFilterO

; 202  :     {
; 203  :         return 55;

  0007e	b8 37 00 00 00	 mov	 eax, 55			; 00000037H
  00083	eb 0b		 jmp	 SHORT $LN9@GetFilterO
  00085	eb 09		 jmp	 SHORT $LN9@GetFilterO
$LN2@GetFilterO:

; 204  :     }
; 205  :     else return Filter_Method->HistoryRequired*10;

  00087	8b 55 08	 mov	 edx, DWORD PTR _Filter_Method$[ebp]
  0008a	8b 42 44	 mov	 eax, DWORD PTR [edx+68]
  0008d	6b c0 0a	 imul	 eax, 10			; 0000000aH
$LN9@GetFilterO:

; 206  : }

  00090	5d		 pop	 ebp
  00091	c3		 ret	 0
?GetFilterOrder@@YAHPAUFILTER_METHOD@@@Z ENDP		; GetFilterOrder
_TEXT	ENDS
PUBLIC	?AddUIForFilterPlugin@@YAXPAUHMENU__@@PAUFILTER_METHOD@@H@Z ; AddUIForFilterPlugin
; Function compile flags: /Odtp
;	COMDAT ?AddUIForFilterPlugin@@YAXPAUHMENU__@@PAUFILTER_METHOD@@H@Z
_TEXT	SEGMENT
_hFilterMenu$ = 8					; size = 4
_FilterMethod$ = 12					; size = 4
_MenuId$ = 16						; size = 4
?AddUIForFilterPlugin@@YAXPAUHMENU__@@PAUFILTER_METHOD@@H@Z PROC ; AddUIForFilterPlugin, COMDAT

; 168  : {

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

; 169  :     if(FilterMethod->MenuId == 0)

  00003	8b 45 0c	 mov	 eax, DWORD PTR _FilterMethod$[ebp]
  00006	83 78 20 00	 cmp	 DWORD PTR [eax+32], 0
  0000a	75 09		 jne	 SHORT $LN3@AddUIForFi

; 170  :     {
; 171  :         FilterMethod->MenuId = MenuId;

  0000c	8b 4d 0c	 mov	 ecx, DWORD PTR _FilterMethod$[ebp]
  0000f	8b 55 10	 mov	 edx, DWORD PTR _MenuId$[ebp]
  00012	89 51 20	 mov	 DWORD PTR [ecx+32], edx
$LN3@AddUIForFi:

; 172  :     }
; 173  :     if(FilterMethod->szMenuName != NULL)

  00015	8b 45 0c	 mov	 eax, DWORD PTR _FilterMethod$[ebp]
  00018	83 78 10 00	 cmp	 DWORD PTR [eax+16], 0
  0001c	74 1c		 je	 SHORT $LN2@AddUIForFi

; 174  :     {
; 175  :         AppendMenuA(hFilterMenu, MF_STRING | MF_ENABLED, FilterMethod->MenuId, FilterMethod->szMenuName);

  0001e	8b 4d 0c	 mov	 ecx, DWORD PTR _FilterMethod$[ebp]
  00021	8b 51 10	 mov	 edx, DWORD PTR [ecx+16]
  00024	52		 push	 edx
  00025	8b 45 0c	 mov	 eax, DWORD PTR _FilterMethod$[ebp]
  00028	8b 48 20	 mov	 ecx, DWORD PTR [eax+32]
  0002b	51		 push	 ecx
  0002c	6a 00		 push	 0
  0002e	8b 55 08	 mov	 edx, DWORD PTR _hFilterMenu$[ebp]
  00031	52		 push	 edx
  00032	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__AppendMenuA@16

; 176  :     }
; 177  :     else

  00038	eb 1a		 jmp	 SHORT $LN4@AddUIForFi
$LN2@AddUIForFi:

; 178  :     {
; 179  :         AppendMenuA(hFilterMenu, MF_STRING | MF_ENABLED, FilterMethod->MenuId, FilterMethod->szName);

  0003a	8b 45 0c	 mov	 eax, DWORD PTR _FilterMethod$[ebp]
  0003d	8b 48 0c	 mov	 ecx, DWORD PTR [eax+12]
  00040	51		 push	 ecx
  00041	8b 55 0c	 mov	 edx, DWORD PTR _FilterMethod$[ebp]
  00044	8b 42 20	 mov	 eax, DWORD PTR [edx+32]
  00047	50		 push	 eax
  00048	6a 00		 push	 0
  0004a	8b 4d 08	 mov	 ecx, DWORD PTR _hFilterMenu$[ebp]
  0004d	51		 push	 ecx
  0004e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__AppendMenuA@16
$LN4@AddUIForFi:

; 180  :     }
; 181  : }

  00054	5d		 pop	 ebp
  00055	c3		 ret	 0
?AddUIForFilterPlugin@@YAXPAUHMENU__@@PAUFILTER_METHOD@@H@Z ENDP ; AddUIForFilterPlugin
_TEXT	ENDS
PUBLIC	?Filter_WillWeDoOutput@@YAHXZ			; Filter_WillWeDoOutput
; Function compile flags: /Odtp
;	COMDAT ?Filter_WillWeDoOutput@@YAHXZ
_TEXT	SEGMENT
_i$ = -4						; size = 4
?Filter_WillWeDoOutput@@YAHXZ PROC			; Filter_WillWeDoOutput, COMDAT

; 95   : {

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

; 96   :     int i;
; 97   :     for(i = 0; i < NumFilters; i++)

  00004	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  0000b	eb 09		 jmp	 SHORT $LN4@Filter_Wil
$LN3@Filter_Wil:
  0000d	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  00010	83 c0 01	 add	 eax, 1
  00013	89 45 fc	 mov	 DWORD PTR _i$[ebp], eax
$LN4@Filter_Wil:
  00016	8b 4d fc	 mov	 ecx, DWORD PTR _i$[ebp]
  00019	3b 0d 00 00 00
	00		 cmp	 ecx, DWORD PTR ?NumFilters@@3JA ; NumFilters
  0001f	7d 29		 jge	 SHORT $LN2@Filter_Wil

; 98   :     {
; 99   :         if(Filters[i]->bActive && !Filters[i]->bOnInput)

  00021	8b 55 fc	 mov	 edx, DWORD PTR _i$[ebp]
  00024	8b 04 95 00 00
	00 00		 mov	 eax, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[edx*4]
  0002b	83 78 14 00	 cmp	 DWORD PTR [eax+20], 0
  0002f	74 17		 je	 SHORT $LN1@Filter_Wil
  00031	8b 4d fc	 mov	 ecx, DWORD PTR _i$[ebp]
  00034	8b 14 8d 00 00
	00 00		 mov	 edx, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[ecx*4]
  0003b	83 7a 18 00	 cmp	 DWORD PTR [edx+24], 0
  0003f	75 07		 jne	 SHORT $LN1@Filter_Wil

; 100  :         {
; 101  :             return TRUE;

  00041	b8 01 00 00 00	 mov	 eax, 1
  00046	eb 04		 jmp	 SHORT $LN5@Filter_Wil
$LN1@Filter_Wil:

; 102  :         }
; 103  :     }

  00048	eb c3		 jmp	 SHORT $LN3@Filter_Wil
$LN2@Filter_Wil:

; 104  :     return FALSE;

  0004a	33 c0		 xor	 eax, eax
$LN5@Filter_Wil:

; 105  : }

  0004c	8b e5		 mov	 esp, ebp
  0004e	5d		 pop	 ebp
  0004f	c3		 ret	 0
?Filter_WillWeDoOutput@@YAHXZ ENDP			; Filter_WillWeDoOutput
_TEXT	ENDS
PUBLIC	?Filter_DoOutput@@YAXPAUTDeinterlaceInfo@@HH@Z	; Filter_DoOutput
; Function compile flags: /Odtp
;	COMDAT ?Filter_DoOutput@@YAXPAUTDeinterlaceInfo@@HH@Z
_TEXT	SEGMENT
_i$ = -4						; size = 4
_pInfo$ = 8						; size = 4
_History$ = 12						; size = 4
_HurryUp$ = 16						; size = 4
?Filter_DoOutput@@YAXPAUTDeinterlaceInfo@@HH@Z PROC	; Filter_DoOutput, COMDAT

; 76   : {

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

; 77   :     int i;
; 78   :     for(i = 0; i < NumFilters; i++)

  00004	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  0000b	eb 09		 jmp	 SHORT $LN7@Filter_DoO
$LN6@Filter_DoO:
  0000d	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  00010	83 c0 01	 add	 eax, 1
  00013	89 45 fc	 mov	 DWORD PTR _i$[ebp], eax
$LN7@Filter_DoO:
  00016	8b 4d fc	 mov	 ecx, DWORD PTR _i$[ebp]
  00019	3b 0d 00 00 00
	00		 cmp	 ecx, DWORD PTR ?NumFilters@@3JA ; NumFilters
  0001f	7d 60		 jge	 SHORT $LN8@Filter_DoO

; 79   :     {
; 80   :         if(Filters[i]->bActive && !Filters[i]->bOnInput)

  00021	8b 55 fc	 mov	 edx, DWORD PTR _i$[ebp]
  00024	8b 04 95 00 00
	00 00		 mov	 eax, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[edx*4]
  0002b	83 78 14 00	 cmp	 DWORD PTR [eax+20], 0
  0002f	74 4e		 je	 SHORT $LN4@Filter_DoO
  00031	8b 4d fc	 mov	 ecx, DWORD PTR _i$[ebp]
  00034	8b 14 8d 00 00
	00 00		 mov	 edx, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[ecx*4]
  0003b	83 7a 18 00	 cmp	 DWORD PTR [edx+24], 0
  0003f	75 3e		 jne	 SHORT $LN4@Filter_DoO

; 81   :         {
; 82   :             if(!HurryUp || Filters[i]->bAlwaysRun)

  00041	83 7d 10 00	 cmp	 DWORD PTR _HurryUp$[ebp], 0
  00045	74 10		 je	 SHORT $LN2@Filter_DoO
  00047	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  0004a	8b 0c 85 00 00
	00 00		 mov	 ecx, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[eax*4]
  00051	83 79 24 00	 cmp	 DWORD PTR [ecx+36], 0
  00055	74 28		 je	 SHORT $LN4@Filter_DoO
$LN2@Filter_DoO:

; 83   :             {
; 84   :                 if(History >= Filters[i]->HistoryRequired)

  00057	8b 55 fc	 mov	 edx, DWORD PTR _i$[ebp]
  0005a	8b 04 95 00 00
	00 00		 mov	 eax, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[edx*4]
  00061	8b 4d 0c	 mov	 ecx, DWORD PTR _History$[ebp]
  00064	3b 48 44	 cmp	 ecx, DWORD PTR [eax+68]
  00067	7c 16		 jl	 SHORT $LN4@Filter_DoO

; 85   :                 {
; 86   :                     Filters[i]->pfnAlgorithm(pInfo);

  00069	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  0006c	52		 push	 edx
  0006d	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  00070	8b 0c 85 00 00
	00 00		 mov	 ecx, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[eax*4]
  00077	8b 51 1c	 mov	 edx, DWORD PTR [ecx+28]
  0007a	ff d2		 call	 edx
  0007c	83 c4 04	 add	 esp, 4
$LN4@Filter_DoO:

; 87   :                     CHECK_FPU_STACK;
; 88   :                 }
; 89   :             }
; 90   :         }

  0007f	eb 8c		 jmp	 SHORT $LN6@Filter_DoO
$LN8@Filter_DoO:

; 91   :     }
; 92   : }

  00081	8b e5		 mov	 esp, ebp
  00083	5d		 pop	 ebp
  00084	c3		 ret	 0
?Filter_DoOutput@@YAXPAUTDeinterlaceInfo@@HH@Z ENDP	; Filter_DoOutput
_TEXT	ENDS
PUBLIC	?Filter_DoInput@@YAJPAUTDeinterlaceInfo@@HH@Z	; Filter_DoInput
; Function compile flags: /Odtp
;	COMDAT ?Filter_DoInput@@YAJPAUTDeinterlaceInfo@@HH@Z
_TEXT	SEGMENT
_SourceAspectAdjust$ = -8				; size = 4
_i$ = -4						; size = 4
_pInfo$ = 8						; size = 4
_History$ = 12						; size = 4
_HurryUp$ = 16						; size = 4
?Filter_DoInput@@YAJPAUTDeinterlaceInfo@@HH@Z PROC	; Filter_DoInput, COMDAT

; 50   : {

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

; 51   :     long SourceAspectAdjust = 1000;

  00006	c7 45 f8 e8 03
	00 00		 mov	 DWORD PTR _SourceAspectAdjust$[ebp], 1000 ; 000003e8H

; 52   :     int i;
; 53   :     for(i = 0; i < NumFilters; i++)

  0000d	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  00014	eb 09		 jmp	 SHORT $LN9@Filter_DoI
$LN8@Filter_DoI:
  00016	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  00019	83 c0 01	 add	 eax, 1
  0001c	89 45 fc	 mov	 DWORD PTR _i$[ebp], eax
$LN9@Filter_DoI:
  0001f	8b 4d fc	 mov	 ecx, DWORD PTR _i$[ebp]
  00022	3b 0d 00 00 00
	00		 cmp	 ecx, DWORD PTR ?NumFilters@@3JA ; NumFilters
  00028	0f 8d 9a 00 00
	00		 jge	 $LN7@Filter_DoI

; 54   :     {
; 55   :         if(Filters[i]->bActive && Filters[i]->bOnInput)

  0002e	8b 55 fc	 mov	 edx, DWORD PTR _i$[ebp]
  00031	8b 04 95 00 00
	00 00		 mov	 eax, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[edx*4]
  00038	83 78 14 00	 cmp	 DWORD PTR [eax+20], 0
  0003c	0f 84 81 00 00
	00		 je	 $LN6@Filter_DoI
  00042	8b 4d fc	 mov	 ecx, DWORD PTR _i$[ebp]
  00045	8b 14 8d 00 00
	00 00		 mov	 edx, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[ecx*4]
  0004c	83 7a 18 00	 cmp	 DWORD PTR [edx+24], 0
  00050	74 71		 je	 SHORT $LN6@Filter_DoI

; 56   :         {
; 57   :             if(!HurryUp || Filters[i]->bAlwaysRun)

  00052	83 7d 10 00	 cmp	 DWORD PTR _HurryUp$[ebp], 0
  00056	74 10		 je	 SHORT $LN4@Filter_DoI
  00058	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  0005b	8b 0c 85 00 00
	00 00		 mov	 ecx, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[eax*4]
  00062	83 79 24 00	 cmp	 DWORD PTR [ecx+36], 0
  00066	74 5b		 je	 SHORT $LN6@Filter_DoI
$LN4@Filter_DoI:

; 58   :             {
; 59   :                 if(History >= Filters[i]->HistoryRequired)

  00068	8b 55 fc	 mov	 edx, DWORD PTR _i$[ebp]
  0006b	8b 04 95 00 00
	00 00		 mov	 eax, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[edx*4]
  00072	8b 4d 0c	 mov	 ecx, DWORD PTR _History$[ebp]
  00075	3b 48 44	 cmp	 ecx, DWORD PTR [eax+68]
  00078	7c 49		 jl	 SHORT $LN6@Filter_DoI

; 60   :                 {
; 61   :                     if(!(pInfo->PictureHistory[0]->Flags & PICTURE_INTERLACED_MASK) ||
; 62   :                         Filters[i]->CanDoInterlaced)

  0007a	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  0007d	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00080	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  00083	83 e1 03	 and	 ecx, 3
  00086	74 10		 je	 SHORT $LN1@Filter_DoI
  00088	8b 55 fc	 mov	 edx, DWORD PTR _i$[ebp]
  0008b	8b 04 95 00 00
	00 00		 mov	 eax, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[edx*4]
  00092	83 78 40 00	 cmp	 DWORD PTR [eax+64], 0
  00096	74 2b		 je	 SHORT $LN6@Filter_DoI
$LN1@Filter_DoI:

; 63   :                     {
; 64   :                         SourceAspectAdjust *= Filters[i]->pfnAlgorithm(pInfo);

  00098	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  0009b	51		 push	 ecx
  0009c	8b 55 fc	 mov	 edx, DWORD PTR _i$[ebp]
  0009f	8b 04 95 00 00
	00 00		 mov	 eax, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[edx*4]
  000a6	8b 48 1c	 mov	 ecx, DWORD PTR [eax+28]
  000a9	ff d1		 call	 ecx
  000ab	83 c4 04	 add	 esp, 4
  000ae	0f af 45 f8	 imul	 eax, DWORD PTR _SourceAspectAdjust$[ebp]
  000b2	89 45 f8	 mov	 DWORD PTR _SourceAspectAdjust$[ebp], eax

; 65   :                         CHECK_FPU_STACK;
; 66   :                         SourceAspectAdjust /= 1000;

  000b5	8b 45 f8	 mov	 eax, DWORD PTR _SourceAspectAdjust$[ebp]
  000b8	99		 cdq
  000b9	b9 e8 03 00 00	 mov	 ecx, 1000		; 000003e8H
  000be	f7 f9		 idiv	 ecx
  000c0	89 45 f8	 mov	 DWORD PTR _SourceAspectAdjust$[ebp], eax
$LN6@Filter_DoI:

; 67   :                     }
; 68   :                 }
; 69   :             }
; 70   :         }
; 71   :     }

  000c3	e9 4e ff ff ff	 jmp	 $LN8@Filter_DoI
$LN7@Filter_DoI:

; 72   :     return SourceAspectAdjust;

  000c8	8b 45 f8	 mov	 eax, DWORD PTR _SourceAspectAdjust$[ebp]

; 73   : }

  000cb	8b e5		 mov	 esp, ebp
  000cd	5d		 pop	 ebp
  000ce	c3		 ret	 0
?Filter_DoInput@@YAJPAUTDeinterlaceInfo@@HH@Z ENDP	; Filter_DoInput
;	COMDAT xdata$x
; File c:\program files (x86)\microsoft visual studio 9.0\vc\include\utility
xdata$x	SEGMENT
__unwindtable$??$swap@V?$SmartPtr@VCSettingsHolder@@@@@std@@YAXAAV?$SmartPtr@VCSettingsHolder@@@@0@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??$swap@V?$SmartPtr@VCSettingsHolder@@@@@std@@YAXAAV?$SmartPtr@VCSettingsHolder@@@@0@Z$0
__ehfuncinfo$??$swap@V?$SmartPtr@VCSettingsHolder@@@@@std@@YAXAAV?$SmartPtr@VCSettingsHolder@@@@0@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??$swap@V?$SmartPtr@VCSettingsHolder@@@@@std@@YAXAAV?$SmartPtr@VCSettingsHolder@@@@0@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??$swap@V?$SmartPtr@VCSettingsHolder@@@@@std@@YAXAAV?$SmartPtr@VCSettingsHolder@@@@0@Z
_TEXT	SEGMENT
__Tmp$143630 = -20					; size = 8
__$EHRec$ = -12						; size = 12
__Left$ = 8						; size = 4
__Right$ = 12						; size = 4
??$swap@V?$SmartPtr@VCSettingsHolder@@@@@std@@YAXAAV?$SmartPtr@VCSettingsHolder@@@@0@Z PROC ; std::swap<SmartPtr<CSettingsHolder> >, COMDAT

; 17   : 	{	// exchange values stored at _Left and _Right

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??$swap@V?$SmartPtr@VCSettingsHolder@@@@@std@@YAXAAV?$SmartPtr@VCSettingsHolder@@@@0@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 08	 sub	 esp, 8
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax

; 18   : 	if (&_Left != &_Right)

  00025	8b 45 08	 mov	 eax, DWORD PTR __Left$[ebp]
  00028	3b 45 0c	 cmp	 eax, DWORD PTR __Right$[ebp]
  0002b	74 3a		 je	 SHORT $LN2@swap@3

; 19   : 		{	// different, worth swapping
; 20   : 		_Ty _Tmp = _Left;

  0002d	8b 4d 08	 mov	 ecx, DWORD PTR __Left$[ebp]
  00030	51		 push	 ecx
  00031	8d 4d ec	 lea	 ecx, DWORD PTR __Tmp$143630[ebp]
  00034	e8 00 00 00 00	 call	 ??0?$SmartPtr@VCSettingsHolder@@@@QAE@ABV0@@Z ; SmartPtr<CSettingsHolder>::SmartPtr<CSettingsHolder>
  00039	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0

; 21   : 
; 22   : 		_Left = _Right;

  00040	8b 55 0c	 mov	 edx, DWORD PTR __Right$[ebp]
  00043	52		 push	 edx
  00044	8b 4d 08	 mov	 ecx, DWORD PTR __Left$[ebp]
  00047	e8 00 00 00 00	 call	 ??4?$SmartPtr@VCSettingsHolder@@@@QAEAAV0@ABV0@@Z ; SmartPtr<CSettingsHolder>::operator=

; 23   : 		_Right = _Tmp;

  0004c	8d 45 ec	 lea	 eax, DWORD PTR __Tmp$143630[ebp]
  0004f	50		 push	 eax
  00050	8b 4d 0c	 mov	 ecx, DWORD PTR __Right$[ebp]
  00053	e8 00 00 00 00	 call	 ??4?$SmartPtr@VCSettingsHolder@@@@QAEAAV0@ABV0@@Z ; SmartPtr<CSettingsHolder>::operator=

; 24   : 		}

  00058	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0005f	8d 4d ec	 lea	 ecx, DWORD PTR __Tmp$143630[ebp]
  00062	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSettingsHolder@@@@QAE@XZ ; SmartPtr<CSettingsHolder>::~SmartPtr<CSettingsHolder>
$LN2@swap@3:

; 25   : 	}

  00067	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0006a	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00071	59		 pop	 ecx
  00072	8b e5		 mov	 esp, ebp
  00074	5d		 pop	 ebp
  00075	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??$swap@V?$SmartPtr@VCSettingsHolder@@@@@std@@YAXAAV?$SmartPtr@VCSettingsHolder@@@@0@Z$0:
  00000	8d 4d ec	 lea	 ecx, DWORD PTR __Tmp$143630[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSettingsHolder@@@@QAE@XZ ; SmartPtr<CSettingsHolder>::~SmartPtr<CSettingsHolder>
__ehhandler$??$swap@V?$SmartPtr@VCSettingsHolder@@@@@std@@YAXAAV?$SmartPtr@VCSettingsHolder@@@@0@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 f4	 mov	 ecx, DWORD PTR [edx-12]
  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$??$swap@V?$SmartPtr@VCSettingsHolder@@@@@std@@YAXAAV?$SmartPtr@VCSettingsHolder@@@@0@Z
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??$swap@V?$SmartPtr@VCSettingsHolder@@@@@std@@YAXAAV?$SmartPtr@VCSettingsHolder@@@@0@Z ENDP ; std::swap<SmartPtr<CSettingsHolder> >
PUBLIC	?UnloadFilterPlugins@@YAXXZ			; UnloadFilterPlugins
;	COMDAT xdata$x
; File c:\develop\dscaler423a\dscaler\filter.cpp
xdata$x	SEGMENT
__unwindtable$?UnloadFilterPlugins@@YAXXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?UnloadFilterPlugins@@YAXXZ$0
__ehfuncinfo$?UnloadFilterPlugins@@YAXXZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?UnloadFilterPlugins@@YAXXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?UnloadFilterPlugins@@YAXXZ
_TEXT	SEGMENT
tv129 = -28						; size = 4
tv130 = -24						; size = 4
$T325459 = -20						; size = 4
_i$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
?UnloadFilterPlugins@@YAXXZ PROC			; UnloadFilterPlugins, COMDAT

; 151  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?UnloadFilterPlugins@@YAXXZ
  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

; 152  :     // get rid of the settings before we unload the filters
; 153  :     int i;
; 154  :     for(i = 0; i < NumFilters; i++)

  00025	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  0002c	eb 09		 jmp	 SHORT $LN4@UnloadFilt
$LN3@UnloadFilt:
  0002e	8b 45 f0	 mov	 eax, DWORD PTR _i$[ebp]
  00031	83 c0 01	 add	 eax, 1
  00034	89 45 f0	 mov	 DWORD PTR _i$[ebp], eax
$LN4@UnloadFilt:
  00037	8b 4d f0	 mov	 ecx, DWORD PTR _i$[ebp]
  0003a	3b 0d 00 00 00
	00		 cmp	 ecx, DWORD PTR ?NumFilters@@3JA ; NumFilters
  00040	7d 76		 jge	 SHORT $LN2@UnloadFilt

; 155  :     {
; 156  :         if(Filters[i]->pfnPluginExit!=NULL)

  00042	8b 55 f0	 mov	 edx, DWORD PTR _i$[ebp]
  00045	8b 04 95 00 00
	00 00		 mov	 eax, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[edx*4]
  0004c	83 78 2c 00	 cmp	 DWORD PTR [eax+44], 0
  00050	74 0f		 je	 SHORT $LN1@UnloadFilt

; 157  :         {
; 158  :             Filters[i]->pfnPluginExit();

  00052	8b 4d f0	 mov	 ecx, DWORD PTR _i$[ebp]
  00055	8b 14 8d 00 00
	00 00		 mov	 edx, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[ecx*4]
  0005c	8b 42 2c	 mov	 eax, DWORD PTR [edx+44]
  0005f	ff d0		 call	 eax
$LN1@UnloadFilt:

; 159  :         }
; 160  :         SettingsMaster->Unregister(FilterHolders[i]);

  00061	8b 4d f0	 mov	 ecx, DWORD PTR _i$[ebp]
  00064	51		 push	 ecx
  00065	b9 00 00 00 00	 mov	 ecx, OFFSET ?FilterHolders@@3V?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@A ; FilterHolders
  0006a	e8 00 00 00 00	 call	 ??A?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@QAEAAV?$SmartPtr@VCSettingsHolder@@@@I@Z ; std::vector<SmartPtr<CSettingsHolder>,std::allocator<SmartPtr<CSettingsHolder> > >::operator[]
  0006f	83 ec 08	 sub	 esp, 8
  00072	8b cc		 mov	 ecx, esp
  00074	89 65 ec	 mov	 DWORD PTR $T325459[ebp], esp
  00077	50		 push	 eax
  00078	e8 00 00 00 00	 call	 ??0?$SmartPtr@VCSettingsHolder@@@@QAE@ABV0@@Z ; SmartPtr<CSettingsHolder>::SmartPtr<CSettingsHolder>
  0007d	89 45 e8	 mov	 DWORD PTR tv130[ebp], eax
  00080	8b 55 e8	 mov	 edx, DWORD PTR tv130[ebp]
  00083	89 55 e4	 mov	 DWORD PTR tv129[ebp], edx
  00086	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0008d	b9 00 00 00 00	 mov	 ecx, OFFSET ?SettingsMaster@@3V?$SmartPtr@VCSettingsMaster@@@@A ; SettingsMaster
  00092	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSettingsMaster@@@@QBEPAVCSettingsMaster@@XZ ; SmartPtr<CSettingsMaster>::operator->
  00097	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0009e	8b c8		 mov	 ecx, eax
  000a0	e8 00 00 00 00	 call	 ?Unregister@CSettingsMaster@@QAEXV?$SmartPtr@VCSettingsHolder@@@@@Z ; CSettingsMaster::Unregister

; 161  :         Filters[i] = NULL;

  000a5	8b 45 f0	 mov	 eax, DWORD PTR _i$[ebp]
  000a8	c7 04 85 00 00
	00 00 00 00 00
	00		 mov	 DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[eax*4], 0

; 162  :     }

  000b3	e9 76 ff ff ff	 jmp	 $LN3@UnloadFilt
$LN2@UnloadFilt:

; 163  :     FilterHolders.clear();

  000b8	b9 00 00 00 00	 mov	 ecx, OFFSET ?FilterHolders@@3V?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@A ; FilterHolders
  000bd	e8 00 00 00 00	 call	 ?clear@?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@QAEXXZ ; std::vector<SmartPtr<CSettingsHolder>,std::allocator<SmartPtr<CSettingsHolder> > >::clear

; 164  :     NumFilters = 0;

  000c2	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?NumFilters@@3JA, 0 ; NumFilters

; 165  : }

  000cc	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  000cf	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000d6	59		 pop	 ecx
  000d7	8b e5		 mov	 esp, ebp
  000d9	5d		 pop	 ebp
  000da	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?UnloadFilterPlugins@@YAXXZ$0:
  00000	8b 4d ec	 mov	 ecx, DWORD PTR $T325459[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSettingsHolder@@@@QAE@XZ ; SmartPtr<CSettingsHolder>::~SmartPtr<CSettingsHolder>
__ehhandler$?UnloadFilterPlugins@@YAXXZ:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a ec	 mov	 ecx, DWORD PTR [edx-20]
  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$?UnloadFilterPlugins@@YAXXZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?UnloadFilterPlugins@@YAXXZ ENDP			; UnloadFilterPlugins
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\dynamicfunction.h
;	COMDAT ??0?$DynamicFunctionParent@P6APAUFILTER_METHOD@@J@Z@@QAE@PB_WPBD@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_LibraryModule$ = -4					; size = 4
_LibraryName$ = 8					; size = 4
_FunctionName$ = 12					; size = 4
??0?$DynamicFunctionParent@P6APAUFILTER_METHOD@@J@Z@@QAE@PB_WPBD@Z PROC ; DynamicFunctionParent<FILTER_METHOD * (__cdecl*)(long)>::DynamicFunctionParent<FILTER_METHOD * (__cdecl*)(long)>, COMDAT
; _this$ = ecx

; 30   :     {

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

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

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

; 32   :         if(LibraryModule)

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

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

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

; 35   :         }
; 36   :     }

  0003a	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0003d	8b e5		 mov	 esp, ebp
  0003f	5d		 pop	 ebp
  00040	c2 08 00	 ret	 8
??0?$DynamicFunctionParent@P6APAUFILTER_METHOD@@J@Z@@QAE@PB_WPBD@Z ENDP ; DynamicFunctionParent<FILTER_METHOD * (__cdecl*)(long)>::DynamicFunctionParent<FILTER_METHOD * (__cdecl*)(long)>
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??0?$DynamicFunctionC1@PAUFILTER_METHOD@@J@@QAE@PB_WPBD@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_LibraryName$ = 8					; size = 4
_FunctionName$ = 12					; size = 4
??0?$DynamicFunctionC1@PAUFILTER_METHOD@@J@@QAE@PB_WPBD@Z PROC ; DynamicFunctionC1<FILTER_METHOD *,long>::DynamicFunctionC1<FILTER_METHOD *,long>, COMDAT
; _this$ = ecx

; 53   :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00007	8b 45 0c	 mov	 eax, DWORD PTR _FunctionName$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d 08	 mov	 ecx, DWORD PTR _LibraryName$[ebp]
  0000e	51		 push	 ecx
  0000f	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00012	e8 00 00 00 00	 call	 ??0?$DynamicFunctionParent@P6APAUFILTER_METHOD@@J@Z@@QAE@PB_WPBD@Z ; DynamicFunctionParent<FILTER_METHOD * (__cdecl*)(long)>::DynamicFunctionParent<FILTER_METHOD * (__cdecl*)(long)>

; 54   :     }

  00017	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0001a	8b e5		 mov	 esp, ebp
  0001c	5d		 pop	 ebp
  0001d	c2 08 00	 ret	 8
??0?$DynamicFunctionC1@PAUFILTER_METHOD@@J@@QAE@PB_WPBD@Z ENDP ; DynamicFunctionC1<FILTER_METHOD *,long>::DynamicFunctionC1<FILTER_METHOD *,long>
_TEXT	ENDS
PUBLIC	?GetFilterSettings@@YAXAAV?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@AAV?$vector@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@V?$allocator@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@@2@@Z ; GetFilterSettings
;	COMDAT xdata$x
; File c:\develop\dscaler423a\dscaler\filter.cpp
xdata$x	SEGMENT
__unwindtable$?GetFilterSettings@@YAXAAV?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@AAV?$vector@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@V?$allocator@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@@2@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?GetFilterSettings@@YAXAAV?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@AAV?$vector@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@V?$allocator@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@@2@@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?GetFilterSettings@@YAXAAV?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@AAV?$vector@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@V?$allocator@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@@2@@Z$1
__ehfuncinfo$?GetFilterSettings@@YAXAAV?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@AAV?$vector@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@V?$allocator@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@@2@@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?GetFilterSettings@@YAXAAV?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@AAV?$vector@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@V?$allocator@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@@2@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?GetFilterSettings@@YAXAAV?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@AAV?$vector@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@V?$allocator@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@@2@@Z
_TEXT	SEGMENT
tv85 = -80						; size = 4
tv72 = -76						; size = 4
$T341550 = -72						; size = 28
$T341549 = -44						; size = 28
_i$142640 = -16						; size = 4
__$EHRec$ = -12						; size = 12
_Holders$ = 8						; size = 4
_Names$ = 12						; size = 4
?GetFilterSettings@@YAXAAV?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@AAV?$vector@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@V?$allocator@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@@2@@Z PROC ; GetFilterSettings, COMDAT

; 330  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?GetFilterSettings@@YAXAAV?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@AAV?$vector@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@V?$allocator@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@@2@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 44	 sub	 esp, 68			; 00000044H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax

; 331  :     Holders = FilterHolders;

  00025	68 00 00 00 00	 push	 OFFSET ?FilterHolders@@3V?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@A ; FilterHolders
  0002a	8b 4d 08	 mov	 ecx, DWORD PTR _Holders$[ebp]
  0002d	e8 00 00 00 00	 call	 ??4?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@QAEAAV01@ABV01@@Z ; std::vector<SmartPtr<CSettingsHolder>,std::allocator<SmartPtr<CSettingsHolder> > >::operator=

; 332  :     Names.clear();

  00032	8b 4d 0c	 mov	 ecx, DWORD PTR _Names$[ebp]
  00035	e8 00 00 00 00	 call	 ?clear@?$vector@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@V?$allocator@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@@std@@QAEXXZ ; std::vector<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,std::allocator<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > > >::clear

; 333  :     for(int i(0); i < NumFilters; i++)

  0003a	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _i$142640[ebp], 0
  00041	eb 09		 jmp	 SHORT $LN3@GetFilterS
$LN2@GetFilterS:
  00043	8b 45 f0	 mov	 eax, DWORD PTR _i$142640[ebp]
  00046	83 c0 01	 add	 eax, 1
  00049	89 45 f0	 mov	 DWORD PTR _i$142640[ebp], eax
$LN3@GetFilterS:
  0004c	8b 4d f0	 mov	 ecx, DWORD PTR _i$142640[ebp]
  0004f	3b 0d 00 00 00
	00		 cmp	 ecx, DWORD PTR ?NumFilters@@3JA ; NumFilters
  00055	7d 63		 jge	 SHORT $LN4@GetFilterS

; 334  :     {
; 335  :         Names.push_back(MBCSToTString(Filters[i]->szName));

  00057	8b 55 f0	 mov	 edx, DWORD PTR _i$142640[ebp]
  0005a	8b 04 95 00 00
	00 00		 mov	 eax, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[edx*4]
  00061	8b 48 0c	 mov	 ecx, DWORD PTR [eax+12]
  00064	51		 push	 ecx
  00065	8d 4d d4	 lea	 ecx, DWORD PTR $T341549[ebp]
  00068	e8 00 00 00 00	 call	 ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
  0006d	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00074	8d 55 d4	 lea	 edx, DWORD PTR $T341549[ebp]
  00077	52		 push	 edx
  00078	8d 45 b8	 lea	 eax, DWORD PTR $T341550[ebp]
  0007b	50		 push	 eax
  0007c	e8 00 00 00 00	 call	 ?MBCSToUnicode@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ; MBCSToUnicode
  00081	83 c4 08	 add	 esp, 8
  00084	89 45 b4	 mov	 DWORD PTR tv72[ebp], eax
  00087	8b 4d b4	 mov	 ecx, DWORD PTR tv72[ebp]
  0008a	89 4d b0	 mov	 DWORD PTR tv85[ebp], ecx
  0008d	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00091	8b 55 b0	 mov	 edx, DWORD PTR tv85[ebp]
  00094	52		 push	 edx
  00095	8b 4d 0c	 mov	 ecx, DWORD PTR _Names$[ebp]
  00098	e8 00 00 00 00	 call	 ?push_back@?$vector@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@V?$allocator@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@@std@@QAEXABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z ; std::vector<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,std::allocator<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > > >::push_back
  0009d	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  000a1	8d 4d b8	 lea	 ecx, DWORD PTR $T341550[ebp]
  000a4	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> >
  000a9	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  000b0	8d 4d d4	 lea	 ecx, DWORD PTR $T341549[ebp]
  000b3	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> >
  000b8	eb 89		 jmp	 SHORT $LN2@GetFilterS
$LN4@GetFilterS:

; 336  :     }
; 337  : }

  000ba	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  000bd	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000c4	59		 pop	 ecx
  000c5	8b e5		 mov	 esp, ebp
  000c7	5d		 pop	 ebp
  000c8	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?GetFilterSettings@@YAXAAV?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@AAV?$vector@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@V?$allocator@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@@2@@Z$0:
  00000	8d 4d d4	 lea	 ecx, DWORD PTR $T341549[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$?GetFilterSettings@@YAXAAV?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@AAV?$vector@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@V?$allocator@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@@2@@Z$1:
  00008	8d 4d b8	 lea	 ecx, DWORD PTR $T341550[ebp]
  0000b	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__ehhandler$?GetFilterSettings@@YAXAAV?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@AAV?$vector@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@V?$allocator@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@@2@@Z:
  00010	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00014	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00017	8b 4a b8	 mov	 ecx, DWORD PTR [edx-72]
  0001a	33 c8		 xor	 ecx, eax
  0001c	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00021	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?GetFilterSettings@@YAXAAV?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@AAV?$vector@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@V?$allocator@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@@2@@Z
  00026	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?GetFilterSettings@@YAXAAV?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@AAV?$vector@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@V?$allocator@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@@2@@Z ENDP ; GetFilterSettings
PUBLIC	__$ArrayPad$
PUBLIC	?ProcessFilterSelection@@YAHPAUHWND__@@G@Z	; ProcessFilterSelection
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?ProcessFilterSelection@@YAHPAUHWND__@@G@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?ProcessFilterSelection@@YAHPAUHWND__@@G@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?ProcessFilterSelection@@YAHPAUHWND__@@G@Z$1
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?ProcessFilterSelection@@YAHPAUHWND__@@G@Z$1
__ehfuncinfo$?ProcessFilterSelection@@YAHPAUHWND__@@G@Z DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$?ProcessFilterSelection@@YAHPAUHWND__@@G@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?ProcessFilterSelection@@YAHPAUHWND__@@G@Z
_TEXT	SEGMENT
$T341563 = -80						; size = 4
$T341562 = -76						; size = 28
_Text$142357 = -48					; size = 28
__$ArrayPad$ = -20					; size = 4
_i$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_hWnd$ = 8						; size = 4
_wMenuID$ = 12						; size = 2
?ProcessFilterSelection@@YAHPAUHWND__@@G@Z PROC		; ProcessFilterSelection, COMDAT

; 306  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?ProcessFilterSelection@@YAHPAUHWND__@@G@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 44	 sub	 esp, 68			; 00000044H
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	89 45 ec	 mov	 DWORD PTR __$ArrayPad$[ebp], eax
  0001e	50		 push	 eax
  0001f	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  00022	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax

; 307  :     int i;
; 308  :     for(i = 0; i < NumFilters; i++)

  00028	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  0002f	eb 09		 jmp	 SHORT $LN6@ProcessFil
$LN5@ProcessFil:
  00031	8b 45 f0	 mov	 eax, DWORD PTR _i$[ebp]
  00034	83 c0 01	 add	 eax, 1
  00037	89 45 f0	 mov	 DWORD PTR _i$[ebp], eax
$LN6@ProcessFil:
  0003a	8b 4d f0	 mov	 ecx, DWORD PTR _i$[ebp]
  0003d	3b 0d 00 00 00
	00		 cmp	 ecx, DWORD PTR ?NumFilters@@3JA ; NumFilters
  00043	0f 8d d4 00 00
	00		 jge	 $LN4@ProcessFil

; 309  :     {
; 310  :         if(wMenuID == Filters[i]->MenuId)

  00049	0f b7 55 0c	 movzx	 edx, WORD PTR _wMenuID$[ebp]
  0004d	8b 45 f0	 mov	 eax, DWORD PTR _i$[ebp]
  00050	8b 0c 85 00 00
	00 00		 mov	 ecx, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[eax*4]
  00057	3b 51 20	 cmp	 edx, DWORD PTR [ecx+32]
  0005a	0f 85 b8 00 00
	00		 jne	 $LN3@ProcessFil

; 311  :         {
; 312  :             tstring Text(MBCSToTString(Filters[i]->szName));

  00060	8b 55 f0	 mov	 edx, DWORD PTR _i$[ebp]
  00063	8b 04 95 00 00
	00 00		 mov	 eax, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[edx*4]
  0006a	8b 48 0c	 mov	 ecx, DWORD PTR [eax+12]
  0006d	51		 push	 ecx
  0006e	8d 4d b4	 lea	 ecx, DWORD PTR $T341562[ebp]
  00071	e8 00 00 00 00	 call	 ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
  00076	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0007d	8d 55 b4	 lea	 edx, DWORD PTR $T341562[ebp]
  00080	52		 push	 edx
  00081	8d 45 d0	 lea	 eax, DWORD PTR _Text$142357[ebp]
  00084	50		 push	 eax
  00085	e8 00 00 00 00	 call	 ?MBCSToUnicode@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ; MBCSToUnicode
  0008a	83 c4 08	 add	 esp, 8
  0008d	c6 45 fc 02	 mov	 BYTE PTR __$EHRec$[ebp+8], 2
  00091	8d 4d b4	 lea	 ecx, DWORD PTR $T341562[ebp]
  00094	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> >

; 313  :             Filters[i]->bActive = !Filters[i]->bActive;

  00099	8b 4d f0	 mov	 ecx, DWORD PTR _i$[ebp]
  0009c	8b 14 8d 00 00
	00 00		 mov	 edx, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[ecx*4]
  000a3	33 c0		 xor	 eax, eax
  000a5	83 7a 14 00	 cmp	 DWORD PTR [edx+20], 0
  000a9	0f 94 c0	 sete	 al
  000ac	8b 4d f0	 mov	 ecx, DWORD PTR _i$[ebp]
  000af	8b 14 8d 00 00
	00 00		 mov	 edx, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[ecx*4]
  000b6	89 42 14	 mov	 DWORD PTR [edx+20], eax

; 314  :             if(Filters[i]->bActive)

  000b9	8b 45 f0	 mov	 eax, DWORD PTR _i$[ebp]
  000bc	8b 0c 85 00 00
	00 00		 mov	 ecx, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[eax*4]
  000c3	83 79 14 00	 cmp	 DWORD PTR [ecx+20], 0
  000c7	74 0f		 je	 SHORT $LN2@ProcessFil

; 315  :             {
; 316  :                 Text += _T(" ON");

  000c9	68 00 00 00 00	 push	 OFFSET ??_C@_17OGGONFHH@?$AA?5?$AAO?$AAN?$AA?$AA@
  000ce	8d 4d d0	 lea	 ecx, DWORD PTR _Text$142357[ebp]
  000d1	e8 00 00 00 00	 call	 ??Y?$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+=

; 317  :             }
; 318  :             else

  000d6	eb 0d		 jmp	 SHORT $LN1@ProcessFil
$LN2@ProcessFil:

; 319  :             {
; 320  :                 Text += _T(" OFF");

  000d8	68 00 00 00 00	 push	 OFFSET ??_C@_19MEOLKKII@?$AA?5?$AAO?$AAF?$AAF?$AA?$AA@
  000dd	8d 4d d0	 lea	 ecx, DWORD PTR _Text$142357[ebp]
  000e0	e8 00 00 00 00	 call	 ??Y?$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+=
$LN1@ProcessFil:

; 321  :             }
; 322  :             OSD_ShowText(Text, 0);

  000e5	6a 00		 push	 0
  000e7	6a 00		 push	 0
  000e9	83 ec 08	 sub	 esp, 8
  000ec	d9 ee		 fldz
  000ee	dd 1c 24	 fstp	 QWORD PTR [esp]
  000f1	8d 55 d0	 lea	 edx, DWORD PTR _Text$142357[ebp]
  000f4	52		 push	 edx
  000f5	e8 00 00 00 00	 call	 ?OSD_ShowText@@YAXABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@NHH@Z ; OSD_ShowText
  000fa	83 c4 14	 add	 esp, 20			; 00000014H

; 323  :             return TRUE;

  000fd	c7 45 b0 01 00
	00 00		 mov	 DWORD PTR $T341563[ebp], 1
  00104	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0010b	8d 4d d0	 lea	 ecx, DWORD PTR _Text$142357[ebp]
  0010e	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> >
  00113	8b 45 b0	 mov	 eax, DWORD PTR $T341563[ebp]
  00116	eb 07		 jmp	 SHORT $LN7@ProcessFil
$LN3@ProcessFil:

; 324  :         }
; 325  :     }

  00118	e9 14 ff ff ff	 jmp	 $LN5@ProcessFil
$LN4@ProcessFil:

; 326  :     return FALSE;

  0011d	33 c0		 xor	 eax, eax
$LN7@ProcessFil:

; 327  : }

  0011f	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00122	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00129	59		 pop	 ecx
  0012a	8b 4d ec	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  0012d	33 cd		 xor	 ecx, ebp
  0012f	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00134	8b e5		 mov	 esp, ebp
  00136	5d		 pop	 ebp
  00137	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?ProcessFilterSelection@@YAHPAUHWND__@@G@Z$0:
  00000	8d 4d b4	 lea	 ecx, DWORD PTR $T341562[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$?ProcessFilterSelection@@YAHPAUHWND__@@G@Z$1:
  00008	8d 4d d0	 lea	 ecx, DWORD PTR _Text$142357[ebp]
  0000b	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__ehhandler$?ProcessFilterSelection@@YAHPAUHWND__@@G@Z:
  00010	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00014	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00017	8b 4a b8	 mov	 ecx, DWORD PTR [edx-72]
  0001a	33 c8		 xor	 ecx, eax
  0001c	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00021	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  00024	33 c8		 xor	 ecx, eax
  00026	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002b	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?ProcessFilterSelection@@YAHPAUHWND__@@G@Z
  00030	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?ProcessFilterSelection@@YAHPAUHWND__@@G@Z ENDP		; ProcessFilterSelection
PUBLIC	?SortFilterPlugins@@YAXXZ			; SortFilterPlugins
; Function compile flags: /Odtp
;	COMDAT ?SortFilterPlugins@@YAXXZ
_TEXT	SEGMENT
_i$142309 = -12						; size = 4
_i$142293 = -8						; size = 4
_j$142289 = -4						; size = 4
?SortFilterPlugins@@YAXXZ PROC				; SortFilterPlugins, COMDAT

; 209  : {

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

; 210  :     if(NumFilters < 2)

  00007	83 3d 00 00 00
	00 02		 cmp	 DWORD PTR ?NumFilters@@3JA, 2 ; NumFilters
  0000e	7d 05		 jge	 SHORT $LN11@SortFilter

; 211  :     {
; 212  :         return;

  00010	e9 08 01 00 00	 jmp	 $LN12@SortFilter
$LN11@SortFilter:

; 213  :     }
; 214  : 
; 215  :     for(int j = 1; j < NumFilters; j++)

  00015	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _j$142289[ebp], 1
  0001c	eb 09		 jmp	 SHORT $LN10@SortFilter
$LN9@SortFilter:
  0001e	8b 45 fc	 mov	 eax, DWORD PTR _j$142289[ebp]
  00021	83 c0 01	 add	 eax, 1
  00024	89 45 fc	 mov	 DWORD PTR _j$142289[ebp], eax
$LN10@SortFilter:
  00027	8b 4d fc	 mov	 ecx, DWORD PTR _j$142289[ebp]
  0002a	3b 0d 00 00 00
	00		 cmp	 ecx, DWORD PTR ?NumFilters@@3JA ; NumFilters
  00030	0f 8d 9c 00 00
	00		 jge	 $LN8@SortFilter

; 216  :     {
; 217  :         for(int i = 0; i < NumFilters - j; i++)

  00036	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _i$142293[ebp], 0
  0003d	eb 09		 jmp	 SHORT $LN7@SortFilter
$LN6@SortFilter:
  0003f	8b 55 f8	 mov	 edx, DWORD PTR _i$142293[ebp]
  00042	83 c2 01	 add	 edx, 1
  00045	89 55 f8	 mov	 DWORD PTR _i$142293[ebp], edx
$LN7@SortFilter:
  00048	a1 00 00 00 00	 mov	 eax, DWORD PTR ?NumFilters@@3JA ; NumFilters
  0004d	2b 45 fc	 sub	 eax, DWORD PTR _j$142289[ebp]
  00050	39 45 f8	 cmp	 DWORD PTR _i$142293[ebp], eax
  00053	7d 78		 jge	 SHORT $LN5@SortFilter

; 218  :         {
; 219  :             if(GetFilterOrder(Filters[i]) > GetFilterOrder(Filters[i+1]))

  00055	8b 4d f8	 mov	 ecx, DWORD PTR _i$142293[ebp]
  00058	8b 14 8d 00 00
	00 00		 mov	 edx, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[ecx*4]
  0005f	52		 push	 edx
  00060	e8 00 00 00 00	 call	 ?GetFilterOrder@@YAHPAUFILTER_METHOD@@@Z ; GetFilterOrder
  00065	83 c4 04	 add	 esp, 4
  00068	8b f0		 mov	 esi, eax
  0006a	8b 45 f8	 mov	 eax, DWORD PTR _i$142293[ebp]
  0006d	8b 0c 85 04 00
	00 00		 mov	 ecx, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[eax*4+4]
  00074	51		 push	 ecx
  00075	e8 00 00 00 00	 call	 ?GetFilterOrder@@YAHPAUFILTER_METHOD@@@Z ; GetFilterOrder
  0007a	83 c4 04	 add	 esp, 4
  0007d	3b f0		 cmp	 esi, eax
  0007f	7e 47		 jle	 SHORT $LN4@SortFilter

; 220  :             {
; 221  :                 std::swap(Filters[i], Filters[i+1]);

  00081	8b 55 f8	 mov	 edx, DWORD PTR _i$142293[ebp]
  00084	8d 04 95 04 00
	00 00		 lea	 eax, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[edx*4+4]
  0008b	50		 push	 eax
  0008c	8b 4d f8	 mov	 ecx, DWORD PTR _i$142293[ebp]
  0008f	8d 14 8d 00 00
	00 00		 lea	 edx, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[ecx*4]
  00096	52		 push	 edx
  00097	e8 00 00 00 00	 call	 ??$swap@PAUFILTER_METHOD@@@std@@YAXAAPAUFILTER_METHOD@@0@Z ; std::swap<FILTER_METHOD *>
  0009c	83 c4 08	 add	 esp, 8

; 222  :                 std::swap(FilterHolders[i], FilterHolders[i+1]);

  0009f	8b 45 f8	 mov	 eax, DWORD PTR _i$142293[ebp]
  000a2	83 c0 01	 add	 eax, 1
  000a5	50		 push	 eax
  000a6	b9 00 00 00 00	 mov	 ecx, OFFSET ?FilterHolders@@3V?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@A ; FilterHolders
  000ab	e8 00 00 00 00	 call	 ??A?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@QAEAAV?$SmartPtr@VCSettingsHolder@@@@I@Z ; std::vector<SmartPtr<CSettingsHolder>,std::allocator<SmartPtr<CSettingsHolder> > >::operator[]
  000b0	50		 push	 eax
  000b1	8b 4d f8	 mov	 ecx, DWORD PTR _i$142293[ebp]
  000b4	51		 push	 ecx
  000b5	b9 00 00 00 00	 mov	 ecx, OFFSET ?FilterHolders@@3V?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@A ; FilterHolders
  000ba	e8 00 00 00 00	 call	 ??A?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@QAEAAV?$SmartPtr@VCSettingsHolder@@@@I@Z ; std::vector<SmartPtr<CSettingsHolder>,std::allocator<SmartPtr<CSettingsHolder> > >::operator[]
  000bf	50		 push	 eax
  000c0	e8 00 00 00 00	 call	 ??$swap@V?$SmartPtr@VCSettingsHolder@@@@@std@@YAXAAV?$SmartPtr@VCSettingsHolder@@@@0@Z ; std::swap<SmartPtr<CSettingsHolder> >
  000c5	83 c4 08	 add	 esp, 8
$LN4@SortFilter:

; 223  :             }
; 224  :         }

  000c8	e9 72 ff ff ff	 jmp	 $LN6@SortFilter
$LN5@SortFilter:

; 225  :     }

  000cd	e9 4c ff ff ff	 jmp	 $LN9@SortFilter
$LN8@SortFilter:

; 226  : 
; 227  :     LOG(2, _T("Filter order:"));

  000d2	68 00 00 00 00	 push	 OFFSET ??_C@_1BM@GOLPGNBA@?$AAF?$AAi?$AAl?$AAt?$AAe?$AAr?$AA?5?$AAo?$AAr?$AAd?$AAe?$AAr?$AA?3?$AA?$AA@
  000d7	6a 02		 push	 2
  000d9	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  000de	83 c4 08	 add	 esp, 8

; 228  :     for(int i = 0; i < NumFilters; i++)

  000e1	c7 45 f4 00 00
	00 00		 mov	 DWORD PTR _i$142309[ebp], 0
  000e8	eb 09		 jmp	 SHORT $LN3@SortFilter
$LN2@SortFilter:
  000ea	8b 55 f4	 mov	 edx, DWORD PTR _i$142309[ebp]
  000ed	83 c2 01	 add	 edx, 1
  000f0	89 55 f4	 mov	 DWORD PTR _i$142309[ebp], edx
$LN3@SortFilter:
  000f3	8b 45 f4	 mov	 eax, DWORD PTR _i$142309[ebp]
  000f6	3b 05 00 00 00
	00		 cmp	 eax, DWORD PTR ?NumFilters@@3JA ; NumFilters
  000fc	7d 1f		 jge	 SHORT $LN12@SortFilter

; 229  :     {
; 230  :         LOG(2, "  - %s", Filters[i]->szName);

  000fe	8b 4d f4	 mov	 ecx, DWORD PTR _i$142309[ebp]
  00101	8b 14 8d 00 00
	00 00		 mov	 edx, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[ecx*4]
  00108	8b 42 0c	 mov	 eax, DWORD PTR [edx+12]
  0010b	50		 push	 eax
  0010c	68 00 00 00 00	 push	 OFFSET ??_C@_06JHFPGJO@?5?5?9?5?$CFs?$AA@
  00111	6a 02		 push	 2
  00113	e8 00 00 00 00	 call	 ?LOG@@YAXHPBDZZ		; LOG
  00118	83 c4 0c	 add	 esp, 12			; 0000000cH
  0011b	eb cd		 jmp	 SHORT $LN2@SortFilter
$LN12@SortFilter:

; 231  :     }
; 232  : }

  0011d	5e		 pop	 esi
  0011e	8b e5		 mov	 esp, ebp
  00120	5d		 pop	 ebp
  00121	c3		 ret	 0
?SortFilterPlugins@@YAXXZ ENDP				; SortFilterPlugins
PUBLIC	__$ArrayPad$
PUBLIC	?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z ; RegisterSettings
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z$1
	DD	01H
	DD	FLAT:__unwindfunclet$?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z$2
	DD	02H
	DD	FLAT:__unwindfunclet$?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z$3
	DD	01H
	DD	FLAT:__unwindfunclet$?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z$3
	DD	00H
	DD	FLAT:__unwindfunclet$?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z$3
	DD	05H
	DD	FLAT:__unwindfunclet$?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z$4
	DD	06H
	DD	FLAT:__unwindfunclet$?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z$5
	DD	07H
	DD	FLAT:__unwindfunclet$?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z$6
__ehfuncinfo$?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z DD 019930522H
	DD	09H
	DD	FLAT:__unwindtable$?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z
_TEXT	SEGMENT
tv186 = -224						; size = 4
tv65 = -220						; size = 4
tv184 = -216						; size = 4
tv94 = -212						; size = 4
tv180 = -208						; size = 4
tv68 = -204						; size = 4
$T355287 = -200						; size = 28
$T355286 = -172						; size = 28
$T355285 = -144						; size = 28
$T355284 = -116						; size = 28
$T355283 = -88						; size = 28
_szDescription$ = -60					; size = 28
__$ArrayPad$ = -32					; size = 4
_iOnOffSetting$ = -28					; size = 4
_pSettingsGroup$ = -24					; size = 4
_i$ = -20						; size = 4
_pOnOffGroup$ = -16					; size = 4
__$EHRec$ = -12						; size = 12
_Holder$ = 8						; size = 8
_Filter$ = 16						; size = 4
?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z PROC ; RegisterSettings, COMDAT

; 353  : {

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

; 354  :     tstring szDescription(_T("Flt On Off - ") + MBCSToTString(Filter->szName));

  00032	8b 45 10	 mov	 eax, DWORD PTR _Filter$[ebp]
  00035	8b 48 0c	 mov	 ecx, DWORD PTR [eax+12]
  00038	51		 push	 ecx
  00039	8d 4d a8	 lea	 ecx, DWORD PTR $T355283[ebp]
  0003c	e8 00 00 00 00	 call	 ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
  00041	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00045	8d 55 a8	 lea	 edx, DWORD PTR $T355283[ebp]
  00048	52		 push	 edx
  00049	8d 45 8c	 lea	 eax, DWORD PTR $T355284[ebp]
  0004c	50		 push	 eax
  0004d	e8 00 00 00 00	 call	 ?MBCSToUnicode@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ; MBCSToUnicode
  00052	83 c4 08	 add	 esp, 8
  00055	89 85 34 ff ff
	ff		 mov	 DWORD PTR tv68[ebp], eax
  0005b	8b 8d 34 ff ff
	ff		 mov	 ecx, DWORD PTR tv68[ebp]
  00061	89 8d 30 ff ff
	ff		 mov	 DWORD PTR tv180[ebp], ecx
  00067	c6 45 fc 02	 mov	 BYTE PTR __$EHRec$[ebp+8], 2
  0006b	8b 95 30 ff ff
	ff		 mov	 edx, DWORD PTR tv180[ebp]
  00071	52		 push	 edx
  00072	68 00 00 00 00	 push	 OFFSET ??_C@_1BM@CLHFIOEN@?$AAF?$AAl?$AAt?$AA?5?$AAO?$AAn?$AA?5?$AAO?$AAf?$AAf?$AA?5?$AA?9?$AA?5?$AA?$AA@
  00077	8d 45 c4	 lea	 eax, DWORD PTR _szDescription$[ebp]
  0007a	50		 push	 eax
  0007b	e8 00 00 00 00	 call	 ??$?H_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_WABV10@@Z ; std::operator+<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00080	83 c4 0c	 add	 esp, 12			; 0000000cH
  00083	c6 45 fc 04	 mov	 BYTE PTR __$EHRec$[ebp+8], 4
  00087	8d 4d 8c	 lea	 ecx, DWORD PTR $T355284[ebp]
  0008a	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> >
  0008f	c6 45 fc 05	 mov	 BYTE PTR __$EHRec$[ebp+8], 5
  00093	8d 4d a8	 lea	 ecx, DWORD PTR $T355283[ebp]
  00096	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> >

; 355  : 
; 356  :     int iOnOffSetting = -1;

  0009b	c7 45 e4 ff ff
	ff ff		 mov	 DWORD PTR _iOnOffSetting$[ebp], -1

; 357  : 
; 358  :     CSettingGroup* pOnOffGroup = SettingsMaster->GetGroup(szDescription.c_str(), SETTING_BY_CHANNEL | SETTING_BY_FORMAT | SETTING_BY_INPUT, FALSE);

  000a2	6a 00		 push	 0
  000a4	6a 07		 push	 7
  000a6	8d 4d c4	 lea	 ecx, DWORD PTR _szDescription$[ebp]
  000a9	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
  000ae	50		 push	 eax
  000af	b9 00 00 00 00	 mov	 ecx, OFFSET ?SettingsMaster@@3V?$SmartPtr@VCSettingsMaster@@@@A ; SettingsMaster
  000b4	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSettingsMaster@@@@QBEPAVCSettingsMaster@@XZ ; SmartPtr<CSettingsMaster>::operator->
  000b9	8b c8		 mov	 ecx, eax
  000bb	e8 00 00 00 00	 call	 ?GetGroup@CSettingsMaster@@QAEPAVCSettingGroup@@PB_WKH@Z ; CSettingsMaster::GetGroup
  000c0	89 45 f0	 mov	 DWORD PTR _pOnOffGroup$[ebp], eax

; 359  : 
; 360  :     szDescription = _T("Flt Settings - ") + MBCSToTString(Filter->szName);

  000c3	8b 4d 10	 mov	 ecx, DWORD PTR _Filter$[ebp]
  000c6	8b 51 0c	 mov	 edx, DWORD PTR [ecx+12]
  000c9	52		 push	 edx
  000ca	8d 8d 70 ff ff
	ff		 lea	 ecx, DWORD PTR $T355285[ebp]
  000d0	e8 00 00 00 00	 call	 ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >
  000d5	c6 45 fc 06	 mov	 BYTE PTR __$EHRec$[ebp+8], 6
  000d9	8d 85 70 ff ff
	ff		 lea	 eax, DWORD PTR $T355285[ebp]
  000df	50		 push	 eax
  000e0	8d 8d 54 ff ff
	ff		 lea	 ecx, DWORD PTR $T355286[ebp]
  000e6	51		 push	 ecx
  000e7	e8 00 00 00 00	 call	 ?MBCSToUnicode@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z ; MBCSToUnicode
  000ec	83 c4 08	 add	 esp, 8
  000ef	89 85 2c ff ff
	ff		 mov	 DWORD PTR tv94[ebp], eax
  000f5	8b 95 2c ff ff
	ff		 mov	 edx, DWORD PTR tv94[ebp]
  000fb	89 95 28 ff ff
	ff		 mov	 DWORD PTR tv184[ebp], edx
  00101	c6 45 fc 07	 mov	 BYTE PTR __$EHRec$[ebp+8], 7
  00105	8b 85 28 ff ff
	ff		 mov	 eax, DWORD PTR tv184[ebp]
  0010b	50		 push	 eax
  0010c	68 00 00 00 00	 push	 OFFSET ??_C@_1CA@GIAOMLHH@?$AAF?$AAl?$AAt?$AA?5?$AAS?$AAe?$AAt?$AAt?$AAi?$AAn?$AAg?$AAs?$AA?5?$AA?9?$AA?5?$AA?$AA@
  00111	8d 8d 38 ff ff
	ff		 lea	 ecx, DWORD PTR $T355287[ebp]
  00117	51		 push	 ecx
  00118	e8 00 00 00 00	 call	 ??$?H_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@PB_WABV10@@Z ; std::operator+<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  0011d	83 c4 0c	 add	 esp, 12			; 0000000cH
  00120	89 85 24 ff ff
	ff		 mov	 DWORD PTR tv65[ebp], eax
  00126	8b 95 24 ff ff
	ff		 mov	 edx, DWORD PTR tv65[ebp]
  0012c	89 95 20 ff ff
	ff		 mov	 DWORD PTR tv186[ebp], edx
  00132	c6 45 fc 08	 mov	 BYTE PTR __$EHRec$[ebp+8], 8
  00136	8b 85 20 ff ff
	ff		 mov	 eax, DWORD PTR tv186[ebp]
  0013c	50		 push	 eax
  0013d	8d 4d c4	 lea	 ecx, DWORD PTR _szDescription$[ebp]
  00140	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=
  00145	c6 45 fc 07	 mov	 BYTE PTR __$EHRec$[ebp+8], 7
  00149	8d 8d 38 ff ff
	ff		 lea	 ecx, DWORD PTR $T355287[ebp]
  0014f	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> >
  00154	c6 45 fc 06	 mov	 BYTE PTR __$EHRec$[ebp+8], 6
  00158	8d 8d 54 ff ff
	ff		 lea	 ecx, DWORD PTR $T355286[ebp]
  0015e	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> >
  00163	c6 45 fc 05	 mov	 BYTE PTR __$EHRec$[ebp+8], 5
  00167	8d 8d 70 ff ff
	ff		 lea	 ecx, DWORD PTR $T355285[ebp]
  0016d	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> >

; 361  : 
; 362  :     CSettingGroup* pSettingsGroup = SettingsMaster->GetGroup(szDescription.c_str(), SETTING_BY_CHANNEL | SETTING_BY_FORMAT | SETTING_BY_INPUT, FALSE);

  00172	6a 00		 push	 0
  00174	6a 07		 push	 7
  00176	8d 4d c4	 lea	 ecx, DWORD PTR _szDescription$[ebp]
  00179	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
  0017e	50		 push	 eax
  0017f	b9 00 00 00 00	 mov	 ecx, OFFSET ?SettingsMaster@@3V?$SmartPtr@VCSettingsMaster@@@@A ; SettingsMaster
  00184	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSettingsMaster@@@@QBEPAVCSettingsMaster@@XZ ; SmartPtr<CSettingsMaster>::operator->
  00189	8b c8		 mov	 ecx, eax
  0018b	e8 00 00 00 00	 call	 ?GetGroup@CSettingsMaster@@QAEPAVCSettingGroup@@PB_WKH@Z ; CSettingsMaster::GetGroup
  00190	89 45 e8	 mov	 DWORD PTR _pSettingsGroup$[ebp], eax

; 363  : 
; 364  :     int i;
; 365  : 
; 366  :     for (i = 0; i < Filter->nSettings; i++ )

  00193	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  0019a	eb 09		 jmp	 SHORT $LN8@RegisterSe
$LN7@RegisterSe:
  0019c	8b 4d ec	 mov	 ecx, DWORD PTR _i$[ebp]
  0019f	83 c1 01	 add	 ecx, 1
  001a2	89 4d ec	 mov	 DWORD PTR _i$[ebp], ecx
$LN8@RegisterSe:
  001a5	8b 55 10	 mov	 edx, DWORD PTR _Filter$[ebp]
  001a8	8b 45 ec	 mov	 eax, DWORD PTR _i$[ebp]
  001ab	3b 42 34	 cmp	 eax, DWORD PTR [edx+52]
  001ae	7d 42		 jge	 SHORT $LN6@RegisterSe

; 367  :     {
; 368  :         if (Filter->pSettings[i].pValue == (LONG_PTR*)&Filter->bActive)

  001b0	8b 4d ec	 mov	 ecx, DWORD PTR _i$[ebp]
  001b3	6b c9 34	 imul	 ecx, 52			; 00000034H
  001b6	8b 55 10	 mov	 edx, DWORD PTR _Filter$[ebp]
  001b9	8b 42 38	 mov	 eax, DWORD PTR [edx+56]
  001bc	8b 55 10	 mov	 edx, DWORD PTR _Filter$[ebp]
  001bf	83 c2 14	 add	 edx, 20			; 00000014H
  001c2	39 54 08 0c	 cmp	 DWORD PTR [eax+ecx+12], edx
  001c6	75 28		 jne	 SHORT $LN5@RegisterSe

; 369  :         {
; 370  :             Holder->AddSetting(Filter->pSettings + i, pOnOffGroup);

  001c8	8b 45 f0	 mov	 eax, DWORD PTR _pOnOffGroup$[ebp]
  001cb	50		 push	 eax
  001cc	8b 4d ec	 mov	 ecx, DWORD PTR _i$[ebp]
  001cf	6b c9 34	 imul	 ecx, 52			; 00000034H
  001d2	8b 55 10	 mov	 edx, DWORD PTR _Filter$[ebp]
  001d5	03 4a 38	 add	 ecx, DWORD PTR [edx+56]
  001d8	51		 push	 ecx
  001d9	8d 4d 08	 lea	 ecx, DWORD PTR _Holder$[ebp]
  001dc	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSettingsHolder@@@@QBEPAVCSettingsHolder@@XZ ; SmartPtr<CSettingsHolder>::operator->
  001e1	8b c8		 mov	 ecx, eax
  001e3	e8 00 00 00 00	 call	 ?AddSetting@CSettingsHolder@@QAEXPAUSETTING@@PAVCSettingGroup@@@Z ; CSettingsHolder::AddSetting

; 371  :             iOnOffSetting = i;

  001e8	8b 45 ec	 mov	 eax, DWORD PTR _i$[ebp]
  001eb	89 45 e4	 mov	 DWORD PTR _iOnOffSetting$[ebp], eax

; 372  :             break;

  001ee	eb 02		 jmp	 SHORT $LN6@RegisterSe
$LN5@RegisterSe:

; 373  :         }
; 374  :     }

  001f0	eb aa		 jmp	 SHORT $LN7@RegisterSe
$LN6@RegisterSe:

; 375  : 
; 376  :     for (i = 0; i < Filter->nSettings; i++ )

  001f2	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  001f9	eb 09		 jmp	 SHORT $LN4@RegisterSe
$LN3@RegisterSe:
  001fb	8b 4d ec	 mov	 ecx, DWORD PTR _i$[ebp]
  001fe	83 c1 01	 add	 ecx, 1
  00201	89 4d ec	 mov	 DWORD PTR _i$[ebp], ecx
$LN4@RegisterSe:
  00204	8b 55 10	 mov	 edx, DWORD PTR _Filter$[ebp]
  00207	8b 45 ec	 mov	 eax, DWORD PTR _i$[ebp]
  0020a	3b 42 34	 cmp	 eax, DWORD PTR [edx+52]
  0020d	7d 28		 jge	 SHORT $LN2@RegisterSe

; 377  :     {
; 378  :         if (i != iOnOffSetting)

  0020f	8b 4d ec	 mov	 ecx, DWORD PTR _i$[ebp]
  00212	3b 4d e4	 cmp	 ecx, DWORD PTR _iOnOffSetting$[ebp]
  00215	74 1e		 je	 SHORT $LN1@RegisterSe

; 379  :         {
; 380  :             Holder->AddSetting(Filter->pSettings + i);

  00217	6a 00		 push	 0
  00219	8b 55 ec	 mov	 edx, DWORD PTR _i$[ebp]
  0021c	6b d2 34	 imul	 edx, 52			; 00000034H
  0021f	8b 45 10	 mov	 eax, DWORD PTR _Filter$[ebp]
  00222	03 50 38	 add	 edx, DWORD PTR [eax+56]
  00225	52		 push	 edx
  00226	8d 4d 08	 lea	 ecx, DWORD PTR _Holder$[ebp]
  00229	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSettingsHolder@@@@QBEPAVCSettingsHolder@@XZ ; SmartPtr<CSettingsHolder>::operator->
  0022e	8b c8		 mov	 ecx, eax
  00230	e8 00 00 00 00	 call	 ?AddSetting@CSettingsHolder@@QAEXPAUSETTING@@PAVCSettingGroup@@@Z ; CSettingsHolder::AddSetting
$LN1@RegisterSe:

; 381  :         }
; 382  :     }

  00235	eb c4		 jmp	 SHORT $LN3@RegisterSe
$LN2@RegisterSe:

; 383  : }

  00237	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  0023b	8d 4d c4	 lea	 ecx, DWORD PTR _szDescription$[ebp]
  0023e	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> >
  00243	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0024a	8d 4d 08	 lea	 ecx, DWORD PTR _Holder$[ebp]
  0024d	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSettingsHolder@@@@QAE@XZ ; SmartPtr<CSettingsHolder>::~SmartPtr<CSettingsHolder>
  00252	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00255	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0025c	59		 pop	 ecx
  0025d	8b 4d e0	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  00260	33 cd		 xor	 ecx, ebp
  00262	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00267	8b e5		 mov	 esp, ebp
  00269	5d		 pop	 ebp
  0026a	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z$0:
  00000	8d 4d 08	 lea	 ecx, DWORD PTR _Holder$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSettingsHolder@@@@QAE@XZ ; SmartPtr<CSettingsHolder>::~SmartPtr<CSettingsHolder>
__unwindfunclet$?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z$1:
  00008	8d 4d a8	 lea	 ecx, DWORD PTR $T355283[ebp]
  0000b	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$?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z$2:
  00010	8d 4d 8c	 lea	 ecx, DWORD PTR $T355284[ebp]
  00013	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$?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z$3:
  00018	8d 4d c4	 lea	 ecx, DWORD PTR _szDescription$[ebp]
  0001b	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$?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z$4:
  00020	8d 8d 70 ff ff
	ff		 lea	 ecx, DWORD PTR $T355285[ebp]
  00026	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$?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z$5:
  0002b	8d 8d 54 ff ff
	ff		 lea	 ecx, DWORD PTR $T355286[ebp]
  00031	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$?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z$6:
  00036	8d 8d 38 ff ff
	ff		 lea	 ecx, DWORD PTR $T355287[ebp]
  0003c	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$?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z:
  00041	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00045	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00048	8b 8a 28 ff ff
	ff		 mov	 ecx, DWORD PTR [edx-216]
  0004e	33 c8		 xor	 ecx, eax
  00050	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00055	8b 4a ec	 mov	 ecx, DWORD PTR [edx-20]
  00058	33 c8		 xor	 ecx, eax
  0005a	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0005f	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z
  00064	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z ENDP ; RegisterSettings
PUBLIC	?LoadFilterPlugin@@YAXPB_W@Z			; LoadFilterPlugin
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?LoadFilterPlugin@@YAXPB_W@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?LoadFilterPlugin@@YAXPB_W@Z$0
	DD	0ffffffffH
	DD	FLAT:__unwindfunclet$?LoadFilterPlugin@@YAXPB_W@Z$1
	DD	01H
	DD	FLAT:__unwindfunclet$?LoadFilterPlugin@@YAXPB_W@Z$2
	DD	01H
	DD	FLAT:__unwindfunclet$?LoadFilterPlugin@@YAXPB_W@Z$3
__ehfuncinfo$?LoadFilterPlugin@@YAXPB_W@Z DD 019930522H
	DD	04H
	DD	FLAT:__unwindtable$?LoadFilterPlugin@@YAXPB_W@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?LoadFilterPlugin@@YAXPB_W@Z
_TEXT	SEGMENT
tv187 = -64						; size = 4
tv190 = -60						; size = 4
tv185 = -56						; size = 4
tv86 = -52						; size = 4
tv132 = -48						; size = 4
$T355308 = -44						; size = 4
$T355307 = -40						; size = 4
$T355304 = -36						; size = 4
$T355303 = -32						; size = 4
_Holder$142247 = -28					; size = 8
_GetFilterPluginInfo$ = -20				; size = 4
_pMethod$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_szFileName$ = 8					; size = 4
?LoadFilterPlugin@@YAXPB_W@Z PROC			; LoadFilterPlugin, COMDAT

; 109  : {

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

; 110  :     DynamicFunctionC1<FILTER_METHOD*, long> GetFilterPluginInfo(szFileName, "GetFilterPluginInfo");

  00025	68 00 00 00 00	 push	 OFFSET ??_C@_0BE@FNDHMKOJ@GetFilterPluginInfo?$AA@
  0002a	8b 45 08	 mov	 eax, DWORD PTR _szFileName$[ebp]
  0002d	50		 push	 eax
  0002e	8d 4d ec	 lea	 ecx, DWORD PTR _GetFilterPluginInfo$[ebp]
  00031	e8 00 00 00 00	 call	 ??0?$DynamicFunctionC1@PAUFILTER_METHOD@@J@@QAE@PB_WPBD@Z ; DynamicFunctionC1<FILTER_METHOD *,long>::DynamicFunctionC1<FILTER_METHOD *,long>

; 111  :     FILTER_METHOD* pMethod;
; 112  : 
; 113  :     if(!GetFilterPluginInfo)

  00036	8d 4d ec	 lea	 ecx, DWORD PTR _GetFilterPluginInfo$[ebp]
  00039	e8 00 00 00 00	 call	 ??B?$DynamicFunctionParent@P6APAUFILTER_METHOD@@J@Z@@QBEHXZ ; DynamicFunctionParent<FILTER_METHOD * (__cdecl*)(long)>::operator int
  0003e	85 c0		 test	 eax, eax
  00040	75 05		 jne	 SHORT $LN6@LoadFilter

; 114  :     {
; 115  :         return;

  00042	e9 90 01 00 00	 jmp	 $LN7@LoadFilter
$LN6@LoadFilter:

; 116  :     }
; 117  : 
; 118  :     pMethod = GetFilterPluginInfo(CpuFeatureFlags);

  00047	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?CpuFeatureFlags@@3IA ; CpuFeatureFlags
  0004d	51		 push	 ecx
  0004e	8d 4d ec	 lea	 ecx, DWORD PTR _GetFilterPluginInfo$[ebp]
  00051	e8 00 00 00 00	 call	 ??R?$DynamicFunctionC1@PAUFILTER_METHOD@@J@@QBEPAUFILTER_METHOD@@J@Z ; DynamicFunctionC1<FILTER_METHOD *,long>::operator()
  00056	89 45 f0	 mov	 DWORD PTR _pMethod$[ebp], eax

; 119  :     if(pMethod != NULL)

  00059	83 7d f0 00	 cmp	 DWORD PTR _pMethod$[ebp], 0
  0005d	0f 84 61 01 00
	00		 je	 $LN5@LoadFilter

; 120  :     {
; 121  :         if(pMethod->SizeOfStructure == sizeof(FILTER_METHOD) &&
; 122  :             pMethod->FilterStructureVersion >= FILTER_VERSION_3 &&
; 123  :             pMethod->InfoStructureVersion == DEINTERLACE_INFO_CURRENT_VERSION)

  00063	8b 55 f0	 mov	 edx, DWORD PTR _pMethod$[ebp]
  00066	83 3a 4c	 cmp	 DWORD PTR [edx], 76	; 0000004cH
  00069	0f 85 40 01 00
	00		 jne	 $LN4@LoadFilter
  0006f	8b 45 f0	 mov	 eax, DWORD PTR _pMethod$[ebp]
  00072	83 78 04 03	 cmp	 DWORD PTR [eax+4], 3
  00076	0f 8c 33 01 00
	00		 jl	 $LN4@LoadFilter
  0007c	8b 4d f0	 mov	 ecx, DWORD PTR _pMethod$[ebp]
  0007f	81 79 08 90 01
	00 00		 cmp	 DWORD PTR [ecx+8], 400	; 00000190H
  00086	0f 85 23 01 00
	00		 jne	 $LN4@LoadFilter

; 124  :         {
; 125  :             Filters[NumFilters] = pMethod;

  0008c	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?NumFilters@@3JA ; NumFilters
  00092	8b 45 f0	 mov	 eax, DWORD PTR _pMethod$[ebp]
  00095	89 04 95 00 00
	00 00		 mov	 DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[edx*4], eax

; 126  :             SmartPtr<CSettingsHolder> Holder(new CSettingsHolder(WM_APP + pMethod->nSettingsOffset, pMethod->HelpID));

  0009c	6a 40		 push	 64			; 00000040H
  0009e	e8 00 00 00 00	 call	 ??2@YAPAXI@Z		; operator new
  000a3	83 c4 04	 add	 esp, 4
  000a6	89 45 dc	 mov	 DWORD PTR $T355304[ebp], eax
  000a9	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  000b0	83 7d dc 00	 cmp	 DWORD PTR $T355304[ebp], 0
  000b4	74 21		 je	 SHORT $LN9@LoadFilter
  000b6	8b 4d f0	 mov	 ecx, DWORD PTR _pMethod$[ebp]
  000b9	8b 51 48	 mov	 edx, DWORD PTR [ecx+72]
  000bc	52		 push	 edx
  000bd	8b 45 f0	 mov	 eax, DWORD PTR _pMethod$[ebp]
  000c0	8b 48 3c	 mov	 ecx, DWORD PTR [eax+60]
  000c3	81 c1 00 80 00
	00		 add	 ecx, 32768		; 00008000H
  000c9	51		 push	 ecx
  000ca	8b 4d dc	 mov	 ecx, DWORD PTR $T355304[ebp]
  000cd	e8 00 00 00 00	 call	 ??0CSettingsHolder@@QAE@JI@Z ; CSettingsHolder::CSettingsHolder
  000d2	89 45 d0	 mov	 DWORD PTR tv132[ebp], eax
  000d5	eb 07		 jmp	 SHORT $LN10@LoadFilter
$LN9@LoadFilter:
  000d7	c7 45 d0 00 00
	00 00		 mov	 DWORD PTR tv132[ebp], 0
$LN10@LoadFilter:
  000de	8b 55 d0	 mov	 edx, DWORD PTR tv132[ebp]
  000e1	89 55 e0	 mov	 DWORD PTR $T355303[ebp], edx
  000e4	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  000eb	6a 00		 push	 0
  000ed	8b 45 e0	 mov	 eax, DWORD PTR $T355303[ebp]
  000f0	50		 push	 eax
  000f1	8d 4d e4	 lea	 ecx, DWORD PTR _Holder$142247[ebp]
  000f4	e8 00 00 00 00	 call	 ??0?$SmartPtr@VCSettingsHolder@@@@QAE@PAVCSettingsHolder@@PAUCounter@@@Z ; SmartPtr<CSettingsHolder>::SmartPtr<CSettingsHolder>
  000f9	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1

; 127  : 
; 128  :             RegisterSettings(Holder, pMethod);

  00100	8b 4d f0	 mov	 ecx, DWORD PTR _pMethod$[ebp]
  00103	51		 push	 ecx
  00104	83 ec 08	 sub	 esp, 8
  00107	8b cc		 mov	 ecx, esp
  00109	89 65 d8	 mov	 DWORD PTR $T355307[ebp], esp
  0010c	8d 55 e4	 lea	 edx, DWORD PTR _Holder$142247[ebp]
  0010f	52		 push	 edx
  00110	e8 00 00 00 00	 call	 ??0?$SmartPtr@VCSettingsHolder@@@@QAE@ABV0@@Z ; SmartPtr<CSettingsHolder>::SmartPtr<CSettingsHolder>
  00115	89 45 cc	 mov	 DWORD PTR tv86[ebp], eax
  00118	8b 45 cc	 mov	 eax, DWORD PTR tv86[ebp]
  0011b	89 45 c8	 mov	 DWORD PTR tv185[ebp], eax
  0011e	c6 45 fc 02	 mov	 BYTE PTR __$EHRec$[ebp+8], 2
  00122	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00126	e8 00 00 00 00	 call	 ?RegisterSettings@@YAXV?$SmartPtr@VCSettingsHolder@@@@PAUFILTER_METHOD@@@Z ; RegisterSettings
  0012b	83 c4 0c	 add	 esp, 12			; 0000000cH

; 129  :             Holder->ReadFromIni();

  0012e	8d 4d e4	 lea	 ecx, DWORD PTR _Holder$142247[ebp]
  00131	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSettingsHolder@@@@QBEPAVCSettingsHolder@@XZ ; SmartPtr<CSettingsHolder>::operator->
  00136	8b c8		 mov	 ecx, eax
  00138	e8 00 00 00 00	 call	 ?ReadFromIni@CSettingsHolder@@QAEXXZ ; CSettingsHolder::ReadFromIni

; 130  :             SettingsMaster->Register(Holder);

  0013d	83 ec 08	 sub	 esp, 8
  00140	8b cc		 mov	 ecx, esp
  00142	89 65 d4	 mov	 DWORD PTR $T355308[ebp], esp
  00145	8d 55 e4	 lea	 edx, DWORD PTR _Holder$142247[ebp]
  00148	52		 push	 edx
  00149	e8 00 00 00 00	 call	 ??0?$SmartPtr@VCSettingsHolder@@@@QAE@ABV0@@Z ; SmartPtr<CSettingsHolder>::SmartPtr<CSettingsHolder>
  0014e	89 45 c4	 mov	 DWORD PTR tv190[ebp], eax
  00151	8b 45 c4	 mov	 eax, DWORD PTR tv190[ebp]
  00154	89 45 c0	 mov	 DWORD PTR tv187[ebp], eax
  00157	c6 45 fc 03	 mov	 BYTE PTR __$EHRec$[ebp+8], 3
  0015b	b9 00 00 00 00	 mov	 ecx, OFFSET ?SettingsMaster@@3V?$SmartPtr@VCSettingsMaster@@@@A ; SettingsMaster
  00160	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCSettingsMaster@@@@QBEPAVCSettingsMaster@@XZ ; SmartPtr<CSettingsMaster>::operator->
  00165	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00169	8b c8		 mov	 ecx, eax
  0016b	e8 00 00 00 00	 call	 ?Register@CSettingsMaster@@QAEXV?$SmartPtr@VCSettingsHolder@@@@@Z ; CSettingsMaster::Register

; 131  : 
; 132  :             if(pMethod->pfnPluginStart != NULL)

  00170	8b 4d f0	 mov	 ecx, DWORD PTR _pMethod$[ebp]
  00173	83 79 28 00	 cmp	 DWORD PTR [ecx+40], 0
  00177	74 08		 je	 SHORT $LN3@LoadFilter

; 133  :             {
; 134  :                 pMethod->pfnPluginStart();

  00179	8b 55 f0	 mov	 edx, DWORD PTR _pMethod$[ebp]
  0017c	8b 42 28	 mov	 eax, DWORD PTR [edx+40]
  0017f	ff d0		 call	 eax
$LN3@LoadFilter:

; 135  :             }
; 136  :             NumFilters++;

  00181	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?NumFilters@@3JA ; NumFilters
  00187	83 c1 01	 add	 ecx, 1
  0018a	89 0d 00 00 00
	00		 mov	 DWORD PTR ?NumFilters@@3JA, ecx ; NumFilters

; 137  :             FilterHolders.push_back(Holder);

  00190	8d 55 e4	 lea	 edx, DWORD PTR _Holder$142247[ebp]
  00193	52		 push	 edx
  00194	b9 00 00 00 00	 mov	 ecx, OFFSET ?FilterHolders@@3V?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@A ; FilterHolders
  00199	e8 00 00 00 00	 call	 ?push_back@?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@QAEXABV?$SmartPtr@VCSettingsHolder@@@@@Z ; std::vector<SmartPtr<CSettingsHolder>,std::allocator<SmartPtr<CSettingsHolder> > >::push_back

; 138  :         }

  0019e	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  001a5	8d 4d e4	 lea	 ecx, DWORD PTR _Holder$142247[ebp]
  001a8	e8 00 00 00 00	 call	 ??1?$SmartPtr@VCSettingsHolder@@@@QAE@XZ ; SmartPtr<CSettingsHolder>::~SmartPtr<CSettingsHolder>

; 139  :         else

  001ad	eb 13		 jmp	 SHORT $LN2@LoadFilter
$LN4@LoadFilter:

; 140  :         {
; 141  :             LOG(1, _T("Plugin %s obsolete"), szFileName);

  001af	8b 45 08	 mov	 eax, DWORD PTR _szFileName$[ebp]
  001b2	50		 push	 eax
  001b3	68 00 00 00 00	 push	 OFFSET ??_C@_1CG@OBJLLCMD@?$AAP?$AAl?$AAu?$AAg?$AAi?$AAn?$AA?5?$AA?$CF?$AAs?$AA?5?$AAo?$AAb?$AAs?$AAo?$AAl?$AAe?$AAt?$AAe?$AA?$AA@
  001b8	6a 01		 push	 1
  001ba	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  001bf	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN2@LoadFilter:

; 142  :         }
; 143  :     }
; 144  :     else

  001c2	eb 13		 jmp	 SHORT $LN7@LoadFilter
$LN5@LoadFilter:

; 145  :     {
; 146  :         LOG(1, _T("Plugin %s not compatible with your CPU"), szFileName);

  001c4	8b 4d 08	 mov	 ecx, DWORD PTR _szFileName$[ebp]
  001c7	51		 push	 ecx
  001c8	68 00 00 00 00	 push	 OFFSET ??_C@_1EO@BGMLDJIB@?$AAP?$AAl?$AAu?$AAg?$AAi?$AAn?$AA?5?$AA?$CF?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAc?$AAo?$AAm?$AAp?$AAa?$AAt?$AAi?$AAb?$AAl?$AAe?$AA?5?$AAw?$AAi?$AAt?$AAh?$AA?5?$AAy?$AAo@
  001cd	6a 01		 push	 1
  001cf	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  001d4	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN7@LoadFilter:

; 147  :     }
; 148  : }

  001d7	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  001da	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  001e1	59		 pop	 ecx
  001e2	8b e5		 mov	 esp, ebp
  001e4	5d		 pop	 ebp
  001e5	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?LoadFilterPlugin@@YAXPB_W@Z$0:
  00000	8b 45 dc	 mov	 eax, DWORD PTR $T355304[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$?LoadFilterPlugin@@YAXPB_W@Z$1:
  0000b	8d 4d e4	 lea	 ecx, DWORD PTR _Holder$142247[ebp]
  0000e	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSettingsHolder@@@@QAE@XZ ; SmartPtr<CSettingsHolder>::~SmartPtr<CSettingsHolder>
__unwindfunclet$?LoadFilterPlugin@@YAXPB_W@Z$2:
  00013	8b 4d d8	 mov	 ecx, DWORD PTR $T355307[ebp]
  00016	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSettingsHolder@@@@QAE@XZ ; SmartPtr<CSettingsHolder>::~SmartPtr<CSettingsHolder>
__unwindfunclet$?LoadFilterPlugin@@YAXPB_W@Z$3:
  0001b	8b 4d d4	 mov	 ecx, DWORD PTR $T355308[ebp]
  0001e	e9 00 00 00 00	 jmp	 ??1?$SmartPtr@VCSettingsHolder@@@@QAE@XZ ; SmartPtr<CSettingsHolder>::~SmartPtr<CSettingsHolder>
__ehhandler$?LoadFilterPlugin@@YAXPB_W@Z:
  00023	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00027	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0002a	8b 4a c8	 mov	 ecx, DWORD PTR [edx-56]
  0002d	33 c8		 xor	 ecx, eax
  0002f	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00034	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?LoadFilterPlugin@@YAXPB_W@Z
  00039	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?LoadFilterPlugin@@YAXPB_W@Z ENDP			; LoadFilterPlugin
PUBLIC	__$ArrayPad$
PUBLIC	?LoadFilterPlugins@@YAHXZ			; LoadFilterPlugins
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?LoadFilterPlugins@@YAHXZ DD 0ffffffffH
	DD	00H
	DD	0ffffffffH
	DD	00H
__catchsym$?LoadFilterPlugins@@YAHXZ$2 DD 00H
	DD	00H
	DD	00H
	DD	FLAT:__catch$?LoadFilterPlugins@@YAHXZ$0
__tryblocktable$?LoadFilterPlugins@@YAHXZ DD 00H
	DD	00H
	DD	01H
	DD	01H
	DD	FLAT:__catchsym$?LoadFilterPlugins@@YAHXZ$2
__ehfuncinfo$?LoadFilterPlugins@@YAHXZ DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$?LoadFilterPlugins@@YAHXZ
	DD	01H
	DD	FLAT:__tryblocktable$?LoadFilterPlugins@@YAHXZ
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?LoadFilterPlugins@@YAHXZ
_TEXT	SEGMENT
_hFilterMenu$142333 = -632				; size = 4
_RetVal$142323 = -628					; size = 4
_hFindFile$ = -624					; size = 4
_i$ = -620						; size = 4
_FindFileData$ = -616					; size = 592
__$ArrayPad$ = -20					; size = 4
__$EHRec$ = -16						; size = 16
?LoadFilterPlugins@@YAHXZ PROC				; LoadFilterPlugins, COMDAT

; 235  : {

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

; 236  :     WIN32_FIND_DATA FindFileData;
; 237  :     HANDLE hFindFile;
; 238  :     int i;
; 239  : 
; 240  :     hFindFile = FindFirstFile(_T("FLT_*.dll"), &FindFileData);

  00032	8d 85 98 fd ff
	ff		 lea	 eax, DWORD PTR _FindFileData$[ebp]
  00038	50		 push	 eax
  00039	68 00 00 00 00	 push	 OFFSET ??_C@_1BE@HDIHICHC@?$AAF?$AAL?$AAT?$AA_?$AA?$CK?$AA?4?$AAd?$AAl?$AAl?$AA?$AA@
  0003e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__FindFirstFileW@8
  00044	89 85 90 fd ff
	ff		 mov	 DWORD PTR _hFindFile$[ebp], eax

; 241  : 
; 242  :     if (hFindFile != INVALID_HANDLE_VALUE)

  0004a	83 bd 90 fd ff
	ff ff		 cmp	 DWORD PTR _hFindFile$[ebp], -1
  00051	0f 84 c8 00 00
	00		 je	 $LN16@LoadFilter@2

; 243  :     {
; 244  :         BOOL RetVal = TRUE;

  00057	c7 85 8c fd ff
	ff 01 00 00 00	 mov	 DWORD PTR _RetVal$142323[ebp], 1
$LN15@LoadFilter@2:

; 245  :         while(RetVal != 0)

  00061	83 bd 8c fd ff
	ff 00		 cmp	 DWORD PTR _RetVal$142323[ebp], 0
  00068	0f 84 9f 00 00
	00		 je	 $LN14@LoadFilter@2

; 246  :         {
; 247  :             // check to see if the extension is .dll
; 248  :             // FindFirst... searches long and short file names so a filter that is named
; 249  :             // FLT_bogus.dllasdf will be found when searching for FLT_*.dll since it's short
; 250  :             // file name is FLT_bo~1.dll
; 251  : 
; 252  :             if(_tcsicmp(_T(".dll"), &FindFileData.cFileName[_tcslen(FindFileData.cFileName)-4]) == 0)

  0006e	8d 8d c4 fd ff
	ff		 lea	 ecx, DWORD PTR _FindFileData$[ebp+44]
  00074	51		 push	 ecx
  00075	e8 00 00 00 00	 call	 _wcslen
  0007a	83 c4 04	 add	 esp, 4
  0007d	8d 94 45 bc fd
	ff ff		 lea	 edx, DWORD PTR _FindFileData$[ebp+eax*2+36]
  00084	52		 push	 edx
  00085	68 00 00 00 00	 push	 OFFSET ??_C@_19BHIGINDB@?$AA?4?$AAd?$AAl?$AAl?$AA?$AA@
  0008a	e8 00 00 00 00	 call	 __wcsicmp
  0008f	83 c4 08	 add	 esp, 8
  00092	85 c0		 test	 eax, eax
  00094	75 58		 jne	 SHORT $LN13@LoadFilter@2

; 253  :             {
; 254  :                 try
; 255  :                 {

  00096	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 0

; 256  :                     LOG(1, _T("Loading %s ..."), FindFileData.cFileName);

  0009d	8d 85 c4 fd ff
	ff		 lea	 eax, DWORD PTR _FindFileData$[ebp+44]
  000a3	50		 push	 eax
  000a4	68 00 00 00 00	 push	 OFFSET ??_C@_1BO@GONCMKFF@?$AAL?$AAo?$AAa?$AAd?$AAi?$AAn?$AAg?$AA?5?$AA?$CF?$AAs?$AA?5?$AA?4?$AA?4?$AA?4?$AA?$AA@
  000a9	6a 01		 push	 1
  000ab	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  000b0	83 c4 0c	 add	 esp, 12			; 0000000cH

; 257  :                     LoadFilterPlugin(FindFileData.cFileName);

  000b3	8d 8d c4 fd ff
	ff		 lea	 ecx, DWORD PTR _FindFileData$[ebp+44]
  000b9	51		 push	 ecx
  000ba	e8 00 00 00 00	 call	 ?LoadFilterPlugin@@YAXPB_W@Z ; LoadFilterPlugin
  000bf	83 c4 04	 add	 esp, 4

; 258  :                 }

  000c2	eb 23		 jmp	 SHORT $LN19@LoadFilter@2
__catch$?LoadFilterPlugins@@YAHXZ$0:

; 259  :                 catch(...)
; 260  :                 {
; 261  :                     LOG(1, _T("Crash Loading %s"), FindFileData.cFileName);

  000c4	8d 95 c4 fd ff
	ff		 lea	 edx, DWORD PTR _FindFileData$[ebp+44]
  000ca	52		 push	 edx
  000cb	68 00 00 00 00	 push	 OFFSET ??_C@_1CC@NGMDNIBC@?$AAC?$AAr?$AAa?$AAs?$AAh?$AA?5?$AAL?$AAo?$AAa?$AAd?$AAi?$AAn?$AAg?$AA?5?$AA?$CF?$AAs?$AA?$AA@
  000d0	6a 01		 push	 1
  000d2	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  000d7	83 c4 0c	 add	 esp, 12			; 0000000cH

; 262  :                 }

  000da	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
  000e1	b8 00 00 00 00	 mov	 eax, $LN13@LoadFilter@2
  000e6	c3		 ret	 0
$LN19@LoadFilter@2:
  000e7	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
$LN13@LoadFilter@2:

; 263  :             }
; 264  :             RetVal = FindNextFile(hFindFile, &FindFileData);

  000ee	8d 85 98 fd ff
	ff		 lea	 eax, DWORD PTR _FindFileData$[ebp]
  000f4	50		 push	 eax
  000f5	8b 8d 90 fd ff
	ff		 mov	 ecx, DWORD PTR _hFindFile$[ebp]
  000fb	51		 push	 ecx
  000fc	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__FindNextFileW@8
  00102	89 85 8c fd ff
	ff		 mov	 DWORD PTR _RetVal$142323[ebp], eax

; 265  :         }

  00108	e9 54 ff ff ff	 jmp	 $LN15@LoadFilter@2
$LN14@LoadFilter@2:

; 266  :         FindClose(hFindFile);

  0010d	8b 95 90 fd ff
	ff		 mov	 edx, DWORD PTR _hFindFile$[ebp]
  00113	52		 push	 edx
  00114	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__FindClose@4

; 267  : 
; 268  :         SortFilterPlugins();

  0011a	e8 00 00 00 00	 call	 ?SortFilterPlugins@@YAXXZ ; SortFilterPlugins
$LN16@LoadFilter@2:

; 269  :     }
; 270  : 
; 271  :     if(NumFilters > 0)

  0011f	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?NumFilters@@3JA, 0 ; NumFilters
  00126	0f 8e 38 01 00
	00		 jle	 $LN11@LoadFilter@2

; 272  :     {
; 273  : 
; 274  :         HMENU hFilterMenu = GetFiltersSubmenu();

  0012c	e8 00 00 00 00	 call	 ?GetFiltersSubmenu@@YAPAUHMENU__@@XZ ; GetFiltersSubmenu
  00131	89 85 88 fd ff
	ff		 mov	 DWORD PTR _hFilterMenu$142333[ebp], eax

; 275  :         if(hFilterMenu == NULL)

  00137	83 bd 88 fd ff
	ff 00		 cmp	 DWORD PTR _hFilterMenu$142333[ebp], 0
  0013e	75 07		 jne	 SHORT $LN10@LoadFilter@2

; 276  :         {
; 277  :             return FALSE;

  00140	33 c0		 xor	 eax, eax
  00142	e9 1f 01 00 00	 jmp	 $LN17@LoadFilter@2
$LN10@LoadFilter@2:

; 278  :         }
; 279  : 
; 280  :         AppendMenu(hFilterMenu, MF_STRING | MF_GRAYED, 0, _T("             Input Filters"));

  00147	68 00 00 00 00	 push	 OFFSET ??_C@_1DG@NNLCPJM@?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AAI?$AAn?$AAp?$AAu?$AAt?$AA?5?$AAF?$AAi?$AAl?$AAt?$AAe?$AAr?$AAs?$AA?$AA@
  0014c	6a 00		 push	 0
  0014e	6a 01		 push	 1
  00150	8b 85 88 fd ff
	ff		 mov	 eax, DWORD PTR _hFilterMenu$142333[ebp]
  00156	50		 push	 eax
  00157	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__AppendMenuW@16

; 281  :         for(i = 0; i < NumFilters; i++)

  0015d	c7 85 94 fd ff
	ff 00 00 00 00	 mov	 DWORD PTR _i$[ebp], 0
  00167	eb 0f		 jmp	 SHORT $LN9@LoadFilter@2
$LN8@LoadFilter@2:
  00169	8b 8d 94 fd ff
	ff		 mov	 ecx, DWORD PTR _i$[ebp]
  0016f	83 c1 01	 add	 ecx, 1
  00172	89 8d 94 fd ff
	ff		 mov	 DWORD PTR _i$[ebp], ecx
$LN9@LoadFilter@2:
  00178	8b 95 94 fd ff
	ff		 mov	 edx, DWORD PTR _i$[ebp]
  0017e	3b 15 00 00 00
	00		 cmp	 edx, DWORD PTR ?NumFilters@@3JA ; NumFilters
  00184	7d 3f		 jge	 SHORT $LN7@LoadFilter@2

; 282  :         {
; 283  :             if(Filters[i]->bOnInput)

  00186	8b 85 94 fd ff
	ff		 mov	 eax, DWORD PTR _i$[ebp]
  0018c	8b 0c 85 00 00
	00 00		 mov	 ecx, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[eax*4]
  00193	83 79 18 00	 cmp	 DWORD PTR [ecx+24], 0
  00197	74 2a		 je	 SHORT $LN6@LoadFilter@2

; 284  :             {
; 285  :                 AddUIForFilterPlugin(hFilterMenu, Filters[i], 7000 + i);

  00199	8b 95 94 fd ff
	ff		 mov	 edx, DWORD PTR _i$[ebp]
  0019f	81 c2 58 1b 00
	00		 add	 edx, 7000		; 00001b58H
  001a5	52		 push	 edx
  001a6	8b 85 94 fd ff
	ff		 mov	 eax, DWORD PTR _i$[ebp]
  001ac	8b 0c 85 00 00
	00 00		 mov	 ecx, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[eax*4]
  001b3	51		 push	 ecx
  001b4	8b 95 88 fd ff
	ff		 mov	 edx, DWORD PTR _hFilterMenu$142333[ebp]
  001ba	52		 push	 edx
  001bb	e8 00 00 00 00	 call	 ?AddUIForFilterPlugin@@YAXPAUHMENU__@@PAUFILTER_METHOD@@H@Z ; AddUIForFilterPlugin
  001c0	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN6@LoadFilter@2:

; 286  :             }
; 287  :         }

  001c3	eb a4		 jmp	 SHORT $LN8@LoadFilter@2
$LN7@LoadFilter@2:

; 288  :         AppendMenu(hFilterMenu, MF_SEPARATOR, 0, _T(""));

  001c5	68 00 00 00 00	 push	 OFFSET ??_C@_11LOCGONAA@?$AA?$AA@
  001ca	6a 00		 push	 0
  001cc	68 00 08 00 00	 push	 2048			; 00000800H
  001d1	8b 85 88 fd ff
	ff		 mov	 eax, DWORD PTR _hFilterMenu$142333[ebp]
  001d7	50		 push	 eax
  001d8	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__AppendMenuW@16

; 289  :         AppendMenu(hFilterMenu, MF_STRING | MF_GRAYED, 0, _T("             Output Filters"));

  001de	68 00 00 00 00	 push	 OFFSET ??_C@_1DI@FHBEPLHJ@?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?5?$AAF?$AAi?$AAl?$AAt?$AAe?$AAr?$AAs?$AA?$AA@
  001e3	6a 00		 push	 0
  001e5	6a 01		 push	 1
  001e7	8b 8d 88 fd ff
	ff		 mov	 ecx, DWORD PTR _hFilterMenu$142333[ebp]
  001ed	51		 push	 ecx
  001ee	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__AppendMenuW@16

; 290  :         for(i = 0; i < NumFilters; i++)

  001f4	c7 85 94 fd ff
	ff 00 00 00 00	 mov	 DWORD PTR _i$[ebp], 0
  001fe	eb 0f		 jmp	 SHORT $LN5@LoadFilter@2
$LN4@LoadFilter@2:
  00200	8b 95 94 fd ff
	ff		 mov	 edx, DWORD PTR _i$[ebp]
  00206	83 c2 01	 add	 edx, 1
  00209	89 95 94 fd ff
	ff		 mov	 DWORD PTR _i$[ebp], edx
$LN5@LoadFilter@2:
  0020f	8b 85 94 fd ff
	ff		 mov	 eax, DWORD PTR _i$[ebp]
  00215	3b 05 00 00 00
	00		 cmp	 eax, DWORD PTR ?NumFilters@@3JA ; NumFilters
  0021b	7d 3e		 jge	 SHORT $LN3@LoadFilter@2

; 291  :         {
; 292  :             if(!Filters[i]->bOnInput)

  0021d	8b 8d 94 fd ff
	ff		 mov	 ecx, DWORD PTR _i$[ebp]
  00223	8b 14 8d 00 00
	00 00		 mov	 edx, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[ecx*4]
  0022a	83 7a 18 00	 cmp	 DWORD PTR [edx+24], 0
  0022e	75 29		 jne	 SHORT $LN2@LoadFilter@2

; 293  :             {
; 294  :                 AddUIForFilterPlugin(hFilterMenu, Filters[i], 7000 + i);

  00230	8b 85 94 fd ff
	ff		 mov	 eax, DWORD PTR _i$[ebp]
  00236	05 58 1b 00 00	 add	 eax, 7000		; 00001b58H
  0023b	50		 push	 eax
  0023c	8b 8d 94 fd ff
	ff		 mov	 ecx, DWORD PTR _i$[ebp]
  00242	8b 14 8d 00 00
	00 00		 mov	 edx, DWORD PTR ?Filters@@3PAPAUFILTER_METHOD@@A[ecx*4]
  00249	52		 push	 edx
  0024a	8b 85 88 fd ff
	ff		 mov	 eax, DWORD PTR _hFilterMenu$142333[ebp]
  00250	50		 push	 eax
  00251	e8 00 00 00 00	 call	 ?AddUIForFilterPlugin@@YAXPAUHMENU__@@PAUFILTER_METHOD@@H@Z ; AddUIForFilterPlugin
  00256	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN2@LoadFilter@2:

; 295  :             }
; 296  :         }

  00259	eb a5		 jmp	 SHORT $LN4@LoadFilter@2
$LN3@LoadFilter@2:

; 297  :         return TRUE;

  0025b	b8 01 00 00 00	 mov	 eax, 1
  00260	eb 04		 jmp	 SHORT $LN17@LoadFilter@2

; 298  :     }
; 299  :     else

  00262	eb 02		 jmp	 SHORT $LN17@LoadFilter@2
$LN11@LoadFilter@2:

; 300  :     {
; 301  :         return FALSE;

  00264	33 c0		 xor	 eax, eax
$LN17@LoadFilter@2:

; 302  :     }
; 303  : }

  00266	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp+4]
  00269	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00270	59		 pop	 ecx
  00271	5f		 pop	 edi
  00272	5e		 pop	 esi
  00273	5b		 pop	 ebx
  00274	8b 4d ec	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  00277	33 cd		 xor	 ecx, ebp
  00279	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0027e	8b e5		 mov	 esp, ebp
  00280	5d		 pop	 ebp
  00281	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__ehhandler$?LoadFilterPlugins@@YAHXZ:
  00000	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00004	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00007	8b 8a 84 fd ff
	ff		 mov	 ecx, DWORD PTR [edx-636]
  0000d	33 c8		 xor	 ecx, eax
  0000f	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00014	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  00017	33 c8		 xor	 ecx, eax
  00019	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001e	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?LoadFilterPlugins@@YAHXZ
  00023	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?LoadFilterPlugins@@YAHXZ ENDP				; LoadFilterPlugins
; Function compile flags: /Odtp
;	COMDAT ??__EFilterHolders@@YAXXZ
text$yc	SEGMENT
??__EFilterHolders@@YAXXZ PROC				; `dynamic initializer for 'FilterHolders'', COMDAT

; 47   : vector< SmartPtr<CSettingsHolder> > FilterHolders;

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET ?FilterHolders@@3V?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@A ; FilterHolders
  00008	e8 00 00 00 00	 call	 ??0?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@QAE@XZ ; std::vector<SmartPtr<CSettingsHolder>,std::allocator<SmartPtr<CSettingsHolder> > >::vector<SmartPtr<CSettingsHolder>,std::allocator<SmartPtr<CSettingsHolder> > >
  0000d	68 00 00 00 00	 push	 OFFSET ??__FFilterHolders@@YAXXZ ; `dynamic atexit destructor for 'FilterHolders''
  00012	e8 00 00 00 00	 call	 _atexit
  00017	83 c4 04	 add	 esp, 4
  0001a	5d		 pop	 ebp
  0001b	c3		 ret	 0
??__EFilterHolders@@YAXXZ ENDP				; `dynamic initializer for 'FilterHolders''
; Function compile flags: /Odtp
;	COMDAT ??__FFilterHolders@@YAXXZ
text$yd	SEGMENT
??__FFilterHolders@@YAXXZ PROC				; `dynamic atexit destructor for 'FilterHolders'', COMDAT
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	b9 00 00 00 00	 mov	 ecx, OFFSET ?FilterHolders@@3V?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@A ; FilterHolders
  00008	e8 00 00 00 00	 call	 ??1?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@QAE@XZ ; std::vector<SmartPtr<CSettingsHolder>,std::allocator<SmartPtr<CSettingsHolder> > >::~vector<SmartPtr<CSettingsHolder>,std::allocator<SmartPtr<CSettingsHolder> > >
  0000d	5d		 pop	 ebp
  0000e	c3		 ret	 0
??__FFilterHolders@@YAXXZ ENDP				; `dynamic atexit destructor for 'FilterHolders''
PUBLIC	?FilterHolders@@3V?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@A ; FilterHolders
?FilterHolders@@3V?$vector@V?$SmartPtr@VCSettingsHolder@@@@V?$allocator@V?$SmartPtr@VCSettingsHolder@@@@@std@@@std@@A DB 018H DUP (?) ; FilterHolders
_FilterHolders$initializer$ DD FLAT:??__EFilterHolders@@YAXXZ
END
