PiHotSwapGetDefaultBusRemovalPolicy
char __fastcall PiHotSwapGetDefaultBusRemovalPolicy(__int64 a1, int *a2){
__int64 v4;
int v5;
__int64 v6;
if( *(_WORD *)(a1 + 40) <= 8u || (LODWORD(v4) = wcsnicmp(*(const wchar_t **)(a1 + 48), L"USB\\", 4ui64), (_DWORD)v4) )
{
v5 = 5;
if( *(_WORD *)(a1 + 40) <= 0xAu
|| (LODWORD(v4) = wcsnicmp(*(const wchar_t **)(a1 + 48), L"1394\\", 5ui64), (_DWORD)v4)
&& (*(_WORD *)(a1 + 40) <= 0xAu
|| (LODWORD(v4) = wcsnicmp(*(const wchar_t **)(a1 + 48), L"SBP2\\", 5ui64), (_DWORD)v4)) )
{
if( *(_WORD *)(a1 + 40) <= 0xEu
|| (LODWORD(v4) = wcsnicmp(*(const wchar_t **)(a1 + 48), L"PCMCIA\\", 7ui64), (_DWORD)v4) )
{
if( *(_WORD *)(a1 + 40) <= 8u
|| wcsnicmp(*(const wchar_t **)(a1 + 48), L"PCI\\", 4ui64)
|| (v6 = *(_QWORD *)(a1 + 16), *(_WORD *)(v6 + 56) != 12)
|| (LODWORD(v4) = wcsicmp(*(const wchar_t **)(v6 + 64), L"PCMCIA"), (_DWORD)v4) )
{
v4 = *(_QWORD *)(a1 + 720);
if( !v4 || (LOBYTE(v4) = *(_BYTE *)(v4 + 16), (v4 & 4) == 0) )
{
LODWORD(v4) = -(*(_BYTE *)(*(_QWORD *)(a1 + 16) + 466i64) != 5);
v5 = 5 - (*(_BYTE *)(*(_QWORD *)(a1 + 16) + 466i64) != 5);
}
}
}
}
}
else
{
v5 = 5;
}
*a2 = v5;
return v4;
}Referenced by:
PpHotSwapUpdateRemovalPolicy