x, y, z) {
        return ((x) ^ (y) ^ (z));
    }

    function f2(x, y, z) {
        return (((x) & (y)) | ((~x) & (z)));
    }

    function f3(x, y, z) {
        return (((x) | (~(y))) ^ (z));
    }

    function f4(x, y, z) {
        return (((x) & (z)) | ((y) & (~(z))));
    }

    function f5(x, y, z) {
        return ((x) ^ ((y) | (~(z))));
    }

    function rotl(x, n) {
        return (x << n) | (x >>> (32 - n));
    }

    function ripemd160(message) {
        var H = [0x67452301, 0xEFCDAB89, 0x