Hey all, any1 can help convert small function writen on C to Delphi ? 
Code:
#ifndef SSR_FILE_FORMAT_H_
#define SSR_FILE_FORMAT_H_
#define TRUE_SSR_IDENTIFIER (('S') + ('S' << 8) + ('R' << 16) + ('2' << 24))
typedef struct t_ssrheader {
DWORD numOfFiles;
DWORD contentOffset;
DWORD contentSize;
DWORD extra;
} SSR_HEADER;
typedef struct t_ssrcontentheader {
DWORD extra1;
DWORD fileOffset;
DWORD extra2;
char filename[16];
} SSR_CONTENT_HEADER;
typedef struct t_ssrfileheader {
DWORD extra1;
DWORD extra2;
DWORD extra3;
DWORD extra4;
DWORD fileSize;
DWORD extra5;
unsigned char filenameLength;
char extra6[7];
} SSR_FILE_HEADER;
#endif
Code:
void Decrypt(void *buffer, unsigned int byteCount, unsigned int key1, unsigned int key2) {
unsigned char *pKey;
unsigned int byteCount64;
__int64 *buffer64;
unsigned char *pByte;
unsigned int cBytes;
unsigned int keys[2] = { key2, key1 };
buffer64 = (__int64 *)buffer;
byteCount64 = byteCount / 8;
for (; byteCount64; --byteCount64, ++buffer64) {
unsigned int ulong;
unsigned int *pLong = ((unsigned int *)buffer64);
ulong = *pLong;
*pLong = ~((~ulong) ^ key2);
++pLong;
ulong = *pLong;
*pLong = ~((~ulong) ^ key1);
}
pByte = ((unsigned char *)buffer64);
cBytes = byteCount % 8;
pKey = ((unsigned char *)keys);
for (; cBytes; --cBytes, ++pByte, ++pKey) {
unsigned char byte = *pByte;
unsigned char key = *pKey;
*pByte = (unsigned char)(~((~byte) ^ key));
}
}
PS: Sorry if wrong section