HalpFreeNvsBuffers

VOID __fastcall HalpFreeNvsBuffers(_HALP_ALLOC_CONTEXT *a1){
  __int64 v1; 
  __int64 i; 
  void *v3; 
  if( HalpNvsPreservedData )
  {
    HalpMmAllocCtxFree((__int64)a1, HalpNvsPreservedData);
    HalpNvsPreservedData = 0i64;
  }
  v1 = HalpNvsRegionData;
  if( HalpNvsRegionData )
  {
    for( i = 0i64; (unsigned int)i < HalpNvsRegionCount; i = (unsigned int)(i + 1) )
    {
      v3 = *(void **)(v1 + 24 * i + 16);
      if( v3 )
      {
        MmUnmapIoSpace(v3, *(unsigned int *)(v1 + 24 * i + 8));
        v1 = HalpNvsRegionData;
        *(_QWORD *)(HalpNvsRegionData + 24 * i + 16) = 0i64;
      }
    }
  }
}

Referenced by:

HalpMapNvsArea
HalpPowerStateCallback