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