SymCryptMarvin32Append
void __fastcall SymCryptMarvin32Append(INT64 a1, UINT8 *Src, UINT64 Size){
int v3;
UINT64 v4;
UINT8 *v5;
unsigned int v7;
UINT64 v8;
v3 = *(_DWORD *)(a1 + 40);
v4 = Size;
v5 = Src;
*(_DWORD *)(a1 + 40) = v3 + Size;
v7 = v3 & 3;
if( v7 )
{
v8 = 4 - v7;
if( Size >= v8 )
{
memmove((UINT8 *)(a1 + v7), Src, (unsigned int)v8);
v5 += v8;
v4 -= v8;
SymCryptMarvin32AppendBlocks((UINT64 *)(a1 + 16), a1, 4i64);
v7 = 0;
}
}
if( v4 >= 4 )
{
SymCryptMarvin32AppendBlocks((UINT64 *)(a1 + 16), (INT64)v5, v4 & 0xFFFFFFFFFFFFFFFCui64);
v5 += v4 & 0xFFFFFFFFFFFFFFFCui64;
v4 -= v4 & 0xFFFFFFFFFFFFFFFCui64;
}
if( v4 )
memmove((UINT8 *)(a1 + v7), v5, v4);
}Referenced by:
HvpGenerateLogEntryChecksums