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

SECTION _TEXT
[GLOBAL	_isspace]
;
; Line 395:	{
;
_isspace:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	EBX
	PUSH	ESI
	PUSH	EDI
	MOV	EBX,DWORD [EBP+08H]
;
; Line 397:		c &= 0x7ff;
;
	AND	EBX,07FFH
;
; Line 398:		val = (c >> 3) ;
;
	MOV	EDI,EBX
	SAR	EDI,03H
;
; Line 399:		bit = 0x80 >> (c & 7);
;
	MOV	EAX,EBX
	AND	EAX,BYTE 07H
	MOV	ECX,080H
	XCHG	EAX,ECX
	SAR	EAX,CL
	MOV	ESI,EAX
;
; Line 400:		return((spacechars[val] & bit) != 0);
;
	MOVZX	EAX,BYTE [EDI+_spacechars+00H]
	AND	EAX,ESI
	SETNE	AL
	MOVZX	EAX,AL
L_1:
	POP	EDI
	POP	ESI
	POP	EBX
	POP	EBP
	RET
[GLOBAL	_isalpha]
;
; Line 403:	{
;
_isalpha:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	EBX
	PUSH	ESI
	PUSH	EDI
	MOV	EBX,DWORD [EBP+08H]
;
; Line 405:		c &= 0x7ff;
;
	AND	EBX,07FFH
;
; Line 406:		val = (c >> 3) ;
;
	MOV	EDI,EBX
	SAR	EDI,03H
;
; Line 407:		bit = 0x80 >> (c & 7);
;
	MOV	EAX,EBX
	AND	EAX,BYTE 07H
	MOV	ECX,080H
	XCHG	EAX,ECX
	SAR	EAX,CL
	MOV	ESI,EAX
;
; Line 408:		return((alchars[val] & bit) != 0);
;
	MOVZX	EAX,BYTE [EDI+_alchars+00H]
	AND	EAX,ESI
	SETNE	AL
	MOVZX	EAX,AL
L_2:
	POP	EDI
	POP	ESI
	POP	EBX
	POP	EBP
	RET
[GLOBAL	_ispunct]
;
; Line 411:	{
;
_ispunct:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	EBX
	PUSH	ESI
	PUSH	EDI
	MOV	EBX,DWORD [EBP+08H]
;
; Line 413:		c &= 0x7ff;
;
	AND	EBX,07FFH
;
; Line 414:		val = (c >> 3) ;
;
	MOV	EDI,EBX
	SAR	EDI,03H
;
; Line 415:		bit = 0x80 >> (c & 7);
;
	MOV	EAX,EBX
	AND	EAX,BYTE 07H
	MOV	ECX,080H
	XCHG	EAX,ECX
	SAR	EAX,CL
	MOV	ESI,EAX
;
; Line 416:		return((punctchars[val] & bit) != 0);
;
	MOVZX	EAX,BYTE [EDI+_punctchars+00H]
	AND	EAX,ESI
	SETNE	AL
	MOVZX	EAX,AL
L_3:
	POP	EDI
	POP	ESI
	POP	EBX
	POP	EBP
	RET
[GLOBAL	_islower]
;
; Line 419:	{
;
_islower:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	EBX
	PUSH	ESI
	PUSH	EDI
	MOV	EBX,DWORD [EBP+08H]
;
; Line 421:		c &= 0x7ff;
;
	AND	EBX,07FFH
;
; Line 422:		val = (c >> 3) ;
;
	MOV	EDI,EBX
	SAR	EDI,03H
;
; Line 423:		bit = 0x80 >> (c & 7);
;
	MOV	EAX,EBX
	AND	EAX,BYTE 07H
	MOV	ECX,080H
	XCHG	EAX,ECX
	SAR	EAX,CL
	MOV	ESI,EAX
;
; Line 424:		return((lowerchars[val] & bit) != 0);
;
	MOVZX	EAX,BYTE [EDI+_lowerchars+00H]
	AND	EAX,ESI
	SETNE	AL
	MOVZX	EAX,AL
L_4:
	POP	EDI
	POP	ESI
	POP	EBX
	POP	EBP
	RET
[GLOBAL	_isupper]
;
; Line 427:	{
;
_isupper:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	EBX
	MOV	EBX,DWORD [EBP+08H]
;
; Line 428:		return(isalpha(c) && !islower(c));
;
	PUSH	EBX
	CALL	_isalpha
	POP	ECX
	TEST	EAX,EAX
	JE	SHORT	L_6
	PUSH	EBX
	CALL	_islower
	POP	ECX
	TEST	EAX,EAX
	JE	SHORT	L_5
L_6:
	SUB	EAX,EAX
; TEST EAX,IMMED (branches around next four bytes of code)
	DB	0A9H
L_5:
	SUB	EAX,EAX
	INC	EAX
	NOP
L_7:
	POP	EBX
	POP	EBP
	RET
[GLOBAL	_isprint]
;
; Line 431:	{
;
_isprint:
	PUSH	EBP
	MOV	EBP,ESP
;
; Line 432:		return 1;
;
	MOV	EAX,01H
L_8:
	POP	EBP
	RET
[GLOBAL	_isalnum]
;
; Line 436:	{
;
_isalnum:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	EBX
	PUSH	ESI
	PUSH	EDI
	MOV	EBX,DWORD [EBP+08H]
;
; Line 438:		c &= 0x7ff;
;
	AND	EBX,07FFH
;
; Line 439:		val = (c >> 3) ;
;
	MOV	EDI,EBX
	SAR	EDI,03H
;
; Line 440:		bit = 0x80 >> (c & 7);
;
	MOV	EAX,EBX
	AND	EAX,BYTE 07H
	MOV	ECX,080H
	XCHG	EAX,ECX
	SAR	EAX,CL
	MOV	ESI,EAX
;
; Line 441:		if (alchars[val] & bit)
;
	MOVZX	EAX,BYTE [EDI+_alchars+00H]
	AND	EAX,ESI
	JE	SHORT	L_9
;
; Line 442:			return 1;
;
	MOV	EAX,01H
	JMP	L_11
L_9:
;
; Line 444:			return( ('0' <= c) && (c <= '9'));
;
	CMP	EBX,BYTE 030H
	JLE	SHORT	L_13
	CMP	EBX,BYTE 039H
	JLE	SHORT	L_12
L_13:
	SUB	EAX,EAX
; TEST EAX,IMMED (branches around next four bytes of code)
	DB	0A9H
L_12:
	SUB	EAX,EAX
	INC	EAX
	NOP
L_10:
;
; Line 445:	}
;
L_11:
	POP	EDI
	POP	ESI
	POP	EBX
	POP	EBP
	RET
[GLOBAL	_isgraph]
;
; Line 447:	{
;
_isgraph:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	EBX
	MOV	EBX,DWORD [EBP+08H]
;
; Line 448:		return(isalnum(c) || isxdigit(c) || ispunct(c));
;
	PUSH	EBX
	CALL	_isalnum
	POP	ECX
	TEST	EAX,EAX
	JNE	NEAR	L_14
	PUSH	EBX
	CALL	_isxdigit
	POP	ECX
	TEST	EAX,EAX
	JNE	SHORT	L_14
	PUSH	EBX
	CALL	_ispunct
	POP	ECX
	TEST	EAX,EAX
	JNE	SHORT	L_14
	SUB	EAX,EAX
; TEST EAX,IMMED (branches around next four bytes of code)
	DB	0A9H
L_14:
	SUB	EAX,EAX
	INC	EAX
	NOP
L_15:
	POP	EBX
	POP	EBP
	RET
[GLOBAL	_isdigit]
;
; Line 451:	{
;
_isdigit:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	EBX
	MOV	EBX,DWORD [EBP+08H]
;
; Line 452:		c &= 0x7ff;
;
	AND	EBX,07FFH
;
; Line 453:		return( ('0' <= c) && (c <= '9'));
;
	CMP	EBX,BYTE 030H
	JLE	SHORT	L_17
	CMP	EBX,BYTE 039H
	JLE	SHORT	L_16
L_17:
	SUB	EAX,EAX
; TEST EAX,IMMED (branches around next four bytes of code)
	DB	0A9H
L_16:
	SUB	EAX,EAX
	INC	EAX
	NOP
L_18:
	POP	EBX
	POP	EBP
	RET
[GLOBAL	_isxdigit]
;
; Line 456:	{
;
_isxdigit:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	EBX
	MOV	EBX,DWORD [EBP+08H]
;
; Line 457:		c &= 0x7ff;
;
	AND	EBX,07FFH
;
; Line 458:		return(isdigit(c) || (('a' <= c) && ('f' >= c)) ||  (('A' <= c) && ('F' >= c)));
;
	PUSH	EBX
	CALL	_isdigit
	POP	ECX
	TEST	EAX,EAX
	JNE	NEAR	L_19
	CMP	EBX,BYTE 061H
	JLE	SHORT	L_20
	CMP	EBX,BYTE 066H
	JL	SHORT	L_19
L_20:
	CMP	EBX,BYTE 041H
	JLE	SHORT	L_21
	CMP	EBX,BYTE 046H
	JL	SHORT	L_19
L_21:
	SUB	EAX,EAX
; TEST EAX,IMMED (branches around next four bytes of code)
	DB	0A9H
L_19:
	SUB	EAX,EAX
	INC	EAX
	NOP
L_22:
	POP	EBX
	POP	EBP
	RET
[GLOBAL	_isascii]
;
; Line 462:	{
;
_isascii:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	EBX
	MOV	EBX,DWORD [EBP+08H]
;
; Line 463:		c &= 0x7ff;
;
	AND	EBX,07FFH
;
; Line 464:		return ( c < 0x80);
;
	CMP	EBX,080H
	SETL	AL
	MOVZX	EAX,AL
L_23:
	POP	EBX
	POP	EBP
	RET
[GLOBAL	_iscntrl]
;
; Line 467:	{
;
_iscntrl:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	EBX
	MOV	EBX,DWORD [EBP+08H]
;
; Line 468:		c &= 0x7ff;
;
	AND	EBX,07FFH
;
; Line 469:		return( (c & 0x7f) < 0x20);
;
	MOV	EAX,EBX
	AND	EAX,BYTE 07FH
	CMP	EAX,BYTE 020H
	SETL	AL
	MOVZX	EAX,AL
L_24:
	POP	EBX
	POP	EBP
	RET
[GLOBAL	__ltolower]
;
; Line 472:	{
;
__ltolower:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	EBX
	MOV	EBX,DWORD [EBP+08H]
;
; Line 473:		if (isupper(c))
;
	PUSH	EBX
	CALL	_isupper
	POP	ECX
	TEST	EAX,EAX
	JE	SHORT	L_25
;
; Line 474:			return c+32;
;
	LEA	EAX,[EBX+020H]
	JMP	L_27
L_25:
;
; Line 475:		return c;
;
	MOV	EAX,EBX
L_27:
	POP	EBX
	POP	EBP
	RET
[GLOBAL	__ltoupper]
;
; Line 478:	{
;
__ltoupper:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	EBX
	MOV	EBX,DWORD [EBP+08H]
;
; Line 479:		if (islower(c))
;
	PUSH	EBX
	CALL	_islower
	POP	ECX
	TEST	EAX,EAX
	JE	SHORT	L_28
;
; Line 480:			return c-32;
;
	LEA	EAX,[EBX+0FFFFFFE0H]
	JMP	L_30
L_28:
;
; Line 481:		return c;
;
	MOV	EAX,EBX
L_30:
	POP	EBX
	POP	EBP
	RET

SECTION _DATA

_alchars	DB	00H,00H,00H,00H,00H,00H,00H,00H,07FH,0FFH,0FFH,0E0H
	DB	07FH,0FFH,0FFH,0E0H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,07EH,011H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
	DB	00H,00H,00H,00H,00H,00H,00H,00H,0FFH,0FFH,0FFH,0FFH
	DB	0FFH,0FCH,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	0FFH,0FFH,0FFH,00H,0FFH,0FFH,0FFH,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,0FFH,0FFH,0F8H,00H,0FFH,0FFH,0FFH,0F0H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H

_spacechars	DB	00H,024H,00H,00H,080H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,01H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,02AH,0A8H,0B1H,0D8H
	DB	080H,076H,03BH,010H,08H,04H,02H,01H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,0FFH,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H

_punctchars	DB	00H,00H,00H,00H,065H,0CAH,00H,031H,00H,00H,00H,01DH
	DB	080H,00H,00H,014H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,076H,0EEH,0C0H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	0FFH,0E0H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,0FH,0FCH
	DB	00H,00H,00H,0FCH,00H,00H,00H,0F0H,00H,00H,00H,00H
	DB	00H,040H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H

_lowerchars	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	07FH,0FFH,0FFH,0E0H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,055H,055H,055H,055H,055H,055H,055H,055H,055H,055H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,0FFH,0FFH,0FFH,0FFH
	DB	0FEH,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,0FFH,0FFH,0FFH,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,0FFH,0FFH,0FFH,0F0H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	DB	00H,00H,00H,00H
SECTION _BSS
