public static void HandleChatMessageSay(ref PacketReader packet, WorldClass session) { BitUnpack arg_0F_0 = new BitUnpack(packet); int num = packet.Read <int>(); int num2 = (int)arg_0F_0.GetBits <byte>(8) << 1; bool bit = arg_0F_0.GetBit(); ChatMessageValues chatMessageValues; while (true) { IL_10D: uint arg_E0_0 = 325641967u; while (true) { uint num3; switch ((num3 = (arg_E0_0 ^ 1114592966u)) % 8u) { case 0u: goto IL_10D; case 1u: { string text = packet.ReadString((uint)(bit ? ((byte)num2 + 1) : ((byte)num2))); arg_E0_0 = 1695780296u; continue; } case 2u: return; case 3u: { string text; arg_E0_0 = ((ChatCommandParser.CheckForCommand(text) ? 3993131816u : 2950447498u) ^ num3 * 3295186339u); continue; } case 4u: { string text; ChatCommandParser.ExecuteChatHandler2(text, Manager.WorldMgr.GetSession2(session.Character.Guid)); arg_E0_0 = (num3 * 451064634u ^ 332353724u); continue; } case 6u: { string text; chatMessageValues = new ChatMessageValues(MessageType.ChatMessageSay, text, true, true, session.Character.Name); chatMessageValues.Language = (byte)num; arg_E0_0 = (num3 * 3671775661u ^ 3376883115u); continue; } case 7u: { string text; ChatCommandParser.ExecuteChatHandler(text, session); arg_E0_0 = (num3 * 3654367289u ^ 3353498485u); continue; } } goto Block_3; } } Block_3: ChatHandler.SendMessage(ref session, chatMessageValues, null); }