Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- getSigData = function (src:IDataInput, forcePosition:Boolean=true):Object
- {
- var swfHeader:String;
- var swfFlashVersion:uint;
- var swfLength:uint;
- var nbBits:int;
- var swfFrameRate:uint;
- var swfFrameCount:uint;
- var tagInfo:int;
- var tagType:int;
- var tagLen:int;
- var sigResult:Object;
- var metadata:String;
- try
- {
- if (forcePosition)
- {
- src["position"] = 0;
- };
- src["endian"] = Endian["LITTLE_ENDIAN"];
- swfHeader = src["readUTFBytes"](3);
- swfFlashVersion = src["readUnsignedByte"]();
- swfLength = src["readUnsignedInt"]();
- nbBits = (src["readUnsignedByte"]() >> 3);
- src["position"] = (src["position"] + Math["ceil"](((nbBits * 4) / 8)));
- swfFrameRate = ((src["readUnsignedByte"]() / 0xFF) + src["readByte"]());
- swfFrameCount = src["readUnsignedShort"]();
- while (src["bytesAvailable"] != 0)
- {
- tagInfo = src["readUnsignedShort"]();
- tagType = (tagInfo >> 6);
- tagLen = (tagInfo & ((1 << 6) - 1));
- if (tagLen == 63)
- {
- tagLen = src["readInt"]();
- };
- if (tagType == 77)
- {
- sigResult = new Object();
- metadata = src["readUTFBytes"](tagLen);
- if (metadata["substr"](0, 4) == "SMD%")
- {
- sigResult["signature"] = _SELOGWMWOGX["decodeToByteArray"](metadata["substr"](4));
- sigResult["signedData"] = new (getDefinitionByName("flash.utils.ByteArray"))();
- var _local_4:* = src;
- (_local_4["readBytes"](sigResult["signedData"]));
- return (sigResult);
- };
- }
- else
- {
- src["position"] = (src["position"] + tagLen);
- };
- if (((tagType == 0) || (tagType == 82)))
- {
- return (null);
- };
- };
- return (null);
- }
- catch(err:MemoryError)
- {
- panic();
- return (null);
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement