src/sha_dev.js
function safeAdd_32_4(a, b, c, d)
	{
		var lsw = (a & 0xFFFF) + (b & 0xFFFF) + (c & 0xFFFF) + (d & 0xFFFF),
			msw = (a >>> 16) + (b >>> 16) + (c >>> 16) + (d >>> 16) +
				(lsw >>> 16);

		return ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);
	}
function safeAdd_32_4(a, b, c, d)
	{
		var lsw = (a & 0xFFFF) + (b & 0xFFFF) + (c & 0xFFFF) + (d & 0xFFFF),
			msw = (a >>> 16) + (b >>> 16) + (c >>> 16) + (d >>> 16) +
				(lsw >>> 16);

		return ((msw & 0xFFFF) << 16) | (lsw & 0xFFFF);
	}
function safeAdd_32_4 ( a , b , c , d ) { var lsw = ( a & 0xFFFF ) + ( b & 0xFFFF ) + ( c & 0xFFFF ) + ( d & 0xFFFF ) , msw = ( a >>> 16 ) + ( b >>> 16 ) + ( c >>> 16 ) + ( d >>> 16 ) + ( lsw >>> 16 ) ; return ( ( msw & 0xFFFF ) << 16 ) | ( lsw & 0xFFFF ) ; }
Add four 32-bit integers, wrapping at 2^32. This uses 16-bit operations
internally to work around bugs in some JS interpreters.

@private
@param {number} a The first 32-bit integer argument to be added
@param {number} b The second 32-bit integer argument to be added
@param {number} c The third 32-bit integer argument to be added
@param {number} d The fourth 32-bit integer argument to be added
@return {number} The sum of a + b + c + d
Add four 32 - bit integers wrapping at 2^32 . This uses 16 - bit operations internally to work around bugs in some JS interpreters .