Newer
Older
AMI-Aptio-BIOS-Reversed / EarlyVideoPei / VgaCrtcRegReadModifyWrite.c
@Ajax Dong Ajax Dong 2 days ago 607 bytes Init
unsigned int __fastcall VgaCrtcRegReadModifyWrite(unsigned __int8 a1, char a2, char a3, char a4, unsigned __int8 a5)
{
  unsigned __int32 v6; // eax
  unsigned int result; // eax
  _DWORD v8[4]; // [esp+4h] [ebp-20h]
  _DWORD v9[4]; // [esp+14h] [ebp-10h]

  v9[0] = 0;
  v8[0] = -256;
  v8[1] = -65281;
  v8[2] = -16711681;
  v8[3] = 0xFFFFFF;
  v9[1] = 8;
  v9[2] = 16;
  v9[3] = 24;
  __outdword(0xCF8u, a4 & 0xFC | ((a3 & 7 | (8 * (a2 & 0x1F | (32 * (a1 | 0xFFFF8000))))) << 8));
  v6 = __indword(0xCFCu);
  result = v6 & v8[a4 & 3] | (a5 << v9[a4 & 3]);
  __outdword(0xCFCu, result);
  return result;
}