Newer
Older
AMI-Aptio-BIOS-Reversed / EarlyVideoPei / VgaDisplayDisable.c
@Ajax Dong Ajax Dong 2 days ago 1 KB Init
int __fastcall VgaDisplayDisable(unsigned __int16 *a1, _WORD *a2, unsigned __int16 *a3, _BYTE *a4)
{
  unsigned __int16 i_1; // di
  int v5; // ebx
  int v6; // esi
  int n0xFFFF; // eax
  unsigned __int16 *v8; // eax
  unsigned __int16 i; // cx
  unsigned __int16 v10; // di
  int j_1; // edi
  int j; // ebx
  __int16 j_2; // ax
  char v14; // di

  i_1 = 0;
  v5 = 0;
  v6 = 0;
  while ( 1 )
  {
    v5 *= 2;
    if ( VgaDisplayBlank(a4) )
      v5 |= 1u;
    ++i_1;
    n0xFFFF = 0xFFFF;
    if ( i_1 == 0xFFFF )
      break;
    v8 = a1;
    for ( i = *a1; i_1 >= i; i = *v8 )
    {
      if ( i_1 == i && (_WORD)v5 == v8[1] )
      {
        v10 = v8[2];
        *a3 = v10;
        j_1 = v10 & 0xF;
        for ( j = j_1; j; --j )
        {
          v6 *= 2;
          if ( VgaDisplayBlank(a4) )
            v6 |= 1u;
        }
        j_2 = j_1;
        v14 = j_1 - 1;
        if ( j_2 )
        {
          if ( ((1 << (v14 & 0xF)) & v6) == 0 )
            LOWORD(v6) = ((int)((v6 << (30 - v14)) | 0x80000000) >> (30 - v14)) + 1;
        }
        *a2 = v6;
        return (int)a2;
      }
      v8 += 3;
    }
  }
  return n0xFFFF;
}