/* DxeIplDxeIplPpiNotify @ 0xffc17152 size=0x76 */
int __cdecl DxeIplDxeIplPpiNotify(int a1, _DWORD *a2, _DWORD *a3, _WORD *a4)
{
int v5; // ecx
if ( (*(_DWORD *)a1 & 0xFFFFFF) == 0xFFFFFF ) /*0xffc1716d*/
{
if ( !DxeIplFvIsAddrValid(dword_FFC18D58, (_DWORD *)(a1 + 8)) ) /*0xffc17172*/
return -2147483646; /*0xffc17180*/
*a4 = *(_WORD *)(a1 + 26); /*0xffc17189*/
v5 = *(unsigned __int16 *)(a1 + 24); /*0xffc1718c*/
}
else
{
if ( !DxeIplFvIsAddrValid(dword_FFC18D58, (_DWORD *)(a1 + 4)) ) /*0xffc1719c*/
return -2147483646; /*0xffc1719c*/
*a4 = *(_WORD *)(a1 + 22); /*0xffc171a5*/
v5 = *(unsigned __int16 *)(a1 + 20); /*0xffc171a8*/
}
*a2 = sub_FFC17261(a1 + v5); /*0xffc171b6*/
*a3 = 0x10000; /*0xffc171bb*/
return 0; /*0xffc171c3*/
}