IopAppendLegacyVeto
UINT8 __stdcall IopAppendLegacyVeto(const VOID ***Context, const VOID **VetoName){
unsigned int v3;
VOID **PoolWithTag;
VOID **v6;
const VOID **v7;
const VOID *v8;
UINT8 result;
v3 = *(unsigned __int16 *)VetoName + 2 + *((_DWORD *)Context + 2);
PoolWithTag = ExAllocatePoolWithTag(0x200ui64, v3, 1869181008i64);
v6 = PoolWithTag;
if( PoolWithTag )
{
v7 = *Context;
v8 = **Context;
if( v8 )
{
memmove(PoolWithTag, v8, *((_DWORD *)Context + 2));
ExFreePoolWithTag((PVOID)*v7, 0);
v7 = *Context;
}
memmove(
(char *)v6 + 2 * ((unsigned __int64)*((unsigned int *)Context + 2) >> 1),
VetoName[1],
*(unsigned __int16 *)VetoName);
result = 1;
*((_DWORD *)Context + 2) = v3;
*((_WORD *)v6 + ((unsigned __int64)v3 >> 1) - 1) = 0;
*v7 = v6;
}
else
{
*(_DWORD *)Context[3] = -1073741670;
return 0;
}
return result;
}Referenced by:
IoGetLegacyVetoList
IopGetLegacyVetoListDeviceNode
IopGetLegacyVetoListDrivers