public static void Parse(byte[] data, TreeNode node) { var bb = new BitBuffer(data); while (bb.BitsLeft() > 6) { var type = bb.ReadBits(6); MsgHandler handler; if (Handlers.TryGetValue(type, out handler)) { var sub = new TreeNode(handler.Method.Name); node.Nodes.Add(sub); handler(bb, sub); } else { node.Nodes.Add("unknown message type " + type).ForeColor = Color.Crimson; break; } } }