JPEXS Free Flash Decompiler Issue Tracker

If you are looking for the decompiler itself, visit https://github.com/jindrapetrik/jpexs-decompiler

NEW : We have got a new blog where we post some interesting SWF internals info.

List of issuesList of issues

#1034 AVM2DeobfuscatorRegisters is slow
Author: developer honfika
Date created:
Type: feature
Visibility: Everybody
Assigned to:
Labels: DeobfuscationPerformance
State: new Help

AVM2DeobfuscatorRegisters is slow. Sometimes 2.5 times slower than AVM2Code.toGraphTargetItems (which calculates the loops) Is it really needed to clone the method body in a loop? AVM2Code.toGraphTargetItems: count: 3724 / total: 7341ms / min: 16us / max: 803846us / avg: 1971us Graph.graphToString: count: 3724 / total: 625ms / min: 0us / max: 82620us / avg: 167us MethodBody.toString: count: 3111 / total: 524ms / min: 0us / max: 81652us / avg: 168us AVM2DeobfuscatorSimple: count: 3724 / total: 1612ms / min: 2us / max: 151475us / avg: 432us AVM2DeobfuscatorRegisters: count: 3724 / total: 17331ms / min: 3us / max: 3742616us / avg: 4654us AVM2DeobfuscatorJumps: count: 3724 / total: 305ms / min: 0us / max: 42089us / avg: 81us MethodBody.convert: count: 3724 / total: 28530ms / min: 35us / max: 4579697us / avg: 7661us (MethodBody.convert includes all others except MethodBody.toString)
developer
I did a performance test with all files from the tracker (except 3-4 really big) Now the slowest part of the AS3 decompilation is definitely the AVM2DeobfuscatorRegisters AS1/2: ASMSource.getActions: count: 62756 / total: 1131253ms / min: 13us / max: 30003794us / avg: 18026us ActionDeobfuscator: count: 62752 / total: 312993ms / min: 1us / max: 7945848us / avg: 4987us ActionDeobfuscatorSimple: count: 62756 / total: 789267ms / min: 1us / max: 30099851us / avg: 12576us Action.actionsToSource: count: 62756 / total: 249034ms / min: 13us / max: 10636629us / avg: 3968us MethodBody.convert: count: 947464 / total: 20340548ms / min: 6us / max: 98408308us / avg: 21468us AVM2DeobfuscatorSimple: count: 947464 / total: 187510ms / min: 0us / max: 7143753us / avg: 197us AVM2DeobfuscatorRegisters: count: 947464 / total: 13814968ms / min: 1us / max: 33566208us / avg: 14580us AVM2DeobfuscatorJumps: count: 947307 / total: 61579ms / min: 0us / max: 1636974us / avg: 65us AVM2Code.toGraphTargetItems: count: 947307 / total: 5888863ms / min: 2us / max: 70696183us / avg: 6216us Graph.graphToString: count: 947187 / total: 252221ms / min: 0us / max: 30000022us / avg: 266us MethodBody.toString: count: 842489 / total: 79712ms / min: 0us / max: 4818244us / avg: 94us