int __thiscall VgaDisplayModeSet(int *this)
{
int v2; // esi
int v3; // ecx
int v4; // ecx
int v5; // ecx
int v6; // ecx
int v7; // ecx
int v8; // ecx
int v9; // ecx
int v10; // ecx
int v11; // ecx
int v12; // ecx
int v13; // ecx
int v14; // ecx
int v15; // ecx
int v16; // ecx
int v17; // ecx
int v18; // ecx
int v19; // ecx
int v20; // ecx
int v21; // ecx
int v22; // ecx
int v23; // ecx
int v24; // ecx
int v25; // ecx
int v26; // ebx
unsigned int j; // edi
int v28; // ecx
int v29; // ecx
unsigned int v30; // ecx
unsigned int v31; // eax
unsigned int v32; // ecx
int v33; // ebx
unsigned int n255_1; // edi
int v35; // ecx
int v36; // ecx
int v37; // ecx
int v38; // ecx
int v39; // ecx
int v40; // ecx
unsigned int n255; // [esp+10h] [ebp-14h]
unsigned int n255_2; // [esp+14h] [ebp-10h]
unsigned int v44; // [esp+18h] [ebp-Ch]
unsigned int i; // [esp+1Ch] [ebp-8h]
unsigned int j_1; // [esp+20h] [ebp-4h]
unsigned int k; // [esp+20h] [ebp-4h]
n255 = 0;
v2 = *(this + 15);
n255_2 = 0;
j_1 = 0;
PciRegWrite(v2, 510525444, 787);
PciRegWrite(v3, 510525456, dword_FFE7753C);
PciRegWrite(v4, 510525460, dword_FFE77540);
PciRegWrite(v5, 510525464, dword_FFE77544);
PciRegWrite(v6, 510525472, dword_FFE77548);
PciRegWrite(v7, 510525476, dword_FFE7754C);
PciRegWrite(v8, 510525484, dword_FFE77550 | 0x100);
PciRegWrite(v9, 510525488, dword_FFE77554);
PciRegWrite(v10, 510525952, 1112091310);
PciRegWrite(v11, 510525956, 151003136);
PciRegWrite(v12, 510525964, 1440746251);
PciRegWrite(v13, 510525968, 0x20000000);
PciRegWrite(v14, 510525972, dword_FFE77558);
PciRegWrite(v15, 510526176, dword_FFE7755C);
PciRegWrite(v16, 510526180, dword_FFE77560);
PciRegWrite(v17, 510526184, dword_FFE77564);
PciRegWrite(v18, 510526188, dword_FFE77568);
PciRegWrite(v19, 510526192, dword_FFE7756C);
PciRegWrite(v20, 510526196, dword_FFE77570);
PciRegWrite(v21, 510526200, dword_FFE77574);
PciRegWrite(v22, 510526096, 1048584);
PciRegWrite(v23, 510526148, 1008221244);
PciRegWrite(v24, 510526152, 6495758);
PciRegWrite(v25, 510525492, 108945);
v26 = 0;
for ( i = 0; i < 4; ++i )
{
if ( v26 )
break;
v44 = 0;
PciRegWrite(v2, 510526144, 7174);
for ( j = 64; j < 0x80; ++j )
{
PciRegWrite(v2, 510525452, 0);
PciRegWrite(v28, 510525536, 0);
PciRegWrite(v29, 510526156, j | (j << 8));
VgaModeProgramSeq(this);
PciRegWrite(v2, 510525452, 23553);
if ( VgaModeEnable(this) )
{
++v26;
v30 = PciRegRead(v2, 510526416);
v31 = (unsigned __int8)v30;
v32 = v30 >> 8;
if ( (unsigned __int8)v31 > v32 )
v31 = v32;
if ( v44 < v31 )
{
v44 = v31;
j_1 = j;
}
}
else if ( v26 )
{
break;
}
}
}
PciRegWrite(v2, 510526156, j_1 | (j_1 << 8));
v33 = 0;
for ( k = 0; k < 4; ++k )
{
if ( v33 )
break;
n255_2 = 0;
n255_1 = 0;
n255 = 255;
do
{
PciRegWrite(v2, 510525452, 0);
PciRegWrite(v35, 510525536, 0);
PciRegWrite(v36, 510526144, (n255_1 << 8) | 6);
VgaModeProgramSeq(this);
PciRegWrite(v2, 510525452, 23553);
if ( VgaModeEnable(this) )
{
++v33;
if ( n255 > n255_1 )
n255 = n255_1;
if ( n255_2 < n255_1 )
n255_2 = n255_1;
}
else if ( v33 )
{
break;
}
++n255_1;
}
while ( n255_1 < 0x40 );
}
PciRegWrite(v2, 510525452, 0);
PciRegWrite(v37, 510525536, 0);
PciRegWrite(v2, 510526144, ((n255_2 + 1 + n255) << 7) & 0xFFFFFF00 | 6);
VgaModeProgramSeq(this);
PciRegWrite(v2, 510525728, dword_FFE7757C);
PciRegWrite(v38, 510525452, 1118461057);
PciRegWrite(v39, 510525492, 110483);
VgaModeProgramGc((int)this, dword_FFE77578);
VgaModeProgramAttr(this);
PciRegWrite(v2, 510525468, 8);
return PciRegWrite(v40, 510525496, -256);
}