ExpPoolFlagsToPoolType
INT64 __fastcall ExpPoolFlagsToPoolType(INT64 a1, INT64 a2, INT64 *a3, BYTE *a4, BYTE *a5){
int v5;
INT64 v7;
int v8;
int v9;
int v11;
v5 = 0;
*(_DWORD *)a3 = 0;
*a4 = 0;
*a5 = 0;
if( (a1 & 0xFFFFF800) != 0 || (a1 & 0x10) != 0 && !(_DWORD)a2 )
return 3221225485i64;
v7 = a1 & 0x1C0;
if( v7 == 64 )
{
v5 = 512;
}
else if( v7 != 128 )
{
if( v7 != 256 )
return 3221225485i64;
v5 = -2147483647;
if( (a1 & 0x10) == 0 )
v5 = 1;
}
v8 = v5 | 0x20;
if( (a1 & 4) == 0 )
v8 = v5;
v9 = v8 | 0x400;
if( (a1 & 2) != 0 )
v9 = v8;
if( (a1 & 0x100000629i64) != 0 )
{
v11 = v9 | 4;
if( (a1 & 8) == 0 )
v11 = v9;
v9 = v11;
if( (a1 & 0x200) != 0 )
v9 = v11 | 0x80;
if( (a1 & 0x400) != 0 )
v9 |= 0x40u;
if( (a1 & 1) != 0 )
{
*a4 = 1;
if( (a1 & 0x20) == 0 )
v9 |= 8u;
}
else if( (a1 & 0x20) != 0 )
{
v9 |= 0x10u;
}
if( (a1 & 0x100000000i64) != 0 )
*a5 = 1;
}
*(_DWORD *)a3 = v9;
return 0i64;
}Referenced by:
ExAllocatePool2
ExAllocatePool3
ExAllocatePoolMm
MiAllocatePool
VerifierExAllocatePool2
VerifierExAllocatePool3