def old_decode_aes(key, iv_plus_encrypted):
    """
    Utility method to decode a payload consisting of the hexed IV + the hexed ciphertext using
    the given key. See above for more details.

    :param key: string, <= 32 bytes long
    :param iv_plus_encrypted: string, a hexed IV + hexed ciphertext
    """
    # grab first 16 bytes (aka 32 characters of hex) - that's the IV
    hexed_iv = iv_plus_encrypted[:32]
    # grab everything else - that's the ciphertext (aka encrypted message)
    hexed_ciphertext = iv_plus_encrypted[32:]
    # unhex the iv and ciphertext
    iv = binascii.unhexlify(hexed_iv)
    ciphertext = binascii.unhexlify(hexed_ciphertext)
    # set up the correct AES cipher object
    cipher = AES.new(ensure_bytes(old_pad(key)), mode=AES.MODE_CBC, IV=iv)
    # decrypt!
    plaintext = cipher.decrypt(ciphertext)
    # return the unpadded version of this
    return old_unpad(plaintext)