Advertisement
EddyCZ

Untitled

Mar 5th, 2023
750
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.33 KB | None | 0 0
  1. // Token: 0x06000B35 RID: 2869 RVA: 0x0063A3A4 File Offset: 0x005EAFA4
  2.     [return: MarshalAs(UnmanagedType.U1)]
  3.     internal unsafe static bool DecryptDongleData(Struct_1057* A_0)
  4.     {
  5.         if (*(A_0 + 172) == 0)
  6.         {
  7.             return 0;
  8.         }
  9.         Struct_1062 struct_ = 14;
  10.         *((ref struct_) + 1) = 15;
  11.         *((ref struct_) + 2) = 15;
  12.         *((ref struct_) + 3) = 14;
  13.         *((ref struct_) + 4) = 15;
  14.         *((ref struct_) + 5) = 15;
  15.         *((ref struct_) + 6) = 10;
  16.         *((ref struct_) + 7) = 7;
  17.         *((ref struct_) + 8) = 10;
  18.         *((ref struct_) + 9) = 8;
  19.         *((ref struct_) + 10) = 239;
  20.         *((ref struct_) + 11) = 254;
  21.         Struct_1057* ptr = A_0 + 276;
  22.         initblk(ptr, 0, 32);
  23.         uint num = (uint)(*(A_0 + 172));
  24.         cpblk(ptr, num + 96U, 32);
  25.         Struct_1057* ptr2 = A_0 + 180;
  26.         *ptr2 = *num;
  27.         *(A_0 + 190) = *(*(A_0 + 172));
  28.         *(A_0 + 200) = *(*(A_0 + 172));
  29.         *(A_0 + 181) = *(*(A_0 + 172) + 1);
  30.         *(A_0 + 191) = *(*(A_0 + 172) + 1);
  31.         *(A_0 + 201) = *(*(A_0 + 172) + 1);
  32.         *(A_0 + 182) = *(*(A_0 + 172) + 2);
  33.         *(A_0 + 192) = *(*(A_0 + 172) + 2);
  34.         *(A_0 + 202) = *(*(A_0 + 172) + 2);
  35.         *(A_0 + 183) = *(*(A_0 + 172) + 3);
  36.         *(A_0 + 193) = *(*(A_0 + 172) + 3);
  37.         *(A_0 + 203) = *(*(A_0 + 172) + 3);
  38.         *(A_0 + 184) = *(*(A_0 + 172) + 4);
  39.         *(A_0 + 194) = *(*(A_0 + 172) + 4);
  40.         *(A_0 + 204) = *(*(A_0 + 172) + 4);
  41.         *(A_0 + 185) = *(*(A_0 + 172) + 5);
  42.         *(A_0 + 195) = *(*(A_0 + 172) + 5);
  43.         *(A_0 + 205) = *(*(A_0 + 172) + 5);
  44.         *(A_0 + 186) = *(*(A_0 + 172) + 6);
  45.         *(A_0 + 196) = *(*(A_0 + 172) + 6);
  46.         *(A_0 + 206) = *(*(A_0 + 172) + 6);
  47.         *(A_0 + 187) = *(*(A_0 + 172) + 7);
  48.         *(A_0 + 197) = *(*(A_0 + 172) + 7);
  49.         *(A_0 + 207) = *(*(A_0 + 172) + 7);
  50.         *(A_0 + 188) = *(*(A_0 + 172) + 8);
  51.         *(A_0 + 198) = *(*(A_0 + 172) + 8);
  52.         *(A_0 + 208) = *(*(A_0 + 172) + 8);
  53.         *(A_0 + 189) = *(*(A_0 + 172) + 9);
  54.         *(A_0 + 199) = *(*(A_0 + 172) + 9);
  55.         *(A_0 + 209) = *(*(A_0 + 172) + 9);
  56.         *(A_0 + 210) = 1;
  57.         *(A_0 + 211) = 1;
  58.         Struct_157 struct_2;
  59.         <Module>.aes.set_key(ref struct_2, ptr2, 4, (Struct_156)3);
  60.         Struct_1061 struct_3;
  61.         cpblk(ref struct_3, ptr, 16);
  62.         Struct_1061 struct_4;
  63.         <Module>.aes.decrypt(ref struct_2, ref struct_3, ref struct_4);
  64.         cpblk(A_0 + 244, ref struct_4, 16);
  65.         cpblk(ref struct_3, A_0 + 292, 16);
  66.         <Module>.aes.decrypt(ref struct_2, ref struct_3, ref struct_4);
  67.         cpblk(A_0 + 260, ref struct_4, 16);
  68.         int num2 = 3;
  69.         while (*(num2 + (ref struct_)) == *(A_0 + 244 + num2))
  70.         {
  71.             num2++;
  72.             if (num2 >= 6)
  73.             {
  74.                 if (*(A_0 + 275) != 0)
  75.                 {
  76.                     return 0;
  77.                 }
  78.                 *(A_0 + 4) = *(A_0 + 256);
  79.                 *(A_0 + 5) = *(A_0 + 257);
  80.                 *(A_0 + 6) = *(A_0 + 258);
  81.                 *(A_0 + 9) = *(A_0 + 259);
  82.                 *(A_0 + 10) = *(A_0 + 260);
  83.                 *(A_0 + 11) = *(A_0 + 261);
  84.                 *(A_0 + 12) = *(A_0 + 262);
  85.                 int num3 = (int)(*(A_0 + 263));
  86.                 *(A_0 + 156) = num3;
  87.                 *(A_0 + 156) = ((num3 == 0) ? 1048576 : (*(A_0 + 156)));
  88.                 int num4 = (int)(*(A_0 + 264));
  89.                 *(A_0 + 164) = num4;
  90.                 if (num4 == 0)
  91.                 {
  92.                     *(A_0 + 168) = 32000;
  93.                 }
  94.                 else
  95.                 {
  96.                     *(A_0 + 168) = num4 * 500;
  97.                 }
  98.                 *(A_0 + 160) = *(A_0 + 156);
  99.                 *(A_0 + 7) = *(A_0 + 271);
  100.                 *(A_0 + 8) = *(A_0 + 272);
  101.                 Struct_1057* ptr3 = A_0 + 312;
  102.                 sbyte* ptr4 = <Module>.Method_876(ptr3, 11);
  103.                 cpblk(ptr4, *(A_0 + 172), 10);
  104.                 *(byte*)(ptr4 + 10 / sizeof(sbyte)) = 0;
  105.                 <Module>.Method_913(ptr3, -1);
  106.                 return 1;
  107.             }
  108.         }
  109.         return 0;
  110.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement