DWORD L2FileCheck(char *file)
ov\%*z2=
{
ov\%*z2=
DWORD Check=0xFFFFFFFF;
ov\%*z2=
HANDLE hFile;
ov\%*z2=
DWORD dwFileSize;
ov\%*z2=
DWORD dwNumberOfBytesReadWritten;
ov\%*z2=
HANDLE hMemory;
ov\%*z2=
LPVOID pMemory;
ov\%*z2=
char filename[MAX_PATH];
ov\%*z2=
BYTE *temp;
ov\%*z2=
BYTE temp1,temp2;
ov\%*z2=
int Max=0,Min=0;
ov\%*z2=
temp =(unsigned char *)malloc(0x1000);
ov\%*z2=
hFile=CreateFile(file, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE, 0);
ov\%*z2=
if(hFile != INVALID_HANDLE_value)
ov\%*z2=
{
ov\%*z2=
dwFileSize=GetFileSize(hFile, NULL);
ov\%*z2=
hMemory=GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT, dwFileSize);
ov\%*z2=
pMemory=GlobalLock(hMemory);
ov\%*z2=
Max = (dwFileSize-0x14)/0x1000;
ov\%*z2=
Min = (dwFileSize-0x14)%0x1000;
ov\%*z2=
for(int j=0;j<Max;j++)
ov\%*z2=
{
ov\%*z2=
ReadFile(hFile,pMemory,0x1000,&dwNumberOfBytesReadWritten,NULL);
ov\%*z2=
memcpy(temp,pMemory,0x1000);
ov\%*z2=
for(int k=0;k<0x1000;k++)
ov\%*z2=
{
ov\%*z2=
temp1=*(BYTE *)(temp+k);
ov\%*z2=
temp2=(Check&0x000000FF) ^ temp1;
ov\%*z2=
Check=(Check >> 8) ^ FileCheck[temp2];
ov\%*z2=
}
ov\%*z2=
}
ov\%*z2=
ReadFile(hFile,pMemory,Min,&dwNumberOfBytesReadWritten,NULL);
ov\%*z2=
memcpy(temp,pMemory,0x1000);
ov\%*z2=
for(j=0;j<Min;j++)
ov\%*z2=
{
ov\%*z2=
BYTE temp1,temp2;
ov\%*z2=
temp1=*(BYTE *)(temp+j);
ov\%*z2=
temp2=(Check&0x000000FF) ^ temp1;
ov\%*z2=
Check=(Check >> 8) ^ FileCheck[temp2];
ov\%*z2=
}
ov\%*z2=
_asm {
ov\%*z2=
push ecx
ov\%*z2=
mov ecx,Check
ov\%*z2=
not ecx
ov\%*z2=
mov Check,ecx
ov\%*z2=
pop ecx
ov\%*z2=
}
ov\%*z2=
CloseHandle(hFile);
ov\%*z2=
GlobalUnlock(pMemory);
ov\%*z2=
GlobalFree(hMemory);
ov\%*z2=
free(temp);
ov\%*z2=
return Check;
ov\%*z2=
}
ov\%*z2=
else
ov\%*z2=
{
ov\%*z2=
return 0;
ov\%*z2=
}
ov\%*z2=
}
ov\%*z2=