public void deobfuscate(ScopeBlock scopeBlock) { while (true) { var switchObfuscationInfo = new SwitchObfuscationInfo((instr) => getLocalVar(instr)); if (!findSwitchObfuscation(scopeBlock, switchObfuscationInfo)) break; switchObfuscationInfo.fixSwitchBranches(scopeBlock); scopeBlock.removeDeadBlocks(new List<Block>(switchObfuscationInfo.SwitchTargetBlocks)); scopeBlock.mergeBlocks(); } }