def METHOD_NAME(args):
    if args.key is not None:
        key = b64decode(args.key.encode("utf-8"))
    elif args.password is not None:
        key = kdf_gen_key(args.password, args.kdf_salt, args.kdf_iters)
    else:
        raise ValueError("Neither password nor key is provided")
    tag = args.gcm_tag.encode("utf-8")
    outputBuffer = io.BytesIO()
    with Path(args.infile).open("rb") as in_:
        decorated(key, in_, outputBuffer, tag)
    with Path(args.outfile).open("wb") as out:
        out.write(outputBuffer.getbuffer())