private boolean func_72621_a(DatagramPacket par1DatagramPacket) throws IOException
    {
        byte abyte0[] = par1DatagramPacket.getData();
        int i = par1DatagramPacket.getLength();
        SocketAddress socketaddress = par1DatagramPacket.getSocketAddress();
        func_72607_a((new StringBuilder()).append("Packet len ").append(i).append(" [").append(socketaddress).append("]").toString());

        if (3 > i || -2 != abyte0[0] || -3 != abyte0[1])
        {
            func_72607_a((new StringBuilder()).append("Invalid packet [").append(socketaddress).append("]").toString());
            return false;
        }

        func_72607_a((new StringBuilder()).append("Packet '").append(RConUtils.func_72663_a(abyte0[2])).append("' [").append(socketaddress).append("]").toString());

        switch (abyte0[2])
        {
            case 9:
                func_72622_d(par1DatagramPacket);
                func_72607_a((new StringBuilder()).append("Challenge [").append(socketaddress).append("]").toString());
                return true;

            case 0:
                if (!func_72627_c(par1DatagramPacket).booleanValue())
                {
                    func_72607_a((new StringBuilder()).append("Invalid challenge [").append(socketaddress).append("]").toString());
                    return false;
                }

                if (15 == i)
                {
                    func_72620_a(func_72624_b(par1DatagramPacket), par1DatagramPacket);
                    func_72607_a((new StringBuilder()).append("Rules [").append(socketaddress).append("]").toString());
                }
                else
                {
                    RConOutputStream rconoutputstream = new RConOutputStream(1460);
                    rconoutputstream.func_72667_a(0);
                    rconoutputstream.func_72670_a(func_72625_a(par1DatagramPacket.getSocketAddress()));
                    rconoutputstream.func_72671_a(field_72635_k);
                    rconoutputstream.func_72671_a("SMP");
                    rconoutputstream.func_72671_a(field_72632_l);
                    rconoutputstream.func_72671_a(Integer.toString(func_72603_d()));
                    rconoutputstream.func_72671_a(Integer.toString(field_72634_j));
                    rconoutputstream.func_72668_a((short)field_72637_i);
                    rconoutputstream.func_72671_a(field_72643_q);
                    func_72620_a(rconoutputstream.func_72672_a(), par1DatagramPacket);
                    func_72607_a((new StringBuilder()).append("Status [").append(socketaddress).append("]").toString());
                }

                break;
        }

        return true;
    }