Newer
Older
AMI-Aptio-BIOS-Reversed / SystemInventory / SystemInventory_sub_3E1C.c
@Ajax Dong Ajax Dong 2 days ago 1 KB Init
__int64 __fastcall sub_3E1C()
{
  __int64 v0; // rbx
  __int64 v1; // rdx
  __int64 v2; // rcx
  __int64 v3; // r8
  __int64 v4; // r9
  __int64 result; // rax
  __int64 v6; // rdx
  __int64 v7; // r9
  __int64 v8; // rdx
  __int64 v9; // rcx
  __int64 v10; // r8
  __int64 v11; // r9
  char n2; // [rsp+28h] [rbp-30h]
  __int16 v13[12]; // [rsp+40h] [rbp-18h] BYREF
  char v14; // [rsp+70h] [rbp+18h] BYREF
  char v15; // [rsp+78h] [rbp+20h] BYREF

  v0 = (*(__int64 (__fastcall **)(void *, _QWORD, __int64 *))(qword_96A8 + 320))(&unk_9460, 0, &qword_9690); /*0x3e43*/
  result = sub_7F8(v2, v1, v3, v4); /*0x3e46*/
  if ( (_BYTE)result ) /*0x3e52*/
  {
    result = sub_804(64); /*0x3e56*/
    if ( (_BYTE)result ) /*0x3e5d*/
      result = sub_740(64, "[System Inventory] Locating IPMI Dxe Protocol Status - %r\n", v0); /*0x3e6b*/
  }
  if ( v0 >= 0 ) /*0x3e73*/
  {
    v13[0] = 4; /*0x3e7a*/
    LOBYTE(v7) = -53; /*0x3e86*/
    v14 = 1; /*0x3e8e*/
    n2 = 2; /*0x3ea0*/
    LOBYTE(v6) = 50; /*0x3eaa*/
    (*(void (__fastcall **)(__int64, __int64, _QWORD, __int64, __int16 *, char, char *, char *))(qword_9690 + 16))( /*0x3eb6*/
      qword_9690,
      v6,
      0,
      v7,
      v13,
      n2,
      &v15,
      &v14);
    result = sub_7F8(v9, v8, v10, v11); /*0x3eb9*/
    if ( (_BYTE)result ) /*0x3ec0*/
    {
      result = sub_804(64); /*0x3ec5*/
      if ( (_BYTE)result ) /*0x3ecc*/
        return sub_740(64, "Set the BMC virtual CD number to 0. \n"); /*0x3ed8*/
    }
  }
  return result; /*0x3ee2*/
}