qx$a.java 3.87 KB
import com.google.common.hash.AbstractStreamingHashFunction.AbstractStreamingHasher;
import com.google.common.hash.HashCode;
import com.google.common.primitives.UnsignedBytes;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;

final class qx$a
  extends AbstractStreamingHashFunction.AbstractStreamingHasher
{
  private long a;
  private long b;
  private int c;
  
  qx$a(int paramInt)
  {
    super(16);
    this.a = paramInt;
    this.b = paramInt;
    this.c = 0;
  }
  
  private static long a(long paramLong)
  {
    paramLong = (paramLong >>> 33 ^ paramLong) * -49064778989728563L;
    paramLong = (paramLong ^ paramLong >>> 33) * -4265267296055464877L;
    return paramLong ^ paramLong >>> 33;
  }
  
  private static long b(long paramLong)
  {
    return Long.rotateLeft(-8663945395140668459L * paramLong, 31) * 5545529020109919103L;
  }
  
  private static long c(long paramLong)
  {
    return Long.rotateLeft(5545529020109919103L * paramLong, 33) * -8663945395140668459L;
  }
  
  public final HashCode a()
  {
    this.a ^= this.c;
    this.b ^= this.c;
    this.a += this.b;
    this.b += this.a;
    this.a = a(this.a);
    this.b = a(this.b);
    this.a += this.b;
    this.b += this.a;
    return HashCode.a(ByteBuffer.wrap(new byte[16]).order(ByteOrder.LITTLE_ENDIAN).putLong(this.a).putLong(this.b).array());
  }
  
  protected final void process(ByteBuffer paramByteBuffer)
  {
    long l1 = paramByteBuffer.getLong();
    long l2 = paramByteBuffer.getLong();
    long l3 = this.a;
    this.a = (b(l1) ^ l3);
    this.a = Long.rotateLeft(this.a, 27);
    this.a += this.b;
    this.a = (this.a * 5L + 1390208809L);
    this.b ^= c(l2);
    this.b = Long.rotateLeft(this.b, 31);
    this.b += this.a;
    this.b = (this.b * 5L + 944331445L);
    this.c += 16;
  }
  
  protected final void processRemaining(ByteBuffer paramByteBuffer)
  {
    this.c += paramByteBuffer.remaining();
    long l1;
    label134:
    label150:
    label166:
    label182:
    label198:
    label211:
    long l2;
    switch (paramByteBuffer.remaining())
    {
    default: 
      throw new AssertionError("Should never get here.");
    case 15: 
      l1 = UnsignedBytes.toInt(paramByteBuffer.get(14)) << 48 ^ 0L;
      l1 ^= UnsignedBytes.toInt(paramByteBuffer.get(13)) << 40;
      l1 ^= UnsignedBytes.toInt(paramByteBuffer.get(12)) << 32;
      l1 ^= UnsignedBytes.toInt(paramByteBuffer.get(11)) << 24;
      l1 ^= UnsignedBytes.toInt(paramByteBuffer.get(10)) << 16;
      l1 ^= UnsignedBytes.toInt(paramByteBuffer.get(9)) << 8;
      l1 ^= UnsignedBytes.toInt(paramByteBuffer.get(8));
      l2 = 0L ^ paramByteBuffer.getLong();
      long l3 = this.a;
      this.a = (b(l2) ^ l3);
      l2 = this.b;
      this.b = (c(l1) ^ l2);
      return;
    case 7: 
      label219:
      l1 = UnsignedBytes.toInt(paramByteBuffer.get(6)) << 48 ^ 0L;
      label271:
      l1 ^= UnsignedBytes.toInt(paramByteBuffer.get(5)) << 40;
      label286:
      l1 ^= UnsignedBytes.toInt(paramByteBuffer.get(4)) << 32;
      label301:
      l1 ^= UnsignedBytes.toInt(paramByteBuffer.get(3)) << 24;
      label316:
      l1 ^= UnsignedBytes.toInt(paramByteBuffer.get(2)) << 16;
    }
    label331:
    for (l1 ^= UnsignedBytes.toInt(paramByteBuffer.get(1)) << 8;; l1 = 0L)
    {
      l2 = l1 ^ UnsignedBytes.toInt(paramByteBuffer.get(0));
      l1 = 0L;
      break label219;
      l1 = 0L;
      break;
      l1 = 0L;
      break label134;
      l1 = 0L;
      break label150;
      l1 = 0L;
      break label166;
      l1 = 0L;
      break label182;
      l1 = 0L;
      break label198;
      l1 = 0L;
      break label211;
      l1 = 0L;
      break label271;
      l1 = 0L;
      break label286;
      l1 = 0L;
      break label301;
      l1 = 0L;
      break label316;
      l1 = 0L;
      break label331;
    }
  }
}


/* Location:              /home/merong/decompile/hackery-dex2jar.jar!/qx$a.class
 * Java compiler version: 6 (50.0)
 * JD-Core Version:       0.7.1
 */