VfPoolInitPhase0

INT64 __stdcall VfPoolInitPhase0(){
  INT64 result; 
  unsigned int v1; 
  int v2; 
  result = (unsigned int)MmVerifierData;
  if( (MmVerifierData & 0xFBF) != 0 && ((MmVerifierData & 0x400000) == 0 || (MmVerifierData & 8) != 0) )
  {
    v1 = VfPoolTracesLength;
    if( (unsigned int)VfPoolTracesLength >= 0x10000 )
    {
      v2 = 0x100000;
      if( (unsigned int)VfPoolTracesLength <= 0x100000 )
      {
        while( (v2 & VfPoolTracesLength) == 0 )
        {
          v2 >>= 1;
          if( v2 < 0x10000 )
            goto LABEL_12;
        }
        v1 = v2 & VfPoolTracesLength;
        VfPoolTracesLength &= v2;
      }
      else
      {
        v1 = 0x100000;
        VfPoolTracesLength = 0x100000;
      }
    }
    else
    {
      v1 = 0x10000;
      VfPoolTracesLength = 0x10000;
    }
LABEL_12:
    result = (INT64)ExAllocatePoolWithTagPriority(
                      NonPagedPoolNx,
                      (unsigned __int64)v1 << 7,
                      0x54506656ui64,
                      HighPoolPriority);
    VfPoolTraces = result;
  }
  return result;
}

Referenced by:

VfInitVerifierComponents