Girl.PEAnalyzer.PEData.ReadCLIHeader C# (CSharp) Method

ReadCLIHeader() private method

private ReadCLIHeader ( ) : void
return void
        private void ReadCLIHeader()
        {
            int addr_cli = RVAManager.GetAddress(this.pe4.CLIHeader);
            if (addr_cli == 0) return;
            cli = new CLIHeader();
            this.cli.ReadData(this.data, this.rva.ConvertToPhysical(addr_cli));
            int offset = this.rva.ConvertToPhysical(RVAManager.GetAddress(this.cli.MetaData));
            this.mdroot = new MetadataRoot();
            this.mdroot.ReadData(this.data, offset);
            offset += this.mdroot.Length + 18;
            int nStreams = Util.GetInt16(this.data, offset);
            offset += 2;
            this.idxm = new IndexManager(this.data, this.rva);
            for (int i = 0; i < nStreams; i++)
            {
                StreamHeader sh = new StreamHeader();
                sh.mdroot = mdroot;
                sh.ReadData(this.data, offset);
                offset += sh.GetStreamSize();
                this.SetStreamHeader(sh);
            }
            this.ReadTilde();
        }