Newer
Older
AMI-Aptio-BIOS-Reversed / Platform / DebugPrint.c
@Ajax Dong Ajax Dong 2 days ago 1 KB Init
// DebugPrint - decompiled from Platform.efi
void DebugPrint(UINTN ErrorLevel, const CHAR8 *Format, ...)
{
  __int64 v3; // rax
  __int64 v4; // r8
  void (__fastcall **v5)(UINTN, const CHAR8 *, __int64 *); // r9
  unsigned __int8 v6; // al
  char n3_1; // al
  char n3; // cl
  va_list va; // [rsp+40h] [rbp+18h] BYREF

  va_start(va, Format);
  v3 = CalculateCrc(); /*0x5fbb*/
  v4 = 0; /*0x5fc0*/
  v5 = (void (__fastcall **)(UINTN, const CHAR8 *, __int64 *))v3; /*0x5fc3*/
  if ( v3 ) /*0x5fc9*/
  {
    v6 = __inbyte(0x70u); /*0x5fcf*/
    __outbyte(0x70u, v6 & 0x80 | 0x4B); /*0x5fd4*/
    n3_1 = __inbyte(0x71u); /*0x5fd9*/
    n3 = n3_1; /*0x5fda*/
    if ( (unsigned __int8)n3_1 > 3u ) /*0x5fe0*/
    {
      n3 = n3_0; /*0x5fe2*/
      if ( !n3_0 ) /*0x5fea*/
        n3 = MEMORY[0xFDAF0490] & 2 | 1; /*0x5ff6*/
    }
    if ( (unsigned __int8)(n3 - 1) <= 0xFDu ) /*0x5ffe*/
    {
      v4 = 2147483718LL; /*0x6007*/
      if ( n3 == 1 ) /*0x600d*/
        v4 = 2147483652LL; /*0x600d*/
    }
    if ( (v4 & ErrorLevel) != 0 ) /*0x6014*/
      (*v5)(ErrorLevel, Format, (__int64 *)va); /*0x6023*/
  }
}