int __thiscall VgaModeSetSync(int *this)
{
int v1; // edi
int v2; // ecx
int v3; // ebx
unsigned int n0xF_1; // ebp
int v5; // ecx
int v6; // ecx
unsigned int v7; // ebx
unsigned int i; // ebp
int v9; // ecx
int v10; // edx
int v11; // ecx
int v12; // edx
int v13; // ecx
unsigned int n0xF000; // ecx
unsigned int n0xFA00; // eax
unsigned int n0xFA00_2; // ebx
int v17; // esi
int v18; // ecx
int v19; // ecx
int v20; // edx
int v21; // ebx
int v22; // ecx
int v23; // ecx
unsigned int n0xFA00_1; // [esp+10h] [ebp-18h]
int v26; // [esp+14h] [ebp-14h]
unsigned int n0xF; // [esp+18h] [ebp-10h]
int v28; // [esp+1Ch] [ebp-Ch]
int v29; // [esp+20h] [ebp-8h]
v1 = *this;
v26 = 0;
v29 = 0;
PciRegWrite(*this, 510525492, 32);
n0xFA00_1 = 0;
v3 = PciRegRead(v2, 510525536) | 0x2000;
n0xF_1 = 0;
v28 = v3;
n0xF = 0;
do
{
PciRegWrite(v1, 510525464, 33072);
PciRegWrite(v5, 510525536, (v3 | (n0xF_1 << 8)) ^ 0x1000);
PciRegRead(v6, 510525440);
VgaModeConfigPll(this, 1);
v7 = 0;
for ( i = 1; i < 5; ++i )
{
PciRegWrite(v1, 510525464, (i << 16) | 0x200130);
PciRegRead(v9, 510525440);
PciRegWrite(v11, v10 + 24, (i << 16) | 0x10200130);
while ( PciRegRead(v1, 510525568) >= 0 )
;
n0xF000 = PciRegRead(v13, v12 + 12);
if ( (_WORD)n0xF000 == 0xFFFF )
n0xF000 >>= 16;
v7 += (unsigned __int16)n0xF000;
if ( (unsigned __int16)n0xF000 < 0xF000u )
break;
}
n0xFA00 = n0xFA00_1;
n0xFA00_2 = v7 >> 2;
if ( n0xFA00_2 <= n0xFA00_1 )
{
v17 = v26;
}
else
{
v29 = PciRegRead(v1, 510525544);
v17 = n0xF ^ 0x10;
n0xFA00 = n0xFA00_2;
v26 = n0xF ^ 0x10;
n0xFA00_1 = n0xFA00_2;
}
if ( n0xFA00 > 0xFA00 && n0xF >= 0xF )
break;
v3 = v28;
n0xF_1 = n0xF + 1;
n0xF = n0xF_1;
}
while ( n0xF_1 < 0x20 );
PciRegWrite(v1, 510525536, v28 | (v17 << 8));
PciRegWrite(v18, 510525544, v29);
PciRegRead(v19, 510525440);
v21 = v20 + 24;
PciRegWrite(v22, v20 + 24, 33072);
return PciRegWrite(v23, v21, 304);
}