/**
  * Get language file information
  * @param   string    $raw            Raw data
  * @param   string    &$lng_info      Language file info will be stored here
  * @return  boolean TRUE on success or FALSE on error
  */
 function getLanguageFileInfo($raw, &$lng_info)
 {
     $result = false;
     $lng_info = array();
     if ($raw != '') {
         $hash = substr($raw, 0, 32);
         $raw = substr($raw, 32);
         if (strlen($hash) == 32 && $raw != '' && strtoupper(md5($raw)) === $hash) {
             // Hash OK
             if ($raw = @base64_decode($raw)) {
                 if ($lng = @unserialize($raw)) {
                     unset($raw);
                     if (is_array($lng) && isset($lng['data_type']) && $lng['data_type'] == 'language' && isset($lng['pcpin_version']) && !empty($lng['data']) && is_array($lng['data'])) {
                         $result = true;
                         $lng_info['pcpin_version'] = $lng['pcpin_version'];
                         $lng_info['date_created'] = $lng['date_created'];
                         $lng = $lng['data'];
                         $lng_info['iso_name'] = PCPIN_Common::hexToString($lng['iso_name']);
                         $lng_info['local_name'] = PCPIN_Common::hexToString($lng['local_name']);
                         $lng_info['expressions_count'] = count($lng['expressions']);
                     }
                 }
             }
         }
     }
     return $result;
 }