IopLiveDumpAllocateMappingResources

NTSTATUS __stdcall IopLiveDumpAllocateMappingResources(_LIVEDUMP_CONTEXT *Context){
  unsigned int v1; 
  size_t v3; 
  VOID **PoolWithTag; 
  NTSTATUS v5; 
  int v7; 
  __int64 i; 
  __int64 v9; 
  VOID *DumpHibernateResources; 
  _MDL *Mdl; 

  v1 = KeNumberProcessors_0;
  v3 = 16 * KeNumberProcessors_0;
  PoolWithTag = ExAllocatePoolWithTag(0x200ui64, 16i64 * (unsigned int)KeNumberProcessors_0, 1886217292i64);
  v5 = 0;
  *((_QWORD *)Context + 99) = PoolWithTag;
  if( PoolWithTag )
  {
    memset(PoolWithTag, 0i64, v3);
    Context[196] = v1;
    v7 = 0;
    if( !v1 )
      return v5;
    for( i = 0i64; ; i += 16i64 )
    {
      v9 = *((_QWORD *)Context + 99);
      DumpHibernateResources = MmAllocateDumpHibernateResources(0x10000ui64);
      *(_QWORD *)(i + v9) = DumpHibernateResources;
      if( !DumpHibernateResources )
        break;
      Mdl = IoAllocateMdl(DumpHibernateResources, 0x10000ui64, 0, 0, 0i64);
      *(_QWORD *)(i + v9 + 8) = Mdl;
      if( !Mdl )
        break;
      if( ++v7 >= v1 )
        return v5;
    }
  }
  else
  {
    Context[196] = 0;
  }
  IopLiveDumpFreeMappingResources(Context);
  return -1073741670;
}

Referenced by:

IopLiveDumpAllocAndInitResources