HalpMapNvsArea

VOID __fastcall HalpMapNvsArea(_HALP_ALLOC_CONTEXT *a1){
  __int64 v1; 
  __int64 v2; 
  _HALP_ALLOC_CONTEXT *v3; 
  if( !HalpNvsPreservedDataSize )
  {
    HalpDisableNvsSaveRestore = 1;
    return;
  }
  HalpDisableNvsSaveRestore = 0;
  HalpNvsPreservedData = HalpMmAllocCtxAlloc((__int64)a1, (unsigned int)HalpNvsPreservedDataSize);
  if( !HalpNvsPreservedData )
    goto LABEL_8;
  v1 = 0i64;
  if( HalpNvsRegionCount )
  {
    while( 1 )
    {
      MmMapIoSpaceEx(
        *(_LARGE_INTEGER *)(HalpNvsRegionData + 24 * v1),
        *(unsigned int *)(HalpNvsRegionData + 24 * v1 + 8),
        0x204ui64);
      *(_QWORD *)(HalpNvsRegionData + 24 * v1 + 16) = v2;
      if( !v2 )
        break;
      v1 = (unsigned int)(v1 + 1);
      if( (unsigned int)v1 >= HalpNvsRegionCount )
        return;
    }
LABEL_8:
    DbgPrint("HALACPI:  The BIOS's non-volatile data will not be preserved\n");
    HalpDisableNvsSaveRestore = 1;
    HalpFreeNvsBuffers(v3);
  }
}

Referenced by:

HalpPowerStateCallback