if (strlen($initKey) != 16) {
    die("init key is niet de goede lengte");
}
$initKeyArray = str_split($initKey);
for ($i = 0; $i < 16; $i++) {
    $guessArray[] = reverseLookup($initKeyArray[$i]);
}
//echo implode($guessArray, ", ");
$result = "";
for ($i = 0; $i < $iterations; $i++) {
    $guess = pack('H*', implode(keyMaker($guessArray)));
    $plaintext = mcrypt_decrypt(MCRYPT_DES, $guess, $cipher, MODE, $iv);
    //echo implode(keyMaker($guessArray))."\n";
    if (strstr($plaintext, $needle)) {
        $result = array();
        $result["key"] = implode(keyMaker($guessArray));
        $result["plainText"] = $plaintext;
        $result["hashCheck"] = md5(trim($plaintext)) == $hash;
        $result["hash"] = md5(trim($plaintext));
        //        file_put_contents("result.json", str_replace('\u0000', "", json_encode($result)));
        die("found it" . str_replace('\\u0000', "", json_encode($result)));
        break;
    }
    $guessArray = updateKey($guessArray);
}
//file_put_contents("result.json", "{\"result\": \"no\"}");
die("didnt find");
function keyMaker($keyArray)
{
    $key = array();
    for ($i = 0; $i < 16; $i++) {
}
$updateTime = 0;
$i = 0;
$j = 0;
while (true) {
    if ($i == 20) {
        write($out, $j);
        $i = 0;
        $j++;
        $out = "";
    }
    $out .= "Arguments = " . implode(keyMaker($keyArray)) . " " . $jobSize . "\n";
    $out .= "Queue\n\n";
    echo implode(keyMaker($keyArray)) . "\n";
    if ($keyArray == array(15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)) {
        $out .= "Arguments = " . implode(keyMaker($keyArray)) . " " . $jobSize . "\n";
        $out .= "Queue\n\n";
        $j++;
        write($out, $j);
        die("done");
    }
    $then = microtime();
    $keyArray = updateKey($keyArray);
    $now = microtime();
    $updateTime = ($now - $then + $updateTime) / 2;
    //echo $updateTime . "\n";
    $i++;
}
function write($out, $j)
{
    global $base;