	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 55:	static int FindVector(WINDOW wnd, RECT rc, int x, int y)
;
_FindVector:
	PUSH	EBP
	MOV	EBP,ESP
	SUB	ESP,BYTE 01CH
	PUSH	EBX
	PUSH	ESI
	PUSH	EDI
	LEA	ESI,[EBP-018H]
	MOV	EDI,DWORD [EBP+020H]
L_2:
;
; Line 56:	{
;
;
; Line 58:	VECT *vc = wnd->VectorList;
;
	MOV	EAX,DWORD [EBP+08H]
	MOV	EAX,DWORD [EAX+0124H]
	MOV	DWORD [EBP-08H],EAX
;
; Line 59:	int i, coll = -1;
;
	MOV	EBX,0FFFFFFFFH
	MOV	DWORD [EBP-04H],00H
	JMP	NEAR	L_5
L_3:
;
; Line 61:	if ((vc+i)->vt == VECTOR)    {
;
	MOV	EAX,DWORD [EBP-08H]
	MOV	ECX,DWORD [EBP-04H]
	IMUL	ECX,BYTE 014H
	CMP	DWORD [EAX+ECX+00H],BYTE 00H
	JNE	NEAR	L_7
;
; Line 62:	rcc = (vc+i)->rc;
;
	MOV	EAX,DWORD [EBP-08H]
	MOV	ECX,DWORD [EBP-04H]
	IMUL	ECX,BYTE 014H
	LEA	EAX,[EAX+ECX+00H]
	LEA	ECX,[ESI+00H]
	PUSH	ESI
	PUSH	EDI
	PUSH	ECX
	LEA	ESI,[EAX+04H]
	MOV	EDI,ECX
	PUSH	ES
	PUSH	SS
	POP	ES
	CLD
	MOV	ECX,04H
	REP	MOVSD
	POP	ES
	POP	ECX
	POP	EDI
	POP	ESI
;
; Line 64:	if (rcc.lf == rc.lf && rcc.rt == rc.rt &&
;
	MOV	EAX,DWORD [SS:ESI+00H]
	CMP	EAX,DWORD [EBP+0CH]
	JNE	SHORT	L_9
	MOV	EAX,DWORD [SS:ESI+08H]
	CMP	EAX,DWORD [EBP+014H]
	JNE	SHORT	L_9
	MOV	EAX,DWORD [SS:ESI+04H]
	CMP	EAX,DWORD [EBP+010H]
	JNE	SHORT	L_9
	MOV	EAX,DWORD [EBP+018H]
	CMP	EAX,DWORD [SS:ESI+0CH]
	JE	NEAR	L_4
;
; Line 66:	continue;
;
L_9:
;
; Line 67:	if (rcc.tp == rcc.bt)    {
;
	MOV	EAX,DWORD [SS:ESI+04H]
	CMP	EAX,DWORD [SS:ESI+0CH]
	JNE	SHORT	L_11
;
; Line 70:	if (rc.lf+x >= rcc.lf && rc.lf+x <= rcc.rt &&
;
	MOV	EAX,DWORD [EBP+0CH]
	ADD	EAX,DWORD [EBP+01CH]
	CMP	EAX,DWORD [SS:ESI+00H]
	JL	SHORT	L_13
	MOV	EAX,DWORD [EBP+0CH]
	ADD	EAX,DWORD [EBP+01CH]
	CMP	EAX,DWORD [SS:ESI+08H]
	JG	SHORT	L_13
	MOV	EAX,DWORD [EBP+010H]
	ADD	EAX,EDI
	CMP	EAX,DWORD [SS:ESI+04H]
	JNE	SHORT	L_13
;
; Line 73:	if (rc.lf+x == rcc.lf)
;
	MOV	EAX,DWORD [EBP+0CH]
	ADD	EAX,DWORD [EBP+01CH]
	CMP	EAX,DWORD [SS:ESI+00H]
	JNE	SHORT	L_15
;
; Line 74:	coll = 0;
;
	MOV	EBX,00H
	JMP	SHORT	L_16
L_15:
;
; Line 75:	else if (rc.lf+x == rcc.rt)
;
	MOV	EAX,DWORD [EBP+0CH]
	ADD	EAX,DWORD [EBP+01CH]
	CMP	EAX,DWORD [SS:ESI+08H]
	JNE	SHORT	L_17
;
; Line 76:	coll = 2;
;
	MOV	EBX,02H
	JMP	SHORT	L_18
L_17:
;
; Line 78:	coll = 1;
;
	MOV	EBX,01H
L_18:
L_16:
L_13:
	JMP	SHORT	L_12
L_11:
;
; Line 84:	if (rc.tp+y >= rcc.tp && rc.tp+y <= rcc.bt &&
;
	MOV	EAX,DWORD [EBP+010H]
	ADD	EAX,EDI
	CMP	EAX,DWORD [SS:ESI+04H]
	JL	SHORT	L_19
	MOV	EAX,DWORD [EBP+010H]
	ADD	EAX,EDI
	CMP	EAX,DWORD [SS:ESI+0CH]
	JG	SHORT	L_19
	MOV	EAX,DWORD [EBP+0CH]
	ADD	EAX,DWORD [EBP+01CH]
	CMP	EAX,DWORD [SS:ESI+00H]
	JNE	SHORT	L_19
;
; Line 87:	if (rc.tp+y == rcc.tp)
;
	MOV	EAX,DWORD [EBP+010H]
	ADD	EAX,EDI
	CMP	EAX,DWORD [SS:ESI+04H]
	JNE	SHORT	L_21
;
; Line 88:	coll = 0;
;
	MOV	EBX,00H
	JMP	SHORT	L_22
L_21:
;
; Line 89:	else if (rc.tp+y == rcc.bt)
;
	MOV	EAX,DWORD [EBP+010H]
	ADD	EAX,EDI
	CMP	EAX,DWORD [SS:ESI+0CH]
	JNE	SHORT	L_23
;
; Line 90:	coll = 2;
;
	MOV	EBX,02H
	JMP	SHORT	L_24
L_23:
;
; Line 92:	coll = 1;
;
	MOV	EBX,01H
L_24:
L_22:
L_19:
L_12:
L_7:
;
; Line 60:	for (i = 0; i < wnd->VectorCount; i++)    {
;
L_4:
	INC	DWORD [EBP-04H]
L_5:
	MOV	EAX,DWORD [EBP+08H]
	MOV	ECX,DWORD [EBP-04H]
	CMP	ECX,DWORD [EAX+0120H]
	JL	NEAR	L_3
L_6:
;
; Line 97:	return coll;
;
	MOV	EAX,EBX
L_1:
	POP	EDI
	POP	ESI
	POP	EBX
	MOV	ESP,EBP
	POP	EBP
	RET
;
; Line 100:	static void PaintVector(WINDOW wnd, RECT rc)
;
_PaintVector:
	PUSH	EBP
	MOV	EBP,ESP
	SUB	ESP,BYTE 018H
	PUSH	EBX
	PUSH	ESI
	PUSH	EDI
	MOV	ESI,DWORD [EBP+08H]
L_30:
;
; Line 101:	{
;
;
; Line 107:	if (rc.rt == rc.lf)    {
;
	MOV	EAX,DWORD [EBP+014H]
	CMP	EAX,DWORD [EBP+0CH]
	JNE	SHORT	L_31
;
; Line 109:	nc = '³';
;
	MOV	DWORD [EBP-08H],0FFFFFFB3H
;
; Line 110:	vertvect = 1;
;
	MOV	DWORD [L_27],01H
;
; Line 111:	len = rc.bt-rc.tp+1;
;
	MOV	EAX,DWORD [EBP+018H]
	SUB	EAX,DWORD [EBP+010H]
	INC	EAX
	MOV	DWORD [EBP-010H],EAX
	JMP	SHORT	L_32
L_31:
;
; Line 115:	nc = 'Ä';
;
	MOV	DWORD [EBP-08H],0FFFFFFC4H
;
; Line 116:	vertvect = 0;
;
	MOV	DWORD [L_27],00H
;
; Line 117:	len = rc.rt-rc.lf+1;
;
	MOV	EAX,DWORD [EBP+014H]
	SUB	EAX,DWORD [EBP+0CH]
	INC	EAX
	MOV	DWORD [EBP-010H],EAX
L_32:
	MOV	EBX,00H
	JMP	NEAR	L_35
L_33:
;
; Line 121:	newch = nc;
;
	MOV	EAX,DWORD [EBP-08H]
	MOV	DWORD [EBP-04H],EAX
;
; Line 122:	xi = yi = 0;
;
	MOV	EDI,00H
	MOV	DWORD [EBP-014H],00H
;
; Line 123:	if (vertvect)
;
	CMP	DWORD [L_27],BYTE 00H
	JE	SHORT	L_37
;
; Line 124:	yi = i;
;
	MOV	EDI,EBX
	JMP	SHORT	L_38
L_37:
;
; Line 126:	xi = i;
;
	MOV	DWORD [EBP-014H],EBX
L_38:
;
; Line 128:	ch = videochar(GetClientLeft(wnd)+rc.lf+xi,                     GetClientTop(wnd)+rc.tp+yi);
;
	MOV	EAX,DWORD [ESI+054H]
	AND	EAX,0100H
	JE	SHORT	L_39
	MOV	EAX,DWORD [ESI+054H]
	AND	EAX,BYTE 08H
	JE	SHORT	L_39
	MOV	EAX,DWORD [ESI+054H]
	AND	EAX,010000H
	JE	SHORT	L_39
	MOV	EAX,03H
	JMP	SHORT	L_40
L_39:
	MOV	EAX,DWORD [ESI+054H]
	AND	EAX,0100H
	JE	SHORT	L_44
	MOV	EAX,DWORD [ESI+054H]
	AND	EAX,BYTE 08H
	JNE	SHORT	L_43
L_44:
	MOV	EAX,DWORD [ESI+054H]
	AND	EAX,0100H
	JE	SHORT	L_41
	MOV	EAX,DWORD [ESI+054H]
	AND	EAX,010000H
	JE	SHORT	L_41
L_43:
	MOV	EAX,02H
	JMP	SHORT	L_42
L_41:
	MOV	EAX,DWORD [ESI+054H]
	AND	EAX,014108H
	JE	SHORT	L_45
	MOV	EAX,01H
	JMP	SHORT	L_46
L_45:
	MOV	EAX,00H
L_46:
L_42:
L_40:
	ADD	EAX,DWORD [ESI+010H]
	ADD	EAX,DWORD [EBP+010H]
	ADD	EAX,EDI
	PUSH	EAX
	MOV	EAX,DWORD [ESI+054H]
	AND	EAX,04000H
	JE	SHORT	L_47
	MOV	EAX,01H
	JMP	SHORT	L_48
L_47:
	MOV	EAX,00H
L_48:
	ADD	EAX,DWORD [ESI+0CH]
	ADD	EAX,DWORD [EBP+0CH]
	ADD	EAX,DWORD [EBP-014H]
	PUSH	EAX
	CALL	_GetVideoChar
	ADD	ESP,BYTE 08H
	MOVZX	EAX,AL
	MOV	DWORD [EBP-0CH],EAX
	MOV	DWORD [L_25],00H
	JMP	NEAR	L_51
L_49:
;
; Line 130:	if (ch == CharInWnd[cw])    {
;
	MOV	EAX,DWORD [L_25]
	MOVZX	EAX,BYTE [EAX+_CharInWnd+00H]
	CMP	DWORD [EBP-0CH],EAX
	JNE	NEAR	L_53
;
; Line 132:	if ((coll=FindVector(wnd, rc, xi, yi)) != -1) {
;
	PUSH	EDI
	PUSH	DWORD [EBP-014H]
	PUSH	DWORD [EBP+0CH+0CH]
	PUSH	DWORD [EBP+0CH+08H]
	PUSH	DWORD [EBP+0CH+04H]
	PUSH	DWORD [EBP+0CH+00H]
	PUSH	ESI
	CALL	_FindVector
	ADD	ESP,BYTE 01CH
	MOV	DWORD [L_28],EAX
	CMP	EAX,BYTE 0FFFFFFFFH
	JE	SHORT	L_55
;
; Line 134:	if (i == len-1)
;
	MOV	EAX,DWORD [EBP-010H]
	DEC	EAX
	CMP	EBX,EAX
	JNE	SHORT	L_57
;
; Line 135:	fml = 2;
;
	MOV	DWORD [L_26],02H
	JMP	SHORT	L_58
L_57:
;
; Line 136:	else if (i == 0)
;
	TEST	EBX,EBX
	JNE	SHORT	L_59
;
; Line 137:	fml = 0;
;
	MOV	DWORD [L_26],00H
	JMP	SHORT	L_60
L_59:
;
; Line 139:	fml = 1;
;
	MOV	DWORD [L_26],01H
L_60:
L_58:
;
; Line 140:	newch = VectCvt[coll][cw][vertvect][fml];
;
	MOV	EAX,DWORD [L_28]
	IMUL	EAX,BYTE 058H
	MOV	ECX,DWORD [L_25]
	LEA	EAX,[EAX+ECX*8+_VectCvt+00H+00H]
	MOV	ECX,DWORD [L_27]
	LEA	EAX,[EAX+ECX*4+00H]
	MOV	ECX,DWORD [L_26]
	MOVZX	ECX,BYTE [EAX+ECX+00H]
	MOV	DWORD [EBP-04H],ECX
L_55:
L_53:
;
; Line 129:	for (cw = 0; cw < sizeof(CharInWnd); cw++)    {
;
L_50:
	INC	DWORD [L_25]
L_51:
	CMP	DWORD [L_25],BYTE 0CH
	JL	NEAR	L_49
L_52:
;
; Line 144:	PutWindowChar(wnd, newch, rc.lf+xi, rc.tp+yi);
;
	MOV	EAX,DWORD [EBP+010H]
	ADD	EAX,EDI
	PUSH	EAX
	MOV	EAX,DWORD [EBP+0CH]
	ADD	EAX,DWORD [EBP-014H]
	PUSH	EAX
	PUSH	DWORD [EBP-04H]
	PUSH	ESI
	CALL	_PutWindowChar
	ADD	ESP,BYTE 010H
;
; Line 120:	for (i = 0; i < len; i++)    {
;
L_34:
	INC	EBX
L_35:
	CMP	EBX,DWORD [EBP-010H]
	JL	NEAR	L_33
L_36:
;
; Line 146:	}
;
L_29:
	POP	EDI
	POP	ESI
	POP	EBX
	MOV	ESP,EBP
	POP	EBP
	RET
;
; Line 148:	static void PaintBar(WINDOW wnd, RECT rc, enum VectTypes vt)
;
_PaintBar:
	PUSH	EBP
	MOV	EBP,ESP
	SUB	ESP,BYTE 020H
	PUSH	EBX
	PUSH	ESI
	PUSH	EDI
L_63:
;
; Line 149:	{
;
;
; Line 151:	unsigned int tys[] = {219, 178, 177, 176};
;
	PUSH	ESI
	PUSH	EDI
	MOV	ESI,DWORD L_61
	LEA	EDI,[EBP-014H]
	PUSH	SS
	POP	ES
	CLD
	MOV	ECX,04H
	REP	MOVSD
	POP	EDI
	POP	ESI
;
; Line 154:	unsigned int nc = tys[vt-1];
;
	MOV	EAX,DWORD [EBP+01CH]
	DEC	EAX
	MOV	EAX,DWORD [EBP+EAX*4-014H]
	MOV	DWORD [EBP-04H],EAX
;
; Line 156:	if (rc.rt == rc.lf)    {
;
	MOV	EAX,DWORD [EBP+014H]
	CMP	EAX,DWORD [EBP+0CH]
	JNE	SHORT	L_64
;
; Line 158:	vertbar = 1;
;
	MOV	DWORD [EBP-01CH],01H
;
; Line 159:	len = rc.bt-rc.tp+1;
;
	MOV	EAX,DWORD [EBP+018H]
	SUB	EAX,DWORD [EBP+010H]
	INC	EAX
	MOV	DWORD [EBP-018H],EAX
	JMP	SHORT	L_65
L_64:
;
; Line 163:	vertbar = 0;
;
	MOV	DWORD [EBP-01CH],00H
;
; Line 164:	len = rc.rt-rc.lf+1;
;
	MOV	EAX,DWORD [EBP+014H]
	SUB	EAX,DWORD [EBP+0CH]
	INC	EAX
	MOV	DWORD [EBP-018H],EAX
L_65:
	MOV	EBX,00H
	JMP	SHORT	L_68
L_66:
;
; Line 168:	int xi = 0, yi = 0;
;
	MOV	EDI,00H
	MOV	ESI,00H
;
; Line 169:	if (vertbar)
;
	CMP	DWORD [EBP-01CH],BYTE 00H
	JE	SHORT	L_70
;
; Line 170:	yi = i;
;
	MOV	ESI,EBX
	JMP	SHORT	L_71
L_70:
;
; Line 172:	xi = i;
;
	MOV	EDI,EBX
L_71:
;
; Line 173:	PutWindowChar(wnd, nc, rc.lf+xi, rc.tp+yi);
;
	MOV	EAX,DWORD [EBP+010H]
	ADD	EAX,ESI
	PUSH	EAX
	MOV	EAX,DWORD [EBP+0CH]
	ADD	EAX,EDI
	PUSH	EAX
	PUSH	DWORD [EBP-04H]
	PUSH	DWORD [EBP+08H]
	CALL	_PutWindowChar
	ADD	ESP,BYTE 010H
;
; Line 167:	for (i = 0; i < len; i++)    {
;
L_67:
	INC	EBX
L_68:
	CMP	EBX,DWORD [EBP-018H]
	JL	SHORT	L_66
L_69:
;
; Line 175:	}
;
L_62:
	POP	EDI
	POP	ESI
	POP	EBX
	MOV	ESP,EBP
	POP	EBP
	RET
;
; Line 177:	static void PaintMsg(WINDOW wnd)
;
_PaintMsg:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	EBX
	PUSH	ESI
	PUSH	EDI
	MOV	EDI,DWORD [EBP+08H]
L_73:
;
; Line 178:	{
;
;
; Line 180:	VECT *vc = wnd->VectorList;
;
	MOV	ESI,DWORD [EDI+0124H]
	MOV	EBX,00H
	JMP	SHORT	L_76
L_74:
;
; Line 182:	if (vc->vt == VECTOR)
;
	CMP	DWORD [ESI+00H],BYTE 00H
	JNE	SHORT	L_78
;
; Line 183:	PaintVector(wnd, vc->rc);
;
	PUSH	DWORD [ESI+04H+0CH]
	PUSH	DWORD [ESI+04H+08H]
	PUSH	DWORD [ESI+04H+04H]
	PUSH	DWORD [ESI+04H+00H]
	PUSH	EDI
	CALL	_PaintVector
	ADD	ESP,BYTE 014H
	JMP	SHORT	L_79
L_78:
;
; Line 185:	PaintBar(wnd, vc->rc, vc->vt);
;
	MOVSX	EAX,WORD [ESI+00H]
	PUSH	EAX
	PUSH	DWORD [ESI+04H+0CH]
	PUSH	DWORD [ESI+04H+08H]
	PUSH	DWORD [ESI+04H+04H]
	PUSH	DWORD [ESI+04H+00H]
	PUSH	EDI
	CALL	_PaintBar
	ADD	ESP,BYTE 018H
L_79:
;
; Line 186:	vc++;
;
	ADD	ESI,BYTE 014H
;
; Line 181:	for (i = 0; i < wnd->VectorCount; i++)    {
;
L_75:
	INC	EBX
L_76:
	CMP	EBX,DWORD [EDI+0120H]
	JL	SHORT	L_74
L_77:
;
; Line 188:	}
;
L_72:
	POP	EDI
	POP	ESI
	POP	EBX
	POP	EBP
	RET
;
; Line 190:	static void DrawVectorMsg(WINDOW wnd,PARAM p1,enum VectTypes vt)
;
_DrawVectorMsg:
	PUSH	EBP
	MOV	EBP,ESP
	SUB	ESP,BYTE 014H
	PUSH	EBX
	PUSH	ESI
	MOV	ESI,DWORD [EBP+08H]
	MOV	EBX,DWORD [EBP+0CH]
L_81:
;
; Line 191:	{
;
;
; Line 192:	if (p1)    {
;
	TEST	EBX,EBX
	JE	SHORT	L_82
;
; Line 194:	wnd->VectorList = DFrealloc(wnd->VectorList,
;
	MOV	EAX,DWORD [ESI+0120H]
	INC	EAX
	IMUL	EAX,BYTE 014H
	PUSH	EAX
	PUSH	DWORD [ESI+0124H]
	CALL	_DFrealloc
	ADD	ESP,BYTE 08H
	MOV	DWORD [ESI+0124H],EAX
;
; Line 196:	vc.vt = vt;
;
	MOV	EAX,DWORD [EBP+010H]
	MOV	DWORD [EBP-014H],EAX
;
; Line 197:	vc.rc = *(RECT *)p1;
;
	PUSH	ESI
	PUSH	EDI
	LEA	ESI,[EBX+00H]
	LEA	EDI,[EBP-010H]
	PUSH	SS
	POP	ES
	CLD
	MOV	ECX,04H
	REP	MOVSD
	POP	EDI
	POP	ESI
;
; Line 198:	*(((VECT *)(wnd->VectorList))+wnd->VectorCount)=vc;
;
	MOV	EAX,DWORD [ESI+0124H]
	MOV	ECX,DWORD [ESI+0120H]
	IMUL	ECX,BYTE 014H
	PUSH	ESI
	PUSH	EDI
	PUSH	ECX
	LEA	ESI,[EBP-014H]
	LEA	EDI,[EAX+ECX+00H]
	PUSH	SS
	POP	ES
	CLD
	MOV	ECX,05H
	REP	MOVSD
	POP	ECX
	POP	EDI
	POP	ESI
;
; Line 199:	wnd->VectorCount++;
;
	INC	DWORD [ESI+0120H]
L_82:
;
; Line 201:	}
;
L_80:
	POP	ESI
	POP	EBX
	MOV	ESP,EBP
	POP	EBP
	RET
;
; Line 203:	static void DrawBoxMsg(WINDOW wnd, PARAM p1)
;
_DrawBoxMsg:
	PUSH	EBP
	MOV	EBP,ESP
	SUB	ESP,BYTE 010H
	PUSH	EBX
	PUSH	ESI
	PUSH	EDI
	LEA	ESI,[EBP-010H]
	MOV	EBX,DWORD [EBP+0CH]
	MOV	EDI,DWORD [EBP+08H]
L_85:
;
; Line 204:	{
;
;
; Line 205:	if (p1)    {
;
	TEST	EBX,EBX
	JE	NEAR	L_86
;
; Line 206:	RECT rc = *(RECT *)p1;
;
	LEA	EAX,[ESI+00H]
	PUSH	ESI
	PUSH	EDI
	LEA	ESI,[EBX+00H]
	MOV	EDI,EAX
	PUSH	ES
	PUSH	SS
	POP	ES
	CLD
	MOV	ECX,04H
	REP	MOVSD
	POP	ES
	POP	EDI
	POP	ESI
;
; Line 207:	rc.bt = rc.tp;
;
	MOV	EAX,DWORD [SS:ESI+04H]
	MOV	DWORD [SS:ESI+0CH],EAX
;
; Line 208:	SendMessage(wnd, DRAWVECTOR, (PARAM) &rc, TRUE);
;
	PUSH	BYTE 01H
	PUSH	ESI
	PUSH	BYTE 04FH
	PUSH	EDI
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 209:	rc = *(RECT *)p1;
;
	LEA	EAX,[ESI+00H]
	PUSH	ESI
	PUSH	EDI
	LEA	ESI,[EBX+00H]
	MOV	EDI,EAX
	PUSH	ES
	PUSH	SS
	POP	ES
	CLD
	MOV	ECX,04H
	REP	MOVSD
	POP	ES
	POP	EDI
	POP	ESI
;
; Line 210:	rc.lf = rc.rt;
;
	MOV	EAX,DWORD [SS:ESI+08H]
	MOV	DWORD [SS:ESI+00H],EAX
;
; Line 211:	SendMessage(wnd, DRAWVECTOR, (PARAM) &rc, FALSE);
;
	PUSH	BYTE 00H
	PUSH	ESI
	PUSH	BYTE 04FH
	PUSH	EDI
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 212:	rc = *(RECT *)p1;
;
	LEA	EAX,[ESI+00H]
	PUSH	ESI
	PUSH	EDI
	LEA	ESI,[EBX+00H]
	MOV	EDI,EAX
	PUSH	ES
	PUSH	SS
	POP	ES
	CLD
	MOV	ECX,04H
	REP	MOVSD
	POP	ES
	POP	EDI
	POP	ESI
;
; Line 213:	rc.tp = rc.bt;
;
	MOV	EAX,DWORD [SS:ESI+0CH]
	MOV	DWORD [SS:ESI+04H],EAX
;
; Line 214:	SendMessage(wnd, DRAWVECTOR, (PARAM) &rc, TRUE);
;
	PUSH	BYTE 01H
	PUSH	ESI
	PUSH	BYTE 04FH
	PUSH	EDI
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 215:	rc = *(RECT *)p1;
;
	LEA	EAX,[ESI+00H]
	PUSH	ESI
	PUSH	EDI
	LEA	ESI,[EBX+00H]
	MOV	EDI,EAX
	PUSH	ES
	PUSH	SS
	POP	ES
	CLD
	MOV	ECX,04H
	REP	MOVSD
	POP	ES
	POP	EDI
	POP	ESI
;
; Line 216:	rc.rt = rc.lf;
;
	MOV	EAX,DWORD [SS:ESI+00H]
	MOV	DWORD [SS:ESI+08H],EAX
;
; Line 217:	SendMessage(wnd, DRAWVECTOR, (PARAM) &rc, FALSE);
;
	PUSH	BYTE 00H
	PUSH	ESI
	PUSH	BYTE 04FH
	PUSH	EDI
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
L_86:
;
; Line 219:	}
;
L_84:
	POP	EDI
	POP	ESI
	POP	EBX
	MOV	ESP,EBP
	POP	EBP
	RET
[GLOBAL	_PictureProc]
;
; Line 221:	int PictureProc(WINDOW wnd, MESSAGE msg, PARAM p1, PARAM p2)
;
_PictureProc:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	EBX
	PUSH	ESI
	PUSH	EDI
	MOV	EBX,DWORD [EBP+08H]
	MOV	ESI,DWORD [EBP+010H]
	MOV	EDI,DWORD [EBP+014H]
L_89:
;
; Line 222:	{
;
;
; Line 223:	switch (msg)    {
;
	MOV	EAX,DWORD [EBP+0CH]
	CMP	EAX,BYTE 04FH
	JE	SHORT	L_93
	JA	SHORT	L_97
	CMP	EAX,BYTE 09H
	JE	SHORT	L_92
	JA	NEAR	L_91
	CMP	EAX,BYTE 07H
	JE	SHORT	L_96
	JMP	NEAR	L_91
L_97:
	CMP	EAX,BYTE 051H
	JE	SHORT	L_95
	JA	NEAR	L_91
	CMP	EAX,BYTE 050H
	JE	SHORT	L_94
	JMP	SHORT	L_91
L_92:
;
; Line 225:	BaseWndProc(PICTUREBOX, wnd, msg, p1, p2);
;
	PUSH	EDI
	PUSH	ESI
	MOVSX	EAX,WORD [EBP+0CH]
	PUSH	EAX
	PUSH	EBX
	MOV	EAX,DWORD [_classdefs+060H]
	IMUL	EAX,BYTE 0CH
	CALL	DWORD [EAX+04H+_classdefs+00H]
	ADD	ESP,BYTE 010H
;
; Line 226:	PaintMsg(wnd);
;
	PUSH	EBX
	CALL	_PaintMsg
	POP	ECX
;
; Line 227:	return TRUE;
;
	MOV	EAX,01H
	JMP	SHORT	L_88
L_93:
;
; Line 229:	DrawVectorMsg(wnd, p1, VECTOR);
;
	PUSH	BYTE 00H
	PUSH	ESI
	PUSH	EBX
	CALL	_DrawVectorMsg
	ADD	ESP,BYTE 0CH
;
; Line 230:	return TRUE;
;
	MOV	EAX,01H
	JMP	SHORT	L_88
L_94:
;
; Line 232:	DrawBoxMsg(wnd, p1);
;
	PUSH	ESI
	PUSH	EBX
	CALL	_DrawBoxMsg
	ADD	ESP,BYTE 08H
;
; Line 233:	return TRUE;
;
	MOV	EAX,01H
	JMP	SHORT	L_88
L_95:
;
; Line 235:	DrawVectorMsg(wnd, p1, (enum VectTypes)p2);
;
	MOV	EAX,EDI
	MOVSX	EAX,AX
	PUSH	EAX
	PUSH	ESI
	PUSH	EBX
	CALL	_DrawVectorMsg
	ADD	ESP,BYTE 0CH
;
; Line 236:	return TRUE;
;
	MOV	EAX,01H
	JMP	SHORT	L_88
L_96:
;
; Line 238:	if (wnd->VectorList != NULL)
;
	CMP	DWORD [EBX+0124H],BYTE 00H
	JE	SHORT	L_98
;
; Line 239:	free(wnd->VectorList);
;
	PUSH	DWORD [EBX+0124H]
	CALL	_free
	POP	ECX
L_98:
;
; Line 240:	break;
;
	JMP	SHORT	L_90
L_91:
;
; Line 242:	break;
;
	JMP	SHORT	L_90
L_90:
;
; Line 244:	return BaseWndProc(PICTUREBOX, wnd, msg, p1, p2);
;
	PUSH	EDI
	PUSH	ESI
	MOVSX	EAX,WORD [EBP+0CH]
	PUSH	EAX
	PUSH	EBX
	MOV	EAX,DWORD [_classdefs+060H]
	IMUL	EAX,BYTE 0CH
	CALL	DWORD [EAX+04H+_classdefs+00H]
	ADD	ESP,BYTE 010H
L_88:
	POP	EDI
	POP	ESI
	POP	EBX
	POP	EBP
	RET
;
; Line 247:	static RECT PictureRect(int x, int y, int len, int hv)
;
_PictureRect:
	PUSH	EBP
	MOV	EBP,ESP
	SUB	ESP,BYTE 014H
	PUSH	EBX
	PUSH	ESI
	LEA	ESI,[EBP-010H]
	MOV	EBX,DWORD [EBP+014H]
L_101:
;
; Line 248:	{
;
;
; Line 250:	rc.lf = rc.rt = x;
;
	MOV	EAX,DWORD [EBP+0CH]
	MOV	DWORD [SS:ESI+08H],EAX
	MOV	DWORD [SS:ESI+00H],EAX
;
; Line 251:	rc.tp = rc.bt = y;
;
	MOV	EAX,DWORD [EBP+010H]
	MOV	DWORD [SS:ESI+0CH],EAX
	MOV	DWORD [SS:ESI+04H],EAX
;
; Line 252:	if (hv)
;
	CMP	DWORD [EBP+018H],BYTE 00H
	JE	SHORT	L_102
;
; Line 254:	rc.rt += len-1;
;
	MOV	EAX,EBX
	DEC	EAX
	ADD	DWORD [SS:ESI+08H],EAX
	JMP	SHORT	L_103
L_102:
;
; Line 257:	rc.bt += len-1;
;
	MOV	EAX,EBX
	DEC	EAX
	ADD	DWORD [SS:ESI+0CH],EAX
L_103:
;
; Line 258:	return rc;
;
	MOV	EAX,DWORD [EBP+08H]
	PUSH	ESI
	PUSH	EDI
	LEA	EDI,[EAX+00H]
	PUSH	DS
	PUSH	SS
	PUSH	SS
	POP	ES
	POP	DS
	CLD
	MOV	ECX,04H
	REP	MOVSD
	POP	DS
	POP	EDI
	POP	ESI
	MOV	EAX,DWORD [EBP+08H]
L_100:
	POP	ESI
	POP	EBX
	MOV	ESP,EBP
	POP	EBP
	RET
[GLOBAL	_DrawVector]
;
; Line 261:	void DrawVector(WINDOW wnd, int x, int y, int len, int hv)
;
_DrawVector:
	PUSH	EBP
	MOV	EBP,ESP
	SUB	ESP,BYTE 024H
L_105:
;
; Line 262:	{
;
;
; Line 263:	RECT rc = PictureRect(x,y,len,hv);
;
	PUSH	DWORD [EBP+018H]
	PUSH	DWORD [EBP+014H]
	PUSH	DWORD [EBP+010H]
	PUSH	DWORD [EBP+0CH]
	LEA	EAX,[EBP-010H]
	PUSH	EAX
	CALL	_PictureRect
	ADD	ESP,BYTE 014H
	PUSH	ESI
	PUSH	EDI
	LEA	ESI,[EAX+00H]
	LEA	EDI,[EBP-020H]
	PUSH	SS
	POP	ES
	CLD
	MOV	ECX,04H
	REP	MOVSD
	POP	EDI
	POP	ESI
;
; Line 264:	SendMessage(wnd, DRAWVECTOR, (PARAM) &rc, 0);
;
	PUSH	BYTE 00H
	LEA	EAX,[EBP-020H]
	PUSH	EAX
	PUSH	BYTE 04FH
	PUSH	DWORD [EBP+08H]
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 265:	}
;
L_104:
	MOV	ESP,EBP
	POP	EBP
	RET
[GLOBAL	_DrawBox]
;
; Line 267:	void DrawBox(WINDOW wnd, int x, int y, int ht, int wd)
;
_DrawBox:
	PUSH	EBP
	MOV	EBP,ESP
	SUB	ESP,BYTE 014H
	PUSH	EBX
	PUSH	ESI
	PUSH	EDI
	MOV	EBX,DWORD [EBP+010H]
	LEA	ESI,[EBP-010H]
	MOV	EDI,DWORD [EBP+0CH]
L_107:
;
; Line 268:	{
;
;
; Line 270:	rc.lf = x;
;
	MOV	DWORD [SS:ESI+00H],EDI
;
; Line 271:	rc.tp = y;
;
	MOV	DWORD [SS:ESI+04H],EBX
;
; Line 272:	rc.rt = x+wd-1;
;
	MOV	EAX,EDI
	ADD	EAX,DWORD [EBP+018H]
	DEC	EAX
	MOV	DWORD [SS:ESI+08H],EAX
;
; Line 273:	rc.bt = y+ht-1;
;
	MOV	EAX,EBX
	ADD	EAX,DWORD [EBP+014H]
	DEC	EAX
	MOV	DWORD [SS:ESI+0CH],EAX
;
; Line 274:	SendMessage(wnd, DRAWBOX, (PARAM) &rc, 0);
;
	PUSH	BYTE 00H
	PUSH	ESI
	PUSH	BYTE 050H
	PUSH	DWORD [EBP+08H]
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 275:	}
;
L_106:
	POP	EDI
	POP	ESI
	POP	EBX
	MOV	ESP,EBP
	POP	EBP
	RET
[GLOBAL	_DrawBar]
;
; Line 277:	void DrawBar(WINDOW wnd,enum VectTypes vt,
;
_DrawBar:
	PUSH	EBP
	MOV	EBP,ESP
	SUB	ESP,BYTE 024H
L_109:
;
; Line 279:	{
;
;
; Line 280:	RECT rc = PictureRect(x,y,len,hv);
;
	PUSH	DWORD [EBP+01CH]
	PUSH	DWORD [EBP+018H]
	PUSH	DWORD [EBP+014H]
	PUSH	DWORD [EBP+010H]
	LEA	EAX,[EBP-010H]
	PUSH	EAX
	CALL	_PictureRect
	ADD	ESP,BYTE 014H
	PUSH	ESI
	PUSH	EDI
	LEA	ESI,[EAX+00H]
	LEA	EDI,[EBP-020H]
	PUSH	SS
	POP	ES
	CLD
	MOV	ECX,04H
	REP	MOVSD
	POP	EDI
	POP	ESI
;
; Line 281:	SendMessage(wnd, DRAWBAR, (PARAM) &rc, (PARAM) vt);
;
	PUSH	DWORD [EBP+0CH]
	LEA	EAX,[EBP-020H]
	PUSH	EAX
	PUSH	BYTE 051H
	PUSH	DWORD [EBP+08H]
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 282:	}
;
L_108:
	MOV	ESP,EBP
	POP	EBP
	RET
SECTION _DATA
[GLOBAL	_CharInWnd]

_CharInWnd	DB	0C4H,0B3H,0DAH,0BFH,0D9H,0C0H,0C5H,0C3H,0B4H,0C1H,0C2H,00H
[GLOBAL	_VectCvt]

_VectCvt	DB	0C4H,0C4H,0C4H,00H,0DAH,0C3H,0C0H,00H,0DAH,0C2H,0BFH,00H
	DB	0B3H,0B3H,0B3H,00H,0DAH,0C2H,0C2H,00H,0DAH,0C3H,0C3H,00H
	DB	0BFH,0BFH,0BFH,00H,0BFH,0BFH,0BFH,00H,0D9H,0D9H,0D9H,00H
	DB	0D9H,0D9H,0D9H,00H,0C0H,0C1H,0C1H,00H,0C3H,0C3H,0C0H,00H
	DB	0C5H,0C5H,0C5H,00H,0C5H,0C5H,0C5H,00H,0C3H,0C5H,0C5H,00H
	DB	0C3H,0C3H,0C3H,00H,0B4H,0B4H,0B4H,00H,0B4H,0B4H,0B4H,00H
	DB	0C1H,0C1H,0C1H,00H,0C1H,0C1H,0C1H,00H,0C2H,0C2H,0C2H,00H
	DB	0C2H,0C5H,0C5H,00H,0C4H,0C4H,0C4H,00H,0C2H,0C5H,0C1H,00H
	DB	0C3H,0C5H,0B4H,00H,0B3H,0B3H,0B3H,00H,0DAH,0DAH,0DAH,00H
	DB	0DAH,0DAH,0DAH,00H,0BFH,0BFH,0BFH,00H,0BFH,0BFH,0BFH,00H
	DB	0D9H,0D9H,0D9H,00H,0D9H,0D9H,0D9H,00H,0C0H,0C0H,0C0H,00H
	DB	0C0H,0C0H,0C0H,00H,0C5H,0C5H,0C5H,00H,0C5H,0C5H,0C5H,00H
	DB	0C3H,0C3H,0C3H,00H,0C3H,0C3H,0C3H,00H,0C5H,0C5H,0B4H,00H
	DB	0B4H,0B4H,0B4H,00H,0C1H,0C1H,0C1H,00H,0C5H,0C5H,0C1H,00H
	DB	0C2H,0C2H,0C2H,00H,0C2H,0C2H,0C2H,00H,0C4H,0C4H,0C4H,00H
	DB	0BFH,0B4H,0D9H,00H,0C0H,0C1H,0D9H,00H,0B3H,0B3H,0B3H,00H
	DB	0DAH,0DAH,0DAH,00H,0DAH,0DAH,0DAH,00H,0C2H,0C2H,0BFH,00H
	DB	0BFH,0B4H,0B4H,00H,0C1H,0C1H,0D9H,00H,0B4H,0B4H,0D9H,00H
	DB	0C0H,0C0H,0C0H,00H,0C0H,0C0H,0C0H,00H,0C5H,0C5H,0C5H,00H
	DB	0C5H,0C5H,0C5H,00H,0C3H,0C3H,0C3H,00H,0C3H,0C3H,0C3H,00H
	DB	0C5H,0C5H,0B4H,00H,0B4H,0B4H,0B4H,00H,0C1H,0C1H,0C1H,00H
	DB	0C5H,0C5H,0C1H,00H,0C2H,0C2H,0C2H,00H,0C2H,0C2H,0C2H,00H

L_61	DD	0DBH,0B2H,0B1H,0B0H
SECTION _BSS

L_25	RESB	04H

L_26	RESB	04H

L_27	RESB	04H

L_28	RESB	04H
SECTION _CONST

SECTION _TEXT
[EXTERN	_DFrealloc]
[EXTERN	_GetVideoChar]
[EXTERN	_PutWindowChar]
[EXTERN	_free]
[EXTERN	_classdefs]
[EXTERN	_SendMessage]
