def METHOD_NAME(self, data, atc_mac):
    """Try to find encryption key for current device"""
    try:
        key = self.aeskeys[atc_mac]
        if len(key) != 16:
            _LOGGER.error("Encryption key should be 16 bytes (32 characters) long")
    except KeyError:
        # no encryption key found
        _LOGGER.error("No encryption key found for ATC device with MAC: %s", to_mac(atc_mac))
        return None
    # prepare the data for decryption
    nonce = b"".join([atc_mac[::-1], data[:5]])
    cipherpayload = data[5:-4]
    aad = b"\x11"
    token = data[-4:]
    cipher = AES.new(key, AES.MODE_CCM, nonce=nonce, mac_len=4)
    cipher.update(aad)
    # decrypt the data
    try:
        decrypted_payload = cipher.decrypt_and_verify(cipherpayload, token)
    except ValueError as error:
        _LOGGER.warning("Decryption failed: %s", error)
        _LOGGER.debug("token: %s", token.hex())
        _LOGGER.debug("nonce: %s", nonce.hex())
        _LOGGER.debug("encrypted_payload: %s", cipherpayload.hex())
        return None
    if decrypted_payload is None:
        _LOGGER.warning(
            "Decryption failed for %s, decrypted payload is None",
            to_mac(atc_mac),
        )
        return None
    return decrypted_payload