SymCryptWipeAsm
VOID __stdcall SymCryptWipeAsm(PVOID pbData, _SIZE_T cbData){
bool v2;
unsigned __int64 i;
unsigned int v4;
__int64 v5;
if( *(_QWORD *)&cbData < 0x10ui64 )
{
if( (unsigned int)cbData < 8 )
{
if( (unsigned int)cbData < 4 )
{
if( (unsigned int)cbData < 2 )
{
if( cbData )
*(_BYTE *)pbData = 0;
}
else
{
*(_WORD *)pbData = 0;
*(_WORD *)((char *)pbData + *(_QWORD *)&cbData - 2) = 0;
}
}
else
{
*(_DWORD *)pbData = 0;
*(_DWORD *)((char *)pbData + *(_QWORD *)&cbData - 4) = 0;
}
}
else
{
*(_QWORD *)pbData = 0i64;
*(_QWORD *)((char *)pbData + *(_QWORD *)&cbData - 8) = 0i64;
}
}
else if( ((unsigned __int8)pbData & 0xF) != 0
&& (*(_QWORD *)pbData = 0i64,
*((_QWORD *)pbData + 1) = 0i64,
v5 = -(int)pbData & 0xF,
pbData = (char *)pbData + v5,
*(_QWORD *)&cbData -= v5,
*(_QWORD *)&cbData < 0x10ui64) )
{
*(_QWORD *)((char *)pbData + *(_QWORD *)&cbData - 16) = 0i64;
*(_QWORD *)((char *)pbData + *(_QWORD *)&cbData - 8) = 0i64;
}
else
{
*(_OWORD *)pbData = 0i64;
if( (cbData & 0x10) != 0 )
pbData = (char *)pbData + 16;
v2 = *(_QWORD *)&cbData < 0x20ui64;
for( i = *(_QWORD *)&cbData - 32i64; !v2; i -= 32i64 )
{
*(_OWORD *)pbData = 0i64;
*((_OWORD *)pbData + 1) = 0i64;
pbData = (char *)pbData + 32;
v2 = i < 0x20;
}
v4 = i & 0xF;
if( v4 )
{
*(_QWORD *)((char *)pbData + v4 - 16) = 0i64;
*(_QWORD *)((char *)pbData + v4 - 8) = 0i64;
}
}
}Referenced by:
SymCryptWipe