Newer
Older
AMI-Aptio-BIOS-Reversed / PurleyPlatPkg / Platform / Pei / EarlyVideoPei / MmioCfgWrite.c
@Ajax Dong Ajax Dong 2 days ago 1 KB Full restructure
int __cdecl MmioCfgWrite(int a1, int a2, unsigned __int8 a3)
{
  unsigned __int8 v3; // cl
  int v4; // edx
  char v5; // bl
  unsigned __int8 v6; // bh
  int i_1; // eax
  int v8; // ecx
  char v9; // bl
  unsigned __int8 v10; // bh
  int i; // [esp+0h] [ebp-Ch]
  char v13; // [esp+4h] [ebp-8h]
  char v14; // [esp+4h] [ebp-8h]
  int v15; // [esp+8h] [ebp-4h] BYREF

  PeiGetBootMode(-1, "EarlyVideo: Enabling VGA decode\n");
  v3 = a3;
  v4 = 0;
  for ( i = 0; v4 < a3 - 1; i = i_1 )
  {
    v5 = *(_BYTE *)(3 * v4 + a2 + 1);
    v6 = *(_BYTE *)(3 * v4 + a2);
    v13 = *(_BYTE *)(3 * v4 + a2 + 2);
    PciCfgWrite32(v6, v5, v13, 0x3Eu, &v15);
    v15 |= 0x18u;
    PciCfgWrite(v6, v5, v13, 0x3Eu, v15);
    PciCfgWrite32(v6, v5, v13, 0x3Eu, &v15);
    PciCfgWrite32(v6, v5, v13, 4u, &v15);
    v15 |= 7u;
    PciCfgWrite(v6, v5, v13, 4u, v15);
    PciCfgWrite32(v6, v5, v13, 4u, &v15);
    i_1 = i;
    v3 = a3;
    LOBYTE(i_1) = i + 1;
    v4 = (unsigned __int8)(i + 1);
  }
  v8 = 3 * v3;
  v9 = *(_BYTE *)(v8 + a2 - 2);
  v10 = *(_BYTE *)(v8 + a2 - 3);
  v14 = *(_BYTE *)(v8 + a2 - 1);
  PciCfgWrite32(v10, v9, v14, 4u, &v15);
  PciCfgWrite(v10, v9, v14, 4u, v15 | 7);
  return 0;
}