private int doGetDataTypeLength() {
		if (!hasValidMagicNum()) {
			return 0;
		}
		DataTypeManager dataTypeManager = getProgram().getDataTypeManager();
		int intSize = new IntegerDataType(dataTypeManager).getLength();
		int uintSize = new UnsignedIntegerDataType(dataTypeManager).getLength();
		int ibo32Size = new IBO32DataType(dataTypeManager).getLength();
		int defaultPointerSize = getDefaultPointerSize();
		int size20;
		int additional21;
		int additional22 = intSize;
		if (isRelative()) {
			size20 = (uintSize * 3) + intSize + ibo32Size * 4;
			additional21 = ibo32Size;
		}
		else {
			size20 = (uintSize * 3) + intSize + (defaultPointerSize * 3);
			additional21 = defaultPointerSize;
		}
		if (isV1) {
			return size20;
		}
		else if (isV2) {
			return size20 + additional21;
		}
		else if (isV3) {
			return size20 + additional21 + additional22;
		}
		return 0;
	}
Determines the data type's length without actually creating the data type.
@return the data type length or 0 if it can't be determined.
Ghidra/Features/MicrosoftCodeAnalyzer/src/main/java/ghidra/app/cmd/data/exceptionhandling/EHFunctionInfoModel.java