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

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

INCLUDELIB OLDNAMES

PUBLIC	?pMultiFrames@@3PAVCMultiFrames@@A		; pMultiFrames
PUBLIC	??_C@_1GC@KOKGJOIG@?$AAC?$AAo?$AAu?$AAl?$AAd?$AAn?$AA?8?$AAt?$AA?5?$AAa?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA?5?$AAm?$AAe?$AAm?$AAo?$AAr?$AAy?$AA?5?$AAf?$AAo?$AAr?$AA?5?$AAm?$AAu?$AAl@ ; `string'
PUBLIC	??_C@_1HK@JABJLPKB@?$AAC?$AAo?$AAu?$AAl?$AAd?$AAn?$AA?8?$AAt?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAa?$AAd?$AAd?$AAi?$AAt?$AAi?$AAo?$AAn?$AAa?$AAl?$AA?5?$AAb?$AAu?$AAf?$AAf?$AAe@ ; `string'
?pMultiFrames@@3PAVCMultiFrames@@A DD 01H DUP (?)	; pMultiFrames
;	COMDAT ??_C@_1HK@JABJLPKB@?$AAC?$AAo?$AAu?$AAl?$AAd?$AAn?$AA?8?$AAt?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAa?$AAd?$AAd?$AAi?$AAt?$AAi?$AAo?$AAn?$AAa?$AAl?$AA?5?$AAb?$AAu?$AAf?$AAf?$AAe@
CONST	SEGMENT
??_C@_1HK@JABJLPKB@?$AAC?$AAo?$AAu?$AAl?$AAd?$AAn?$AA?8?$AAt?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAa?$AAd?$AAd?$AAi?$AAt?$AAi?$AAo?$AAn?$AAa?$AAl?$AA?5?$AAb?$AAu?$AAf?$AAf?$AAe@ DB 'C'
	DB	00H, 'o', 00H, 'u', 00H, 'l', 00H, 'd', 00H, 'n', 00H, '''', 00H
	DB	't', 00H, ' ', 00H, 'c', 00H, 'r', 00H, 'e', 00H, 'a', 00H, 't'
	DB	00H, 'e', 00H, ' ', 00H, 'a', 00H, 'd', 00H, 'd', 00H, 'i', 00H
	DB	't', 00H, 'i', 00H, 'o', 00H, 'n', 00H, 'a', 00H, 'l', 00H, ' '
	DB	00H, 'b', 00H, 'u', 00H, 'f', 00H, 'f', 00H, 'e', 00H, 'r', 00H
	DB	' ', 00H, 'f', 00H, 'o', 00H, 'r', 00H, ' ', 00H, 'm', 00H, 'u'
	DB	00H, 'l', 00H, 't', 00H, 'i', 00H, 'p', 00H, 'l', 00H, 'e', 00H
	DB	' ', 00H, 'f', 00H, 'r', 00H, 'a', 00H, 'm', 00H, 'e', 00H, 's'
	DB	00H, ' ', 00H, 'o', 00H, 'u', 00H, 't', 00H, 'p', 00H, 'u', 00H
	DB	't', 00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1GC@KOKGJOIG@?$AAC?$AAo?$AAu?$AAl?$AAd?$AAn?$AA?8?$AAt?$AA?5?$AAa?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA?5?$AAm?$AAe?$AAm?$AAo?$AAr?$AAy?$AA?5?$AAf?$AAo?$AAr?$AA?5?$AAm?$AAu?$AAl@
CONST	SEGMENT
??_C@_1GC@KOKGJOIG@?$AAC?$AAo?$AAu?$AAl?$AAd?$AAn?$AA?8?$AAt?$AA?5?$AAa?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA?5?$AAm?$AAe?$AAm?$AAo?$AAr?$AAy?$AA?5?$AAf?$AAo?$AAr?$AA?5?$AAm?$AAu?$AAl@ DB 'C'
	DB	00H, 'o', 00H, 'u', 00H, 'l', 00H, 'd', 00H, 'n', 00H, '''', 00H
	DB	't', 00H, ' ', 00H, 'a', 00H, 'l', 00H, 'l', 00H, 'o', 00H, 'c'
	DB	00H, 'a', 00H, 't', 00H, 'e', 00H, ' ', 00H, 'm', 00H, 'e', 00H
	DB	'm', 00H, 'o', 00H, 'r', 00H, 'y', 00H, ' ', 00H, 'f', 00H, 'o'
	DB	00H, 'r', 00H, ' ', 00H, 'm', 00H, 'u', 00H, 'l', 00H, 't', 00H
	DB	'i', 00H, ' ', 00H, 'f', 00H, 'r', 00H, 'a', 00H, 'm', 00H, 'e'
	DB	00H, 's', 00H, ' ', 00H, 'o', 00H, 'u', 00H, 't', 00H, 'p', 00H
	DB	'u', 00H, 't', 00H, 00H, 00H			; `string'
PUBLIC	?SelectFrameBuffer@CMultiFrames@@AAEXHHPAPAEPAH11@Z ; CMultiFrames::SelectFrameBuffer
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\multiframes.cpp
;	COMDAT ?SelectFrameBuffer@CMultiFrames@@AAEXHHPAPAEPAH11@Z
_TEXT	SEGMENT
_this$ = -12						; size = 4
_iRow$ = -8						; size = 4
_iCol$ = -4						; size = 4
_iFrame$ = 8						; size = 4
_bIncludingBorder$ = 12					; size = 4
_lpFrameBuffer$ = 16					; size = 4
_iFrameLinePitch$ = 20					; size = 4
_iFrameWidth$ = 24					; size = 4
_iFrameHeight$ = 28					; size = 4
?SelectFrameBuffer@CMultiFrames@@AAEXHHPAPAEPAH11@Z PROC ; CMultiFrames::SelectFrameBuffer, COMDAT
; _this$ = ecx

; 571  : {

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

; 572  :     int iRow = iFrame / m_NbCols;

  0000a	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0000d	8b 45 08	 mov	 eax, DWORD PTR _iFrame$[ebp]
  00010	99		 cdq
  00011	f7 79 0c	 idiv	 DWORD PTR [ecx+12]
  00014	89 45 f8	 mov	 DWORD PTR _iRow$[ebp], eax

; 573  :     int iCol = iFrame % m_NbCols;

  00017	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0001a	8b 45 08	 mov	 eax, DWORD PTR _iFrame$[ebp]
  0001d	99		 cdq
  0001e	f7 79 0c	 idiv	 DWORD PTR [ecx+12]
  00021	89 55 fc	 mov	 DWORD PTR _iCol$[ebp], edx

; 574  : 
; 575  :     *iFrameLinePitch = m_Width * 2;

  00024	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  00027	8b 42 14	 mov	 eax, DWORD PTR [edx+20]
  0002a	d1 e0		 shl	 eax, 1
  0002c	8b 4d 14	 mov	 ecx, DWORD PTR _iFrameLinePitch$[ebp]
  0002f	89 01		 mov	 DWORD PTR [ecx], eax

; 576  :     *iFrameHeight = m_Height / m_NbRows;

  00031	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  00034	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00037	8b 42 18	 mov	 eax, DWORD PTR [edx+24]
  0003a	99		 cdq
  0003b	f7 79 10	 idiv	 DWORD PTR [ecx+16]
  0003e	8b 55 1c	 mov	 edx, DWORD PTR _iFrameHeight$[ebp]
  00041	89 02		 mov	 DWORD PTR [edx], eax

; 577  :     *iFrameWidth = m_Width / m_NbCols;

  00043	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  00046	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00049	8b 40 14	 mov	 eax, DWORD PTR [eax+20]
  0004c	99		 cdq
  0004d	f7 79 0c	 idiv	 DWORD PTR [ecx+12]
  00050	8b 55 18	 mov	 edx, DWORD PTR _iFrameWidth$[ebp]
  00053	89 02		 mov	 DWORD PTR [edx], eax

; 578  :     *lpFrameBuffer = START_ALIGNED16(m_MemoryBuffer) + iRow * *iFrameHeight * *iFrameLinePitch + iCol * *iFrameWidth * 2;

  00055	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  00058	8b 48 1c	 mov	 ecx, DWORD PTR [eax+28]
  0005b	83 c1 10	 add	 ecx, 16			; 00000010H
  0005e	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  00061	8b 42 1c	 mov	 eax, DWORD PTR [edx+28]
  00064	33 d2		 xor	 edx, edx
  00066	be 10 00 00 00	 mov	 esi, 16			; 00000010H
  0006b	f7 f6		 div	 esi
  0006d	2b ca		 sub	 ecx, edx
  0006f	8b 45 1c	 mov	 eax, DWORD PTR _iFrameHeight$[ebp]
  00072	8b 55 f8	 mov	 edx, DWORD PTR _iRow$[ebp]
  00075	0f af 10	 imul	 edx, DWORD PTR [eax]
  00078	8b 45 14	 mov	 eax, DWORD PTR _iFrameLinePitch$[ebp]
  0007b	0f af 10	 imul	 edx, DWORD PTR [eax]
  0007e	03 ca		 add	 ecx, edx
  00080	8b 55 18	 mov	 edx, DWORD PTR _iFrameWidth$[ebp]
  00083	8b 45 fc	 mov	 eax, DWORD PTR _iCol$[ebp]
  00086	0f af 02	 imul	 eax, DWORD PTR [edx]
  00089	8d 0c 41	 lea	 ecx, DWORD PTR [ecx+eax*2]
  0008c	8b 55 10	 mov	 edx, DWORD PTR _lpFrameBuffer$[ebp]
  0008f	89 0a		 mov	 DWORD PTR [edx], ecx

; 579  : 
; 580  :     if (!bIncludingBorder)

  00091	83 7d 0c 00	 cmp	 DWORD PTR _bIncludingBorder$[ebp], 0
  00095	75 2d		 jne	 SHORT $LN2@SelectFram

; 581  :     {
; 582  :         *iFrameWidth -= LEFT_BORDER+RIGHT_BORDER;

  00097	8b 45 18	 mov	 eax, DWORD PTR _iFrameWidth$[ebp]
  0009a	8b 08		 mov	 ecx, DWORD PTR [eax]
  0009c	83 e9 04	 sub	 ecx, 4
  0009f	8b 55 18	 mov	 edx, DWORD PTR _iFrameWidth$[ebp]
  000a2	89 0a		 mov	 DWORD PTR [edx], ecx

; 583  :         *iFrameHeight -= TOP_BORDER+BOTTOM_BORDER;

  000a4	8b 45 1c	 mov	 eax, DWORD PTR _iFrameHeight$[ebp]
  000a7	8b 08		 mov	 ecx, DWORD PTR [eax]
  000a9	83 e9 04	 sub	 ecx, 4
  000ac	8b 55 1c	 mov	 edx, DWORD PTR _iFrameHeight$[ebp]
  000af	89 0a		 mov	 DWORD PTR [edx], ecx

; 584  :         *lpFrameBuffer += TOP_BORDER * *iFrameLinePitch + LEFT_BORDER * 2;

  000b1	8b 45 14	 mov	 eax, DWORD PTR _iFrameLinePitch$[ebp]
  000b4	8b 08		 mov	 ecx, DWORD PTR [eax]
  000b6	8b 55 10	 mov	 edx, DWORD PTR _lpFrameBuffer$[ebp]
  000b9	8b 02		 mov	 eax, DWORD PTR [edx]
  000bb	8d 4c 48 04	 lea	 ecx, DWORD PTR [eax+ecx*2+4]
  000bf	8b 55 10	 mov	 edx, DWORD PTR _lpFrameBuffer$[ebp]
  000c2	89 0a		 mov	 DWORD PTR [edx], ecx
$LN2@SelectFram:

; 585  :     }
; 586  : }

  000c4	5e		 pop	 esi
  000c5	8b e5		 mov	 esp, ebp
  000c7	5d		 pop	 ebp
  000c8	c2 18 00	 ret	 24			; 00000018H
?SelectFrameBuffer@CMultiFrames@@AAEXHHPAPAEPAH11@Z ENDP ; CMultiFrames::SelectFrameBuffer
_TEXT	ENDS
PUBLIC	?FreeMemoryBuffer@CMultiFrames@@AAEXXZ		; CMultiFrames::FreeMemoryBuffer
; Function compile flags: /Odtp
;	COMDAT ?FreeMemoryBuffer@CMultiFrames@@AAEXXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?FreeMemoryBuffer@CMultiFrames@@AAEXXZ PROC		; CMultiFrames::FreeMemoryBuffer, COMDAT
; _this$ = ecx

; 558  : {

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

; 559  :     if (m_MemoryBuffer != NULL)

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	83 78 1c 00	 cmp	 DWORD PTR [eax+28], 0
  0000e	74 19		 je	 SHORT $LN2@FreeMemory

; 560  :     {
; 561  :         free(m_MemoryBuffer);

  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	8b 51 1c	 mov	 edx, DWORD PTR [ecx+28]
  00016	52		 push	 edx
  00017	e8 00 00 00 00	 call	 _free
  0001c	83 c4 04	 add	 esp, 4

; 562  :         m_MemoryBuffer = NULL;

  0001f	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00022	c7 40 1c 00 00
	00 00		 mov	 DWORD PTR [eax+28], 0
$LN2@FreeMemory:

; 563  :     }
; 564  : }

  00029	8b e5		 mov	 esp, ebp
  0002b	5d		 pop	 ebp
  0002c	c3		 ret	 0
?FreeMemoryBuffer@CMultiFrames@@AAEXXZ ENDP		; CMultiFrames::FreeMemoryBuffer
_TEXT	ENDS
PUBLIC	?AckContentChange@CMultiFrames@@QAEXXZ		; CMultiFrames::AckContentChange
; Function compile flags: /Odtp
;	COMDAT ?AckContentChange@CMultiFrames@@QAEXXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?AckContentChange@CMultiFrames@@QAEXXZ PROC		; CMultiFrames::AckContentChange, COMDAT
; _this$ = ecx

; 539  : {

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

; 540  :     m_ContentChanged = TRUE;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	c7 40 40 01 00
	00 00		 mov	 DWORD PTR [eax+64], 1

; 541  : }

  00011	8b e5		 mov	 esp, ebp
  00013	5d		 pop	 ebp
  00014	c3		 ret	 0
?AckContentChange@CMultiFrames@@QAEXXZ ENDP		; CMultiFrames::AckContentChange
_TEXT	ENDS
PUBLIC	?HandleWindowsCommands@CMultiFrames@@QAEHPAUHWND__@@IJ@Z ; CMultiFrames::HandleWindowsCommands
; Function compile flags: /Odtp
;	COMDAT ?HandleWindowsCommands@CMultiFrames@@QAEHPAUHWND__@@IJ@Z
_TEXT	SEGMENT
tv67 = -8						; size = 4
_this$ = -4						; size = 4
_hWnd$ = 8						; size = 4
_wParam$ = 12						; size = 4
_lParam$ = 16						; size = 4
?HandleWindowsCommands@CMultiFrames@@QAEHPAUHWND__@@IJ@Z PROC ; CMultiFrames::HandleWindowsCommands, COMDAT
; _this$ = ecx

; 481  : {

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

; 482  :     switch(LOWORD(wParam))

  00009	8b 45 0c	 mov	 eax, DWORD PTR _wParam$[ebp]
  0000c	25 ff ff 00 00	 and	 eax, 65535		; 0000ffffH
  00011	0f b7 c8	 movzx	 ecx, ax
  00014	89 4d f8	 mov	 DWORD PTR tv67[ebp], ecx
  00017	81 7d f8 c4 80
	00 00		 cmp	 DWORD PTR tv67[ebp], 32964 ; 000080c4H
  0001e	7f 29		 jg	 SHORT $LN18@HandleWind
  00020	81 7d f8 c4 80
	00 00		 cmp	 DWORD PTR tv67[ebp], 32964 ; 000080c4H
  00027	74 50		 je	 SHORT $LN11@HandleWind
  00029	8b 55 f8	 mov	 edx, DWORD PTR tv67[ebp]
  0002c	81 ea a1 01 00
	00		 sub	 edx, 417		; 000001a1H
  00032	89 55 f8	 mov	 DWORD PTR tv67[ebp], edx
  00035	83 7d f8 03	 cmp	 DWORD PTR tv67[ebp], 3
  00039	0f 87 e4 00 00
	00		 ja	 $LN14@HandleWind
  0003f	8b 45 f8	 mov	 eax, DWORD PTR tv67[ebp]
  00042	ff 24 85 00 00
	00 00		 jmp	 DWORD PTR $LN19@HandleWind[eax*4]
$LN18@HandleWind:
  00049	81 7d f8 c5 80
	00 00		 cmp	 DWORD PTR tv67[ebp], 32965 ; 000080c5H
  00050	74 05		 je	 SHORT $LN13@HandleWind
  00052	e9 cc 00 00 00	 jmp	 $LN14@HandleWind
$LN13@HandleWind:

; 483  :     {
; 484  :     case IDM_PREVIEW_PAGE_PREV:
; 485  :         // Ctrl+Up key
; 486  :         if (m_NavigAllowed)

  00057	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0005a	83 79 30 00	 cmp	 DWORD PTR [ecx+48], 0
  0005e	74 14		 je	 SHORT $LN12@HandleWind

; 487  :         {
; 488  :             m_PreviousPage = TRUE;

  00060	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00063	c7 42 3c 01 00
	00 00		 mov	 DWORD PTR [edx+60], 1

; 489  :             return TRUE;

  0006a	b8 01 00 00 00	 mov	 eax, 1
  0006f	e9 b1 00 00 00	 jmp	 $LN16@HandleWind
$LN12@HandleWind:

; 490  :         }
; 491  :         break;

  00074	e9 aa 00 00 00	 jmp	 $LN14@HandleWind
$LN11@HandleWind:

; 492  :     case IDM_PREVIEW_PAGE_NEXT:
; 493  :         // Ctrl+Down key
; 494  :         if (m_NavigAllowed)

  00079	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0007c	83 78 30 00	 cmp	 DWORD PTR [eax+48], 0
  00080	74 14		 je	 SHORT $LN10@HandleWind

; 495  :         {
; 496  :             m_NextPage = TRUE;

  00082	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00085	c7 41 38 01 00
	00 00		 mov	 DWORD PTR [ecx+56], 1

; 497  :             return TRUE;

  0008c	b8 01 00 00 00	 mov	 eax, 1
  00091	e9 8f 00 00 00	 jmp	 $LN16@HandleWind
$LN10@HandleWind:

; 498  :         }
; 499  :         break;

  00096	e9 88 00 00 00	 jmp	 $LN14@HandleWind
$LN9@HandleWind:

; 500  :     case IDM_VT_PAGE_UP:
; 501  :         // Up key
; 502  :         if (m_NavigAllowed)

  0009b	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  0009e	83 7a 30 00	 cmp	 DWORD PTR [edx+48], 0
  000a2	74 19		 je	 SHORT $LN8@HandleWind

; 503  :         {
; 504  :             m_DeltaNewFrame -= m_NbCols;

  000a4	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  000a7	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  000aa	8b 50 34	 mov	 edx, DWORD PTR [eax+52]
  000ad	2b 51 0c	 sub	 edx, DWORD PTR [ecx+12]
  000b0	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  000b3	89 50 34	 mov	 DWORD PTR [eax+52], edx

; 505  :             return TRUE;

  000b6	b8 01 00 00 00	 mov	 eax, 1
  000bb	eb 68		 jmp	 SHORT $LN16@HandleWind
$LN8@HandleWind:

; 506  :         }
; 507  :         break;

  000bd	eb 64		 jmp	 SHORT $LN14@HandleWind
$LN7@HandleWind:

; 508  :     case IDM_VT_PAGE_DOWN:
; 509  :         // Down key
; 510  :         if (m_NavigAllowed)

  000bf	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  000c2	83 79 30 00	 cmp	 DWORD PTR [ecx+48], 0
  000c6	74 19		 je	 SHORT $LN6@HandleWind

; 511  :         {
; 512  :             m_DeltaNewFrame += m_NbCols;

  000c8	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  000cb	8b 42 34	 mov	 eax, DWORD PTR [edx+52]
  000ce	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  000d1	03 41 0c	 add	 eax, DWORD PTR [ecx+12]
  000d4	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  000d7	89 42 34	 mov	 DWORD PTR [edx+52], eax

; 513  :             return TRUE;

  000da	b8 01 00 00 00	 mov	 eax, 1
  000df	eb 44		 jmp	 SHORT $LN16@HandleWind
$LN6@HandleWind:

; 514  :         }
; 515  :         break;

  000e1	eb 40		 jmp	 SHORT $LN14@HandleWind
$LN5@HandleWind:

; 516  :     case IDM_VT_PAGE_MINUS:
; 517  :         // Left key
; 518  :         if (m_NavigAllowed)

  000e3	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  000e6	83 78 30 00	 cmp	 DWORD PTR [eax+48], 0
  000ea	74 16		 je	 SHORT $LN4@HandleWind

; 519  :         {
; 520  :             m_DeltaNewFrame--;

  000ec	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  000ef	8b 51 34	 mov	 edx, DWORD PTR [ecx+52]
  000f2	83 ea 01	 sub	 edx, 1
  000f5	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  000f8	89 50 34	 mov	 DWORD PTR [eax+52], edx

; 521  :             return TRUE;

  000fb	b8 01 00 00 00	 mov	 eax, 1
  00100	eb 23		 jmp	 SHORT $LN16@HandleWind
$LN4@HandleWind:

; 522  :         }
; 523  :         break;

  00102	eb 1f		 jmp	 SHORT $LN14@HandleWind
$LN3@HandleWind:

; 524  :     case IDM_VT_PAGE_PLUS:
; 525  :         // Right key
; 526  :         if (m_NavigAllowed)

  00104	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00107	83 79 30 00	 cmp	 DWORD PTR [ecx+48], 0
  0010b	74 16		 je	 SHORT $LN14@HandleWind

; 527  :         {
; 528  :             m_DeltaNewFrame++;

  0010d	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00110	8b 42 34	 mov	 eax, DWORD PTR [edx+52]
  00113	83 c0 01	 add	 eax, 1
  00116	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00119	89 41 34	 mov	 DWORD PTR [ecx+52], eax

; 529  :             return TRUE;

  0011c	b8 01 00 00 00	 mov	 eax, 1
  00121	eb 02		 jmp	 SHORT $LN16@HandleWind
$LN14@HandleWind:

; 530  :         }
; 531  :         break;
; 532  :     default:
; 533  :         break;
; 534  :     }
; 535  :     return FALSE;

  00123	33 c0		 xor	 eax, eax
$LN16@HandleWind:

; 536  : }

  00125	8b e5		 mov	 esp, ebp
  00127	5d		 pop	 ebp
  00128	c2 0c 00	 ret	 12			; 0000000cH
  0012b	90		 npad	 1
$LN19@HandleWind:
  0012c	00 00 00 00	 DD	 $LN5@HandleWind
  00130	00 00 00 00	 DD	 $LN3@HandleWind
  00134	00 00 00 00	 DD	 $LN9@HandleWind
  00138	00 00 00 00	 DD	 $LN7@HandleWind
?HandleWindowsCommands@CMultiFrames@@QAEHPAUHWND__@@IJ@Z ENDP ; CMultiFrames::HandleWindowsCommands
_TEXT	ENDS
PUBLIC	?RequestSwitch@CMultiFrames@@QAEXXZ		; CMultiFrames::RequestSwitch
; Function compile flags: /Odtp
;	COMDAT ?RequestSwitch@CMultiFrames@@QAEXXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?RequestSwitch@CMultiFrames@@QAEXXZ PROC		; CMultiFrames::RequestSwitch, COMDAT
; _this$ = ecx

; 154  : {

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

; 155  :     m_SwitchRequested = TRUE;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	c7 40 2c 01 00
	00 00		 mov	 DWORD PTR [eax+44], 1

; 156  : }

  00011	8b e5		 mov	 esp, ebp
  00013	5d		 pop	 ebp
  00014	c3		 ret	 0
?RequestSwitch@CMultiFrames@@QAEXXZ ENDP		; CMultiFrames::RequestSwitch
_TEXT	ENDS
PUBLIC	?IsSwitchRequested@CMultiFrames@@QAEHXZ		; CMultiFrames::IsSwitchRequested
; Function compile flags: /Odtp
;	COMDAT ?IsSwitchRequested@CMultiFrames@@QAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?IsSwitchRequested@CMultiFrames@@QAEHXZ PROC		; CMultiFrames::IsSwitchRequested, COMDAT
; _this$ = ecx

; 149  : {

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

; 150  :     return m_SwitchRequested;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 40 2c	 mov	 eax, DWORD PTR [eax+44]

; 151  : }

  0000d	8b e5		 mov	 esp, ebp
  0000f	5d		 pop	 ebp
  00010	c3		 ret	 0
?IsSwitchRequested@CMultiFrames@@QAEHXZ ENDP		; CMultiFrames::IsSwitchRequested
_TEXT	ENDS
PUBLIC	?IsActive@CMultiFrames@@QAEHXZ			; CMultiFrames::IsActive
; Function compile flags: /Odtp
;	COMDAT ?IsActive@CMultiFrames@@QAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?IsActive@CMultiFrames@@QAEHXZ PROC			; CMultiFrames::IsActive, COMDAT
; _this$ = ecx

; 102  : {

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

; 103  :     return m_Active;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 40 28	 mov	 eax, DWORD PTR [eax+40]

; 104  : }

  0000d	8b e5		 mov	 esp, ebp
  0000f	5d		 pop	 ebp
  00010	c3		 ret	 0
?IsActive@CMultiFrames@@QAEHXZ ENDP			; CMultiFrames::IsActive
_TEXT	ENDS
PUBLIC	?GetHeight@CMultiFrames@@QAEHXZ			; CMultiFrames::GetHeight
; Function compile flags: /Odtp
;	COMDAT ?GetHeight@CMultiFrames@@QAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetHeight@CMultiFrames@@QAEHXZ PROC			; CMultiFrames::GetHeight, COMDAT
; _this$ = ecx

; 96   : {

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

; 97   :     return m_Height;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 40 18	 mov	 eax, DWORD PTR [eax+24]

; 98   : }

  0000d	8b e5		 mov	 esp, ebp
  0000f	5d		 pop	 ebp
  00010	c3		 ret	 0
?GetHeight@CMultiFrames@@QAEHXZ ENDP			; CMultiFrames::GetHeight
_TEXT	ENDS
PUBLIC	?GetWidth@CMultiFrames@@QAEHXZ			; CMultiFrames::GetWidth
; Function compile flags: /Odtp
;	COMDAT ?GetWidth@CMultiFrames@@QAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetWidth@CMultiFrames@@QAEHXZ PROC			; CMultiFrames::GetWidth, COMDAT
; _this$ = ecx

; 91   : {

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

; 92   :     return m_Width;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 40 14	 mov	 eax, DWORD PTR [eax+20]

; 93   : }

  0000d	8b e5		 mov	 esp, ebp
  0000f	5d		 pop	 ebp
  00010	c3		 ret	 0
?GetWidth@CMultiFrames@@QAEHXZ ENDP			; CMultiFrames::GetWidth
_TEXT	ENDS
PUBLIC	?GetSource@CMultiFrames@@QAEPAVCSource@@XZ	; CMultiFrames::GetSource
; Function compile flags: /Odtp
;	COMDAT ?GetSource@CMultiFrames@@QAEPAVCSource@@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetSource@CMultiFrames@@QAEPAVCSource@@XZ PROC		; CMultiFrames::GetSource, COMDAT
; _this$ = ecx

; 86   : {

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

; 87   :     return m_Source;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 40 04	 mov	 eax, DWORD PTR [eax+4]

; 88   : }

  0000d	8b e5		 mov	 esp, ebp
  0000f	5d		 pop	 ebp
  00010	c3		 ret	 0
?GetSource@CMultiFrames@@QAEPAVCSource@@XZ ENDP		; CMultiFrames::GetSource
_TEXT	ENDS
PUBLIC	?GetMode@CMultiFrames@@QAE?AW4eMultiFramesMode@@XZ ; CMultiFrames::GetMode
; Function compile flags: /Odtp
;	COMDAT ?GetMode@CMultiFrames@@QAE?AW4eMultiFramesMode@@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetMode@CMultiFrames@@QAE?AW4eMultiFramesMode@@XZ PROC	; CMultiFrames::GetMode, COMDAT
; _this$ = ecx

; 81   : {

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

; 82   :     return m_Mode;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 00		 mov	 eax, DWORD PTR [eax]

; 83   : }

  0000c	8b e5		 mov	 esp, ebp
  0000e	5d		 pop	 ebp
  0000f	c3		 ret	 0
?GetMode@CMultiFrames@@QAE?AW4eMultiFramesMode@@XZ ENDP	; CMultiFrames::GetMode
_TEXT	ENDS
PUBLIC	??1CMultiFrames@@QAE@XZ				; CMultiFrames::~CMultiFrames
; Function compile flags: /Odtp
;	COMDAT ??1CMultiFrames@@QAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??1CMultiFrames@@QAE@XZ PROC				; CMultiFrames::~CMultiFrames, COMDAT
; _this$ = ecx

; 72   : {

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

; 73   :     FreeMemoryBuffer();

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?FreeMemoryBuffer@CMultiFrames@@AAEXXZ ; CMultiFrames::FreeMemoryBuffer

; 74   :     if (m_FrameFilled)

  0000f	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00012	83 78 20 00	 cmp	 DWORD PTR [eax+32], 0
  00016	74 0f		 je	 SHORT $LN2@CMultiFram

; 75   :     {
; 76   :         free(m_FrameFilled);

  00018	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0001b	8b 51 20	 mov	 edx, DWORD PTR [ecx+32]
  0001e	52		 push	 edx
  0001f	e8 00 00 00 00	 call	 _free
  00024	83 c4 04	 add	 esp, 4
$LN2@CMultiFram:

; 77   :     }
; 78   : }

  00027	8b e5		 mov	 esp, ebp
  00029	5d		 pop	 ebp
  0002a	c3		 ret	 0
??1CMultiFrames@@QAE@XZ ENDP				; CMultiFrames::~CMultiFrames
_TEXT	ENDS
PUBLIC	??0CMultiFrames@@QAE@W4eMultiFramesMode@@HHPAVCSource@@@Z ; CMultiFrames::CMultiFrames
; Function compile flags: /Odtp
;	COMDAT ??0CMultiFrames@@QAE@W4eMultiFramesMode@@HHPAVCSource@@@Z
_TEXT	SEGMENT
_this$ = -12						; size = 4
_iHeight$ = -8						; size = 4
_iWidth$ = -4						; size = 4
_eMode$ = 8						; size = 4
_iNbCols$ = 12						; size = 4
_iNbRows$ = 16						; size = 4
_pSource$ = 20						; size = 4
??0CMultiFrames@@QAE@W4eMultiFramesMode@@HHPAVCSource@@@Z PROC ; CMultiFrames::CMultiFrames, COMDAT
; _this$ = ecx

; 52   : {

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

; 53   :     m_Mode = eMode;

  00009	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	8b 4d 08	 mov	 ecx, DWORD PTR _eMode$[ebp]
  0000f	89 08		 mov	 DWORD PTR [eax], ecx

; 54   :     m_NbRows = iNbRows;

  00011	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  00014	8b 45 10	 mov	 eax, DWORD PTR _iNbRows$[ebp]
  00017	89 42 10	 mov	 DWORD PTR [edx+16], eax

; 55   :     m_NbCols = iNbCols;

  0001a	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0001d	8b 55 0c	 mov	 edx, DWORD PTR _iNbCols$[ebp]
  00020	89 51 0c	 mov	 DWORD PTR [ecx+12], edx

; 56   :     m_NbFrames = m_NbRows * m_NbCols;

  00023	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  00026	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00029	8b 50 10	 mov	 edx, DWORD PTR [eax+16]
  0002c	0f af 51 0c	 imul	 edx, DWORD PTR [ecx+12]
  00030	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  00033	89 50 08	 mov	 DWORD PTR [eax+8], edx

; 57   :     // Each frame must have a width multiple of 2
; 58   :     int iWidth = DSCALER_MAX_WIDTH / iNbCols;

  00036	b8 00 0f 00 00	 mov	 eax, 3840		; 00000f00H
  0003b	99		 cdq
  0003c	f7 7d 0c	 idiv	 DWORD PTR _iNbCols$[ebp]
  0003f	89 45 fc	 mov	 DWORD PTR _iWidth$[ebp], eax

; 59   :     iWidth &= 0xfffffffe;

  00042	8b 4d fc	 mov	 ecx, DWORD PTR _iWidth$[ebp]
  00045	83 e1 fe	 and	 ecx, -2			; fffffffeH
  00048	89 4d fc	 mov	 DWORD PTR _iWidth$[ebp], ecx

; 60   :     m_Width = iWidth * iNbCols;

  0004b	8b 55 fc	 mov	 edx, DWORD PTR _iWidth$[ebp]
  0004e	0f af 55 0c	 imul	 edx, DWORD PTR _iNbCols$[ebp]
  00052	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  00055	89 50 14	 mov	 DWORD PTR [eax+20], edx

; 61   :     int iHeight = DSCALER_MAX_HEIGHT / iNbRows;

  00058	b8 70 08 00 00	 mov	 eax, 2160		; 00000870H
  0005d	99		 cdq
  0005e	f7 7d 10	 idiv	 DWORD PTR _iNbRows$[ebp]
  00061	89 45 f8	 mov	 DWORD PTR _iHeight$[ebp], eax

; 62   :     m_Height = iHeight * iNbRows;

  00064	8b 4d f8	 mov	 ecx, DWORD PTR _iHeight$[ebp]
  00067	0f af 4d 10	 imul	 ecx, DWORD PTR _iNbRows$[ebp]
  0006b	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  0006e	89 4a 18	 mov	 DWORD PTR [edx+24], ecx

; 63   :     m_Active = FALSE;

  00071	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  00074	c7 40 28 00 00
	00 00		 mov	 DWORD PTR [eax+40], 0

; 64   :     m_SwitchRequested = FALSE;

  0007b	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0007e	c7 41 2c 00 00
	00 00		 mov	 DWORD PTR [ecx+44], 0

; 65   :     m_MemoryBuffer = NULL;

  00085	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  00088	c7 42 1c 00 00
	00 00		 mov	 DWORD PTR [edx+28], 0

; 66   :     m_FrameFilled = NULL;

  0008f	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  00092	c7 40 20 00 00
	00 00		 mov	 DWORD PTR [eax+32], 0

; 67   :     m_NavigAllowed = FALSE;

  00099	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0009c	c7 41 30 00 00
	00 00		 mov	 DWORD PTR [ecx+48], 0

; 68   :     m_Source = pSource;

  000a3	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  000a6	8b 45 14	 mov	 eax, DWORD PTR _pSource$[ebp]
  000a9	89 42 04	 mov	 DWORD PTR [edx+4], eax

; 69   : }

  000ac	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  000af	8b e5		 mov	 esp, ebp
  000b1	5d		 pop	 ebp
  000b2	c2 10 00	 ret	 16			; 00000010H
??0CMultiFrames@@QAE@W4eMultiFramesMode@@HHPAVCSource@@@Z ENDP ; CMultiFrames::CMultiFrames
PUBLIC	?CopyFrame@CMultiFrames@@AAEXHH@Z		; CMultiFrames::CopyFrame
; Function compile flags: /Odtp
;	COMDAT ?CopyFrame@CMultiFrames@@AAEXHH@Z
_TEXT	SEGMENT
_this$ = -40						; size = 4
_iLine$143353 = -36					; size = 4
_lpFrameSrcBuffer$ = -32				; size = 4
_lpFrameDestBuffer$ = -28				; size = 4
_iFrameDestHeight$ = -24				; size = 4
_iFrameDestWidth$ = -20					; size = 4
_iFrameSrcWidth$ = -16					; size = 4
_iFrameSrcLinePitch$ = -12				; size = 4
_iFrameSrcHeight$ = -8					; size = 4
_iFrameDestLinePitch$ = -4				; size = 4
_iFrameSrc$ = 8						; size = 4
_iFrameDest$ = 12					; size = 4
?CopyFrame@CMultiFrames@@AAEXHH@Z PROC			; CMultiFrames::CopyFrame, COMDAT
; _this$ = ecx

; 690  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 28	 sub	 esp, 40			; 00000028H
  00006	89 4d d8	 mov	 DWORD PTR _this$[ebp], ecx

; 691  :     BYTE* lpFrameSrcBuffer;
; 692  :     int iFrameSrcWidth;
; 693  :     int iFrameSrcHeight;
; 694  :     int iFrameSrcLinePitch;
; 695  :     BYTE* lpFrameDestBuffer;
; 696  :     int iFrameDestWidth;
; 697  :     int iFrameDestHeight;
; 698  :     int iFrameDestLinePitch;
; 699  : 
; 700  :     SelectFrameBuffer(iFrameSrc, FALSE, &lpFrameSrcBuffer, &iFrameSrcLinePitch, &iFrameSrcWidth, &iFrameSrcHeight);

  00009	8d 45 f8	 lea	 eax, DWORD PTR _iFrameSrcHeight$[ebp]
  0000c	50		 push	 eax
  0000d	8d 4d f0	 lea	 ecx, DWORD PTR _iFrameSrcWidth$[ebp]
  00010	51		 push	 ecx
  00011	8d 55 f4	 lea	 edx, DWORD PTR _iFrameSrcLinePitch$[ebp]
  00014	52		 push	 edx
  00015	8d 45 e0	 lea	 eax, DWORD PTR _lpFrameSrcBuffer$[ebp]
  00018	50		 push	 eax
  00019	6a 00		 push	 0
  0001b	8b 4d 08	 mov	 ecx, DWORD PTR _iFrameSrc$[ebp]
  0001e	51		 push	 ecx
  0001f	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  00022	e8 00 00 00 00	 call	 ?SelectFrameBuffer@CMultiFrames@@AAEXHHPAPAEPAH11@Z ; CMultiFrames::SelectFrameBuffer

; 701  :     SelectFrameBuffer(iFrameDest, FALSE, &lpFrameDestBuffer, &iFrameDestLinePitch, &iFrameDestWidth, &iFrameDestHeight);

  00027	8d 55 e8	 lea	 edx, DWORD PTR _iFrameDestHeight$[ebp]
  0002a	52		 push	 edx
  0002b	8d 45 ec	 lea	 eax, DWORD PTR _iFrameDestWidth$[ebp]
  0002e	50		 push	 eax
  0002f	8d 4d fc	 lea	 ecx, DWORD PTR _iFrameDestLinePitch$[ebp]
  00032	51		 push	 ecx
  00033	8d 55 e4	 lea	 edx, DWORD PTR _lpFrameDestBuffer$[ebp]
  00036	52		 push	 edx
  00037	6a 00		 push	 0
  00039	8b 45 0c	 mov	 eax, DWORD PTR _iFrameDest$[ebp]
  0003c	50		 push	 eax
  0003d	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  00040	e8 00 00 00 00	 call	 ?SelectFrameBuffer@CMultiFrames@@AAEXHHPAPAEPAH11@Z ; CMultiFrames::SelectFrameBuffer

; 702  : 
; 703  :     // The source and destination frames must have the same size
; 704  :     if (iFrameSrcWidth == iFrameDestWidth && iFrameSrcHeight == iFrameDestHeight)

  00045	8b 4d f0	 mov	 ecx, DWORD PTR _iFrameSrcWidth$[ebp]
  00048	3b 4d ec	 cmp	 ecx, DWORD PTR _iFrameDestWidth$[ebp]
  0004b	75 4c		 jne	 SHORT $LN5@CopyFrame
  0004d	8b 55 f8	 mov	 edx, DWORD PTR _iFrameSrcHeight$[ebp]
  00050	3b 55 e8	 cmp	 edx, DWORD PTR _iFrameDestHeight$[ebp]
  00053	75 44		 jne	 SHORT $LN5@CopyFrame

; 705  :     {
; 706  :         for (int iLine=0 ; iLine < iFrameSrcHeight ; iLine++)

  00055	c7 45 dc 00 00
	00 00		 mov	 DWORD PTR _iLine$143353[ebp], 0
  0005c	eb 09		 jmp	 SHORT $LN3@CopyFrame
$LN2@CopyFrame:
  0005e	8b 45 dc	 mov	 eax, DWORD PTR _iLine$143353[ebp]
  00061	83 c0 01	 add	 eax, 1
  00064	89 45 dc	 mov	 DWORD PTR _iLine$143353[ebp], eax
$LN3@CopyFrame:
  00067	8b 4d dc	 mov	 ecx, DWORD PTR _iLine$143353[ebp]
  0006a	3b 4d f8	 cmp	 ecx, DWORD PTR _iFrameSrcHeight$[ebp]
  0006d	7d 2a		 jge	 SHORT $LN5@CopyFrame

; 707  :         {
; 708  :             memcpy(lpFrameDestBuffer, lpFrameSrcBuffer, iFrameSrcWidth*2);

  0006f	8b 55 f0	 mov	 edx, DWORD PTR _iFrameSrcWidth$[ebp]
  00072	d1 e2		 shl	 edx, 1
  00074	52		 push	 edx
  00075	8b 45 e0	 mov	 eax, DWORD PTR _lpFrameSrcBuffer$[ebp]
  00078	50		 push	 eax
  00079	8b 4d e4	 mov	 ecx, DWORD PTR _lpFrameDestBuffer$[ebp]
  0007c	51		 push	 ecx
  0007d	e8 00 00 00 00	 call	 _memcpy
  00082	83 c4 0c	 add	 esp, 12			; 0000000cH

; 709  :             lpFrameSrcBuffer += iFrameSrcLinePitch;

  00085	8b 55 e0	 mov	 edx, DWORD PTR _lpFrameSrcBuffer$[ebp]
  00088	03 55 f4	 add	 edx, DWORD PTR _iFrameSrcLinePitch$[ebp]
  0008b	89 55 e0	 mov	 DWORD PTR _lpFrameSrcBuffer$[ebp], edx

; 710  :             lpFrameDestBuffer += iFrameDestLinePitch;

  0008e	8b 45 e4	 mov	 eax, DWORD PTR _lpFrameDestBuffer$[ebp]
  00091	03 45 fc	 add	 eax, DWORD PTR _iFrameDestLinePitch$[ebp]
  00094	89 45 e4	 mov	 DWORD PTR _lpFrameDestBuffer$[ebp], eax

; 711  :         }

  00097	eb c5		 jmp	 SHORT $LN2@CopyFrame
$LN5@CopyFrame:

; 712  :     }
; 713  : }

  00099	8b e5		 mov	 esp, ebp
  0009b	5d		 pop	 ebp
  0009c	c2 08 00	 ret	 8
?CopyFrame@CMultiFrames@@AAEXHH@Z ENDP			; CMultiFrames::CopyFrame
_TEXT	ENDS
PUBLIC	?DrawBorder@CMultiFrames@@AAEXHHHIIII@Z		; CMultiFrames::DrawBorder
; Function compile flags: /Odtp
;	COMDAT ?DrawBorder@CMultiFrames@@AAEXHHHIIII@Z
_TEXT	SEGMENT
_this$ = -32						; size = 4
_lpFrameBuffer$ = -28					; size = 4
_iLine$ = -24						; size = 4
_iPixel$ = -20						; size = 4
_iFrameWidth$ = -16					; size = 4
_lpStartLineBuffer$ = -12				; size = 4
_iFrameHeight$ = -8					; size = 4
_iFrameLinePitch$ = -4					; size = 4
_iFrame$ = 8						; size = 4
_bIncludingExternalBorder$ = 12				; size = 4
_iLuminLevel$ = 16					; size = 4
_iLeftThick$ = 20					; size = 4
_iRightThick$ = 24					; size = 4
_iTopThick$ = 28					; size = 4
_iBottomThick$ = 32					; size = 4
?DrawBorder@CMultiFrames@@AAEXHHHIIII@Z PROC		; CMultiFrames::DrawBorder, COMDAT
; _this$ = ecx

; 591  : {

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

; 592  :     BYTE* lpStartLineBuffer;
; 593  :     BYTE* lpFrameBuffer;
; 594  :     int iFrameWidth;
; 595  :     int iFrameHeight;
; 596  :     int iFrameLinePitch;
; 597  :     int iLine;
; 598  :     int iPixel;
; 599  : 
; 600  :     SelectFrameBuffer(iFrame, bIncludingExternalBorder, &lpFrameBuffer, &iFrameLinePitch, &iFrameWidth, &iFrameHeight);

  00009	8d 45 f8	 lea	 eax, DWORD PTR _iFrameHeight$[ebp]
  0000c	50		 push	 eax
  0000d	8d 4d f0	 lea	 ecx, DWORD PTR _iFrameWidth$[ebp]
  00010	51		 push	 ecx
  00011	8d 55 fc	 lea	 edx, DWORD PTR _iFrameLinePitch$[ebp]
  00014	52		 push	 edx
  00015	8d 45 e4	 lea	 eax, DWORD PTR _lpFrameBuffer$[ebp]
  00018	50		 push	 eax
  00019	8b 4d 0c	 mov	 ecx, DWORD PTR _bIncludingExternalBorder$[ebp]
  0001c	51		 push	 ecx
  0001d	8b 55 08	 mov	 edx, DWORD PTR _iFrame$[ebp]
  00020	52		 push	 edx
  00021	8b 4d e0	 mov	 ecx, DWORD PTR _this$[ebp]
  00024	e8 00 00 00 00	 call	 ?SelectFrameBuffer@CMultiFrames@@AAEXHHPAPAEPAH11@Z ; CMultiFrames::SelectFrameBuffer

; 601  : 
; 602  :     for (iLine=0 ; iLine < iFrameHeight ; iLine++)

  00029	c7 45 e8 00 00
	00 00		 mov	 DWORD PTR _iLine$[ebp], 0
  00030	eb 09		 jmp	 SHORT $LN18@DrawBorder
$LN17@DrawBorder:
  00032	8b 45 e8	 mov	 eax, DWORD PTR _iLine$[ebp]
  00035	83 c0 01	 add	 eax, 1
  00038	89 45 e8	 mov	 DWORD PTR _iLine$[ebp], eax
$LN18@DrawBorder:
  0003b	8b 4d e8	 mov	 ecx, DWORD PTR _iLine$[ebp]
  0003e	3b 4d f8	 cmp	 ecx, DWORD PTR _iFrameHeight$[ebp]
  00041	7d 7d		 jge	 SHORT $LN16@DrawBorder

; 603  :     {
; 604  :         lpStartLineBuffer = lpFrameBuffer + iLine * iFrameLinePitch;

  00043	8b 55 e8	 mov	 edx, DWORD PTR _iLine$[ebp]
  00046	0f af 55 fc	 imul	 edx, DWORD PTR _iFrameLinePitch$[ebp]
  0004a	03 55 e4	 add	 edx, DWORD PTR _lpFrameBuffer$[ebp]
  0004d	89 55 f4	 mov	 DWORD PTR _lpStartLineBuffer$[ebp], edx

; 605  :         // Left border
; 606  :         for (iPixel=0 ; iPixel < iLeftThick ; iPixel++)

  00050	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _iPixel$[ebp], 0
  00057	eb 09		 jmp	 SHORT $LN15@DrawBorder
$LN14@DrawBorder:
  00059	8b 45 ec	 mov	 eax, DWORD PTR _iPixel$[ebp]
  0005c	83 c0 01	 add	 eax, 1
  0005f	89 45 ec	 mov	 DWORD PTR _iPixel$[ebp], eax
$LN15@DrawBorder:
  00062	8b 4d ec	 mov	 ecx, DWORD PTR _iPixel$[ebp]
  00065	3b 4d 14	 cmp	 ecx, DWORD PTR _iLeftThick$[ebp]
  00068	73 19		 jae	 SHORT $LN13@DrawBorder

; 607  :         {
; 608  :             lpStartLineBuffer[iPixel*2] = iLuminLevel;

  0006a	8b 55 ec	 mov	 edx, DWORD PTR _iPixel$[ebp]
  0006d	8b 45 f4	 mov	 eax, DWORD PTR _lpStartLineBuffer$[ebp]
  00070	8a 4d 10	 mov	 cl, BYTE PTR _iLuminLevel$[ebp]
  00073	88 0c 50	 mov	 BYTE PTR [eax+edx*2], cl

; 609  :             lpStartLineBuffer[iPixel*2+1] = 128;

  00076	8b 55 ec	 mov	 edx, DWORD PTR _iPixel$[ebp]
  00079	8b 45 f4	 mov	 eax, DWORD PTR _lpStartLineBuffer$[ebp]
  0007c	c6 44 50 01 80	 mov	 BYTE PTR [eax+edx*2+1], 128 ; 00000080H

; 610  :         }

  00081	eb d6		 jmp	 SHORT $LN14@DrawBorder
$LN13@DrawBorder:

; 611  :         // Right border
; 612  :         for (iPixel=(iFrameWidth-1) ; iPixel>=(iFrameWidth-iRightThick) ; iPixel--)

  00083	8b 4d f0	 mov	 ecx, DWORD PTR _iFrameWidth$[ebp]
  00086	83 e9 01	 sub	 ecx, 1
  00089	89 4d ec	 mov	 DWORD PTR _iPixel$[ebp], ecx
  0008c	eb 09		 jmp	 SHORT $LN12@DrawBorder
$LN11@DrawBorder:
  0008e	8b 55 ec	 mov	 edx, DWORD PTR _iPixel$[ebp]
  00091	83 ea 01	 sub	 edx, 1
  00094	89 55 ec	 mov	 DWORD PTR _iPixel$[ebp], edx
$LN12@DrawBorder:
  00097	8b 45 f0	 mov	 eax, DWORD PTR _iFrameWidth$[ebp]
  0009a	2b 45 18	 sub	 eax, DWORD PTR _iRightThick$[ebp]
  0009d	39 45 ec	 cmp	 DWORD PTR _iPixel$[ebp], eax
  000a0	72 19		 jb	 SHORT $LN10@DrawBorder

; 613  :         {
; 614  :             lpStartLineBuffer[iPixel*2] = iLuminLevel;

  000a2	8b 4d ec	 mov	 ecx, DWORD PTR _iPixel$[ebp]
  000a5	8b 55 f4	 mov	 edx, DWORD PTR _lpStartLineBuffer$[ebp]
  000a8	8a 45 10	 mov	 al, BYTE PTR _iLuminLevel$[ebp]
  000ab	88 04 4a	 mov	 BYTE PTR [edx+ecx*2], al

; 615  :             lpStartLineBuffer[iPixel*2+1] = 128;

  000ae	8b 4d ec	 mov	 ecx, DWORD PTR _iPixel$[ebp]
  000b1	8b 55 f4	 mov	 edx, DWORD PTR _lpStartLineBuffer$[ebp]
  000b4	c6 44 4a 01 80	 mov	 BYTE PTR [edx+ecx*2+1], 128 ; 00000080H

; 616  :         }

  000b9	eb d3		 jmp	 SHORT $LN11@DrawBorder
$LN10@DrawBorder:

; 617  :     }

  000bb	e9 72 ff ff ff	 jmp	 $LN17@DrawBorder
$LN16@DrawBorder:

; 618  :     for (iPixel=0 ; iPixel < iFrameWidth ; iPixel++)

  000c0	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _iPixel$[ebp], 0
  000c7	eb 09		 jmp	 SHORT $LN9@DrawBorder
$LN8@DrawBorder:
  000c9	8b 45 ec	 mov	 eax, DWORD PTR _iPixel$[ebp]
  000cc	83 c0 01	 add	 eax, 1
  000cf	89 45 ec	 mov	 DWORD PTR _iPixel$[ebp], eax
$LN9@DrawBorder:
  000d2	8b 4d ec	 mov	 ecx, DWORD PTR _iPixel$[ebp]
  000d5	3b 4d f0	 cmp	 ecx, DWORD PTR _iFrameWidth$[ebp]
  000d8	0f 8d 8a 00 00
	00		 jge	 $LN19@DrawBorder

; 619  :     {
; 620  :         // Top border
; 621  :         for (iLine=0 ; iLine < iTopThick ; iLine++)

  000de	c7 45 e8 00 00
	00 00		 mov	 DWORD PTR _iLine$[ebp], 0
  000e5	eb 09		 jmp	 SHORT $LN6@DrawBorder
$LN5@DrawBorder:
  000e7	8b 55 e8	 mov	 edx, DWORD PTR _iLine$[ebp]
  000ea	83 c2 01	 add	 edx, 1
  000ed	89 55 e8	 mov	 DWORD PTR _iLine$[ebp], edx
$LN6@DrawBorder:
  000f0	8b 45 e8	 mov	 eax, DWORD PTR _iLine$[ebp]
  000f3	3b 45 1c	 cmp	 eax, DWORD PTR _iTopThick$[ebp]
  000f6	73 26		 jae	 SHORT $LN4@DrawBorder

; 622  :         {
; 623  :             lpStartLineBuffer = lpFrameBuffer + iLine * iFrameLinePitch;

  000f8	8b 4d e8	 mov	 ecx, DWORD PTR _iLine$[ebp]
  000fb	0f af 4d fc	 imul	 ecx, DWORD PTR _iFrameLinePitch$[ebp]
  000ff	03 4d e4	 add	 ecx, DWORD PTR _lpFrameBuffer$[ebp]
  00102	89 4d f4	 mov	 DWORD PTR _lpStartLineBuffer$[ebp], ecx

; 624  :             lpStartLineBuffer[iPixel*2] = iLuminLevel;

  00105	8b 55 ec	 mov	 edx, DWORD PTR _iPixel$[ebp]
  00108	8b 45 f4	 mov	 eax, DWORD PTR _lpStartLineBuffer$[ebp]
  0010b	8a 4d 10	 mov	 cl, BYTE PTR _iLuminLevel$[ebp]
  0010e	88 0c 50	 mov	 BYTE PTR [eax+edx*2], cl

; 625  :             lpStartLineBuffer[iPixel*2+1] = 128;

  00111	8b 55 ec	 mov	 edx, DWORD PTR _iPixel$[ebp]
  00114	8b 45 f4	 mov	 eax, DWORD PTR _lpStartLineBuffer$[ebp]
  00117	c6 44 50 01 80	 mov	 BYTE PTR [eax+edx*2+1], 128 ; 00000080H

; 626  :         }

  0011c	eb c9		 jmp	 SHORT $LN5@DrawBorder
$LN4@DrawBorder:

; 627  :         // Bottom border
; 628  :         for (iLine=(iFrameHeight-1) ; iLine>=(iFrameHeight-iBottomThick) ; iLine--)

  0011e	8b 4d f8	 mov	 ecx, DWORD PTR _iFrameHeight$[ebp]
  00121	83 e9 01	 sub	 ecx, 1
  00124	89 4d e8	 mov	 DWORD PTR _iLine$[ebp], ecx
  00127	eb 09		 jmp	 SHORT $LN3@DrawBorder
$LN2@DrawBorder:
  00129	8b 55 e8	 mov	 edx, DWORD PTR _iLine$[ebp]
  0012c	83 ea 01	 sub	 edx, 1
  0012f	89 55 e8	 mov	 DWORD PTR _iLine$[ebp], edx
$LN3@DrawBorder:
  00132	8b 45 f8	 mov	 eax, DWORD PTR _iFrameHeight$[ebp]
  00135	2b 45 20	 sub	 eax, DWORD PTR _iBottomThick$[ebp]
  00138	39 45 e8	 cmp	 DWORD PTR _iLine$[ebp], eax
  0013b	72 26		 jb	 SHORT $LN1@DrawBorder

; 629  :         {
; 630  :             lpStartLineBuffer = lpFrameBuffer + iLine * iFrameLinePitch;

  0013d	8b 4d e8	 mov	 ecx, DWORD PTR _iLine$[ebp]
  00140	0f af 4d fc	 imul	 ecx, DWORD PTR _iFrameLinePitch$[ebp]
  00144	03 4d e4	 add	 ecx, DWORD PTR _lpFrameBuffer$[ebp]
  00147	89 4d f4	 mov	 DWORD PTR _lpStartLineBuffer$[ebp], ecx

; 631  :             lpStartLineBuffer[iPixel*2] = iLuminLevel;

  0014a	8b 55 ec	 mov	 edx, DWORD PTR _iPixel$[ebp]
  0014d	8b 45 f4	 mov	 eax, DWORD PTR _lpStartLineBuffer$[ebp]
  00150	8a 4d 10	 mov	 cl, BYTE PTR _iLuminLevel$[ebp]
  00153	88 0c 50	 mov	 BYTE PTR [eax+edx*2], cl

; 632  :             lpStartLineBuffer[iPixel*2+1] = 128;

  00156	8b 55 ec	 mov	 edx, DWORD PTR _iPixel$[ebp]
  00159	8b 45 f4	 mov	 eax, DWORD PTR _lpStartLineBuffer$[ebp]
  0015c	c6 44 50 01 80	 mov	 BYTE PTR [eax+edx*2+1], 128 ; 00000080H

; 633  :         }

  00161	eb c6		 jmp	 SHORT $LN2@DrawBorder
$LN1@DrawBorder:

; 634  :     }

  00163	e9 61 ff ff ff	 jmp	 $LN8@DrawBorder
$LN19@DrawBorder:

; 635  : }

  00168	8b e5		 mov	 esp, ebp
  0016a	5d		 pop	 ebp
  0016b	c2 1c 00	 ret	 28			; 0000001cH
?DrawBorder@CMultiFrames@@AAEXHHHIIII@Z ENDP		; CMultiFrames::DrawBorder
PUBLIC	?ResetFrameToBlack@CMultiFrames@@AAEXH@Z	; CMultiFrames::ResetFrameToBlack
; Function compile flags: /Odtp
;	COMDAT ?ResetFrameToBlack@CMultiFrames@@AAEXH@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_iFrame$ = 8						; size = 4
?ResetFrameToBlack@CMultiFrames@@AAEXH@Z PROC		; CMultiFrames::ResetFrameToBlack, COMDAT
; _this$ = ecx

; 717  : {

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

; 718  :     DrawBorder(iFrame, TRUE, LUMIN_BLACK, m_Width / m_NbCols, 0, 0, 0);

  00007	6a 00		 push	 0
  00009	6a 00		 push	 0
  0000b	6a 00		 push	 0
  0000d	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	8b 40 14	 mov	 eax, DWORD PTR [eax+20]
  00016	99		 cdq
  00017	f7 79 0c	 idiv	 DWORD PTR [ecx+12]
  0001a	50		 push	 eax
  0001b	6a 10		 push	 16			; 00000010H
  0001d	6a 01		 push	 1
  0001f	8b 55 08	 mov	 edx, DWORD PTR _iFrame$[ebp]
  00022	52		 push	 edx
  00023	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00026	e8 00 00 00 00	 call	 ?DrawBorder@CMultiFrames@@AAEXHHHIIII@Z ; CMultiFrames::DrawBorder

; 719  : }

  0002b	8b e5		 mov	 esp, ebp
  0002d	5d		 pop	 ebp
  0002e	c2 04 00	 ret	 4
?ResetFrameToBlack@CMultiFrames@@AAEXH@Z ENDP		; CMultiFrames::ResetFrameToBlack
_TEXT	ENDS
PUBLIC	?ShiftFrames@CMultiFrames@@AAEXH@Z		; CMultiFrames::ShiftFrames
; Function compile flags: /Odtp
;	COMDAT ?ShiftFrames@CMultiFrames@@AAEXH@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_i$ = -4						; size = 4
_iDeltaFrames$ = 8					; size = 4
?ShiftFrames@CMultiFrames@@AAEXH@Z PROC			; CMultiFrames::ShiftFrames, COMDAT
; _this$ = ecx

; 654  : {

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

; 655  :     int i;
; 656  : 
; 657  :     if ((iDeltaFrames > 0) && (iDeltaFrames < m_NbFrames))

  0000a	83 7d 08 00	 cmp	 DWORD PTR _iDeltaFrames$[ebp], 0
  0000e	0f 8e b6 00 00
	00		 jle	 $LN15@ShiftFrame@2
  00014	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00017	8b 4d 08	 mov	 ecx, DWORD PTR _iDeltaFrames$[ebp]
  0001a	3b 48 08	 cmp	 ecx, DWORD PTR [eax+8]
  0001d	0f 8d a7 00 00
	00		 jge	 $LN15@ShiftFrame@2

; 658  :     {
; 659  :         for (i=0 ; i<(m_NbFrames-iDeltaFrames) ; i++)

  00023	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  0002a	eb 09		 jmp	 SHORT $LN14@ShiftFrame@2
$LN13@ShiftFrame@2:
  0002c	8b 55 fc	 mov	 edx, DWORD PTR _i$[ebp]
  0002f	83 c2 01	 add	 edx, 1
  00032	89 55 fc	 mov	 DWORD PTR _i$[ebp], edx
$LN14@ShiftFrame@2:
  00035	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00038	8b 48 08	 mov	 ecx, DWORD PTR [eax+8]
  0003b	2b 4d 08	 sub	 ecx, DWORD PTR _iDeltaFrames$[ebp]
  0003e	39 4d fc	 cmp	 DWORD PTR _i$[ebp], ecx
  00041	7d 30		 jge	 SHORT $LN12@ShiftFrame@2

; 660  :         {
; 661  :             CopyFrame(i+iDeltaFrames, i);

  00043	8b 55 fc	 mov	 edx, DWORD PTR _i$[ebp]
  00046	52		 push	 edx
  00047	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  0004a	03 45 08	 add	 eax, DWORD PTR _iDeltaFrames$[ebp]
  0004d	50		 push	 eax
  0004e	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00051	e8 00 00 00 00	 call	 ?CopyFrame@CMultiFrames@@AAEXHH@Z ; CMultiFrames::CopyFrame

; 662  :             m_FrameFilled[i] = m_FrameFilled[i+iDeltaFrames];

  00056	8b 4d fc	 mov	 ecx, DWORD PTR _i$[ebp]
  00059	03 4d 08	 add	 ecx, DWORD PTR _iDeltaFrames$[ebp]
  0005c	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  0005f	8b 42 20	 mov	 eax, DWORD PTR [edx+32]
  00062	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00065	8b 52 20	 mov	 edx, DWORD PTR [edx+32]
  00068	8b 75 fc	 mov	 esi, DWORD PTR _i$[ebp]
  0006b	8b 04 88	 mov	 eax, DWORD PTR [eax+ecx*4]
  0006e	89 04 b2	 mov	 DWORD PTR [edx+esi*4], eax

; 663  :         }

  00071	eb b9		 jmp	 SHORT $LN13@ShiftFrame@2
$LN12@ShiftFrame@2:

; 664  :         for (i=(m_NbFrames-iDeltaFrames) ; i<m_NbFrames ; i++)

  00073	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00076	8b 51 08	 mov	 edx, DWORD PTR [ecx+8]
  00079	2b 55 08	 sub	 edx, DWORD PTR _iDeltaFrames$[ebp]
  0007c	89 55 fc	 mov	 DWORD PTR _i$[ebp], edx
  0007f	eb 09		 jmp	 SHORT $LN11@ShiftFrame@2
$LN10@ShiftFrame@2:
  00081	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  00084	83 c0 01	 add	 eax, 1
  00087	89 45 fc	 mov	 DWORD PTR _i$[ebp], eax
$LN11@ShiftFrame@2:
  0008a	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0008d	8b 55 fc	 mov	 edx, DWORD PTR _i$[ebp]
  00090	3b 51 08	 cmp	 edx, DWORD PTR [ecx+8]
  00093	7d 1e		 jge	 SHORT $LN9@ShiftFrame@2

; 665  :         {
; 666  :             ResetFrameToBlack(i);

  00095	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  00098	50		 push	 eax
  00099	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0009c	e8 00 00 00 00	 call	 ?ResetFrameToBlack@CMultiFrames@@AAEXH@Z ; CMultiFrames::ResetFrameToBlack

; 667  :             m_FrameFilled[i] = -1;

  000a1	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  000a4	8b 51 20	 mov	 edx, DWORD PTR [ecx+32]
  000a7	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  000aa	c7 04 82 ff ff
	ff ff		 mov	 DWORD PTR [edx+eax*4], -1

; 668  :         }

  000b1	eb ce		 jmp	 SHORT $LN10@ShiftFrame@2
$LN9@ShiftFrame@2:

; 669  :         m_CurrentFrame = m_NbFrames - 1 - iDeltaFrames;

  000b3	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  000b6	8b 51 08	 mov	 edx, DWORD PTR [ecx+8]
  000b9	83 ea 01	 sub	 edx, 1
  000bc	2b 55 08	 sub	 edx, DWORD PTR _iDeltaFrames$[ebp]
  000bf	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  000c2	89 50 24	 mov	 DWORD PTR [eax+36], edx
  000c5	e9 b4 00 00 00	 jmp	 $LN16@ShiftFrame@2
$LN15@ShiftFrame@2:

; 670  :     }
; 671  :     else if ((iDeltaFrames < 0) && (-iDeltaFrames < m_NbFrames))

  000ca	83 7d 08 00	 cmp	 DWORD PTR _iDeltaFrames$[ebp], 0
  000ce	0f 8d aa 00 00
	00		 jge	 $LN16@ShiftFrame@2
  000d4	8b 4d 08	 mov	 ecx, DWORD PTR _iDeltaFrames$[ebp]
  000d7	f7 d9		 neg	 ecx
  000d9	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  000dc	3b 4a 08	 cmp	 ecx, DWORD PTR [edx+8]
  000df	0f 8d 99 00 00
	00		 jge	 $LN16@ShiftFrame@2

; 672  :     {
; 673  :         iDeltaFrames *= -1;

  000e5	8b 45 08	 mov	 eax, DWORD PTR _iDeltaFrames$[ebp]
  000e8	6b c0 ff	 imul	 eax, -1
  000eb	89 45 08	 mov	 DWORD PTR _iDeltaFrames$[ebp], eax

; 674  :         for (i=(m_NbFrames-1) ; i>=iDeltaFrames ; i--)

  000ee	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  000f1	8b 51 08	 mov	 edx, DWORD PTR [ecx+8]
  000f4	83 ea 01	 sub	 edx, 1
  000f7	89 55 fc	 mov	 DWORD PTR _i$[ebp], edx
  000fa	eb 09		 jmp	 SHORT $LN6@ShiftFrame@2
$LN5@ShiftFrame@2:
  000fc	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  000ff	83 e8 01	 sub	 eax, 1
  00102	89 45 fc	 mov	 DWORD PTR _i$[ebp], eax
$LN6@ShiftFrame@2:
  00105	8b 4d fc	 mov	 ecx, DWORD PTR _i$[ebp]
  00108	3b 4d 08	 cmp	 ecx, DWORD PTR _iDeltaFrames$[ebp]
  0010b	7c 30		 jl	 SHORT $LN4@ShiftFrame@2

; 675  :         {
; 676  :             CopyFrame(i-iDeltaFrames, i);

  0010d	8b 55 fc	 mov	 edx, DWORD PTR _i$[ebp]
  00110	52		 push	 edx
  00111	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  00114	2b 45 08	 sub	 eax, DWORD PTR _iDeltaFrames$[ebp]
  00117	50		 push	 eax
  00118	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0011b	e8 00 00 00 00	 call	 ?CopyFrame@CMultiFrames@@AAEXHH@Z ; CMultiFrames::CopyFrame

; 677  :             m_FrameFilled[i] = m_FrameFilled[i-iDeltaFrames];

  00120	8b 4d fc	 mov	 ecx, DWORD PTR _i$[ebp]
  00123	2b 4d 08	 sub	 ecx, DWORD PTR _iDeltaFrames$[ebp]
  00126	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00129	8b 42 20	 mov	 eax, DWORD PTR [edx+32]
  0012c	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  0012f	8b 52 20	 mov	 edx, DWORD PTR [edx+32]
  00132	8b 75 fc	 mov	 esi, DWORD PTR _i$[ebp]
  00135	8b 04 88	 mov	 eax, DWORD PTR [eax+ecx*4]
  00138	89 04 b2	 mov	 DWORD PTR [edx+esi*4], eax

; 678  :         }

  0013b	eb bf		 jmp	 SHORT $LN5@ShiftFrame@2
$LN4@ShiftFrame@2:

; 679  :         for (i=(iDeltaFrames-1) ; i>=0 ; i--)

  0013d	8b 4d 08	 mov	 ecx, DWORD PTR _iDeltaFrames$[ebp]
  00140	83 e9 01	 sub	 ecx, 1
  00143	89 4d fc	 mov	 DWORD PTR _i$[ebp], ecx
  00146	eb 09		 jmp	 SHORT $LN3@ShiftFrame@2
$LN2@ShiftFrame@2:
  00148	8b 55 fc	 mov	 edx, DWORD PTR _i$[ebp]
  0014b	83 ea 01	 sub	 edx, 1
  0014e	89 55 fc	 mov	 DWORD PTR _i$[ebp], edx
$LN3@ShiftFrame@2:
  00151	83 7d fc 00	 cmp	 DWORD PTR _i$[ebp], 0
  00155	7c 1e		 jl	 SHORT $LN1@ShiftFrame@2

; 680  :         {
; 681  :             ResetFrameToBlack(i);

  00157	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  0015a	50		 push	 eax
  0015b	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0015e	e8 00 00 00 00	 call	 ?ResetFrameToBlack@CMultiFrames@@AAEXH@Z ; CMultiFrames::ResetFrameToBlack

; 682  :             m_FrameFilled[i] = -1;

  00163	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00166	8b 51 20	 mov	 edx, DWORD PTR [ecx+32]
  00169	8b 45 fc	 mov	 eax, DWORD PTR _i$[ebp]
  0016c	c7 04 82 ff ff
	ff ff		 mov	 DWORD PTR [edx+eax*4], -1

; 683  :         }

  00173	eb d3		 jmp	 SHORT $LN2@ShiftFrame@2
$LN1@ShiftFrame@2:

; 684  :         m_CurrentFrame = iDeltaFrames;

  00175	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00178	8b 55 08	 mov	 edx, DWORD PTR _iDeltaFrames$[ebp]
  0017b	89 51 24	 mov	 DWORD PTR [ecx+36], edx
$LN16@ShiftFrame@2:

; 685  :     }
; 686  : }

  0017e	5e		 pop	 esi
  0017f	8b e5		 mov	 esp, ebp
  00181	5d		 pop	 ebp
  00182	c2 04 00	 ret	 4
?ShiftFrames@CMultiFrames@@AAEXH@Z ENDP			; CMultiFrames::ShiftFrames
_TEXT	ENDS
PUBLIC	?DrawBorders@CMultiFrames@@AAEXXZ		; CMultiFrames::DrawBorders
; Function compile flags: /Odtp
;	COMDAT ?DrawBorders@CMultiFrames@@AAEXXZ
_TEXT	SEGMENT
_this$ = -8						; size = 4
_i$143315 = -4						; size = 4
?DrawBorders@CMultiFrames@@AAEXXZ PROC			; CMultiFrames::DrawBorders, COMDAT
; _this$ = ecx

; 640  : {

  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

; 641  :     for (int i=0 ; i < m_NbFrames ; i++)

  00009	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _i$143315[ebp], 0
  00010	eb 09		 jmp	 SHORT $LN3@DrawBorder@2
$LN2@DrawBorder@2:
  00012	8b 45 fc	 mov	 eax, DWORD PTR _i$143315[ebp]
  00015	83 c0 01	 add	 eax, 1
  00018	89 45 fc	 mov	 DWORD PTR _i$143315[ebp], eax
$LN3@DrawBorder@2:
  0001b	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0001e	8b 55 fc	 mov	 edx, DWORD PTR _i$143315[ebp]
  00021	3b 51 08	 cmp	 edx, DWORD PTR [ecx+8]
  00024	7d 2f		 jge	 SHORT $LN4@DrawBorder@2

; 642  :     {
; 643  :         DrawBorder(i, TRUE, (i == m_CurrentFrame) ? LUMIN_CURRENT : LUMIN_NOT_CURRENT, LEFT_BORDER, RIGHT_BORDER, TOP_BORDER, BOTTOM_BORDER);

  00026	6a 02		 push	 2
  00028	6a 02		 push	 2
  0002a	6a 02		 push	 2
  0002c	6a 02		 push	 2
  0002e	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00031	8b 4d fc	 mov	 ecx, DWORD PTR _i$143315[ebp]
  00034	2b 48 24	 sub	 ecx, DWORD PTR [eax+36]
  00037	f7 d9		 neg	 ecx
  00039	1b c9		 sbb	 ecx, ecx
  0003b	83 e1 95	 and	 ecx, -107		; ffffff95H
  0003e	81 c1 eb 00 00
	00		 add	 ecx, 235		; 000000ebH
  00044	51		 push	 ecx
  00045	6a 01		 push	 1
  00047	8b 55 fc	 mov	 edx, DWORD PTR _i$143315[ebp]
  0004a	52		 push	 edx
  0004b	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0004e	e8 00 00 00 00	 call	 ?DrawBorder@CMultiFrames@@AAEXHHHIIII@Z ; CMultiFrames::DrawBorder
  00053	eb bd		 jmp	 SHORT $LN2@DrawBorder@2
$LN4@DrawBorder@2:

; 644  :     }
; 645  : }

  00055	8b e5		 mov	 esp, ebp
  00057	5d		 pop	 ebp
  00058	c3		 ret	 0
?DrawBorders@CMultiFrames@@AAEXXZ ENDP			; CMultiFrames::DrawBorders
_TEXT	ENDS
PUBLIC	?Reset@CMultiFrames@@QAEXXZ			; CMultiFrames::Reset
; Function compile flags: /Odtp
;	COMDAT ?Reset@CMultiFrames@@QAEXXZ
_TEXT	SEGMENT
_this$ = -8						; size = 4
_i$143133 = -4						; size = 4
?Reset@CMultiFrames@@QAEXXZ PROC			; CMultiFrames::Reset, COMDAT
; _this$ = ecx

; 172  : {

  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

; 173  :     if (!m_Active)

  00009	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	83 78 28 00	 cmp	 DWORD PTR [eax+40], 0
  00010	75 02		 jne	 SHORT $LN4@Reset@4

; 174  :     {
; 175  :         return;

  00012	eb 77		 jmp	 SHORT $LN5@Reset@4
$LN4@Reset@4:

; 176  :     }
; 177  : 
; 178  :     for (int i=0 ; i < m_NbFrames ; i++)

  00014	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _i$143133[ebp], 0
  0001b	eb 09		 jmp	 SHORT $LN3@Reset@4
$LN2@Reset@4:
  0001d	8b 4d fc	 mov	 ecx, DWORD PTR _i$143133[ebp]
  00020	83 c1 01	 add	 ecx, 1
  00023	89 4d fc	 mov	 DWORD PTR _i$143133[ebp], ecx
$LN3@Reset@4:
  00026	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00029	8b 45 fc	 mov	 eax, DWORD PTR _i$143133[ebp]
  0002c	3b 42 08	 cmp	 eax, DWORD PTR [edx+8]
  0002f	7d 1e		 jge	 SHORT $LN1@Reset@4

; 179  :     {
; 180  :         ResetFrameToBlack(i);

  00031	8b 4d fc	 mov	 ecx, DWORD PTR _i$143133[ebp]
  00034	51		 push	 ecx
  00035	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00038	e8 00 00 00 00	 call	 ?ResetFrameToBlack@CMultiFrames@@AAEXH@Z ; CMultiFrames::ResetFrameToBlack

; 181  :         m_FrameFilled[i] = -1;

  0003d	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00040	8b 42 20	 mov	 eax, DWORD PTR [edx+32]
  00043	8b 4d fc	 mov	 ecx, DWORD PTR _i$143133[ebp]
  00046	c7 04 88 ff ff
	ff ff		 mov	 DWORD PTR [eax+ecx*4], -1

; 182  :     }

  0004d	eb ce		 jmp	 SHORT $LN2@Reset@4
$LN1@Reset@4:

; 183  :     m_CurrentFrame = 0;

  0004f	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00052	c7 42 24 00 00
	00 00		 mov	 DWORD PTR [edx+36], 0

; 184  :     DrawBorder(m_CurrentFrame, TRUE, LUMIN_CURRENT, LEFT_BORDER, RIGHT_BORDER, TOP_BORDER, BOTTOM_BORDER);

  00059	6a 02		 push	 2
  0005b	6a 02		 push	 2
  0005d	6a 02		 push	 2
  0005f	6a 02		 push	 2
  00061	68 eb 00 00 00	 push	 235			; 000000ebH
  00066	6a 01		 push	 1
  00068	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0006b	8b 48 24	 mov	 ecx, DWORD PTR [eax+36]
  0006e	51		 push	 ecx
  0006f	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00072	e8 00 00 00 00	 call	 ?DrawBorder@CMultiFrames@@AAEXHHHIIII@Z ; CMultiFrames::DrawBorder

; 185  :     m_NavigAllowed = FALSE;

  00077	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  0007a	c7 42 30 00 00
	00 00		 mov	 DWORD PTR [edx+48], 0

; 186  :     m_ContentChanged = TRUE;

  00081	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00084	c7 40 40 01 00
	00 00		 mov	 DWORD PTR [eax+64], 1
$LN5@Reset@4:

; 187  : }

  0008b	8b e5		 mov	 esp, ebp
  0008d	5d		 pop	 ebp
  0008e	c3		 ret	 0
?Reset@CMultiFrames@@QAEXXZ ENDP			; CMultiFrames::Reset
PUBLIC	?AllocateMemoryBuffer@CMultiFrames@@AAEXXZ	; CMultiFrames::AllocateMemoryBuffer
; Function compile flags: /Odtp
;	COMDAT ?AllocateMemoryBuffer@CMultiFrames@@AAEXXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?AllocateMemoryBuffer@CMultiFrames@@AAEXXZ PROC		; CMultiFrames::AllocateMemoryBuffer, COMDAT
; _this$ = ecx

; 545  : {

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

; 546  :     if (m_MemoryBuffer == NULL)

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	83 78 1c 00	 cmp	 DWORD PTR [eax+28], 0
  0000e	75 38		 jne	 SHORT $LN3@AllocateMe

; 547  :     {
; 548  :         m_MemoryBuffer = (BYTE*)malloc(m_Width * m_Height * 2 + 16);

  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00016	8b 41 14	 mov	 eax, DWORD PTR [ecx+20]
  00019	0f af 42 18	 imul	 eax, DWORD PTR [edx+24]
  0001d	8d 4c 00 10	 lea	 ecx, DWORD PTR [eax+eax+16]
  00021	51		 push	 ecx
  00022	e8 00 00 00 00	 call	 _malloc
  00027	83 c4 04	 add	 esp, 4
  0002a	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  0002d	89 42 1c	 mov	 DWORD PTR [edx+28], eax

; 549  :         if (m_MemoryBuffer == NULL)

  00030	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00033	83 78 1c 00	 cmp	 DWORD PTR [eax+28], 0
  00037	75 0f		 jne	 SHORT $LN3@AllocateMe

; 550  :         {
; 551  :            LOG(1, _T("Couldn't create additional buffer for multiple frames output"));

  00039	68 00 00 00 00	 push	 OFFSET ??_C@_1HK@JABJLPKB@?$AAC?$AAo?$AAu?$AAl?$AAd?$AAn?$AA?8?$AAt?$AA?5?$AAc?$AAr?$AAe?$AAa?$AAt?$AAe?$AA?5?$AAa?$AAd?$AAd?$AAi?$AAt?$AAi?$AAo?$AAn?$AAa?$AAl?$AA?5?$AAb?$AAu?$AAf?$AAf?$AAe@
  0003e	6a 01		 push	 1
  00040	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00045	83 c4 08	 add	 esp, 8
$LN3@AllocateMe:

; 552  :         }
; 553  :     }
; 554  : }

  00048	8b e5		 mov	 esp, ebp
  0004a	5d		 pop	 ebp
  0004b	c3		 ret	 0
?AllocateMemoryBuffer@CMultiFrames@@AAEXXZ ENDP		; CMultiFrames::AllocateMemoryBuffer
_TEXT	ENDS
PUBLIC	?UpdateFrame@CMultiFrames@@QAEXPAUTDeinterlaceInfo@@PAHPAPAE1@Z ; CMultiFrames::UpdateFrame
; Function compile flags: /Odtp
;	COMDAT ?UpdateFrame@CMultiFrames@@QAEXPAUTDeinterlaceInfo@@PAHPAPAE1@Z
_TEXT	SEGMENT
tv194 = -48						; size = 4
tv185 = -44						; size = 4
tv76 = -40						; size = 4
_this$ = -36						; size = 4
_i$143220 = -32						; size = 4
_iUpdHeight$143208 = -28				; size = 4
_iDelta$143209 = -24					; size = 4
_iUpdWidth$143207 = -20					; size = 4
_lpFrameBuffer$ = -16					; size = 4
_iFrameWidth$ = -12					; size = 4
_iFrameHeight$ = -8					; size = 4
_iFrameLinePitch$ = -4					; size = 4
_pInfo$ = 8						; size = 4
_bUseExtraBuffer$ = 12					; size = 4
_lpBuffer$ = 16						; size = 4
_Pitch$ = 20						; size = 4
?UpdateFrame@CMultiFrames@@QAEXPAUTDeinterlaceInfo@@PAHPAPAE1@Z PROC ; CMultiFrames::UpdateFrame, COMDAT
; _this$ = ecx

; 372  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 30	 sub	 esp, 48			; 00000030H
  00006	56		 push	 esi
  00007	89 4d dc	 mov	 DWORD PTR _this$[ebp], ecx

; 373  :     BYTE* lpFrameBuffer;
; 374  :     int iFrameWidth;
; 375  :     int iFrameHeight;
; 376  :     int iFrameLinePitch;
; 377  : 
; 378  :     if (!m_Active)

  0000a	8b 45 dc	 mov	 eax, DWORD PTR _this$[ebp]
  0000d	83 78 28 00	 cmp	 DWORD PTR [eax+40], 0
  00011	75 17		 jne	 SHORT $LN16@UpdateFram

; 379  :     {
; 380  :         *lpBuffer = NULL;

  00013	8b 4d 10	 mov	 ecx, DWORD PTR _lpBuffer$[ebp]
  00016	c7 01 00 00 00
	00		 mov	 DWORD PTR [ecx], 0

; 381  :         *Pitch = 0;

  0001c	8b 55 14	 mov	 edx, DWORD PTR _Pitch$[ebp]
  0001f	c7 02 00 00 00
	00		 mov	 DWORD PTR [edx], 0

; 382  :         return;

  00025	e9 fd 02 00 00	 jmp	 $LN17@UpdateFram
$LN16@UpdateFram:

; 383  :     }
; 384  : 
; 385  :     // Retrieve the buffer corresponding to the frame in the global multiple frames buffer (without the borders)
; 386  :     SelectFrameBuffer(m_CurrentFrame, FALSE, &lpFrameBuffer, &iFrameLinePitch, &iFrameWidth, &iFrameHeight);

  0002a	8d 45 f8	 lea	 eax, DWORD PTR _iFrameHeight$[ebp]
  0002d	50		 push	 eax
  0002e	8d 4d f4	 lea	 ecx, DWORD PTR _iFrameWidth$[ebp]
  00031	51		 push	 ecx
  00032	8d 55 fc	 lea	 edx, DWORD PTR _iFrameLinePitch$[ebp]
  00035	52		 push	 edx
  00036	8d 45 f0	 lea	 eax, DWORD PTR _lpFrameBuffer$[ebp]
  00039	50		 push	 eax
  0003a	6a 00		 push	 0
  0003c	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  0003f	8b 51 24	 mov	 edx, DWORD PTR [ecx+36]
  00042	52		 push	 edx
  00043	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  00046	e8 00 00 00 00	 call	 ?SelectFrameBuffer@CMultiFrames@@AAEXHHPAPAEPAH11@Z ; CMultiFrames::SelectFrameBuffer

; 387  : 
; 388  :     // Copy (with resize) the input picture into its frame
; 389  :     if(!GetActiveOutput()->Overlay_Lock_Back_Buffer(pInfo, *bUseExtraBuffer))

  0004b	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  00050	89 45 d8	 mov	 DWORD PTR tv76[ebp], eax
  00053	8b 45 0c	 mov	 eax, DWORD PTR _bUseExtraBuffer$[ebp]
  00056	8b 08		 mov	 ecx, DWORD PTR [eax]
  00058	51		 push	 ecx
  00059	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  0005c	52		 push	 edx
  0005d	8b 45 d8	 mov	 eax, DWORD PTR tv76[ebp]
  00060	8b 10		 mov	 edx, DWORD PTR [eax]
  00062	8b 4d d8	 mov	 ecx, DWORD PTR tv76[ebp]
  00065	8b 42 40	 mov	 eax, DWORD PTR [edx+64]
  00068	ff d0		 call	 eax
  0006a	85 c0		 test	 eax, eax
  0006c	75 05		 jne	 SHORT $LN15@UpdateFram

; 390  :     {
; 391  :         return;

  0006e	e9 b4 02 00 00	 jmp	 $LN17@UpdateFram
$LN15@UpdateFram:

; 392  :     }
; 393  : 
; 394  :     // we need to ensure that the back buffer is always unlocked
; 395  : 
; 396  :     if (m_Source->HasSquarePixels())

  00073	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  00076	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  00079	8b 45 dc	 mov	 eax, DWORD PTR _this$[ebp]
  0007c	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  0007f	8b 12		 mov	 edx, DWORD PTR [edx]
  00081	8b 82 ac 00 00
	00		 mov	 eax, DWORD PTR [edx+172]
  00087	ff d0		 call	 eax
  00089	85 c0		 test	 eax, eax
  0008b	0f 84 1b 01 00
	00		 je	 $LN14@UpdateFram

; 397  :     {
; 398  :         // Keep the original ratio
; 399  :         int iUpdWidth;
; 400  :         int iUpdHeight;
; 401  :         int iDelta;
; 402  :         if ((pInfo->FrameWidth - iFrameWidth) > (pInfo->FrameHeight - iFrameHeight))

  00091	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  00094	8b 51 4c	 mov	 edx, DWORD PTR [ecx+76]
  00097	2b 55 f4	 sub	 edx, DWORD PTR _iFrameWidth$[ebp]
  0009a	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  0009d	8b 48 50	 mov	 ecx, DWORD PTR [eax+80]
  000a0	2b 4d f8	 sub	 ecx, DWORD PTR _iFrameHeight$[ebp]
  000a3	3b d1		 cmp	 edx, ecx
  000a5	7e 79		 jle	 SHORT $LN13@UpdateFram

; 403  :         {
; 404  :             iUpdHeight = iFrameWidth * pInfo->FrameHeight / pInfo->FrameWidth;

  000a7	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  000aa	8b 45 f4	 mov	 eax, DWORD PTR _iFrameWidth$[ebp]
  000ad	0f af 42 50	 imul	 eax, DWORD PTR [edx+80]
  000b1	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  000b4	99		 cdq
  000b5	f7 79 4c	 idiv	 DWORD PTR [ecx+76]
  000b8	89 45 e4	 mov	 DWORD PTR _iUpdHeight$143208[ebp], eax

; 405  :             if (iUpdHeight > iFrameHeight)

  000bb	8b 55 e4	 mov	 edx, DWORD PTR _iUpdHeight$143208[ebp]
  000be	3b 55 f8	 cmp	 edx, DWORD PTR _iFrameHeight$[ebp]
  000c1	7e 06		 jle	 SHORT $LN12@UpdateFram

; 406  :             {
; 407  :                 iUpdHeight = iFrameHeight;

  000c3	8b 45 f8	 mov	 eax, DWORD PTR _iFrameHeight$[ebp]
  000c6	89 45 e4	 mov	 DWORD PTR _iUpdHeight$143208[ebp], eax
$LN12@UpdateFram:

; 408  :             }
; 409  :             iDelta = iFrameHeight - iUpdHeight;

  000c9	8b 4d f8	 mov	 ecx, DWORD PTR _iFrameHeight$[ebp]
  000cc	2b 4d e4	 sub	 ecx, DWORD PTR _iUpdHeight$143208[ebp]
  000cf	89 4d e8	 mov	 DWORD PTR _iDelta$143209[ebp], ecx

; 410  : 
; 411  :             // Add a black border at top and bottom if necessary
; 412  :             DrawBorder(m_CurrentFrame, FALSE, LUMIN_BLACK, 0, 0, iDelta / 2, iFrameHeight - iUpdHeight - (iDelta / 2));

  000d2	8b 4d f8	 mov	 ecx, DWORD PTR _iFrameHeight$[ebp]
  000d5	2b 4d e4	 sub	 ecx, DWORD PTR _iUpdHeight$143208[ebp]
  000d8	8b 45 e8	 mov	 eax, DWORD PTR _iDelta$143209[ebp]
  000db	99		 cdq
  000dc	2b c2		 sub	 eax, edx
  000de	d1 f8		 sar	 eax, 1
  000e0	2b c8		 sub	 ecx, eax
  000e2	51		 push	 ecx
  000e3	8b 45 e8	 mov	 eax, DWORD PTR _iDelta$143209[ebp]
  000e6	99		 cdq
  000e7	2b c2		 sub	 eax, edx
  000e9	d1 f8		 sar	 eax, 1
  000eb	50		 push	 eax
  000ec	6a 00		 push	 0
  000ee	6a 00		 push	 0
  000f0	6a 10		 push	 16			; 00000010H
  000f2	6a 00		 push	 0
  000f4	8b 55 dc	 mov	 edx, DWORD PTR _this$[ebp]
  000f7	8b 42 24	 mov	 eax, DWORD PTR [edx+36]
  000fa	50		 push	 eax
  000fb	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  000fe	e8 00 00 00 00	 call	 ?DrawBorder@CMultiFrames@@AAEXHHHIIII@Z ; CMultiFrames::DrawBorder

; 413  : 
; 414  :             // Center the picture in the frame
; 415  :             lpFrameBuffer += (iDelta / 2) * iFrameLinePitch;

  00103	8b 45 e8	 mov	 eax, DWORD PTR _iDelta$143209[ebp]
  00106	99		 cdq
  00107	2b c2		 sub	 eax, edx
  00109	d1 f8		 sar	 eax, 1
  0010b	0f af 45 fc	 imul	 eax, DWORD PTR _iFrameLinePitch$[ebp]
  0010f	03 45 f0	 add	 eax, DWORD PTR _lpFrameBuffer$[ebp]
  00112	89 45 f0	 mov	 DWORD PTR _lpFrameBuffer$[ebp], eax

; 416  : 
; 417  :             iFrameHeight = iUpdHeight;

  00115	8b 4d e4	 mov	 ecx, DWORD PTR _iUpdHeight$143208[ebp]
  00118	89 4d f8	 mov	 DWORD PTR _iFrameHeight$[ebp], ecx

; 418  :         }
; 419  :         else

  0011b	e9 8c 00 00 00	 jmp	 $LN14@UpdateFram
$LN13@UpdateFram:

; 420  :         {
; 421  :             iUpdWidth = iFrameHeight * pInfo->FrameWidth / pInfo->FrameHeight;

  00120	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  00123	8b 45 f8	 mov	 eax, DWORD PTR _iFrameHeight$[ebp]
  00126	0f af 42 4c	 imul	 eax, DWORD PTR [edx+76]
  0012a	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  0012d	99		 cdq
  0012e	f7 79 50	 idiv	 DWORD PTR [ecx+80]
  00131	89 45 ec	 mov	 DWORD PTR _iUpdWidth$143207[ebp], eax

; 422  :             iUpdWidth &= 0xfffffffe;

  00134	8b 55 ec	 mov	 edx, DWORD PTR _iUpdWidth$143207[ebp]
  00137	83 e2 fe	 and	 edx, -2			; fffffffeH
  0013a	89 55 ec	 mov	 DWORD PTR _iUpdWidth$143207[ebp], edx

; 423  :             if (iUpdWidth > iFrameWidth)

  0013d	8b 45 ec	 mov	 eax, DWORD PTR _iUpdWidth$143207[ebp]
  00140	3b 45 f4	 cmp	 eax, DWORD PTR _iFrameWidth$[ebp]
  00143	7e 06		 jle	 SHORT $LN10@UpdateFram

; 424  :             {
; 425  :                 iUpdWidth = iFrameWidth;

  00145	8b 4d f4	 mov	 ecx, DWORD PTR _iFrameWidth$[ebp]
  00148	89 4d ec	 mov	 DWORD PTR _iUpdWidth$143207[ebp], ecx
$LN10@UpdateFram:

; 426  :             }
; 427  :             iDelta = iFrameWidth - iUpdWidth;

  0014b	8b 55 f4	 mov	 edx, DWORD PTR _iFrameWidth$[ebp]
  0014e	2b 55 ec	 sub	 edx, DWORD PTR _iUpdWidth$143207[ebp]
  00151	89 55 e8	 mov	 DWORD PTR _iDelta$143209[ebp], edx

; 428  : 
; 429  :             // Add a black border at left and right if necessary
; 430  :             DrawBorder(m_CurrentFrame, FALSE, LUMIN_BLACK, (iDelta / 4) * 2, iFrameWidth - iUpdWidth - ((iDelta / 4) * 2), 0, 0);

  00154	6a 00		 push	 0
  00156	6a 00		 push	 0
  00158	8b 4d f4	 mov	 ecx, DWORD PTR _iFrameWidth$[ebp]
  0015b	2b 4d ec	 sub	 ecx, DWORD PTR _iUpdWidth$143207[ebp]
  0015e	8b 45 e8	 mov	 eax, DWORD PTR _iDelta$143209[ebp]
  00161	99		 cdq
  00162	83 e2 03	 and	 edx, 3
  00165	03 c2		 add	 eax, edx
  00167	c1 f8 02	 sar	 eax, 2
  0016a	d1 e0		 shl	 eax, 1
  0016c	2b c8		 sub	 ecx, eax
  0016e	51		 push	 ecx
  0016f	8b 45 e8	 mov	 eax, DWORD PTR _iDelta$143209[ebp]
  00172	99		 cdq
  00173	83 e2 03	 and	 edx, 3
  00176	03 c2		 add	 eax, edx
  00178	c1 f8 02	 sar	 eax, 2
  0017b	d1 e0		 shl	 eax, 1
  0017d	50		 push	 eax
  0017e	6a 10		 push	 16			; 00000010H
  00180	6a 00		 push	 0
  00182	8b 55 dc	 mov	 edx, DWORD PTR _this$[ebp]
  00185	8b 42 24	 mov	 eax, DWORD PTR [edx+36]
  00188	50		 push	 eax
  00189	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  0018c	e8 00 00 00 00	 call	 ?DrawBorder@CMultiFrames@@AAEXHHHIIII@Z ; CMultiFrames::DrawBorder

; 431  : 
; 432  :             // Center the picture in the frame
; 433  :             lpFrameBuffer += (iDelta / 4) * 4;

  00191	8b 45 e8	 mov	 eax, DWORD PTR _iDelta$143209[ebp]
  00194	99		 cdq
  00195	83 e2 03	 and	 edx, 3
  00198	03 c2		 add	 eax, edx
  0019a	c1 f8 02	 sar	 eax, 2
  0019d	8b 4d f0	 mov	 ecx, DWORD PTR _lpFrameBuffer$[ebp]
  001a0	8d 14 81	 lea	 edx, DWORD PTR [ecx+eax*4]
  001a3	89 55 f0	 mov	 DWORD PTR _lpFrameBuffer$[ebp], edx

; 434  : 
; 435  :             iFrameWidth = iUpdWidth;

  001a6	8b 45 ec	 mov	 eax, DWORD PTR _iUpdWidth$143207[ebp]
  001a9	89 45 f4	 mov	 DWORD PTR _iFrameWidth$[ebp], eax
$LN14@UpdateFram:

; 436  :         }
; 437  :     }
; 438  :     ResizeFrame(pInfo->Overlay, pInfo->OverlayPitch, pInfo->FrameWidth, InHalfHeightMode() ? pInfo->FieldHeight : pInfo->FrameHeight, lpFrameBuffer, iFrameLinePitch, iFrameWidth, iFrameHeight);

  001ac	e8 00 00 00 00	 call	 ?InHalfHeightMode@@YAHXZ ; InHalfHeightMode
  001b1	85 c0		 test	 eax, eax
  001b3	74 0b		 je	 SHORT $LN19@UpdateFram
  001b5	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  001b8	8b 51 54	 mov	 edx, DWORD PTR [ecx+84]
  001bb	89 55 d4	 mov	 DWORD PTR tv185[ebp], edx
  001be	eb 09		 jmp	 SHORT $LN20@UpdateFram
$LN19@UpdateFram:
  001c0	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  001c3	8b 48 50	 mov	 ecx, DWORD PTR [eax+80]
  001c6	89 4d d4	 mov	 DWORD PTR tv185[ebp], ecx
$LN20@UpdateFram:
  001c9	8b 55 f8	 mov	 edx, DWORD PTR _iFrameHeight$[ebp]
  001cc	52		 push	 edx
  001cd	8b 45 f4	 mov	 eax, DWORD PTR _iFrameWidth$[ebp]
  001d0	50		 push	 eax
  001d1	8b 4d fc	 mov	 ecx, DWORD PTR _iFrameLinePitch$[ebp]
  001d4	51		 push	 ecx
  001d5	8b 55 f0	 mov	 edx, DWORD PTR _lpFrameBuffer$[ebp]
  001d8	52		 push	 edx
  001d9	8b 45 d4	 mov	 eax, DWORD PTR tv185[ebp]
  001dc	50		 push	 eax
  001dd	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  001e0	8b 51 4c	 mov	 edx, DWORD PTR [ecx+76]
  001e3	52		 push	 edx
  001e4	8b 45 08	 mov	 eax, DWORD PTR _pInfo$[ebp]
  001e7	8b 48 44	 mov	 ecx, DWORD PTR [eax+68]
  001ea	51		 push	 ecx
  001eb	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  001ee	8b 42 2c	 mov	 eax, DWORD PTR [edx+44]
  001f1	50		 push	 eax
  001f2	e8 00 00 00 00	 call	 ?ResizeFrame@@YAHPAEHHH0HHH@Z ; ResizeFrame
  001f7	83 c4 20	 add	 esp, 32			; 00000020H

; 439  : 
; 440  :     // there were no exit paths between the unlock and the lock
; 441  :     // so we hsould be OK
; 442  :     GetActiveOutput()->Overlay_Unlock_Back_Buffer(*bUseExtraBuffer);

  001fa	e8 00 00 00 00	 call	 ?GetActiveOutput@@YAPAVIOutput@@XZ ; GetActiveOutput
  001ff	89 45 d0	 mov	 DWORD PTR tv194[ebp], eax
  00202	8b 4d 0c	 mov	 ecx, DWORD PTR _bUseExtraBuffer$[ebp]
  00205	8b 11		 mov	 edx, DWORD PTR [ecx]
  00207	52		 push	 edx
  00208	8b 45 d0	 mov	 eax, DWORD PTR tv194[ebp]
  0020b	8b 10		 mov	 edx, DWORD PTR [eax]
  0020d	8b 4d d0	 mov	 ecx, DWORD PTR tv194[ebp]
  00210	8b 42 44	 mov	 eax, DWORD PTR [edx+68]
  00213	ff d0		 call	 eax

; 443  : 
; 444  :     if (m_ContentChanged == TRUE)

  00215	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  00218	83 79 40 01	 cmp	 DWORD PTR [ecx+64], 1
  0021c	75 4a		 jne	 SHORT $LN9@UpdateFram

; 445  :     {
; 446  :         if (m_Mode == PREVIEW_CHANNELS)

  0021e	8b 55 dc	 mov	 edx, DWORD PTR _this$[ebp]
  00221	83 3a 00	 cmp	 DWORD PTR [edx], 0
  00224	75 20		 jne	 SHORT $LN8@UpdateFram

; 447  :         {
; 448  :             m_FrameFilled[m_CurrentFrame] = Setting_GetValue(WM_CHANNELS_GETVALUE, CURRENTPROGRAM);

  00226	6a 01		 push	 1
  00228	68 1b 80 00 00	 push	 32795			; 0000801bH
  0022d	e8 00 00 00 00	 call	 ?Setting_GetValue@@YAJJJ@Z ; Setting_GetValue
  00232	83 c4 08	 add	 esp, 8
  00235	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  00238	8b 51 24	 mov	 edx, DWORD PTR [ecx+36]
  0023b	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  0023e	8b 49 20	 mov	 ecx, DWORD PTR [ecx+32]
  00241	89 04 91	 mov	 DWORD PTR [ecx+edx*4], eax
  00244	eb 22		 jmp	 SHORT $LN9@UpdateFram
$LN8@UpdateFram:

; 449  :         }
; 450  :         else if (m_Mode == PREVIEW_STILLS)

  00246	8b 55 dc	 mov	 edx, DWORD PTR _this$[ebp]
  00249	83 3a 01	 cmp	 DWORD PTR [edx], 1
  0024c	75 1a		 jne	 SHORT $LN9@UpdateFram

; 451  :         {
; 452  :             m_FrameFilled[m_CurrentFrame] = ((CStillSource*)m_Source)->GetPlaylistPosition();

  0024e	8b 45 dc	 mov	 eax, DWORD PTR _this$[ebp]
  00251	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  00254	e8 00 00 00 00	 call	 ?GetPlaylistPosition@CStillSource@@QAEHXZ ; CStillSource::GetPlaylistPosition
  00259	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  0025c	8b 51 24	 mov	 edx, DWORD PTR [ecx+36]
  0025f	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  00262	8b 49 20	 mov	 ecx, DWORD PTR [ecx+32]
  00265	89 04 91	 mov	 DWORD PTR [ecx+edx*4], eax
$LN9@UpdateFram:

; 453  :         }
; 454  :     }
; 455  : 
; 456  :     if (m_FrameFilled[m_CurrentFrame] != -1)

  00268	8b 55 dc	 mov	 edx, DWORD PTR _this$[ebp]
  0026b	8b 42 24	 mov	 eax, DWORD PTR [edx+36]
  0026e	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  00271	8b 51 20	 mov	 edx, DWORD PTR [ecx+32]
  00274	83 3c 82 ff	 cmp	 DWORD PTR [edx+eax*4], -1
  00278	74 5a		 je	 SHORT $LN5@UpdateFram

; 457  :     {
; 458  :         // Update the other frames having the same content
; 459  :         for (int i=0 ; i < m_NbFrames ; i++)

  0027a	c7 45 e0 00 00
	00 00		 mov	 DWORD PTR _i$143220[ebp], 0
  00281	eb 09		 jmp	 SHORT $LN4@UpdateFram
$LN3@UpdateFram:
  00283	8b 45 e0	 mov	 eax, DWORD PTR _i$143220[ebp]
  00286	83 c0 01	 add	 eax, 1
  00289	89 45 e0	 mov	 DWORD PTR _i$143220[ebp], eax
$LN4@UpdateFram:
  0028c	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  0028f	8b 55 e0	 mov	 edx, DWORD PTR _i$143220[ebp]
  00292	3b 51 08	 cmp	 edx, DWORD PTR [ecx+8]
  00295	7d 3d		 jge	 SHORT $LN5@UpdateFram

; 460  :         {
; 461  :             if ( (i != m_CurrentFrame)
; 462  :               && (m_FrameFilled[i] == m_FrameFilled[m_CurrentFrame]) )

  00297	8b 45 dc	 mov	 eax, DWORD PTR _this$[ebp]
  0029a	8b 4d e0	 mov	 ecx, DWORD PTR _i$143220[ebp]
  0029d	3b 48 24	 cmp	 ecx, DWORD PTR [eax+36]
  002a0	74 30		 je	 SHORT $LN1@UpdateFram
  002a2	8b 55 dc	 mov	 edx, DWORD PTR _this$[ebp]
  002a5	8b 42 20	 mov	 eax, DWORD PTR [edx+32]
  002a8	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  002ab	8b 51 24	 mov	 edx, DWORD PTR [ecx+36]
  002ae	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  002b1	8b 49 20	 mov	 ecx, DWORD PTR [ecx+32]
  002b4	8b 75 e0	 mov	 esi, DWORD PTR _i$143220[ebp]
  002b7	8b 04 b0	 mov	 eax, DWORD PTR [eax+esi*4]
  002ba	3b 04 91	 cmp	 eax, DWORD PTR [ecx+edx*4]
  002bd	75 13		 jne	 SHORT $LN1@UpdateFram

; 463  :             {
; 464  :                 CopyFrame(m_CurrentFrame, i);

  002bf	8b 4d e0	 mov	 ecx, DWORD PTR _i$143220[ebp]
  002c2	51		 push	 ecx
  002c3	8b 55 dc	 mov	 edx, DWORD PTR _this$[ebp]
  002c6	8b 42 24	 mov	 eax, DWORD PTR [edx+36]
  002c9	50		 push	 eax
  002ca	8b 4d dc	 mov	 ecx, DWORD PTR _this$[ebp]
  002cd	e8 00 00 00 00	 call	 ?CopyFrame@CMultiFrames@@AAEXHH@Z ; CMultiFrames::CopyFrame
$LN1@UpdateFram:

; 465  :             }
; 466  :         }

  002d2	eb af		 jmp	 SHORT $LN3@UpdateFram
$LN5@UpdateFram:

; 467  :     }
; 468  : 
; 469  :     // The input picture is replaced by the full multiple frames picture
; 470  :     *bUseExtraBuffer = TRUE;

  002d4	8b 4d 0c	 mov	 ecx, DWORD PTR _bUseExtraBuffer$[ebp]
  002d7	c7 01 01 00 00
	00		 mov	 DWORD PTR [ecx], 1

; 471  :     *lpBuffer = m_MemoryBuffer;

  002dd	8b 55 10	 mov	 edx, DWORD PTR _lpBuffer$[ebp]
  002e0	8b 45 dc	 mov	 eax, DWORD PTR _this$[ebp]
  002e3	8b 48 1c	 mov	 ecx, DWORD PTR [eax+28]
  002e6	89 0a		 mov	 DWORD PTR [edx], ecx

; 472  :     *Pitch = m_Width * 2;

  002e8	8b 55 dc	 mov	 edx, DWORD PTR _this$[ebp]
  002eb	8b 42 14	 mov	 eax, DWORD PTR [edx+20]
  002ee	d1 e0		 shl	 eax, 1
  002f0	8b 4d 14	 mov	 ecx, DWORD PTR _Pitch$[ebp]
  002f3	89 01		 mov	 DWORD PTR [ecx], eax

; 473  :     pInfo->FieldHeight = m_Height;

  002f5	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  002f8	8b 45 dc	 mov	 eax, DWORD PTR _this$[ebp]
  002fb	8b 48 18	 mov	 ecx, DWORD PTR [eax+24]
  002fe	89 4a 54	 mov	 DWORD PTR [edx+84], ecx

; 474  :     pInfo->FrameHeight = m_Height;

  00301	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  00304	8b 45 dc	 mov	 eax, DWORD PTR _this$[ebp]
  00307	8b 48 18	 mov	 ecx, DWORD PTR [eax+24]
  0030a	89 4a 50	 mov	 DWORD PTR [edx+80], ecx

; 475  :     pInfo->FrameWidth = m_Width;

  0030d	8b 55 08	 mov	 edx, DWORD PTR _pInfo$[ebp]
  00310	8b 45 dc	 mov	 eax, DWORD PTR _this$[ebp]
  00313	8b 48 14	 mov	 ecx, DWORD PTR [eax+20]
  00316	89 4a 4c	 mov	 DWORD PTR [edx+76], ecx

; 476  :     pInfo->LineLength = m_Width * 2;

  00319	8b 55 dc	 mov	 edx, DWORD PTR _this$[ebp]
  0031c	8b 42 14	 mov	 eax, DWORD PTR [edx+20]
  0031f	d1 e0		 shl	 eax, 1
  00321	8b 4d 08	 mov	 ecx, DWORD PTR _pInfo$[ebp]
  00324	89 41 48	 mov	 DWORD PTR [ecx+72], eax
$LN17@UpdateFram:

; 477  : }

  00327	5e		 pop	 esi
  00328	8b e5		 mov	 esp, ebp
  0032a	5d		 pop	 ebp
  0032b	c2 10 00	 ret	 16			; 00000010H
?UpdateFrame@CMultiFrames@@QAEXPAUTDeinterlaceInfo@@PAHPAPAE1@Z ENDP ; CMultiFrames::UpdateFrame
PUBLIC	?SelectFrame@CMultiFrames@@QAEXXZ		; CMultiFrames::SelectFrame
; Function compile flags: /Odtp
;	COMDAT ?SelectFrame@CMultiFrames@@QAEXXZ
_TEXT	SEGMENT
_this$ = -24						; size = 4
_i$143167 = -20						; size = 4
_i$143158 = -16						; size = 4
_i$ = -12						; size = 4
_iUnused$ = -8						; size = 4
_bBeforeCurrent$ = -4					; size = 4
?SelectFrame@CMultiFrames@@QAEXXZ PROC			; CMultiFrames::SelectFrame, COMDAT
; _this$ = ecx

; 190  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 18	 sub	 esp, 24			; 00000018H
  00006	89 4d e8	 mov	 DWORD PTR _this$[ebp], ecx

; 191  :     int i;
; 192  :     int iUnused;
; 193  :     BOOL bBeforeCurrent;
; 194  : 
; 195  :     if (!m_Active || (m_FrameFilled[m_CurrentFrame] == -1))

  00009	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	83 78 28 00	 cmp	 DWORD PTR [eax+40], 0
  00010	74 12		 je	 SHORT $LN47@SelectFram@2
  00012	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00015	8b 51 24	 mov	 edx, DWORD PTR [ecx+36]
  00018	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  0001b	8b 48 20	 mov	 ecx, DWORD PTR [eax+32]
  0001e	83 3c 91 ff	 cmp	 DWORD PTR [ecx+edx*4], -1
  00022	75 0f		 jne	 SHORT $LN48@SelectFram@2
$LN47@SelectFram@2:

; 196  :     {
; 197  :         m_NavigAllowed = FALSE;

  00024	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  00027	c7 42 30 00 00
	00 00		 mov	 DWORD PTR [edx+48], 0

; 198  :         return;

  0002e	e9 2b 05 00 00	 jmp	 $LN49@SelectFram@2
$LN48@SelectFram@2:

; 199  :     }
; 200  : 
; 201  :     // Here, weknow that the current frame is filled
; 202  :     // We must search if another one must be filled
; 203  : 
; 204  :     iUnused = -1;

  00033	c7 45 f8 ff ff
	ff ff		 mov	 DWORD PTR _iUnused$[ebp], -1

; 205  : 
; 206  :     // Check if there is a frame to fill before the current one
; 207  :     for (i=(m_CurrentFrame-1) ; i>=0 ; i--)

  0003a	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  0003d	8b 48 24	 mov	 ecx, DWORD PTR [eax+36]
  00040	83 e9 01	 sub	 ecx, 1
  00043	89 4d f4	 mov	 DWORD PTR _i$[ebp], ecx
  00046	eb 09		 jmp	 SHORT $LN46@SelectFram@2
$LN45@SelectFram@2:
  00048	8b 55 f4	 mov	 edx, DWORD PTR _i$[ebp]
  0004b	83 ea 01	 sub	 edx, 1
  0004e	89 55 f4	 mov	 DWORD PTR _i$[ebp], edx
$LN46@SelectFram@2:
  00051	83 7d f4 00	 cmp	 DWORD PTR _i$[ebp], 0
  00055	7c 2a		 jl	 SHORT $LN44@SelectFram@2

; 208  :     {
; 209  :         if (m_FrameFilled[i] == -1)

  00057	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  0005a	8b 48 20	 mov	 ecx, DWORD PTR [eax+32]
  0005d	8b 55 f4	 mov	 edx, DWORD PTR _i$[ebp]
  00060	83 3c 91 ff	 cmp	 DWORD PTR [ecx+edx*4], -1
  00064	75 19		 jne	 SHORT $LN43@SelectFram@2

; 210  :         {
; 211  :             iUnused = i;

  00066	8b 45 f4	 mov	 eax, DWORD PTR _i$[ebp]
  00069	89 45 f8	 mov	 DWORD PTR _iUnused$[ebp], eax

; 212  :             bBeforeCurrent = TRUE;

  0006c	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _bBeforeCurrent$[ebp], 1

; 213  :             m_NavigAllowed = FALSE;

  00073	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00076	c7 41 30 00 00
	00 00		 mov	 DWORD PTR [ecx+48], 0

; 214  :             break;

  0007d	eb 02		 jmp	 SHORT $LN44@SelectFram@2
$LN43@SelectFram@2:

; 215  :         }
; 216  :     }

  0007f	eb c7		 jmp	 SHORT $LN45@SelectFram@2
$LN44@SelectFram@2:

; 217  :     if (iUnused == -1)

  00081	83 7d f8 ff	 cmp	 DWORD PTR _iUnused$[ebp], -1
  00085	75 4c		 jne	 SHORT $LN42@SelectFram@2

; 218  :     {
; 219  :         // Check if there is a frame to fill after the current one
; 220  :         for (i=(m_CurrentFrame+1) ; i<m_NbFrames ; i++)

  00087	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  0008a	8b 42 24	 mov	 eax, DWORD PTR [edx+36]
  0008d	83 c0 01	 add	 eax, 1
  00090	89 45 f4	 mov	 DWORD PTR _i$[ebp], eax
  00093	eb 09		 jmp	 SHORT $LN41@SelectFram@2
$LN40@SelectFram@2:
  00095	8b 4d f4	 mov	 ecx, DWORD PTR _i$[ebp]
  00098	83 c1 01	 add	 ecx, 1
  0009b	89 4d f4	 mov	 DWORD PTR _i$[ebp], ecx
$LN41@SelectFram@2:
  0009e	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  000a1	8b 45 f4	 mov	 eax, DWORD PTR _i$[ebp]
  000a4	3b 42 08	 cmp	 eax, DWORD PTR [edx+8]
  000a7	7d 2a		 jge	 SHORT $LN42@SelectFram@2

; 221  :         {
; 222  :             if (m_FrameFilled[i] == -1)

  000a9	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  000ac	8b 51 20	 mov	 edx, DWORD PTR [ecx+32]
  000af	8b 45 f4	 mov	 eax, DWORD PTR _i$[ebp]
  000b2	83 3c 82 ff	 cmp	 DWORD PTR [edx+eax*4], -1
  000b6	75 19		 jne	 SHORT $LN38@SelectFram@2

; 223  :             {
; 224  :                 iUnused = i;

  000b8	8b 4d f4	 mov	 ecx, DWORD PTR _i$[ebp]
  000bb	89 4d f8	 mov	 DWORD PTR _iUnused$[ebp], ecx

; 225  :                 bBeforeCurrent = FALSE;

  000be	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _bBeforeCurrent$[ebp], 0

; 226  :                 m_NavigAllowed = FALSE;

  000c5	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  000c8	c7 42 30 00 00
	00 00		 mov	 DWORD PTR [edx+48], 0

; 227  :                 break;

  000cf	eb 02		 jmp	 SHORT $LN42@SelectFram@2
$LN38@SelectFram@2:

; 228  :             }
; 229  :         }

  000d1	eb c2		 jmp	 SHORT $LN40@SelectFram@2
$LN42@SelectFram@2:

; 230  :     }
; 231  : 
; 232  :     if (iUnused == -1)

  000d3	83 7d f8 ff	 cmp	 DWORD PTR _iUnused$[ebp], -1
  000d7	75 31		 jne	 SHORT $LN37@SelectFram@2

; 233  :     {
; 234  :         // All the frames are filled, so we must enable the user navigation
; 235  :         if (!m_NavigAllowed)

  000d9	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  000dc	83 78 30 00	 cmp	 DWORD PTR [eax+48], 0
  000e0	75 1e		 jne	 SHORT $LN36@SelectFram@2

; 236  :         {
; 237  :             m_DeltaNewFrame = 0;

  000e2	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  000e5	c7 41 34 00 00
	00 00		 mov	 DWORD PTR [ecx+52], 0

; 238  :             m_PreviousPage = FALSE;

  000ec	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  000ef	c7 42 3c 00 00
	00 00		 mov	 DWORD PTR [edx+60], 0

; 239  :             m_NextPage = FALSE;

  000f6	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  000f9	c7 40 38 00 00
	00 00		 mov	 DWORD PTR [eax+56], 0
$LN36@SelectFram@2:

; 240  :         }
; 241  :         m_NavigAllowed = TRUE;

  00100	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00103	c7 41 30 01 00
	00 00		 mov	 DWORD PTR [ecx+48], 1
$LN37@SelectFram@2:

; 242  :     }
; 243  : 
; 244  :     if (m_NavigAllowed)

  0010a	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  0010d	83 7a 30 00	 cmp	 DWORD PTR [edx+48], 0
  00111	0f 84 7c 03 00
	00		 je	 $LN35@SelectFram@2

; 245  :     {
; 246  :         //
; 247  :         // There is no frame to fill
; 248  :         // So check if user asked for move to another frame
; 249  :         // or to fill the screen with other channels
; 250  :         //
; 251  : 
; 252  :         if (m_PreviousPage == TRUE)

  00117	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  0011a	83 78 3c 01	 cmp	 DWORD PTR [eax+60], 1
  0011e	0f 85 d5 00 00
	00		 jne	 $LN34@SelectFram@2

; 253  :         {
; 254  :             m_NavigAllowed = FALSE;

  00124	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00127	c7 41 30 00 00
	00 00		 mov	 DWORD PTR [ecx+48], 0

; 255  :             m_ContentChanged = FALSE;

  0012e	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  00131	c7 42 40 00 00
	00 00		 mov	 DWORD PTR [edx+64], 0

; 256  :             for (int i=0 ; i < m_NbFrames ; i++)

  00138	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR _i$143158[ebp], 0
  0013f	eb 09		 jmp	 SHORT $LN33@SelectFram@2
$LN32@SelectFram@2:
  00141	8b 45 f0	 mov	 eax, DWORD PTR _i$143158[ebp]
  00144	83 c0 01	 add	 eax, 1
  00147	89 45 f0	 mov	 DWORD PTR _i$143158[ebp], eax
$LN33@SelectFram@2:
  0014a	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0014d	8b 55 f0	 mov	 edx, DWORD PTR _i$143158[ebp]
  00150	3b 51 08	 cmp	 edx, DWORD PTR [ecx+8]
  00153	7d 12		 jge	 SHORT $LN31@SelectFram@2

; 257  :             {
; 258  :                 m_FrameFilled[i] = -1;

  00155	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  00158	8b 48 20	 mov	 ecx, DWORD PTR [eax+32]
  0015b	8b 55 f0	 mov	 edx, DWORD PTR _i$143158[ebp]
  0015e	c7 04 91 ff ff
	ff ff		 mov	 DWORD PTR [ecx+edx*4], -1

; 259  :             }

  00165	eb da		 jmp	 SHORT $LN32@SelectFram@2
$LN31@SelectFram@2:

; 260  :             DrawBorder(m_CurrentFrame, TRUE, LUMIN_NOT_CURRENT, LEFT_BORDER, RIGHT_BORDER, TOP_BORDER, BOTTOM_BORDER);

  00167	6a 02		 push	 2
  00169	6a 02		 push	 2
  0016b	6a 02		 push	 2
  0016d	6a 02		 push	 2
  0016f	68 80 00 00 00	 push	 128			; 00000080H
  00174	6a 01		 push	 1
  00176	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  00179	8b 48 24	 mov	 ecx, DWORD PTR [eax+36]
  0017c	51		 push	 ecx
  0017d	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00180	e8 00 00 00 00	 call	 ?DrawBorder@CMultiFrames@@AAEXHHHIIII@Z ; CMultiFrames::DrawBorder

; 261  :             m_CurrentFrame = m_NbFrames-1;

  00185	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  00188	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  0018b	83 e8 01	 sub	 eax, 1
  0018e	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00191	89 41 24	 mov	 DWORD PTR [ecx+36], eax

; 262  :             DrawBorder(m_CurrentFrame, TRUE, LUMIN_CURRENT, LEFT_BORDER, RIGHT_BORDER, TOP_BORDER, BOTTOM_BORDER);

  00194	6a 02		 push	 2
  00196	6a 02		 push	 2
  00198	6a 02		 push	 2
  0019a	6a 02		 push	 2
  0019c	68 eb 00 00 00	 push	 235			; 000000ebH
  001a1	6a 01		 push	 1
  001a3	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  001a6	8b 42 24	 mov	 eax, DWORD PTR [edx+36]
  001a9	50		 push	 eax
  001aa	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  001ad	e8 00 00 00 00	 call	 ?DrawBorder@CMultiFrames@@AAEXHHHIIII@Z ; CMultiFrames::DrawBorder

; 263  :             if (m_Mode == PREVIEW_CHANNELS)

  001b2	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  001b5	83 39 00	 cmp	 DWORD PTR [ecx], 0
  001b8	75 1a		 jne	 SHORT $LN30@SelectFram@2

; 264  :             {
; 265  :                 SendMessage(GetMainWnd(), WM_COMMAND, IDM_CHANNELMINUS, 0);

  001ba	6a 00		 push	 0
  001bc	68 0b 01 00 00	 push	 267			; 0000010bH
  001c1	68 11 01 00 00	 push	 273			; 00000111H
  001c6	e8 00 00 00 00	 call	 ?GetMainWnd@@YAPAUHWND__@@XZ ; GetMainWnd
  001cb	50		 push	 eax
  001cc	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
  001d2	eb 20		 jmp	 SHORT $LN29@SelectFram@2
$LN30@SelectFram@2:

; 266  :             }
; 267  :             else if (m_Mode == PREVIEW_STILLS)

  001d4	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  001d7	83 3a 01	 cmp	 DWORD PTR [edx], 1
  001da	75 18		 jne	 SHORT $LN29@SelectFram@2

; 268  :             {
; 269  :                 SendMessage(GetMainWnd(), WM_COMMAND, IDM_PLAYLIST_PREVIOUS_CIRC, 0);

  001dc	6a 00		 push	 0
  001de	68 c2 80 00 00	 push	 32962			; 000080c2H
  001e3	68 11 01 00 00	 push	 273			; 00000111H
  001e8	e8 00 00 00 00	 call	 ?GetMainWnd@@YAPAUHWND__@@XZ ; GetMainWnd
  001ed	50		 push	 eax
  001ee	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
$LN29@SelectFram@2:

; 270  :             }
; 271  :         }

  001f4	e9 95 02 00 00	 jmp	 $LN27@SelectFram@2
$LN34@SelectFram@2:

; 272  :         else if (m_NextPage == TRUE)

  001f9	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  001fc	83 78 38 01	 cmp	 DWORD PTR [eax+56], 1
  00200	0f 85 d0 00 00
	00		 jne	 $LN26@SelectFram@2

; 273  :         {
; 274  :             m_NavigAllowed = FALSE;

  00206	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00209	c7 41 30 00 00
	00 00		 mov	 DWORD PTR [ecx+48], 0

; 275  :             m_ContentChanged = FALSE;

  00210	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  00213	c7 42 40 00 00
	00 00		 mov	 DWORD PTR [edx+64], 0

; 276  :             for (int i=0 ; i < m_NbFrames ; i++)

  0021a	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR _i$143167[ebp], 0
  00221	eb 09		 jmp	 SHORT $LN25@SelectFram@2
$LN24@SelectFram@2:
  00223	8b 45 ec	 mov	 eax, DWORD PTR _i$143167[ebp]
  00226	83 c0 01	 add	 eax, 1
  00229	89 45 ec	 mov	 DWORD PTR _i$143167[ebp], eax
$LN25@SelectFram@2:
  0022c	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0022f	8b 55 ec	 mov	 edx, DWORD PTR _i$143167[ebp]
  00232	3b 51 08	 cmp	 edx, DWORD PTR [ecx+8]
  00235	7d 12		 jge	 SHORT $LN23@SelectFram@2

; 277  :             {
; 278  :                 m_FrameFilled[i] = -1;

  00237	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  0023a	8b 48 20	 mov	 ecx, DWORD PTR [eax+32]
  0023d	8b 55 ec	 mov	 edx, DWORD PTR _i$143167[ebp]
  00240	c7 04 91 ff ff
	ff ff		 mov	 DWORD PTR [ecx+edx*4], -1

; 279  :             }

  00247	eb da		 jmp	 SHORT $LN24@SelectFram@2
$LN23@SelectFram@2:

; 280  :             DrawBorder(m_CurrentFrame, TRUE, LUMIN_NOT_CURRENT, LEFT_BORDER, RIGHT_BORDER, TOP_BORDER, BOTTOM_BORDER);

  00249	6a 02		 push	 2
  0024b	6a 02		 push	 2
  0024d	6a 02		 push	 2
  0024f	6a 02		 push	 2
  00251	68 80 00 00 00	 push	 128			; 00000080H
  00256	6a 01		 push	 1
  00258	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  0025b	8b 48 24	 mov	 ecx, DWORD PTR [eax+36]
  0025e	51		 push	 ecx
  0025f	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00262	e8 00 00 00 00	 call	 ?DrawBorder@CMultiFrames@@AAEXHHHIIII@Z ; CMultiFrames::DrawBorder

; 281  :             m_CurrentFrame = 0;

  00267	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  0026a	c7 42 24 00 00
	00 00		 mov	 DWORD PTR [edx+36], 0

; 282  :             DrawBorder(m_CurrentFrame, TRUE, LUMIN_CURRENT, LEFT_BORDER, RIGHT_BORDER, TOP_BORDER, BOTTOM_BORDER);

  00271	6a 02		 push	 2
  00273	6a 02		 push	 2
  00275	6a 02		 push	 2
  00277	6a 02		 push	 2
  00279	68 eb 00 00 00	 push	 235			; 000000ebH
  0027e	6a 01		 push	 1
  00280	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  00283	8b 48 24	 mov	 ecx, DWORD PTR [eax+36]
  00286	51		 push	 ecx
  00287	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0028a	e8 00 00 00 00	 call	 ?DrawBorder@CMultiFrames@@AAEXHHHIIII@Z ; CMultiFrames::DrawBorder

; 283  :             if (m_Mode == PREVIEW_CHANNELS)

  0028f	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  00292	83 3a 00	 cmp	 DWORD PTR [edx], 0
  00295	75 1a		 jne	 SHORT $LN22@SelectFram@2

; 284  :             {
; 285  :                 SendMessage(GetMainWnd(), WM_COMMAND, IDM_CHANNELPLUS, 0);

  00297	6a 00		 push	 0
  00299	68 0a 01 00 00	 push	 266			; 0000010aH
  0029e	68 11 01 00 00	 push	 273			; 00000111H
  002a3	e8 00 00 00 00	 call	 ?GetMainWnd@@YAPAUHWND__@@XZ ; GetMainWnd
  002a8	50		 push	 eax
  002a9	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
  002af	eb 20		 jmp	 SHORT $LN21@SelectFram@2
$LN22@SelectFram@2:

; 286  :             }
; 287  :             else if (m_Mode == PREVIEW_STILLS)

  002b1	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  002b4	83 38 01	 cmp	 DWORD PTR [eax], 1
  002b7	75 18		 jne	 SHORT $LN21@SelectFram@2

; 288  :             {
; 289  :                 SendMessage(GetMainWnd(), WM_COMMAND, IDM_PLAYLIST_NEXT_CIRC, 0);

  002b9	6a 00		 push	 0
  002bb	68 c3 80 00 00	 push	 32963			; 000080c3H
  002c0	68 11 01 00 00	 push	 273			; 00000111H
  002c5	e8 00 00 00 00	 call	 ?GetMainWnd@@YAPAUHWND__@@XZ ; GetMainWnd
  002ca	50		 push	 eax
  002cb	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
$LN21@SelectFram@2:

; 290  :             }
; 291  :         }

  002d1	e9 b8 01 00 00	 jmp	 $LN27@SelectFram@2
$LN26@SelectFram@2:

; 292  :         else if (m_DeltaNewFrame != 0)

  002d6	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  002d9	83 79 34 00	 cmp	 DWORD PTR [ecx+52], 0
  002dd	0f 84 ab 01 00
	00		 je	 $LN27@SelectFram@2

; 293  :         {
; 294  :             m_NavigAllowed = FALSE;

  002e3	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  002e6	c7 42 30 00 00
	00 00		 mov	 DWORD PTR [edx+48], 0

; 295  :             m_ContentChanged = FALSE;

  002ed	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  002f0	c7 40 40 00 00
	00 00		 mov	 DWORD PTR [eax+64], 0

; 296  : 
; 297  :             if ( ((m_CurrentFrame + m_DeltaNewFrame) >= 0)
; 298  :               && ((m_CurrentFrame + m_DeltaNewFrame) < m_NbFrames) )

  002f7	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  002fa	8b 51 24	 mov	 edx, DWORD PTR [ecx+36]
  002fd	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  00300	03 50 34	 add	 edx, DWORD PTR [eax+52]
  00303	0f 88 dc 00 00
	00		 js	 $LN17@SelectFram@2
  00309	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0030c	8b 51 24	 mov	 edx, DWORD PTR [ecx+36]
  0030f	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  00312	03 50 34	 add	 edx, DWORD PTR [eax+52]
  00315	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00318	3b 51 08	 cmp	 edx, DWORD PTR [ecx+8]
  0031b	0f 8d c4 00 00
	00		 jge	 $LN17@SelectFram@2

; 299  :             {
; 300  :                 // There is no shift of frames to do
; 301  : 
; 302  :                 DrawBorder(m_CurrentFrame, TRUE, LUMIN_NOT_CURRENT, LEFT_BORDER, RIGHT_BORDER, TOP_BORDER, BOTTOM_BORDER);

  00321	6a 02		 push	 2
  00323	6a 02		 push	 2
  00325	6a 02		 push	 2
  00327	6a 02		 push	 2
  00329	68 80 00 00 00	 push	 128			; 00000080H
  0032e	6a 01		 push	 1
  00330	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  00333	8b 42 24	 mov	 eax, DWORD PTR [edx+36]
  00336	50		 push	 eax
  00337	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0033a	e8 00 00 00 00	 call	 ?DrawBorder@CMultiFrames@@AAEXHHHIIII@Z ; CMultiFrames::DrawBorder

; 303  :                 m_CurrentFrame += m_DeltaNewFrame;

  0033f	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00342	8b 51 24	 mov	 edx, DWORD PTR [ecx+36]
  00345	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  00348	03 50 34	 add	 edx, DWORD PTR [eax+52]
  0034b	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0034e	89 51 24	 mov	 DWORD PTR [ecx+36], edx

; 304  :                 DrawBorder(m_CurrentFrame, TRUE, LUMIN_CURRENT, LEFT_BORDER, RIGHT_BORDER, TOP_BORDER, BOTTOM_BORDER);

  00351	6a 02		 push	 2
  00353	6a 02		 push	 2
  00355	6a 02		 push	 2
  00357	6a 02		 push	 2
  00359	68 eb 00 00 00	 push	 235			; 000000ebH
  0035e	6a 01		 push	 1
  00360	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  00363	8b 42 24	 mov	 eax, DWORD PTR [edx+36]
  00366	50		 push	 eax
  00367	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0036a	e8 00 00 00 00	 call	 ?DrawBorder@CMultiFrames@@AAEXHHHIIII@Z ; CMultiFrames::DrawBorder

; 305  :                 if (m_Mode == PREVIEW_CHANNELS)

  0036f	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00372	83 39 00	 cmp	 DWORD PTR [ecx], 0
  00375	75 28		 jne	 SHORT $LN16@SelectFram@2

; 306  :                 {
; 307  :                     SendMessage(GetMainWnd(), WM_COMMAND, IDM_CHANNEL_INDEX, m_FrameFilled[m_CurrentFrame]);

  00377	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  0037a	8b 42 24	 mov	 eax, DWORD PTR [edx+36]
  0037d	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00380	8b 51 20	 mov	 edx, DWORD PTR [ecx+32]
  00383	8b 04 82	 mov	 eax, DWORD PTR [edx+eax*4]
  00386	50		 push	 eax
  00387	68 bf 80 00 00	 push	 32959			; 000080bfH
  0038c	68 11 01 00 00	 push	 273			; 00000111H
  00391	e8 00 00 00 00	 call	 ?GetMainWnd@@YAPAUHWND__@@XZ ; GetMainWnd
  00396	50		 push	 eax
  00397	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
  0039d	eb 2e		 jmp	 SHORT $LN15@SelectFram@2
$LN16@SelectFram@2:

; 308  :                 }
; 309  :                 else if (m_Mode == PREVIEW_STILLS)

  0039f	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  003a2	83 39 01	 cmp	 DWORD PTR [ecx], 1
  003a5	75 26		 jne	 SHORT $LN15@SelectFram@2

; 310  :                 {
; 311  :                     SendMessage(GetMainWnd(), WM_COMMAND, IDM_PLAYLIST_INDEX, m_FrameFilled[m_CurrentFrame]);

  003a7	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  003aa	8b 42 24	 mov	 eax, DWORD PTR [edx+36]
  003ad	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  003b0	8b 51 20	 mov	 edx, DWORD PTR [ecx+32]
  003b3	8b 04 82	 mov	 eax, DWORD PTR [edx+eax*4]
  003b6	50		 push	 eax
  003b7	68 c1 80 00 00	 push	 32961			; 000080c1H
  003bc	68 11 01 00 00	 push	 273			; 00000111H
  003c1	e8 00 00 00 00	 call	 ?GetMainWnd@@YAPAUHWND__@@XZ ; GetMainWnd
  003c6	50		 push	 eax
  003c7	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
$LN15@SelectFram@2:

; 312  :                 }
; 313  :                 m_FrameFilled[m_CurrentFrame] = -1;

  003cd	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  003d0	8b 51 24	 mov	 edx, DWORD PTR [ecx+36]
  003d3	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  003d6	8b 48 20	 mov	 ecx, DWORD PTR [eax+32]
  003d9	c7 04 91 ff ff
	ff ff		 mov	 DWORD PTR [ecx+edx*4], -1

; 314  :             }
; 315  :             else

  003e0	e9 a9 00 00 00	 jmp	 $LN27@SelectFram@2
$LN17@SelectFram@2:

; 316  :             {
; 317  :                 // There is a shift of frames to do
; 318  : 
; 319  :                 DrawBorder(m_CurrentFrame, TRUE, LUMIN_NOT_CURRENT, LEFT_BORDER, RIGHT_BORDER, TOP_BORDER, BOTTOM_BORDER);

  003e5	6a 02		 push	 2
  003e7	6a 02		 push	 2
  003e9	6a 02		 push	 2
  003eb	6a 02		 push	 2
  003ed	68 80 00 00 00	 push	 128			; 00000080H
  003f2	6a 01		 push	 1
  003f4	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  003f7	8b 42 24	 mov	 eax, DWORD PTR [edx+36]
  003fa	50		 push	 eax
  003fb	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  003fe	e8 00 00 00 00	 call	 ?DrawBorder@CMultiFrames@@AAEXHHHIIII@Z ; CMultiFrames::DrawBorder

; 320  :                 ShiftFrames(m_DeltaNewFrame);

  00403	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00406	8b 51 34	 mov	 edx, DWORD PTR [ecx+52]
  00409	52		 push	 edx
  0040a	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0040d	e8 00 00 00 00	 call	 ?ShiftFrames@CMultiFrames@@AAEXH@Z ; CMultiFrames::ShiftFrames

; 321  :                 DrawBorder(m_CurrentFrame, TRUE, LUMIN_CURRENT, LEFT_BORDER, RIGHT_BORDER, TOP_BORDER, BOTTOM_BORDER);

  00412	6a 02		 push	 2
  00414	6a 02		 push	 2
  00416	6a 02		 push	 2
  00418	6a 02		 push	 2
  0041a	68 eb 00 00 00	 push	 235			; 000000ebH
  0041f	6a 01		 push	 1
  00421	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  00424	8b 48 24	 mov	 ecx, DWORD PTR [eax+36]
  00427	51		 push	 ecx
  00428	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  0042b	e8 00 00 00 00	 call	 ?DrawBorder@CMultiFrames@@AAEXHHHIIII@Z ; CMultiFrames::DrawBorder

; 322  :                 if (m_Mode == PREVIEW_CHANNELS)

  00430	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  00433	83 3a 00	 cmp	 DWORD PTR [edx], 0
  00436	75 28		 jne	 SHORT $LN12@SelectFram@2

; 323  :                 {
; 324  :                     SendMessage(GetMainWnd(), WM_COMMAND, IDM_CHANNEL_INDEX, m_FrameFilled[m_CurrentFrame]);

  00438	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  0043b	8b 48 24	 mov	 ecx, DWORD PTR [eax+36]
  0043e	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  00441	8b 42 20	 mov	 eax, DWORD PTR [edx+32]
  00444	8b 0c 88	 mov	 ecx, DWORD PTR [eax+ecx*4]
  00447	51		 push	 ecx
  00448	68 bf 80 00 00	 push	 32959			; 000080bfH
  0044d	68 11 01 00 00	 push	 273			; 00000111H
  00452	e8 00 00 00 00	 call	 ?GetMainWnd@@YAPAUHWND__@@XZ ; GetMainWnd
  00457	50		 push	 eax
  00458	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
  0045e	eb 2e		 jmp	 SHORT $LN27@SelectFram@2
$LN12@SelectFram@2:

; 325  :                 }
; 326  :                 else if (m_Mode == PREVIEW_STILLS)

  00460	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  00463	83 3a 01	 cmp	 DWORD PTR [edx], 1
  00466	75 26		 jne	 SHORT $LN27@SelectFram@2

; 327  :                 {
; 328  :                     SendMessage(GetMainWnd(), WM_COMMAND, IDM_PLAYLIST_INDEX, m_FrameFilled[m_CurrentFrame]);

  00468	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  0046b	8b 48 24	 mov	 ecx, DWORD PTR [eax+36]
  0046e	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  00471	8b 42 20	 mov	 eax, DWORD PTR [edx+32]
  00474	8b 0c 88	 mov	 ecx, DWORD PTR [eax+ecx*4]
  00477	51		 push	 ecx
  00478	68 c1 80 00 00	 push	 32961			; 000080c1H
  0047d	68 11 01 00 00	 push	 273			; 00000111H
  00482	e8 00 00 00 00	 call	 ?GetMainWnd@@YAPAUHWND__@@XZ ; GetMainWnd
  00487	50		 push	 eax
  00488	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16
$LN27@SelectFram@2:

; 329  :                 }
; 330  :             }
; 331  :         }
; 332  :     }
; 333  :     else

  0048e	e9 cb 00 00 00	 jmp	 $LN49@SelectFram@2
$LN35@SelectFram@2:

; 334  :     {
; 335  :         //
; 336  :         // There is one frame to fill
; 337  :         // iUnused is the index of the frame to fill
; 338  :         //
; 339  : 
; 340  :         m_ContentChanged = FALSE;

  00493	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  00496	c7 42 40 00 00
	00 00		 mov	 DWORD PTR [edx+64], 0

; 341  : 
; 342  :         DrawBorder(m_CurrentFrame, TRUE, LUMIN_NOT_CURRENT, LEFT_BORDER, RIGHT_BORDER, TOP_BORDER, BOTTOM_BORDER);

  0049d	6a 02		 push	 2
  0049f	6a 02		 push	 2
  004a1	6a 02		 push	 2
  004a3	6a 02		 push	 2
  004a5	68 80 00 00 00	 push	 128			; 00000080H
  004aa	6a 01		 push	 1
  004ac	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  004af	8b 48 24	 mov	 ecx, DWORD PTR [eax+36]
  004b2	51		 push	 ecx
  004b3	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  004b6	e8 00 00 00 00	 call	 ?DrawBorder@CMultiFrames@@AAEXHHHIIII@Z ; CMultiFrames::DrawBorder

; 343  :         m_CurrentFrame = iUnused;

  004bb	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  004be	8b 45 f8	 mov	 eax, DWORD PTR _iUnused$[ebp]
  004c1	89 42 24	 mov	 DWORD PTR [edx+36], eax

; 344  :         DrawBorder(m_CurrentFrame, TRUE, LUMIN_CURRENT, LEFT_BORDER, RIGHT_BORDER, TOP_BORDER, BOTTOM_BORDER);

  004c4	6a 02		 push	 2
  004c6	6a 02		 push	 2
  004c8	6a 02		 push	 2
  004ca	6a 02		 push	 2
  004cc	68 eb 00 00 00	 push	 235			; 000000ebH
  004d1	6a 01		 push	 1
  004d3	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  004d6	8b 51 24	 mov	 edx, DWORD PTR [ecx+36]
  004d9	52		 push	 edx
  004da	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  004dd	e8 00 00 00 00	 call	 ?DrawBorder@CMultiFrames@@AAEXHHHIIII@Z ; CMultiFrames::DrawBorder

; 345  : 
; 346  :         if (bBeforeCurrent)

  004e2	83 7d fc 00	 cmp	 DWORD PTR _bBeforeCurrent$[ebp], 0
  004e6	74 3c		 je	 SHORT $LN8@SelectFram@2

; 347  :         {
; 348  :             if (m_Mode == PREVIEW_CHANNELS)

  004e8	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  004eb	83 38 00	 cmp	 DWORD PTR [eax], 0
  004ee	75 16		 jne	 SHORT $LN7@SelectFram@2

; 349  :             {
; 350  :                 PostMessageToMainWindow(WM_COMMAND, IDM_CHANNELMINUS, 0);

  004f0	6a 00		 push	 0
  004f2	68 0b 01 00 00	 push	 267			; 0000010bH
  004f7	68 11 01 00 00	 push	 273			; 00000111H
  004fc	e8 00 00 00 00	 call	 ?PostMessageToMainWindow@@YAXIIJ@Z ; PostMessageToMainWindow
  00501	83 c4 0c	 add	 esp, 12			; 0000000cH
  00504	eb 1c		 jmp	 SHORT $LN6@SelectFram@2
$LN7@SelectFram@2:

; 351  :             }
; 352  :             else if (m_Mode == PREVIEW_STILLS)

  00506	8b 4d e8	 mov	 ecx, DWORD PTR _this$[ebp]
  00509	83 39 01	 cmp	 DWORD PTR [ecx], 1
  0050c	75 14		 jne	 SHORT $LN6@SelectFram@2

; 353  :             {
; 354  :                 PostMessageToMainWindow(WM_COMMAND, IDM_PLAYLIST_PREVIOUS_CIRC, 0);

  0050e	6a 00		 push	 0
  00510	68 c2 80 00 00	 push	 32962			; 000080c2H
  00515	68 11 01 00 00	 push	 273			; 00000111H
  0051a	e8 00 00 00 00	 call	 ?PostMessageToMainWindow@@YAXIIJ@Z ; PostMessageToMainWindow
  0051f	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN6@SelectFram@2:

; 355  :             }
; 356  :         }
; 357  :         else

  00522	eb 3a		 jmp	 SHORT $LN49@SelectFram@2
$LN8@SelectFram@2:

; 358  :         {
; 359  :             if (m_Mode == PREVIEW_CHANNELS)

  00524	8b 55 e8	 mov	 edx, DWORD PTR _this$[ebp]
  00527	83 3a 00	 cmp	 DWORD PTR [edx], 0
  0052a	75 16		 jne	 SHORT $LN3@SelectFram@2

; 360  :             {
; 361  :                 PostMessageToMainWindow(WM_COMMAND, IDM_CHANNELPLUS, 0);

  0052c	6a 00		 push	 0
  0052e	68 0a 01 00 00	 push	 266			; 0000010aH
  00533	68 11 01 00 00	 push	 273			; 00000111H
  00538	e8 00 00 00 00	 call	 ?PostMessageToMainWindow@@YAXIIJ@Z ; PostMessageToMainWindow
  0053d	83 c4 0c	 add	 esp, 12			; 0000000cH
  00540	eb 1c		 jmp	 SHORT $LN49@SelectFram@2
$LN3@SelectFram@2:

; 362  :             }
; 363  :             else if (m_Mode == PREVIEW_STILLS)

  00542	8b 45 e8	 mov	 eax, DWORD PTR _this$[ebp]
  00545	83 38 01	 cmp	 DWORD PTR [eax], 1
  00548	75 14		 jne	 SHORT $LN49@SelectFram@2

; 364  :             {
; 365  :                 PostMessageToMainWindow(WM_COMMAND, IDM_PLAYLIST_NEXT_CIRC, 0);

  0054a	6a 00		 push	 0
  0054c	68 c3 80 00 00	 push	 32963			; 000080c3H
  00551	68 11 01 00 00	 push	 273			; 00000111H
  00556	e8 00 00 00 00	 call	 ?PostMessageToMainWindow@@YAXIIJ@Z ; PostMessageToMainWindow
  0055b	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN49@SelectFram@2:

; 366  :             }
; 367  :         }
; 368  :     }
; 369  : }

  0055e	8b e5		 mov	 esp, ebp
  00560	5d		 pop	 ebp
  00561	c3		 ret	 0
?SelectFrame@CMultiFrames@@QAEXXZ ENDP			; CMultiFrames::SelectFrame
_TEXT	ENDS
PUBLIC	?Disable@CMultiFrames@@QAEXXZ			; CMultiFrames::Disable
; Function compile flags: /Odtp
;	COMDAT ?Disable@CMultiFrames@@QAEXXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?Disable@CMultiFrames@@QAEXXZ PROC			; CMultiFrames::Disable, COMDAT
; _this$ = ecx

; 134  : {

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

; 135  :     FreeMemoryBuffer();

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?FreeMemoryBuffer@CMultiFrames@@AAEXXZ ; CMultiFrames::FreeMemoryBuffer

; 136  :     if (m_FrameFilled)

  0000f	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00012	83 78 20 00	 cmp	 DWORD PTR [eax+32], 0
  00016	74 19		 je	 SHORT $LN1@Disable

; 137  :     {
; 138  :         free(m_FrameFilled);

  00018	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0001b	8b 51 20	 mov	 edx, DWORD PTR [ecx+32]
  0001e	52		 push	 edx
  0001f	e8 00 00 00 00	 call	 _free
  00024	83 c4 04	 add	 esp, 4

; 139  :         m_FrameFilled = NULL;

  00027	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0002a	c7 40 20 00 00
	00 00		 mov	 DWORD PTR [eax+32], 0
$LN1@Disable:

; 140  :     }
; 141  :     m_Active = FALSE;

  00031	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00034	c7 41 28 00 00
	00 00		 mov	 DWORD PTR [ecx+40], 0

; 142  :     m_NavigAllowed = FALSE;

  0003b	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  0003e	c7 42 30 00 00
	00 00		 mov	 DWORD PTR [edx+48], 0

; 143  :     UpdateSquarePixelsMode(m_Source->HasSquarePixels());

  00045	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00048	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  0004b	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  0004e	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00051	8b 11		 mov	 edx, DWORD PTR [ecx]
  00053	8b c8		 mov	 ecx, eax
  00055	8b 82 ac 00 00
	00		 mov	 eax, DWORD PTR [edx+172]
  0005b	ff d0		 call	 eax
  0005d	50		 push	 eax
  0005e	e8 00 00 00 00	 call	 ?UpdateSquarePixelsMode@@YAHH@Z ; UpdateSquarePixelsMode
  00063	83 c4 04	 add	 esp, 4

; 144  :     m_Source->SetAspectRatioData();

  00066	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00069	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  0006c	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0006f	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  00072	8b 12		 mov	 edx, DWORD PTR [edx]
  00074	8b 82 a8 00 00
	00		 mov	 eax, DWORD PTR [edx+168]
  0007a	ff d0		 call	 eax

; 145  :     WorkoutOverlaySize(TRUE);

  0007c	6a 01		 push	 1
  0007e	6a 01		 push	 1
  00080	e8 00 00 00 00	 call	 ?WorkoutOverlaySize@@YAXHH@Z ; WorkoutOverlaySize
  00085	83 c4 08	 add	 esp, 8

; 146  : }

  00088	8b e5		 mov	 esp, ebp
  0008a	5d		 pop	 ebp
  0008b	c3		 ret	 0
?Disable@CMultiFrames@@QAEXXZ ENDP			; CMultiFrames::Disable
_TEXT	ENDS
PUBLIC	?Enable@CMultiFrames@@QAEXXZ			; CMultiFrames::Enable
; Function compile flags: /Odtp
;	COMDAT ?Enable@CMultiFrames@@QAEXXZ
_TEXT	SEGMENT
tv81 = -8						; size = 4
_this$ = -4						; size = 4
?Enable@CMultiFrames@@QAEXXZ PROC			; CMultiFrames::Enable, COMDAT
; _this$ = ecx

; 108  : {

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

; 109  :     AllocateMemoryBuffer();

  00009	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000c	e8 00 00 00 00	 call	 ?AllocateMemoryBuffer@CMultiFrames@@AAEXXZ ; CMultiFrames::AllocateMemoryBuffer

; 110  :     if (m_FrameFilled == NULL)

  00011	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00014	83 78 20 00	 cmp	 DWORD PTR [eax+32], 0
  00018	75 30		 jne	 SHORT $LN3@Enable@2

; 111  :     {
; 112  :         m_FrameFilled = (int*) malloc(m_NbFrames * sizeof(int));

  0001a	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0001d	8b 51 08	 mov	 edx, DWORD PTR [ecx+8]
  00020	c1 e2 02	 shl	 edx, 2
  00023	52		 push	 edx
  00024	e8 00 00 00 00	 call	 _malloc
  00029	83 c4 04	 add	 esp, 4
  0002c	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0002f	89 41 20	 mov	 DWORD PTR [ecx+32], eax

; 113  :         if (m_FrameFilled == NULL)

  00032	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00035	83 7a 20 00	 cmp	 DWORD PTR [edx+32], 0
  00039	75 0f		 jne	 SHORT $LN3@Enable@2

; 114  :         {
; 115  :            LOG(1, _T("Couldn't allocate memory for multi frames output"));

  0003b	68 00 00 00 00	 push	 OFFSET ??_C@_1GC@KOKGJOIG@?$AAC?$AAo?$AAu?$AAl?$AAd?$AAn?$AA?8?$AAt?$AA?5?$AAa?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA?5?$AAm?$AAe?$AAm?$AAo?$AAr?$AAy?$AA?5?$AAf?$AAo?$AAr?$AA?5?$AAm?$AAu?$AAl@
  00040	6a 01		 push	 1
  00042	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00047	83 c4 08	 add	 esp, 8
$LN3@Enable@2:

; 116  :         }
; 117  :     }
; 118  :     m_Active = m_MemoryBuffer && m_FrameFilled;

  0004a	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0004d	83 78 1c 00	 cmp	 DWORD PTR [eax+28], 0
  00051	74 12		 je	 SHORT $LN6@Enable@2
  00053	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00056	83 79 20 00	 cmp	 DWORD PTR [ecx+32], 0
  0005a	74 09		 je	 SHORT $LN6@Enable@2
  0005c	c7 45 f8 01 00
	00 00		 mov	 DWORD PTR tv81[ebp], 1
  00063	eb 07		 jmp	 SHORT $LN7@Enable@2
$LN6@Enable@2:
  00065	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR tv81[ebp], 0
$LN7@Enable@2:
  0006c	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  0006f	8b 45 f8	 mov	 eax, DWORD PTR tv81[ebp]
  00072	89 42 28	 mov	 DWORD PTR [edx+40], eax

; 119  :     if (m_Active)

  00075	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00078	83 79 28 00	 cmp	 DWORD PTR [ecx+40], 0
  0007c	74 50		 je	 SHORT $LN4@Enable@2

; 120  :     {
; 121  :         Reset();

  0007e	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00081	e8 00 00 00 00	 call	 ?Reset@CMultiFrames@@QAEXXZ ; CMultiFrames::Reset

; 122  :         UpdateSquarePixelsMode(TRUE);

  00086	6a 01		 push	 1
  00088	e8 00 00 00 00	 call	 ?UpdateSquarePixelsMode@@YAHH@Z ; UpdateSquarePixelsMode
  0008d	83 c4 04	 add	 esp, 4

; 123  :         AspectSettings.InitialTopOverscan = 0;

  00090	c7 05 84 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?AspectSettings@@3UTAspectSettings@@A+132, 0

; 124  :         AspectSettings.InitialBottomOverscan = 0;

  0009a	c7 05 88 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?AspectSettings@@3UTAspectSettings@@A+136, 0

; 125  :         AspectSettings.InitialLeftOverscan = 0;

  000a4	c7 05 8c 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?AspectSettings@@3UTAspectSettings@@A+140, 0

; 126  :         AspectSettings.InitialRightOverscan = 0;

  000ae	c7 05 90 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?AspectSettings@@3UTAspectSettings@@A+144, 0

; 127  :         AspectSettings.bAnalogueBlanking = FALSE;

  000b8	c7 05 08 01 00
	00 00 00 00 00	 mov	 DWORD PTR ?AspectSettings@@3UTAspectSettings@@A+264, 0

; 128  :         WorkoutOverlaySize(TRUE);

  000c2	6a 01		 push	 1
  000c4	6a 01		 push	 1
  000c6	e8 00 00 00 00	 call	 ?WorkoutOverlaySize@@YAXHH@Z ; WorkoutOverlaySize
  000cb	83 c4 08	 add	 esp, 8
$LN4@Enable@2:

; 129  :     }
; 130  : }

  000ce	8b e5		 mov	 esp, ebp
  000d0	5d		 pop	 ebp
  000d1	c3		 ret	 0
?Enable@CMultiFrames@@QAEXXZ ENDP			; CMultiFrames::Enable
PUBLIC	?HandleSwitch@CMultiFrames@@QAEXXZ		; CMultiFrames::HandleSwitch
; Function compile flags: /Odtp
;	COMDAT ?HandleSwitch@CMultiFrames@@QAEXXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?HandleSwitch@CMultiFrames@@QAEXXZ PROC			; CMultiFrames::HandleSwitch, COMDAT
; _this$ = ecx

; 159  : {

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

; 160  :     m_SwitchRequested = FALSE;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	c7 40 2c 00 00
	00 00		 mov	 DWORD PTR [eax+44], 0

; 161  :     if (IsActive())

  00011	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00014	e8 00 00 00 00	 call	 ?IsActive@CMultiFrames@@QAEHXZ ; CMultiFrames::IsActive
  00019	85 c0		 test	 eax, eax
  0001b	74 0a		 je	 SHORT $LN2@HandleSwit

; 162  :     {
; 163  :         Disable();

  0001d	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00020	e8 00 00 00 00	 call	 ?Disable@CMultiFrames@@QAEXXZ ; CMultiFrames::Disable

; 164  :     }
; 165  :     else

  00025	eb 08		 jmp	 SHORT $LN3@HandleSwit
$LN2@HandleSwit:

; 166  :     {
; 167  :         Enable();

  00027	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0002a	e8 00 00 00 00	 call	 ?Enable@CMultiFrames@@QAEXXZ ; CMultiFrames::Enable
$LN3@HandleSwit:

; 168  :     }
; 169  : }

  0002f	8b e5		 mov	 esp, ebp
  00031	5d		 pop	 ebp
  00032	c3		 ret	 0
?HandleSwitch@CMultiFrames@@QAEXXZ ENDP			; CMultiFrames::HandleSwitch
END
