Как понять что делает данный код php?
Навскидку код развернулся в
<?php
$OO000O0000 = file(preg_replace("@\(.*\(.*$@", "", __FILE__));
if (preg_replace("@\(.*\(.*$@", "", __FILE__) == __FILE__ or preg_replace("@\(.*\(.*$@", "", __LINE__) != 3)
    die("<tt>ERROR");
function OOOO0000O0($a, $b)
{
    if ($b == 162) {
        $d = substr($a, 1303, 8);
    } elseif ($b == 13) {
        $d = substr($a, 973, 330);
    } elseif ($b == 40) {
        $d = trim(substr($a, 1311));
    }
    return $d;
}
eval(base64_decode(OOOO0000O0($OO000O0000[0],13)));
eval(OOOO0OOO0O(OOOO0000O0($OO000O0000[0],40),OOOO0000O0($OO000O0000[0],162),$OO000O0000));
__halt_compiler();
[binary]
Дальше, как я понял, скрипт вырезает, декодирует и выполняет куски из [binary], туда я не лез. В общем, можете покопаться, но ЗАПУСКАТЬ НЕ СОВЕТУЮ.
Гадость.
Тут даже смотреть не надо чтобы понять, что код делает гадость

код ниже после __halt_compiler(); никак не интерпретируется языком PHP, что явно следует из названия этой функции.