private static byte[] Two(byte[] u0002, byte[] u0003, byte[] u0005, long u0008, GSEncodingData u0006)
{
byte[] numArray;
byte[] numArray1 = new byte[261];
numArray = (u0006 != null ? u0006.EncodingKey : numArray1);
if (u0006 == null || u0006.Start == 0)
{
u0005 = Three(ref numArray, ref u0002, u0003, ref u0005, ref u0008, ref u0006);
if (u0005 == null)
{
return null;
}
}
if (u0006 == null)
{
Four(ref numArray, ref u0005, u0008);
return u0005;
}
if (u0006.Start == 0)
{
return null;
}
byte[] numArray2 = new byte[u0008 - u0006.Offset];
Array.ConstrainedCopy(u0005, (int)u0006.Offset, numArray2, 0, (int)(u0008 - u0006.Offset));
long num = Four(ref numArray, ref numArray2, u0008 - u0006.Offset);
Array.ConstrainedCopy(numArray2, 0, u0005, (int)u0006.Offset, (int)(u0008 - u0006.Offset));
GSEncodingData offset = u0006;
offset.Offset = offset.Offset + num;
byte[] numArray3 = new byte[u0008 - u0006.Start];
Array.ConstrainedCopy(u0005, (int)u0006.Start, numArray3, 0, (int)(u0008 - u0006.Start));
return numArray3;
}