int __thiscall VgaModeConfig(int *this)
{
int *this_1; // esi
int n0xFFFF; // ebp
int v3; // ebx
int v4; // eax
unsigned int n5; // edi
int n0xFFFF_2; // esi
int n0xFFFF_1; // esi
__int16 v8; // si
bool v9; // zf
int v12; // [esp+14h] [ebp-4h]
this_1 = this;
n0xFFFF = 0xFFFF;
v3 = 0;
v4 = *this;
v12 = *this;
while ( 2 )
{
PciRegWrite(v4, 510525564, dword_FFE76FAC[v3]);
n5 = 0;
while ( 1 )
{
n0xFFFF_2 = PciRegReadViaBar(this_1, 0);
if ( n0xFFFF_2 != 0xFFFF )
{
n0xFFFF_1 = VgaModeSetTiming(this) | n0xFFFF_2;
if ( n0xFFFF_1 != 0xFFFF )
{
v8 = ~(_WORD)n0xFFFF_1;
if ( v8 )
break;
}
}
v9 = ++n5 == 5;
if ( n5 >= 5 )
goto LABEL_10;
this_1 = this;
}
n0xFFFF = (unsigned __int16)(v8 & n0xFFFF);
if ( !n0xFFFF )
return 0;
v9 = n5 == 5;
LABEL_10:
if ( v9 )
return 0;
if ( (unsigned int)++v3 < 8 )
{
this_1 = this;
v4 = v12;
continue;
}
return n0xFFFF;
}
}