forked from 2009Scape/Server
220 lines
8.7 KiB
Java
220 lines
8.7 KiB
Java
package org.runite.client;
|
|
|
|
import java.io.EOFException;
|
|
import java.io.IOException;
|
|
|
|
final class Class41 {
|
|
|
|
static byte[] aByteArray2040 = new byte[520];
|
|
private final Class30 aClass30_681;
|
|
private final Class30 aClass30_683;
|
|
private final int anInt687;
|
|
int cacheIndex;
|
|
|
|
Class41(int var1, Class30 var2, Class30 var3, int var4) {
|
|
this.anInt687 = var4;
|
|
this.aClass30_683 = var3;
|
|
this.cacheIndex = var1;
|
|
this.aClass30_681 = var2;
|
|
}
|
|
|
|
public final String toString() {
|
|
return "Cache:" + this.cacheIndex;
|
|
}
|
|
|
|
final void write(int var1, int var2, byte[] var3) {
|
|
synchronized (this.aClass30_681) {
|
|
if (0 <= var2 && var2 <= this.anInt687) {
|
|
boolean var6 = this.method1054((byte) 87, var2, var1, var3, true);
|
|
if (!var6) {
|
|
var6 = this.method1054((byte) 87, var2, var1, var3, false);
|
|
}
|
|
|
|
} else {
|
|
throw new IllegalArgumentException();
|
|
}
|
|
}
|
|
}
|
|
|
|
final byte[] read(int var1) {
|
|
synchronized (this.aClass30_681) {
|
|
Object var10000;
|
|
try {
|
|
if ((long) (var1 * 6 + 6) > this.aClass30_683.method976(0)) {
|
|
var10000 = null;
|
|
return (byte[]) var10000;
|
|
}
|
|
|
|
this.aClass30_683.method984(-35, 6 * var1);
|
|
this.aClass30_683.method978(0, aByteArray2040, 6);
|
|
int var5 = ((255 & aByteArray2040[3]) << 16) - (-(aByteArray2040[4] << 8 & 65280) + -(255 & aByteArray2040[5]));
|
|
int var4 = (aByteArray2040[2] & 0xFF) + (65280 & aByteArray2040[1] << 8) + (16711680 & aByteArray2040[0] << 16);
|
|
if (this.anInt687 < var4) {
|
|
var10000 = null;
|
|
return (byte[]) var10000;
|
|
}
|
|
|
|
if (0 < var5 && this.aClass30_681.method976(0) / 520L >= (long) var5) {
|
|
byte[] var7 = new byte[var4];
|
|
int var8 = 0;
|
|
|
|
int var13;
|
|
for (int var9 = 0; var4 > var8; var5 = var13) {
|
|
if (0 == var5) {
|
|
var10000 = null;
|
|
return (byte[]) var10000;
|
|
}
|
|
|
|
int var10 = -var8 + var4;
|
|
this.aClass30_681.method984(-113, 520 * var5);
|
|
if (var10 > 512) {
|
|
var10 = 512;
|
|
}
|
|
|
|
this.aClass30_681.method978(0, aByteArray2040, 8 + var10);
|
|
int var11 = (aByteArray2040[0] << 8 & 65280) - -(255 & aByteArray2040[1]);
|
|
int var12 = (aByteArray2040[3] & 0xFF) + (65280 & aByteArray2040[2] << 8);
|
|
int var14 = 255 & aByteArray2040[7];
|
|
var13 = (aByteArray2040[6] & 0xFF) + (65280 & aByteArray2040[5] << 8) + (aByteArray2040[4] << 16 & 16711680);
|
|
if (var1 != var11 || var9 != var12 || this.cacheIndex != var14) {
|
|
var10000 = null;
|
|
return (byte[]) var10000;
|
|
}
|
|
|
|
if (var13 < 0 || (long) var13 > this.aClass30_681.method976(0) / 520L) {
|
|
var10000 = null;
|
|
return (byte[]) var10000;
|
|
}
|
|
|
|
for (int var15 = 0; var10 > var15; ++var15) {
|
|
var7[var8++] = aByteArray2040[var15 + 8];
|
|
}
|
|
|
|
++var9;
|
|
}
|
|
|
|
return var7;
|
|
}
|
|
|
|
var10000 = null;
|
|
} catch (IOException var17) {
|
|
return null;
|
|
}
|
|
|
|
return (byte[]) var10000;
|
|
}
|
|
}
|
|
|
|
private boolean method1054(byte var1, int var2, int var3, byte[] var4, boolean var5) {
|
|
synchronized (this.aClass30_681) {
|
|
try {
|
|
int var7;
|
|
if (var5) {
|
|
if (this.aClass30_683.method976(var1 ^ 87) < (long) (6 + var3 * 6)) {
|
|
return false;
|
|
}
|
|
|
|
this.aClass30_683.method984(-116, 6 * var3);
|
|
this.aClass30_683.method978(0, aByteArray2040, 6);
|
|
var7 = (16711680 & aByteArray2040[3] << 16) + (65280 & aByteArray2040[4] << 8) + (aByteArray2040[5] & 0xFF);
|
|
if (var7 <= 0 || (long) var7 > this.aClass30_681.method976(0) / 520L) {
|
|
return false;
|
|
}
|
|
} else {
|
|
var7 = (int) ((this.aClass30_681.method976(var1 + -87) - -519L) / 520L);
|
|
if (var7 == 0) {
|
|
var7 = 1;
|
|
}
|
|
}
|
|
|
|
aByteArray2040[0] = (byte) (var2 >> 16);
|
|
aByteArray2040[4] = (byte) (var7 >> 8);
|
|
int var8 = 0;
|
|
aByteArray2040[5] = (byte) var7;
|
|
aByteArray2040[2] = (byte) var2;
|
|
aByteArray2040[3] = (byte) (var7 >> 16);
|
|
if (var1 != 87) {
|
|
this.method1054((byte) 41, 108, -107, null, true);
|
|
}
|
|
|
|
int var9 = 0;
|
|
aByteArray2040[1] = (byte) (var2 >> 8);
|
|
this.aClass30_683.method984(-14, var3 * 6);
|
|
this.aClass30_683.method983(aByteArray2040, 0, var1 ^ -903171097, 6);
|
|
|
|
while (true) {
|
|
if (var2 > var8) {
|
|
label146:
|
|
{
|
|
int var10 = 0;
|
|
int var11;
|
|
if (var5) {
|
|
this.aClass30_681.method984(-116, 520 * var7);
|
|
|
|
try {
|
|
this.aClass30_681.method978(0, aByteArray2040, 8);
|
|
} catch (EOFException var15) {
|
|
break label146;
|
|
}
|
|
|
|
var10 = ((aByteArray2040[4] & 0xFF) << 16) + (65280 & aByteArray2040[5] << 8) - -(aByteArray2040[6] & 0xFF);
|
|
var11 = (255 & aByteArray2040[1]) + ((aByteArray2040[0] & 0xFF) << 8);
|
|
int var13 = 255 & aByteArray2040[7];
|
|
int var12 = (aByteArray2040[3] & 0xFF) + (aByteArray2040[2] << 8 & 65280);
|
|
if (var11 != var3 || var12 != var9 || var13 != this.cacheIndex) {
|
|
return false;
|
|
}
|
|
|
|
if (var10 < 0 || this.aClass30_681.method976(0) / 520L < (long) var10) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
var11 = -var8 + var2;
|
|
if (var10 == 0) {
|
|
var5 = false;
|
|
var10 = (int) ((this.aClass30_681.method976(0) - -519L) / 520L);
|
|
if (var10 == 0) {
|
|
++var10;
|
|
}
|
|
|
|
if (var7 == var10) {
|
|
++var10;
|
|
}
|
|
}
|
|
|
|
aByteArray2040[7] = (byte) this.cacheIndex;
|
|
aByteArray2040[0] = (byte) (var3 >> 8);
|
|
if (-var8 + var2 <= 512) {
|
|
var10 = 0;
|
|
}
|
|
|
|
aByteArray2040[4] = (byte) (var10 >> 16);
|
|
if (var11 > 512) {
|
|
var11 = 512;
|
|
}
|
|
|
|
aByteArray2040[1] = (byte) var3;
|
|
aByteArray2040[6] = (byte) var10;
|
|
aByteArray2040[2] = (byte) (var9 >> 8);
|
|
aByteArray2040[3] = (byte) var9;
|
|
++var9;
|
|
aByteArray2040[5] = (byte) (var10 >> 8);
|
|
this.aClass30_681.method984(var1 + -128, var7 * 520);
|
|
var7 = var10;
|
|
this.aClass30_681.method983(aByteArray2040, 0, -903171152, 8);
|
|
this.aClass30_681.method983(var4, var8, -903171152, var11);
|
|
var8 += var11;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
} catch (IOException var16) {
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|