protected function process_dat_file($value)
 {
     if (strlen($value) <= 0x25) {
         return;
     }
     $stream = new stream($value, $this->log);
     $file_ver = ztrim($stream->read_strlen(0x25));
     if ($file_ver != 'C87BC961-AAF9-11d2-8A80-0080ADB32FF4') {
         $this->log->add('ERR_INVALID_FTP_SURFER_DB_FILE');
         return;
     }
     while ($stream->state && !$stream->eof()) {
         $len = $stream->read_dword();
         $host = '';
         $user = '';
         $pass = '';
         $dir = '';
         $port = '';
         while ($stream->state && $len > 0) {
             $id = '';
             $data = '';
             $len -= $this->read_param($stream, $id, $data);
             switch ($id) {
                 case 3:
                     $host = $data;
                     break;
                 case 5:
                     $user = $this->decrypt($data);
                     break;
                 case 6:
                     $pass = $this->decrypt($data);
                     break;
                 case 7:
                     $dir = $data;
                     break;
                 case 8:
                     $port = $data;
                     break;
             }
         }
         $this->add_ftp(append_port_dir($host, $port, $dir), $user, $pass);
     }
 }