	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	_stricmp]
;
; Line 4:	{
;
_stricmp:
	PUSH	EBP
	MOV	EBP,ESP
	PUSH	ESI
	PUSH	EDI
	MOV	ESI,DWORD [EBP+0CH]
	MOV	EDI,DWORD [EBP+08H]
	JMP	L_1
L_3:
;
; Line 6:			if (toupper(*__s1) != toupper(*__s2))
;
	MOVSX	EAX,BYTE [ESI+00H]
	PUSH	EAX
	CALL	_toupper
	POP	ECX
	PUSH	EAX
	MOVSX	EAX,BYTE [EDI+00H]
	PUSH	EAX
	CALL	_toupper
	POP	ECX
	MOV	ECX,EAX
	POP	EAX
	CMP	ECX,EAX
	JE	NEAR	L_4
;
; Line 7:				return toupper(*__s1) > toupper(*__s2) ? 1 : -1;
;
	MOVSX	EAX,BYTE [ESI+00H]
	PUSH	EAX
	CALL	_toupper
	POP	ECX
	PUSH	EAX
	MOVSX	EAX,BYTE [EDI+00H]
	PUSH	EAX
	CALL	_toupper
	POP	ECX
	MOV	ECX,EAX
	POP	EAX
	CMP	ECX,EAX
	JLE	SHORT	L_6
	MOV	EAX,01H
	JMP	L_7
L_6:
	MOV	EAX,0FFFFFFFFH
L_7:
	JMP	L_8
L_4:
;
; Line 8:			__s1++;
;
	INC	EDI
;
; Line 9:			__s2++;
;
	INC	ESI
;
; Line 10:		}
;
L_1:
;
; Line 5:		while (*__s1) {
;
	CMP	BYTE [EDI+00H],BYTE 00H
	JNE	NEAR	L_3
L_2:
;
; Line 11:		if (*__s2) return -1;
;
	CMP	BYTE [ESI+00H],BYTE 00H
	JE	SHORT	L_9
	MOV	EAX,0FFFFFFFFH
	JMP	L_8
L_9:
;
; Line 12:		return 0;
;
	MOV	EAX,00H
L_8:
	POP	EDI
	POP	ESI
	POP	EBP
	RET


SECTION _TEXT
[EXTERN	_toupper]
