List of issuesList of issues

#971 forgotten assignment for increment in first line
Author: user BeniBela
Date created:
Type: question
Visibility: Everybody
Assigned to:
Labels: AS3DecompilationObfuscated
State: opened Help

If the first line of a function is memberVariable++; it becomes _loc2_.memberVariable = _loc3_; with an undefined variable loc3. E.g.: trait method Qname(PackageNamespace(""),"onErrorHandler") dispid 0 method name null param Qname(PackageNamespace(""),"ErrorEvent") returns Qname(PackageNamespace(""),"void") body maxstack 3 localcount 4 initscopedepth 5 maxscopedepth 6 code getlocal_0 pushscope getlocal_0 newfunction 8897 pop jump ofs0011 divide getlocal_2 hasnext coerce_a getlocal_2 coerce_a ofs0011:dup setlocal_2 getproperty Qname(PackageNamespace(""),"numTries") increment_i setlocal_3 getlocal_2 getlocal_3 setproperty Qname(PackageNamespace(""),"numTries") jump ofs002a inclocal 2 inclocal 2 getlocal_2 declocal 2 coerce_a getlocal_3 ofs002a:kill 3 kill 2 getlocal_1 callpropvoid Qname(PackageNamespace(""),"stopPropagation") 0 getlocal_0 getproperty Qname(PackageNamespace(""),"numTries") getlocal_0 getproperty Qname(PackageNamespace(""),"maxTries") ifnlt ofs004d getlocal_0 pushnull initproperty Qname(PackageNamespace(""),"status") getlocal_0 callpropvoid Qname(PackageNamespace(""),"load") 0 jump ofs0062 ofs004d:getlocal_0 getlex Qname(PackageNamespace(""),"STATUS_ERROR") initproperty Qname(PackageNamespace(""),"status") getlocal_0 getlocal_1 initproperty Qname(PackageNamespace(""),"errorEvent") getlocal_0 getlocal_0 getproperty Qname(PackageNamespace(""),"errorEvent") callpropvoid Qname(PackageNamespace(""),"_dispatchErrorEvent") 1 ofs0062:returnvoid becomes public function onErrorHandler(param1:ErrorEvent) : void { _loc2_.numTries = _loc3_; param1.stopPropagation(); if(this.numTries < this.maxTries) { this.status = null; this.load(); } else { this.status = STATUS_ERROR; this.errorEvent = param1; this._dispatchErrorEvent(this.errorEvent); } }
Looks like turning on "Automatic deobfuscation" in settings solves the problem. The question is whether the decompiler should handle this outside the deobfuscation mode or not...
State: new→opened
Type: bug→question
Well, in a very old version where it did not do any deobsfucation, it could not show anything. So there seems to be always some deobfuscation enabled
Google Translate: Translate to Czech Translate to Slovak Translate to Russian Translate to Hungarian Translate to Swedish Translate to French Translate to German Translate to Spanish Translate to Italian
Change style: oceanic classic