Newer
Older
AMI-Aptio-BIOS-Reversed / Platform / SetupIfrSupplement.c
@Ajax Dong Ajax Dong 2 days ago 1 KB Init
// SetupIfrSupplement - decompiled from Platform.efi
__int64 __fastcall SetupIfrSupplement(char a1)
{
  int n0x20000000_1; // edi
  int n0x20000000; // esi
  __int64 v3; // rax
  __int64 v4; // rbx
  __int64 v5; // rax
  _DWORD v7[4]; // [rsp+30h] [rbp-10h] BYREF
  int v8; // [rsp+60h] [rbp+20h] BYREF
  int n8; // [rsp+68h] [rbp+28h] BYREF
  __int64 v10; // [rsp+70h] [rbp+30h] BYREF

  if ( a1 )
  {
    DebugPrint(0x40u, "[ME] PTT SkuMgr: Enable PTT\n");
    n0x20000000_1 = 0; /*0xaa96*/
    n0x20000000 = 0x20000000; /*0xaa98*/
  }
  else
  {
    DebugPrint(0x40u, "[ME] PTT SkuMgr: Disable PTT\n");
    n0x20000000 = 0; /*0xaaab*/
    n0x20000000_1 = 0x20000000; /*0xaaad*/
  }
  DebugPrint(0x40u, "[ME] HeciFwFeatureStateOverride.\n"); /*0xaabc*/
  v3 = (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(BootServices + 320))(&unk_F9B0, 0, &v10); /*0xaad5*/
  v4 = v3; /*0xaadb*/
  if ( v3 >= 0 )
  {
    if ( (*(__int64 (__fastcall **)(int *))(v10 + 64))(&v8) < 0 || v8 )
    {
      return 0x8000000000000003uLL; /*0xabb6*/
    }
    else
    {
      v7[0] = 5375; /*0xab31*/
      v7[1] = n0x20000000; /*0xab3a*/
      v7[2] = n0x20000000_1; /*0xab3d*/
      n8 = 8; /*0xab40*/
      v5 = (*(__int64 (__fastcall **)(_QWORD, _DWORD *, __int64, int *, _BYTE, char))v10)(0, v7, 12, &n8, 0, 7); /*0xab4c*/
      v4 = v5; /*0xab4e*/
      if ( v5 < 0 )
        DebugPrint(0x80000000, "[ME] HeciFwFeatureStateOverride: message failed! - %r\n", v5);
      if ( (v7[0] & 0x7F00) != 0x1400 || LOBYTE(v7[0]) != 0xFF || (v7[0] & 0x8000) == 0 || (v7[0] & 0xFF000000) != 0 )
      {
        DebugPrint(
          0x80000000,
          "[ME] ERROR: Invalid response received for FIRMWARE_CAPABILITY_OVERRIDE(MKHI: %08X)\n",
          v7[0]);
        return 0x8000000000000007uLL; /*0xabaa*/
      }
    }
  }
  else
  {
    DebugPrint(0x80000000, "[ME] Unable to Locate Heci Protocol.- %r\n", v3); /*0xaaf2*/
  }
  return v4; /*0xabc8*/
}