示例#1
0
        public void Send(ref PacketWriter packet)
        {
            byte[] array = packet.ReadDataToSend(false);
            try
            {
                Log.Message(LogType.Packet, Module.smethod_36 <string>(593506430u), new object[]
                {
                    packet.Opcode,
                    packet.Size
                });
                byte[]       array2;
                int          int_;
                uint         uint_;
                PacketWriter packetWriter2;
                while (true)
                {
IL_155:
                    uint arg_123_0 = 2199929490u;
                    while (true)
                    {
                        uint num;
                        switch ((num = (arg_123_0 ^ 3311393667u)) % 9u)
                        {
                        case 1u:
                        {
                            array2 = null;
                            byte[] array3;
                            int_      = array3.Length;
                            uint_     = WorldClass.Adler32(array3);
                            arg_123_0 = (num * 68058880u ^ 2153398968u);
                            continue;
                        }

                        case 2u:
                            goto IL_155;

                        case 3u:
                        {
                            PacketWriter packetWriter = new PacketWriter(ServerMessage.ResetCompressionContext, true);
                            arg_123_0 = (num * 1834449402u ^ 1107624411u);
                            continue;
                        }

                        case 4u:
                            if (this.Crypt.IsInitialized)
                            {
                                arg_123_0 = (num * 3545686980u ^ 39507906u);
                                continue;
                            }
                            goto IL_374;

                        case 5u:
                        {
                            PacketWriter packetWriter;
                            this.Send(ref packetWriter);
                            packetWriter2 = new PacketWriter(ServerMessage.Compression, true);
                            arg_123_0     = (num * 1258462980u ^ 4146404091u);
                            continue;
                        }

                        case 6u:
                        {
                            byte[] array3;
                            byte[] array4;
                            array3[1] = array4[1];
                            arg_123_0 = (num * 2425788949u ^ 3606182965u);
                            continue;
                        }

                        case 7u:
                        {
                            byte[] array4 = WorldClass.smethod_15((ushort)packet.Opcode);
                            byte[] array3 = new byte[array.Length - 4];
                            WorldClass.smethod_13(array, 4, array3, 0, array3.Length);
                            array3[0] = array4[0];
                            arg_123_0 = (num * 2814429138u ^ 762017105u);
                            continue;
                        }

                        case 8u:
                            goto IL_3F8;
                        }
                        goto Block_4;
                    }
                }
                uint arg_3B6_0;
                while (true)
                {
IL_3B1:
                    uint num;
                    switch ((num = (arg_3B6_0 ^ 3311393667u)) % 13u)
                    {
                    case 0u:
                        array2 = array2.Combine(new byte[]
                        {
                            0,
                            0,
                            255,
                            255
                        });
                        arg_3B6_0 = 4135719112u;
                        continue;

                    case 1u:
                        goto IL_374;

                    case 2u:
                    {
                        WorldClass.smethod_23(packetWriter2, uint_);
                        uint uint_2;
                        WorldClass.smethod_23(packetWriter2, uint_2);
                        WorldClass.smethod_24(packetWriter2, array2);
                        arg_3B6_0 = (num * 4105965725u ^ 4017603929u);
                        continue;
                    }

                    case 3u:
                    {
                        uint uint_2 = WorldClass.Adler32(array2);
                        arg_3B6_0 = (num * 977288196u ^ 864158354u);
                        continue;
                    }

                    case 4u:
                        array[1] = (byte)(255 & array.Length - 4 >> 8);
                        this.Crypt.Encrypt(array, 4);
                        arg_3B6_0 = (num * 3558555324u ^ 1587990696u);
                        continue;

                    case 5u:
                        array     = packetWriter2.ReadDataToSend(false);
                        arg_3B6_0 = (num * 1269215262u ^ 3837774562u);
                        continue;

                    case 6u:
                        arg_3B6_0 = ((((array2[array2.Length - 1] & 8) != 8) ? 3170777306u : 2567516264u) ^ num * 894815154u);
                        continue;

                    case 7u:
                        WorldClass.smethod_25(packet);
                        arg_3B6_0 = (num * 214185292u ^ 269952291u);
                        continue;

                    case 9u:
                        goto IL_3F8;

                    case 10u:
                        array2    = array2.Combine(new byte[1]);
                        arg_3B6_0 = (num * 2738487785u ^ 951591865u);
                        continue;

                    case 11u:
                        goto IL_271;

                    case 12u:
                        WorldClass.smethod_22(packetWriter2, int_);
                        arg_3B6_0 = (num * 891587732u ^ 1040375321u);
                        continue;
                    }
                    break;
                }
                return;

Block_4:
                MemoryStream memoryStream = WorldClass.smethod_16();
                try
                {
                    DeflateStream deflateStream = WorldClass.smethod_17(memoryStream, CompressionLevel.Fastest);
                    try
                    {
                        byte[] array3;
                        WorldClass.smethod_18(deflateStream, array3, 0, array3.Length);
                        while (true)
                        {
IL_1B0:
                            uint arg_197_0 = 3252342619u;
                            while (true)
                            {
                                uint num;
                                switch ((num = (arg_197_0 ^ 3311393667u)) % 3u)
                                {
                                case 1u:
                                    WorldClass.smethod_19(deflateStream);
                                    arg_197_0 = (num * 3667174594u ^ 498565863u);
                                    continue;

                                case 2u:
                                    goto IL_1B0;
                                }
                                goto Block_11;
                            }
                        }
                        Block_11 :;
                    }
                    finally
                    {
                        if (deflateStream != null)
                        {
                            while (true)
                            {
                                IL_1F2 :
                                uint arg_1D9_0 = 2488757830u;
                                while (true)
                                {
                                    uint num;
                                    switch ((num = (arg_1D9_0 ^ 3311393667u)) % 3u)
                                    {
                                    case 0u:
                                        goto IL_1F2;

                                    case 2u:
                                        WorldClass.smethod_20(deflateStream);
                                        arg_1D9_0 = (num * 1032679818u ^ 1481471478u);
                                        continue;
                                    }
                                    goto Block_14;
                                }
                            }
                            Block_14 :;
                        }
                    }
                    array2 = WorldClass.smethod_21(memoryStream);
                }
                finally
                {
                    if (memoryStream != null)
                    {
                        while (true)
                        {
IL_23E:
                            uint arg_225_0 = 4248991174u;
                            while (true)
                            {
                                uint num;
                                switch ((num = (arg_225_0 ^ 3311393667u)) % 3u)
                                {
                                case 1u:
                                    WorldClass.smethod_20(memoryStream);
                                    arg_225_0 = (num * 4155117569u ^ 3966915401u);
                                    continue;

                                case 2u:
                                    goto IL_23E;
                                }
                                goto Block_17;
                            }
                        }
                        Block_17 :;
                    }
                }
                byte[] expr_24E_cp_0 = array2;
                int    expr_24E_cp_1 = 0;
                expr_24E_cp_0[expr_24E_cp_1] -= 1;
IL_271:
                arg_3B6_0 = 2766555372u;
                goto IL_3B1;
IL_374:
                WorldClass.smethod_8(this.clientSocket, array, 0, array.Length, SocketFlags.None);
                arg_3B6_0 = 3877238322u;
                goto IL_3B1;
IL_3F8:
                array[0]  = (byte)(255 & array.Length - 4);
                arg_3B6_0 = 4257648992u;
                goto IL_3B1;
            }
            catch (Exception exception_)
            {
                while (true)
                {
IL_48F:
                    uint arg_41C_0 = 3929711820u;
                    while (true)
                    {
                        uint num;
                        switch ((num = (arg_41C_0 ^ 3311393667u)) % 4u)
                        {
                        case 0u:
                            goto IL_48F;

                        case 2u:
                            WorldClass.smethod_27(this.clientSocket);
                            CharacterHandler.chatRunning = false;
                            arg_41C_0 = (num * 1852355598u ^ 3988322590u);
                            continue;

                        case 3u:
                            Log.Message(LogType.Error, Module.smethod_36 <string>(3490486299u), new object[]
                            {
                                WorldClass.smethod_26(exception_)
                            });
                            Log.Message();
                            arg_41C_0 = (num * 3844434002u ^ 3766579695u);
                            continue;
                        }
                        goto Block_19;
                    }
                }
                Block_19 :;
            }
        }