Newer
Older
AMI-Aptio-BIOS-Reversed / PurleyPlatPkg / Platform / Pei / EarlyVideoPei / VgaCrtcProgram.c
@Ajax Dong Ajax Dong 2 days ago 2 KB Full restructure
char __cdecl VgaCrtcProgram(_BYTE *a1, int a2, unsigned int n0x400, unsigned int a4)
{
  unsigned __int16 v4; // si
  int v5; // ecx
  char n34; // al
  char v8; // [esp+0h] [ebp-14A4h] BYREF
  char v9; // [esp+800h] [ebp-CA4h] BYREF
  char v10; // [esp+BFCh] [ebp-8A8h] BYREF
  char v11; // [esp+FF8h] [ebp-4ACh] BYREF
  char v12; // [esp+1078h] [ebp-42Ch] BYREF
  char v13; // [esp+10F8h] [ebp-3ACh] BYREF
  char v14; // [esp+1178h] [ebp-32Ch] BYREF
  char v15; // [esp+11F8h] [ebp-2ACh] BYREF
  char v16; // [esp+1278h] [ebp-22Ch] BYREF
  char v17; // [esp+12F8h] [ebp-1ACh] BYREF
  char v18; // [esp+1348h] [ebp-15Ch] BYREF
  char v19; // [esp+1398h] [ebp-10Ch] BYREF
  char v20; // [esp+13D8h] [ebp-CCh] BYREF
  char v21; // [esp+1418h] [ebp-8Ch] BYREF
  char v22; // [esp+1438h] [ebp-6Ch] BYREF
  _BYTE v23[4]; // [esp+1448h] [ebp-5Ch] BYREF
  __int16 n8; // [esp+144Ch] [ebp-58h]
  int v25; // [esp+144Eh] [ebp-56h]
  char *v26; // [esp+1452h] [ebp-52h]
  char *v27; // [esp+1456h] [ebp-4Eh]
  char *v28; // [esp+145Ah] [ebp-4Ah]
  char *v29; // [esp+145Eh] [ebp-46h]
  char *v30; // [esp+1462h] [ebp-42h]
  int v31; // [esp+1466h] [ebp-3Eh]
  char *v32; // [esp+146Ah] [ebp-3Ah]
  char *v33; // [esp+146Eh] [ebp-36h]
  char *v34; // [esp+1472h] [ebp-32h]
  char *v35; // [esp+1476h] [ebp-2Eh]
  char *v36; // [esp+147Ah] [ebp-2Ah]
  char *v37; // [esp+147Eh] [ebp-26h]
  char *v38; // [esp+1482h] [ebp-22h]
  char *v39; // [esp+1486h] [ebp-1Eh]
  char *v40; // [esp+148Ah] [ebp-1Ah]
  char *v41; // [esp+148Eh] [ebp-16h]
  int v42; // [esp+1492h] [ebp-12h]
  int v43; // [esp+1496h] [ebp-Eh]
  unsigned int n0x400_1; // [esp+149Ah] [ebp-Ah]
  unsigned int v45; // [esp+149Eh] [ebp-6h]

  v26 = &v18;
  n8 = 8;
  v27 = &v10;
  v28 = &v17;
  v29 = &v9;
  v30 = &v8;
  v32 = &v16;
  v33 = &v15;
  v34 = &v14;
  v35 = &v13;
  v36 = &v12;
  v37 = &v11;
  v38 = &v22;
  v39 = &v21;
  v40 = &v20;
  v41 = &v19;
  v31 = a2;
  n0x400_1 = n0x400;
  v45 = a4;
  v43 = 0;
  v42 = 0;
  if ( !VgaDisplayProgramLarge(a1, (int)v23) )
    return 0;
  v4 = *(unsigned __int8 *)(v25 + 6) | (unsigned __int16)(*(_WORD *)(v25 + 5) << 8);
  v5 = (unsigned __int16)(*(unsigned __int8 *)(v25 + 4) | (unsigned __int16)(*(_WORD *)(v25 + 3) << 8));
  if ( *(_BYTE *)(v25 + 12) == 17 && *(_BYTE *)(v25 + 15) == 17 )
  {
    n34 = *(_BYTE *)(v25 + 9);
    if ( n34 == 17 )
    {
      VgaDisplayModeSwitch(v4, v5, 273, v23);
    }
    else if ( n34 == 34 )
    {
      VgaDisplayModeSwitch(v4, v5, 290, v23);
    }
  }
  return 1;
}