		TITLE	WDASM Example Program
		.286
		.MODEL	SMALL

		INCLUDE	HELLO.INC

		EXTRN		DefWindowProc:FAR
		EXTRN		GetMessage:FAR
		EXTRN		TranslateMessage:FAR
		EXTRN		FatalExit:FAR
		EXTRN		DispatchMessage:FAR
		EXTRN		GetVersion:FAR
		EXTRN		GetDosEnvironment:FAR
		EXTRN		LocalAlloc:FAR
		EXTRN		LocalRealloc:FAR
		EXTRN		LocalFree:FAR
		EXTRN		FatalAppExit:FAR
		EXTRN		LocalSize:FAR
		EXTRN		UpdateWindow:FAR
		EXTRN		GlobalRealloc:FAR
		EXTRN		GlobalSize:FAR
		EXTRN		InitApp:FAR
		EXTRN		PostQuitMessage:FAR
		EXTRN		LockSegment:FAR
		EXTRN		UnlockSegment:FAR
		EXTRN		WaitEvent:FAR
		EXTRN		GetClientRect:FAR
		EXTRN		GetModuleFileName:FAR
		EXTRN		BeginPaint:FAR
		EXTRN		EndPaint:FAR
		EXTRN		CreateWindow:FAR
		EXTRN		ShowWindow:FAR
		EXTRN		LoadCursor:FAR
		EXTRN		LoadIcon:FAR
		EXTRN		RegisterClass:FAR
		EXTRN		InitTask:FAR
		EXTRN		GetStockObject:FAR
		EXTRN		DrawText:FAR
		EXTRN		Dos3Call:FAR
		EXTRN		__winflags:FAR

		.CODE

Procedure0000	PROC	NEAR
		ADD	BYTE PTR [BX+SI], AL
		ADD	BYTE PTR [BX+SI], AL
		ADD	BYTE PTR [BX+SI], AL
		ADD	BYTE PTR [BX+SI], AL
		ADD	BYTE PTR [BX+SI], AL
		ADD	BYTE PTR [BX+SI], AL
		ADD	BYTE PTR [BX+SI], AL
		ADD	BYTE PTR [BX+SI], AL
Procedure0000	ENDP

Procedure0010	PROC	NEAR
		PUSH	BP
		MOV	BP, SP
		MOV	AX, 002EH
		CALL	NEAR PTR Procedure042A
		CMP	WORD PTR [BP+10], 0
		JZ 	L0022H
		JMP	NEAR PTR L008AH
L0022H:		MOV	WORD PTR [BP-46], 0003H
		MOV	WORD PTR [BP-44], LROFFSET WNDPROC
		MOV	WORD PTR [BP-42], SEG WNDPROC
		MOV	WORD PTR [BP-40], 0000H
		MOV	WORD PTR [BP-38], 0000H
		MOV	AX, WORD PTR [BP+12]
		MOV	WORD PTR [BP-36], AX
		PUSH	0
		PUSH	0
		PUSH	7F00H
		CALL	FAR PTR LoadIcon
		MOV	WORD PTR [BP-34], AX
		PUSH	0
		PUSH	0
		PUSH	7F00H
		CALL	FAR PTR LoadCursor
		MOV	WORD PTR [BP-32], AX
		PUSH	0
		CALL	FAR PTR GetStockObject
		MOV	WORD PTR [BP-30], AX
		MOV	WORD PTR [BP-28], 0000H
		MOV	WORD PTR [BP-26], 0000H
		MOV	AX, 0010H
		MOV	DX, DS
		MOV	WORD PTR [BP-24], AX
		MOV	WORD PTR [BP-22], DX
		LEA	AX, WORD PTR [BP-46]
		MOV	DX, SS
		PUSH	DX
		PUSH	AX
		CALL	FAR PTR RegisterClass
L008AH:		MOV	AX, 0010H
		MOV	DX, DS
		PUSH	DX
		PUSH	AX
		MOV	AX, 00C2H
		MOV	DX, DS
		PUSH	DX
		PUSH	AX
		PUSH	00CFH
		PUSH	0
		PUSH	8000H
		PUSH	8000H
		PUSH	8000H
		PUSH	8000H
		PUSH	0
		PUSH	0
		PUSH	WORD PTR [BP+12]
		PUSH	0
		PUSH	0
		CALL	FAR PTR CreateWindow
		MOV	WORD PTR [BP-2], AX
		PUSH	AX
		PUSH	WORD PTR [BP+4]
		CALL	FAR PTR ShowWindow
		PUSH	WORD PTR [BP-2]
		CALL	FAR PTR UpdateWindow
L00CDH:		LEA	AX, WORD PTR [BP-20]
		MOV	DX, SS
		PUSH	DX
		PUSH	AX
		PUSH	0
		PUSH	0
		PUSH	0
		CALL	FAR PTR GetMessage
		AND	AX, AX
		JZ 	L00FEH
		LEA	AX, WORD PTR [BP-20]
		MOV	DX, SS
		PUSH	DX
		PUSH	AX
		CALL	FAR PTR TranslateMessage
		LEA	AX, WORD PTR [BP-20]
		MOV	DX, SS
		PUSH	DX
		PUSH	AX
		CALL	FAR PTR DispatchMessage
		JMP	SHORT L00CDH
		NOP
L00FEH:		MOV	AX, WORD PTR [BP-16]
		LEAVE
		RET	000AH
Procedure0010	ENDP


Procedure0105	PROC	NEAR
		NOP
Procedure0105	ENDP

WNDPROC	PROC	FAR PUBLIC
		PUSH	DS
		POP	AX
		NOP
		INC	BP
		PUSH	BP
		MOV	BP, SP
		PUSH	DS
		MOV	DS, AX
		MOV	AX, 002CH
		CALL	NEAR PTR Procedure042A
		PUSH	SI
		PUSH	DI
		MOV	SI, WORD PTR [BP+14]
		MOV	AX, WORD PTR [BP+12]
		JMP	NEAR PTR L017AH
		NOP
L0122H:		PUSH	SI
		LEA	AX, WORD PTR [BP-36]
		MOV	DX, SS
		PUSH	DX
		PUSH	AX
		CALL	FAR PTR BeginPaint
		MOV	DI, AX
		PUSH	SI
		LEA	AX, WORD PTR [BP-44]
		MOV	DX, SS
		PUSH	DX
		PUSH	AX
		CALL	FAR PTR GetClientRect
		PUSH	DI
		MOV	AX, 00DFH
		MOV	DX, DS
		PUSH	DX
		PUSH	AX
		PUSH	-1
		LEA	AX, WORD PTR [BP-44]
		MOV	DX, SS
		PUSH	DX
		PUSH	AX
		PUSH	37
		CALL	FAR PTR DrawText
		PUSH	SI
		LEA	AX, WORD PTR [BP-36]
		MOV	DX, SS
		PUSH	DX
		PUSH	AX
		CALL	FAR PTR EndPaint
		XOR	AX, AX
		XOR	DX, DX
		JMP	SHORT L019FH
		NOP
L016AH:		PUSH	0
		CALL	FAR PTR PostQuitMessage
		XOR	AX, AX
		XOR	DX, DX
		JMP	SHORT L019FH
		NOP
		JMP	SHORT L0187H
L017AH:		CMP	AX, 0002H
		JZ 	L016AH
		CMP	AX, 000FH
		JNZ	L0187H
		JMP	NEAR PTR L0122H
L0187H:		PUSH	SI
		PUSH	WORD PTR [BP+12]
		PUSH	WORD PTR [BP+10]
		PUSH	WORD PTR [BP+8]
		PUSH	WORD PTR [BP+6]
		CALL	FAR PTR DefWindowProc
		JMP	SHORT L019FH
		NOP
		MOV	WORD PTR [BP+14], SI
L019FH:		POP	DI
		POP	SI
		SUB	BP, 2
		MOV	SP, BP
		POP	DS
		POP	BP
		DEC	BP
		RETF	000AH
WNDPROC	ENDP


Procedure01AC	PROC	NEAR
L01ACH		DW	LROFFSET __winflags
L01AEH:		MOV	AL, -1
		PUSH	AX
		CALL	NEAR PTR Procedure034E
L01B4H::	XOR	BP, BP
		PUSH	BP
		CALL	FAR PTR InitTask
		OR	AX, AX
		JZ 	L01AEH
		MOV	WORD PTR D0064H, ES
		ADD	CX, 0100H
		JB 	L01AEH
		MOV	WORD PTR D002EH, CX
		MOV	WORD PTR D0030H, SI
		MOV	WORD PTR D0032H, DI
		MOV	WORD PTR D0034H, BX
		MOV	WORD PTR D0036H, ES
		MOV	WORD PTR D0038H, DX
		CALL	FAR PTR GetVersion
		MOV	WORD PTR D0066H, AX
		MOV	AH, 48
		TEST	WORD PTR CS:L01ACH, 0001H
		JZ 	L01FCH
		CALL	FAR PTR Dos3Call
		JMP	SHORT L01FEH
L01FCH:		INT	0021H
L01FEH:		MOV	WORD PTR D0068H, AX
		TEST	WORD PTR CS:L01ACH, 0001H
		JNZ	L020FH
		MOV	AL, 0
		MOV	BYTE PTR D006BH, AL
L020FH:		XOR	AX, AX
		PUSH	AX
		CALL	FAR PTR WaitEvent
		PUSH	WORD PTR D0032H
		CALL	FAR PTR InitApp
		OR	AX, AX
		JZ 	L01AEH
		CALL	NEAR PTR Procedure0268
		CALL	NEAR PTR Procedure047E
		CALL	NEAR PTR Procedure05FC
		CALL	NEAR PTR Procedure085C
		PUSH	WORD PTR D00A0H
		PUSH	WORD PTR D009EH
		PUSH	WORD PTR D009CH
		CALL	NEAR PTR Procedure024C
		ADD	SP, 6
		PUSH	AX
		CALL	NEAR PTR Procedure0347
		MOV	AX, 0015H
		JMP	NEAR PTR L0683H
Procedure01AC	ENDP

Procedure024C	PROC	NEAR
		PUSH	BP
		MOV	BP, SP
		PUSH	WORD PTR D0032H
		PUSH	WORD PTR D0030H
		PUSH	WORD PTR D0036H
		PUSH	WORD PTR D0034H
		PUSH	WORD PTR D0038H
		CALL	NEAR PTR Procedure0010
		POP	BP
		RET
Procedure024C	ENDP


Procedure0268	PROC	NEAR
		MOV	AX, 3500H
		TEST	WORD PTR CS:L01ACH, 0001H
		JZ 	L027BH
		CALL	FAR PTR Dos3Call
		JMP	SHORT L027DH
L027BH:		INT	0021H
L027DH:		MOV	WORD PTR D0050H, BX
		MOV	WORD PTR D0052H, ES
		PUSH	CS
		POP	DS
		MOV	AX, 2500H
		MOV	DX, 067EH
		TEST	WORD PTR CS:L01ACH, 0001H
		JZ 	L029DH
		CALL	FAR PTR Dos3Call
		JMP	SHORT L029FH
L029DH:		INT	0021H
L029FH:		PUSH	SS
		POP	DS
		MOV	CX, WORD PTR D00B8H
		JCXZ	L02D0H
		MOV	ES, WORD PTR D0064H
		MOV	SI, WORD PTR ES:D002CH
		MOV	AX, WORD PTR D00BAH
		MOV	DX, WORD PTR D00BCH
		XOR	BX, BX
		CALL	DWORD PTR D00B6H
		JAE	L02C2H
		JMP	NEAR PTR L0424H
L02C2H:		MOV	AX, WORD PTR D00BEH
		MOV	DX, WORD PTR D00C0H
		MOV	BX, 0003H
		CALL	DWORD PTR D00B6H
L02D0H:		MOV	ES, WORD PTR D0064H
		MOV	CX, WORD PTR ES:D002CH
		JCXZ	L0319H
		MOV	ES, CX
		XOR	DI, DI
L02DFH:		CMP	BYTE PTR ES:[DI], 0
		JZ 	L0319H
		MOV	CX, 000DH
		MOV	SI, 0042H
		REPE	CMPSB
		JZ 	L02FAH
		MOV	CX, 7FFFH
		XOR	AX, AX
		REPNE	SCASB
		JNZ	L0319H
		JMP	SHORT L02DFH
L02FAH:		PUSH	ES
		PUSH	DS
		POP	ES
		POP	DS
		MOV	SI, DI
		MOV	DI, 0074H
		MOV	CL, 4
L0305H:		LODSB
		SUB	AL, 65
		JB 	L0317H
		SHL	AL, CL
		XCHG	DX, AX
		LODSB
		SUB	AL, 65
		JB 	L0317H
		OR	AL, DL
		STOSB
		JMP	SHORT L0305H
L0317H:		PUSH	SS
		POP	DS
L0319H:		MOV	SI, 00C2H
		MOV	DI, 00C2H
		CALL	NEAR PTR Procedure03EB
		MOV	SI, 00C2H
		MOV	DI, 00C2H
		CALL	NEAR PTR Procedure03FA
		MOV	SI, 00C2H
		MOV	DI, 00C2H
		CALL	NEAR PTR Procedure03EB
		MOV	SI, 00C2H
		MOV	DI, 00C2H
		CALL	NEAR PTR Procedure03EB
		MOV	SI, 00C2H
		MOV	DI, 00C2H
		CALL	NEAR PTR Procedure03FA
		RET
Procedure0268	ENDP


Procedure0347	PROC	NEAR
		PUSH	BP
		MOV	BP, SP
		XOR	CX, CX
		JMP	SHORT L0368H
Procedure0347	ENDP

Procedure034E	PROC	NEAR
		PUSH	BP
		MOV	BP, SP
		MOV	CX, 0001H
		JMP	SHORT L0368H
		PUSH	BP
		MOV	BP, SP
		PUSH	SI
		PUSH	DI
		MOV	CX, 0100H
		JMP	SHORT L0368H
		PUSH	BP
		MOV	BP, SP
		PUSH	SI
		PUSH	DI
		MOV	CX, 0101H
L0368H::	MOV	BYTE PTR D00A9H, CH
		PUSH	CX
		OR	CL, CL
		JNZ	L038DH
		MOV	SI, 024CH
		MOV	DI, 024CH
		CALL	NEAR PTR Procedure03EB
		MOV	SI, 00C2H
		MOV	DI, 00C2H
		CALL	NEAR PTR Procedure03EB
		MOV	SI, WORD PTR [BP+4]
		PUSH	SI
		CALL	NEAR PTR Procedure085C
		ADD	SP, 2
L038DH:		MOV	SI, 00C2H
		MOV	DI, 00C2H
		CALL	NEAR PTR Procedure03EB
		MOV	SI, 00C2H
		MOV	DI, 00C2H
		CALL	NEAR PTR Procedure03FA
		CALL	NEAR PTR Procedure03C2
		POP	AX
		OR	AH, AH
		JNZ	L03BEH
		MOV	AX, WORD PTR [BP+4]
		MOV	AH, 76
		TEST	WORD PTR CS:L01ACH, 0001H
		JZ 	L03BCH
		CALL	FAR PTR Dos3Call
		JMP	SHORT L03BEH
L03BCH:		INT	0021H
L03BEH:		POP	DI
		POP	SI
		POP	BP
		RET
Procedure034E	ENDP


Procedure03C2	PROC	NEAR
		MOV	CX, WORD PTR D00B8H
		JCXZ	L03CFH
		MOV	BX, 0002H
		CALL	DWORD PTR D00B6H
L03CFH:		PUSH	DS
		LDS	DX, DWORD PTR D0050H
		MOV	AX, 2500H
		TEST	WORD PTR CS:L01ACH, 0001H
		JZ 	L03E7H
		CALL	FAR PTR Dos3Call
		JMP	SHORT L03E9H
L03E7H:		INT	0021H
L03E9H:		POP	DS
		RET
Procedure03C2	ENDP


Procedure03EB	PROC	NEAR
L03EBH:		CMP	SI, DI
		JAE	L03F9H
		DEC	DI
		DEC	DI
		MOV	CX, WORD PTR [DI]
		JCXZ	L03EBH
		CALL	CX
		JMP	SHORT L03EBH
L03F9H:		RET
Procedure03EB	ENDP


Procedure03FA	PROC	NEAR
L03FAH:		CMP	SI, DI
		JAE	L040CH
		SUB	DI, 4
		MOV	AX, WORD PTR [DI]
		OR	AX, WORD PTR [DI+2]
		JZ 	L03FAH
		CALL	DWORD PTR [DI]
		JMP	SHORT L03FAH
L040CH:		RET
Procedure03FA	ENDP


Procedure040D	PROC	NEAR
L040DH		DB	0000H
Procedure040D	ENDP

Procedure040E	PROC	NEAR
		PUSH	BP
		MOV	BP, SP
		MOV	AX, 00FCH
		PUSH	AX
		CALL	NEAR PTR Procedure06ED
		MOV	AX, 00FFH
		PUSH	AX
		CALL	NEAR PTR Procedure06ED
		MOV	SP, BP
		POP	BP
		RET
Procedure040E	ENDP


Procedure0423	PROC	NEAR
L0423H		DB	0000H
L0424H::	MOV	AX, 0002H
		JMP	NEAR PTR L0683H
Procedure0423	ENDP

Procedure042A	PROC	NEAR
		POP	BX
		INC	AX
		AND	AL, -2
		SUB	AX, SP
		JAE	L0477H
		NEG	AX
		CMP	WORD PTR SS:D000AH, AX
		JA 	L0477H
		CMP	WORD PTR SS:D000CH, AX
		JBE	L0446H
		MOV	WORD PTR D000CH, AX
L0446H:		MOV	SP, AX
		JMP	BX
		POP	BX
		POP	DX
		INC	AX
		AND	AL, -2
		SUB	AX, SP
		JAE	L046CH
		NEG	AX
		CMP	WORD PTR SS:D000AH, AX
		JA 	L046CH
		CMP	WORD PTR SS:D000CH, AX
		JBE	L0467H
		MOV	WORD PTR D000CH, AX
L0467H:		MOV	SP, AX
		PUSH	DX
		PUSH	BX
		RETF
Procedure042A	ENDP


Procedure046C	PROC	NEAR
L046CH::	MOV	DX, WORD PTR SS:D00ACH
		INC	DX
		JZ 	L0477H
		JMP	WORD PTR D00ACH
L0477H::	MOV	AX, 0000H
		JMP	NEAR PTR L0683H
L047DH		DB	0000H
Procedure046C	ENDP

Procedure047E	PROC	NEAR
		POP	WORD PTR D00AEH
		MOV	AX, 0104H
		MOV	CX, 0008H
		CALL	NEAR PTR Procedure071E
		MOV	WORD PTR D00A4H, DX
		MOV	WORD PTR D00A2H, AX
		PUSH	DX
		PUSH	AX
		PUSH	WORD PTR D0032H
		PUSH	DX
		PUSH	AX
		MOV	AX, 0104H
		PUSH	AX
		CALL	FAR PTR GetModuleFileName
		POP	BX
		POP	ES
		ADD	BX, AX
		MOV	BYTE PTR ES:[BX], 0
		MOV	DX, 0001H
		MOV	DI, 0001H
		MOV	SI, 0081H
		MOV	DS, WORD PTR D0064H
L04B8H:		LODSB
		CMP	AL, 32
		JZ 	L04B8H
		CMP	AL, 9
		JZ 	L04B8H
		CMP	AL, 13
		JZ 	L0534H
		OR	AL, AL
		JZ 	L0534H
		INC	DI
L04CAH:		DEC	SI
L04CBH:		LODSB
		CMP	AL, 32
		JZ 	L04B8H
		CMP	AL, 9
		JZ 	L04B8H
		CMP	AL, 13
		JZ 	L0534H
		OR	AL, AL
		JZ 	L0534H
		CMP	AL, 34
		JZ 	L0504H
		CMP	AL, 92
		JZ 	L04E7H
		INC	DX
		JMP	SHORT L04CBH
L04E7H:		XOR	CX, CX
L04E9H:		INC	CX
		LODSB
		CMP	AL, 92
		JZ 	L04E9H
		CMP	AL, 34
		JZ 	L04F7H
		ADD	DX, CX
		JMP	SHORT L04CAH
L04F7H:		MOV	AX, CX
		SHR	CX, 1
		ADC	DX, CX
		TEST	AL, 1
		JNZ	L04CBH
		JMP	SHORT L0504H
L0503H:		DEC	SI
L0504H:		LODSB
		CMP	AL, 13
		JZ 	L0534H
		OR	AL, AL
		JZ 	L0534H
		CMP	AL, 34
		JZ 	L04CBH
		CMP	AL, 92
		JZ 	L0518H
		INC	DX
		JMP	SHORT L0504H
L0518H:		XOR	CX, CX
L051AH:		INC	CX
		LODSB
		CMP	AL, 92
		JZ 	L051AH
		CMP	AL, 34
		JZ 	L0528H
		ADD	DX, CX
		JMP	SHORT L0503H
L0528H:		MOV	AX, CX
		SHR	CX, 1
		ADC	DX, CX
		TEST	AL, 1
		JNZ	L0504H
		JMP	SHORT L04CBH
L0534H:		PUSH	SS
		POP	DS
		MOV	WORD PTR D009CH, DI
		ADD	DX, DI
		INC	DI
		SHL	DI, 1
		ADD	DX, DI
		INC	DX
		AND	DL, -2
		SUB	SP, DX
		MOV	AX, SP
		MOV	WORD PTR D009EH, AX
		MOV	BX, AX
		ADD	DI, BX
		PUSH	SS
		POP	ES
		LDS	SI, DWORD PTR D00A2H
		MOV	WORD PTR SS:[BX], SI
		INC	BX
		INC	BX
		MOV	DS, WORD PTR SS:D0064H
		MOV	SI, 0081H
		JMP	SHORT L0568H
L0565H:		XOR	AX, AX
		STOSB
L0568H:		LODSB
		CMP	AL, 32
		JZ 	L0568H
		CMP	AL, 9
		JZ 	L0568H
		CMP	AL, 13
		JZ 	L05F1H
		OR	AL, AL
		JZ 	L05F1H
		MOV	WORD PTR SS:[BX], DI
		INC	BX
		INC	BX
L057EH:		DEC	SI
L057FH:		LODSB
		CMP	AL, 32
		JZ 	L0565H
		CMP	AL, 9
		JZ 	L0565H
		CMP	AL, 13
		JZ 	L05EEH
		OR	AL, AL
		JZ 	L05EEH
		CMP	AL, 34
		JZ 	L05BBH
		CMP	AL, 92
		JZ 	L059BH
		STOSB
		JMP	SHORT L057FH
L059BH:		XOR	CX, CX
L059DH:		INC	CX
		LODSB
		CMP	AL, 92
		JZ 	L059DH
		CMP	AL, 34
		JZ 	L05ADH
		MOV	AL, 92
		REP	STOSB
		JMP	SHORT L057EH
L05ADH:		MOV	AL, 92
		SHR	CX, 1
		REP	STOSB
		JAE	L05BBH
		MOV	AL, 34
		STOSB
		JMP	SHORT L057FH
L05BAH:		DEC	SI
L05BBH:		LODSB
		CMP	AL, 13
		JZ 	L05EEH
		OR	AL, AL
		JZ 	L05EEH
		CMP	AL, 34
		JZ 	L057FH
		CMP	AL, 92
		JZ 	L05CFH
		STOSB
		JMP	SHORT L05BBH
L05CFH:		XOR	CX, CX
L05D1H:		INC	CX
		LODSB
		CMP	AL, 92
		JZ 	L05D1H
		CMP	AL, 34
		JZ 	L05E1H
		MOV	AL, 92
		REP	STOSB
		JMP	SHORT L05BAH
L05E1H:		MOV	AL, 92
		SHR	CX, 1
		REP	STOSB
		JAE	L057FH
		MOV	AL, 34
		STOSB
		JMP	SHORT L05BBH
L05EEH:		XOR	AX, AX
		STOSB
L05F1H:		PUSH	SS
		POP	DS
		MOV	WORD PTR [BX], 0000H
		JMP	WORD PTR D00AEH
L05FBH		DB	0000H
Procedure047E	ENDP

Procedure05FC	PROC	NEAR
		PUSH	BP
		MOV	BP, SP
		PUSH	DS
		CALL	FAR PTR GetDosEnvironment
		OR	AX, AX
		JZ 	L060BH
		MOV	DX, AX
L060BH:		MOV	BX, DX
		MOV	ES, DX
		XOR	AX, AX
		XOR	SI, SI
		XOR	DI, DI
		MOV	CX, 0FFFFH
		OR	BX, BX
		JZ 	L062AH
		CMP	BYTE PTR ES:D0000H, 0
		JZ 	L062AH
L0624H:		REPNE	SCASB
		INC	SI
		SCASB
		JNZ	L0624H
L062AH:		MOV	AX, DI
		INC	AX
		AND	AL, -2
		INC	SI
		MOV	DI, SI
		SHL	SI, 1
		MOV	CX, 0009H
		CALL	NEAR PTR Procedure071E
		PUSH	AX
		MOV	AX, SI
		CALL	NEAR PTR Procedure071E
		MOV	WORD PTR D00A0H, AX
		PUSH	ES
		PUSH	DS
		POP	ES
		POP	DS
		MOV	CX, DI
		MOV	BX, AX
		XOR	SI, SI
		POP	DI
		DEC	CX
		JCXZ	L0677H
L0651H:		MOV	AX, WORD PTR [SI]
		CMP	AX, WORD PTR SS:D0042H
		JNZ	L066AH
		PUSH	CX
		PUSH	SI
		PUSH	DI
		MOV	DI, 0042H
		MOV	CX, 0006H
		REPE	CMPSW
		POP	DI
		POP	SI
		POP	CX
		JZ 	L066FH
L066AH:		MOV	WORD PTR ES:[BX], DI
		INC	BX
		INC	BX
L066FH:		LODSB
		STOSB
		OR	AL, AL
		JNZ	L066FH
		LOOP	L0651H
L0677H:		MOV	WORD PTR ES:[BX], CX
		POP	DS
		POP	BP
		RET
Procedure05FC	ENDP


Procedure067D	PROC	NEAR
L067DH		DB	0000H
		PUSH	SS
		POP	DS
		MOV	AX, 0003H
L0683H::	PUSH	AX
		PUSH	AX
		CALL	NEAR PTR Procedure040E
		CALL	NEAR PTR Procedure06ED
		CALL	NEAR PTR Procedure06C2
		XOR	BX, BX
		OR	AX, AX
		JZ 	L06B1H
		MOV	DI, AX
		MOV	AX, 0009H
		CMP	BYTE PTR [DI], 77
		JNZ	L06A1H
		MOV	AX, 000FH
L06A1H:		ADD	DI, AX
		PUSH	DI
		PUSH	DS
		POP	ES
		MOV	AL, 13
		MOV	CX, 0022H
		REPNE	SCASB
		MOV	BYTE PTR [DI-1], BL
		POP	AX
L06B1H:		PUSH	BX
		PUSH	DS
		PUSH	AX
		CALL	FAR PTR FatalAppExit
		MOV	AX, 00FFH
		PUSH	AX
		CALL	FAR PTR FatalExit
Procedure067D	ENDP

Procedure06C2	PROC	NEAR
		PUSH	BP
		MOV	BP, SP
		PUSH	SI
		PUSH	DI
		PUSH	DS
		POP	ES
		MOV	DX, WORD PTR [BP+4]
		MOV	SI, 0102H
L06CFH:		LODSW
		CMP	AX, DX
		JZ 	L06E4H
		INC	AX
		XCHG	SI, AX
		JZ 	L06E4H
		XCHG	DI, AX
		XOR	AX, AX
		MOV	CX, 0FFFFH
		REPNE	SCASB
		MOV	SI, DI
		JMP	SHORT L06CFH
L06E4H:		XCHG	SI, AX
		POP	DI
		POP	SI
		MOV	SP, BP
		POP	BP
		RET	0002H
Procedure06C2	ENDP


Procedure06ED	PROC	NEAR
		PUSH	BP
		MOV	BP, SP
		PUSH	DI
		CMP	WORD PTR D00B2H, 0
		JZ 	L0716H
		PUSH	WORD PTR [BP+4]
		CALL	NEAR PTR Procedure06C2
		OR	AX, AX
		JZ 	L0716H
		XCHG	DX, AX
		MOV	DI, DX
		XOR	AX, AX
		MOV	CX, 0FFFFH
		REPNE	SCASB
		NOT	CX
		DEC	CX
		MOV	BX, WORD PTR D006EH
		CALL	NEAR PTR Procedure0861
L0716H:		POP	DI
		MOV	SP, BP
		POP	BP
		RET	0002H
Procedure06ED	ENDP


Procedure071D	PROC	NEAR
L071DH		DB	0000H
Procedure071D	ENDP

Procedure071E	PROC	NEAR
		PUSH	BP
		MOV	BP, SP
		PUSH	BX
		PUSH	ES
		PUSH	CX
		MOV	CX, 1000H
		XCHG	CX, WORD PTR D00B0H
		PUSH	CX
		PUSH	AX
		CALL	NEAR PTR Procedure0868
		POP	BX
		POP	WORD PTR D00B0H
		POP	CX
		MOV	DX, DS
		OR	AX, AX
		JZ 	L0740H
		POP	ES
		POP	BX
		JMP	SHORT L0745H
L0740H:		MOV	AX, CX
		JMP	NEAR PTR L0683H
L0745H:		MOV	SP, BP
		POP	BP
		RET
Procedure071E	ENDP


Procedure0749	PROC	NEAR
L0749H		DB	0000H
		PUSH	CX
		PUSH	DI
		TEST	BYTE PTR [BX+2], 1
		JZ 	L07B5H
		CALL	NEAR PTR Procedure083C
		MOV	DI, SI
		MOV	AX, WORD PTR [SI]
		TEST	AL, 1
		JZ 	L0760H
		SUB	CX, AX
		DEC	CX
L0760H:		INC	CX
		INC	CX
		MOV	SI, WORD PTR [BX+4]
		OR	SI, SI
		JZ 	L07B5H
		ADD	CX, SI
		JAE	L0776H
		XOR	AX, AX
		MOV	DX, 0FFF0H
		JCXZ	L07A4H
		JMP	SHORT L07B5H
L0776H:		PUSH	SS
		POP	ES
		MOV	AX, WORD PTR D00B0H
		CMP	AX, 1000H
		JZ 	L0797H
		MOV	DX, 8000H
L0784H:		CMP	DX, AX
		JB 	L078EH
		SHR	DX, 1
		JNZ	L0784H
		JMP	SHORT L07B0H
L078EH:		CMP	DX, 8
		JB 	L07B0H
		SHL	DX, 1
		MOV	AX, DX
L0797H:		DEC	AX
		MOV	DX, AX
		ADD	AX, CX
		JAE	L07A0H
		XOR	AX, AX
L07A0H:		NOT	DX
		AND	AX, DX
L07A4H:		PUSH	DX
		CALL	NEAR PTR Procedure07D6
		POP	DX
		JAE	L07B8H
		CMP	DX, -16
		JZ 	L07B5H
L07B0H:		MOV	AX, 0010H
		JMP	SHORT L0797H
L07B5H:		STC
		JMP	SHORT L07D3H
L07B8H:		MOV	DX, AX
		SUB	DX, WORD PTR ES:[BX+4]
		MOV	WORD PTR [BX+4], AX
		MOV	WORD PTR [BX+10], DI
		MOV	SI, WORD PTR [BX+12]
		DEC	DX
		MOV	WORD PTR [SI], DX
		INC	DX
		ADD	SI, DX
		MOV	WORD PTR [SI], 0FFFEH
		MOV	WORD PTR [BX+12], SI
L07D3H:		POP	DI
		POP	CX
		RET
Procedure0749	ENDP


Procedure07D6	PROC	NEAR
		MOV	DX, AX
		TEST	BYTE PTR [BX+2], 4
		JZ 	L07E0H
		JMP	SHORT L0831H
L07E0H:		PUSH	DX
		PUSH	CX
		PUSH	BX
		MOV	SI, WORD PTR [BX+6]
		MOV	BX, WORD PTR CS:L01ACH
		XOR	CX, CX
		OR	DX, DX
		JNZ	L07F8H
		TEST	BX, 0010H
		JNZ	L0837H
		INC	CX
L07F8H:		MOV	AX, 0022H
		TEST	BX, 0001H
		JNZ	L0804H
		MOV	AX, 0020H
L0804H:		PUSH	SI
		PUSH	CX
		PUSH	DX
		PUSH	AX
		CALL	FAR PTR GlobalRealloc
		OR	AX, AX
		JZ 	L0837H
		CMP	AX, SI
		JNZ	L0831H
		PUSH	SI
		CALL	FAR PTR GlobalSize
		OR	DX, AX
		JZ 	L0831H
		POP	BX
		POP	CX
		POP	DX
		MOV	AX, DX
		TEST	BYTE PTR [BX+2], 4
		JZ 	L082EH
		DEC	DX
		MOV	WORD PTR [BX-2], DX
L082EH:		CLC
		JMP	SHORT L083BH
L0831H:		MOV	AX, 0012H
		JMP	NEAR PTR L0683H
L0837H:		POP	BX
		POP	CX
		POP	DX
		STC
L083BH:		RET
Procedure07D6	ENDP


Procedure083C	PROC	NEAR
		PUSH	DI
		MOV	SI, WORD PTR [BX+10]
		CMP	SI, WORD PTR [BX+12]
		JNZ	L0848H
		MOV	SI, WORD PTR [BX+8]
L0848H:		LODSW
		CMP	AX, -2
		JZ 	L0856H
		MOV	DI, SI
		AND	AL, -2
		ADD	SI, AX
		JMP	SHORT L0848H
L0856H:		DEC	DI
		DEC	DI
		MOV	SI, DI
		POP	DI
		RET
Procedure083C	ENDP


Procedure085C	PROC	NEAR
		PUSH	BP
		MOV	BP, SP
		POP	BP
		RET
Procedure085C	ENDP


Procedure0861	PROC	NEAR
		MOV	AX, 0014H
		JMP	NEAR PTR L0683H
L0867H		DB	0000H
Procedure0861	ENDP

Procedure0868	PROC	NEAR
		PUSH	BP
		MOV	BP, SP
		SUB	SP, 4
		MOV	AX, 0FFFFH
		PUSH	AX
		CALL	FAR PTR LockSegment
		MOV	AX, 0020H
		PUSH	AX
		CMP	WORD PTR [BP+4], 0
		JZ 	L0886H
		MOV	AX, WORD PTR [BP+4]
		JMP	SHORT L0889H
L0886H:		MOV	AX, 0001H
L0889H:		PUSH	AX
		CALL	FAR PTR LocalAlloc
		MOV	WORD PTR [BP-2], AX
		MOV	AX, 0FFFFH
		PUSH	AX
		CALL	FAR PTR UnlockSegment
		MOV	AX, WORD PTR [BP-2]
		MOV	SP, BP
		POP	BP
		RET
Procedure0868	ENDP


Procedure08A2	PROC	NEAR
		PUSH	BP
		MOV	BP, SP
		PUSH	WORD PTR [BP+4]
		CALL	FAR PTR LocalFree
		MOV	SP, BP
		POP	BP
		RET
Procedure08A2	ENDP


Procedure08B1	PROC	NEAR
		NOP
		PUSH	BP
		MOV	BP, SP
		SUB	SP, 4
		CMP	WORD PTR [BP+4], 0
		JNZ	L08CAH
		PUSH	WORD PTR [BP+6]
		CALL	NEAR PTR Procedure0868
		ADD	SP, 2
		JMP	SHORT L08FEH
		NOP
L08CAH:		MOV	AX, 0FFFFH
		PUSH	AX
		CALL	FAR PTR LockSegment
		PUSH	WORD PTR [BP+4]
		CMP	WORD PTR [BP+6], 0
		JZ 	L08E2H
		MOV	AX, WORD PTR [BP+6]
		JMP	SHORT L08E5H
		NOP
L08E2H:		MOV	AX, 0001H
L08E5H:		PUSH	AX
		MOV	AX, 0062H
		PUSH	AX
		CALL	FAR PTR LocalRealloc
		MOV	WORD PTR [BP-2], AX
		MOV	AX, 0FFFFH
		PUSH	AX
		CALL	FAR PTR UnlockSegment
		MOV	AX, WORD PTR [BP-2]
L08FEH:		MOV	SP, BP
		POP	BP
		RET
Procedure08B1	ENDP


Procedure0902	PROC	NEAR
		PUSH	BP
		MOV	BP, SP
		PUSH	WORD PTR [BP+4]
		CALL	FAR PTR LocalSize
		MOV	SP, BP
		POP	BP
		RET
Procedure0902	ENDP


Procedure0911	PROC	NEAR
		NOP
Procedure0911	ENDP

		END	L01B4H