BF2Statistics.Gamespy.Enctypex.Two C# (CSharp) Method

Two() private static method

private static Two ( byte u0002, byte u0003, byte u0005, long u0008, GSEncodingData u0006 ) : byte[]
u0002 byte
u0003 byte
u0005 byte
u0008 long
u0006 GSEncodingData
return byte[]
        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;
        }