PiDqSerializationAlloc
VOID __stdcall PiDqSerializationAlloc(VOID *State, CHAR **Buffer, UINT64 *BufferSize){
size_t v3;
size_t v5;
void *v8;
VOID **PoolWithTag;
v3 = *(_DWORD *)BufferSize;
v5 = *((_DWORD *)State + 6);
if( *(_DWORD *)BufferSize > v5 )
{
v8 = (void *)*((_QWORD *)State + 2);
v5 = 0;
if( v8 )
{
ExFreePoolWithTag(v8, 0x58706E50u);
v3 = *(_DWORD *)BufferSize;
}
if( v3 < 0x1000 )
{
*(_DWORD *)BufferSize = 4096;
v3 = 4096;
}
PoolWithTag = ExAllocatePoolWithTag(1ui64, v3, 1483763280i64);
*((_QWORD *)State + 2) = PoolWithTag;
if( PoolWithTag )
{
memset(PoolWithTag, 0i64, *(_DWORD *)BufferSize);
v5 = *(_DWORD *)BufferSize;
}
*((_DWORD *)State + 6) = v5;
}
*(_DWORD *)BufferSize = v5;
*Buffer = (CHAR *)*((_QWORD *)State + 2);
}Referenced by:
No references.