TITLE encode.asm
.486P
.model FLAT
PUBLIC _encode
_DATA SEGMENT
_DATA ENDS
_TEXT SEGMENT
_encode PROC NEAR
PUSH EBP
MOV EBP, ESP
PUSH ECX
PUSH EBX
MOV EAX, DWORD PTR 8[EBP]
MOV EAX, DWORD PTR [EAX]
BSWAP EAX
SHR EAX, 8
MOV ECX, EAX
AND ECX, 3Fh
MOV EBX, EAX
AND EBX, 0FC0h
SHL EBX, 2
OR ECX, EBX
MOV EBX, EAX
AND EBX, 3F000h
SHL EBX, 4
OR ECX, EBX
MOV EBX, EAX
AND EBX, 0FC0000h
SHL EBX, 6
OR ECX, EBX
BSWAP ECX
MOV EAX, ECX
POP EBX
POP ECX
MOV ESP, EBP
POP EBP
RET 0
_encode ENDP
_TEXT ENDS
END |