private NadeoPakFolder[] ReadFolders(GameBoxReader r) { var numFolders = r.ReadInt32(); var folders = new NadeoPakFolder[numFolders]; for (var i = 0; i < numFolders; i++) { var parentFolderIndex = r.ReadInt32(); // index into folders; -1 if this is a root folder var name = r.ReadString(); var folder = new NadeoPakFolder(name, parentFolderIndex == -1 ? null : folders[parentFolderIndex]); if (parentFolderIndex == -1) { Folders.Add(folder); } else { folders[parentFolderIndex].Folders.Add(folder); } folders[i] = folder; } if (folders.Length > 2 && folders[2].Name.Length > 4) { byte[] nameBytes = Encoding.Unicode.GetBytes(folders[2].Name); blowfish.Initialize(nameBytes, 4, 4); } return(folders); }