docs: def create_from_binary(cls, ignore_signature_check, binary_view):
          '''Creates a new object MFTHeader from a binary stream. The binary
          stream can be represented by a byte string, bytearray or a memoryview of the
          bytearray.
  
          Args:
              binary_view (memoryview of bytearray) - A binary stream with the
                  information of the attribute
  
          Returns:
              MFTHeader: New object using hte binary stream as source
          '''
          sig, fx_offset, fx_count, lsn, seq_number, hard_link_count, first_attr_offset, \
          usage_flags, entry_len, alloc_len, base_record, next_attr_id, record_n = \
              cls._REPR.unpack(binary_view[:cls._REPR.size])
  
          baad = None
          if not ignore_signature_check:
              if sig == b"FILE":
                  baad = False
              elif sig == b"BAAD":
                  baad = True
              else:
                  raise HeaderError("Entry has no valid signature.", "MFTHeader")
  
          if fx_offset < MFTHeader._REPR.size: #header[1] is fx_offset
              raise HeaderError("Fix up array begins within the header.", "MFTHeader")
          if first_attr_offset < cls._REPR.size: #first attribute offset < header size
              raise HeaderError("First attribute offset points to inside of the header.", "MFTHeader")
          if entry_len > alloc_len: #entry_len > entry_alloc_len
              raise HeaderError("Logical size of the MFT is bigger than MFT allocated size.", "MFTHeader")
  
          file_ref, file_seq = get_file_reference(base_record)
          nw_obj = cls((baad, fx_offset, fx_count, lsn, seq_number, hard_link_count,
              first_attr_offset, MftUsageFlags(usage_flags), entry_len, alloc_len,
              file_ref, file_seq, next_attr_id, record_n))
  
          return nw_obj