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 issues#1034 AVM2DeobfuscatorRegisters is slow
Author: honfika
Date created:
Type: feature
Visibility: Everybody
Assigned to:
Labels: DeobfuscationPerformance
State: new
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)
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