signed int __cdecl sub_475790(_BYTE *a1)
{
signed int result; // eax
DWORD v2; // [esp+10h] [ebp-10h]
HANDLE hEnumHandle; // [esp+14h] [ebp-Ch]
DWORD dwFirstCacheEntryInfoBufferSize; // [esp+18h] [ebp-8h]
LPINTERNET_CACHE_ENTRY_INFOA lpFirstCacheEntryInfo; // [esp+1Ch] [ebp-4h]
dwFirstCacheEntryInfoBufferSize = 4096;
lpFirstCacheEntryInfo = (LPINTERNET_CACHE_ENTRY_INFOA)operator new[](0x1000u);
lpFirstCacheEntryInfo->dwStructSize = 4096;
hEnumHandle = FindFirstUrlCacheEntryA(0, lpFirstCacheEntryInfo, &dwFirstCacheEntryInfoBufferSize);
if ( hEnumHandle )
{
if ( !(lpFirstCacheEntryInfo->CacheEntryType & 0x100000) )
DeleteUrlCacheEntry(lpFirstCacheEntryInfo->lpszSourceUrlName);
goto LABEL_12;
}
if ( GetLastError() != 122 )
{
FindCloseUrlCache(0);
return 0;
}
lpFirstCacheEntryInfo = (LPINTERNET_CACHE_ENTRY_INFOA)operator new[](dwFirstCacheEntryInfoBufferSize);
lpFirstCacheEntryInfo->dwStructSize = dwFirstCacheEntryInfoBufferSize;
hEnumHandle = FindFirstUrlCacheEntryA(0, lpFirstCacheEntryInfo, &dwFirstCacheEntryInfoBufferSize);
if ( !hEnumHandle )
return 0;
if ( !(lpFirstCacheEntryInfo->CacheEntryType & 0x100000) )
DeleteUrlCacheEntry(lpFirstCacheEntryInfo->lpszSourceUrlName);
LABEL_12:
while ( FindNextUrlCacheEntryA(hEnumHandle, lpFirstCacheEntryInfo, &dwFirstCacheEntryInfoBufferSize) )
{
if ( !(lpFirstCacheEntryInfo->CacheEntryType & 0x100000) )
DeleteUrlCacheEntry(lpFirstCacheEntryInfo->lpszSourceUrlName);
LABEL_25:
if ( *a1 )
return 0;
}
v2 = GetLastError();
if ( v2 == 122 )
{
lpFirstCacheEntryInfo = (LPINTERNET_CACHE_ENTRY_INFOA)operator new[](dwFirstCacheEntryInfoBufferSize);
lpFirstCacheEntryInfo->dwStructSize = dwFirstCacheEntryInfoBufferSize;
if ( !FindNextUrlCacheEntryA(hEnumHandle, lpFirstCacheEntryInfo, &dwFirstCacheEntryInfoBufferSize) )
{
FindCloseUrlCache(hEnumHandle);
return 0;
}
if ( !(lpFirstCacheEntryInfo->CacheEntryType & 0x100000) )
DeleteUrlCacheEntry(lpFirstCacheEntryInfo->lpszSourceUrlName);
goto LABEL_25;
}
if ( v2 == 259 )
{
FindCloseUrlCache(hEnumHandle);
result = 1;
}
else
{
FindCloseUrlCache(hEnumHandle);
result = 0;
}
return result;
}