HalpFreeNvsBuffers

VOID __stdcall HalpFreeNvsBuffers(PINTERRUPT_INITIALIZE_IO_UNIT *a1){
  __int64 v1; 
  __int64 i; 
  VOID *v3; 

  if( *(&CmpDummyThreadEvent + 717) )
  {
    HalpMmAllocCtxFree((_HALP_ALLOC_CONTEXT *)a1, *(&CmpDummyThreadEvent + 717));
    *(&CmpDummyThreadEvent + 717) = 0i64;
  }
  v1 = *(&CmpDummyThreadEvent + 724);
  if( *(&CmpDummyThreadEvent + 724) )
  {
    for( i = 0i64; (unsigned int)i < *(&CmpDummyThreadEvent + 1360); i = (unsigned int)(i + 1) )
    {
      v3 = *(VOID **)(v1 + 24 * i + 16);
      if( v3 )
      {
        MmUnmapIoSpace(v3, *(unsigned int *)(v1 + 24 * i + 8));
        v1 = *(&CmpDummyThreadEvent + 724);
        *(_QWORD *)(*(&CmpDummyThreadEvent + 724) + 24 * i + 16) = 0i64;
      }
    }
  }
}

Referenced by:

HalpMapNvsArea
HalpPowerStateCallback