protected override bool deobfuscate(Block block)
        {
            bool changed = false;

            constantsReader = null;
            var instrs = block.Instructions;

            for (int i = 0; i < instrs.Count; i++)
            {
                bool ch = deobfuscate1(block, i);
                if (ch)
                {
                    changed = true;
                    continue;
                }

                ch = deobfuscate2(block, i);
                if (ch)
                {
                    changed = true;
                    continue;
                }

                ch = deobfuscate3(block, i);
                if (ch)
                {
                    changed = true;
                    continue;
                }
            }

            return(changed);
        }
        protected override bool Deobfuscate(Block block)
        {
            bool modified = false;

            constantsReader = null;
            var instrs = block.Instructions;
            for (int i = 0; i < instrs.Count; i++) {
                bool ch = Deobfuscate1(block, i);
                if (ch) {
                    modified = true;
                    continue;
                }

                ch = Deobfuscate2(block, i);
                if (ch) {
                    modified = true;
                    continue;
                }

                ch = Deobfuscate3(block, i);
                if (ch) {
                    modified = true;
                    continue;
                }
            }

            return modified;
        }
 DsConstantsReader getConstantsReader(Block block)
 {
     if (constantsReader != null)
     {
         return(constantsReader);
     }
     return(constantsReader = new DsConstantsReader(block.Instructions));
 }
 DsConstantsReader GetConstantsReader(Block block)
 {
     if (constantsReader != null)
         return constantsReader;
     return constantsReader = new DsConstantsReader(block.Instructions);
 }