void __cdecl SV_CreateGenericResources()
{
  int v0; // esi@1
  int v1; // ebx@2
  char arg; // [sp+1Ch] [bp-104h]@1
 
  COM_StripExtension((unsigned int)&sv[232], (int)&arg);
  COM_DefaultExtension(&arg, ".res");
  COM_FixSlashes((int)&arg);
  v0 = COM_LoadFile((int)&arg, 5, 0);
  if ( v0 )
  {
    Con_DPrintf("Precaching from %s\n", &arg);
    Con_DPrintf("----------------------------------\n");
    *(_DWORD *)&sv[244556] = 0;
    v1 = v0;
    while ( 1 )
    {
      v1 = COM_Parse(v1);
      if ( Q_strlen((int)com_token) <= 0 )
        break;
      if ( Q_strstr(com_token, "..") )
      {
        Con_Printf("Can't precache resource with invalid relative path %s\n", com_token);
      }
      else
      {
        if ( Q_strstr(com_token, ":") )
        {
          Con_Printf("Can't precache resource with absolute path %s\n", com_token);
        }
        else
        {
          if ( Q_strstr(com_token, "\\") )
          {
            Con_Printf("Can't precache resource with invalid relative path %s\n", com_token);
          }
          else
          {
            if ( Q_strstr(com_token, ".cfg") )
            {
              Con_Printf("Can't precache .cfg files:  %s\n", com_token);
            }
            else
            {
              if ( Q_strstr(com_token, ".lst") )
              {
                Con_Printf("Can't precache .lst files:  %s\n", com_token);
              }
              else
              {
                if ( Q_strstr(com_token, ".exe") )
                {
                  Con_Printf("Can't precache .exe files:  %s\n", com_token);
                }
                else
                {
                  if ( Q_strstr(com_token, ".vbs") )
                  {
                    Con_Printf("Can't precache .vbs files:  %s\n", com_token);
                  }
                  else
                  {
                    if ( Q_strstr(com_token, ".com") )
                    {
                      Con_Printf("Can't precache .com files:  %s\n", com_token);
                    }
                    else
                    {
                      if ( Q_strstr(com_token, ".bat") )
                      {
                        Con_Printf("Can't precache .bat files:  %s\n", com_token);
                      }
                      else
                      {
                        if ( Q_strstr(com_token, ".dll") )
                        {
                          Con_Printf("Can't precache .dll files:  %s\n", com_token);
                        }
                        else
                        {
                          Q_strncpy(&sv[64 * *(_DWORD *)&sv[244556] + 211788], com_token, 0x3Fu);
                          sv[64 * *(_DWORD *)&sv[244556] + 211851] = 0;
                          PF_precache_generic_I(&sv[64 * *(_DWORD *)&sv[244556] + 211788]);
                          Con_DPrintf("  %s\n", &sv[64 * *(_DWORD *)&sv[244556]++ + 211788]);
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    Con_DPrintf("----------------------------------\n");
    COM_FreeFile((void *)v0);
  }
}