Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Token: 0x06000B35 RID: 2869 RVA: 0x0063A3A4 File Offset: 0x005EAFA4
- [return: MarshalAs(UnmanagedType.U1)]
- internal unsafe static bool DecryptDongleData(Struct_1057* A_0)
- {
- if (*(A_0 + 172) == 0)
- {
- return 0;
- }
- Struct_1062 struct_ = 14;
- *((ref struct_) + 1) = 15;
- *((ref struct_) + 2) = 15;
- *((ref struct_) + 3) = 14;
- *((ref struct_) + 4) = 15;
- *((ref struct_) + 5) = 15;
- *((ref struct_) + 6) = 10;
- *((ref struct_) + 7) = 7;
- *((ref struct_) + 8) = 10;
- *((ref struct_) + 9) = 8;
- *((ref struct_) + 10) = 239;
- *((ref struct_) + 11) = 254;
- Struct_1057* ptr = A_0 + 276;
- initblk(ptr, 0, 32);
- uint num = (uint)(*(A_0 + 172));
- cpblk(ptr, num + 96U, 32);
- Struct_1057* ptr2 = A_0 + 180;
- *ptr2 = *num;
- *(A_0 + 190) = *(*(A_0 + 172));
- *(A_0 + 200) = *(*(A_0 + 172));
- *(A_0 + 181) = *(*(A_0 + 172) + 1);
- *(A_0 + 191) = *(*(A_0 + 172) + 1);
- *(A_0 + 201) = *(*(A_0 + 172) + 1);
- *(A_0 + 182) = *(*(A_0 + 172) + 2);
- *(A_0 + 192) = *(*(A_0 + 172) + 2);
- *(A_0 + 202) = *(*(A_0 + 172) + 2);
- *(A_0 + 183) = *(*(A_0 + 172) + 3);
- *(A_0 + 193) = *(*(A_0 + 172) + 3);
- *(A_0 + 203) = *(*(A_0 + 172) + 3);
- *(A_0 + 184) = *(*(A_0 + 172) + 4);
- *(A_0 + 194) = *(*(A_0 + 172) + 4);
- *(A_0 + 204) = *(*(A_0 + 172) + 4);
- *(A_0 + 185) = *(*(A_0 + 172) + 5);
- *(A_0 + 195) = *(*(A_0 + 172) + 5);
- *(A_0 + 205) = *(*(A_0 + 172) + 5);
- *(A_0 + 186) = *(*(A_0 + 172) + 6);
- *(A_0 + 196) = *(*(A_0 + 172) + 6);
- *(A_0 + 206) = *(*(A_0 + 172) + 6);
- *(A_0 + 187) = *(*(A_0 + 172) + 7);
- *(A_0 + 197) = *(*(A_0 + 172) + 7);
- *(A_0 + 207) = *(*(A_0 + 172) + 7);
- *(A_0 + 188) = *(*(A_0 + 172) + 8);
- *(A_0 + 198) = *(*(A_0 + 172) + 8);
- *(A_0 + 208) = *(*(A_0 + 172) + 8);
- *(A_0 + 189) = *(*(A_0 + 172) + 9);
- *(A_0 + 199) = *(*(A_0 + 172) + 9);
- *(A_0 + 209) = *(*(A_0 + 172) + 9);
- *(A_0 + 210) = 1;
- *(A_0 + 211) = 1;
- Struct_157 struct_2;
- <Module>.aes.set_key(ref struct_2, ptr2, 4, (Struct_156)3);
- Struct_1061 struct_3;
- cpblk(ref struct_3, ptr, 16);
- Struct_1061 struct_4;
- <Module>.aes.decrypt(ref struct_2, ref struct_3, ref struct_4);
- cpblk(A_0 + 244, ref struct_4, 16);
- cpblk(ref struct_3, A_0 + 292, 16);
- <Module>.aes.decrypt(ref struct_2, ref struct_3, ref struct_4);
- cpblk(A_0 + 260, ref struct_4, 16);
- int num2 = 3;
- while (*(num2 + (ref struct_)) == *(A_0 + 244 + num2))
- {
- num2++;
- if (num2 >= 6)
- {
- if (*(A_0 + 275) != 0)
- {
- return 0;
- }
- *(A_0 + 4) = *(A_0 + 256);
- *(A_0 + 5) = *(A_0 + 257);
- *(A_0 + 6) = *(A_0 + 258);
- *(A_0 + 9) = *(A_0 + 259);
- *(A_0 + 10) = *(A_0 + 260);
- *(A_0 + 11) = *(A_0 + 261);
- *(A_0 + 12) = *(A_0 + 262);
- int num3 = (int)(*(A_0 + 263));
- *(A_0 + 156) = num3;
- *(A_0 + 156) = ((num3 == 0) ? 1048576 : (*(A_0 + 156)));
- int num4 = (int)(*(A_0 + 264));
- *(A_0 + 164) = num4;
- if (num4 == 0)
- {
- *(A_0 + 168) = 32000;
- }
- else
- {
- *(A_0 + 168) = num4 * 500;
- }
- *(A_0 + 160) = *(A_0 + 156);
- *(A_0 + 7) = *(A_0 + 271);
- *(A_0 + 8) = *(A_0 + 272);
- Struct_1057* ptr3 = A_0 + 312;
- sbyte* ptr4 = <Module>.Method_876(ptr3, 11);
- cpblk(ptr4, *(A_0 + 172), 10);
- *(byte*)(ptr4 + 10 / sizeof(sbyte)) = 0;
- <Module>.Method_913(ptr3, -1);
- return 1;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement