HvpGenerateLogEntryChecksums
VOID __stdcall HvpGenerateLogEntryChecksums(UINT8 *LogEntry, UINT64 EntrySize){
char v2;
unsigned int v3;
char v4;
__int64 v6;
UINT64 v7;
UINT8 *v8;
__int64 v9;
__int64 a1[8];
v3 = EntrySize;
v4 = v2;
memset((INT64)a1, 0i64);
v6 = *((_QWORD *)LogEntry + 1) + 512i64;
if( !v4 )
v6 = *((_QWORD *)LogEntry + 1);
SymCryptMarvin32Init((__int64)a1, &HvSymcryptSeed);
v7 = (unsigned int)(*((_DWORD *)LogEntry + 4) - 552);
if( !v4 )
v7 = (unsigned int)(*((_DWORD *)LogEntry + 4) - 40);
SymCryptMarvin32Append((INT64)a1, (UINT8 *)(v6 + 40), v7);
if( v3 > 1 )
{
v8 = LogEntry + 32;
v9 = v3 - 1;
do
{
SymCryptMarvin32Append((INT64)a1, *(UINT8 **)v8, *((unsigned int *)v8 + 2));
v8 += 24;
--v9;
}
while( v9 );
}
SymCryptMarvin32Result((INT64)a1, (_DWORD *)(v6 + 24));
SymCryptMarvin32((int *)&HvSymcryptSeed, (unsigned __int16 *)v6, 0x20ui64, (_DWORD *)(v6 + 32));
}Referenced by:
HvpGenerateLogEntry