code: def _FindInKey(self, registry_key, find_specs, search_depth):
      
      sub_find_specs = []
      for find_spec in find_specs:
        match, key_path_match = find_spec.Matches(registry_key, search_depth)
        if match:
          yield registry_key.path
  
        # pylint: disable=singleton-comparison
        if key_path_match != False and not find_spec.AtMaximumDepth(search_depth):
          sub_find_specs.append(find_spec)
  
      if sub_find_specs:
        search_depth += 1
        for sub_registry_key in registry_key.GetSubkeys():
          for matching_path in self._FindInKey(
              sub_registry_key, sub_find_specs, search_depth):
            yield matching_path
docs: Searches for matching keys within the Windows Registry key.
  
      Args:
        registry_key (WinRegistryKey): Windows Registry key.
        find_specs (list[FindSpec]): find specifications.
        search_depth (int): number of key path segments to compare.
  
      Yields:
        str: key path of a matching Windows Registry key.