ReadSignature() static private method

static private ReadSignature ( System s ) : int
s System
return int
Esempio n. 1
0
        // Token: 0x06000346 RID: 838 RVA: 0x00018314 File Offset: 0x00016514
        internal static long FindSignature(Stream stream, int SignatureToFind)
        {
            long position = stream.Position;
            int  num      = 65536;

            byte[] array = new byte[]
            {
                (byte)(SignatureToFind >> 24),
                (byte)((SignatureToFind & 16711680) >> 16),
                (byte)((SignatureToFind & 65280) >> 8),
                (byte)(SignatureToFind & 255)
            };
            byte[] array2 = new byte[num];
            bool   flag   = false;

            do
            {
                int num2 = stream.Read(array2, 0, array2.Length);
                if (num2 == 0)
                {
                    break;
                }
                for (int i = 0; i < num2; i++)
                {
                    if (array2[i] == array[3])
                    {
                        long position2 = stream.Position;
                        stream.Seek((long)(i - num2), SeekOrigin.Current);
                        int num3 = SharedUtilities.ReadSignature(stream);
                        flag = (num3 == SignatureToFind);
                        if (flag)
                        {
                            break;
                        }
                        stream.Seek(position2, SeekOrigin.Begin);
                    }
                }
            }while (!flag);
            if (!flag)
            {
                stream.Seek(position, SeekOrigin.Begin);
                return(-1L);
            }
            return(stream.Position - position - 4L);
        }