alright, im trying to build this client, but the server is encryped, and I have this decryption function, but its in Perl, and I want to make the client in PHP. If anyone here knows Perl, can you please try to translate this function?
sub decrypt {
my $r_msg = shift;
my $themsg = shift;
my @mask;
my $i;
my ($temp, $msg_temp, $len_add, $len_total, $loopin, $len, $val);
if ($config{'encrypt'} == 1) {
undef $$r_msg;
undef $len_add;
undef $msg_temp;
for ($i = 0; $i < 13;$i++) {
$mask[$i] = 0;
}
$len = unpack("S1",substr($themsg,0,2));
$val = unpack("S1",substr($themsg,2,2));
{
use integer;
$temp = ($val * $val * 1391);
}
$temp = ~(~($temp));
$temp = $temp % 13;
$mask[$temp] = 1;
{
use integer;
$temp = $val * 1397;
}
$temp = ~(~($temp));
$temp = $temp % 13;
$mask[$temp] = 1;
for($loopin = 0; ($loopin + 4) < $len; $loopin++) {
if (!($mask[$loopin % 13])) {
$msg_temp .= substr($themsg,$loopin + 4,1);
}
}
if (($len - 4) % 8 != 0) {
$len_add = 8 - (($len - 4) % 8);
}
$len_total = $len + $len_add;
$$r_msg = $msg_temp.substr($themsg, $len_total, length($themsg) - $len_total);
} elsif ($config{'encrypt'} >= 2) {
undef $$r_msg;
undef $len_add;
undef $msg_temp;
for ($i = 0; $i < 17;$i++) {
$mask[$i] = 0;
}
$len = unpack("S1",substr($themsg,0,2));
$val = unpack("S1",substr($themsg,2,2));
{
use integer;
$temp = ($val * $val * 34953);
}
$temp = ~(~($temp));
$temp = $temp % 17;
$mask[$temp] = 1;
{
use integer;
$temp = $val * 2341;
}
$temp = ~(~($temp));
$temp = $temp % 17;
$mask[$temp] = 1;
for($loopin = 0; ($loopin + 4) < $len; $loopin++) {
if (!($mask[$loopin % 17])) {
$msg_temp .= substr($themsg,$loopin + 4,1);
}
}
if (($len - 4) % 8 != 0) {
$len_add = 8 - (($len - 4) % 8);
}
$len_total = $len + $len_add;
$$r_msg = $msg_temp.substr($themsg, $len_total, length($themsg) - $len_total);
} else {
$$r_msg = $themsg;
}
}