PopPlInitComponents

__int64 __fastcall PopPlInitComponents(
        INT64 a1,
        INT128 *a2,
        unsigned __int64 a3,
        INT64 a4,
        UINT64 a5,
        __int64 a6,
        __int64 a7){
  VOID **PoolWithTag; 
  unsigned __int64 v8; 
  INT128 *v11; 
  NTSTATUS inited; 
  unsigned __int64 v14; 
  unsigned __int64 i; 
  CHAR *v17; 

  v17 = 0i64;
  PoolWithTag = 0i64;
  v8 = 0i64;
  v11 = a2;
  if( a3 )
  {
    if( (unsigned __int64)&a2[6 * a3] <= a5 )
    {
      PoolWithTag = ExAllocatePoolWithTag(0x200ui64, 8 * a3, 1817210704i64);
      if( PoolWithTag )
      {
        inited = 0;
        v14 = 0i64;
        if( a3 )
        {
          while( 1 )
          {
            inited = PopPlInitComponent(a1, v11, a4, a5, &v17);
            if( inited < 0 )
              break;
            ++v14;
            PoolWithTag[v8] = v17;
            v11 += 6;
            ++v8;
            if( v14 >= a3 )
              goto LABEL_14;
          }
          for( i = 0i64; i < v8; ++i )
            ExFreePoolWithTag(PoolWithTag[i], 0x6C506F50u);
          ExFreePoolWithTag(PoolWithTag, 0x6C506F50u);
          PoolWithTag = 0i64;
          v8 = 0i64;
        }
      }
      else
      {
        inited = -1073741670;
      }
    }
    else
    {
      inited = -1073741306;
    }
  }
  else
  {
    inited = 0;
  }
LABEL_14:
  *(_QWORD *)a7 = PoolWithTag;
  *(_QWORD *)a6 = v8;
  return(unsigned int)inited;
}

Referenced by:

PopPlInitDevice