code: def get_vendor(data):
      
      if len(data) < 3:
          return dict(('Vendor specific: <too short> data', ' '.join(format(x, '02x'))) for x in data)
      key = data[3]
  
      if bytes(data[:3]) == ms_oui:
          if key in wifiprinters and wifiprinters[key].flags & 1:
              return get_ie(wifiprinters[key], key, data[4:])
          return dict(('MS/WiFi {0:02x}, data'.format(key), ' '.join(format(x, '02x'))) for x in data[4:])
  
      if bytes(data[:3]) == wfa_oui:
          if key in wfa_printers and wfa_printers[key].flags & 1:
              return get_ie(wfa_printers[key], key, data[4:])
          return dict(('WFA {0:02x}, data'.format(key), ' '.join(format(x, '02x'))) for x in data[4:])
  
      unknown_key = 'Vendor specific: OUI {0:02x}:{1:02x}:{2:02x}, data'.format(data[0], data[1], data[2])
      unknown_value = ' '.join(format(x, '02x') for x in data[3:])
      return {unknown_key: unknown_value}
docs: http://git.kernel.org/cgit/linux/kernel/git/jberg/iw.git/tree/scan.c?id=v3.17#n1401.
  
      Positional arguments:
      data -- bytearray data to read.
  
      Returns:
      Dictionary of parsed data with string keys.