docs: def getAssemblies(pth):
      """
      Return the dependent assemblies of a binary.
      """
      if not os.path.isfile(pth):
          pth = check_extract_from_egg(pth)[0][0]
      if pth.lower().endswith(".manifest"):
          return []
      # check for manifest file
      manifestnm = pth + ".manifest"
      if os.path.isfile(manifestnm):
          fd = open(manifestnm, "rb")
          res = {RT_MANIFEST: {1: {0: fd.read()}}}
          fd.close()
      elif not winresource:
          # resource access unavailable (needs pywin32)
          return []
      else:
          # check the binary for embedded manifest
          try:
              res = GetManifestResources(pth)
          except winresource.pywintypes.error, exc:
              if exc.args[0] == winresource.ERROR_BAD_EXE_FORMAT:
                  logger.info('Cannot get manifest resource from non-PE '
                              'file %s', pth)
                  return []
              raise
      rv = []
      if RT_MANIFEST in res and len(res[RT_MANIFEST]):
          for name in res[RT_MANIFEST]:
              for language in res[RT_MANIFEST][name]:
                  # check the manifest for dependent assemblies
                  try:
                      manifest = Manifest()
                      manifest.filename = ":".join([pth, str(RT_MANIFEST),
                                                    str(name), str(language)])
                      manifest.parse_string(res[RT_MANIFEST][name][language],
                                            False)
                  except Exception, exc:
                      logger.error("Can not parse manifest resource %s, %s"
                                   "from %s", name, language, pth)
                      logger.exception(exc)
                  else:
                      if manifest.dependentAssemblies:
                          logger.debug("Dependent assemblies of %s:", pth)
                          logger.debug(", ".join([assembly.getid()
                                                 for assembly in
                                                 manifest.dependentAssemblies]))
                      rv.extend(manifest.dependentAssemblies)
      return rv