// Decompiled by JEB v0.9.0 alpha
public static int lzss_decompress(byte[] arg12, byte[] arg13) {
int v9 = -1;
int v2 = 0;
int v4 = 0;
int v1 = 0;
int v0 = 7;
while(v4 < arg13.length) {
++v0;
if(v0 == 8) {
if(v2 < arg12.length) {
v1 = arg12[v2] & 0xFF;
v0 = 0;
++v2;
}
else {
break;
}
}
if((v1 & 1) != 0) {
if(v2 + 1 < arg12.length) {
int v8 = arg12[v2] & 0xFF | (arg12[v2 + 1] & 0xFF) << 8;
v2 += 2;
int v7 = (v8 >> 4) + 1;
int v6 = (v8 & 0xF) + 3;
if(v7 > v4) {
v4 = v9;
break;
}
else if(arg13.length - v4 < v6) {
v4 = v9;
break;
}
else {
int v5 = 0;
while(v5 < v6) {
arg13[v4 + v5] = arg13[v4 + v5 - v7];
++v5;
}
v4 += v6;
}
}
else {
v4 = v9;
break;
}
}
else if(v2 < arg12.length) {
arg13[v4] = arg12[v2];
++v4;
++v2;
}
else {
break;
}
v1 >>= 1;
}
return v4;
} |
// Decompiled by JD-GUI v0.3.5
public static int lzss_decompress(byte[] paramArrayOfByte1, byte[] paramArrayOfByte2)
{
int i = 0;
int j = 0;
int k = 0;
int m = 7;
if (j >= paramArrayOfByte2.length);
int i1;
int i2;
while (true)
{
return j;
m++;
if (m == 8)
{
if (i < paramArrayOfByte1.length)
{
int i4 = i + 1;
k = 0xFF & paramArrayOfByte1[i];
m = 0;
i = i4;
}
}
else
{
if ((k & 0x1) == 0)
{
if (i >= paramArrayOfByte1.length)
continue;
paramArrayOfByte2[j] = paramArrayOfByte1[i];
j++;
i++;
k >>= 1;
break;
}
if (i + 1 >= paramArrayOfByte1.length)
{
j = -1;
}
else
{
int n = 0xFF & paramArrayOfByte1[i] | (0xFF & paramArrayOfByte1[(i + 1)]) << 8;
i += 2;
i1 = 1 + (n >> 4);
i2 = 3 + (n & 0xF);
if (i1 > j)
{
j = -1;
}
else
{
if (paramArrayOfByte2.length - j >= i2)
break label169;
j = -1;
}
}
}
}
label169: for (int i3 = 0; ; i3++)
{
if (i3 >= i2)
{
j += i2;
break;
}
paramArrayOfByte2[(j + i3)] = paramArrayOfByte2[(j + i3 - i1)];
}
} |