final class org.iq.snappy.SnappyDecompressor extends java.lang.Object
{
private static final int MAX_INCREMENT_COPY_OVERFLOW;
private static final int[] wordmask;
private static final short[] opLookupTable;
static final boolean $assertionsDisabled;
void <init>()
{
org.iq.snappy.SnappyDecompressor v;
v := @this: org.iq.snappy.SnappyDecompressor;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public static int getUncompressedLength(byte[], int) throws org.iq.snappy.CorruptionException
{
byte[] v;
int[] v;
int v, v;
v := @parameter: byte[];
v := @parameter: int;
v = staticinvoke <org.iq.snappy.SnappyDecompressor: int[] readUncompressedLength(byte[],int)>(v, v);
v = v[0];
return v;
}
public static byte[] uncompress(byte[], int, int) throws org.iq.snappy.CorruptionException
{
byte[] v, v;
java.lang.Object[] v;
java.lang.Integer v, v;
int[] v;
int v, v, v, v, v, v, v, v;
java.lang.String v;
org.iq.snappy.CorruptionException v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = staticinvoke <org.iq.snappy.SnappyDecompressor: int[] readUncompressedLength(byte[],int)>(v, v);
v = v[0];
v = v[1];
v = v + v;
v = v[1];
v = v - v;
v = newarray (byte)[v];
v = staticinvoke <org.iq.snappy.SnappyDecompressor: int decompressAllTags(byte[],int,int,byte[],int)>(v, v, v, v, 0);
if v == v goto label;
v = new org.iq.snappy.CorruptionException;
v = newarray (java.lang.Object)[2];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Recorded length is %s bytes but actual length after decompression is %s bytes ", v);
specialinvoke v.<org.iq.snappy.CorruptionException: void <init>(java.lang.String)>(v);
throw v;
label:
return v;
}
public static int uncompress(byte[], int, int, byte[], int) throws org.iq.snappy.CorruptionException
{
byte[] v, v;
java.lang.Object[] v, v;
java.lang.Integer v, v, v, v;
int[] v;
int v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v;
boolean v;
org.iq.snappy.CorruptionException v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v := @parameter: byte[];
v := @parameter: int;
v = staticinvoke <org.iq.snappy.SnappyDecompressor: int[] readUncompressedLength(byte[],int)>(v, v);
v = v[0];
v = v[1];
v = v + v;
v = v[1];
v = v - v;
v = lengthof v;
v = v - v;
if v > v goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = newarray (java.lang.Object)[2];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = lengthof v;
v = v - v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
staticinvoke <org.iq.snappy.SnappyInternalUtils: void checkArgument(boolean,java.lang.String,java.lang.Object[])>(v, "Uncompressed length %s must be less than %s", v);
v = staticinvoke <org.iq.snappy.SnappyDecompressor: int decompressAllTags(byte[],int,int,byte[],int)>(v, v, v, v, v);
if v == v goto label;
v = new org.iq.snappy.CorruptionException;
v = newarray (java.lang.Object)[2];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Recorded length is %s bytes but actual length after decompression is %s bytes ", v);
specialinvoke v.<org.iq.snappy.CorruptionException: void <init>(java.lang.String)>(v);
throw v;
label:
return v;
}
private static int decompressAllTags(byte[], int, int, byte[], int) throws org.iq.snappy.CorruptionException
{
byte[] v, v;
int[] v;
short[] v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v;
org.iq.snappy.CorruptionException v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v := @parameter: byte[];
v := @parameter: int;
v = lengthof v;
v = v + v;
v = v;
v = v;
label:
v = v - 5;
if v >= v goto label;
v = v + 1;
v = staticinvoke <org.iq.snappy.SnappyInternalUtils: int loadByte(byte[],int)>(v, v);
v = <org.iq.snappy.SnappyDecompressor: short[] opLookupTable>;
v = staticinvoke <org.iq.snappy.SnappyInternalUtils: int lookupShort(short[],int)>(v, v);
v = v >>> 11;
v = staticinvoke <org.iq.snappy.SnappyDecompressor: int readTrailer(byte[],int,int)>(v, v, v);
v = v >>> 11;
v = v + v;
v = v & 255;
v = v & 3;
if v != 0 goto label;
v = v + v;
staticinvoke <org.iq.snappy.SnappyDecompressor: void copyLiteral(byte[],int,byte[],int,int)>(v, v, v, v, v);
v = v + v;
v = v + v;
goto label;
label:
v = v & 1792;
v = v + v;
v = v - v;
v = v - v;
if v >= v goto label;
v = new org.iq.snappy.CorruptionException;
v = v - v;
v = v - 1;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Invalid copy offset for opcode starting at \u0001");
specialinvoke v.<org.iq.snappy.CorruptionException: void <init>(java.lang.String)>(v);
throw v;
label:
if v > 16 goto label;
if v < 8 goto label;
if v < 16 goto label;
staticinvoke <org.iq.snappy.SnappyInternalUtils: void copyLong(byte[],int,byte[],int)>(v, v, v, v);
v = v + 8;
v = v + 8;
staticinvoke <org.iq.snappy.SnappyInternalUtils: void copyLong(byte[],int,byte[],int)>(v, v, v, v);
goto label;
label:
v = v + 20;
if v < v goto label;
staticinvoke <org.iq.snappy.SnappyDecompressor: void incrementalCopyFastPath(byte[],int,int,int)>(v, v, v, v);
goto label;
label:
staticinvoke <org.iq.snappy.SnappyDecompressor: void incrementalCopy(byte[],int,byte[],int,int)>(v, v, v, v, v);
label:
v = v + v;
goto label;
label:
if v >= v goto label;
v = staticinvoke <org.iq.snappy.SnappyDecompressor: int[] decompressTagSlow(byte[],int,byte[],int,int,int)>(v, v, v, v, v, v);
v = v[0];
v = v[1];
goto label;
label:
v = v - v;
return v;
}
private static int[] decompressTagSlow(byte[], int, byte[], int, int, int) throws org.iq.snappy.CorruptionException
{
byte[] v, v;
byte v, v, v, v;
int[] v;
short[] v;
short v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v;
org.iq.snappy.CorruptionException v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v = v + 1;
v = staticinvoke <org.iq.snappy.SnappyInternalUtils: int loadByte(byte[],int)>(v, v);
v = <org.iq.snappy.SnappyDecompressor: short[] opLookupTable>;
v = staticinvoke <org.iq.snappy.SnappyInternalUtils: int lookupShort(short[],int)>(v, v);
v = v >>> 11;
v = 0;
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
default: goto label;
};
label:
v = v + 3;
v = v[v];
v = v & 255;
v = v << 24;
label:
v = v + 2;
v = v[v];
v = v & 255;
v = v << 16;
v = v | v;
label:
v = v + 1;
v = v[v];
v = v & 255;
v = v << 8;
v = v | v;
label:
v = v[v];
v = v & 255;
v = v | v;
label:
v = v + v;
v = v & 255;
v = v & 3;
if v != 0 goto label;
v = v + v;
staticinvoke <org.iq.snappy.SnappyDecompressor: void copyLiteral(byte[],int,byte[],int,int)>(v, v, v, v, v);
v = v + v;
v = v + v;
goto label;
label:
v = v & 1792;
v = v + v;
v = v - v;
v = v - v;
if v >= v goto label;
v = new org.iq.snappy.CorruptionException;
v = v - v;
v = v - 1;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Invalid copy offset for opcode starting at \u0001");
specialinvoke v.<org.iq.snappy.CorruptionException: void <init>(java.lang.String)>(v);
throw v;
label:
if v > 16 goto label;
if v < 8 goto label;
if v < 16 goto label;
staticinvoke <org.iq.snappy.SnappyInternalUtils: void copyLong(byte[],int,byte[],int)>(v, v, v, v);
v = v + 8;
v = v + 8;
staticinvoke <org.iq.snappy.SnappyInternalUtils: void copyLong(byte[],int,byte[],int)>(v, v, v, v);
goto label;
label:
v = v + 20;
if v < v goto label;
staticinvoke <org.iq.snappy.SnappyDecompressor: void incrementalCopyFastPath(byte[],int,int,int)>(v, v, v, v);
goto label;
label:
staticinvoke <org.iq.snappy.SnappyDecompressor: void incrementalCopy(byte[],int,byte[],int,int)>(v, v, v, v, v);
label:
v = v + v;
label:
v = newarray (int)[2];
v[0] = v;
v[1] = v;
return v;
}
private static int readTrailer(byte[], int, int)
{
byte[] v;
int[] v;
int v, v, v, v, v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = staticinvoke <org.iq.snappy.SnappyInternalUtils: int loadInt(byte[],int)>(v, v);
v = <org.iq.snappy.SnappyDecompressor: int[] wordmask>;
v = v[v];
v = v & v;
return v;
}
private static void copyLiteral(byte[], int, byte[], int, int) throws org.iq.snappy.CorruptionException
{
byte[] v, v;
java.lang.AssertionError v, v, v;
byte v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
boolean v, v, v;
org.iq.snappy.CorruptionException v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = <org.iq.snappy.SnappyDecompressor: boolean $assertionsDisabled>;
if v != 0 goto label;
if v > 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = <org.iq.snappy.SnappyDecompressor: boolean $assertionsDisabled>;
if v != 0 goto label;
if v >= 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = <org.iq.snappy.SnappyDecompressor: boolean $assertionsDisabled>;
if v != 0 goto label;
if v >= 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = lengthof v;
v = v - v;
v = lengthof v;
v = v - v;
if v < v goto label;
if v >= v goto label;
label:
v = new org.iq.snappy.CorruptionException;
specialinvoke v.<org.iq.snappy.CorruptionException: void <init>(java.lang.String)>("Corrupt literal length");
throw v;
label:
if v > 16 goto label;
if v < 16 goto label;
if v < 16 goto label;
staticinvoke <org.iq.snappy.SnappyInternalUtils: void copyLong(byte[],int,byte[],int)>(v, v, v, v);
v = v + 8;
v = v + 8;
staticinvoke <org.iq.snappy.SnappyInternalUtils: void copyLong(byte[],int,byte[],int)>(v, v, v, v);
goto label;
label:
v = (int) -8;
v = v & v;
if v > 64 goto label;
v = 0;
label:
if v >= v goto label;
v = v + v;
v = v + v;
staticinvoke <org.iq.snappy.SnappyInternalUtils: void copyLong(byte[],int,byte[],int)>(v, v, v, v);
v = v + 8;
goto label;
label:
v = v & 7;
v = 0;
label:
if v >= v goto label;
v = v + v;
v = v + v;
v = v + v;
v = v + v;
v = v[v];
v[v] = v;
v = v + 1;
goto label;
label:
staticinvoke <org.iq.snappy.SnappyInternalUtils: void copyMemory(byte[],int,byte[],int,int)>(v, v, v, v, v);
label:
return;
}
private static void incrementalCopy(byte[], int, byte[], int, int)
{
byte[] v, v;
byte v;
int v, v, v, v, v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
label:
v = v;
v = v + 1;
v = v;
v = v + 1;
v = v[v];
v[v] = v;
v = v - 1;
if v > 0 goto label;
return;
}
private static void incrementalCopyFastPath(byte[], int, int, int)
{
byte[] v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v = 0;
label:
v = v + v;
v = v - v;
if v >= 8 goto label;
v = v + v;
staticinvoke <org.iq.snappy.SnappyInternalUtils: void copyLong(byte[],int,byte[],int)>(v, v, v, v);
v = v + v;
v = v - v;
v = v + v;
goto label;
label:
v = 0;
label:
v = v - v;
if v >= v goto label;
v = v + v;
v = v + v;
v = v + v;
staticinvoke <org.iq.snappy.SnappyInternalUtils: void copyLong(byte[],int,byte[],int)>(v, v, v, v);
v = v + 8;
goto label;
label:
return;
}
private static int[] readUncompressedLength(byte[], int) throws org.iq.snappy.CorruptionException
{
byte[] v;
byte v, v, v, v, v;
int[] v;
short v, v, v, v, v, v, v, v, v, v, v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v;
org.iq.snappy.CorruptionException v;
v := @parameter: byte[];
v := @parameter: int;
v = 1;
v = v + 0;
v = v[v];
v = v & 255;
v = v & 127;
v = v & 128;
if v == 0 goto label;
v = 2;
v = v + 1;
v = v[v];
v = v & 255;
v = v & 127;
v = v << 7;
v = v | v;
v = v & 128;
if v == 0 goto label;
v = 3;
v = v + 2;
v = v[v];
v = v & 255;
v = v & 127;
v = v << 14;
v = v | v;
v = v & 128;
if v == 0 goto label;
v = 4;
v = v + 3;
v = v[v];
v = v & 255;
v = v & 127;
v = v << 21;
v = v | v;
v = v & 128;
if v == 0 goto label;
v = 5;
v = v + 4;
v = v[v];
v = v & 255;
v = v & 127;
v = v << 28;
v = v | v;
v = v & 128;
if v == 0 goto label;
v = new org.iq.snappy.CorruptionException;
specialinvoke v.<org.iq.snappy.CorruptionException: void <init>(java.lang.String)>("last byte of compressed length int has high bit set");
throw v;
label:
v = newarray (int)[2];
v[0] = v;
v[1] = v;
return v;
}
static void <clinit>()
{
int[] v;
int v, v;
java.lang.Class v;
short[] v;
boolean v, v;
v = class "Lorg/iq80/snappy/SnappyDecompressor;";
v = virtualinvoke v.<java.lang.Class: boolean desiredAssertionStatus()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
<org.iq.snappy.SnappyDecompressor: boolean $assertionsDisabled> = v;
v = newarray (int)[5];
v[0] = 0;
v[1] = 255;
v = (int) 65535;
v[2] = v;
v[3] = 16777215;
v = (int) -1;
v[4] = v;
<org.iq.snappy.SnappyDecompressor: int[] wordmask> = v;
v = newarray (short)[256];
v[0] = 1;
v[1] = 2052;
v[2] = 4097;
v[3] = 8193;
v[4] = 2;
v[5] = 2053;
v[6] = 4098;
v[7] = 8194;
v[8] = 3;
v[9] = 2054;
v[10] = 4099;
v[11] = 8195;
v[12] = 4;
v[13] = 2055;
v[14] = 4100;
v[15] = 8196;
v[16] = 5;
v[17] = 2056;
v[18] = 4101;
v[19] = 8197;
v[20] = 6;
v[21] = 2057;
v[22] = 4102;
v[23] = 8198;
v[24] = 7;
v[25] = 2058;
v[26] = 4103;
v[27] = 8199;
v[28] = 8;
v[29] = 2059;
v[30] = 4104;
v[31] = 8200;
v[32] = 9;
v[33] = 2308;
v[34] = 4105;
v[35] = 8201;
v[36] = 10;
v[37] = 2309;
v[38] = 4106;
v[39] = 8202;
v[40] = 11;
v[41] = 2310;
v[42] = 4107;
v[43] = 8203;
v[44] = 12;
v[45] = 2311;
v[46] = 4108;
v[47] = 8204;
v[48] = 13;
v[49] = 2312;
v[50] = 4109;
v[51] = 8205;
v[52] = 14;
v[53] = 2313;
v[54] = 4110;
v[55] = 8206;
v[56] = 15;
v[57] = 2314;
v[58] = 4111;
v[59] = 8207;
v[60] = 16;
v[61] = 2315;
v[62] = 4112;
v[63] = 8208;
v[64] = 17;
v[65] = 2564;
v[66] = 4113;
v[67] = 8209;
v[68] = 18;
v[69] = 2565;
v[70] = 4114;
v[71] = 8210;
v[72] = 19;
v[73] = 2566;
v[74] = 4115;
v[75] = 8211;
v[76] = 20;
v[77] = 2567;
v[78] = 4116;
v[79] = 8212;
v[80] = 21;
v[81] = 2568;
v[82] = 4117;
v[83] = 8213;
v[84] = 22;
v[85] = 2569;
v[86] = 4118;
v[87] = 8214;
v[88] = 23;
v[89] = 2570;
v[90] = 4119;
v[91] = 8215;
v[92] = 24;
v[93] = 2571;
v[94] = 4120;
v[95] = 8216;
v[96] = 25;
v[97] = 2820;
v[98] = 4121;
v[99] = 8217;
v[100] = 26;
v[101] = 2821;
v[102] = 4122;
v[103] = 8218;
v[104] = 27;
v[105] = 2822;
v[106] = 4123;
v[107] = 8219;
v[108] = 28;
v[109] = 2823;
v[110] = 4124;
v[111] = 8220;
v[112] = 29;
v[113] = 2824;
v[114] = 4125;
v[115] = 8221;
v[116] = 30;
v[117] = 2825;
v[118] = 4126;
v[119] = 8222;
v[120] = 31;
v[121] = 2826;
v[122] = 4127;
v[123] = 8223;
v[124] = 32;
v[125] = 2827;
v[126] = 4128;
v[127] = 8224;
v[128] = 33;
v[129] = 3076;
v[130] = 4129;
v[131] = 8225;
v[132] = 34;
v[133] = 3077;
v[134] = 4130;
v[135] = 8226;
v[136] = 35;
v[137] = 3078;
v[138] = 4131;
v[139] = 8227;
v[140] = 36;
v[141] = 3079;
v[142] = 4132;
v[143] = 8228;
v[144] = 37;
v[145] = 3080;
v[146] = 4133;
v[147] = 8229;
v[148] = 38;
v[149] = 3081;
v[150] = 4134;
v[151] = 8230;
v[152] = 39;
v[153] = 3082;
v[154] = 4135;
v[155] = 8231;
v[156] = 40;
v[157] = 3083;
v[158] = 4136;
v[159] = 8232;
v[160] = 41;
v[161] = 3332;
v[162] = 4137;
v[163] = 8233;
v[164] = 42;
v[165] = 3333;
v[166] = 4138;
v[167] = 8234;
v[168] = 43;
v[169] = 3334;
v[170] = 4139;
v[171] = 8235;
v[172] = 44;
v[173] = 3335;
v[174] = 4140;
v[175] = 8236;
v[176] = 45;
v[177] = 3336;
v[178] = 4141;
v[179] = 8237;
v[180] = 46;
v[181] = 3337;
v[182] = 4142;
v[183] = 8238;
v[184] = 47;
v[185] = 3338;
v[186] = 4143;
v[187] = 8239;
v[188] = 48;
v[189] = 3339;
v[190] = 4144;
v[191] = 8240;
v[192] = 49;
v[193] = 3588;
v[194] = 4145;
v[195] = 8241;
v[196] = 50;
v[197] = 3589;
v[198] = 4146;
v[199] = 8242;
v[200] = 51;
v[201] = 3590;
v[202] = 4147;
v[203] = 8243;
v[204] = 52;
v[205] = 3591;
v[206] = 4148;
v[207] = 8244;
v[208] = 53;
v[209] = 3592;
v[210] = 4149;
v[211] = 8245;
v[212] = 54;
v[213] = 3593;
v[214] = 4150;
v[215] = 8246;
v[216] = 55;
v[217] = 3594;
v[218] = 4151;
v[219] = 8247;
v[220] = 56;
v[221] = 3595;
v[222] = 4152;
v[223] = 8248;
v[224] = 57;
v[225] = 3844;
v[226] = 4153;
v[227] = 8249;
v[228] = 58;
v[229] = 3845;
v[230] = 4154;
v[231] = 8250;
v[232] = 59;
v[233] = 3846;
v[234] = 4155;
v[235] = 8251;
v[236] = 60;
v[237] = 3847;
v[238] = 4156;
v[239] = 8252;
v[240] = 2049;
v[241] = 3848;
v[242] = 4157;
v[243] = 8253;
v[244] = 4097;
v[245] = 3849;
v[246] = 4158;
v[247] = 8254;
v[248] = 6145;
v[249] = 3850;
v[250] = 4159;
v[251] = 8255;
v[252] = 8193;
v[253] = 3851;
v[254] = 4160;
v[255] = 8256;
<org.iq.snappy.SnappyDecompressor: short[] opLookupTable> = v;
return;
}
}