BattleNet.GameServer.GetPacketSize C# (CSharp) Method

GetPacketSize() private method

private GetPacketSize ( List input, Int32 &output ) : bool
input List
output System.Int32
return bool
        bool GetPacketSize(List<byte> input, out Int32 output)
        {
            byte identifier = input[0];

            Int32 size = input.Count;

            switch(identifier)
            {
            case 0x26:
                    if (GetChatPacketSize(input,out output))
                    return true;
                break;
            case 0x5b:
                if(size >= 3)
                {
                    output = BitConverter.ToInt16(input.ToArray(), 1);
                    return true;
                }
                break;
            case 0x94:
                if(size >= 2)
                {
                    output = input[1] * 3 + 6;
                    return true;
                }
                break;
            case 0xa8:
            case 0xaa:
                if(size >= 7)
                {
                    output = (byte)input[6];
                    return true;
                }
                break;
            case 0xac:
                if(size >= 13)
                {
                    output = (byte)input[12];
                    return true;
                }
                break;
            case 0xae:
                if(size >= 3)
                {
                    output = 3 + BitConverter.ToInt16(input.ToArray(), 1);
                    return true;
                }
                break;
            case 0x9c:
                if(size >= 3)
                {
                    output = input[2];
                    return true;
                }
                break;
            case 0x9d:
                if(size >= 3)
                {
                    output = input[2];
                    return true;
                }
                break;
            default:
                if(identifier < packetSizes.Length)
                {
                    output = packetSizes[identifier];
                    return output != 0;
                }
                break;
            }
            output = 0;
            return false;
        }