Newer
Older
AMI-Aptio-BIOS-Reversed / EarlyVideoPei / VgaDisplayFullInit.c
@Ajax Dong Ajax Dong 2 days ago 2 KB Init
int __fastcall VgaDisplayFullInit(__int16 *dst, unsigned __int16 n8)
{
  int n8_1; // eax
  int v4; // esi
  int v5; // ebx
  int v6; // edx
  int v7; // esi
  int v8; // ebp
  int v9; // ecx
  int v10; // edi
  int v11; // ecx
  int v12; // ebx
  int v13; // edx
  int v14; // esi
  int v15; // ebx
  int v16; // ecx
  int v17; // edi
  int v18; // ebp
  int v19; // edx
  int v20; // ebx
  int v21; // ecx
  int v22; // esi
  int v23; // eax
  int v24; // edx
  int v25; // ecx
  int result; // eax
  int v27; // [esp+10h] [ebp-34h]
  int v28; // [esp+10h] [ebp-34h]
  int v29; // [esp+10h] [ebp-34h]
  int v30; // [esp+14h] [ebp-30h]
  int v31; // [esp+14h] [ebp-30h]
  int v33; // [esp+1Ch] [ebp-28h]
  int v34; // [esp+1Ch] [ebp-28h]
  int v35; // [esp+20h] [ebp-24h]
  int v36; // [esp+24h] [ebp-20h]
  int v37; // [esp+28h] [ebp-1Ch]
  int v38; // [esp+2Ch] [ebp-18h]
  int v39; // [esp+30h] [ebp-14h]
  int v40; // [esp+34h] [ebp-10h]
  int v41; // [esp+38h] [ebp-Ch]
  int v42; // [esp+3Ch] [ebp-8h]
  int v43; // [esp+40h] [ebp-4h]

  n8_1 = 0;
  v4 = 0;
  do
  {
    *(&v36 + n8_1++) = v4;
    v4 += n8;
  }
  while ( n8_1 < 8 );
  v27 = (11585 * *dst) >> 14;
  v5 = (11585 * dst[v40]) >> 14;
  v6 = dst[v39];
  v30 = dst[v37];
  v7 = (11585 * (dst[v38] + dst[v42])) >> 14;
  v8 = v6 + v30;
  v9 = dst[v41];
  v10 = (11585 * (v6 + v30 + v9 + dst[v43])) >> 14;
  v33 = v5 + v27;
  v28 = v27 - v5;
  v11 = (11585 * (v9 + v6)) >> 14;
  v12 = dst[v38];
  v13 = 8867 * (v7 + v12);
  v14 = 21407 * (v12 - v7);
  v15 = v11 + v30;
  v13 >>= 14;
  v31 = v30 - v11;
  v16 = 8867 * (v10 + v8);
  v14 >>= 14;
  v17 = 21407 * (v8 - v10);
  v18 = v13 + v33;
  v16 >>= 14;
  v34 = v33 - v13;
  v17 >>= 14;
  v35 = v14 + v28;
  v29 = v28 - v14;
  v19 = (8352 * (v16 + v15)) >> 14;
  v20 = (41990 * (v15 - v16)) >> 14;
  v21 = (9852 * (v17 + v31)) >> 14;
  v22 = (14745 * (v31 - v17)) >> 14;
  *dst = (v19 + v18) >> 1;
  dst[v43] = (v18 - v19) >> 1;
  v23 = v21 + v35;
  v24 = v35 - v21;
  v25 = v38;
  dst[v37] = v23 >> 1;
  dst[v42] = v24 >> 1;
  dst[v25] = (v22 + v29) >> 1;
  dst[v41] = (v29 - v22) >> 1;
  dst[v39] = (v20 + v34) >> 1;
  result = v40;
  dst[v40] = (v34 - v20) >> 1;
  return result;
}