Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // <Module>
- // Token: 0x06000001 RID: 1 RVA: 0x000049D8 File Offset: 0x00002BD8
- private static GCHandle Decrypt(uint[] A_0, uint A_1)
- {
- uint[] array = new uint[16];
- uint[] array2 = new uint[16];
- ulong num = (ulong)A_1;
- for (int i = 0; i < 16; i++)
- {
- num = num * num % 339722377UL;
- array2[i] = (uint)num;
- array[i] = (uint)(num * num % 1145919227UL);
- }
- array[0] = (array[0] ^ array2[0]) + 2032931921u;
- array[1] = (array[1] + array2[1]) * 2694679647u;
- array[2] = array[2] * array2[2] + 2032931921u;
- array[3] = (array[3] + array2[3]) * 2694679647u;
- array[4] = (array[4] + array2[4]) * 2694679647u;
- array[5] = array[5] * array2[5] + 2032931921u;
- array[6] = (array[6] ^ array2[6]) + 2032931921u;
- array[7] = (array[7] ^ array2[7]) + 2032931921u;
- array[8] = (array[8] ^ array2[8] ^ 3019827417u);
- array[9] = array[9] + array2[9] + 2032931921u;
- array[10] = (array[10] + array2[10]) * 2694679647u;
- array[11] = (array[11] ^ array2[11]) + 2032931921u;
- array[12] = (array[12] + array2[12] ^ 3019827417u);
- array[13] = (array[13] + array2[13]) * 2694679647u;
- array[14] = array[14] * array2[14] + 2032931921u;
- array[15] = (array[15] ^ array2[15]) + 2032931921u;
- Array.Clear(array2, 0, 16);
- byte[] array3 = new byte[A_0.Length << 2];
- uint num2 = 0u;
- for (int j = 0; j < A_0.Length; j++)
- {
- uint num3 = A_0[j] ^ array[j & 15];
- array[j & 15] = (array[j & 15] ^ num3) + 1037772825u;
- array3[(int)((UIntPtr)num2)] = (byte)num3;
- array3[(int)((UIntPtr)(num2 + 1u))] = (byte)(num3 >> 8);
- array3[(int)((UIntPtr)(num2 + 2u))] = (byte)(num3 >> 16);
- array3[(int)((UIntPtr)(num2 + 3u))] = (byte)(num3 >> 24);
- num2 += 4u;
- }
- Array.Clear(array, 0, 16);
- byte[] array4 = <Module>.Decompress(array3);
- Array.Clear(array3, 0, array3.Length);
- GCHandle result = GCHandle.Alloc(array4, GCHandleType.Pinned);
- ulong num4 = num % 9067703UL;
- for (int k = 0; k < array4.Length; k++)
- {
- byte[] array5 = array4;
- int num5 = k;
- array5[num5] ^= (byte)num;
- if ((k & 255) == 0)
- {
- num = num * num % 9067703UL;
- }
- }
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement