docs: def _decrypt_entity(entity, encrypted_properties_list, content_encryption_key, entityIV, isJavaV1):
      '''
      Decrypts the specified entity using AES256 in CBC mode with 128 bit padding. Unwraps the CEK 
      using either the specified KEK or the key returned by the key_resolver. Properties 
      specified in the encrypted_properties_list, will be decrypted and decoded to utf-8 strings.
  
      :param entity:
          The entity being retrieved and decrypted. Could be a dict or an entity object.
      :param list encrypted_properties_list:
          The encrypted list of all the properties that are encrypted.
      :param bytes[] content_encryption_key:
          The key used internally to encrypt the entity. Extrated from the entity metadata.
      :param bytes[] entityIV:
          The intialization vector used to seed the encryption algorithm. Extracted from the
          entity metadata.
      :return: The decrypted entity
      :rtype: Entity
      '''
  
      _validate_not_none('entity', entity)
  
      decrypted_entity = deepcopy(entity)
      try:
          for property in entity.keys():
              if property in encrypted_properties_list:
                  value = entity[property]
  
                  propertyIV = _generate_property_iv(entityIV,
                                                     entity['PartitionKey'], entity['RowKey'],
                                                     property, isJavaV1)
                  cipher = _generate_AES_CBC_cipher(content_encryption_key,
                                                    propertyIV)
  
                  # Decrypt the property.
                  decryptor = cipher.decryptor()
                  decrypted_data = (decryptor.update(value.value) + decryptor.finalize())
  
                  # Unpad the data.
                  unpadder = PKCS7(128).unpadder()
                  decrypted_data = (unpadder.update(decrypted_data) + unpadder.finalize())
  
                  decrypted_data = decrypted_data.decode('utf-8')
  
                  decrypted_entity[property] = decrypted_data
  
          decrypted_entity.pop('_ClientEncryptionMetadata1')
          decrypted_entity.pop('_ClientEncryptionMetadata2')
          return decrypted_entity
      except:
          raise AzureException(_ERROR_DECRYPTION_FAILURE)