final class io.netty.handler.codec.base.Base64$Decoder extends java.lang.Object implements io.netty.util.ByteProcessor
{
private final byte[] b;
private int b4Posn;
private byte[] decodabet;
private int outBuffPosn;
private io.netty.buffer.ByteBuf dest;
private void <init>()
{
byte[] v;
io.netty.handler.codec.base.Base64$Decoder v;
v := @this: io.netty.handler.codec.base.Base64$Decoder;
specialinvoke v.<java.lang.Object: void <init>()>();
v = newarray (byte)[4];
v.<io.netty.handler.codec.base.Base64$Decoder: byte[] b4> = v;
return;
}
io.netty.buffer.ByteBuf decode(io.netty.buffer.ByteBuf, int, int, io.netty.buffer.ByteBufAllocator, io.netty.handler.codec.base.Base64Dialect)
{
java.lang.Throwable v;
byte[] v;
io.netty.buffer.ByteBufAllocator v;
io.netty.buffer.ByteBuf v, v, v, v, v, v;
int v, v, v, v;
io.netty.handler.codec.base.Base64$Decoder v;
java.nio.ByteOrder v;
io.netty.handler.codec.base.Base64Dialect v;
v := @this: io.netty.handler.codec.base.Base64$Decoder;
v := @parameter: io.netty.buffer.ByteBuf;
v := @parameter: int;
v := @parameter: int;
v := @parameter: io.netty.buffer.ByteBufAllocator;
v := @parameter: io.netty.handler.codec.base.Base64Dialect;
v = staticinvoke <io.netty.handler.codec.base.Base64: int decodedBufferSize(int)>(v);
v = interfaceinvoke v.<io.netty.buffer.ByteBufAllocator: io.netty.buffer.ByteBuf buffer(int)>(v);
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.nio.ByteOrder order()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: io.netty.buffer.ByteBuf order(java.nio.ByteOrder)>(v);
v.<io.netty.handler.codec.base.Base64$Decoder: io.netty.buffer.ByteBuf dest> = v;
v = staticinvoke <io.netty.handler.codec.base.Base64: byte[] decodabet(io.netty.handler.codec.base.Base64Dialect)>(v);
v.<io.netty.handler.codec.base.Base64$Decoder: byte[] decodabet> = v;
label:
virtualinvoke v.<io.netty.buffer.ByteBuf: int forEachByte(int,int,io.netty.util.ByteProcessor)>(v, v, v);
v = v.<io.netty.handler.codec.base.Base64$Decoder: io.netty.buffer.ByteBuf dest>;
v = v.<io.netty.handler.codec.base.Base64$Decoder: int outBuffPosn>;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: io.netty.buffer.ByteBuf slice(int,int)>(0, v);
label:
return v;
label:
v := @caughtexception;
v = v.<io.netty.handler.codec.base.Base64$Decoder: io.netty.buffer.ByteBuf dest>;
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
staticinvoke <io.netty.util.internal.PlatformDependent: void throwException(java.lang.Throwable)>(v);
return null;
catch java.lang.Throwable from label to label with label;
}
public boolean process(byte) throws java.lang.Exception
{
byte[] v, v, v, v;
short v;
byte v, v;
io.netty.buffer.ByteBuf v;
int v, v, v, v, v, v, v, v, v;
java.lang.String v;
io.netty.handler.codec.base.Base64$Decoder v;
boolean v;
java.lang.IllegalArgumentException v;
v := @this: io.netty.handler.codec.base.Base64$Decoder;
v := @parameter: byte;
if v <= 0 goto label;
v = v.<io.netty.handler.codec.base.Base64$Decoder: byte[] decodabet>;
v = v[v];
v = (int) -5;
if v < v goto label;
v = (int) -1;
if v < v goto label;
v = v.<io.netty.handler.codec.base.Base64$Decoder: byte[] b4>;
v = v.<io.netty.handler.codec.base.Base64$Decoder: int b4Posn>;
v = v + 1;
v.<io.netty.handler.codec.base.Base64$Decoder: int b4Posn> = v;
v[v] = v;
v = v.<io.netty.handler.codec.base.Base64$Decoder: int b4Posn>;
if v <= 3 goto label;
v = v.<io.netty.handler.codec.base.Base64$Decoder: int outBuffPosn>;
v = v.<io.netty.handler.codec.base.Base64$Decoder: byte[] b4>;
v = v.<io.netty.handler.codec.base.Base64$Decoder: io.netty.buffer.ByteBuf dest>;
v = v.<io.netty.handler.codec.base.Base64$Decoder: int outBuffPosn>;
v = v.<io.netty.handler.codec.base.Base64$Decoder: byte[] decodabet>;
v = staticinvoke <io.netty.handler.codec.base.Base64$Decoder: int decode4to3(byte[],io.netty.buffer.ByteBuf,int,byte[])>(v, v, v, v);
v = v + v;
v.<io.netty.handler.codec.base.Base64$Decoder: int outBuffPosn> = v;
v.<io.netty.handler.codec.base.Base64$Decoder: int b4Posn> = 0;
if v == 61 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
return 1;
label:
v = new java.lang.IllegalArgumentException;
v = v & 255;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (short)>(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 Base input character: \u (decimal)");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
}
private static int decode4to3(byte[], io.netty.buffer.ByteBuf, int, byte[])
{
byte[] v, v;
java.lang.IndexOutOfBoundsException v, v, v;
byte 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.nio.ByteOrder v, v, v, v;
short v, v, v, v, v, v, v, v, v, v, v, v;
io.netty.buffer.ByteBuf 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, v, v, v, v, v, v, v;
java.lang.IllegalArgumentException v, v, v;
v := @parameter: byte[];
v := @parameter: io.netty.buffer.ByteBuf;
v := @parameter: int;
v := @parameter: byte[];
v = v[0];
v = v[1];
v = v[2];
if v != 61 goto label;
label:
v = v[v];
v = v & 255;
v = v << 2;
v = v[v];
v = v & 255;
v = v >>> 4;
v = v | v;
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("not encoded in Base64");
throw v;
label:
virtualinvoke v.<io.netty.buffer.ByteBuf: io.netty.buffer.ByteBuf setByte(int,int)>(v, v);
return 1;
label:
v = v[3];
if v != 61 goto label;
v = v[v];
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.nio.ByteOrder order()>();
v = <java.nio.ByteOrder: java.nio.ByteOrder BIG_ENDIAN>;
if v != v goto label;
v = v[v];
v = v & 63;
v = v << 2;
v = v & 240;
v = v >> 4;
v = v | v;
v = v << 8;
v = v & 15;
v = v << 4;
v = v | v;
v = v[v];
v = v & 252;
v = v >>> 2;
v = v | v;
goto label;
label:
v = v[v];
v = v & 63;
v = v << 2;
v = v & 240;
v = v >> 4;
v = v | v;
v = v & 15;
v = v << 4;
v = v[v];
v = v & 252;
v = v >>> 2;
v = v | v;
v = v << 8;
v = v | v;
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("not encoded in Base64");
throw v;
label:
virtualinvoke v.<io.netty.buffer.ByteBuf: io.netty.buffer.ByteBuf setShort(int,int)>(v, v);
return 2;
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: java.nio.ByteOrder order()>();
v = <java.nio.ByteOrder: java.nio.ByteOrder BIG_ENDIAN>;
if v != v goto label;
v = v[v];
v = v & 63;
v = v << 18;
v = v[v];
v = v & 255;
v = v << 12;
v = v | v;
v = v[v];
v = v & 255;
v = v << 6;
v = v | v;
v = v[v];
v = v & 255;
v = v | v;
goto label;
label:
v = v[v];
v = v[v];
v = v[v];
v = v & 63;
v = v << 2;
v = v & 15;
v = v << 12;
v = v | v;
v = v & 240;
v = v >>> 4;
v = v | v;
v = v & 3;
v = v << 22;
v = v | v;
v = v & 252;
v = v << 6;
v = v | v;
v = v[v];
v = v & 255;
v = v << 16;
v = v | v;
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("not encoded in Base64");
throw v;
label:
virtualinvoke v.<io.netty.buffer.ByteBuf: io.netty.buffer.ByteBuf setMedium(int,int)>(v, v);
return 3;
catch java.lang.IndexOutOfBoundsException from label to label with label;
catch java.lang.IndexOutOfBoundsException from label to label with label;
catch java.lang.IndexOutOfBoundsException from label to label with label;
}
}