From 0054ea206709fc39e04559949297479bb0ed9d52 Mon Sep 17 00:00:00 2001
From: Rossen Georgiev <rossen@rgp.io>
Date: Thu, 11 Feb 2021 22:27:24 +0000
Subject: [PATCH] refactor decrypt_filenames() for speed

---
 steam/core/manifest.py | 23 +++++++----------------
 1 file changed, 7 insertions(+), 16 deletions(-)

diff --git a/steam/core/manifest.py b/steam/core/manifest.py
index 8880de2..8bea8ab 100644
--- a/steam/core/manifest.py
+++ b/steam/core/manifest.py
@@ -190,23 +190,14 @@ class DepotManifest(object):
         if not self.metadata.filenames_encrypted:
             return
 
-        for mapping in self.payload.mappings:
-            filename = b64decode(mapping.filename)
-
-            if mapping.linktarget:
-                linktarget = b64decode(mapping.linktarget)
-
-            try:
-                filename = symmetric_decrypt(filename, depot_key)
-                if mapping.linktarget:
-                    linktarget = symmetric_decrypt(linktarget, depot_key)
-            except Exception:
-                raise RuntimeError("Unable to decrypt filename for depot manifest")
-
-            mapping.filename = filename
+        try:
+            for m in self.payload.mappings:
+                m.filename = symmetric_decrypt(b64decode(m.filename), depot_key)
 
-            if mapping.linktarget:
-                mapping.linktarget = linktarget
+                if m.linktarget:
+                    m.linktarget = symmetric_decrypt(b64decode(m.linktarget), depot_key)
+        except Exception:
+            raise RuntimeError("Unable to decrypt filename for depot manifest")
 
         self.metadata.filenames_encrypted = False