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

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

INCLUDELIB OLDNAMES

PUBLIC	?hwndStatusBar@@3PAUHWND__@@A			; hwndStatusBar
PUBLIC	??_C@_1BK@LBMCNNHF@?$AAS?$AAt?$AAa?$AAr?$AAt?$AAi?$AAn?$AAg?$AA?5?$AA?4?$AA?4?$AA?4?$AA?$AA@ ; `string'
EXTRN	__imp__CreateStatusWindowW@16:PROC
EXTRN	__imp__IsWindowVisible@4:PROC
?hwndStatusBar@@3PAUHWND__@@A DD 01H DUP (?)		; hwndStatusBar
;	COMDAT ??_C@_1BK@LBMCNNHF@?$AAS?$AAt?$AAa?$AAr?$AAt?$AAi?$AAn?$AAg?$AA?5?$AA?4?$AA?4?$AA?4?$AA?$AA@
CONST	SEGMENT
??_C@_1BK@LBMCNNHF@?$AAS?$AAt?$AAa?$AAr?$AAt?$AAi?$AAn?$AAg?$AA?5?$AA?4?$AA?4?$AA?4?$AA?$AA@ DB 'S'
	DB	00H, 't', 00H, 'a', 00H, 'r', 00H, 't', 00H, 'i', 00H, 'n', 00H
	DB	'g', 00H, ' ', 00H, '.', 00H, '.', 00H, '.', 00H, 00H, 00H ; `string'
PUBLIC	?StatusBar_Height@@YAHXZ			; StatusBar_Height
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\status.cpp
;	COMDAT ?StatusBar_Height@@YAHXZ
_TEXT	SEGMENT
_Rect$ = -16						; size = 16
?StatusBar_Height@@YAHXZ PROC				; StatusBar_Height, COMDAT

; 100  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 10	 sub	 esp, 16			; 00000010H

; 101  :     RECT Rect;
; 102  :     GetClientRect(hwndStatusBar, &Rect);

  00006	8d 45 f0	 lea	 eax, DWORD PTR _Rect$[ebp]
  00009	50		 push	 eax
  0000a	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?hwndStatusBar@@3PAUHWND__@@A ; hwndStatusBar
  00010	51		 push	 ecx
  00011	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetClientRect@8

; 103  :     return (Rect.bottom - Rect.top);

  00017	8b 45 fc	 mov	 eax, DWORD PTR _Rect$[ebp+12]
  0001a	2b 45 f4	 sub	 eax, DWORD PTR _Rect$[ebp+4]

; 104  : }

  0001d	8b e5		 mov	 esp, ebp
  0001f	5d		 pop	 ebp
  00020	c3		 ret	 0
?StatusBar_Height@@YAHXZ ENDP				; StatusBar_Height
_TEXT	ENDS
PUBLIC	?StatusBar_Repaint@@YAXXZ			; StatusBar_Repaint
; Function compile flags: /Odtp
;	COMDAT ?StatusBar_Repaint@@YAXXZ
_TEXT	SEGMENT
?StatusBar_Repaint@@YAXXZ PROC				; StatusBar_Repaint, COMDAT

; 92   : {

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

; 93   :     if (IsWindowVisible(hwndStatusBar))

  00003	a1 00 00 00 00	 mov	 eax, DWORD PTR ?hwndStatusBar@@3PAUHWND__@@A ; hwndStatusBar
  00008	50		 push	 eax
  00009	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__IsWindowVisible@4

; 94   :     {
; 95   :         //InvalidateRect(hwndStatusBar, NULL, TRUE);
; 96   :     }
; 97   : }

  0000f	5d		 pop	 ebp
  00010	c3		 ret	 0
?StatusBar_Repaint@@YAXXZ ENDP				; StatusBar_Repaint
_TEXT	ENDS
PUBLIC	?StatusBar_Destroy@@YAXXZ			; StatusBar_Destroy
; Function compile flags: /Odtp
;	COMDAT ?StatusBar_Destroy@@YAXXZ
_TEXT	SEGMENT
?StatusBar_Destroy@@YAXXZ PROC				; StatusBar_Destroy, COMDAT

; 86   : {

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

; 87   :     DestroyWindow(hwndStatusBar);

  00003	a1 00 00 00 00	 mov	 eax, DWORD PTR ?hwndStatusBar@@3PAUHWND__@@A ; hwndStatusBar
  00008	50		 push	 eax
  00009	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__DestroyWindow@4

; 88   :     hwndStatusBar = NULL;

  0000f	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?hwndStatusBar@@3PAUHWND__@@A, 0 ; hwndStatusBar

; 89   : }

  00019	5d		 pop	 ebp
  0001a	c3		 ret	 0
?StatusBar_Destroy@@YAXXZ ENDP				; StatusBar_Destroy
_TEXT	ENDS
PUBLIC	?StatusBar_ShowWindow@@YAXH@Z			; StatusBar_ShowWindow
; Function compile flags: /Odtp
;	COMDAT ?StatusBar_ShowWindow@@YAXH@Z
_TEXT	SEGMENT
_bShow$ = 8						; size = 4
?StatusBar_ShowWindow@@YAXH@Z PROC			; StatusBar_ShowWindow, COMDAT

; 81   : {

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

; 82   :     ShowWindow(hwndStatusBar, (bShow)?SW_SHOW:SW_HIDE);

  00003	8b 45 08	 mov	 eax, DWORD PTR _bShow$[ebp]
  00006	f7 d8		 neg	 eax
  00008	1b c0		 sbb	 eax, eax
  0000a	83 e0 05	 and	 eax, 5
  0000d	50		 push	 eax
  0000e	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?hwndStatusBar@@3PAUHWND__@@A ; hwndStatusBar
  00014	51		 push	 ecx
  00015	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__ShowWindow@8

; 83   : }

  0001b	5d		 pop	 ebp
  0001c	c3		 ret	 0
?StatusBar_ShowWindow@@YAXH@Z ENDP			; StatusBar_ShowWindow
_TEXT	ENDS
PUBLIC	?StatusBar_Adjust@@YAHPAUHWND__@@@Z		; StatusBar_Adjust
; Function compile flags: /Odtp
;	COMDAT ?StatusBar_Adjust@@YAHPAUHWND__@@@Z
_TEXT	SEGMENT
_RectWnd$ = -40						; size = 16
_Height$ = -24						; size = 4
_Widths$ = -20						; size = 20
_hWnd$ = 8						; size = 4
?StatusBar_Adjust@@YAHPAUHWND__@@@Z PROC		; StatusBar_Adjust, COMDAT

; 62   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 28	 sub	 esp, 40			; 00000028H

; 63   :     RECT RectWnd;
; 64   :     int Height = StatusBar_Height();

  00006	e8 00 00 00 00	 call	 ?StatusBar_Height@@YAHXZ ; StatusBar_Height
  0000b	89 45 e8	 mov	 DWORD PTR _Height$[ebp], eax

; 65   : 
; 66   :     GetClientRect(hWnd, &RectWnd);

  0000e	8d 45 d8	 lea	 eax, DWORD PTR _RectWnd$[ebp]
  00011	50		 push	 eax
  00012	8b 4d 08	 mov	 ecx, DWORD PTR _hWnd$[ebp]
  00015	51		 push	 ecx
  00016	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetClientRect@8

; 67   : 
; 68   :     int Widths[STATUS_LASTONE] = {200, 400, 800, 1000, -1};

  0001c	c7 45 ec c8 00
	00 00		 mov	 DWORD PTR _Widths$[ebp], 200 ; 000000c8H
  00023	c7 45 f0 90 01
	00 00		 mov	 DWORD PTR _Widths$[ebp+4], 400 ; 00000190H
  0002a	c7 45 f4 20 03
	00 00		 mov	 DWORD PTR _Widths$[ebp+8], 800 ; 00000320H
  00031	c7 45 f8 e8 03
	00 00		 mov	 DWORD PTR _Widths$[ebp+12], 1000 ; 000003e8H
  00038	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR _Widths$[ebp+16], -1

; 69   :     if(RectWnd.right - RectWnd.left > 1000)

  0003f	8b 55 e0	 mov	 edx, DWORD PTR _RectWnd$[ebp+8]
  00042	2b 55 d8	 sub	 edx, DWORD PTR _RectWnd$[ebp]
  00045	81 fa e8 03 00
	00		 cmp	 edx, 1000		; 000003e8H
  0004b	7e 0c		 jle	 SHORT $LN1@StatusBar_

; 70   :     {
; 71   :         Widths[3] = (RectWnd.right - RectWnd.left)-100;

  0004d	8b 45 e0	 mov	 eax, DWORD PTR _RectWnd$[ebp+8]
  00050	2b 45 d8	 sub	 eax, DWORD PTR _RectWnd$[ebp]
  00053	83 e8 64	 sub	 eax, 100		; 00000064H
  00056	89 45 f8	 mov	 DWORD PTR _Widths$[ebp+12], eax
$LN1@StatusBar_:

; 72   :     }
; 73   :     SendMessage(hwndStatusBar, SB_SETPARTS, STATUS_LASTONE, (LPARAM) (LPINT) &Widths);

  00059	8d 4d ec	 lea	 ecx, DWORD PTR _Widths$[ebp]
  0005c	51		 push	 ecx
  0005d	6a 05		 push	 5
  0005f	68 04 04 00 00	 push	 1028			; 00000404H
  00064	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?hwndStatusBar@@3PAUHWND__@@A ; hwndStatusBar
  0006a	52		 push	 edx
  0006b	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16

; 74   : 
; 75   :     MoveWindow(hwndStatusBar, RectWnd.left, RectWnd.bottom - Height, RectWnd.right - RectWnd.left, Height, TRUE);

  00071	6a 01		 push	 1
  00073	8b 45 e8	 mov	 eax, DWORD PTR _Height$[ebp]
  00076	50		 push	 eax
  00077	8b 4d e0	 mov	 ecx, DWORD PTR _RectWnd$[ebp+8]
  0007a	2b 4d d8	 sub	 ecx, DWORD PTR _RectWnd$[ebp]
  0007d	51		 push	 ecx
  0007e	8b 55 e4	 mov	 edx, DWORD PTR _RectWnd$[ebp+12]
  00081	2b 55 e8	 sub	 edx, DWORD PTR _Height$[ebp]
  00084	52		 push	 edx
  00085	8b 45 d8	 mov	 eax, DWORD PTR _RectWnd$[ebp]
  00088	50		 push	 eax
  00089	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?hwndStatusBar@@3PAUHWND__@@A ; hwndStatusBar
  0008f	51		 push	 ecx
  00090	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__MoveWindow@24

; 76   :     InvalidateRect(hwndStatusBar, NULL, FALSE);

  00096	6a 00		 push	 0
  00098	6a 00		 push	 0
  0009a	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?hwndStatusBar@@3PAUHWND__@@A ; hwndStatusBar
  000a0	52		 push	 edx
  000a1	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__InvalidateRect@12

; 77   :     return TRUE;

  000a7	b8 01 00 00 00	 mov	 eax, 1

; 78   : }

  000ac	8b e5		 mov	 esp, ebp
  000ae	5d		 pop	 ebp
  000af	c3		 ret	 0
?StatusBar_Adjust@@YAHPAUHWND__@@@Z ENDP		; StatusBar_Adjust
_TEXT	ENDS
PUBLIC	?StatusBar_IsVisible@@YAHXZ			; StatusBar_IsVisible
; Function compile flags: /Odtp
;	COMDAT ?StatusBar_IsVisible@@YAHXZ
_TEXT	SEGMENT
?StatusBar_IsVisible@@YAHXZ PROC			; StatusBar_IsVisible, COMDAT

; 49   : {

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

; 50   :     return IsWindowVisible(hwndStatusBar);

  00003	a1 00 00 00 00	 mov	 eax, DWORD PTR ?hwndStatusBar@@3PAUHWND__@@A ; hwndStatusBar
  00008	50		 push	 eax
  00009	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__IsWindowVisible@4

; 51   : }

  0000f	5d		 pop	 ebp
  00010	c3		 ret	 0
?StatusBar_IsVisible@@YAHXZ ENDP			; StatusBar_IsVisible
PUBLIC	?StatusBar_ShowText@@YAXW4eStatusBarBox@@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; StatusBar_ShowText
; Function compile flags: /Odtp
;	COMDAT ?StatusBar_ShowText@@YAXW4eStatusBarBox@@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z
_TEXT	SEGMENT
_Box$ = 8						; size = 4
_Text$ = 12						; size = 4
?StatusBar_ShowText@@YAXW4eStatusBarBox@@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z PROC ; StatusBar_ShowText, COMDAT

; 54   : {

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

; 55   :     //this function shoud not be called from the output thread, use Deinterlace_SetStatus instead
; 56   :     ASSERTONOUTTHREAD;
; 57   :     SendMessage(hwndStatusBar, SB_SETTEXT, Box, (LPARAM) Text.c_str());

  00003	8b 4d 0c	 mov	 ecx, DWORD PTR _Text$[ebp]
  00006	e8 00 00 00 00	 call	 ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::c_str
  0000b	50		 push	 eax
  0000c	8b 45 08	 mov	 eax, DWORD PTR _Box$[ebp]
  0000f	50		 push	 eax
  00010	68 0b 04 00 00	 push	 1035			; 0000040bH
  00015	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?hwndStatusBar@@3PAUHWND__@@A ; hwndStatusBar
  0001b	51		 push	 ecx
  0001c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SendMessageW@16

; 58   : }

  00022	5d		 pop	 ebp
  00023	c3		 ret	 0
?StatusBar_ShowText@@YAXW4eStatusBarBox@@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ENDP ; StatusBar_ShowText
PUBLIC	?StatusBar_Init@@YAHXZ				; StatusBar_Init
; Function compile flags: /Odtp
;	COMDAT ?StatusBar_Init@@YAHXZ
_TEXT	SEGMENT
?StatusBar_Init@@YAHXZ PROC				; StatusBar_Init, COMDAT

; 38   : {

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

; 39   :     hwndStatusBar = CreateStatusWindow(WS_CHILD | WS_VISIBLE | SBARS_SIZEGRIP, _T("Starting ..."), GetMainWnd(), IDC_STATUSBAR);

  00003	68 66 07 00 00	 push	 1894			; 00000766H
  00008	e8 00 00 00 00	 call	 ?GetMainWnd@@YAPAUHWND__@@XZ ; GetMainWnd
  0000d	50		 push	 eax
  0000e	68 00 00 00 00	 push	 OFFSET ??_C@_1BK@LBMCNNHF@?$AAS?$AAt?$AAa?$AAr?$AAt?$AAi?$AAn?$AAg?$AA?5?$AA?4?$AA?4?$AA?4?$AA?$AA@
  00013	68 00 01 00 50	 push	 1342177536		; 50000100H
  00018	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__CreateStatusWindowW@16
  0001e	a3 00 00 00 00	 mov	 DWORD PTR ?hwndStatusBar@@3PAUHWND__@@A, eax ; hwndStatusBar

; 40   : 
; 41   :     if (!hwndStatusBar)

  00023	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?hwndStatusBar@@3PAUHWND__@@A, 0 ; hwndStatusBar
  0002a	75 04		 jne	 SHORT $LN1@StatusBar_@2

; 42   :     {
; 43   :         return FALSE;

  0002c	33 c0		 xor	 eax, eax
  0002e	eb 05		 jmp	 SHORT $LN2@StatusBar_@2
$LN1@StatusBar_@2:

; 44   :     }
; 45   :     return TRUE;

  00030	b8 01 00 00 00	 mov	 eax, 1
$LN2@StatusBar_@2:

; 46   : }

  00035	5d		 pop	 ebp
  00036	c3		 ret	 0
?StatusBar_Init@@YAHXZ ENDP				; StatusBar_Init
END
