HalpAuditAllocateRsdtArrayTable
__int64 __fastcall HalpAuditAllocateRsdtArrayTable(int **a1){
unsigned int v1;
int v3;
VOID **PoolWithTag;
int *v5;
int *v6;
v1 = 0;
if( *a1 )
v3 = 2 * **a1;
else
v3 = 4;
PoolWithTag = ExAllocatePoolWithTag(1ui64, (unsigned int)(32 * v3 + 8), 543973704i64);
v5 = (int *)PoolWithTag;
if( PoolWithTag )
{
memset(PoolWithTag, 0i64, 32 * v3 + 8);
*v5 = v3;
v6 = *a1;
if( *a1 )
{
v5[1] = v6[1];
memmove(v5 + 2, v6 + 2, 32 * v6[1]);
ExFreePoolWithTag(v6, 0);
}
else
{
v5[1] = 0;
}
*a1 = v5;
}
else
{
return(unsigned int)-1073741801;
}
return v1;
}Referenced by:
HalpAuditEnumerateRsdts
HalpAuditEnumerateRsdtsInRange