int __fastcall PciCfgWriteBuf(__int16 a1, __int16 a2, int n981)
{
unsigned int v3; // edi
unsigned __int32 v4; // eax
unsigned __int32 v5; // eax
unsigned __int32 v7; // eax
unsigned __int32 v8; // eax
unsigned __int32 v9; // eax
unsigned __int32 v10; // eax
unsigned __int32 v11; // eax
unsigned int v13; // [esp+10h] [ebp-4h]
v3 = 0x80000000;
v13 = 0x80000000;
while ( 1 )
{
__outdword(0xCF8u, v13);
v4 = __indword(0xCFCu);
if ( (_WORD)v4 == a1 )
{
__outdword(0xCF8u, v13);
v5 = __indword(0xCFCu);
if ( HIWORD(v5) == a2 )
break;
}
v3 += 2048;
v13 = v3;
if ( v3 >= 0x81000000 )
{
v3 = 0;
break;
}
}
if ( !v3 )
return 0;
*(_DWORD *)n981 = v3;
*(_WORD *)(n981 + 24) = a1;
*(_WORD *)(n981 + 26) = a2;
__outdword(0xCF8u, v3 + 8);
v7 = __indword(0xCFCu);
*(_BYTE *)(n981 + 28) = v7;
__outdword(0xCF8u, v3 + 4);
v8 = __indword(0xCFCu);
__outdword(0xCFCu, v8 | 3);
__outdword(0xCF8u, v3 + 24);
v9 = __indword(0xCFCu);
*(_WORD *)(n981 + 64) = v9 & 0xFFFC;
__outdword(0xCF8u, v3 + 20);
v10 = __indword(0xCFCu);
v10 &= 0xFFFFFFF0;
*(_DWORD *)(n981 + 52) = 0x20000;
*(_DWORD *)(n981 + 56) = v10;
*(_DWORD *)(n981 + 60) = v10;
*(_DWORD *)(n981 + 68) = 655360;
*(_DWORD *)(n981 + 72) = 720896;
*(_DWORD *)(n981 + 76) = 786432;
VgaModeProgramDac((unsigned __int8 *)n981, 1);
VgaModeSetClock((_DWORD *)n981);
VgaModeSetClockMask(n981);
__outdword(0xCF8u, v3 + 16);
v11 = __indword(0xCFCu);
v11 &= 0xFFFFFFF0;
*(_DWORD *)(n981 + 44) = v11;
*(_DWORD *)(n981 + 48) = v11;
return 1;
}