Extractor_Serializer.NewParser.ParseFunctionSet C# (CSharp) Method

ParseFunctionSet() private method

The parse function set.
private ParseFunctionSet ( List retlist ) : void
retlist List /// The retlist. ///
return void
        private void ParseFunctionSet(List<Event> retlist)
        {
            int eventTypeValue = this.br.ReadInt32();
            int num = this.br.Read3F1();
            List<Function> list = new List<Function>();
            int arg_2F_0 = 0;
            bool R;
            int num2 = num - 1;
            int num3 = arg_2F_0;
            while (true)
            {
                int arg_1C3_0 = num3;
                int num4 = num2;
                if (arg_1C3_0 > num4)
                {
                    break;
                }

                Function func = new Function();

                func.FunctionType = this.br.ReadInt32();
                this.br.Skip(8);
                int num5 = this.br.ReadInt32(); // Reqs
                bool flag = num5 > 0;
                if (flag)
                {
                    foreach (Requirement ur in this.ReadReqs(num5))
                    {
                        func.Requirements.Add(ur);
                    }
                }

                func.TickCount = this.br.ReadInt32();
                func.TickInterval = (uint)this.br.ReadInt32();
                func.Target = this.br.ReadInt32();

                this.br.Skip(4);
                R = false;
                foreach (object oo in this.ParseArgs(func.FunctionType, ref R))
                {
                    MessagePackObject x = MessagePackObject.FromObject(oo);
                    func.Arguments.Values.Add(x);
                }

                list.Add(func);
                num3++;
            }

            Event aoe = new Event();
            aoe.EventType = (EventType)Enum.ToObject(typeof(EventType), eventTypeValue);

            foreach (Function ff in list)
            {
                aoe.Functions.Add(ff);
            }

            if (retlist == null)
            {
                retlist = new List<Event>();
            }

            retlist.Add(aoe);
        }