static PackageGame DetermineGame(int fileVersion, int licenseMode, bool isEncrypted)
{
int v = fileVersion, m = licenseMode;
if (m == 0) {
if (v == 76) return PackageGame.HarryPotterSorcerersStone;
if (v == 79) return PackageGame.HarryPotterChamberOfSecrets;
if (v >= 83 || isEncrypted) return PackageGame.Undying;
if (v >= 68) return PackageGame.UnrealTournament;
return PackageGame.Unreal;
} else if (m == 25 /* build 927 */ || m == 28 /* demo and retail */ || m == 29 /* patch 1 */) return PackageGame.UnrealTournament2003;
else if (m == 2481 /* v110 */ || (m == 635 || m == 763) /* v83 */) return PackageGame.Unreal2;
else if (v == 118 && (m == 8 || m == 9 || (m >= 16 && m <= 19))) return PackageGame.ArmyOperations;
else if (m == 8 && v == 120) return PackageGame.Devastation;
else if (m == 30 && v == 119) return PackageGame.UnrealChampionship;
else if (m == 58) return PackageGame.Borderlands;
else if (m == 133) return PackageGame.ThiefDeadlyShadows;
return PackageGame.Unknown;
}