Newer
Older
AMI-Aptio-BIOS-Reversed / MdeModulePkg / Core / DxeIplPeim / DxeIplPpiNotifyCallback.c
@Ajax Dong Ajax Dong 2 days ago 1 KB Full restructure
/* DxeIplPpiNotifyCallback @ 0xffc16e63 size=0x7d */
int __cdecl DxeIplPpiNotifyCallback(int a1, _DWORD *a2, _DWORD *a3, _WORD *a4)
{
  int v5; // eax
  int v6; // edx

  if ( !a1 ) /*0xffc16e70*/
    return -2147483646; /*0xffc16e70*/
  if ( (*(_DWORD *)a1 & 0xFFFFFF) != 0xFFFFFF ) /*0xffc16e89*/
  {
    if ( DxeIplFvIsAddrValid(dword_FFC18D18, (_DWORD *)(a1 + 4)) ) /*0xffc16ead*/
    {
      *a4 = *(_WORD *)(a1 + 22); /*0xffc16ebd*/
      v5 = *(unsigned __int16 *)(a1 + 20); /*0xffc16ec2*/
      v6 = *(_DWORD *)a1 & 0xFFFFFF; /*0xffc16ec6*/
      return DxeIplLzmaGetProp((_DWORD *)(v5 + a1), v6 - v5, a2, a3); /*0xffc16ec6*/
    }
    return -2147483646; /*0xffc16e77*/
  }
  if ( !DxeIplFvIsAddrValid(dword_FFC18D18, (_DWORD *)(a1 + 8)) ) /*0xffc16e95*/
    return -2147483646; /*0xffc16e95*/
  *a4 = *(_WORD *)(a1 + 26); /*0xffc16e9e*/
  v5 = *(unsigned __int16 *)(a1 + 24); /*0xffc16ea1*/
  v6 = *(_DWORD *)(a1 + 4); /*0xffc16ea5*/
  return DxeIplLzmaGetProp((_DWORD *)(v5 + a1), v6 - v5, a2, a3); /*0xffc16eda*/
}