int __thiscall LnvDebugSwitchInit(EFI_SYSTEM_TABLE *SystemTable)
{
int Signature; // eax
int result; // eax
int v3; // edx
int v4; // eax
int v5; // ecx
int v6; // edx
int v7; // eax
int v8; // edx
int v9; // eax
int v10; // ecx
int v11; // edx
int v12; // eax
int v13; // edx
_BYTE v14[3]; // [esp+8h] [ebp-18h] BYREF
unsigned __int8 v15; // [esp+Bh] [ebp-15h]
unsigned __int8 v16; // [esp+Ch] [ebp-14h]
unsigned __int8 v17; // [esp+10h] [ebp-10h]
int n10; // [esp+14h] [ebp-Ch] BYREF
int (__cdecl **v19)(_DWORD, const __int16 *, void *, _DWORD, int *, _BYTE *); // [esp+18h] [ebp-8h] BYREF
unsigned __int8 v20; // [esp+1Fh] [ebp-1h]
Signature = SystemTable->Hdr.Signature;
n10 = 10;
v19 = 0;
v20 = 0x80;
result = (*(int (__cdecl **)(EFI_SYSTEM_TABLE *, void *, _DWORD, _DWORD, int (__cdecl ***)(_DWORD, const __int16 *, void *, _DWORD, int *, _BYTE *)))(Signature + 32))(
SystemTable,
&unk_FFE3E324,
0,
0,
&v19);
if ( !result )
{
result = (*v19)(v19, L"LnvSetup", &unk_FFE3E374, 0, &n10, v14);
if ( !result )
{
if ( v14[2] )
{
LOBYTE(v3) = v15;
v9 = sub_FFE3C3DA(33360, v3);
if ( v9 < 0 )
sub_FFE3C296(-1, "RDBG CmosWriteByte PEI_DEBUG_SWITCH_BY_NVRAM_OFFSET , %x , Status = %r \n", v15, v9);
sub_FFE3C32E(v10);
sub_FFE3C296(-1, "RDBG BuildGuidDataHob gLnvDebugSwitchHobGuid \n");
LOBYTE(v11) = v16;
v12 = sub_FFE3C3DA(33368, v11);
if ( v12 < 0 )
sub_FFE3C296(-1, "RDBG CmosWriteByte DXE_DEBUG_SWITCH_BY_NVRAM_OFFSET , %x , Status = %r \n", v16, v12);
LOBYTE(v13) = v17;
result = sub_FFE3C3DA(33376, v13);
if ( result < 0 )
return sub_FFE3C296(
-1,
"RDBG CmosWriteByte SMM_DEBUG_SWITCH_BY_NVRAM_OFFSET , %x , Status = %r \n",
v17,
result);
}
else
{
LOBYTE(v3) = v20;
v4 = sub_FFE3C3DA(33360, v3);
if ( v4 < 0 )
sub_FFE3C296(-1, "RDBG CmosWriteByte PEI_DEBUG_SWITCH_BY_NVRAM_OFFSET , %x , Status = %r \n", v20, v4);
sub_FFE3C32E(v5);
sub_FFE3C296(-1, "RDBG BuildGuidDataHob gLnvDebugSwitchHobGuid \n");
LOBYTE(v6) = v20;
v7 = sub_FFE3C3DA(33368, v6);
if ( v7 < 0 )
sub_FFE3C296(-1, "RDBG CmosWriteByte DXE_DEBUG_SWITCH_BY_NVRAM_OFFSET , %x , Status = %r \n", v20, v7);
LOBYTE(v8) = v20;
result = sub_FFE3C3DA(33376, v8);
if ( result < 0 )
return sub_FFE3C296(
-1,
"RDBG CmosWriteByte SMM_DEBUG_SWITCH_BY_NVRAM_OFFSET , %x , Status = %r \n",
v20,
result);
}
}
}
return result;
}