HalpIommuMarkHiberPhase

VOID __fastcall HalpIommuMarkHiberPhase(PVOID MemoryMap){
  INT64 *i; 
  _QWORD *j; 
  _QWORD *k; 
  void(__fastcall *v5)(PVOID, INT64, INT64 *); 
  UINT64 Tag; 
  UINT64 Taga; 

  for( i = (INT64 *)qword_140C49B50; i != &qword_140C49B50; i = (INT64 *)*i )
  {
    v5 = (void(__fastcall *)(PVOID, INT64, INT64 *))i[38];
    if( v5 )
      v5(MemoryMap, i[2], i + 46);
  }
  if( MemoryMap )
  {
    LODWORD(Tag) = 1231839560;
    PoSetHiberRange(MemoryMap, 2ui64, (char *)&CmpDummyThreadEvent + 4152, 8ui64, Tag);
    for( j = (_QWORD *)*(&CmpDummyThreadEvent + 520);
          j != (_QWORD *)((char *)&CmpDummyThreadEvent + 4160);
          j = (_QWORD *)*j )
    {
      LODWORD(Taga) = 1231839560;
      PoSetHiberRange(MemoryMap, 2ui64, j, 0x40ui64, Taga);
      for( k = (_QWORD *)j[6]; k != j + 6; k = (_QWORD *)*k )
      {
        LODWORD(Taga) = 1231839560;
        PoSetHiberRange(MemoryMap, 2ui64, k, 0x68ui64, Taga);
      }
    }
  }
}

Referenced by:

HaliLocateHiberRanges