Refactor Bzip2 class fields/methods

This commit is contained in:
Pazaz 2022-04-24 23:17:44 -04:00
parent 4480318f0d
commit 28c3abbcfc
6 changed files with 216 additions and 216 deletions

View file

@ -6,10 +6,10 @@ import org.openrs2.deob.annotation.OriginalMember;
public final class ByteArrayNode extends SecondaryNode { public final class ByteArrayNode extends SecondaryNode {
@OriginalMember(owner = "client!hc", name = "Q", descriptor = "[B") @OriginalMember(owner = "client!hc", name = "Q", descriptor = "[B")
public final byte[] aByteArray37; public final byte[] value;
@OriginalMember(owner = "client!hc", name = "<init>", descriptor = "([B)V") @OriginalMember(owner = "client!hc", name = "<init>", descriptor = "([B)V")
public ByteArrayNode(@OriginalArg(0) byte[] arg0) { public ByteArrayNode(@OriginalArg(0) byte[] arg0) {
this.aByteArray37 = arg0; this.value = arg0;
} }
} }

View file

@ -5,98 +5,98 @@ import org.openrs2.deob.annotation.OriginalMember;
public final class Bzip2DState { public final class Bzip2DState {
@OriginalMember(owner = "client!bb", name = "e", descriptor = "B") @OriginalMember(owner = "client!bb", name = "e", descriptor = "B")
public byte aByte1; public byte stateOutCh;
@OriginalMember(owner = "client!bb", name = "k", descriptor = "[B") @OriginalMember(owner = "client!bb", name = "k", descriptor = "[B")
public byte[] aByteArray3; public byte[] strmNextOut;
@OriginalMember(owner = "client!bb", name = "o", descriptor = "I") @OriginalMember(owner = "client!bb", name = "o", descriptor = "I")
public int anInt392; public int saveNblock;
@OriginalMember(owner = "client!bb", name = "u", descriptor = "I") @OriginalMember(owner = "client!bb", name = "u", descriptor = "I")
public int anInt394; public int strmAvailOut;
@OriginalMember(owner = "client!bb", name = "v", descriptor = "[B") @OriginalMember(owner = "client!bb", name = "v", descriptor = "[B")
public byte[] aByteArray4; public byte[] strmNextIn;
@OriginalMember(owner = "client!bb", name = "w", descriptor = "I") @OriginalMember(owner = "client!bb", name = "w", descriptor = "I")
public int anInt395; public int bsLive;
@OriginalMember(owner = "client!bb", name = "x", descriptor = "I") @OriginalMember(owner = "client!bb", name = "x", descriptor = "I")
public int anInt396; public int k0;
@OriginalMember(owner = "client!bb", name = "z", descriptor = "I") @OriginalMember(owner = "client!bb", name = "z", descriptor = "I")
public int anInt397; public int nblockused;
@OriginalMember(owner = "client!bb", name = "B", descriptor = "I") @OriginalMember(owner = "client!bb", name = "B", descriptor = "I")
public int anInt398; public int tPos;
@OriginalMember(owner = "client!bb", name = "D", descriptor = "I") @OriginalMember(owner = "client!bb", name = "D", descriptor = "I")
public int anInt399; public int origPtr;
@OriginalMember(owner = "client!bb", name = "F", descriptor = "I") @OriginalMember(owner = "client!bb", name = "F", descriptor = "I")
public int anInt401; public int nInUse;
@OriginalMember(owner = "client!bb", name = "I", descriptor = "I") @OriginalMember(owner = "client!bb", name = "I", descriptor = "I")
public int anInt402; public int bsBuff;
@OriginalMember(owner = "client!bb", name = "J", descriptor = "I") @OriginalMember(owner = "client!bb", name = "J", descriptor = "I")
public int anInt403; public int strmTotalOutLo32;
@OriginalMember(owner = "client!bb", name = "K", descriptor = "I") @OriginalMember(owner = "client!bb", name = "K", descriptor = "I")
public int anInt404; public int blockSize100k;
@OriginalMember(owner = "client!bb", name = "L", descriptor = "I") @OriginalMember(owner = "client!bb", name = "L", descriptor = "I")
public int anInt405; public int stateOutLen;
@OriginalMember(owner = "client!bb", name = "P", descriptor = "I") @OriginalMember(owner = "client!bb", name = "P", descriptor = "I")
public int anInt407; public int strmTotalInLo32;
@OriginalMember(owner = "client!bb", name = "b", descriptor = "[B") @OriginalMember(owner = "client!bb", name = "b", descriptor = "[B")
public final byte[] aByteArray1 = new byte[4096]; public final byte[] mfta = new byte[4096];
@OriginalMember(owner = "client!bb", name = "f", descriptor = "[Z") @OriginalMember(owner = "client!bb", name = "f", descriptor = "[Z")
public final boolean[] aBooleanArray13 = new boolean[256]; public final boolean[] inUse = new boolean[256];
@OriginalMember(owner = "client!bb", name = "d", descriptor = "[[I") @OriginalMember(owner = "client!bb", name = "d", descriptor = "[[I")
public final int[][] anIntArrayArray2 = new int[6][258]; public final int[][] perm = new int[6][258];
@OriginalMember(owner = "client!bb", name = "h", descriptor = "[B") @OriginalMember(owner = "client!bb", name = "h", descriptor = "[B")
public final byte[] aByteArray2 = new byte[256]; public final byte[] seqToUnseq = new byte[256];
@OriginalMember(owner = "client!bb", name = "a", descriptor = "[[I") @OriginalMember(owner = "client!bb", name = "a", descriptor = "[[I")
public final int[][] anIntArrayArray1 = new int[6][258]; public final int[][] base = new int[6][258];
@OriginalMember(owner = "client!bb", name = "l", descriptor = "I") @OriginalMember(owner = "client!bb", name = "l", descriptor = "I")
public int anInt390 = 0; public int strmNextOutPtr = 0;
@OriginalMember(owner = "client!bb", name = "i", descriptor = "[[I") @OriginalMember(owner = "client!bb", name = "i", descriptor = "[[I")
public final int[][] anIntArrayArray3 = new int[6][258]; public final int[][] limit = new int[6][258];
@OriginalMember(owner = "client!bb", name = "j", descriptor = "I") @OriginalMember(owner = "client!bb", name = "j", descriptor = "I")
public int anInt389 = 0; public int strmNextInPtr = 0;
@OriginalMember(owner = "client!bb", name = "C", descriptor = "[I") @OriginalMember(owner = "client!bb", name = "C", descriptor = "[I")
public final int[] anIntArray26 = new int[256]; public final int[] unfztab = new int[256];
@OriginalMember(owner = "client!bb", name = "p", descriptor = "[I") @OriginalMember(owner = "client!bb", name = "p", descriptor = "[I")
public final int[] anIntArray24 = new int[257]; public final int[] cftab = new int[257];
@OriginalMember(owner = "client!bb", name = "y", descriptor = "[B") @OriginalMember(owner = "client!bb", name = "y", descriptor = "[B")
public final byte[] aByteArray5 = new byte[18002]; public final byte[] selector = new byte[18002];
@OriginalMember(owner = "client!bb", name = "r", descriptor = "[Z") @OriginalMember(owner = "client!bb", name = "r", descriptor = "[Z")
public final boolean[] aBooleanArray14 = new boolean[16]; public final boolean[] inUse16 = new boolean[16];
@OriginalMember(owner = "client!bb", name = "q", descriptor = "[I") @OriginalMember(owner = "client!bb", name = "q", descriptor = "[I")
public final int[] anIntArray25 = new int[16]; public final int[] mtfbase = new int[16];
@OriginalMember(owner = "client!bb", name = "H", descriptor = "[B") @OriginalMember(owner = "client!bb", name = "H", descriptor = "[B")
public final byte[] aByteArray6 = new byte[18002]; public final byte[] selectorMtf = new byte[18002];
@OriginalMember(owner = "client!bb", name = "G", descriptor = "[I") @OriginalMember(owner = "client!bb", name = "G", descriptor = "[I")
public final int[] anIntArray27 = new int[6]; public final int[] minLens = new int[6];
@OriginalMember(owner = "client!bb", name = "O", descriptor = "[[B") @OriginalMember(owner = "client!bb", name = "O", descriptor = "[[B")
public final byte[][] aByteArrayArray3 = new byte[6][258]; public final byte[][] len = new byte[6][258];
} }

View file

@ -5,46 +5,46 @@ import org.openrs2.deob.annotation.Pc;
public final class Bzip2Decompressor { public final class Bzip2Decompressor {
@OriginalMember(owner = "client!oc", name = "a", descriptor = "Lclient!bb;") @OriginalMember(owner = "client!oc", name = "a", descriptor = "Lclient!bb;")
private static final Bzip2DState aClass11_1 = new Bzip2DState(); private static final Bzip2DState state = new Bzip2DState();
@OriginalMember(owner = "client!oc", name = "a", descriptor = "(ILclient!bb;)I") @OriginalMember(owner = "client!oc", name = "a", descriptor = "(ILclient!bb;)I")
private static int method3309(@OriginalArg(0) int arg0, @OriginalArg(1) Bzip2DState arg1) { private static int getBits(@OriginalArg(0) int arg0, @OriginalArg(1) Bzip2DState arg1) {
while (arg1.anInt395 < arg0) { while (arg1.bsLive < arg0) {
arg1.anInt402 = arg1.anInt402 << 8 | arg1.aByteArray4[arg1.anInt389] & 0xFF; arg1.bsBuff = arg1.bsBuff << 8 | arg1.strmNextIn[arg1.strmNextInPtr] & 0xFF;
arg1.anInt395 += 8; arg1.bsLive += 8;
arg1.anInt389++; arg1.strmNextInPtr++;
arg1.anInt407++; arg1.strmTotalInLo32++;
if (arg1.anInt407 == 0) { if (arg1.strmTotalInLo32 == 0) {
} }
} }
@Pc(17) int local17 = arg1.anInt402 >> arg1.anInt395 - arg0 & (0x1 << arg0) - 1; @Pc(17) int local17 = arg1.bsBuff >> arg1.bsLive - arg0 & (0x1 << arg0) - 1;
arg1.anInt395 -= arg0; arg1.bsLive -= arg0;
return local17; return local17;
} }
@OriginalMember(owner = "client!oc", name = "a", descriptor = "(Lclient!bb;)V") @OriginalMember(owner = "client!oc", name = "a", descriptor = "(Lclient!bb;)V")
private static void method3310(@OriginalArg(0) Bzip2DState arg0) { private static void unRleObufToOutputFast(@OriginalArg(0) Bzip2DState arg0) {
@Pc(2) byte local2 = arg0.aByte1; @Pc(2) byte local2 = arg0.stateOutCh;
@Pc(5) int local5 = arg0.anInt405; @Pc(5) int local5 = arg0.stateOutLen;
@Pc(8) int local8 = arg0.anInt397; @Pc(8) int local8 = arg0.nblockused;
@Pc(11) int local11 = arg0.anInt396; @Pc(11) int local11 = arg0.k0;
@Pc(13) int[] local13 = Static221.anIntArray374; @Pc(13) int[] local13 = Static221.tt;
@Pc(16) int local16 = arg0.anInt398; @Pc(16) int local16 = arg0.tPos;
@Pc(19) byte[] local19 = arg0.aByteArray3; @Pc(19) byte[] local19 = arg0.strmNextOut;
@Pc(22) int local22 = arg0.anInt390; @Pc(22) int local22 = arg0.strmNextOutPtr;
@Pc(25) int local25 = arg0.anInt394; @Pc(25) int local25 = arg0.strmAvailOut;
@Pc(27) int local27 = local25; @Pc(27) int local27 = local25;
@Pc(32) int local32 = arg0.anInt392 + 1; @Pc(32) int local32 = arg0.saveNblock + 1;
label67: while (true) { returnNotr: while (true) {
if (local5 > 0) { if (local5 > 0) {
while (true) { while (true) {
if (local25 == 0) { if (local25 == 0) {
break label67; break returnNotr;
} }
if (local5 == 1) { if (local5 == 1) {
if (local25 == 0) { if (local25 == 0) {
local5 = 1; local5 = 1;
break label67; break returnNotr;
} }
local19[local22] = local2; local19[local22] = local2;
local22++; local22++;
@ -63,7 +63,7 @@ public final class Bzip2Decompressor {
local62 = false; local62 = false;
if (local8 == local32) { if (local8 == local32) {
local5 = 0; local5 = 0;
break label67; break returnNotr;
} }
local2 = (byte) local11; local2 = (byte) local11;
local16 = local13[local16]; local16 = local13[local16];
@ -74,7 +74,7 @@ public final class Bzip2Decompressor {
local11 = local84; local11 = local84;
if (local25 == 0) { if (local25 == 0) {
local5 = 1; local5 = 1;
break label67; break returnNotr;
} }
local19[local22] = local2; local19[local22] = local2;
local22++; local22++;
@ -83,7 +83,7 @@ public final class Bzip2Decompressor {
} else if (local8 == local32) { } else if (local8 == local32) {
if (local25 == 0) { if (local25 == 0) {
local5 = 1; local5 = 1;
break label67; break returnNotr;
} }
local19[local22] = local2; local19[local22] = local2;
local22++; local22++;
@ -123,23 +123,23 @@ public final class Bzip2Decompressor {
} }
} }
} }
@Pc(215) int local215 = arg0.anInt403; @Pc(215) int local215 = arg0.strmTotalOutLo32;
arg0.anInt403 += local27 - local25; arg0.strmTotalOutLo32 += local27 - local25;
if (arg0.anInt403 < local215) { if (arg0.strmTotalOutLo32 < local215) {
} }
arg0.aByte1 = local2; arg0.stateOutCh = local2;
arg0.anInt405 = local5; arg0.stateOutLen = local5;
arg0.anInt397 = local8; arg0.nblockused = local8;
arg0.anInt396 = local11; arg0.k0 = local11;
Static221.anIntArray374 = local13; Static221.tt = local13;
arg0.anInt398 = local16; arg0.tPos = local16;
arg0.aByteArray3 = local19; arg0.strmNextOut = local19;
arg0.anInt390 = local22; arg0.strmNextOutPtr = local22;
arg0.anInt394 = local25; arg0.strmAvailOut = local25;
} }
@OriginalMember(owner = "client!oc", name = "a", descriptor = "([I[I[I[BIII)V") @OriginalMember(owner = "client!oc", name = "a", descriptor = "([I[I[I[BIII)V")
private static void method3311(@OriginalArg(0) int[] arg0, @OriginalArg(1) int[] arg1, @OriginalArg(2) int[] arg2, @OriginalArg(3) byte[] arg3, @OriginalArg(4) int arg4, @OriginalArg(5) int arg5, @OriginalArg(6) int arg6) { private static void hbCreateDecodeTables(@OriginalArg(0) int[] arg0, @OriginalArg(1) int[] arg1, @OriginalArg(2) int[] arg2, @OriginalArg(3) byte[] arg3, @OriginalArg(4) int arg4, @OriginalArg(5) int arg5, @OriginalArg(6) int arg6) {
@Pc(1) int local1 = 0; @Pc(1) int local1 = 0;
@Pc(3) int local3; @Pc(3) int local3;
for (local3 = arg4; local3 <= arg5; local3++) { for (local3 = arg4; local3 <= arg5; local3++) {
@ -174,86 +174,86 @@ public final class Bzip2Decompressor {
} }
@OriginalMember(owner = "client!oc", name = "b", descriptor = "(Lclient!bb;)V") @OriginalMember(owner = "client!oc", name = "b", descriptor = "(Lclient!bb;)V")
private static void method3312(@OriginalArg(0) Bzip2DState arg0) { private static void makeMapsD(@OriginalArg(0) Bzip2DState arg0) {
arg0.anInt401 = 0; arg0.nInUse = 0;
for (@Pc(4) int local4 = 0; local4 < 256; local4++) { for (@Pc(4) int local4 = 0; local4 < 256; local4++) {
if (arg0.aBooleanArray13[local4]) { if (arg0.inUse[local4]) {
arg0.aByteArray2[arg0.anInt401] = (byte) local4; arg0.seqToUnseq[arg0.nInUse] = (byte) local4;
arg0.anInt401++; arg0.nInUse++;
} }
} }
} }
@OriginalMember(owner = "client!oc", name = "c", descriptor = "(Lclient!bb;)B") @OriginalMember(owner = "client!oc", name = "c", descriptor = "(Lclient!bb;)B")
private static byte method3313(@OriginalArg(0) Bzip2DState arg0) { private static byte getUchar(@OriginalArg(0) Bzip2DState arg0) {
return (byte) method3309(8, arg0); return (byte) getBits(8, arg0);
} }
@OriginalMember(owner = "client!oc", name = "d", descriptor = "(Lclient!bb;)V") @OriginalMember(owner = "client!oc", name = "d", descriptor = "(Lclient!bb;)V")
private static void method3314(@OriginalArg(0) Bzip2DState arg0) { private static void decompress(@OriginalArg(0) Bzip2DState arg0) {
arg0.anInt404 = 1; arg0.blockSize100k = 1;
if (Static221.anIntArray374 == null) { if (Static221.tt == null) {
Static221.anIntArray374 = new int[arg0.anInt404 * 100000]; Static221.tt = new int[arg0.blockSize100k * 100000];
} }
@Pc(56) boolean local56 = true; @Pc(56) boolean local56 = true;
while (true) { while (true) {
while (local56) { while (local56) {
@Pc(61) byte local61 = method3313(arg0); @Pc(61) byte local61 = getUchar(arg0);
if (local61 == 23) { if (local61 == 23) {
return; return;
} }
local61 = method3313(arg0); local61 = getUchar(arg0);
local61 = method3313(arg0); local61 = getUchar(arg0);
local61 = method3313(arg0); local61 = getUchar(arg0);
local61 = method3313(arg0); local61 = getUchar(arg0);
local61 = method3313(arg0); local61 = getUchar(arg0);
local61 = method3313(arg0); local61 = getUchar(arg0);
local61 = method3313(arg0); local61 = getUchar(arg0);
local61 = method3313(arg0); local61 = getUchar(arg0);
local61 = method3313(arg0); local61 = getUchar(arg0);
local61 = method3315(arg0); local61 = getBit(arg0);
if (local61 != 0) { if (local61 != 0) {
} }
arg0.anInt399 = 0; arg0.origPtr = 0;
local61 = method3313(arg0); local61 = getUchar(arg0);
arg0.anInt399 = arg0.anInt399 << 8 | local61 & 0xFF; arg0.origPtr = arg0.origPtr << 8 | local61 & 0xFF;
local61 = method3313(arg0); local61 = getUchar(arg0);
arg0.anInt399 = arg0.anInt399 << 8 | local61 & 0xFF; arg0.origPtr = arg0.origPtr << 8 | local61 & 0xFF;
local61 = method3313(arg0); local61 = getUchar(arg0);
arg0.anInt399 = arg0.anInt399 << 8 | local61 & 0xFF; arg0.origPtr = arg0.origPtr << 8 | local61 & 0xFF;
@Pc(141) int local141; @Pc(141) int local141;
for (local141 = 0; local141 < 16; local141++) { for (local141 = 0; local141 < 16; local141++) {
local61 = method3315(arg0); local61 = getBit(arg0);
if (local61 == 1) { if (local61 == 1) {
arg0.aBooleanArray14[local141] = true; arg0.inUse16[local141] = true;
} else { } else {
arg0.aBooleanArray14[local141] = false; arg0.inUse16[local141] = false;
} }
} }
for (local141 = 0; local141 < 256; local141++) { for (local141 = 0; local141 < 256; local141++) {
arg0.aBooleanArray13[local141] = false; arg0.inUse[local141] = false;
} }
@Pc(187) int local187; @Pc(187) int local187;
for (local141 = 0; local141 < 16; local141++) { for (local141 = 0; local141 < 16; local141++) {
if (arg0.aBooleanArray14[local141]) { if (arg0.inUse16[local141]) {
for (local187 = 0; local187 < 16; local187++) { for (local187 = 0; local187 < 16; local187++) {
local61 = method3315(arg0); local61 = getBit(arg0);
if (local61 == 1) { if (local61 == 1) {
arg0.aBooleanArray13[local141 * 16 + local187] = true; arg0.inUse[local141 * 16 + local187] = true;
} }
} }
} }
} }
method3312(arg0); makeMapsD(arg0);
@Pc(216) int local216 = arg0.anInt401 + 2; @Pc(216) int local216 = arg0.nInUse + 2;
@Pc(220) int local220 = method3309(3, arg0); @Pc(220) int local220 = getBits(3, arg0);
@Pc(224) int local224 = method3309(15, arg0); @Pc(224) int local224 = getBits(15, arg0);
for (local141 = 0; local141 < local224; local141++) { for (local141 = 0; local141 < local224; local141++) {
local187 = 0; local187 = 0;
while (true) { while (true) {
local61 = method3315(arg0); local61 = getBit(arg0);
if (local61 == 0) { if (local61 == 0) {
arg0.aByteArray6[local141] = (byte) local187; arg0.selectorMtf[local141] = (byte) local187;
break; break;
} }
local187++; local187++;
@ -265,26 +265,26 @@ public final class Bzip2Decompressor {
local250[local252] = local252++; local250[local252] = local252++;
} }
for (local141 = 0; local141 < local224; local141++) { for (local141 = 0; local141 < local224; local141++) {
local252 = arg0.aByteArray6[local141]; local252 = arg0.selectorMtf[local141];
@Pc(279) byte local279 = local250[local252]; @Pc(279) byte local279 = local250[local252];
while (local252 > 0) { while (local252 > 0) {
local250[local252] = local250[local252 - 1]; local250[local252] = local250[local252 - 1];
local252--; local252--;
} }
local250[0] = local279; local250[0] = local279;
arg0.aByteArray5[local141] = local279; arg0.selector[local141] = local279;
} }
@Pc(308) int local308; @Pc(308) int local308;
for (local308 = 0; local308 < local220; local308++) { for (local308 = 0; local308 < local220; local308++) {
@Pc(315) int local315 = method3309(5, arg0); @Pc(315) int local315 = getBits(5, arg0);
for (local141 = 0; local141 < local216; local141++) { for (local141 = 0; local141 < local216; local141++) {
while (true) { while (true) {
local61 = method3315(arg0); local61 = getBit(arg0);
if (local61 == 0) { if (local61 == 0) {
arg0.aByteArrayArray3[local308][local141] = (byte) local315; arg0.len[local308][local141] = (byte) local315;
break; break;
} }
local61 = method3315(arg0); local61 = getBit(arg0);
if (local61 == 0) { if (local61 == 0) {
local315++; local315++;
} else { } else {
@ -297,46 +297,46 @@ public final class Bzip2Decompressor {
@Pc(354) byte local354 = 32; @Pc(354) byte local354 = 32;
@Pc(356) byte local356 = 0; @Pc(356) byte local356 = 0;
for (local141 = 0; local141 < local216; local141++) { for (local141 = 0; local141 < local216; local141++) {
if (arg0.aByteArrayArray3[local308][local141] > local356) { if (arg0.len[local308][local141] > local356) {
local356 = arg0.aByteArrayArray3[local308][local141]; local356 = arg0.len[local308][local141];
} }
if (arg0.aByteArrayArray3[local308][local141] < local354) { if (arg0.len[local308][local141] < local354) {
local354 = arg0.aByteArrayArray3[local308][local141]; local354 = arg0.len[local308][local141];
} }
} }
method3311(arg0.anIntArrayArray3[local308], arg0.anIntArrayArray1[local308], arg0.anIntArrayArray2[local308], arg0.aByteArrayArray3[local308], local354, local356, local216); hbCreateDecodeTables(arg0.limit[local308], arg0.base[local308], arg0.perm[local308], arg0.len[local308], local354, local356, local216);
arg0.anIntArray27[local308] = local354; arg0.minLens[local308] = local354;
} }
@Pc(425) int local425 = arg0.anInt401 + 1; @Pc(425) int local425 = arg0.nInUse + 1;
@Pc(427) byte local427 = -1; @Pc(427) byte local427 = -1;
for (local141 = 0; local141 <= 255; local141++) { for (local141 = 0; local141 <= 255; local141++) {
arg0.anIntArray26[local141] = 0; arg0.unfztab[local141] = 0;
} }
@Pc(443) int local443 = 4095; @Pc(443) int local443 = 4095;
@Pc(445) int local445; @Pc(445) int local445;
@Pc(449) int local449; @Pc(449) int local449;
for (local445 = 15; local445 >= 0; local445--) { for (local445 = 15; local445 >= 0; local445--) {
for (local449 = 15; local449 >= 0; local449--) { for (local449 = 15; local449 >= 0; local449--) {
arg0.aByteArray1[local443] = (byte) (local445 * 16 + local449); arg0.mfta[local443] = (byte) (local445 * 16 + local449);
local443--; local443--;
} }
arg0.anIntArray25[local445] = local443 + 1; arg0.mtfbase[local445] = local443 + 1;
} }
@Pc(475) int local475 = 0; @Pc(475) int local475 = 0;
@Pc(478) int local478 = local427 + 1; @Pc(478) int local478 = local427 + 1;
@Pc(480) byte local480 = 50; @Pc(480) byte local480 = 50;
@Pc(485) byte local485 = arg0.aByteArray5[0]; @Pc(485) byte local485 = arg0.selector[0];
@Pc(490) int local490 = arg0.anIntArray27[local485]; @Pc(490) int local490 = arg0.minLens[local485];
@Pc(495) int[] local495 = arg0.anIntArrayArray3[local485]; @Pc(495) int[] local495 = arg0.limit[local485];
@Pc(500) int[] local500 = arg0.anIntArrayArray2[local485]; @Pc(500) int[] local500 = arg0.perm[local485];
@Pc(505) int[] local505 = arg0.anIntArrayArray1[local485]; @Pc(505) int[] local505 = arg0.base[local485];
@Pc(506) int local506 = local480 - 1; @Pc(506) int local506 = local480 - 1;
@Pc(508) int local508 = local490; @Pc(508) int local508 = local490;
@Pc(512) int local512; @Pc(512) int local512;
@Pc(522) byte local522; @Pc(522) byte local522;
for (local512 = method3309(local490, arg0); local512 > local495[local508]; local512 = local512 << 1 | local522) { for (local512 = getBits(local490, arg0); local512 > local495[local508]; local512 = local512 << 1 | local522) {
local508++; local508++;
local522 = method3315(arg0); local522 = getBit(arg0);
} }
@Pc(537) int local537 = local500[local512 - local505[local508]]; @Pc(537) int local537 = local500[local512 - local505[local508]];
while (true) { while (true) {
@ -354,25 +354,25 @@ public final class Bzip2Decompressor {
if (local506 == 0) { if (local506 == 0) {
local478++; local478++;
local506 = 50; local506 = 50;
local485 = arg0.aByteArray5[local478]; local485 = arg0.selector[local478];
local490 = arg0.anIntArray27[local485]; local490 = arg0.minLens[local485];
local495 = arg0.anIntArrayArray3[local485]; local495 = arg0.limit[local485];
local500 = arg0.anIntArrayArray2[local485]; local500 = arg0.perm[local485];
local505 = arg0.anIntArrayArray1[local485]; local505 = arg0.base[local485];
} }
local506--; local506--;
local508 = local490; local508 = local490;
for (local512 = method3309(local490, arg0); local512 > local495[local508]; local512 = local512 << 1 | local522) { for (local512 = getBits(local490, arg0); local512 > local495[local508]; local512 = local512 << 1 | local522) {
local508++; local508++;
local522 = method3315(arg0); local522 = getBit(arg0);
} }
local537 = local500[local512 - local505[local508]]; local537 = local500[local512 - local505[local508]];
} while (local537 == 0 || local537 == 1); } while (local537 == 0 || local537 == 1);
local548++; local548++;
local61 = arg0.aByteArray2[arg0.aByteArray1[arg0.anIntArray25[0]] & 0xFF]; local61 = arg0.seqToUnseq[arg0.mfta[arg0.mtfbase[0]] & 0xFF];
arg0.anIntArray26[local61 & 0xFF] += local548; arg0.unfztab[local61 & 0xFF] += local548;
while (local548 > 0) { while (local548 > 0) {
Static221.anIntArray374[local475] = local61 & 0xFF; Static221.tt[local475] = local61 & 0xFF;
local475++; local475++;
local548--; local548--;
} }
@ -380,93 +380,93 @@ public final class Bzip2Decompressor {
@Pc(678) int local678 = local537 - 1; @Pc(678) int local678 = local537 - 1;
@Pc(686) int local686; @Pc(686) int local686;
if (local678 < 16) { if (local678 < 16) {
local686 = arg0.anIntArray25[0]; local686 = arg0.mtfbase[0];
local61 = arg0.aByteArray1[local686 + local678]; local61 = arg0.mfta[local686 + local678];
while (local678 > 3) { while (local678 > 3) {
@Pc(700) int local700 = local686 + local678; @Pc(700) int local700 = local686 + local678;
arg0.aByteArray1[local700] = arg0.aByteArray1[local700 - 1]; arg0.mfta[local700] = arg0.mfta[local700 - 1];
arg0.aByteArray1[local700 - 1] = arg0.aByteArray1[local700 - 2]; arg0.mfta[local700 - 1] = arg0.mfta[local700 - 2];
arg0.aByteArray1[local700 - 2] = arg0.aByteArray1[local700 - 3]; arg0.mfta[local700 - 2] = arg0.mfta[local700 - 3];
arg0.aByteArray1[local700 - 3] = arg0.aByteArray1[local700 - 4]; arg0.mfta[local700 - 3] = arg0.mfta[local700 - 4];
local678 -= 4; local678 -= 4;
} }
while (local678 > 0) { while (local678 > 0) {
arg0.aByteArray1[local686 + local678] = arg0.aByteArray1[local686 + local678 - 1]; arg0.mfta[local686 + local678] = arg0.mfta[local686 + local678 - 1];
local678--; local678--;
} }
arg0.aByteArray1[local686] = local61; arg0.mfta[local686] = local61;
} else { } else {
@Pc(776) int local776 = local678 / 16; @Pc(776) int local776 = local678 / 16;
@Pc(780) int local780 = local678 % 16; @Pc(780) int local780 = local678 % 16;
local686 = arg0.anIntArray25[local776] + local780; local686 = arg0.mtfbase[local776] + local780;
local61 = arg0.aByteArray1[local686]; local61 = arg0.mfta[local686];
while (local686 > arg0.anIntArray25[local776]) { while (local686 > arg0.mtfbase[local776]) {
arg0.aByteArray1[local686] = arg0.aByteArray1[local686 - 1]; arg0.mfta[local686] = arg0.mfta[local686 - 1];
local686--; local686--;
} }
@Pc(815) int local815 = arg0.anIntArray25[local776]++; @Pc(815) int local815 = arg0.mtfbase[local776]++;
while (local776 > 0) { while (local776 > 0) {
local815 = arg0.anIntArray25[local776]--; local815 = arg0.mtfbase[local776]--;
arg0.aByteArray1[arg0.anIntArray25[local776]] = arg0.aByteArray1[arg0.anIntArray25[local776 - 1] + 16 - 1]; arg0.mfta[arg0.mtfbase[local776]] = arg0.mfta[arg0.mtfbase[local776 - 1] + 16 - 1];
local776--; local776--;
} }
local815 = arg0.anIntArray25[0]--; local815 = arg0.mtfbase[0]--;
arg0.aByteArray1[arg0.anIntArray25[0]] = local61; arg0.mfta[arg0.mtfbase[0]] = local61;
if (arg0.anIntArray25[0] == 0) { if (arg0.mtfbase[0] == 0) {
local443 = 4095; local443 = 4095;
for (local445 = 15; local445 >= 0; local445--) { for (local445 = 15; local445 >= 0; local445--) {
for (local449 = 15; local449 >= 0; local449--) { for (local449 = 15; local449 >= 0; local449--) {
arg0.aByteArray1[local443] = arg0.aByteArray1[arg0.anIntArray25[local445] + local449]; arg0.mfta[local443] = arg0.mfta[arg0.mtfbase[local445] + local449];
local443--; local443--;
} }
arg0.anIntArray25[local445] = local443 + 1; arg0.mtfbase[local445] = local443 + 1;
} }
} }
} }
arg0.anIntArray26[arg0.aByteArray2[local61 & 0xFF] & 0xFF]++; arg0.unfztab[arg0.seqToUnseq[local61 & 0xFF] & 0xFF]++;
Static221.anIntArray374[local475] = arg0.aByteArray2[local61 & 0xFF] & 0xFF; Static221.tt[local475] = arg0.seqToUnseq[local61 & 0xFF] & 0xFF;
local475++; local475++;
if (local506 == 0) { if (local506 == 0) {
local478++; local478++;
local506 = 50; local506 = 50;
local485 = arg0.aByteArray5[local478]; local485 = arg0.selector[local478];
local490 = arg0.anIntArray27[local485]; local490 = arg0.minLens[local485];
local495 = arg0.anIntArrayArray3[local485]; local495 = arg0.limit[local485];
local500 = arg0.anIntArrayArray2[local485]; local500 = arg0.perm[local485];
local505 = arg0.anIntArrayArray1[local485]; local505 = arg0.base[local485];
} }
local506--; local506--;
local508 = local490; local508 = local490;
for (local512 = method3309(local490, arg0); local512 > local495[local508]; local512 = local512 << 1 | local522) { for (local512 = getBits(local490, arg0); local512 > local495[local508]; local512 = local512 << 1 | local522) {
local508++; local508++;
local522 = method3315(arg0); local522 = getBit(arg0);
} }
local537 = local500[local512 - local505[local508]]; local537 = local500[local512 - local505[local508]];
} }
} }
arg0.anInt405 = 0; arg0.stateOutLen = 0;
arg0.aByte1 = 0; arg0.stateOutCh = 0;
arg0.anIntArray24[0] = 0; arg0.cftab[0] = 0;
for (local141 = 1; local141 <= 256; local141++) { for (local141 = 1; local141 <= 256; local141++) {
arg0.anIntArray24[local141] = arg0.anIntArray26[local141 - 1]; arg0.cftab[local141] = arg0.unfztab[local141 - 1];
} }
for (local141 = 1; local141 <= 256; local141++) { for (local141 = 1; local141 <= 256; local141++) {
arg0.anIntArray24[local141] += arg0.anIntArray24[local141 - 1]; arg0.cftab[local141] += arg0.cftab[local141 - 1];
} }
for (local141 = 0; local141 < local475; local141++) { for (local141 = 0; local141 < local475; local141++) {
local61 = (byte) (Static221.anIntArray374[local141] & 0xFF); local61 = (byte) (Static221.tt[local141] & 0xFF);
Static221.anIntArray374[arg0.anIntArray24[local61 & 0xFF]] |= local141 << 8; Static221.tt[arg0.cftab[local61 & 0xFF]] |= local141 << 8;
arg0.anIntArray24[local61 & 0xFF]++; arg0.cftab[local61 & 0xFF]++;
} }
arg0.anInt398 = Static221.anIntArray374[arg0.anInt399] >> 8; arg0.tPos = Static221.tt[arg0.origPtr] >> 8;
arg0.anInt397 = 0; arg0.nblockused = 0;
arg0.anInt398 = Static221.anIntArray374[arg0.anInt398]; arg0.tPos = Static221.tt[arg0.tPos];
arg0.anInt396 = (byte) (arg0.anInt398 & 0xFF); arg0.k0 = (byte) (arg0.tPos & 0xFF);
arg0.anInt398 >>= 0x8; arg0.tPos >>= 0x8;
arg0.anInt397++; arg0.nblockused++;
arg0.anInt392 = local475; arg0.saveNblock = local475;
method3310(arg0); unRleObufToOutputFast(arg0);
if (arg0.anInt397 == arg0.anInt392 + 1 && arg0.anInt405 == 0) { if (arg0.nblockused == arg0.saveNblock + 1 && arg0.stateOutLen == 0) {
local56 = true; local56 = true;
break; break;
} }
@ -479,27 +479,27 @@ public final class Bzip2Decompressor {
} }
@OriginalMember(owner = "client!oc", name = "e", descriptor = "(Lclient!bb;)B") @OriginalMember(owner = "client!oc", name = "e", descriptor = "(Lclient!bb;)B")
private static byte method3315(@OriginalArg(0) Bzip2DState arg0) { private static byte getBit(@OriginalArg(0) Bzip2DState arg0) {
return (byte) method3309(1, arg0); return (byte) getBits(1, arg0);
} }
@OriginalMember(owner = "client!oc", name = "a", descriptor = "([BI[BII)I") @OriginalMember(owner = "client!oc", name = "a", descriptor = "([BI[BII)I")
public static int method3316(@OriginalArg(0) byte[] arg0, @OriginalArg(1) int arg1, @OriginalArg(2) byte[] arg2, @OriginalArg(3) int arg3) { public static int bunzip2(@OriginalArg(0) byte[] arg0, @OriginalArg(1) int arg1, @OriginalArg(2) byte[] arg2, @OriginalArg(3) int arg3) {
@Pc(2) Bzip2DState local2 = aClass11_1; @Pc(2) Bzip2DState local2 = state;
synchronized (aClass11_1) { synchronized (state) {
aClass11_1.aByteArray4 = arg2; state.strmNextIn = arg2;
aClass11_1.anInt389 = 9; state.strmNextInPtr = 9;
aClass11_1.aByteArray3 = arg0; state.strmNextOut = arg0;
aClass11_1.anInt390 = 0; state.strmNextOutPtr = 0;
aClass11_1.anInt394 = arg1; state.strmAvailOut = arg1;
aClass11_1.anInt395 = 0; state.bsLive = 0;
aClass11_1.anInt402 = 0; state.bsBuff = 0;
aClass11_1.anInt407 = 0; state.strmTotalInLo32 = 0;
aClass11_1.anInt403 = 0; state.strmTotalOutLo32 = 0;
method3314(aClass11_1); decompress(state);
@Pc(37) int local37 = arg1 - aClass11_1.anInt394; @Pc(37) int local37 = arg1 - state.strmAvailOut;
aClass11_1.aByteArray4 = null; state.strmNextIn = null;
aClass11_1.aByteArray3 = null; state.strmNextOut = null;
return local37; return local37;
} }
} }

View file

@ -36,7 +36,7 @@ public final class Static162 {
} }
@Pc(85) byte[] local85 = new byte[local65]; @Pc(85) byte[] local85 = new byte[local65];
if (local21 == 1) { if (local21 == 1) {
Bzip2Decompressor.method3316(local85, local65, arg0, local25); Bzip2Decompressor.bunzip2(local85, local65, arg0, local25);
} else { } else {
Static156.aClass56_1.method1842(local85, local17); Static156.aClass56_1.method1842(local85, local17);
} }

View file

@ -5,7 +5,7 @@ import org.openrs2.deob.annotation.Pc;
public final class Static221 { public final class Static221 {
@OriginalMember(owner = "client!s", name = "a", descriptor = "[I") @OriginalMember(owner = "client!s", name = "a", descriptor = "[I")
public static int[] anIntArray374; public static int[] tt;
@OriginalMember(owner = "client!s", name = "i", descriptor = "[I") @OriginalMember(owner = "client!s", name = "i", descriptor = "[I")
public static int[] anIntArray376; public static int[] anIntArray376;

View file

@ -95,7 +95,7 @@ public final class Static89 {
local10 = new ByteArrayNode(local27); local10 = new ByteArrayNode(local27);
Static53.aClass54_5.put(local10, (long) arg0); Static53.aClass54_5.put(local10, (long) arg0);
} }
return local10.aByteArray37; return local10.value;
} }
@OriginalMember(owner = "client!ha", name = "a", descriptor = "([IJIZ)Lclient!na;") @OriginalMember(owner = "client!ha", name = "a", descriptor = "([IJIZ)Lclient!na;")