// Decompiled: 0xffe06e41
// Function: LtPeiLibLaunchBiosAcm
// Module: TxtPei.efi (TXTPEI)
int __fastcall LtPeiLibLaunchBiosAcm(int this, int n5)
{
unsigned int v2; // esi
unsigned __int64 v3; // rax
unsigned int v4; // edi
unsigned __int64 v5; // rax
unsigned int v6; // ebx
unsigned __int64 v7; // rax
unsigned int v8; // ebp
unsigned __int64 v9; // rax
unsigned __int64 v10; // rax
unsigned __int64 v11; // rax
unsigned int v14; // [esp+1Ch] [ebp-10h]
v2 = 0; /*0xffe06e4c*/
v3 = __readmsr(0x424u); /*0xffe06e57*/
v4 = v3; /*0xffe06e5d*/
v5 = __readmsr(0x428u); /*0xffe06e64*/
v6 = v5; /*0xffe06e6a*/
v7 = __readmsr(0x42Cu); /*0xffe06e71*/
v8 = v7; /*0xffe06e73*/
v14 = v7 & 0xFFFFFF7F; /*0xffe06e92*/
v9 = __readmsr(0x179u); /*0xffe06e9b*/
if ( (v9 & 0x1000000) != 0 ) /*0xffe06ea6*/
{
v10 = __readmsr(0x178u); /*0xffe06ead*/
v2 = v10; /*0xffe06eb4*/
__writemsr(0x178u, 0); /*0xffe06ecc*/
}
__writemsr(0x424u, v4 & 0xFFFFFF7F); /*0xffe06eec*/
__writemsr(0x428u, v6 & 0xFFFFFF7F); /*0xffe06f0c*/
__writemsr(0x42Cu, v14); /*0xffe06f2c*/
DebugPrint(0x80000000, "LtPeiLibLaunchBiosAcm: BiosAcmAddress = 0x % 08x\n");
((void (__cdecl *)(_DWORD))BiosAcmInvoke)(**(_DWORD **)(this + 24)); /*0xffe06f5a*/
__writemsr(0x425u, 0); /*0xffe06f78*/
__writemsr(0x429u, 0); /*0xffe06f95*/
__writemsr(0x42Du, 0); /*0xffe06fb2*/
__writemsr(0x424u, v4); /*0xffe06fcf*/
__writemsr(0x428u, v6); /*0xffe06fea*/
__writemsr(0x42Cu, v8); /*0xffe07005*/
v11 = __readmsr(0x179u); /*0xffe07010*/
if ( (v11 & 0x1000000) != 0 ) /*0xffe0701b*/
__writemsr(0x178u, v2); /*0xffe07032*/
return 0; /*0xffe07034*/
}