PopPlInitComponent

__int64 __fastcall PopPlInitComponent(__int64 a1, __int128 *a2, __int64 a3, unsigned __int64 a4, char **a5){
  unsigned int v5; 
  __int64 v7; 
  char *v9; 
  char *v10; 
  char *PoolWithTag; 
  __int128 v12; 
  unsigned __int64 v13; 
  __int64 v14; 
  signed __int64 v15; 
  __int64 result; 
  v5 = 0;
  v7 = *((unsigned int *)a2 + 4);
  v9 = 0i64;
  if( (_DWORD)v7 )
  {
    v10 = (char *)(a3 + *((unsigned int *)a2 + 5));
    if( (unsigned __int64)&v10[8 * v7] <= a4 )
    {
      PoolWithTag = (char *)ExAllocatePoolWithTag(NonPagedPoolNx, 8 * (int)v7 + 32, 0x6C506F50ui64);
      v9 = PoolWithTag;
      if( PoolWithTag )
      {
        memset((INT64)PoolWithTag, 0i64);
        v12 = *a2;
        *((_QWORD *)v9 + 2) = a1;
        v13 = 0i64;
        *(_OWORD *)v9 = v12;
        v14 = *((unsigned int *)a2 + 4);
        *((_QWORD *)v9 + 3) = v14;
        if( v14 )
        {
          v15 = v9 - v10;
          do
          {
            ++v13;
            *(_QWORD *)&v10[v15 + 32] = *(_QWORD *)v10;
            v10 += 8;
          }
          while( v13 < *((_QWORD *)v9 + 3) );
        }
      }
      else
      {
        v5 = -1073741670;
      }
    }
    else
    {
      v5 = -1073741306;
    }
  }
  result = v5;
  *a5 = v9;
  return result;
}

Referenced by:

PopPlInitComponents