Newer
Older
AMI-Aptio-BIOS-Reversed / PurleySktPkg / SouthClusterLbg / SiInit / Pei / SiInitPreMem / decompiled / ffd82f2b.c
@Ajax Dong Ajax Dong 7 days ago 1 KB Recovering names
bool __fastcall GetPciEndpointInfo(int a1, unsigned __int8 a2, unsigned __int16 *a3)
{
  char v5; // bl
  unsigned int v7; // ebp
  unsigned __int8 v8; // al
  unsigned __int16 *v9; // ecx
  unsigned int *v11; // [esp+1Ch] [ebp+4h]

  v5 = 0; /*0xffd82f40*/
  *(_DWORD *)(a3 + 1) = 0xFFFF; /*0xffd82f42*/
  *a3 = -1; /*0xffd82f49*/
  if ( (sub_FFD8CCA5((unsigned __int16 *)(a1 + 90)) & 0x40) == 0 ) /*0xffd82f56*/
    return 0; /*0xffd82f58*/
  *(_DWORD *)(a1 + 24) = *(_DWORD *)(a1 + 24) & 0xFF0000FF | ((a2 | (a2 << 8)) << 8); /*0xffd82f7c*/
  v11 = (unsigned int *)sub_FFD8CBBA(a2, 0, 0); /*0xffd82f8b*/
  sub_FFD8CCD3(v11, 0); /*0xffd82f8f*/
  v7 = *v11; /*0xffd82f94*/
  *(_DWORD *)a3 = *v11; /*0xffd82f9c*/
  if ( v7 != -1 ) /*0xffd82fa6*/
  {
    v8 = sub_FFD90A71(0, HIWORD(v7)); /*0xffd82fb0*/
    if ( v8 ) /*0xffd82fb9*/
    {
      v9 = (unsigned __int16 *)((char *)v11 + v8 + 12); /*0xffd82fc5*/
      v5 = *(_BYTE *)v9 & 0xF; /*0xffd82fc9*/
      *((_BYTE *)a3 + 5) = ((unsigned __int16)sub_FFD8CCA5(v9) >> 4) & 0x3F; /*0xffd82fd7*/
    }
    *((_BYTE *)a3 + 4) = v5; /*0xffd82fda*/
  }
  *(_DWORD *)(a1 + 24) &= 0xFF0000FF; /*0xffd82fe5*/
  DebugPrint(
    64,
    (int)"VID: %04X DID: %04X  MLS: %d MLW: %d\
",
    *a3,
    a3[1],
    *((unsigned __int8 *)a3 + 4),
    *((unsigned __int8 *)a3 + 5));
  return v7 != -1; /*0xffd83012*/
}