	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 8:	static int SetTextMsg(WINDOW wnd, char *Buf, BOOL wide)
;
_SetTextMsg:
	PUSH	EBP
	MOV	EBP,ESP
	SUB	ESP,BYTE 01CH
	PUSH	EBX
	PUSH	ESI
	PUSH	EDI
L_2:
;
; Line 9:	{
;
;
; Line 12:	int attr = clr(WndForeground(wnd), WndBackground(wnd));
;
	MOV	EAX,DWORD [EBP+08H]
	MOV	ECX,DWORD [EBP+08H]
	MOVSX	ECX,BYTE [ECX+035H]
	SAL	ECX,04H
	MOVSX	EAX,BYTE [EAX+034H]
	OR	EAX,ECX
	MOV	DWORD [EBP-08H],EAX
;
; Line 13:	int x = 0;
;
	MOV	EBX,00H
;
; Line 14:	int sz = 0;
;
	MOV	DWORD [EBP-04H],00H
;
; Line 17:	if (wide)
;
	CMP	DWORD [EBP+010H],BYTE 00H
	JE	NEAR	L_3
;
; Line 19:	tpb = Buf;
;
	MOV	EAX,DWORD [EBP+0CH]
	MOV	DWORD [EBP-0CH],EAX
	JMP	SHORT	L_5
L_7:
;
; Line 22:	if (tpb->ch == '\t')    {
;
	MOV	EAX,DWORD [EBP-0CH]
	MOVZX	EAX,BYTE [EAX+00H]
	CMP	EAX,BYTE 09H
	JNE	SHORT	L_8
;
; Line 24:	int sps = cfg.Tabs - (x % cfg.Tabs);
;
	MOV	EAX,EBX
	CDQ
	IDIV	DWORD [018H+_cfg]
	MOV	EAX,DWORD [018H+_cfg]
	SUB	EAX,EDX
	MOV	DWORD [EBP-01CH],EAX
;
; Line 25:	sz += sps;
;
	MOV	EAX,DWORD [EBP-01CH]
	ADD	DWORD [EBP-04H],EAX
;
; Line 26:	x += sps;
;
	ADD	EBX,DWORD [EBP-01CH]
	JMP	SHORT	L_9
L_8:
;
; Line 30:	sz++;
;
	INC	DWORD [EBP-04H]
;
; Line 31:	x++;
;
	INC	EBX
L_9:
;
; Line 33:	if (tpb->ch == '\n')
;
	MOV	EAX,DWORD [EBP-0CH]
	MOVZX	EAX,BYTE [EAX+00H]
	CMP	EAX,BYTE 0AH
	JNE	SHORT	L_10
;
; Line 34:	x = 0;     
;
	MOV	EBX,00H
L_10:
;
; Line 35:	tpb++;
;
	ADD	DWORD [EBP-0CH],BYTE 02H
L_5:
;
; Line 21:	while (tpb->ch)    {
;
	MOV	EAX,DWORD [EBP-0CH]
	CMP	BYTE [EAX+00H],BYTE 00H
	JNE	SHORT	L_7
L_6:
;
; Line 38:	ep = DFcalloc(1, (sz+1) * sizeof(ATTRCHR));
;
	MOV	EAX,DWORD [EBP-04H]
	INC	EAX
	SHL	EAX,01H
	PUSH	EAX
	PUSH	BYTE 01H
	CALL	_DFcalloc
	ADD	ESP,BYTE 08H
	MOV	DWORD [EBP-010H],EAX
;
; Line 40:	tpb = Buf;
;
	MOV	EAX,DWORD [EBP+0CH]
	MOV	DWORD [EBP-0CH],EAX
;
; Line 41:	ttp = ep;
;
	MOV	ESI,DWORD [EBP-010H]
;
; Line 42:	x = 0;
;
	MOV	EBX,00H
	JMP	NEAR	L_12
L_14:
;
; Line 45:	x++;
;
	INC	EBX
;
; Line 48:	if (tpb->ch == '\t')	{
;
	MOV	EAX,DWORD [EBP-0CH]
	MOVZX	EAX,BYTE [EAX+00H]
	CMP	EAX,BYTE 09H
	JNE	SHORT	L_15
;
; Line 49:	if (cfg.TabsAsSpaces)
;
	CMP	DWORD [01CH+_cfg],BYTE 00H
	JE	SHORT	L_17
;
; Line 51:	ttp->ch = ' ';
;
	MOV	BYTE [ESI+00H],020H
;
; Line 52:	ttp++->attrib = tpb->attrib;
;
	MOV	EAX,DWORD [EBP-0CH]
	MOV	ECX,ESI
	ADD	ESI,BYTE 02H
	MOV	AL,BYTE [EAX+01H]
	MOV	BYTE [ECX+01H],AL
	JMP	SHORT	L_19
L_21:
;
; Line 54:	ttp->ch = ' ', ttp++->attrib = tpb->attrib, x++;
;
	MOV	BYTE [ESI+00H],020H
	MOV	EAX,DWORD [EBP-0CH]
	MOV	ECX,ESI
	ADD	ESI,BYTE 02H
	MOV	AL,BYTE [EAX+01H]
	MOV	BYTE [ECX+01H],AL
	INC	EBX
L_19:
;
; Line 53:	while ((x % cfg.Tabs) != 0)
;
	MOV	EAX,EBX
	CDQ
	IDIV	DWORD [018H+_cfg]
	TEST	EDX,EDX
	JNE	SHORT	L_21
L_20:
	JMP	SHORT	L_18
L_17:
;
; Line 58:	ttp->ch = sTab;	 
;
	MOV	BYTE [ESI+00H],08CH
;
; Line 59:	ttp++->attrib = tpb->attrib;
;
	MOV	EAX,DWORD [EBP-0CH]
	MOV	ECX,ESI
	ADD	ESI,BYTE 02H
	MOV	AL,BYTE [EAX+01H]
	MOV	BYTE [ECX+01H],AL
	JMP	SHORT	L_22
L_24:
;
; Line 61:	ttp->ch = pTab, ttp++->attrib = tpb->attrib, x++;
;
	MOV	BYTE [ESI+00H],089H
	MOV	EAX,DWORD [EBP-0CH]
	MOV	ECX,ESI
	ADD	ESI,BYTE 02H
	MOV	AL,BYTE [EAX+01H]
	MOV	BYTE [ECX+01H],AL
	INC	EBX
L_22:
;
; Line 60:	while ((x % cfg.Tabs) != 0)
;
	MOV	EAX,EBX
	CDQ
	IDIV	DWORD [018H+_cfg]
	TEST	EDX,EDX
	JNE	SHORT	L_24
L_23:
L_18:
	JMP	SHORT	L_16
L_15:
;
; Line 65:	*ttp = *tpb;
;
	MOV	EAX,DWORD [EBP-0CH]
	MOV	CX,WORD [EAX+00H]
	MOV	WORD [ESI+00H],CX
;
; Line 66:	ttp++;
;
	ADD	ESI,BYTE 02H
;
; Line 67:	if (tpb->ch == '\n')
;
	MOV	EAX,DWORD [EBP-0CH]
	MOVZX	EAX,BYTE [EAX+00H]
	CMP	EAX,BYTE 0AH
	JNE	SHORT	L_25
;
; Line 68:	x = 0;
;
	MOV	EBX,00H
L_25:
L_16:
;
; Line 70:	tpb++;
;
	ADD	DWORD [EBP-0CH],BYTE 02H
L_12:
;
; Line 43:	while (tpb->ch)    {
;
	MOV	EAX,DWORD [EBP-0CH]
	CMP	BYTE [EAX+00H],BYTE 00H
	JNE	NEAR	L_14
L_13:
	JMP	NEAR	L_4
L_3:
;
; Line 75:	tp = Buf;
;
	MOV	EAX,DWORD [EBP+0CH]
	MOV	DWORD [EBP-014H],EAX
	JMP	SHORT	L_27
L_29:
;
; Line 78:	if (*tp == '\t')    {
;
	MOV	EAX,DWORD [EBP-014H]
	MOVZX	EAX,BYTE [EAX+00H]
	CMP	EAX,BYTE 09H
	JNE	SHORT	L_30
;
; Line 80:	int sps = cfg.Tabs - (x % cfg.Tabs);
;
	MOV	EAX,EBX
	CDQ
	IDIV	DWORD [018H+_cfg]
	MOV	EAX,DWORD [018H+_cfg]
	SUB	EAX,EDX
	MOV	DWORD [EBP-01CH],EAX
;
; Line 81:	sz += sps;
;
	MOV	EAX,DWORD [EBP-01CH]
	ADD	DWORD [EBP-04H],EAX
;
; Line 82:	x += sps;
;
	ADD	EBX,DWORD [EBP-01CH]
	JMP	SHORT	L_31
L_30:
;
; Line 86:	sz++;
;
	INC	DWORD [EBP-04H]
;
; Line 87:	x++;
;
	INC	EBX
L_31:
;
; Line 89:	if (*tp == '\n')
;
	MOV	EAX,DWORD [EBP-014H]
	MOVZX	EAX,BYTE [EAX+00H]
	CMP	EAX,BYTE 0AH
	JNE	SHORT	L_32
;
; Line 90:	x = 0;     
;
	MOV	EBX,00H
L_32:
;
; Line 91:	tp++;
;
	INC	DWORD [EBP-014H]
L_27:
;
; Line 77:	while (*tp)    {
;
	MOV	EAX,DWORD [EBP-014H]
	CMP	BYTE [EAX+00H],BYTE 00H
	JNE	SHORT	L_29
L_28:
;
; Line 94:	ep = DFcalloc(1, (sz+1) * sizeof(ATTRCHR));
;
	MOV	EAX,DWORD [EBP-04H]
	INC	EAX
	SHL	EAX,01H
	PUSH	EAX
	PUSH	BYTE 01H
	CALL	_DFcalloc
	ADD	ESP,BYTE 08H
	MOV	DWORD [EBP-010H],EAX
;
; Line 96:	tp = Buf;
;
	MOV	EAX,DWORD [EBP+0CH]
	MOV	DWORD [EBP-014H],EAX
;
; Line 97:	ttp = ep;
;
	MOV	ESI,DWORD [EBP-010H]
;
; Line 98:	x = 0;
;
	MOV	EBX,00H
	JMP	NEAR	L_34
L_36:
;
; Line 101:	x++;
;
	INC	EBX
;
; Line 104:	if (*tp == '\t')	{
;
	MOV	EAX,DWORD [EBP-014H]
	MOVZX	EAX,BYTE [EAX+00H]
	CMP	EAX,BYTE 09H
	JNE	SHORT	L_37
;
; Line 105:	if (cfg.TabsAsSpaces)
;
	CMP	DWORD [01CH+_cfg],BYTE 00H
	JE	SHORT	L_39
;
; Line 107:	ttp->ch = ' ';
;
	MOV	BYTE [ESI+00H],020H
;
; Line 108:	ttp++->attrib = attr;
;
	MOV	EAX,ESI
	ADD	ESI,BYTE 02H
	MOV	ECX,DWORD [EBP-08H]
	MOV	BYTE [EAX+01H],CL
	JMP	SHORT	L_41
L_43:
;
; Line 110:	ttp->ch = ' ', ttp++->attrib = attr, x++;
;
	MOV	BYTE [ESI+00H],020H
	MOV	EAX,ESI
	ADD	ESI,BYTE 02H
	MOV	ECX,DWORD [EBP-08H]
	MOV	BYTE [EAX+01H],CL
	INC	EBX
L_41:
;
; Line 109:	while ((x % cfg.Tabs) != 0)
;
	MOV	EAX,EBX
	CDQ
	IDIV	DWORD [018H+_cfg]
	TEST	EDX,EDX
	JNE	SHORT	L_43
L_42:
	JMP	SHORT	L_40
L_39:
;
; Line 114:	ttp->ch = sTab;	 
;
	MOV	BYTE [ESI+00H],08CH
;
; Line 115:	ttp++->attrib = attr;
;
	MOV	EAX,ESI
	ADD	ESI,BYTE 02H
	MOV	ECX,DWORD [EBP-08H]
	MOV	BYTE [EAX+01H],CL
	JMP	SHORT	L_44
L_46:
;
; Line 117:	ttp->ch = pTab, ttp++->attrib = attr, x++;
;
	MOV	BYTE [ESI+00H],089H
	MOV	EAX,ESI
	ADD	ESI,BYTE 02H
	MOV	ECX,DWORD [EBP-08H]
	MOV	BYTE [EAX+01H],CL
	INC	EBX
L_44:
;
; Line 116:	while ((x % cfg.Tabs) != 0)
;
	MOV	EAX,EBX
	CDQ
	IDIV	DWORD [018H+_cfg]
	TEST	EDX,EDX
	JNE	SHORT	L_46
L_45:
L_40:
	JMP	SHORT	L_38
L_37:
;
; Line 121:	ttp->ch = *tp;
;
	MOV	EAX,DWORD [EBP-014H]
	MOV	AL,BYTE [EAX+00H]
	MOV	BYTE [ESI+00H],AL
;
; Line 122:	ttp++->attrib = attr;
;
	MOV	EAX,ESI
	ADD	ESI,BYTE 02H
	MOV	ECX,DWORD [EBP-08H]
	MOV	BYTE [EAX+01H],CL
;
; Line 123:	if (*tp == '\n')
;
	MOV	EAX,DWORD [EBP-014H]
	MOVZX	EAX,BYTE [EAX+00H]
	CMP	EAX,BYTE 0AH
	JNE	SHORT	L_47
;
; Line 124:	x = 0;
;
	MOV	EBX,00H
L_47:
L_38:
;
; Line 126:	tp++;
;
	INC	DWORD [EBP-014H]
L_34:
;
; Line 99:	while (*tp)    {
;
	MOV	EAX,DWORD [EBP-014H]
	CMP	BYTE [EAX+00H],BYTE 00H
	JNE	NEAR	L_36
L_35:
L_4:
;
; Line 129:	ttp->ch = '\0';
;
	MOV	BYTE [ESI+00H],00H
;
; Line 130:	rtn = BaseWndProc(EDITOR, wnd, SETTEXT, (PARAM) ep, 1);
;
	PUSH	BYTE 01H
	PUSH	DWORD [EBP-010H]
	PUSH	BYTE 034H
	PUSH	DWORD [EBP+08H]
	MOV	EAX,DWORD [_classdefs+0FCH]
	IMUL	EAX,BYTE 0CH
	CALL	DWORD [EAX+04H+_classdefs+00H]
	ADD	ESP,BYTE 010H
	MOV	EDI,EAX
;
; Line 131:	free(ep);
;
	PUSH	DWORD [EBP-010H]
	CALL	_free
	POP	ECX
;
; Line 132:	return rtn;
;
	MOV	EAX,EDI
L_1:
	POP	EDI
	POP	ESI
	POP	EBX
	MOV	ESP,EBP
	POP	EBP
	RET
;
; Line 134:	static int GetTextMsg(WINDOW wnd, char *Buf, int len)
;
_GetTextMsg:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	ESI
	PUSH	EDI
	MOV	EDI,DWORD [EBP+0CH]
L_50:
;
; Line 135:	{
;
;
; Line 136:	ATTRCHR *cp = GetText(wnd);
;
	MOV	EAX,DWORD [EBP+08H]
	MOV	ESI,DWORD [EAX+098H]
	JMP	SHORT	L_51
L_53:
;
; Line 139:	if (cp->ch == sTab)
;
	MOVZX	EAX,BYTE [ESI+00H]
	CMP	EAX,08CH
	JNE	SHORT	L_54
;
; Line 140:	*Buf++ = '\t';
;
	MOV	EAX,EDI
	INC	EDI
	MOV	BYTE [EAX+00H],09H
	JMP	SHORT	L_55
L_54:
;
; Line 141:	else if (cp->ch != pTab)
;
	MOVZX	EAX,BYTE [ESI+00H]
	CMP	EAX,089H
	JE	SHORT	L_56
;
; Line 143:	*Buf++ = cp->ch;
;
	MOV	EAX,EDI
	INC	EDI
	MOV	CL,BYTE [ESI+00H]
	MOV	BYTE [EAX+00H],CL
L_56:
L_55:
;
; Line 145:	cp++;
;
	ADD	ESI,BYTE 02H
L_51:
;
; Line 137:	while (cp->ch && len)
;
	CMP	BYTE [ESI+00H],BYTE 00H
	JE	SHORT	L_58
	CMP	DWORD [EBP+010H],BYTE 00H
	JNE	SHORT	L_53
L_58:
L_52:
;
; Line 147:	*Buf++ = '\0';
;
	MOV	EAX,EDI
	INC	EDI
	MOV	BYTE [EAX+00H],00H
;
; Line 148:	}
;
L_49:
	POP	EDI
	POP	ESI
	POP	EBP
	RET
[GLOBAL	_CollapseTabs]
;
; Line 149:	void CollapseTabs(WINDOW wnd)
;
_CollapseTabs:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	EBX
	PUSH	ESI
	PUSH	EDI
	MOV	EDI,DWORD [EBP+08H]
L_60:
;
; Line 150:	{
;
;
; Line 151:	ATTRCHR *cp = wnd->text, *cp2;
;
	MOV	ESI,DWORD [EDI+098H]
	JMP	SHORT	L_61
L_63:
;
; Line 153:	if (cp->ch == sTab)	{
;
	MOVZX	EAX,BYTE [ESI+00H]
	CMP	EAX,08CH
	JNE	SHORT	L_64
;
; Line 154:	cp->ch = '\t';
;
	MOV	BYTE [ESI+00H],09H
;
; Line 155:	cp2 = cp;
;
	MOV	EBX,ESI
;
; Line 156:	while ((++cp2)->ch == pTab)
;
L_66:
	ADD	EBX,BYTE 02H
	MOVZX	EAX,BYTE [EBX+00H]
	CMP	EAX,089H
	JE	SHORT	L_66
;
; Line 158:	memmove(cp+1, cp2, (cp2-wnd->text+1) * sizeof(ATTRCHR));
;
	MOV	EAX,EBX
	SUB	EAX,DWORD [EDI+098H]
	SHR	EAX,01H
	INC	EAX
	SHL	EAX,01H
	PUSH	EAX
	PUSH	EBX
	MOV	EAX,ESI
	ADD	EAX,BYTE 02H
	PUSH	EAX
	CALL	_memmove
	ADD	ESP,BYTE 0CH
L_64:
;
; Line 160:	cp++;
;
	ADD	ESI,BYTE 02H
L_61:
;
; Line 152:	while (cp->ch)	{
;
	CMP	BYTE [ESI+00H],BYTE 00H
	JNE	SHORT	L_63
L_62:
;
; Line 162:	}
;
L_59:
	POP	EDI
	POP	ESI
	POP	EBX
	POP	EBP
	RET
[GLOBAL	_ExpandTabs]
;
; Line 164:	void ExpandTabs(WINDOW wnd)
;
_ExpandTabs:
	PUSH	EBP
	MOV	EBP,ESP
	SUB	ESP,BYTE 010H
	PUSH	EBX
	PUSH	ESI
	PUSH	EDI
	MOV	ESI,DWORD [EBP+08H]
L_68:
;
; Line 165:	{
;
;
; Line 166:	int Holdwtop = wnd->wtop;
;
	MOV	EAX,DWORD [ESI+094H]
	MOV	DWORD [EBP-0CH],EAX
;
; Line 167:	int Holdwleft = wnd->wleft;
;
	MOV	EAX,DWORD [ESI+0A4H]
	MOV	DWORD [EBP-08H],EAX
;
; Line 168:	int HoldRow = wnd->CurrLine;
;
	MOV	EAX,DWORD [ESI+0DCH]
	MOV	DWORD [EBP-04H],EAX
;
; Line 169:	int HoldCol = wnd->CurrCol;
;
	MOV	EDI,DWORD [ESI+0D8H]
;
; Line 170:	int HoldwRow = wnd->WndRow;
;
	MOV	EBX,DWORD [ESI+0E0H]
;
; Line 171:	SendMessage(wnd, SETTEXT, (PARAM) wnd->text, 1);
;
	PUSH	BYTE 01H
	PUSH	DWORD [ESI+098H]
	PUSH	BYTE 034H
	PUSH	ESI
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 172:	wnd->wtop = Holdwtop;
;
	MOV	EAX,DWORD [EBP-0CH]
	MOV	DWORD [ESI+094H],EAX
;
; Line 173:	wnd->wleft = Holdwleft;
;
	MOV	EAX,DWORD [EBP-08H]
	MOV	DWORD [ESI+0A4H],EAX
;
; Line 174:	wnd->CurrLine = HoldRow;
;
	MOV	EAX,DWORD [EBP-04H]
	MOV	DWORD [ESI+0DCH],EAX
;
; Line 175:	wnd->CurrCol = HoldCol;
;
	MOV	DWORD [ESI+0D8H],EDI
;
; Line 176:	wnd->WndRow = HoldwRow;
;
	MOV	DWORD [ESI+0E0H],EBX
;
; Line 177:	SendMessage(wnd, PAINT, 0, 0);
;
	PUSH	BYTE 00H
	PUSH	BYTE 00H
	PUSH	BYTE 09H
	PUSH	ESI
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 178:	SendMessage(wnd, KEYBOARD_CURSOR, 0, wnd->WndRow);
;
	PUSH	DWORD [ESI+0E0H]
	PUSH	BYTE 00H
	PUSH	BYTE 018H
	PUSH	ESI
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 179:	}
;
L_67:
	POP	EDI
	POP	ESI
	POP	EBX
	MOV	ESP,EBP
	POP	EBP
	RET
;
; Line 182:	static void AdjustTab(WINDOW wnd)
;
_AdjustTab:
	PUSH	EBP
	MOV	EBP,ESP
	SUB	ESP,BYTE 08H
	PUSH	EBX
	PUSH	ESI
	PUSH	EDI
	MOV	ESI,DWORD [EBP+08H]
	MOV	EDI,DWORD _classdefs
L_70:
;
; Line 183:	{
;
;
; Line 185:	int col = wnd->CurrCol;
;
	MOV	EAX,DWORD [ESI+0D8H]
	MOV	DWORD [EBP-04H],EAX
	JMP	NEAR	L_71
L_73:
;
; Line 187:	if (CurrChar->ch == sTab)	{
;
	MOV	EAX,DWORD [ESI+0C4H]
	MOV	ECX,DWORD [ESI+0DCH]
	MOV	ECX,DWORD [EAX+ECX*4+00H]
	MOV	EAX,DWORD [ESI+098H]
	LEA	EAX,[EAX+ECX*2+00H]
	MOV	ECX,DWORD [ESI+0D8H]
	MOVZX	EAX,BYTE [EAX+ECX*2+00H]
	CMP	EAX,08CH
	JNE	NEAR	L_74
;
; Line 188:	int exp = (cfg.Tabs - 1) - (wnd->CurrCol % cfg.Tabs);
;
	MOV	EAX,DWORD [018H+_cfg]
	DEC	EAX
	MOV	ECX,DWORD [ESI+0D8H]
	PUSH	EAX
	XCHG	EAX,ECX
	CDQ
	IDIV	DWORD [018H+_cfg]
	POP	EAX
	SUB	EAX,EDX
	MOV	EBX,EAX
;
; Line 189:	wnd->CurrCol++;
;
	INC	DWORD [ESI+0D8H]
	JMP	SHORT	L_76
L_78:
;
; Line 191:	BaseWndProc(EDITOR, wnd, KEYBOARD, DEL, 0);
;
	PUSH	BYTE 00H
	PUSH	DWORD 010D3H
	PUSH	BYTE 015H
	PUSH	ESI
	MOV	EAX,DWORD [EDI+0FCH]
	IMUL	EAX,BYTE 0CH
	LEA	EAX,[EDI+EAX+00H]
	CALL	DWORD [EAX+04H]
	ADD	ESP,BYTE 010H
L_76:
;
; Line 190:	while (CurrChar->ch == pTab)
;
	MOV	EAX,DWORD [ESI+0C4H]
	MOV	ECX,DWORD [ESI+0DCH]
	MOV	ECX,DWORD [EAX+ECX*4+00H]
	MOV	EAX,DWORD [ESI+098H]
	LEA	EAX,[EAX+ECX*2+00H]
	MOV	ECX,DWORD [ESI+0D8H]
	MOVZX	EAX,BYTE [EAX+ECX*2+00H]
	CMP	EAX,089H
	JE	SHORT	L_78
L_77:
	JMP	SHORT	L_79
L_81:
;
; Line 193:	BaseWndProc(EDITOR, wnd, KEYBOARD, pTab, 0);
;
	PUSH	BYTE 00H
	PUSH	DWORD 089H
	PUSH	BYTE 015H
	PUSH	ESI
	MOV	EAX,DWORD [EDI+0FCH]
	IMUL	EAX,BYTE 0CH
	LEA	EAX,[EDI+EAX+00H]
	CALL	DWORD [EAX+04H]
	ADD	ESP,BYTE 010H
L_79:
;
; Line 192:	while (exp--)
;
	MOV	EAX,EBX
	DEC	EBX
	TEST	EAX,EAX
	JNE	SHORT	L_81
L_80:
;
; Line 194:	break;
;
	JMP	SHORT	L_72
L_74:
;
; Line 196:	wnd->CurrCol++;
;
	INC	DWORD [ESI+0D8H]
L_71:
;
; Line 186:	while (CurrChar->ch && CurrChar->ch != '\n')    {
;
	MOV	EAX,DWORD [ESI+0C4H]
	MOV	ECX,DWORD [ESI+0DCH]
	MOV	ECX,DWORD [EAX+ECX*4+00H]
	MOV	EAX,DWORD [ESI+098H]
	LEA	EAX,[EAX+ECX*2+00H]
	MOV	ECX,DWORD [ESI+0D8H]
	CMP	BYTE [EAX+ECX*2+00H],BYTE 00H
	JE	SHORT	L_82
	MOV	EAX,DWORD [ESI+0C4H]
	MOV	ECX,DWORD [ESI+0DCH]
	MOV	ECX,DWORD [EAX+ECX*4+00H]
	MOV	EAX,DWORD [ESI+098H]
	LEA	EAX,[EAX+ECX*2+00H]
	MOV	ECX,DWORD [ESI+0D8H]
	MOVZX	EAX,BYTE [EAX+ECX*2+00H]
	CMP	EAX,BYTE 0AH
	JNE	NEAR	L_73
L_82:
L_72:
;
; Line 198:	wnd->CurrCol = col;
;
	MOV	EAX,DWORD [EBP-04H]
	MOV	DWORD [ESI+0D8H],EAX
;
; Line 199:	}
;
L_69:
	POP	EDI
	POP	ESI
	POP	EBX
	MOV	ESP,EBP
	POP	EBP
	RET
[GLOBAL	_TurnOffDisplay]
;
; Line 201:	void TurnOffDisplay(WINDOW wnd)
;
_TurnOffDisplay:
	PUSH	EBP
	MOV	EBP,ESP
L_84:
;
; Line 202:	{
;
;
; Line 203:	SendMessage(NULL, HIDE_CURSOR, 0, 0);
;
	PUSH	BYTE 00H
	PUSH	BYTE 00H
	PUSH	BYTE 01AH
	PUSH	BYTE 00H
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 204:	ClearVisible(wnd);
;
	MOV	EAX,DWORD [EBP+08H]
	AND	DWORD [EAX+054H],BYTE 0FFFFFFBFH
;
; Line 205:	}
;
L_83:
	POP	EBP
	RET
[GLOBAL	_TurnOnDisplay]
;
; Line 207:	void TurnOnDisplay(WINDOW wnd)
;
_TurnOnDisplay:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	ESI
	MOV	ESI,DWORD [EBP+08H]
L_86:
;
; Line 208:	{
;
;
; Line 209:	SetVisible(wnd);
;
	BTS	DWORD [ESI+054H],06H
;
; Line 210:	SendMessage(NULL, SHOW_CURSOR, (wnd->InsertMode), 0);
;
	PUSH	BYTE 00H
	PUSH	DWORD [ESI+0F4H]
	PUSH	BYTE 01BH
	PUSH	BYTE 00H
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 211:	}
;
L_85:
	POP	ESI
	POP	EBP
	RET
;
; Line 213:	static void RepaintLine(WINDOW wnd)
;
_RepaintLine:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	ESI
	MOV	ESI,DWORD [EBP+08H]
L_88:
;
; Line 214:	{
;
;
; Line 215:	SendMessage(wnd, KEYBOARD_CURSOR, WndCol, wnd->WndRow);
;
	PUSH	DWORD [ESI+0E0H]
	MOV	EAX,DWORD [ESI+0D8H]
	SUB	EAX,DWORD [ESI+0A4H]
	PUSH	EAX
	PUSH	BYTE 018H
	PUSH	ESI
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
;
; Line 216:	WriteTextLine(wnd, NULL, wnd->CurrLine, FALSE);
;
	PUSH	BYTE 00H
	PUSH	DWORD [ESI+0DCH]
	PUSH	BYTE 00H
	PUSH	ESI
	CALL	_WriteTextLine
	ADD	ESP,BYTE 010H
;
; Line 217:	}
;
L_87:
	POP	ESI
	POP	EBP
	RET
;
; Line 220:	static int KeyboardMsg(WINDOW wnd, PARAM p1, PARAM p2)
;
_KeyboardMsg:
	PUSH	EBP
	MOV	EBP,ESP
	SUB	ESP,BYTE 010H
	PUSH	EBX
	PUSH	ESI
	PUSH	EDI
	MOV	ESI,DWORD [EBP+08H]
	MOV	EBX,DWORD [EBP+010H]
	MOV	EDI,DWORD _cfg
L_90:
;
; Line 221:	{
;
;
; Line 222:	int c = (int) p1;
;
	MOV	EAX,DWORD [EBP+0CH]
	MOV	DWORD [EBP-0CH],EAX
;
; Line 224:	PARAM pn = p1;
;
	MOV	EAX,DWORD [EBP+0CH]
	MOV	DWORD [EBP-04H],EAX
;
; Line 225:	if (WindowMoving || WindowSizing || ((int)p2 & ALTKEY))
;
	CMP	DWORD [_WindowMoving],BYTE 00H
	JNE	SHORT	L_93
	CMP	DWORD [_WindowSizing],BYTE 00H
	JNE	SHORT	L_93
	MOV	EAX,EBX
	AND	EAX,BYTE 08H
	JE	SHORT	L_91
L_93:
;
; Line 226:	return FALSE;
;
	MOV	EAX,00H
	JMP	NEAR	L_89
L_91:
;
; Line 227:	switch (c)    {
;
	MOV	EAX,DWORD [EBP-0CH]
	CMP	EAX,DWORD 010CBH
	JE	SHORT	L_101
	JG	SHORT	L_105
	CMP	EAX,DWORD 010C8H
	JE	SHORT	L_98
	JG	SHORT	L_106
	CMP	EAX,BYTE 09H
	JE	NEAR	L_104
	JG	NEAR	L_95
	CMP	EAX,BYTE 08H
	JE	NEAR	L_102
	JMP	NEAR	L_95
L_106:
	CMP	EAX,DWORD 010C9H
	JE	SHORT	L_96
	JMP	NEAR	L_95
L_105:
	CMP	EAX,DWORD 010D1H
	JE	SHORT	L_97
	JG	SHORT	L_107
	CMP	EAX,DWORD 010D0H
	JE	SHORT	L_99
	JG	NEAR	L_95
	CMP	EAX,DWORD 010CDH
	JE	SHORT	L_100
	JMP	NEAR	L_95
L_107:
	CMP	EAX,DWORD 010D3H
	JE	NEAR	L_103
	JMP	NEAR	L_95
L_96:
;
; Line 229:	case PGDN:
;
L_97:
;
; Line 230:	case UP:
;
L_98:
;
; Line 231:	case DN:
;
L_99:
;
; Line 232:	pn = (PARAM) BS;
;
	MOV	DWORD [EBP-04H],010CBH
;
; Line 233:	case FWD:
;
L_100:
;
; Line 234:	case BS:
;
L_101:
;
; Line 235:	BaseWndProc(EDITOR, wnd, KEYBOARD, p1, p2);
;
	PUSH	EBX
	PUSH	DWORD [EBP+0CH]
	PUSH	BYTE 015H
	PUSH	ESI
	MOV	EAX,DWORD [_classdefs+0FCH]
	IMUL	EAX,BYTE 0CH
	CALL	DWORD [EAX+04H+_classdefs+00H]
	ADD	ESP,BYTE 010H
;
; Line 236:	TurnOffDisplay(wnd);
;
	PUSH	ESI
	CALL	_TurnOffDisplay
	POP	ECX
	JMP	SHORT	L_108
L_110:
;
; Line 238:	BaseWndProc(EDITOR, wnd, KEYBOARD, pn, p2);
;
	PUSH	EBX
	PUSH	DWORD [EBP-04H]
	PUSH	BYTE 015H
	PUSH	ESI
	MOV	EAX,DWORD [_classdefs+0FCH]
	IMUL	EAX,BYTE 0CH
	CALL	DWORD [EAX+04H+_classdefs+00H]
	ADD	ESP,BYTE 010H
L_108:
;
; Line 237:	while (CurrChar->ch == pTab)
;
	MOV	EAX,DWORD [ESI+0C4H]
	MOV	ECX,DWORD [ESI+0DCH]
	MOV	ECX,DWORD [EAX+ECX*4+00H]
	MOV	EAX,DWORD [ESI+098H]
	LEA	EAX,[EAX+ECX*2+00H]
	MOV	ECX,DWORD [ESI+0D8H]
	MOVZX	EAX,BYTE [EAX+ECX*2+00H]
	CMP	EAX,089H
	JE	SHORT	L_110
L_109:
;
; Line 239:	TurnOnDisplay(wnd);
;
	PUSH	ESI
	CALL	_TurnOnDisplay
	POP	ECX
;
; Line 240:	return TRUE;
;
	MOV	EAX,01H
	JMP	NEAR	L_89
L_102:
;
; Line 242:	if (wnd->CurrCol == 0 && wnd->CurrLine == 0)
;
	CMP	DWORD [ESI+0D8H],BYTE 00H
	JNE	SHORT	L_111
	CMP	DWORD [ESI+0DCH],BYTE 00H
	JNE	SHORT	L_111
;
; Line 243:	return TRUE;
;
	MOV	EAX,01H
	JMP	NEAR	L_89
L_111:
;
; Line 244:	if (!TextBlockMarked(wnd))
;
	CMP	DWORD [ESI+0ACH],BYTE 00H
	JNE	NEAR	L_113
	CMP	DWORD [ESI+0B4H],BYTE 00H
	JNE	NEAR	L_113
	CMP	DWORD [ESI+0B0H],BYTE 00H
	JNE	SHORT	L_113
	CMP	DWORD [ESI+0B8H],BYTE 00H
	JNE	SHORT	L_113
;
; Line 246:	TurnOffDisplay(wnd);
;
	PUSH	ESI
	CALL	_TurnOffDisplay
	POP	ECX
;
; Line 247:	BaseWndProc(EDITOR, wnd, KEYBOARD, BS, p2);
;
	PUSH	EBX
	PUSH	DWORD 010CBH
	PUSH	BYTE 015H
	PUSH	ESI
	MOV	EAX,DWORD [_classdefs+0FCH]
	IMUL	EAX,BYTE 0CH
	CALL	DWORD [EAX+04H+_classdefs+00H]
	ADD	ESP,BYTE 010H
	JMP	SHORT	L_115
L_117:
;
; Line 249:	BaseWndProc(EDITOR, wnd, KEYBOARD, BS, p2);
;
	PUSH	EBX
	PUSH	DWORD 010CBH
	PUSH	BYTE 015H
	PUSH	ESI
	MOV	EAX,DWORD [_classdefs+0FCH]
	IMUL	EAX,BYTE 0CH
	CALL	DWORD [EAX+04H+_classdefs+00H]
	ADD	ESP,BYTE 010H
L_115:
;
; Line 248:	while (CurrChar->ch == pTab)
;
	MOV	EAX,DWORD [ESI+0C4H]
	MOV	ECX,DWORD [ESI+0DCH]
	MOV	ECX,DWORD [EAX+ECX*4+00H]
	MOV	EAX,DWORD [ESI+098H]
	LEA	EAX,[EAX+ECX*2+00H]
	MOV	ECX,DWORD [ESI+0D8H]
	MOVZX	EAX,BYTE [EAX+ECX*2+00H]
	CMP	EAX,089H
	JE	SHORT	L_117
L_116:
;
; Line 250:	TurnOnDisplay(wnd);
;
	PUSH	ESI
	CALL	_TurnOnDisplay
	POP	ECX
L_113:
;
; Line 252:	p1 = DEL;
;
	MOV	DWORD [EBP+0CH],010D3H
;
; Line 254:	case DEL:
;
L_103:
;
; Line 255:	TurnOffDisplay(wnd);
;
	PUSH	ESI
	CALL	_TurnOffDisplay
	POP	ECX
;
; Line 256:	delnl = CurrChar->ch == '\n' || TextBlockMarked(wnd);
;
	MOV	EAX,DWORD [ESI+0C4H]
	MOV	ECX,DWORD [ESI+0DCH]
	MOV	ECX,DWORD [EAX+ECX*4+00H]
	MOV	EAX,DWORD [ESI+098H]
	LEA	EAX,[EAX+ECX*2+00H]
	MOV	ECX,DWORD [ESI+0D8H]
	MOVZX	EAX,BYTE [EAX+ECX*2+00H]
	CMP	EAX,BYTE 0AH
	JE	SHORT	L_118
	CMP	DWORD [ESI+0ACH],BYTE 00H
	JNE	SHORT	L_118
	CMP	DWORD [ESI+0B4H],BYTE 00H
	JNE	SHORT	L_118
	CMP	DWORD [ESI+0B0H],BYTE 00H
	JNE	SHORT	L_118
	CMP	DWORD [ESI+0B8H],BYTE 00H
	JNE	SHORT	L_118
	SUB	EAX,EAX
; TEST EAX,IMMED (branches around next four bytes of code)
	DB	0A9H
L_118:
	SUB	EAX,EAX
	INC	EAX
	NOP
	MOV	DWORD [EBP-08H],EAX
;
; Line 257:	BaseWndProc(EDITOR, wnd, KEYBOARD, p1, p2);
;
	PUSH	EBX
	PUSH	DWORD [EBP+0CH]
	PUSH	BYTE 015H
	PUSH	ESI
	MOV	EAX,DWORD [_classdefs+0FCH]
	IMUL	EAX,BYTE 0CH
	CALL	DWORD [EAX+04H+_classdefs+00H]
	ADD	ESP,BYTE 010H
	JMP	SHORT	L_119
L_121:
;
; Line 259:	BaseWndProc(EDITOR, wnd, KEYBOARD, p1, p2);
;
	PUSH	EBX
	PUSH	DWORD [EBP+0CH]
	PUSH	BYTE 015H
	PUSH	ESI
	MOV	EAX,DWORD [_classdefs+0FCH]
	IMUL	EAX,BYTE 0CH
	CALL	DWORD [EAX+04H+_classdefs+00H]
	ADD	ESP,BYTE 010H
L_119:
;
; Line 258:	while (CurrChar->ch == pTab)
;
	MOV	EAX,DWORD [ESI+0C4H]
	MOV	ECX,DWORD [ESI+0DCH]
	MOV	ECX,DWORD [EAX+ECX*4+00H]
	MOV	EAX,DWORD [ESI+098H]
	LEA	EAX,[EAX+ECX*2+00H]
	MOV	ECX,DWORD [ESI+0D8H]
	MOVZX	EAX,BYTE [EAX+ECX*2+00H]
	CMP	EAX,089H
	JE	SHORT	L_121
L_120:
;
; Line 260:	AdjustTab(wnd);
;
	PUSH	ESI
	CALL	_AdjustTab
	POP	ECX
;
; Line 261:	TurnOnDisplay(wnd);
;
	PUSH	ESI
	CALL	_TurnOnDisplay
	POP	ECX
;
; Line 262:	RepaintLine(wnd);
;
	PUSH	ESI
	CALL	_RepaintLine
	POP	ECX
;
; Line 263:	if (delnl)
;
	CMP	DWORD [EBP-08H],BYTE 00H
	JE	SHORT	L_122
;
; Line 264:	SendMessage(wnd, PAINT, 0, 0);
;
	PUSH	BYTE 00H
	PUSH	BYTE 00H
	PUSH	BYTE 09H
	PUSH	ESI
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
L_122:
;
; Line 265:	return TRUE;
;
	MOV	EAX,01H
	JMP	NEAR	L_89
L_104:
;
; Line 267:	TurnOffDisplay(wnd);
;
	PUSH	ESI
	CALL	_TurnOffDisplay
	POP	ECX
;
; Line 268:	c = wnd->InsertMode;
;
	MOV	EAX,DWORD [ESI+0F4H]
	MOV	DWORD [EBP-0CH],EAX
;
; Line 269:	if (cfg.TabsAsSpaces)
;
	CMP	DWORD [EDI+01CH],BYTE 00H
	JE	SHORT	L_124
;
; Line 271:	BaseWndProc(EDITOR, wnd, KEYBOARD, (PARAM) ' ', p2);
;
	PUSH	EBX
	PUSH	BYTE 020H
	PUSH	BYTE 015H
	PUSH	ESI
	MOV	EAX,DWORD [_classdefs+0FCH]
	IMUL	EAX,BYTE 0CH
	CALL	DWORD [EAX+04H+_classdefs+00H]
	ADD	ESP,BYTE 010H
;
; Line 272:	wnd->InsertMode = TRUE;
;
	MOV	DWORD [ESI+0F4H],01H
	JMP	SHORT	L_126
L_128:
;
; Line 274:	BaseWndProc(EDITOR, wnd, KEYBOARD, ' ', p2);
;
	PUSH	EBX
	PUSH	BYTE 020H
	PUSH	BYTE 015H
	PUSH	ESI
	MOV	EAX,DWORD [_classdefs+0FCH]
	IMUL	EAX,BYTE 0CH
	CALL	DWORD [EAX+04H+_classdefs+00H]
	ADD	ESP,BYTE 010H
L_126:
;
; Line 273:	while ((wnd->CurrCol % cfg.Tabs) != 0)
;
	MOV	EAX,DWORD [ESI+0D8H]
	CDQ
	IDIV	DWORD [EDI+018H]
	TEST	EDX,EDX
	JNE	SHORT	L_128
L_127:
	JMP	SHORT	L_125
L_124:
;
; Line 278:	BaseWndProc(EDITOR, wnd, KEYBOARD, (PARAM) sTab, p2);
;
	PUSH	EBX
	PUSH	DWORD 08CH
	PUSH	BYTE 015H
	PUSH	ESI
	MOV	EAX,DWORD [_classdefs+0FCH]
	IMUL	EAX,BYTE 0CH
	CALL	DWORD [EAX+04H+_classdefs+00H]
	ADD	ESP,BYTE 010H
;
; Line 279:	wnd->InsertMode = TRUE;
;
	MOV	DWORD [ESI+0F4H],01H
	JMP	SHORT	L_129
L_131:
;
; Line 281:	BaseWndProc(EDITOR, wnd, KEYBOARD, pTab, p2);
;
	PUSH	EBX
	PUSH	DWORD 089H
	PUSH	BYTE 015H
	PUSH	ESI
	MOV	EAX,DWORD [_classdefs+0FCH]
	IMUL	EAX,BYTE 0CH
	CALL	DWORD [EAX+04H+_classdefs+00H]
	ADD	ESP,BYTE 010H
L_129:
;
; Line 280:	while ((wnd->CurrCol % cfg.Tabs) != 0)
;
	MOV	EAX,DWORD [ESI+0D8H]
	CDQ
	IDIV	DWORD [EDI+018H]
	TEST	EDX,EDX
	JNE	SHORT	L_131
L_130:
L_125:
;
; Line 283:	wnd->InsertMode = c;
;
	MOV	EAX,DWORD [EBP-0CH]
	MOV	DWORD [ESI+0F4H],EAX
;
; Line 284:	TurnOnDisplay(wnd);
;
	PUSH	ESI
	CALL	_TurnOnDisplay
	POP	ECX
;
; Line 285:	RepaintLine(wnd);
;
	PUSH	ESI
	CALL	_RepaintLine
	POP	ECX
;
; Line 286:	return TRUE;
;
	MOV	EAX,01H
	JMP	SHORT	L_89
L_95:
;
; Line 288:	if (((c & OFFSET) == 0) && (isprint(c) || c == '\r'))	{
;
	MOV	EAX,DWORD [EBP-0CH]
	AND	EAX,01000H
	JNE	SHORT	L_132
	MOV	EAX,DWORD [__ctype]
	MOV	ECX,DWORD [EBP-0CH]
	MOVZX	ECX,BYTE [EAX+ECX+00H]
	AND	ECX,0DFH
	JNE	SHORT	L_134
	CMP	DWORD [EBP-0CH],BYTE 0DH
	JNE	SHORT	L_132
L_134:
;
; Line 289:	TurnOffDisplay(wnd);
;
	PUSH	ESI
	CALL	_TurnOffDisplay
	POP	ECX
;
; Line 290:	BaseWndProc(EDITOR, wnd, KEYBOARD, p1, p2);
;
	PUSH	EBX
	PUSH	DWORD [EBP+0CH]
	PUSH	BYTE 015H
	PUSH	ESI
	MOV	EAX,DWORD [_classdefs+0FCH]
	IMUL	EAX,BYTE 0CH
	CALL	DWORD [EAX+04H+_classdefs+00H]
	ADD	ESP,BYTE 010H
;
; Line 291:	AdjustTab(wnd);
;
	PUSH	ESI
	CALL	_AdjustTab
	POP	ECX
;
; Line 292:	TurnOnDisplay(wnd);
;
	PUSH	ESI
	CALL	_TurnOnDisplay
	POP	ECX
;
; Line 293:	RepaintLine(wnd);
;
	PUSH	ESI
	CALL	_RepaintLine
	POP	ECX
;
; Line 294:	if (c == '\r')
;
	CMP	DWORD [EBP-0CH],BYTE 0DH
	JNE	SHORT	L_135
;
; Line 295:	SendMessage(wnd, PAINT, 0, 0);
;
	PUSH	BYTE 00H
	PUSH	BYTE 00H
	PUSH	BYTE 09H
	PUSH	ESI
	CALL	_SendMessage
	ADD	ESP,BYTE 010H
L_135:
;
; Line 296:	return TRUE;
;
	MOV	EAX,01H
	JMP	SHORT	L_89
L_132:
;
; Line 298:	break;
;
	JMP	SHORT	L_94
L_94:
;
; Line 300:	return FALSE;
;
	MOV	EAX,00H
L_89:
	POP	EDI
	POP	ESI
	POP	EBX
	MOV	ESP,EBP
	POP	EBP
	RET
[GLOBAL	_EditorProc]
;
; Line 304:	int EditorProc(WINDOW wnd, MESSAGE msg, PARAM p1, PARAM p2)
;
_EditorProc:
	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_138:
;
; Line 305:	{
;
;
; Line 306:	switch (msg)    {
;
	MOV	EAX,DWORD [EBP+0CH]
	CMP	EAX,BYTE 015H
	JE	SHORT	L_141
	CMP	EAX,BYTE 034H
	JE	SHORT	L_142
	CMP	EAX,BYTE 03AH
	JE	SHORT	L_143
	JMP	SHORT	L_140
L_141:
;
; Line 308:	if (KeyboardMsg(wnd, p1, p2))
;
	PUSH	EDI
	PUSH	ESI
	PUSH	EBX
	CALL	_KeyboardMsg
	ADD	ESP,BYTE 0CH
	TEST	EAX,EAX
	JE	SHORT	L_144
;
; Line 309:	return TRUE;
;
	MOV	EAX,01H
	JMP	SHORT	L_137
L_144:
;
; Line 310:	break;
;
	JMP	SHORT	L_139
L_142:
;
; Line 312:	return SetTextMsg(wnd, (char *) p1, p2);
;
	MOV	EAX,EDI
	MOVSX	EAX,AX
	PUSH	EAX
	PUSH	ESI
	PUSH	EBX
	CALL	_SetTextMsg
	ADD	ESP,BYTE 0CH
	JMP	SHORT	L_137
L_143:
;
; Line 314:	return GetTextMsg(wnd, (char *) p1, p2);
;
	PUSH	EDI
	PUSH	ESI
	PUSH	EBX
	CALL	_GetTextMsg
	ADD	ESP,BYTE 0CH
	JMP	SHORT	L_137
L_140:
;
; Line 316:	break;
;
	JMP	SHORT	L_139
L_139:
;
; Line 318:	return BaseWndProc(EDITOR, wnd, msg, p1, p2);
;
	PUSH	EDI
	PUSH	ESI
	MOVSX	EAX,WORD [EBP+0CH]
	PUSH	EAX
	PUSH	EBX
	MOV	EAX,DWORD [_classdefs+0FCH]
	IMUL	EAX,BYTE 0CH
	CALL	DWORD [EAX+04H+_classdefs+00H]
	ADD	ESP,BYTE 010H
L_137:
	POP	EDI
	POP	ESI
	POP	EBX
	POP	EBP
	RET
SECTION _CONST

SECTION _TEXT
[EXTERN	_WindowMoving]
[EXTERN	_WindowSizing]
[EXTERN	__ctype]
[EXTERN	_DFcalloc]
[EXTERN	_cfg]
[EXTERN	_memmove]
[EXTERN	_WriteTextLine]
[EXTERN	_free]
[EXTERN	_classdefs]
[EXTERN	_SendMessage]
