def process_record(self, item):
        """
        Function that is called to process the items obtained by the LDAP search. All items are
        written to the log file per default. Items that contain one of the keywords configured
        within this module are also printed to stdout.

        On large Active Directories there seems to be a problem with duplicate user entries. For
        some reason the process_record function is called multiple times with the same user entry.
        Not sure whether this is a fault by this module or by impacket. As a workaround, this
        function adds each new account name to a set and skips accounts that have already been added.
        """
        if not isinstance(item, ldapasn1.SearchResultEntry):
            return

        sAMAccountName = ""
        description = ""

        try:
            for attribute in item["attributes"]:
                if str(attribute["type"]) == "sAMAccountName":
                    sAMAccountName = attribute["vals"][0].asOctets().decode("utf-8")
                elif str(attribute["type"]) == "description":
                    description = attribute["vals"][0].asOctets().decode("utf-8")
        except Exception as e:
            entry = sAMAccountName or "item"
            self.context.error(f"Skipping {entry}, cannot process LDAP entry due to error: '{str(e)}'")

        if description and sAMAccountName not in self.account_names:
            self.desc_count += 1
            self.append_to_log(sAMAccountName, description)

            if self.highlight(description):
                self.context.log.highlight(f"User: {sAMAccountName} - Description: {description}")

            self.account_names.add(sAMAccountName)

        Function that is called to process the items obtained by the LDAP search. All items are
        written to the log file per default. Items that contain one of the keywords configured
        within this module are also printed to stdout.

        On large Active Directories there seems to be a problem with duplicate user entries. For
        some reason the process_record function is called multiple times with the same user entry.
        Not sure whether this is a fault by this module or by impacket. As a workaround, this
        function adds each new account name to a set and skips accounts that have already been added.
        
cme/modules/user_desc.py