	SECTION _TEXT align=1 CLASS=CODE USE32
	SECTION _DATA align=16 CLASS=DATA USE32
	SECTION _BSS align=16 CLASS=BSS USE32
	SECTION _CONST align=16 CLASS=CONST USE32
	SECTION _STRING align=4 CLASS=STRING USE32
	SECTION cstartup align=4 CLASS=INITDATA USE32
	SECTION crundown align=4 CLASS=EXITDATA USE32
	SECTION cppinit  align=4 CLASS=CPPINIT USE32
	SECTION cppexit  align=4 CLASS=CPPEXIT USE32
	GROUP DGROUP _DATA _BSS _CONST _STRING

SECTION _TEXT
;
; Line 26:	static int BarChartProc(WINDOW wnd, MESSAGE msg,
;
_BarChartProc:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	EBX
	PUSH	ESI
	PUSH	EDI
	MOV	ESI,DWORD [EBP+08H]
	MOV	EBX,DWORD [EBP+010H]
	MOV	EDI,DWORD [EBP+014H]
L_11:
;
; Line 28:	{
;
;
; Line 29:	switch (msg)    {
;
	MOV	EAX,DWORD [EBP+0CH]
	CMP	EAX,BYTE 02H
	JE	SHORT	L_14
	CMP	EAX,BYTE 07H
	JE	SHORT	L_15
	JMP	SHORT	L_13
L_14:
;
; Line 31:	if ((int)p1 == ID_HELP)    {
;
	CMP	EBX,BYTE 036H
	JNE	SHORT	L_16
;
; Line 32:	DisplayHelp(wnd, "BarChart");
;
	PUSH	DWORD L_9
	PUSH	ESI
	CALL	_DisplayHelp
	ADD	ESP,BYTE 08H
;
; Line 33:	return TRUE;
;
	MOV	EAX,01H
	JMP	SHORT	L_10
L_16:
;
; Line 35:	break;
;
	JMP	SHORT	L_12
L_15:
;
; Line 37:	Bwnd = NULL;
;
	MOV	DWORD [_Bwnd],00H
;
; Line 38:	break;
;
	JMP	SHORT	L_12
L_13:
;
; Line 40:	break;
;
	JMP	SHORT	L_12
L_12:
;
; Line 42:	return DefaultWndProc(wnd, msg, p1, p2);
;
	MOV	EAX,DWORD [ESI+00H]
	IMUL	EAX,BYTE 0CH
	CMP	DWORD [EAX+04H+_classdefs+00H],BYTE 00H
	JNE	SHORT	L_18
	PUSH	EDI
	PUSH	EBX
	MOVSX	EAX,WORD [EBP+0CH]
	PUSH	EAX
	PUSH	ESI
	MOV	EAX,DWORD [ESI+00H]
	IMUL	EAX,BYTE 0CH
	MOV	EAX,DWORD [EAX+_classdefs+00H]
	IMUL	EAX,BYTE 0CH
	CALL	DWORD [EAX+04H+_classdefs+00H]
	ADD	ESP,BYTE 010H
	JMP	SHORT	L_19
L_18:
	PUSH	EDI
	PUSH	EBX
	MOVSX	EAX,WORD [EBP+0CH]
	PUSH	EAX
	PUSH	ESI
	MOV	EAX,DWORD [ESI+00H]
	IMUL	EAX,BYTE 0CH
	CALL	DWORD [EAX+04H+_classdefs+00H]
	ADD	ESP,BYTE 010H
L_19:
L_10:
	POP	EDI
	POP	ESI
	POP	EBX
	POP	EBP
	RET
[GLOBAL	_BarChart]
;
; Line 45:	void BarChart(WINDOW pwnd)
;
_BarChart:
	PUSH	EBP
	MOV	EBP,ESP
	SUB	ESP,BYTE 08H
	PUSH	EBX
	PUSH	ESI
	PUSH	EDI
	MOV	ESI,DWORD _Bwnd
	MOV	EDI,DWORD _projs
L_22:
;
; Line 46:	{
;
;
; Line 47:	int pct = sizeof projs / sizeof(struct ProjChart);
;
	MOV	DWORD [EBP-04H],06H
;
; Line 50:	if (Bwnd == NULL)    {
;
	CMP	DWORD [ESI+00H],BYTE 00H
	JNE	NEAR	L_23
;
; Line 51:	Bwnd = CreateWindow(PICTUREBOX,
;
	PUSH	DWORD 04203H
	PUSH	DWORD _BarChartProc
	PUSH	DWORD [EBP+08H]
	PUSH	BYTE 00H
	PUSH	BYTE 02CH
	PUSH	BYTE 0CH
	PUSH	BYTE 0FFFFFFFFH
	PUSH	BYTE 0FFFFFFFFH
	PUSH	DWORD L_9
	PUSH	BYTE 08H
	CALL	_CreateWindow
	ADD	ESP,BYTE 028H
	MOV	DWORD [ESI+00H],EAX
;
; Line 60:	SendMessage(Bwnd, ADDTEXT, (PARAM) Title, 0);
;
	PUSH	BYTE 00H
	PUSH	DWORD [_Title]
	PUSH	BYTE 030H
	PUSH	DWORD [ESI+00H]
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 61:	SendMessage(Bwnd, ADDTEXT, (PARAM) "", 0);
;
	PUSH	BYTE 00H
	PUSH	DWORD L_20
	PUSH	BYTE 030H
	PUSH	DWORD [ESI+00H]
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
	MOV	EBX,00H
	JMP	SHORT	L_27
L_25:
;
; Line 63:	SendMessage(Bwnd,ADDTEXT,(PARAM)projs[i].prj,0);
;
	PUSH	BYTE 00H
	MOV	EAX,EBX
	IMUL	EAX,BYTE 0CH
	PUSH	DWORD [EDI+EAX+00H]
	PUSH	BYTE 030H
	PUSH	DWORD [ESI+00H]
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 64:	DrawBar(Bwnd, SOLIDBAR+(i%4),
;
	PUSH	BYTE 01H
	MOV	EAX,EBX
	IMUL	EAX,BYTE 0CH
	LEA	EAX,[EDI+EAX+00H]
	MOV	EAX,DWORD [EAX+08H]
	INC	EAX
	MOV	ECX,EBX
	IMUL	ECX,BYTE 0CH
	LEA	ECX,[EDI+ECX+00H]
	SUB	EAX,DWORD [ECX+04H]
	SHL	EAX,02H
	PUSH	EAX
	MOV	EAX,EBX
	ADD	EAX,BYTE 02H
	PUSH	EAX
	MOV	EAX,EBX
	IMUL	EAX,BYTE 0CH
	LEA	EAX,[EDI+EAX+00H]
	MOV	EAX,DWORD [EAX+04H]
	SHL	EAX,02H
	ADD	EAX,BYTE 0BH
	PUSH	EAX
	MOV	EAX,EBX
	AND	EAX,BYTE 03H
	INC	EAX
	MOVSX	EAX,AX
	PUSH	EAX
	PUSH	DWORD [ESI+00H]
	CALL	_DrawBar
	ADD	ESP,BYTE 018H
;
; Line 62:	for (i = 0; i < pct; i++)    {
;
L_26:
	INC	EBX
L_27:
	CMP	EBX,DWORD [EBP-04H]
	JL	SHORT	L_25
L_28:
;
; Line 69:	SendMessage(Bwnd, ADDTEXT, (PARAM) "", 0);
;
	PUSH	BYTE 00H
	PUSH	DWORD L_20
	PUSH	BYTE 030H
	PUSH	DWORD [ESI+00H]
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 70:	SendMessage(Bwnd, ADDTEXT, (PARAM) Months, 0);
;
	PUSH	BYTE 00H
	PUSH	DWORD [_Months]
	PUSH	BYTE 030H
	PUSH	DWORD [ESI+00H]
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 71:	DrawBox(Bwnd, 10, 1, pct+2, 25);
;
	PUSH	BYTE 019H
	MOV	EAX,DWORD [EBP-04H]
	ADD	EAX,BYTE 02H
	PUSH	EAX
	PUSH	BYTE 01H
	PUSH	BYTE 0AH
	PUSH	DWORD [ESI+00H]
	CALL	_DrawBox
	ADD	ESP,BYTE 014H
L_23:
;
; Line 73:	SendMessage(Bwnd, SETFOCUS, TRUE, 0);
;
	PUSH	BYTE 00H
	PUSH	BYTE 01H
	PUSH	BYTE 08H
	PUSH	DWORD [ESI+00H]
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 74:	}
;
L_21:
	POP	EDI
	POP	ESI
	POP	EBX
	MOV	ESP,EBP
	POP	EBP
	RET
SECTION _STRING
L_20:
	DB	00H
L_9:
	DB	042H,061H,072H,043H,068H,061H,072H,074H,00H
L_8:
	DB	020H,020H,020H,020H,020H,020H,020H,020H,020H,020H,020H,04AH
	DB	061H,06EH,020H,046H,065H,062H,020H,04DH,061H,072H,020H,041H
	DB	070H,072H,020H,04DH,061H,079H,020H,04AH,075H,06EH,00H
L_7:
	DB	020H,020H,020H,020H,020H,020H,020H,020H,020H,020H,020H,020H
	DB	020H,020H,050H,052H,04FH,04AH,045H,043H,054H,020H,053H,043H
	DB	048H,045H,044H,055H,04CH,045H,00H
L_6:
	DB	042H,06BH,020H,050H,061H,06CH,061H,063H,065H,00H
L_5:
	DB	04FH,075H,074H,020H,048H,073H,020H,020H,020H,00H
L_4:
	DB	053H,06BH,079H,020H,043H,06FH,06EH,064H,06FH,00H
L_3:
	DB	052H,074H,020H,033H,039H,035H,020H,020H,020H,00H
L_2:
	DB	043H,069H,074H,079H,020H,048H,061H,06CH,06CH,00H
L_1:
	DB	043H,065H,06EH,074H,065H,072H,020H,053H,074H,00H
SECTION _DATA

_projs	DD	L_1,00H,03H,L_2,00H
	DD	05H,L_3,01H,04H,L_4
	DD	02H,03H,L_5,00H,04H
	DD	L_6,01H,05H

_Title	DD	L_7

_Months	DD	L_8
SECTION _BSS

_Bwnd	RESB	04H
SECTION _CONST

SECTION _TEXT
[EXTERN	_CreateWindow]
[EXTERN	_DrawBar]
[EXTERN	_DrawBox]
[EXTERN	_classdefs]
[EXTERN	_SendMessage]
[EXTERN	_DisplayHelp]
