Newer
Older
AMI-Aptio-BIOS-Reversed / ServerCommonPkg / Universal / GetSec / Pei / TxtPei / PchIoWrite.c
@Ajax Dong Ajax Dong 2 days ago 1 KB Restructure the repo
// Decompiled: 0xffe06a52
// Function: PchIoWrite
// Module: TxtPei.efi (TXTPEI)

int __cdecl PchIoWrite(_DWORD *a1)
{
  _DWORD *v1; // ecx
  _DWORD *v2; // esi
  int v3; // edi
  int result; // eax
  int v5; // eax
  int v6; // [esp+Ch] [ebp-8h] BYREF
  int v7; // [esp+10h] [ebp-4h] BYREF

  v2 = v1; /*0xffe06a59*/
  v7 = 0; /*0xffe06a61*/
  v3 = 0; /*0xffe06a67*/
  result = (*(int (__cdecl **)(_DWORD, _DWORD, int *))(*(_DWORD *)*v1 + 56))(*v1, 0, &v7); /*0xffe06a6d*/
LABEL_6:
  if ( result >= 0 ) /*0xffe06ab7*/
  {
    v6 = 0; /*0xffe06a72*/
    do /*0xffe06a7f*/
    {
      if ( (*(int (__cdecl **)(_DWORD, int, int *, int *))(*(_DWORD *)*v2 + 60))(*v2, 1, &v7, &v6) < 0 ) /*0xffe06a9f*/
      {
        v5 = *v2; /*0xffe06aa1*/
        ++v3; /*0xffe06aa7*/
        v7 = 0; /*0xffe06aa8*/
        result = (*(int (__cdecl **)(int, int, int *))(*(_DWORD *)v5 + 56))(v5, v3, &v7); /*0xffe06aaf*/
        goto LABEL_6; /*0xffe06aaf*/
      }
    }
    while ( !(unsigned __int8)HobGetSize(v6, &unk_FFE08D20) ); /*0xffe06a7f*/
    *a1 = v6 + 24; /*0xffe06ac4*/
    return 0; /*0xffe06ac6*/
  }
  return result; /*0xffe06ac8*/
}