Код AS3:
package utils
{
public class Base91 extends Object
{
public static const base:String = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ !@#$%^&*()-_+=[]{},.<>?/;:|~";
public function Base91()
{
return;
}// end function
public static function toString1byte(param1:int) : String
{
if (param1 < 0)
{
param1 = 0;
}
if (param1 > 90)
{
param1 = 90;
}
return base.charAt(param1);
}// end function
public static function toString2byte(param1:int) : String
{
if (param1 < 0)
{
param1 = 0;
}
if (param1 > 8280)
{
param1 = 8280;
}
return base.charAt(param1 / 91) + base.charAt(param1 % 91);
}// end function
public static function toString3byte(param1:int) : String
{
if (param1 < 0)
{
param1 = 0;
}
if (param1 > 753570)
{
param1 = 753570;
}
return base.charAt(param1 / 8281) + base.charAt(param1 / 91 % 91) + base.charAt(param1 % 91);
}// end function
public static function toInt1byte(param1:String) : int
{
return base.indexOf(param1.charAt(0));
}// end function
public static function toInt2byte(param1:String) : int
{
return base.indexOf(param1.charAt(0)) * 91 + base.indexOf(param1.charAt(1));
}// end function
public static function toInt3byte(param1:String) : int
{
return base.indexOf(param1.charAt(0)) * 8281 + base.indexOf(param1.charAt(1)) * 91 + base.indexOf(param1.charAt(2));
}// end function
public static function logRotToString1Byte(param1:Number) : String
{
while (param1 > Math.PI * 2)
{
param1 = param1 - Math.PI * 2;
}
while (param1 < (-Math.PI) * 2)
{
param1 = param1 + Math.PI * 2;
}
if (param1 < 0)
{
param1 = param1 + Math.PI * 2;
}
return toString1byte(int(param1 * 91 / (2 * Math.PI)));
}// end function
public static function getRotFromString1Byte(param1:String) : Number
{
return Number(2 * Math.PI * toInt1byte(param1) / 91);
}// end function
public static function logFloatToString1Byte(param1:Number) : String
{
if (param1 < -6)
{
param1 = -6;
}
if (param1 > 6)
{
param1 = 6;
}
param1 = 0;
return toString1byte(int(2 * 6 * param1 + 40));
}// end function
public static function getFloatFromString1Byte(param1:String) : Number
{
return Number(toInt1byte(param1) - 40) / (2 * 6);
}// end function
}
}
Этот класс преображает данные так:
Код:
1qw23er4 = bD/CP3hPXbwh
idnKil = gb0pQS9tpSw5
Можно ли понять, что она делает и как-то обратить эту функцию обратно?