// 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*/
}