void (RootStatement root, StructMethod mt) { CancellationManager cancellationManager = DecompilerContext.getCancellationManager(); FlattenStatementsHelper flatthelper = new FlattenStatementsHelper(); DirectGraph dgraph = flatthelper.buildDirectGraph(root); HashSet<Integer> setInit = new HashSet<>(); for (int i = 0; i < 64; i++) { setInit.add(i); } factory = new FastSparseSetFactory<>(setInit); extraVarVersions.put(dgraph.first.id, createFirstMap(mt, root)); setCatchMaps(root, dgraph, flatthelper); // try { // DotExporter.toDotFile(dgraph, new File("c:\\Temp\\gr12_my.dot")); // } catch(Exception ex) {ex.printStackTrace();} HashSet<String> updated = new HashSet<>(); do { // System.out.println("~~~~~~~~~~~~~ \r\n"+root.toJava()); ssaStatements(dgraph, updated, false); cancellationManager.checkCanceled(); // System.out.println("~~~~~~~~~~~~~ \r\n"+root.toJava()); } while (!updated.isEmpty()); ssaStatements(dgraph, updated, true); ssuversions.initDominators(); }