HalpRestoreDmaControllerState

VOID __stdcall HalpRestoreDmaControllerState(){
  INT64 i; 
  unsigned __int8 v1; 
  unsigned __int8 *v2; 
  void(__fastcall *v3)(__int64); 
  __int64 v4; 
  unsigned __int8 v5; 
  __int64 v6; 
  unsigned __int8 v7; 
  unsigned __int16 v8; 

  for( i = qword_140C49B00; (INT64 *)i != &qword_140C49B00; i = *(_QWORD *)i )
  {
    v3 = *(void(__fastcall **)(__int64))(i + 80);
    v4 = *(_QWORD *)(i + 64);
    *(_BYTE *)(i + 216) = 1;
    v3(v4);
  }
  if( HalpMiscIsLegacyPcType() )
  {
    __outbyte(0xFu, 0xFu);
    __outbyte(0xDEu, 0xEu);
    HalpIoDelay();
    __outbyte(8u, 0);
    __outbyte(0xD0u, 0);
    HalpIoDelay();
    v1 = 0;
    v2 = (unsigned __int8 *)&unk_140CECA13;
    do
    {
      if( v2[1] )
      {
        v5 = *(v2 - 2);
        v6 = *(_QWORD *)(v2 - 19);
        if( v1 >= 4u )
        {
          __outbyte(v6 + 22, v5);
          v7 = *v2;
          v8 = *(_QWORD *)(v2 - 19) + 20;
        }
        else
        {
          __outbyte(v6 + 11, v5);
          v7 = *v2;
          v8 = *(_QWORD *)(v2 - 19) + 10;
        }
        __outbyte(v8, v7);
        HalpIoDelay();
      }
      ++v1;
      v2 += 24;
    }
    while( v1 < 8u );
  }
}

Referenced by:

HalpAcpiPostSleep