public void crypt(byte[] input, byte[] output) {
	    
	    // The pseudo-random generation algorithm
	    for (int i = 0; i < input.length; i++) {
	        x = (x + 1) & 0xff;
	        y = (state[x] + y) & 0xff;
	        
	        byte temp = state[x];
	        state[x] = state[y];
	        state[y] = temp;
	        
	        output[i] = (byte)((input[i] ^ state[(state[x] + state[y]) & 0xff]));
	    }
	}
Crypts the data from the input array to the output array.
	    @param input The source data.
	    @param output The array to store the crpyted data, which must be as long as the input
	    data.
src/main/java/core/packetproxy/common/ARC4.java