public void InitializeMetaData(BinaryReader fCas) { this.dbxHeader = new DbxHeader(fCas); this.arraySectionStart = this.catEntry.offset + this.dbxHeader.stringOffset + this.dbxHeader.lenString + this.dbxHeader.lenPayload; this.stringSectionStart = this.catEntry.offset + this.dbxHeader.stringOffset; this.payloadSectionStart = this.catEntry.offset + this.dbxHeader.stringOffset + this.dbxHeader.lenString; this.externalGuids = new List <Tuple <byte[], byte[]> >((int)this.dbxHeader.numExternalGuid); int num = 0; while ((long)num < (long)((ulong)this.dbxHeader.numExternalGuid)) { this.externalGuids.Add(new Tuple <byte[], byte[]>(fCas.ReadBytes(16), fCas.ReadBytes(16))); num++; } this.unhash = new Dictionary <uint, string>(); byte[] array = new byte[this.dbxHeader.lenKeyword]; fCas.BaseStream.Read(array, 0, (int)this.dbxHeader.lenKeyword); int num2 = 0; int num3 = 0; while ((long)num3 < (long)((ulong)this.dbxHeader.lenKeyword)) { if (array[num3] == 0) { string @string = Encoding.ASCII.GetString(array, num2, num3 - num2); if (@string != "") { this.unhash.Add(DbxFile.hasher(@string), @string); } num2 = num3 + 1; } num3++; } this.fieldDescriptors = new List <FieldDescriptor>((int)this.dbxHeader.numField); int num4 = 0; while ((long)num4 < (long)((ulong)this.dbxHeader.numField)) { FieldDescriptor item = new FieldDescriptor(fCas); this.fieldDescriptors.Add(item); num4++; } this.complexDescriptors = new List <ComplexDescriptor>((int)this.dbxHeader.numComplex); int num5 = 0; while ((long)num5 < (long)((ulong)this.dbxHeader.numComplex)) { ComplexDescriptor item2 = new ComplexDescriptor(fCas); this.complexDescriptors.Add(item2); num5++; } this.instanceRepeaters = new List <InstanceRepeater>(); int num6 = 0; while ((long)num6 < (long)((ulong)this.dbxHeader.numInstanceRepeater)) { this.instanceRepeaters.Add(new InstanceRepeater(fCas)); num6++; } long num7 = 16L - (fCas.BaseStream.Position - (long)((ulong)this.catEntry.offset)) % 16L; if (num7 != 16L) { fCas.ReadBytes((int)num7); } this.arrayRepeaters = new List <ArrayRepeater>(); int num8 = 0; while ((long)num8 < (long)((ulong)this.dbxHeader.numArrayRepeater)) { this.arrayRepeaters.Add(new ArrayRepeater(fCas)); num8++; } }
public void InitializeMetaData(BinaryReader fCas) { this.dbxHeader = new DbxHeader(fCas); this.arraySectionStart = this.catEntry.offset + this.dbxHeader.stringOffset + this.dbxHeader.lenString + this.dbxHeader.lenPayload; this.stringSectionStart = this.catEntry.offset + this.dbxHeader.stringOffset; this.payloadSectionStart = this.catEntry.offset + this.dbxHeader.stringOffset + this.dbxHeader.lenString; this.externalGuids = new List<Tuple<byte[], byte[]>>((int)this.dbxHeader.numExternalGuid); int num = 0; while ((long)num < (long)((ulong)this.dbxHeader.numExternalGuid)) { this.externalGuids.Add(new Tuple<byte[], byte[]>(fCas.ReadBytes(16), fCas.ReadBytes(16))); num++; } this.unhash = new Dictionary<uint, string>(); byte[] array = new byte[this.dbxHeader.lenKeyword]; fCas.BaseStream.Read(array, 0, (int)this.dbxHeader.lenKeyword); int num2 = 0; int num3 = 0; while ((long)num3 < (long)((ulong)this.dbxHeader.lenKeyword)) { if (array[num3] == 0) { string @string = Encoding.ASCII.GetString(array, num2, num3 - num2); if (@string != "") { this.unhash.Add(DbxFile.hasher(@string), @string); } num2 = num3 + 1; } num3++; } this.fieldDescriptors = new List<FieldDescriptor>((int)this.dbxHeader.numField); int num4 = 0; while ((long)num4 < (long)((ulong)this.dbxHeader.numField)) { FieldDescriptor item = new FieldDescriptor(fCas); this.fieldDescriptors.Add(item); num4++; } this.complexDescriptors = new List<ComplexDescriptor>((int)this.dbxHeader.numComplex); int num5 = 0; while ((long)num5 < (long)((ulong)this.dbxHeader.numComplex)) { ComplexDescriptor item2 = new ComplexDescriptor(fCas); this.complexDescriptors.Add(item2); num5++; } this.instanceRepeaters = new List<InstanceRepeater>(); int num6 = 0; while ((long)num6 < (long)((ulong)this.dbxHeader.numInstanceRepeater)) { this.instanceRepeaters.Add(new InstanceRepeater(fCas)); num6++; } long num7 = 16L - (fCas.BaseStream.Position - (long)((ulong)this.catEntry.offset)) % 16L; if (num7 != 16L) { fCas.ReadBytes((int)num7); } this.arrayRepeaters = new List<ArrayRepeater>(); int num8 = 0; while ((long)num8 < (long)((ulong)this.dbxHeader.numArrayRepeater)) { this.arrayRepeaters.Add(new ArrayRepeater(fCas)); num8++; } }