Newer
Older
AMI-Aptio-BIOS-Reversed / ServerCommonPkg / Universal / GetSec / Pei / TxtPei / CachePagingSetup.c
@Ajax Dong Ajax Dong 2 days ago 1 KB Restructure the repo
// Decompiled: 0xffe07baa
// Function: CachePagingSetup
// Module: TxtPei.efi (TXTPEI)

int __cdecl CachePagingSetup(int a1)
{
  int v2; // [esp+Ch] [ebp-Ch]
  int v3; // [esp+10h] [ebp-8h]
  int v4; // [esp+14h] [ebp-4h]

  if ( *(_DWORD *)(a1 + 12) ) /*0xffe07bbf*/
  {
    v3 = *(_DWORD *)(*(_DWORD *)(a1 + 12) + 4 * (unsigned __int16)*(_DWORD *)(a1 + 4) + 255544); /*0xffe07cb5*/
    v4 = *(_DWORD *)(*(_DWORD *)(a1 + 12) + 4 * (unsigned __int16)*(_DWORD *)(a1 + 4) + 255560); /*0xffe07cd1*/
  }
  else
  {
    v2 = CpuGetVersion((void *)6); /*0xffe07bd2*/
    if ( *(_DWORD *)(v2 + 4) ) /*0xffe07bd8*/
    {
      v3 = *(_DWORD *)(v2 + 16 * (unsigned __int16)*(_DWORD *)(a1 + 4) + 20); /*0xffe07bf3*/
      v4 = *(_DWORD *)(v2 + 16 * (unsigned __int16)*(_DWORD *)(a1 + 4) + 16); /*0xffe07c0b*/
    }
    else
    {
      CacheRegionSetup(dword_FFE08D30, 8); /*0xffe07c1e*/
      v3 = dword_FFE08D44[4 * (unsigned __int16)*(_DWORD *)(a1 + 4)]; /*0xffe07c39*/
      v4 = dword_FFE08D40[4 * (unsigned __int16)*(_DWORD *)(a1 + 4)]; /*0xffe07c50*/
      if ( !v4 && !v3 ) /*0xffe07c5d*/
      {
        v4 = CpuGetApicId((void *)5); /*0xffe07c8a*/
        v3 = 0; /*0xffe07c97*/
      }
    }
  }
  if ( !v4 && !v3 ) /*0xffe07cde*/
    return CpuGetApicId((void *)5); /*0xffe07d0b*/
  return v4; /*0xffe07d24*/
}