HdlspEnableTerminal

NTSTATUS __stdcall HdlspEnableTerminal(UINT8 bEnable){
  unsigned int v1; 
  int v2; 
  PKSPIN_LOCK v3; 
  __int64 v5; 
  int IsMMIOAddress; 
  if( bEnable == 1 )
  {
    v1 = *((_DWORD *)HeadlessGlobals + 12);
    if( (v1 & 1) == 0 && (!*((_BYTE *)HeadlessGlobals + 116) || (v1 & 2) == 0) )
    {
      LOBYTE(IsMMIOAddress) = *((_BYTE *)HeadlessGlobals + 116);
      v2 = InbvPortInitialize(
             *((unsigned int *)HeadlessGlobals + 13),
             (v1 >> 9) & 7,
             (UINT8 *)HeadlessGlobals[8],
             HeadlessGlobals + 7,
             IsMMIOAddress,
             *((_BYTE *)HeadlessGlobals + 85));
      v3 = HeadlessGlobals;
      *((_DWORD *)HeadlessGlobals + 12) ^= (*((_DWORD *)HeadlessGlobals + 12) ^ v2) & 1;
      if( (v3[6] & 1) == 0 )
        return -1073741823;
      HdlspSendStringAtBaud((UINT8 *)"\x1B[2J");
      HdlspSendStringAtBaud((UINT8 *)"\x1B[H");
    }
  }
  else if( !bEnable )
  {
    InbvPortTerminate(*((unsigned int *)HeadlessGlobals + 14));
    *(_DWORD *)(v5 + 56) = 0;
    *(_DWORD *)(v5 + 48) &= ~1u;
  }
  return 0;
}

Referenced by:

HdlspDispatch
HeadlessInit