int __fastcall PchPcieRpSpeedChange(int a1, int a2)
{
unsigned __int8 i_1; // al
unsigned int i_2; // esi
unsigned int i; // ebx
int v5; // eax
int v6; // edi
unsigned int j; // esi
int v8; // ebp
unsigned int n0x96; // ebp
unsigned int i_3; // esi
unsigned int k; // ebp
int v12; // esi
unsigned int n0x96_2; // ebp
unsigned int i_4; // esi
unsigned int n0x96_1; // [esp+14h] [ebp-60h] BYREF
unsigned int v17; // [esp+18h] [ebp-5Ch]
int v18; // [esp+1Ch] [ebp-58h]
int v19; // [esp+20h] [ebp-54h]
_DWORD v20[20]; // [esp+24h] [ebp-50h]
v18 = a2; /*0xffd82d36*/
v19 = a1; /*0xffd82d3a*/
if ( (unsigned __int8)sub_FFD8D59A() )
{
DebugPrint(64, (int)"DWR: PchPcieRpSpeedChange() End\
");
}
else
{
i_1 = sub_FFD8BFFD(); /*0xffd82d5a*/
i_2 = 0; /*0xffd82d5f*/
for ( i = i_1; i_2 < i; ++i_2 ) /*0xffd82d66*/
{
v20[i_2] = 0; /*0xffd82d68*/
if ( sub_FFD8D75C(&n0x96_1) >= 0 ) /*0xffd82d80*/
{
v20[i_2] = sub_FFD8CBBA(0, v17, n0x96_1); /*0xffd82db2*/
}
else
{
v5 = GetReportStatusCodePpi(); /*0xffd82d82*/
if ( v5 ) /*0xffd82d89*/
(*(void (__cdecl **)(const char *, int, const char *))(v5 + 4))( /*0xffd82d9a*/
"e:\\hs\\PurleySktPkg\\SouthClusterLbg\\LibraryPrivate\\PeiPchInitLib\\PchRootPorts.c",
822,
"((BOOLEAN)(0==1))");
}
}
v6 = 0; /*0xffd82dbb*/
for ( j = 0; j < i; ++j ) /*0xffd82dc1*/
{
v8 = v20[j]; /*0xffd82dc3*/
if ( v8 ) /*0xffd82dc9*/
{
if ( (unsigned __int16)sub_FFD8CCA5((unsigned __int16 *)v20[j]) != 0xFFFF ) /*0xffd82dda*/
{
v17 = *(_DWORD *)(v8 + 76) & 0xF; /*0xffd82de2*/
if ( v17 > 1 && !sub_FFD826AE(v19 + 28, j, *(_BYTE *)(j + v18)) ) /*0xffd82dfd*/
{
sub_FFD8CC85(v17); /*0xffd82e13*/
if ( (sub_FFD8CCA5((unsigned __int16 *)(v8 + 90)) & 0x40) != 0 ) /*0xffd82e23*/
{
sub_FFD8CC4F(v8 + 80, 32); /*0xffd82e2b*/
v6 |= 1 << j; /*0xffd82e30*/
}
}
}
}
}
n0x96 = 0; /*0xffd82e38*/
n0x96_1 = 0; /*0xffd82e3a*/
if ( v6 ) /*0xffd82e40*/
{
do /*0xffd82e90*/
{
if ( n0x96 >= 0x96 ) /*0xffd82e4c*/
break; /*0xffd82e4c*/
sub_FFD7FA46(0x64u); /*0xffd82e51*/
i_3 = 0; /*0xffd82e56*/
if ( i ) /*0xffd82e5a*/
{
do /*0xffd82e83*/
{
if ( ((1 << i_3) & v6) != 0 && (sub_FFD8CCA5((unsigned __int16 *)(v20[i_3] + 82)) & 0x2000) != 0 ) /*0xffd82e7b*/
v6 &= ~(1 << i_3); /*0xffd82e7d*/
++i_3; /*0xffd82e80*/
}
while ( i_3 < i ); /*0xffd82e83*/
n0x96 = n0x96_1; /*0xffd82e85*/
}
n0x96_1 = ++n0x96; /*0xffd82e8a*/
}
while ( v6 ); /*0xffd82e90*/
if ( v6 ) /*0xffd82e94*/
{
for ( k = 0; k < i; ++k ) /*0xffd82e9e*/
{
if ( ((1 << k) & v6) != 0 ) /*0xffd82ea9*/
{
v12 = v20[k]; /*0xffd82eab*/
sub_FFD8CC85(1); /*0xffd82eb9*/
sub_FFD8CC4F(v12 + 80, 32); /*0xffd82ec5*/
}
}
n0x96_2 = 0; /*0xffd82ecf*/
n0x96_1 = 0; /*0xffd82ed1*/
do /*0xffd82f1f*/
{
if ( n0x96_2 >= 0x96 ) /*0xffd82edb*/
break; /*0xffd82edb*/
sub_FFD7FA46(0x64u); /*0xffd82ee0*/
i_4 = 0; /*0xffd82ee5*/
if ( i ) /*0xffd82ee9*/
{
do /*0xffd82f12*/
{
if ( ((1 << i_4) & v6) != 0 && (sub_FFD8CCA5((unsigned __int16 *)(v20[i_4] + 82)) & 0x2000) != 0 ) /*0xffd82f0a*/
v6 &= ~(1 << i_4); /*0xffd82f0c*/
++i_4; /*0xffd82f0f*/
}
while ( i_4 < i ); /*0xffd82f12*/
n0x96_2 = n0x96_1; /*0xffd82f14*/
}
n0x96_1 = ++n0x96_2; /*0xffd82f19*/
}
while ( v6 ); /*0xffd82f1f*/
}
}
}
return 0; /*0xffd82f21*/
}