*--page2
Procedure md5_GG(AA, b, c, d, x10325476, s, ac)
AA = AddUnsigned(AA, AddUnsigned(AddUnsigned(md5_G(b, c, d), x10325476), ac))
AA = RotateLeft(AA, s)
AA = AddUnsigned(AA, b)
Endproc
Procedure md5_HH(AA, b, c, d, x10325476, s, ac)
AA = AddUnsigned(AA, AddUnsigned(AddUnsigned(md5_H(b, c, d), x10325476), ac))
AA = RotateLeft(AA, s)
AA = AddUnsigned(AA, b)
Endproc
Procedure md5_II(AA, b, c, d, x10325476, s, ac)
AA = AddUnsigned(AA, AddUnsigned(AddUnsigned(md5_I(b, c, d), x10325476), ac))
AA = RotateLeft(AA, s)
AA = AddUnsigned(AA, b)
Endproc
Function Hex(lByte)
x10325476=''
Do While lByte>0
If lByte>=16
Y=lByte%16
Else
Y=lByte
Endif
If Y<10 .And. Y>=0
x10325476=Str(Y,1)+x10325476
Else
x10325476=Chr(65+Y-10)+x10325476
Endif
lByte=(lByte-Y)/16
Enddo
Return x10325476
Endfunc
Function WordToHex(lvalue)
lResult=''
For lCount = 0 To 3
lByte = Bitand(RShift(lvalue, lCount * BITS_TO_A_BYTE) , m_lOnBits(BITS_TO_A_BYTE ))
lResult = lResult + Right("00" + Hex(lByte), 2)
Endfor
Return lResult
Endfunc