DCGen1 getDCGen1(TypeDef type)
        {
            var method = getMoveNext(type);

            if (method == null)
            {
                return(null);
            }
            simpleDeobfuscator.deobfuscate(method);
            var swLabels = getSwitchLabels(method);

            if (swLabels == null || swLabels.Count < 7)
            {
                return(null);
            }

            var dcGen = new DCGen1();

            if (!getMagicDC1(method, swLabels[0], out dcGen.magic1))
            {
                return(null);
            }
            if (!getMagicDC1(method, swLabels[1], out dcGen.magic2))
            {
                return(null);
            }
            if (!getMagicXorDC1(method, swLabels[2], out dcGen.magic3))
            {
                return(null);
            }
            if (!getMagicDC1(method, swLabels[3], out dcGen.magic4))
            {
                return(null);
            }
            if (!getMagicDC1(method, swLabels[4], out dcGen.magic5))
            {
                return(null);
            }
            if (!getMagicDC1(method, swLabels[5], out dcGen.magic6))
            {
                return(null);
            }
            if (!getMagicXorDC1(method, swLabels[6], out dcGen.magic7))
            {
                return(null);
            }

            return(dcGen);
        }
        DCGen1 getDCGen1(TypeDef type)
        {
            var method = getMoveNext(type);
            if (method == null)
                return null;
            simpleDeobfuscator.deobfuscate(method);
            var swLabels = getSwitchLabels(method);
            if (swLabels == null || swLabels.Count < 7)
                return null;

            var dcGen = new DCGen1();
            if (!getMagicDC1(method, swLabels[0], out dcGen.magic1))
                return null;
            if (!getMagicDC1(method, swLabels[1], out dcGen.magic2))
                return null;
            if (!getMagicXorDC1(method, swLabels[2], out dcGen.magic3))
                return null;
            if (!getMagicDC1(method, swLabels[3], out dcGen.magic4))
                return null;
            if (!getMagicDC1(method, swLabels[4], out dcGen.magic5))
                return null;
            if (!getMagicDC1(method, swLabels[5], out dcGen.magic6))
                return null;
            if (!getMagicXorDC1(method, swLabels[6], out dcGen.magic7))
                return null;

            return dcGen;
        }