/* 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*/
}