Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package {
- import flash.external.*;
- public class ExternalCall {
- public static function Simple(_arg1:string):void{
- call(_arg1);
- }
- public static function UploadStart(_arg1:string, _arg2:object):void{
- call(_arg1, EscapeMessage(_arg2));
- }
- public static function UploadProgress(_arg1:string, _arg2:uint, _arg3:uint):void{
- call(_arg1, EscapeMessage(_arg2), EscapeMessage(_arg3));
- }
- public static function UploadSuccess(_arg1:string, _arg2:string="", _arg3:object=""):void{
- call(_arg1, EscapeMessage(_arg2), _arg3);
- }
- public static function UploadError(_arg1:string, _arg2:number, _arg3:string=""):void{
- call(_arg1, EscapeMessage(_arg2), EscapeMessage(_arg3));
- }
- public static function UploadComplete(_arg1:string, _arg2:object):void{
- call(_arg1, _arg2);
- }
- public static function Debug(_arg1:string, _arg2:string):void{
- call(_arg1, EscapeMessage(_arg2));
- }
- public static function Bool(_arg1:string):boolean{
- return (call(_arg1));
- }
- private static function call(... _args):boolean{
- var _local2:array;
- var _local3:RegExp;
- if (ExternalInterface.available){
- _local2 = (_args as array);
- _local3 = /[^().a-z0-9_]/gi;
- _local2[0] = _local2[0].replace(_local3, "");
- return (ExternalInterface.call.apply(null, _local2));
- };
- return (false);
- }
- private static function EscapeMessage(_arg1){
- if ((_arg1 is string)){
- _arg1 = EscapeString(_arg1);
- } else {
- if ((_arg1 is array)){
- _arg1 = EscapeArray(_arg1);
- } else {
- if ((_arg1 is object)){
- _arg1 = EscapeObject(_arg1);
- };
- };
- };
- return (_arg1);
- }
- private static function EscapeString(_arg1:string):string{
- var _local2:RegExp = /\\/g;
- return (_arg1.replace(_local2, "\\\\"));
- }
- private static function EscapeArray(_arg1:array):array{
- var _local2:uint = _arg1.length;
- var _local3:uint;
- while (_local3 < _local2) {
- _arg1[_local3] = EscapeMessage(_arg1[_local3]);
- _local3++;
- };
- return (_arg1);
- }
- private static function EscapeObject(_arg1:object):object{
- var _local2:string;
- for (_local2 in _arg1) {
- _arg1[_local2] = EscapeMessage(_arg1[_local2]);
- };
- return (_arg1);
- }
- }
- }//package
- ?package {
- import flash.events.*;
- import flash.utils.*;
- import flash.net.*;
- import flash.display.*;
- import by.blooddy.crypto.image.*;
- import flash.external.*;
- import flash.system.*;
- import flash.ui.*;
- public class Main extends Sprite {
- public const version:string = " 1.1";
- private const EXIF_MARKER:array;
- private var insideFrame:boolean = false;
- private var area:Sprite;
- private var _file_ref:FileReferenceList;
- private var files:array;
- private var file:FileReference;
- private var totalSize:number = 0;
- private var loadedSize:number = 0;
- private var totalCount:number = 0;
- private var loadedCount:number = 0;
- private var _valid_file_extensions:array;
- private var postData:UploadPostData;
- private var filesList:array;
- private var uploadStarted:boolean = false;
- public var config:object;
- private var ERROR_CODE_SIZE_TOO_BIG:number = 100;
- private var ERROR_CODE_SIZE_ZERO_BYTE:number = 110;
- private var ERROR_CODE_INVALID_FILETYPE:number = 120;
- private var ERROR_CODE_HTTP_ERROR:number = 200;
- private var ERROR_CODE_MISSING_UPLOAD_URL:number = 210;
- private var ERROR_CODE_IO_ERROR:number = 220;
- private var ERROR_CODE_SECURITY_ERROR:number = 230;
- private var ERROR_CODE_UPLOAD_STOPPED:number = 240;
- private var ERROR_CODE_UPLOAD_FAILED:number = 250;
- public function Main():void{
- this.area = new Sprite();
- this._valid_file_extensions = new array();
- this.filesList = new array();
- this.EXIF_MARKER = [0xFF, 225];
- super();
- if (stage){
- this.init();
- } else {
- addEventListener(Event.ADDED_TO_STAGE, this.init);
- };
- }
- private function init(_arg1:Event=null):void{
- var mouseMove:* = null;
- var mouseOut:* = null;
- var e = _arg1;
- mouseMove = function (_arg1:MouseEvent):void{
- var _local2:number = _arg1.target.mouseX;
- var _local3:number = _arg1.target.mouseY;
- var _local4:number = ((stage.stageWidth) ? stage.stageWidth : 103);
- var _local5:number = ((stage.stageHeight) ? stage.stageHeight : 23);
- var _local6:boolean = (((((((_local2 <= 0)) || ((_local2 >= _local4)))) || ((_local3 <= 0)))) || ((_local3 >= _local5)));
- if (((insideFrame) && (_local6))){
- mouseOut();
- } else {
- if (((!(insideFrame)) && (!(_local6)))){
- mouseOver();
- };
- };
- };
- var mouseOver:* = function ():void{
- if (ExternalInterface.available){
- ExternalInterface.call(config.onMouseOver);
- };
- stage.addEventListener(Event.MOUSE_LEAVE, mouseOut);
- insideFrame = true;
- };
- mouseOut = function ():void{
- if (ExternalInterface.available){
- ExternalInterface.call(config.onMouseOut);
- };
- stage.removeEventListener(Event.MOUSE_LEAVE, mouseOut);
- insideFrame = false;
- };
- Security.allowdomain("*");
- var counter:* = 0;
- root.addEventListener(Event.ENTER_FRAME, function ():void{
- if (++counter > 100){
- counter = 0;
- };
- });
- stage.align = StageAlign.TOP_LEFT;
- stage.scalemode = StageScaleMode.NO_SCALE;
- removeEventListener(Event.ADDED_TO_STAGE, this.init);
- if (ExternalInterface.available){
- ExternalInterface.addCallback("configureServer", this.configureServer);
- };
- this.config = Config.loadConfig(this.root.loaderInfo);
- this.loadFileExtensions(this.config.file_types);
- this._file_ref = new FileReferenceList();
- this._file_ref.addEventListener(Event.SELECT, this.onFilesSelected);
- contextmenu = new contextmenu();
- contextmenu.hidebuiltinitems();
- var ciVkontakteRu:* = new contextmenuitem(("VK Photo Uploader Lite" + this.version));
- ciVkontakteRu.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, function (_arg1):void{
- navigateToURL(new URLRequest("http://vkontakte.ru"), "_blank");
- });
- contextmenu.customitems.push(ciVkontakteRu);
- stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMove);
- stage.addEventListener(MouseEvent.MOUSE_DOWN, function ():void{
- if (ExternalInterface.available){
- ExternalInterface.call(config.onmousedown);
- };
- });
- stage.addEventListener(MouseEvent.MOUSE_UP, function ():void{
- if (((insideFrame) && (ExternalInterface.available))){
- ExternalInterface.call(config.onmouseup);
- };
- });
- stage.addEventListener(MouseEvent.CLICK, function (_arg1:Event):void{
- try {
- if (config.onSelectClick){
- ExternalCall.Simple(config.onSelectClick);
- };
- _file_ref.browse([new FileFilter(config.file_types_description, config.file_types)]);
- } catch(e) {
- };
- });
- this.area.addEventListener(MouseEvent.CLICK, function (_arg1:Event):void{
- try {
- _file_ref.browse([new FileFilter(config.file_types_description, config.file_types)]);
- } catch(e) {
- };
- });
- this.area.graphics.beginfill(0, 0);
- this.area.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
- this.area.graphics.endfill();
- this.area.x = (this.area.y = 0);
- this.area.buttonMode = true;
- this.area.usehandcursor = true;
- stage.addChild(this.area);
- }
- private function configureServer(_arg1:string, _arg2:string):void{
- if (!this.uploadStarted){
- Config.setConfig({
- upload_url:_arg1,
- post_data:_arg2
- });
- };
- }
- private function onFilesSelected(_arg1:Event):void{
- var _local2:*;
- this.files = _arg1.target.fileList.slice(0, this.config.max_files);
- for (_local2 in this.files) {
- this.totalSize = (this.totalSize + this.files[_local2].size);
- };
- this.totalCount = this.files.length;
- this.filesList = this.files;
- this.loadFiles(this.filesList);
- }
- private function loadFiles(_arg1:array):void{
- var files:* = _arg1;
- if (((!(files)) || ((files.length == 0)))){
- ExternalCall.UploadComplete(this.config.onUploadComplete, {totalCount:this.totalCount});
- return;
- };
- this.file = files.shift();
- if (this.file.size == 0){
- this.debug("File size is zero bytes");
- ExternalCall.UploadError(this.config.onUploadError, this.ERROR_CODE_SIZE_ZERO_BYTE);
- this.loadFiles(files);
- return;
- };
- if (((!((this.config.file_size_limit == 0))) && ((this.config.file_size_limit < this.file.size)))){
- this.debug(("File size exceeded " + this.file.size.tostring()));
- ExternalCall.UploadError(this.config.onUploadError, this.ERROR_CODE_SIZE_TOO_BIG, this.file.size.tostring());
- this.loadFiles(files);
- return;
- };
- if (!this.validFileType(this.file.name)){
- this.debug(("Invalid file type " + this.file.name));
- ExternalCall.UploadError(this.config.onUploadError, this.ERROR_CODE_INVALID_FILETYPE, this.file.name);
- this.loadFiles(files);
- return;
- };
- if (this.config.upload_url == ""){
- this.debug("Upload URL is empty");
- ExternalCall.UploadError(this.config.onUploadError, this.ERROR_CODE_MISSING_UPLOAD_URL);
- this.loadFiles(files);
- return;
- };
- this.file.addEventListener(Event.COMPLETE, this.onFileLoaded);
- try {
- this.file.load();
- } catch(error:error) {
- debug("Upload error");
- ExternalCall.UploadError(config.onUploadError, ERROR_CODE_UPLOAD_FAILED, error.message);
- loadFiles(files);
- return;
- };
- }
- private function onFileLoaded(_arg1:Event):void{
- var file:* = undefined;
- var e:* = _arg1;
- file = e.target;
- ExternalCall.UploadStart(this.config.onUploadStart, {
- filename:file.name,
- type:file.type,
- size:file.size,
- num:this.loadedCount,
- totalCount:this.totalCount,
- loadedSize:this.loadedSize,
- totalSize:this.totalSize
- });
- e.currentTarget.removeEventListener(e.type, this.onFileLoaded);
- var data:* = file.data;
- var imgLoader:* = new Loader();
- imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, function (_arg1:Event):void{
- onImageLoaded(_arg1, file);
- e.target.data.clear();
- });
- try {
- imgLoader.loadBytes(data);
- } catch(e) {
- debug("Upload error");
- ExternalCall.UploadError(config.onUploadError, ERROR_CODE_UPLOAD_FAILED, e.message);
- loadFiles(filesList);
- return;
- };
- }
- private function getExifPosition(_arg1:ByteArray):number{
- var _local2:number = 0;
- var _local3:number = _arg1.length;
- while ((((_local2 < 65536)) && ((_local2 < (_local3 - 2))))) {
- if ((((_arg1[_local2] == this.EXIF_MARKER[0])) && ((_arg1[(_local2 + 1)] == this.EXIF_MARKER[1])))){
- return (_local2);
- };
- _local2++;
- };
- return (-1);
- }
- private function getExifSize(_arg1:number, _arg2:number):number{
- var _local3 = "";
- var _local4:string = _arg1.tostring(16);
- _local3 = (_local3 + ((_local4.length)<2) ? ("0" + _local4) : _local4);
- _local4 = _arg2.tostring(16);
- _local3 = (_local3 + ((_local4.length)<2) ? ("0" + _local4) : _local4);
- return ((parseint(("0x" + _local3)) + 2));
- }
- private function onImageLoaded(_arg1:Event, _arg2):void{
- var j:* = undefined;
- var srcBytes:* = null;
- var exifStartPos:* = nan;
- var exifSize:* = nan;
- var jpgBytes:* = null;
- var urlLoader:* = null;
- var exifResStartPos:* = nan;
- var exifResSize:* = nan;
- var resBytes:* = null;
- var fileName:* = null;
- var e:* = _arg1;
- var file:* = _arg2;
- var loaderInfo:* = (e.target as LoaderInfo);
- loaderInfo.removeEventListener(Event.COMPLETE, this.onImageLoaded);
- var exifMarker:* = "";
- for (j in this.EXIF_MARKER) {
- exifMarker = (exifMarker + string.fromcharcode(this.EXIF_MARKER[j]));
- };
- srcBytes = file.data;
- exifStartPos = this.getExifPosition(srcBytes);
- if (exifStartPos > 0){
- exifSize = this.getExifSize(srcBytes[(exifStartPos + 2)], srcBytes[(exifStartPos + 3)]);
- };
- var image:* = Bitmap(loaderInfo.content);
- var urlRequest:* = new URLRequest();
- if ((((image.width > 0x0500)) || ((image.height > 0x0400)))){
- image = ImageHelper.resize(image, 0x0500, 0x0400);
- jpgBytes = JPEGEncoder.encode(image.bitmapData, this.config.jpeg_quality);
- if ((((exifStartPos > 0)) && ((exifSize > 0)))){
- exifResStartPos = this.getExifPosition(jpgBytes);
- if (exifResStartPos > 0){
- exifResSize = this.getExifSize(jpgBytes[(exifResStartPos + 2)], jpgBytes[(exifResStartPos + 3)]);
- resBytes = new ByteArray();
- j = 0;
- while (j < exifResStartPos) {
- resBytes.writeByte(jpgBytes[j]);
- j = (j + 1);
- };
- j = exifStartPos;
- while (j < (exifStartPos + exifSize)) {
- resBytes.writeByte(srcBytes[j]);
- j = (j + 1);
- };
- j = (exifResStartPos + exifResSize);
- while (j < jpgBytes.length) {
- resBytes.writeByte(jpgBytes[j]);
- j = (j + 1);
- };
- jpgBytes = resBytes;
- };
- };
- this.postData = new UploadPostData("file0", encodeURIComponent(file.name), jpgBytes);
- this.onUploadProgress({
- bytesloaded:(file.size / 2),
- bytestotal:file.size
- });
- urlRequest.data = this.postData.getPostData();
- urlRequest.url = ((this.config.upload_url + "?") + this.config.post_data);
- urlRequest.requestHeaders.push(new URLRequestHeader("Content-type", ("multipart/form-data; boundary=" + this.postData.getBoundary())));
- urlRequest.requestHeaders.push(new URLRequestHeader("Cache-Control", "no-cache"));
- urlRequest.method = URLRequestMethod.POST;
- urlLoader = new URLLoader();
- urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
- urlLoader.addEventListener(Event.COMPLETE, function (_arg1:Event):void{
- onFileUploadComplete(_arg1, file);
- });
- urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.onSecurityError);
- urlLoader.addEventListener(IOErrorEvent.IO_ERROR, this.onIOError);
- urlLoader.addEventListener(HTTPStatusEvent.HTTP_STATUS, this.onHttpStatus);
- urlLoader.addEventListener(ErrorEvent.error, this.onIOError);
- try {
- urlLoader.load(urlRequest);
- } catch(error:error) {
- debug("Upload error");
- ExternalCall.UploadError(config.onUploadError, ERROR_CODE_UPLOAD_FAILED, error.message);
- loadFiles(filesList);
- return;
- };
- } else {
- fileName = ((this.config.file_name)!="") ? this.config.file_name : "Filedata";
- urlRequest.url = this.config.upload_url;
- urlRequest.method = URLRequestMethod.POST;
- if (this.config.post_data){
- this.debug(("Post data: " + this.config.post_data));
- urlRequest.data = this.config.post_data;
- };
- urlRequest.requestHeaders.push(new URLRequestHeader("Cache-Control", "no-cache"));
- file.addEventListener(Event.OPEN, this.onUploadOpened);
- file.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, function (_arg1):void{
- onFileUploadComplete(_arg1, file);
- });
- file.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.onSecurityError);
- file.addEventListener(IOErrorEvent.IO_ERROR, this.onIOError);
- file.addEventListener(ProgressEvent.PROGRESS, this.onUploadProgress);
- file.addEventListener(HTTPStatusEvent.HTTP_STATUS, this.onHttpStatus);
- file.addEventListener(ErrorEvent.error, this.onIOError);
- try {
- file.upload(urlRequest, fileName);
- } catch(error:error) {
- debug("Upload error");
- ExternalCall.UploadError(config.onUploadError, ERROR_CODE_UPLOAD_FAILED, error.message);
- loadFiles(filesList);
- return;
- };
- };
- }
- private function onUploadOpened(_arg1:Event):void{
- this.debug("Connection opened");
- }
- private function onUploadProgress(_arg1):void{
- this.debug(((("Progress handler: bytesLoaded=" + _arg1.bytesloaded) + " bytesTotal=") + _arg1.bytestotal));
- ExternalCall.UploadProgress(this.config.onUploadProgress, ((this.loadedCount + (_arg1.bytesloaded / _arg1.bytestotal)) * 100), (this.totalCount * 100));
- }
- private function onFileUploadComplete(_arg1, _arg2:FileReference):void{
- this.debug("Upload complete");
- this.loadedSize = (this.loadedSize + _arg2.size);
- var _local3:string = ((_arg1.constructor)==DataEvent) ? string(_arg1.data) : string(_arg1.target.data);
- ExternalCall.UploadSuccess(this.config.onUploadSuccess, _local3, {
- filename:_arg2.name,
- type:_arg2.type,
- size:_arg2.size,
- num:this.loadedCount,
- totalCount:this.totalCount,
- loadedSize:this.loadedSize,
- totalSize:this.totalSize
- });
- this.onUploadProgress({
- bytesloaded:_arg2.size,
- bytestotal:_arg2.size
- });
- this.loadedCount++;
- this.loadFiles(this.filesList);
- }
- private function onHttpStatus(_arg1:HTTPStatusEvent):void{
- this.debug("HTTP Status error");
- }
- private function onSecurityError(_arg1:SecurityErrorEvent):void{
- this.debug("Security error");
- ExternalCall.UploadError(this.config.onUploadError, this.ERROR_CODE_SECURITY_ERROR, _arg1.text.tostring());
- }
- private function onIOError(_arg1:IOErrorEvent):void{
- this.debug("IO error");
- ExternalCall.UploadError(this.config.onUploadError, this.ERROR_CODE_IO_ERROR, _arg1.text);
- }
- private function onTerminateClick(_arg1:Event):void{
- if (this.file){
- this.file.cancel();
- };
- this.debug("Upload terminated");
- ExternalCall.UploadError(this.config.onUploadError, this.ERROR_CODE_UPLOAD_STOPPED);
- }
- private function debug(_arg1:string):void{
- var lines:* = null;
- var i:* = nan;
- var msg:* = _arg1;
- try {
- if (this.config.onDebug){
- lines = msg.split("\n");
- i = 0;
- while (i < lines.length) {
- lines[i] = ("SWF DEBUG: " + lines[i]);
- i = (i + 1);
- };
- ExternalCall.Debug(this.config.onDebug, lines.join("\n"));
- };
- } catch(ex:error) {
- };
- }
- private function validFileType(_arg1:string):boolean{
- if (this._valid_file_extensions.length == 0){
- return (true);
- };
- var _local2:number = _arg1.lastindexof(".");
- var _local3 = "";
- if (_local2 >= 0){
- _local3 = _arg1.substr((_local2 + 1)).tolowercase();
- };
- var _local4:boolean;
- var _local5:number = 0;
- while (_local5 < this._valid_file_extensions.length) {
- if (string(this._valid_file_extensions[_local5]) == _local3){
- _local4 = true;
- break;
- };
- _local5++;
- };
- return (_local4);
- }
- private function loadFileExtensions(_arg1:string):void{
- var _local4:string;
- var _local5:number;
- var _local2:array = _arg1.split(";");
- this._valid_file_extensions = new array();
- var _local3:number = 0;
- while (_local3 < _local2.length) {
- _local4 = string(_local2[_local3]);
- _local5 = _local4.lastindexof(".");
- if (_local5 >= 0){
- _local4 = _local4.substr((_local5 + 1)).tolowercase();
- } else {
- _local4 = _local4.tolowercase();
- };
- if (_local4 == "*"){
- this._valid_file_extensions = new array();
- break;
- };
- this._valid_file_extensions.push(_local4);
- _local3++;
- };
- }
- }
- }//package
- ?package by.blooddy.crypto.image {
- import flash.utils.*;
- public final class JPEGTable {
- private static const _quantTables:array = new array();
- private static var _jpegTable:ByteArray;
- public function JPEGTable(){
- error.throwError(ArgumentError, 2012, getQualifiedClassName(this));
- }
- public static function getTable(_arg1:uint=60):ByteArray{
- if (_arg1 > 100){
- error.throwError(RangeError, 2006, "quality");
- };
- if (_arg1 < 1){
- _arg1 = 1;
- };
- var _local2:ByteArray = _quantTables[_arg1];
- if (!_local2){
- _local2 = JPEGTableHelper.createQuantTable(_arg1);
- if (!_jpegTable){
- _jpegTable = new ByteArray();
- _jpegTable.writeBytes(JPEGTableHelper.createZigZagTable());
- _jpegTable.writeBytes(JPEGTableHelper.createHuffmanTable());
- _jpegTable.writeBytes(JPEGTableHelper.createCategoryTable());
- };
- };
- var _local3:ByteArray = new ByteArray();
- _local3.writeBytes(_local2);
- _local3.writeBytes(_jpegTable);
- _local3.position = 0;
- return (_local3);
- }
- }
- }//package by.blooddy.crypto.image
- ?package by.blooddy.crypto.image {
- import flash.utils.*;
- import flash.system.*;
- public class JPEGTableHelper {
- public function JPEGTableHelper():void{
- }
- public static function createQuantTable(_arg1:uint):ByteArray{
- var _local6:uint;
- var _local8:uint;
- var _local9:number;
- if (_arg1 > 100){
- error.throwError(RangeError, 2006, "quality");
- };
- var _local2:uint = ((_arg1)<=1) ? 5000 : ((_arg1)<50) ? (5000 / _arg1) : (200 - (_arg1 << 1));
- var _local3:ByteArray = ApplicationDomain.currentDomain.domainMemory;
- var _local4:ByteArray = new ByteArray();
- _local4.position = 130;
- _local4.writeUTFBytes("\x10\x0B\n\x10\x18(3=\f\f\x0E\x13\x1A:<7\x0E\r\x10\x18(9E8\x0E\x11\x16\x1D3WP>\x12\x16%8DmgM\x18#7@Qhq\\1@NWgyxeH\\_bpdgc");
- _local4.writeUTFBytes("\x11\x12\x18/cccc\x12\x15\x1ABcccc\x18\x1A8ccccc/Bcccccccccccccccccccccccccccccccccccccc");
- _local4.position = 1154;
- _local4.writeUTFBytes("\x00\x01\x05\x06\x0E\x0F\x1B\x1C\x02\x04\x07\r\x10\x1A\x1D*\x03\b\f\x11\x19\x1E)+\t\x0B\x12\x18\x1F(,5\n\x13\x17 '-46\x14\x16!&.37<\x15\"%/28;=#$019:>?");
- _local4.length = (_local4.length + 64);
- if (_local4.length < ApplicationDomain.MIN_DOMAIN_MEMORY_LENGTH){
- _local4.length = ApplicationDomain.MIN_DOMAIN_MEMORY_LENGTH;
- };
- ApplicationDomain.currentDomain.domainMemory = _local4;
- var _local5:uint;
- do {
- _local6 = (((op_li8((130 + _local5)) /*Alchemy*/ * _local2) + 50) / 100);
- if (_local6 < 1){
- _local6 = 1;
- } else {
- if (_local6 > 0xFF){
- _local6 = 0xFF;
- };
- };
- op_si8(_local6, (1 + op_li8((1154 + _local5)) /*Alchemy*/ )); //Alchemy
- ++_local5;
- } while (_local5 < 64);
- _local5 = 0;
- do {
- _local6 = (((op_li8((194 + _local5)) /*Alchemy*/ * _local2) + 50) / 100);
- if (_local6 < 1){
- _local6 = 1;
- } else {
- if (_local6 > 0xFF){
- _local6 = 0xFF;
- };
- };
- op_si8(_local6, (66 + op_li8((1154 + _local5)) /*Alchemy*/ )); //Alchemy
- ++_local5;
- } while (_local5 < 64);
- op_sf64(1, 1218); //Alchemy
- op_sf64(1.387039845, 1226); //Alchemy
- op_sf64(1.306562965, 1234); //Alchemy
- op_sf64(1.175875602, 1242); //Alchemy
- op_sf64(1, 1250); //Alchemy
- op_sf64(0.785694958, 1258); //Alchemy
- op_sf64(0.5411961, 1266); //Alchemy
- op_sf64(0.275899379, 1274); //Alchemy
- _local5 = 0;
- var _local7:uint;
- do {
- _local8 = 0;
- do {
- _local9 = ((op_lf64((1218 + _local7)) /*Alchemy*/ * op_lf64((1218 + _local8)) /*Alchemy*/ ) * 8);
- op_sf64((1 / (op_li8((1 + op_li8((1154 + _local5)) /*Alchemy*/ )) /*Alchemy*/ * _local9)), (130 + (_local5 << 3))); //Alchemy
- op_sf64((1 / (op_li8((66 + op_li8((1154 + _local5)) /*Alchemy*/ )) /*Alchemy*/ * _local9)), (642 + (_local5 << 3))); //Alchemy
- _local5++;
- _local8 = (_local8 + 8);
- } while (_local8 < 64);
- _local7 = (_local7 + 8);
- } while (_local7 < 64);
- ApplicationDomain.currentDomain.domainMemory = _local3;
- _local4.length = 1154;
- var _local10:ByteArray = new ByteArray();
- _local10.writeBytes(_local4);
- _local10.position = 0;
- return (_local10);
- }
- public static function createZigZagTable():ByteArray{
- var _local1:ByteArray = new ByteArray();
- _local1.writeUTFBytes("\x00\x01\x05\x06\x0E\x0F\x1B\x1C\x02\x04\x07\r\x10\x1A\x1D*\x03\b\f\x11\x19\x1E)+\t\x0B\x12\x18\x1F(,5\n\x13\x17 '-46\x14\x16!&.37<\x15\"%/28;=#$019:>?");
- _local1.position = 0;
- return (_local1);
- }
- public static function createHuffmanTable():ByteArray{
- var _local8:uint;
- var _local9:uint;
- var _local10:uint;
- var _local1:ByteArray = ApplicationDomain.currentDomain.domainMemory;
- var _local2:ByteArray = new ByteArray();
- _local2.length = 1994;
- if (_local2.length < ApplicationDomain.MIN_DOMAIN_MEMORY_LENGTH){
- _local2.length = ApplicationDomain.MIN_DOMAIN_MEMORY_LENGTH;
- };
- ApplicationDomain.currentDomain.domainMemory = _local2;
- _local2.position = (_local2.position + 1);
- _local2.writeUTFBytes("\x00\x01\x05\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00");
- _local2.writeUTFBytes("\x00\x01\x02\x03\x04\x05\x06\x07\b\t\n\x0B");
- _local2.position = (_local2.position + 1);
- _local2.writeUTFBytes("\x00\x02\x01\x03\x03\x02\x04\x03\x05\x05\x04\x04\x00\x00\x01}");
- var _local4:array = [197121, 302321924, 104935713, 123818259, 840200482, 144806273, -1045347805, -254717419, 1919038244, 369756546, 437852183, 673654309, 892611113, 959985462, 1162101562, 1229473606, 1431589706, 1498961750, 1701077850, 1768449894, 1970565994, 2037938038, -2054913158, -1987541114, -1802268022, -1734895979, -1549624679, -1482250844, -1297438296, -1229605709, -1162233673, -976960574, -909588538, -724315446, -656943403, -488514855, -421141277, -353769241, -185339151, -117967115, 64249];
- var _local3:int;
- do {
- op_si32(_local4[_local3], (46 + (_local3 << 2))); //Alchemy
- _local3++;
- } while (_local3 < 41);
- _local2.position = 208;
- _local2.position = (_local2.position + 1);
- _local2.writeUTFBytes("\x00\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00");
- _local2.writeBytes(_local2, 17, 12);
- _local2.position = (_local2.position + 1);
- _local2.writeUTFBytes("\x00\x02\x01\x02\x04\x04\x03\x04\x07\x05\x04\x04\x00\x01\x02w");
- _local4 = [50462976, 553976849, 1091700273, 1902184273, -2127420909, -1857940472, 163688865, -263048413, -781032939, 874780170, 401679841, 639244568, 707340327, 943142453, 1145256505, 1212630597, 1414744649, 1482118741, 1684232793, 1751606885, 1953720937, 2021095029, -2088600967, -2021227132, -1836414584, -1768581997, -1701209961, -1515936862, -1448564826, -1263291734, -1195919691, -1010648391, -943274556, -758462008, -690629421, -623257385, -437984286, -370612250, -185339158, -117967115, 64249];
- _local3 = 0;
- do {
- op_si32(_local4[_local3], (254 + (_local3 << 2))); //Alchemy
- _local3++;
- } while (_local3 < 41);
- var _local5:int;
- var _local6:int;
- var _local7:uint = 1;
- do {
- _local9 = op_li8(_local7) /*Alchemy*/ ;
- _local8 = 1;
- while (_local8 <= _local9) {
- _local10 = (416 + (op_li8((17 + _local6)) /*Alchemy*/ * 3));
- op_si8(_local7, _local10); //Alchemy
- op_si16(_local5, (_local10 + 1)); //Alchemy
- _local6++;
- _local5++;
- _local8++;
- };
- _local5 = (_local5 << 1);
- ++_local7;
- } while (_local7 <= 16);
- _local5 = 0;
- _local6 = 0;
- _local7 = 1;
- do {
- _local9 = op_li8((29 + _local7)) /*Alchemy*/ ;
- _local8 = 1;
- while (_local8 <= _local9) {
- _local10 = (452 + (op_li8((46 + _local6)) /*Alchemy*/ * 3));
- op_si8(_local7, _local10); //Alchemy
- op_si16(_local5, (_local10 + 1)); //Alchemy
- _local6++;
- _local5++;
- _local8++;
- };
- _local5 = (_local5 << 1);
- ++_local7;
- } while (_local7 <= 16);
- _local5 = 0;
- _local6 = 0;
- _local7 = 1;
- do {
- _local9 = op_li8((208 + _local7)) /*Alchemy*/ ;
- _local8 = 1;
- while (_local8 <= _local9) {
- _local10 = (1205 + (op_li8((225 + _local6)) /*Alchemy*/ * 3));
- op_si8(_local7, _local10); //Alchemy
- op_si16(_local5, (_local10 + 1)); //Alchemy
- _local6++;
- _local5++;
- _local8++;
- };
- _local5 = (_local5 << 1);
- ++_local7;
- } while (_local7 <= 16);
- _local5 = 0;
- _local6 = 0;
- _local7 = 1;
- do {
- _local9 = op_li8((237 + _local7)) /*Alchemy*/ ;
- _local8 = 1;
- while (_local8 <= _local9) {
- _local10 = (1241 + (op_li8((254 + _local6)) /*Alchemy*/ * 3));
- op_si8(_local7, _local10); //Alchemy
- op_si16(_local5, (_local10 + 1)); //Alchemy
- _local6++;
- _local5++;
- _local8++;
- };
- _local5 = (_local5 << 1);
- ++_local7;
- } while (_local7 <= 16);
- _local2.position = 0;
- ApplicationDomain.currentDomain.domainMemory = _local1;
- return (_local2);
- }
- public static function createCategoryTable():ByteArray{
- var _local5:uint;
- var _local6:int;
- var _local7:int;
- var _local1:ByteArray = ApplicationDomain.currentDomain.domainMemory;
- var _local2:ByteArray = new ByteArray();
- _local2.length = 196605;
- if (_local2.length < ApplicationDomain.MIN_DOMAIN_MEMORY_LENGTH){
- _local2.length = ApplicationDomain.MIN_DOMAIN_MEMORY_LENGTH;
- };
- ApplicationDomain.currentDomain.domainMemory = _local2;
- var _local3 = 1;
- var _local4 = 2;
- var _local8:uint = 1;
- do {
- _local6 = _local3;
- _local7 = _local4;
- do {
- _local5 = ((32767 + _local6) * 3);
- op_si8(_local8, _local5); //Alchemy
- op_si16(_local6, (_local5 + 1)); //Alchemy
- _local6++;
- } while (_local6 < _local7);
- _local6 = (-(_local4) + 1);
- _local7 = -(_local3);
- do {
- _local5 = ((32767 + _local6) * 3);
- op_si8(_local8, _local5); //Alchemy
- op_si16(((_local4 - 1) + _local6), (_local5 + 1)); //Alchemy
- _local6++;
- } while (_local6 <= _local7);
- _local3 = (_local3 << 1);
- _local4 = (_local4 << 1);
- ++_local8;
- } while (_local8 <= 15);
- _local2.position = 0;
- ApplicationDomain.currentDomain.domainMemory = _local1;
- return (_local2);
- }
- }
- }//package by.blooddy.crypto.image
- ?package by.blooddy.crypto.image {
- import flash.utils.*;
- import flash.display.*;
- import flash.system.*;
- public class JPEGEncoder {
- public function JPEGEncoder():void{
- }
- public static function encode(_arg1:BitmapData, _arg2:uint=60):ByteArray{
- var _local7:uint;
- var _local9:uint;
- var _local16:uint;
- var _local17:uint;
- var _local18:uint;
- var _local19:uint;
- var _local20:uint;
- var _local21:uint;
- var _local22:int;
- var _local23:number;
- var _local24:number;
- var _local25:number;
- var _local26:number;
- var _local27:number;
- var _local28:number;
- var _local29:number;
- var _local30:number;
- var _local31:number;
- var _local32:number;
- var _local33:number;
- var _local34:number;
- var _local35:number;
- var _local36:number;
- var _local37:number;
- var _local38:number;
- var _local39:number;
- var _local40:number;
- var _local41:number;
- var _local42:number;
- var _local43:number;
- var _local44:number;
- var _local45:number;
- var _local46:number;
- var _local47:number;
- var _local48:number;
- var _local49:number;
- var _local50:number;
- var _local51:int;
- var _local52:int;
- var _local53:int;
- var _local54:int;
- var _local55:int;
- var _local56:int;
- var _local57:int;
- if (_arg1 == null){
- error.throwError(TypeError, 2007, "image");
- };
- if (_arg2 > 100){
- error.throwError(RangeError, 2006, "quality");
- };
- var _local3:ByteArray = ApplicationDomain.currentDomain.domainMemory;
- var _local4:uint = _arg1.width;
- var _local5:uint = _arg1.height;
- var _local6:ByteArray = new ByteArray();
- _local6.position = 1792;
- _local6.writeBytes(JPEGTable.getTable(_arg2));
- _local6.length = (_local6.length + (680 + ((_local4 * _local5) * 3)));
- if (_local6.length < ApplicationDomain.MIN_DOMAIN_MEMORY_LENGTH){
- _local6.length = ApplicationDomain.MIN_DOMAIN_MEMORY_LENGTH;
- };
- ApplicationDomain.currentDomain.domainMemory = _local6;
- op_si16(55551, 201609); //Alchemy
- _local7 = 201611;
- op_si16(57599, _local7); //Alchemy
- op_si16(0x1000, (_local7 + 2)); //Alchemy
- op_si32(1179207242, (_local7 + 4)); //Alchemy
- op_si8(0, (_local7 + 8)); //Alchemy
- op_si16(0x0101, (_local7 + 9)); //Alchemy
- op_si8(0, (_local7 + 11)); //Alchemy
- op_si32(16777472, (_local7 + 12)); //Alchemy
- op_si16(0, (_local7 + 16)); //Alchemy
- _local7 = 201629;
- op_si16(57855, _local7); //Alchemy
- op_si16(0x4600, (_local7 + 2)); //Alchemy
- op_si32(1718188101, (_local7 + 4)); //Alchemy
- op_si16(0, (_local7 + 8)); //Alchemy
- op_si32(2771273, (_local7 + 10)); //Alchemy
- op_si32(8, (_local7 + 14)); //Alchemy
- op_si16(1, (_local7 + 18)); //Alchemy
- op_si16(305, (_local7 + 20)); //Alchemy
- op_si16(2, (_local7 + 22)); //Alchemy
- op_si32(35, (_local7 + 24)); //Alchemy
- op_si32(26, (_local7 + 28)); //Alchemy
- op_si32(0, (_local7 + 32)); //Alchemy
- _local6.position = (_local7 + 36);
- _local6.writeMultiByte("by.blooddy.crypto.image.JPEGEncoder", "x-ascii");
- op_si8(0, (_local7 + 71)); //Alchemy
- _local7 = 201701;
- op_si16(56319, _local7); //Alchemy
- op_si16(0x8400, (_local7 + 2)); //Alchemy
- _local6.position = (_local7 + 4);
- _local6.writeBytes(_local6, 1792, 130);
- op_si8(0, (_local7 + 4)); //Alchemy
- op_si8(1, (_local7 + 69)); //Alchemy
- _local7 = 201835;
- var _local8:uint = _arg1.width;
- _local9 = _arg1.height;
- op_si16(49407, _local7); //Alchemy
- op_si16(0x1100, (_local7 + 2)); //Alchemy
- op_si8(8, (_local7 + 4)); //Alchemy
- op_si16((((_local9 >> 8) & 0xFF) | ((_local9 & 0xFF) << 8)), (_local7 + 5)); //Alchemy
- op_si16((((_local8 >> 8) & 0xFF) | ((_local8 & 0xFF) << 8)), (_local7 + 7)); //Alchemy
- op_si8(3, (_local7 + 9)); //Alchemy
- op_si32(4353, (_local7 + 10)); //Alchemy
- op_si32(69890, (_local7 + 13)); //Alchemy
- op_si32(69891, (_local7 + 16)); //Alchemy
- _local7 = 201854;
- op_si16(50431, _local7); //Alchemy
- op_si16(41473, (_local7 + 2)); //Alchemy
- _local6.position = (_local7 + 4);
- _local6.writeBytes(_local6, 3010, 416);
- op_si8(0, (_local7 + 4)); //Alchemy
- op_si8(16, (_local7 + 33)); //Alchemy
- op_si8(1, (_local7 + 212)); //Alchemy
- op_si8(17, (_local7 + 241)); //Alchemy
- _local7 = 202274;
- op_si16(56063, _local7); //Alchemy
- op_si16(0x0C00, (_local7 + 2)); //Alchemy
- op_si8(3, (_local7 + 4)); //Alchemy
- op_si16(1, (_local7 + 5)); //Alchemy
- op_si16(4354, (_local7 + 7)); //Alchemy
- op_si16(4355, (_local7 + 9)); //Alchemy
- op_si32(0x3F00, (_local7 + 11)); //Alchemy
- var _local10 = 202288;
- var _local11 = 7;
- var _local12:int;
- var _local13:int;
- var _local14:int;
- var _local15:int;
- _local8 = 0;
- do {
- _local7 = 0;
- do {
- _local9 = 0;
- _local16 = (_local7 + 8);
- _local17 = (_local8 + 8);
- do {
- do {
- _local18 = _arg1.getPixel(_local7, _local8);
- _local19 = (_local18 >>> 16);
- _local20 = ((_local18 >> 8) & 0xFF);
- _local21 = (_local18 & 0xFF);
- op_sf64(((((0.299 * _local19) + (0.587 * _local20)) + (0.114 * _local21)) - 128), (0x0100 + _local9)); //Alchemy
- op_sf64((((-0.16874 * _local19) - (0.33126 * _local20)) + (0.5 * _local21)), (0x0300 + _local9)); //Alchemy
- op_sf64((((0.5 * _local19) - (0.41869 * _local20)) - (0.08131 * _local21)), (0x0500 + _local9)); //Alchemy
- _local9 = (_local9 + 8);
- ++_local7;
- } while (_local7 < _local16);
- _local7 = (_local7 - 8);
- ++_local8;
- } while (_local8 < _local17);
- _local8 = (_local8 - 8);
- _local9 = 0x0100;
- _local22 = _local13;
- _local16 = 3426;
- _local17 = 3462;
- _local18 = 0;
- do {
- _local23 = op_lf64((_local9 + _local18)) /*Alchemy*/ ;
- _local24 = op_lf64(((_local9 + _local18) + 8)) /*Alchemy*/ ;
- _local25 = op_lf64(((_local9 + _local18) + 16)) /*Alchemy*/ ;
- _local26 = op_lf64(((_local9 + _local18) + 24)) /*Alchemy*/ ;
- _local27 = op_lf64(((_local9 + _local18) + 32)) /*Alchemy*/ ;
- _local28 = op_lf64(((_local9 + _local18) + 40)) /*Alchemy*/ ;
- _local29 = op_lf64(((_local9 + _local18) + 48)) /*Alchemy*/ ;
- _local30 = op_lf64(((_local9 + _local18) + 56)) /*Alchemy*/ ;
- _local31 = (_local23 + _local30);
- _local38 = (_local23 - _local30);
- _local32 = (_local24 + _local29);
- _local37 = (_local24 - _local29);
- _local33 = (_local25 + _local28);
- _local36 = (_local25 - _local28);
- _local34 = (_local26 + _local27);
- _local35 = (_local26 - _local27);
- _local39 = (_local31 + _local34);
- _local42 = (_local31 - _local34);
- _local40 = (_local32 + _local33);
- _local41 = (_local32 - _local33);
- op_sf64((_local39 + _local40), (_local9 + _local18)); //Alchemy
- op_sf64((_local39 - _local40), ((_local9 + _local18) + 32)); //Alchemy
- _local43 = ((_local41 + _local42) * 0.707106781);
- op_sf64((_local42 + _local43), ((_local9 + _local18) + 16)); //Alchemy
- op_sf64((_local42 - _local43), ((_local9 + _local18) + 48)); //Alchemy
- _local39 = (_local35 + _local36);
- _local40 = (_local36 + _local37);
- _local41 = (_local37 + _local38);
- _local47 = ((_local39 - _local41) * 0.382683433);
- _local44 = ((0.5411961 * _local39) + _local47);
- _local46 = ((1.306562965 * _local41) + _local47);
- _local45 = (_local40 * 0.707106781);
- _local48 = (_local38 + _local45);
- _local49 = (_local38 - _local45);
- op_sf64((_local49 + _local44), ((_local9 + _local18) + 40)); //Alchemy
- op_sf64((_local49 - _local44), ((_local9 + _local18) + 24)); //Alchemy
- op_sf64((_local48 + _local46), ((_local9 + _local18) + 8)); //Alchemy
- op_sf64((_local48 - _local46), ((_local9 + _local18) + 56)); //Alchemy
- _local18 = (_local18 + 64);
- } while (_local18 < 0x0200);
- _local18 = 0;
- do {
- _local23 = op_lf64((_local9 + _local18)) /*Alchemy*/ ;
- _local24 = op_lf64(((_local9 + _local18) + 64)) /*Alchemy*/ ;
- _local25 = op_lf64(((_local9 + _local18) + 128)) /*Alchemy*/ ;
- _local26 = op_lf64(((_local9 + _local18) + 192)) /*Alchemy*/ ;
- _local27 = op_lf64(((_local9 + _local18) + 0x0100)) /*Alchemy*/ ;
- _local28 = op_lf64(((_local9 + _local18) + 320)) /*Alchemy*/ ;
- _local29 = op_lf64(((_local9 + _local18) + 384)) /*Alchemy*/ ;
- _local30 = op_lf64(((_local9 + _local18) + 448)) /*Alchemy*/ ;
- _local31 = (_local23 + _local30);
- _local38 = (_local23 - _local30);
- _local32 = (_local24 + _local29);
- _local37 = (_local24 - _local29);
- _local33 = (_local25 + _local28);
- _local36 = (_local25 - _local28);
- _local34 = (_local26 + _local27);
- _local35 = (_local26 - _local27);
- _local39 = (_local31 + _local34);
- _local42 = (_local31 - _local34);
- _local40 = (_local32 + _local33);
- _local41 = (_local32 - _local33);
- op_sf64((_local39 + _local40), (_local9 + _local18)); //Alchemy
- op_sf64((_local39 - _local40), ((_local9 + _local18) + 0x0100)); //Alchemy
- _local43 = ((_local41 + _local42) * 0.707106781);
- op_sf64((_local42 + _local43), ((_local9 + _local18) + 128)); //Alchemy
- op_sf64((_local42 - _local43), ((_local9 + _local18) + 384)); //Alchemy
- _local39 = (_local35 + _local36);
- _local40 = (_local36 + _local37);
- _local41 = (_local37 + _local38);
- _local47 = ((_local39 - _local41) * 0.382683433);
- _local44 = ((0.5411961 * _local39) + _local47);
- _local46 = ((1.306562965 * _local41) + _local47);
- _local45 = (_local40 * 0.707106781);
- _local48 = (_local38 + _local45);
- _local49 = (_local38 - _local45);
- op_sf64((_local49 + _local44), ((_local9 + _local18) + 320)); //Alchemy
- op_sf64((_local49 - _local44), ((_local9 + _local18) + 192)); //Alchemy
- op_sf64((_local48 + _local46), ((_local9 + _local18) + 64)); //Alchemy
- op_sf64((_local48 - _local46), ((_local9 + _local18) + 448)); //Alchemy
- _local18 = (_local18 + 8);
- } while (_local18 < 64);
- _local19 = 0;
- do {
- _local50 = (op_lf64((_local9 + (_local19 << 3))) /*Alchemy*/ * op_lf64((1922 + (_local19 << 3))) /*Alchemy*/ );
- op_si32(((op_lf64((_local9 + (_local19 << 3))) /*Alchemy*/ * op_lf64((1922 + (_local19 << 3))) /*Alchemy*/ ) + ((_local50)>0) ? 0.5 : -0.5), (op_li8((2946 + _local19)) /*Alchemy*/ << 2)); //Alchemy
- ++_local19;
- } while (_local19 < 64);
- _local51 = op_li32(0) /*Alchemy*/ ;
- _local52 = (_local51 - _local22);
- _local22 = _local51;
- if (_local52 == 0){
- _local53 = op_li8(_local16) /*Alchemy*/ ;
- while (_local53--, _local53 >= 0) {
- if ((op_li16((_local16 + 1)) /*Alchemy*/ & (1 << _local53)) != 0){
- _local12 = (_local12 | (1 << _local11));
- };
- _local11--;
- if (_local11 < 0){
- if (_local12 == 0xFF){
- op_si16(0xFF, _local10); //Alchemy
- _local10 = (_local10 + 2);
- } else {
- op_si8(_local12, _local10); //Alchemy
- _local10++;
- };
- _local11 = 7;
- _local12 = 0;
- };
- };
- } else {
- _local18 = ((32767 + _local52) * 3);
- _local19 = (_local16 + (op_li8((5004 + _local18)) /*Alchemy*/ * 3));
- _local53 = op_li8(_local19) /*Alchemy*/ ;
- while (_local53--, _local53 >= 0) {
- if ((op_li16((_local19 + 1)) /*Alchemy*/ & (1 << _local53)) != 0){
- _local12 = (_local12 | (1 << _local11));
- };
- _local11--;
- if (_local11 < 0){
- if (_local12 == 0xFF){
- op_si16(0xFF, _local10); //Alchemy
- _local10 = (_local10 + 2);
- } else {
- op_si8(_local12, _local10); //Alchemy
- _local10++;
- };
- _local11 = 7;
- _local12 = 0;
- };
- };
- _local19 = (5004 + _local18);
- _local53 = op_li8(_local19) /*Alchemy*/ ;
- while (_local53--, _local53 >= 0) {
- if ((op_li16((_local19 + 1)) /*Alchemy*/ & (1 << _local53)) != 0){
- _local12 = (_local12 | (1 << _local11));
- };
- _local11--;
- if (_local11 < 0){
- if (_local12 == 0xFF){
- op_si16(0xFF, _local10); //Alchemy
- _local10 = (_local10 + 2);
- } else {
- op_si8(_local12, _local10); //Alchemy
- _local10++;
- };
- _local11 = 7;
- _local12 = 0;
- };
- };
- };
- _local19 = 63;
- while (if (_local19 > 0){
- false;
- }, false) {
- _local19--;
- };
- if (_local19 != 0){
- _local20 = 1;
- while (_local20 <= _local19) {
- _local54 = _local20;
- while (if (_local20 <= _local19){
- false;
- }, false) {
- _local20++;
- };
- _local55 = (_local20 - _local54);
- if (_local55 >= 16){
- _local53 = (_local55 >> 4);
- _local56 = 1;
- while (_local56 <= _local53) {
- _local21 = (_local17 + 720);
- _local57 = op_li8(_local21) /*Alchemy*/ ;
- while (_local57--, _local57 >= 0) {
- if ((op_li16((_local21 + 1)) /*Alchemy*/ & (1 << _local57)) != 0){
- _local12 = (_local12 | (1 << _local11));
- };
- _local11--;
- if (_local11 < 0){
- if (_local12 == 0xFF){
- op_si16(0xFF, _local10); //Alchemy
- _local10 = (_local10 + 2);
- } else {
- op_si8(_local12, _local10); //Alchemy
- _local10++;
- };
- _local11 = 7;
- _local12 = 0;
- };
- };
- _local56++;
- };
- _local55 = (_local55 & 15);
- };
- _local18 = ((32767 + op_li32((_local20 << 2)) /*Alchemy*/ ) * 3);
- _local21 = ((_local17 + ((_local55 << 4) * 3)) + (op_li8((5004 + _local18)) /*Alchemy*/ * 3));
- _local57 = op_li8(_local21) /*Alchemy*/ ;
- while (_local57--, _local57 >= 0) {
- if ((op_li16((_local21 + 1)) /*Alchemy*/ & (1 << _local57)) != 0){
- _local12 = (_local12 | (1 << _local11));
- };
- _local11--;
- if (_local11 < 0){
- if (_local12 == 0xFF){
- op_si16(0xFF, _local10); //Alchemy
- _local10 = (_local10 + 2);
- } else {
- op_si8(_local12, _local10); //Alchemy
- _local10++;
- };
- _local11 = 7;
- _local12 = 0;
- };
- };
- _local21 = (5004 + _local18);
- _local57 = op_li8(_local21) /*Alchemy*/ ;
- while (_local57--, _local57 >= 0) {
- if ((op_li16((_local21 + 1)) /*Alchemy*/ & (1 << _local57)) != 0){
- _local12 = (_local12 | (1 << _local11));
- };
- _local11--;
- if (_local11 < 0){
- if (_local12 == 0xFF){
- op_si16(0xFF, _local10); //Alchemy
- _local10 = (_local10 + 2);
- } else {
- op_si8(_local12, _local10); //Alchemy
- _local10++;
- };
- _local11 = 7;
- _local12 = 0;
- };
- };
- _local20++;
- };
- };
- if (_local19 != 63){
- _local53 = op_li8(_local17) /*Alchemy*/ ;
- while (_local53--, _local53 >= 0) {
- if ((op_li16((_local17 + 1)) /*Alchemy*/ & (1 << _local53)) != 0){
- _local12 = (_local12 | (1 << _local11));
- };
- _local11--;
- if (_local11 < 0){
- if (_local12 == 0xFF){
- op_si16(0xFF, _local10); //Alchemy
- _local10 = (_local10 + 2);
- } else {
- op_si8(_local12, _local10); //Alchemy
- _local10++;
- };
- _local11 = 7;
- _local12 = 0;
- };
- };
- };
- _local13 = _local22;
- _local9 = 0x0300;
- _local22 = _local14;
- _local16 = 4215;
- _local17 = 4251;
- _local18 = 0;
- do {
- _local23 = op_lf64((_local9 + _local18)) /*Alchemy*/ ;
- _local24 = op_lf64(((_local9 + _local18) + 8)) /*Alchemy*/ ;
- _local25 = op_lf64(((_local9 + _local18) + 16)) /*Alchemy*/ ;
- _local26 = op_lf64(((_local9 + _local18) + 24)) /*Alchemy*/ ;
- _local27 = op_lf64(((_local9 + _local18) + 32)) /*Alchemy*/ ;
- _local28 = op_lf64(((_local9 + _local18) + 40)) /*Alchemy*/ ;
- _local29 = op_lf64(((_local9 + _local18) + 48)) /*Alchemy*/ ;
- _local30 = op_lf64(((_local9 + _local18) + 56)) /*Alchemy*/ ;
- _local31 = (_local23 + _local30);
- _local38 = (_local23 - _local30);
- _local32 = (_local24 + _local29);
- _local37 = (_local24 - _local29);
- _local33 = (_local25 + _local28);
- _local36 = (_local25 - _local28);
- _local34 = (_local26 + _local27);
- _local35 = (_local26 - _local27);
- _local39 = (_local31 + _local34);
- _local42 = (_local31 - _local34);
- _local40 = (_local32 + _local33);
- _local41 = (_local32 - _local33);
- op_sf64((_local39 + _local40), (_local9 + _local18)); //Alchemy
- op_sf64((_local39 - _local40), ((_local9 + _local18) + 32)); //Alchemy
- _local43 = ((_local41 + _local42) * 0.707106781);
- op_sf64((_local42 + _local43), ((_local9 + _local18) + 16)); //Alchemy
- op_sf64((_local42 - _local43), ((_local9 + _local18) + 48)); //Alchemy
- _local39 = (_local35 + _local36);
- _local40 = (_local36 + _local37);
- _local41 = (_local37 + _local38);
- _local47 = ((_local39 - _local41) * 0.382683433);
- _local44 = ((0.5411961 * _local39) + _local47);
- _local46 = ((1.306562965 * _local41) + _local47);
- _local45 = (_local40 * 0.707106781);
- _local48 = (_local38 + _local45);
- _local49 = (_local38 - _local45);
- op_sf64((_local49 + _local44), ((_local9 + _local18) + 40)); //Alchemy
- op_sf64((_local49 - _local44), ((_local9 + _local18) + 24)); //Alchemy
- op_sf64((_local48 + _local46), ((_local9 + _local18) + 8)); //Alchemy
- op_sf64((_local48 - _local46), ((_local9 + _local18) + 56)); //Alchemy
- _local18 = (_local18 + 64);
- } while (_local18 < 0x0200);
- _local18 = 0;
- do {
- _local23 = op_lf64((_local9 + _local18)) /*Alchemy*/ ;
- _local24 = op_lf64(((_local9 + _local18) + 64)) /*Alchemy*/ ;
- _local25 = op_lf64(((_local9 + _local18) + 128)) /*Alchemy*/ ;
- _local26 = op_lf64(((_local9 + _local18) + 192)) /*Alchemy*/ ;
- _local27 = op_lf64(((_local9 + _local18) + 0x0100)) /*Alchemy*/ ;
- _local28 = op_lf64(((_local9 + _local18) + 320)) /*Alchemy*/ ;
- _local29 = op_lf64(((_local9 + _local18) + 384)) /*Alchemy*/ ;
- _local30 = op_lf64(((_local9 + _local18) + 448)) /*Alchemy*/ ;
- _local31 = (_local23 + _local30);
- _local38 = (_local23 - _local30);
- _local32 = (_local24 + _local29);
- _local37 = (_local24 - _local29);
- _local33 = (_local25 + _local28);
- _local36 = (_local25 - _local28);
- _local34 = (_local26 + _local27);
- _local35 = (_local26 - _local27);
- _local39 = (_local31 + _local34);
- _local42 = (_local31 - _local34);
- _local40 = (_local32 + _local33);
- _local41 = (_local32 - _local33);
- op_sf64((_local39 + _local40), (_local9 + _local18)); //Alchemy
- op_sf64((_local39 - _local40), ((_local9 + _local18) + 0x0100)); //Alchemy
- _local43 = ((_local41 + _local42) * 0.707106781);
- op_sf64((_local42 + _local43), ((_local9 + _local18) + 128)); //Alchemy
- op_sf64((_local42 - _local43), ((_local9 + _local18) + 384)); //Alchemy
- _local39 = (_local35 + _local36);
- _local40 = (_local36 + _local37);
- _local41 = (_local37 + _local38);
- _local47 = ((_local39 - _local41) * 0.382683433);
- _local44 = ((0.5411961 * _local39) + _local47);
- _local46 = ((1.306562965 * _local41) + _local47);
- _local45 = (_local40 * 0.707106781);
- _local48 = (_local38 + _local45);
- _local49 = (_local38 - _local45);
- op_sf64((_local49 + _local44), ((_local9 + _local18) + 320)); //Alchemy
- op_sf64((_local49 - _local44), ((_local9 + _local18) + 192)); //Alchemy
- op_sf64((_local48 + _local46), ((_local9 + _local18) + 64)); //Alchemy
- op_sf64((_local48 - _local46), ((_local9 + _local18) + 448)); //Alchemy
- _local18 = (_local18 + 8);
- } while (_local18 < 64);
- _local19 = 0;
- do {
- _local50 = (op_lf64((_local9 + (_local19 << 3))) /*Alchemy*/ * op_lf64((2434 + (_local19 << 3))) /*Alchemy*/ );
- op_si32(((op_lf64((_local9 + (_local19 << 3))) /*Alchemy*/ * op_lf64((2434 + (_local19 << 3))) /*Alchemy*/ ) + ((_local50)>0) ? 0.5 : -0.5), (op_li8((2946 + _local19)) /*Alchemy*/ << 2)); //Alchemy
- ++_local19;
- } while (_local19 < 64);
- _local51 = op_li32(0) /*Alchemy*/ ;
- _local52 = (_local51 - _local22);
- _local22 = _local51;
- if (_local52 == 0){
- _local53 = op_li8(_local16) /*Alchemy*/ ;
- while (_local53--, _local53 >= 0) {
- if ((op_li16((_local16 + 1)) /*Alchemy*/ & (1 << _local53)) != 0){
- _local12 = (_local12 | (1 << _local11));
- };
- _local11--;
- if (_local11 < 0){
- if (_local12 == 0xFF){
- op_si16(0xFF, _local10); //Alchemy
- _local10 = (_local10 + 2);
- } else {
- op_si8(_local12, _local10); //Alchemy
- _local10++;
- };
- _local11 = 7;
- _local12 = 0;
- };
- };
- } else {
- _local18 = ((32767 + _local52) * 3);
- _local19 = (_local16 + (op_li8((5004 + _local18)) /*Alchemy*/ * 3));
- _local53 = op_li8(_local19) /*Alchemy*/ ;
- while (_local53--, _local53 >= 0) {
- if ((op_li16((_local19 + 1)) /*Alchemy*/ & (1 << _local53)) != 0){
- _local12 = (_local12 | (1 << _local11));
- };
- _local11--;
- if (_local11 < 0){
- if (_local12 == 0xFF){
- op_si16(0xFF, _local10); //Alchemy
- _local10 = (_local10 + 2);
- } else {
- op_si8(_local12, _local10); //Alchemy
- _local10++;
- };
- _local11 = 7;
- _local12 = 0;
- };
- };
- _local19 = (5004 + _local18);
- _local53 = op_li8(_local19) /*Alchemy*/ ;
- while (_local53--, _local53 >= 0) {
- if ((op_li16((_local19 + 1)) /*Alchemy*/ & (1 << _local53)) != 0){
- _local12 = (_local12 | (1 << _local11));
- };
- _local11--;
- if (_local11 < 0){
- if (_local12 == 0xFF){
- op_si16(0xFF, _local10); //Alchemy
- _local10 = (_local10 + 2);
- } else {
- op_si8(_local12, _local10); //Alchemy
- _local10++;
- };
- _local11 = 7;
- _local12 = 0;
- };
- };
- };
- _local19 = 63;
- while (if (_local19 > 0){
- false;
- }, false) {
- _local19--;
- };
- if (_local19 != 0){
- _local20 = 1;
- while (_local20 <= _local19) {
- _local54 = _local20;
- while (if (_local20 <= _local19){
- false;
- }, false) {
- _local20++;
- };
- _local55 = (_local20 - _local54);
- if (_local55 >= 16){
- _local53 = (_local55 >> 4);
- _local56 = 1;
- while (_local56 <= _local53) {
- _local21 = (_local17 + 720);
- _local57 = op_li8(_local21) /*Alchemy*/ ;
- while (_local57--, _local57 >= 0) {
- if ((op_li16((_local21 + 1)) /*Alchemy*/ & (1 << _local57)) != 0){
- _local12 = (_local12 | (1 << _local11));
- };
- _local11--;
- if (_local11 < 0){
- if (_local12 == 0xFF){
- op_si16(0xFF, _local10); //Alchemy
- _local10 = (_local10 + 2);
- } else {
- op_si8(_local12, _local10); //Alchemy
- _local10++;
- };
- _local11 = 7;
- _local12 = 0;
- };
- };
- _local56++;
- };
- _local55 = (_local55 & 15);
- };
- _local18 = ((32767 + op_li32((_local20 << 2)) /*Alchemy*/ ) * 3);
- _local21 = ((_local17 + ((_local55 << 4) * 3)) + (op_li8((5004 + _local18)) /*Alchemy*/ * 3));
- _local57 = op_li8(_local21) /*Alchemy*/ ;
- while (_local57--, _local57 >= 0) {
- if ((op_li16((_local21 + 1)) /*Alchemy*/ & (1 << _local57)) != 0){
- _local12 = (_local12 | (1 << _local11));
- };
- _local11--;
- if (_local11 < 0){
- if (_local12 == 0xFF){
- op_si16(0xFF, _local10); //Alchemy
- _local10 = (_local10 + 2);
- } else {
- op_si8(_local12, _local10); //Alchemy
- _local10++;
- };
- _local11 = 7;
- _local12 = 0;
- };
- };
- _local21 = (5004 + _local18);
- _local57 = op_li8(_local21) /*Alchemy*/ ;
- while (_local57--, _local57 >= 0) {
- if ((op_li16((_local21 + 1)) /*Alchemy*/ & (1 << _local57)) != 0){
- _local12 = (_local12 | (1 << _local11));
- };
- _local11--;
- if (_local11 < 0){
- if (_local12 == 0xFF){
- op_si16(0xFF, _local10); //Alchemy
- _local10 = (_local10 + 2);
- } else {
- op_si8(_local12, _local10); //Alchemy
- _local10++;
- };
- _local11 = 7;
- _local12 = 0;
- };
- };
- _local20++;
- };
- };
- if (_local19 != 63){
- _local53 = op_li8(_local17) /*Alchemy*/ ;
- while (_local53--, _local53 >= 0) {
- if ((op_li16((_local17 + 1)) /*Alchemy*/ & (1 << _local53)) != 0){
- _local12 = (_local12 | (1 << _local11));
- };
- _local11--;
- if (_local11 < 0){
- if (_local12 == 0xFF){
- op_si16(0xFF, _local10); //Alchemy
- _local10 = (_local10 + 2);
- } else {
- op_si8(_local12, _local10); //Alchemy
- _local10++;
- };
- _local11 = 7;
- _local12 = 0;
- };
- };
- };
- _local14 = _local22;
- _local9 = 0x0500;
- _local22 = _local15;
- _local16 = 4215;
- _local17 = 4251;
- _local18 = 0;
- do {
- _local23 = op_lf64((_local9 + _local18)) /*Alchemy*/ ;
- _local24 = op_lf64(((_local9 + _local18) + 8)) /*Alchemy*/ ;
- _local25 = op_lf64(((_local9 + _local18) + 16)) /*Alchemy*/ ;
- _local26 = op_lf64(((_local9 + _local18) + 24)) /*Alchemy*/ ;
- _local27 = op_lf64(((_local9 + _local18) + 32)) /*Alchemy*/ ;
- _local28 = op_lf64(((_local9 + _local18) + 40)) /*Alchemy*/ ;
- _local29 = op_lf64(((_local9 + _local18) + 48)) /*Alchemy*/ ;
- _local30 = op_lf64(((_local9 + _local18) + 56)) /*Alchemy*/ ;
- _local31 = (_local23 + _local30);
- _local38 = (_local23 - _local30);
- _local32 = (_local24 + _local29);
- _local37 = (_local24 - _local29);
- _local33 = (_local25 + _local28);
- _local36 = (_local25 - _local28);
- _local34 = (_local26 + _local27);
- _local35 = (_local26 - _local27);
- _local39 = (_local31 + _local34);
- _local42 = (_local31 - _local34);
- _local40 = (_local32 + _local33);
- _local41 = (_local32 - _local33);
- op_sf64((_local39 + _local40), (_local9 + _local18)); //Alchemy
- op_sf64((_local39 - _local40), ((_local9 + _local18) + 32)); //Alchemy
- _local43 = ((_local41 + _local42) * 0.707106781);
- op_sf64((_local42 + _local43), ((_local9 + _local18) + 16)); //Alchemy
- op_sf64((_local42 - _local43), ((_local9 + _local18) + 48)); //Alchemy
- _local39 = (_local35 + _local36);
- _local40 = (_local36 + _local37);
- _local41 = (_local37 + _local38);
- _local47 = ((_local39 - _local41) * 0.382683433);
- _local44 = ((0.5411961 * _local39) + _local47);
- _local46 = ((1.306562965 * _local41) + _local47);
- _local45 = (_local40 * 0.707106781);
- _local48 = (_local38 + _local45);
- _local49 = (_local38 - _local45);
- op_sf64((_local49 + _local44), ((_local9 + _local18) + 40)); //Alchemy
- op_sf64((_local49 - _local44), ((_local9 + _local18) + 24)); //Alchemy
- op_sf64((_local48 + _local46), ((_local9 + _local18) + 8)); //Alchemy
- op_sf64((_local48 - _local46), ((_local9 + _local18) + 56)); //Alchemy
- _local18 = (_local18 + 64);
- } while (_local18 < 0x0200);
- _local18 = 0;
- do {
- _local23 = op_lf64((_local9 + _local18)) /*Alchemy*/ ;
- _local24 = op_lf64(((_local9 + _local18) + 64)) /*Alchemy*/ ;
- _local25 = op_lf64(((_local9 + _local18) + 128)) /*Alchemy*/ ;
- _local26 = op_lf64(((_local9 + _local18) + 192)) /*Alchemy*/ ;
- _local27 = op_lf64(((_local9 + _local18) + 0x0100)) /*Alchemy*/ ;
- _local28 = op_lf64(((_local9 + _local18) + 320)) /*Alchemy*/ ;
- _local29 = op_lf64(((_local9 + _local18) + 384)) /*Alchemy*/ ;
- _local30 = op_lf64(((_local9 + _local18) + 448)) /*Alchemy*/ ;
- _local31 = (_local23 + _local30);
- _local38 = (_local23 - _local30);
- _local32 = (_local24 + _local29);
- _local37 = (_local24 - _local29);
- _local33 = (_local25 + _local28);
- _local36 = (_local25 - _local28);
- _local34 = (_local26 + _local27);
- _local35 = (_local26 - _local27);
- _local39 = (_local31 + _local34);
- _local42 = (_local31 - _local34);
- _local40 = (_local32 + _local33);
- _local41 = (_local32 - _local33);
- op_sf64((_local39 + _local40), (_local9 + _local18)); //Alchemy
- op_sf64((_local39 - _local40), ((_local9 + _local18) + 0x0100)); //Alchemy
- _local43 = ((_local41 + _local42) * 0.707106781);
- op_sf64((_local42 + _local43), ((_local9 + _local18) + 128)); //Alchemy
- op_sf64((_local42 - _local43), ((_local9 + _local18) + 384)); //Alchemy
- _local39 = (_local35 + _local36);
- _local40 = (_local36 + _local37);
- _local41 = (_local37 + _local38);
- _local47 = ((_local39 - _local41) * 0.382683433);
- _local44 = ((0.5411961 * _local39) + _local47);
- _local46 = ((1.306562965 * _local41) + _local47);
- _local45 = (_local40 * 0.707106781);
- _local48 = (_local38 + _local45);
- _local49 = (_local38 - _local45);
- op_sf64((_local49 + _local44), ((_local9 + _local18) + 320)); //Alchemy
- op_sf64((_local49 - _local44), ((_local9 + _local18) + 192)); //Alchemy
- op_sf64((_local48 + _local46), ((_local9 + _local18) + 64)); //Alchemy
- op_sf64((_local48 - _local46), ((_local9 + _local18) + 448)); //Alchemy
- _local18 = (_local18 + 8);
- } while (_local18 < 64);
- _local19 = 0;
- do {
- _local50 = (op_lf64((_local9 + (_local19 << 3))) /*Alchemy*/ * op_lf64((2434 + (_local19 << 3))) /*Alchemy*/ );
- op_si32(((op_lf64((_local9 + (_local19 << 3))) /*Alchemy*/ * op_lf64((2434 + (_local19 << 3))) /*Alchemy*/ ) + ((_local50)>0) ? 0.5 : -0.5), (op_li8((2946 + _local19)) /*Alchemy*/ << 2)); //Alchemy
- ++_local19;
- } while (_local19 < 64);
- _local51 = op_li32(0) /*Alchemy*/ ;
- _local52 = (_local51 - _local22);
- _local22 = _local51;
- if (_local52 == 0){
- _local53 = op_li8(_local16) /*Alchemy*/ ;
- while (_local53--, _local53 >= 0) {
- if ((op_li16((_local16 + 1)) /*Alchemy*/ & (1 << _local53)) != 0){
- _local12 = (_local12 | (1 << _local11));
- };
- _local11--;
- if (_local11 < 0){
- if (_local12 == 0xFF){
- op_si16(0xFF, _local10); //Alchemy
- _local10 = (_local10 + 2);
- } else {
- op_si8(_local12, _local10); //Alchemy
- _local10++;
- };
- _local11 = 7;
- _local12 = 0;
- };
- };
- } else {
- _local18 = ((32767 + _local52) * 3);
- _local19 = (_local16 + (op_li8((5004 + _local18)) /*Alchemy*/ * 3));
- _local53 = op_li8(_local19) /*Alchemy*/ ;
- while (_local53--, _local53 >= 0) {
- if ((op_li16((_local19 + 1)) /*Alchemy*/ & (1 << _local53)) != 0){
- _local12 = (_local12 | (1 << _local11));
- };
- _local11--;
- if (_local11 < 0){
- if (_local12 == 0xFF){
- op_si16(0xFF, _local10); //Alchemy
- _local10 = (_local10 + 2);
- } else {
- op_si8(_local12, _local10); //Alchemy
- _local10++;
- };
- _local11 = 7;
- _local12 = 0;
- };
- };
- _local19 = (5004 + _local18);
- _local53 = op_li8(_local19) /*Alchemy*/ ;
- while (_local53--, _local53 >= 0) {
- if ((op_li16((_local19 + 1)) /*Alchemy*/ & (1 << _local53)) != 0){
- _local12 = (_local12 | (1 << _local11));
- };
- _local11--;
- if (_local11 < 0){
- if (_local12 == 0xFF){
- op_si16(0xFF, _local10); //Alchemy
- _local10 = (_local10 + 2);
- } else {
- op_si8(_local12, _local10); //Alchemy
- _local10++;
- };
- _local11 = 7;
- _local12 = 0;
- };
- };
- };
- _local19 = 63;
- while (if (_local19 > 0){
- false;
- }, false) {
- _local19--;
- };
- if (_local19 != 0){
- _local20 = 1;
- while (_local20 <= _local19) {
- _local54 = _local20;
- while (if (_local20 <= _local19){
- false;
- }, false) {
- _local20++;
- };
- _local55 = (_local20 - _local54);
- if (_local55 >= 16){
- _local53 = (_local55 >> 4);
- _local56 = 1;
- while (_local56 <= _local53) {
- _local21 = (_local17 + 720);
- _local57 = op_li8(_local21) /*Alchemy*/ ;
- while (_local57--, _local57 >= 0) {
- if ((op_li16((_local21 + 1)) /*Alchemy*/ & (1 << _local57)) != 0){
- _local12 = (_local12 | (1 << _local11));
- };
- _local11--;
- if (_local11 < 0){
- if (_local12 == 0xFF){
- op_si16(0xFF, _local10); //Alchemy
- _local10 = (_local10 + 2);
- } else {
- op_si8(_local12, _local10); //Alchemy
- _local10++;
- };
- _local11 = 7;
- _local12 = 0;
- };
- };
- _local56++;
- };
- _local55 = (_local55 & 15);
- };
- _local18 = ((32767 + op_li32((_local20 << 2)) /*Alchemy*/ ) * 3);
- _local21 = ((_local17 + ((_local55 << 4) * 3)) + (op_li8((5004 + _local18)) /*Alchemy*/ * 3));
- _local57 = op_li8(_local21) /*Alchemy*/ ;
- while (_local57--, _local57 >= 0) {
- if ((op_li16((_local21 + 1)) /*Alchemy*/ & (1 << _local57)) != 0){
- _local12 = (_local12 | (1 << _local11));
- };
- _local11--;
- if (_local11 < 0){
- if (_local12 == 0xFF){
- op_si16(0xFF, _local10); //Alchemy
- _local10 = (_local10 + 2);
- } else {
- op_si8(_local12, _local10); //Alchemy
- _local10++;
- };
- _local11 = 7;
- _local12 = 0;
- };
- };
- _local21 = (5004 + _local18);
- _local57 = op_li8(_local21) /*Alchemy*/ ;
- while (_local57--, _local57 >= 0) {
- if ((op_li16((_local21 + 1)) /*Alchemy*/ & (1 << _local57)) != 0){
- _local12 = (_local12 | (1 << _local11));
- };
- _local11--;
- if (_local11 < 0){
- if (_local12 == 0xFF){
- op_si16(0xFF, _local10); //Alchemy
- _local10 = (_local10 + 2);
- } else {
- op_si8(_local12, _local10); //Alchemy
- _local10++;
- };
- _local11 = 7;
- _local12 = 0;
- };
- };
- _local20++;
- };
- };
- if (_local19 != 63){
- _local53 = op_li8(_local17) /*Alchemy*/ ;
- while (_local53--, _local53 >= 0) {
- if ((op_li16((_local17 + 1)) /*Alchemy*/ & (1 << _local53)) != 0){
- _local12 = (_local12 | (1 << _local11));
- };
- _local11--;
- if (_local11 < 0){
- if (_local12 == 0xFF){
- op_si16(0xFF, _local10); //Alchemy
- _local10 = (_local10 + 2);
- } else {
- op_si8(_local12, _local10); //Alchemy
- _local10++;
- };
- _local11 = 7;
- _local12 = 0;
- };
- };
- };
- _local15 = _local22;
- _local7 = (_local7 + 8);
- } while (_local7 < _local4);
- _local8 = (_local8 + 8);
- } while (_local8 < _local5);
- if (_local11 >= 0){
- _local22 = (_local11 + 1);
- while (_local22--, _local22 >= 0) {
- if ((((1 << (_local11 + 1)) - 1) & (1 << _local22)) != 0){
- _local12 = (_local12 | (1 << _local11));
- };
- _local11--;
- if (_local11 < 0){
- if (_local12 == 0xFF){
- op_si16(0xFF, _local10); //Alchemy
- _local10 = (_local10 + 2);
- } else {
- op_si8(_local12, _local10); //Alchemy
- _local10++;
- };
- _local11 = 7;
- _local12 = 0;
- };
- };
- };
- op_si16(55807, _local10); //Alchemy
- ApplicationDomain.currentDomain.domainMemory = _local3;
- var _local58:ByteArray = new ByteArray();
- _local58.writeBytes(_local6, 201609, ((_local10 - 201609) + 2));
- _local58.position = 0;
- return (_local58);
- }
- }
- }//package by.blooddy.crypto.image
- ?package {
- import flash.display.*;
- import flash.geom.*;
- import flash.filters.*;
- public class ImageHelper {
- public static function resize(_arg1:Bitmap, _arg2:number, _arg3:number):Bitmap{
- var _local4:number = 1;
- var _local5:Matrix = new Matrix();
- if ((((_arg1.width > _arg2)) || ((_arg1.height > _arg3)))){
- _local4 = math.min((_arg2 / _arg1.width), (_arg3 / _arg1.height));
- _local5.scale(_local4, _local4);
- };
- _arg1.smoothing = true;
- var _local6:BitmapData = new BitmapData((_arg1.width * _local4), (_arg1.height * _local4), true, 0xFFFFFFFF);
- _local6.draw(_arg1, _local5, null, null, null, true);
- return (new Bitmap(_local6, PixelSnapping.AUTO, true));
- }
- private static function applySharpen(_arg1:BitmapData, _arg2:boolean=false):void{
- var _local3:ConvolutionFilter = new ConvolutionFilter();
- _local3.matrixX = 3;
- _local3.matrixY = 3;
- _local3.bias = 0;
- if (_arg2){
- _local3.divisor = 20;
- _local3.matrix = [-1, -1, -1, -1, 28, -1, -1, -1, -1];
- } else {
- _local3.divisor = 7;
- _local3.matrix = [0, -2, 0, -2, 15, -2, 0, -2, 0];
- };
- _arg1.applyFilter(_arg1, _arg1.rect, new Point(0, 0), _local3);
- }
- public static function rotateRight(_arg1:Bitmap):Bitmap{
- return (ImageHelper.rotate(_arg1, 1));
- }
- public static function rotateLeft(_arg1:Bitmap):Bitmap{
- return (ImageHelper.rotate(_arg1, 2));
- }
- private static function rotate(_arg1:Bitmap, _arg2:number):Bitmap{
- var _local3:Matrix = new Matrix();
- switch (_arg2){
- case 2:
- _local3.rotate((-(math.pi) / 2));
- _local3.translate(0, _arg1.width);
- break;
- default:
- _local3.rotate((math.pi / 2));
- _local3.translate(_arg1.height, 0);
- };
- _arg1.smoothing = true;
- var _local4:BitmapData = new BitmapData(_arg1.height, _arg1.width, true, 0xFFFFFFFF);
- _local4.draw(_arg1, _local3, null, null, null, true);
- return (new Bitmap(_local4, PixelSnapping.AUTO, true));
- }
- }
- }//package
- ?package {
- import flash.utils.*;
- public class UploadPostData {
- private var _boundary:string = "";
- private var _post_data:ByteArray;
- private var partNum:number = 0;
- private var count:number = 0;
- public function UploadPostData(_arg1:string, _arg2:string, _arg3:ByteArray){
- var _local4:number;
- super();
- this._post_data = new ByteArray();
- this._post_data = this.BOUNDARY(this._post_data);
- this._post_data = this.LINEBREAK(this._post_data);
- var _local5 = (("Content-Disposition: form-data; name=\"Filename\"\r\n\r\n" + _arg2) + "\r\n");
- _local4 = 0;
- while (_local4 < _local5.length) {
- this._post_data.writeByte(_local5.charcodeat(_local4));
- _local4++;
- };
- this._post_data = this.BOUNDARY(this._post_data);
- _local5 = (("\r\nContent-Disposition: form-data; name=\"photo\"; filename=\"" + _arg2) + "\"\r\nContent-Type: application/octet-stream\r\n\r\n");
- _local4 = 0;
- while (_local4 < _local5.length) {
- this._post_data.writeByte(_local5.charcodeat(_local4));
- _local4++;
- };
- this._post_data.writeBytes(_arg3, 0, _arg3.length);
- this._post_data = this.LINEBREAK(this._post_data);
- this._post_data = this.BOUNDARY(this._post_data);
- _local5 = "\r\nContent-Disposition: form-data; name=\"Upload\"\r\n\r\nSubmit Query\r\n";
- _local4 = 0;
- while (_local4 < _local5.length) {
- this._post_data.writeByte(_local5.charcodeat(_local4));
- _local4++;
- };
- this._post_data = this.DOUBLEDASH(this.BOUNDARY(this._post_data));
- }
- public function reset():void{
- this._post_data.clear();
- this._post_data = new ByteArray();
- this._boundary = "";
- }
- public function getBoundary():string{
- var _local1:int;
- if (this._boundary.length == 0){
- _local1 = 0;
- while (_local1 < 32) {
- this._boundary = (this._boundary + string.fromcharcode(int((97 + (math.random() * 25)))));
- _local1++;
- };
- };
- return (this._boundary);
- }
- public function getPostData():ByteArray{
- return (this._post_data);
- }
- private function BOUNDARY(_arg1:ByteArray):ByteArray{
- var _local2:int = this.getBoundary().length;
- _arg1 = this.DOUBLEDASH(_arg1);
- var _local3:int;
- while (_local3 < _local2) {
- _arg1.writeByte(this._boundary.charcodeat(_local3));
- _local3++;
- };
- return (_arg1);
- }
- private function LINEBREAK(_arg1:ByteArray):ByteArray{
- _arg1.writeShort(3338);
- return (_arg1);
- }
- private function QUOTATIONMARK(_arg1:ByteArray):ByteArray{
- _arg1.writeByte(34);
- return (_arg1);
- }
- private function DOUBLEDASH(_arg1:ByteArray):ByteArray{
- _arg1.writeShort(0x2D2D);
- return (_arg1);
- }
- }
- }//package
- ?package {
- import flash.net.*;
- import flash.display.*;
- public class Config {
- private static var _config:object = {
- upload_url:"http://localhost/index.php",
- redirect_url:"",
- file_size_limit:((0x0400 * 0x0400) * 10),
- file_types_description:"All files, *.*",
- file_types:"*.*",
- file_name:"",
- post_data:"",
- max_files:200,
- jpeg_quality:93,
- lang:{
- button_browse:"Открыть файл",
- button_terminate:"Прервать"
- },
- onMouseOver:"debugLog",
- onMouseOut:"debugLog",
- onmousedown:"debugLog",
- onmouseup:"debugLog",
- onUploadStart:"onUploadStart",
- onUploadProgress:"onUploadProgress",
- onUploadError:"onUploadError",
- onUploadSuccess:"onUploadSuccess",
- onUploadComplete:"onUploadComplete",
- onSelectClick:"onSelectClick",
- onDebug:"onDebug"
- };
- public static function getConfig():object{
- return (_config);
- }
- public static function setConfig(_arg1:object):void{
- var key:* = null;
- var value:* = null;
- var is_lang:* = false;
- var is_callback:* = false;
- var parameters:* = _arg1;
- try {
- is_lang = false;
- is_callback = false;
- for (key in parameters) {
- value = string(parameters[key]);
- is_lang = (((key.indexof("lang.") == 0)) && (!((_config.lang[key.substr(5)] === undefined))));
- if (is_lang){
- _config.lang[key.substr(5)] = unescape(value);
- } else {
- if (_config[key] !== undefined){
- _config[key] = unescape(value);
- };
- };
- };
- } catch(error:error) {
- };
- }
- public static function loadConfig(_arg1:LoaderInfo):object{
- var parameters:* = null;
- var urlQuery:* = null;
- var urlVars:* = null;
- var key:* = null;
- var loaderInfo:* = _arg1;
- try {
- loaderInfo = LoaderInfo(loaderInfo);
- parameters = loaderInfo.parameters;
- urlQuery = loaderInfo.url.split("?")[1];
- urlVars = new URLVariables(((urlQuery) || ("")));
- for (key in urlVars) {
- if (parameters[key]){
- delete parameters[key];
- };
- };
- setConfig(parameters);
- } catch(error:error) {
- };
- return (_config);
- }
- }
- }//package
Advertisement
Add Comment
Please, Sign In to add comment