private static byte[] smethod_5(byte[] byte_0, string string_0) { if (byte_0 != null && string_0 != null) { byte[] array = new byte[byte_0.Length]; byte[] array2 = AuthCode.smethod_2(AuthCode.encoding_0.GetBytes(string_0), 256); long num = 0L; long num2 = 0L; for (long num3 = 0L; num3 < (long)byte_0.Length; num3 += 1L) { num = (num + 1L) % (long)array2.Length; num2 = (num2 + (long)array2[(int)(checked ((IntPtr)num))]) % (long)array2.Length; checked { byte b = array2[(int)((IntPtr)num)]; array2[(int)((IntPtr)num)] = array2[(int)((IntPtr)num2)]; array2[(int)((IntPtr)num2)] = b; byte b2 = byte_0[(int)((IntPtr)num3)]; byte b3 = array2[(int)(unchecked (array2[(int)(checked ((IntPtr)num))] + array2[(int)(checked ((IntPtr)num2))])) % array2.Length]; array[(int)((IntPtr)num3)] = (byte)(b2 ^ b3); } } return(array); } return(null); }