public static int GetTypeLen()

in src/BinaryParsers/PEBinary/PortableExecutable/PEExtensionMethods.cs [38:71]


        public static int GetTypeLen(this ImageFieldData fi)
        {
            int res = 0;
            bool b64bit = false;
            PEHeader ioh = fi.ParentHeader;
            if (ioh != null)
            {
                b64bit = (ioh.Magic == PEMagic.PE32Plus);
            }

            if (b64bit && fi.Is32BitOnly)
            {
                return 0;
            }

            switch (fi.Type)
            {
                case Type.BYTE: res = 1; break;
                case Type.SBYTE: res = 1; break;
                case Type.UINT16: res = 2; break;
                case Type.INT16: res = 2; break;
                case Type.UINT32: res = 4; break;
                case Type.INT32: res = 4; break;
                case Type.UINT64: res = 8; break;
                case Type.INT64: res = 8; break;
                case Type.POINTER: res = 4; break;
                case Type.HEADER: res = fi.Header.Size; break;
                case Type.NATIVEINT: res = b64bit ? 8 : 4; break;

                default: throw new Exception("Unknown type");
            }

            return res;
        }