PiPnpRtlGatherContainerRemoveInfo

INT64 __fastcall PiPnpRtlGatherContainerRemoveInfo(WCHAR *a1, WCHAR *a2, CHAR ***a3){
  CHAR **PoolWithTag; 
  int Object; 
  PoolWithTag = (CHAR **)ExAllocatePoolWithTag(PagedPool, 0x10ui64, 0x47706E50ui64);
  *a3 = PoolWithTag;
  if( !PoolWithTag )
  {
    Object = -1073741670;
LABEL_9:
    PiPnpRtlFreePanelRemoveInfo(*a3);
    *a3 = 0i64;
    return(unsigned int)Object;
  }
  *(_OWORD *)PoolWithTag = 0i64;
  Object = PiDmGetObject(1i64, a1, (INT64 *)PoolWithTag);
  if( (int)(Object + 0x80000000) >= 0 && Object != -1073741772 )
    goto LABEL_9;
  Object = PiDmGetObject(5i64, a2, (INT64 *)*a3 + 1);
  if( Object == -1073741772 )
    Object = 0;
  if( Object < 0 )
    goto LABEL_9;
  return(unsigned int)Object;
}

Referenced by:

PiPnpRtlCmActionCallback