static void Main(string[] args) { Console.WriteLine(">> Loading configuration options..."); if (!Config.Load(args)) { return; } if (Config.NoCmsg && Config.NoSmsg) { Logger.WriteConsoleLine("Please give me something to do."); Config.ShowHelp(); return; } Logger.CreateOutputStream(Config.OutputFile); Console.WriteLine(">> Opening Wow client..."); ClientStream = new BinaryReader(File.OpenRead(Config.Executable)); if (!BaseStream.CanRead) { return; } ClientBytes = File.ReadAllBytes(Config.Executable); Disasm = new UnmanagedBuffer(ClientBytes); Env = Emulator.Create(BaseStream); if (!Config.NoSmsg) { Console.WriteLine(">> Discovering JAM groups..."); foreach (var pattern in ClientGroupPatterns) // Load jam groups... { var offsets = ClientBytes.FindPattern(pattern, 0xFF); if (offsets.Count == 0) { Console.WriteLine(@"Could not find group name "" {0}""", System.Text.Encoding.ASCII.GetString(pattern.Skip(1).ToArray())); return; } else { Console.WriteLine(@"Found JAM Group "" {0}""", System.Text.Encoding.ASCII.GetString(pattern.Skip(1).ToArray())); Dispatchers.Add(new JamDispatch((int)(offsets[0] + 1))); } } } if (!Config.NoGhNames && !Opcodes.TryPopulate()) { return; } if (!Config.NoSmsg) { SMSG.Dump(); } if (!Config.NoCmsg) { CMSG.Dump(Config.SpecificOpcodeValue); } }