unsigned __int8 __fastcall VgaModeProgramAllExt(int a1, int a2)
{
int v2; // esi
int v3; // edi
int v4; // ebp
unsigned __int8 v5; // al
int v6; // eax
char v7; // bl
int v8; // eax
unsigned int v9; // eax
unsigned int v10; // eax
unsigned int v11; // ecx
char v12; // bl
int v13; // ecx
char v14; // al
int v15; // ecx
unsigned int v16; // ecx
char v17; // bl
unsigned __int8 v18; // al
unsigned __int8 result; // al
char v20; // [esp+10h] [ebp-10h]
unsigned int v21; // [esp+14h] [ebp-Ch]
unsigned int v22; // [esp+14h] [ebp-Ch]
unsigned __int16 n981; // [esp+18h] [ebp-8h]
char v24; // [esp+18h] [ebp-8h]
char v25; // [esp+18h] [ebp-8h]
unsigned __int16 n981_1; // [esp+18h] [ebp-8h]
char v27; // [esp+1Ch] [ebp-4h]
v2 = *(_DWORD *)(a2 + 20);
v3 = (*(_DWORD *)(v2 + 36) >> 2) & 8;
v4 = (*(_DWORD *)(v2 + 36) >> 1) & 8;
__outbyte(0x3D4u, 0x11u);
n981 = 981;
v5 = __inbyte(0x3D5u);
__outbyte(n981, v5 & 0x7F);
v6 = (*(_DWORD *)v2 >> 3) - 5;
v7 = BYTE1(v6) & 1;
VgaSeqRegReadModifyWrite(0x3D4u, 0, 0, v6);
v8 = (*(_DWORD *)(v2 + 4) >> 3) - 1;
v24 = v7;
if ( (v8 & 0x100) != 0 )
{
v7 |= 4u;
v24 = v7;
}
VgaSeqRegReadModifyWrite(0x3D4u, 1u, 0, v8);
v9 = ((unsigned int)(v3 + *(_DWORD *)(v2 + 4)) >> 3) - 1;
if ( (v9 & 0x100) != 0 )
{
v7 |= 0x10u;
v24 = v7;
}
VgaSeqRegReadModifyWrite(0x3D4u, 2u, 0, v9);
v20 = 4 * ((((unsigned int)(*(_DWORD *)v2 - v3) >> 3) - 1) & 0x60);
v21 = ((unsigned __int8)((((unsigned int)(*(_DWORD *)v2 - v3) >> 3) - 1) & 0x7F) >> 6) & 0xFFFFFF01;
VgaSeqRegReadModifyWrite(0x3D4u, 3u, 224, (((unsigned int)(*(_DWORD *)v2 - v3) >> 3) - 1) & 0x1F);
v10 = (unsigned int)(v3 + *(_DWORD *)(v2 + 4) + *(_DWORD *)(v2 + 8) - 1) >> 3;
if ( (v10 & 0x100) != 0 )
v24 = v7 | 0x40;
VgaSeqRegReadModifyWrite(0x3D4u, 4u, 0, v10);
if ( (((unsigned int)(v3 + *(_DWORD *)(v2 + 4) + *(_DWORD *)(v2 + 8) + *(_DWORD *)(v2 + 12) - 1) >> 3) & 0x20) != 0 )
LOBYTE(v21) = v21 | 4;
VgaSeqRegReadModifyWrite(
0x3D4u,
5u,
96,
v20 | ((unsigned int)(v3 + *(_DWORD *)(v2 + 4) + *(_DWORD *)(v2 + 8) + *(_DWORD *)(v2 + 12) - 1) >> 3) & 0x1F);
VgaSeqRegReadModifyWrite(0x3D4u, 0xACu, 0, v24);
VgaSeqRegReadModifyWrite(0x3D4u, 0xADu, 0, v21);
v11 = *(_DWORD *)(v2 + 16) - 2;
v12 = ((unsigned __int16)(*(_WORD *)(v2 + 16) - 2) >> 8) & 1;
v25 = v12;
if ( (v11 & 0x200) != 0 )
{
v12 |= 0x20u;
v25 = v12;
}
v22 = (v11 >> 10) & 0xFFFFFF01;
VgaSeqRegReadModifyWrite(0x3D4u, 6u, 0, v11);
v13 = *(_DWORD *)(v2 + 24) - 1 + v4 + *(_DWORD *)(v2 + 20);
if ( (v13 & 0x100) != 0 )
{
v12 |= 4u;
v25 = v12;
}
if ( (v13 & 0x200) != 0 )
{
v12 |= 0x80u;
v25 = v12;
}
if ( (v13 & 0x400) != 0 )
LOBYTE(v22) = v22 | 8;
VgaSeqRegReadModifyWrite(0x3D4u, 0x10u, 0, v13);
v14 = v22;
if ( (((unsigned __int8)*(_DWORD *)(v2 + 24) - 1 + (_BYTE)v4 + *(_BYTE *)(v2 + 20) + *(_BYTE *)(v2 + 28)) & 0x10) != 0 )
{
v14 = v22 | 0x20;
LOBYTE(v22) = v22 | 0x20;
}
if ( (((unsigned __int8)*(_DWORD *)(v2 + 24) - 1 + (_BYTE)v4 + *(_BYTE *)(v2 + 20) + *(_BYTE *)(v2 + 28)) & 0x20) != 0 )
LOBYTE(v22) = v14 | 0x40;
VgaSeqRegReadModifyWrite(
0x3D4u,
0x11u,
112,
(*(_DWORD *)(v2 + 24) - 1 + v4 + *(_BYTE *)(v2 + 20) + *(_BYTE *)(v2 + 28)) & 0xF);
v15 = *(_DWORD *)(v2 + 20) - 1;
if ( (v15 & 0x100) != 0 )
{
v12 |= 2u;
v25 = v12;
}
if ( (v15 & 0x200) != 0 )
{
v12 |= 0x40u;
v25 = v12;
}
if ( (v15 & 0x400) != 0 )
LOBYTE(v22) = v22 | 2;
VgaSeqRegReadModifyWrite(0x3D4u, 0x12u, 0, v15);
v16 = v4 + *(_DWORD *)(v2 + 20) - 1;
if ( (v16 & 0x100) != 0 )
v25 = v12 | 8;
v17 = v22;
v27 = (v16 >> 4) & 0x20;
if ( (v16 & 0x400) != 0 )
v17 = v22 | 4;
VgaSeqRegReadModifyWrite(0x3D4u, 0x15u, 0, v16);
if ( ((*(_DWORD *)(v2 + 16) - v4 - 1) & 0x100) != 0 )
v17 |= 0x10u;
VgaSeqRegReadModifyWrite(0x3D4u, 0x16u, 0, *(_BYTE *)(v2 + 16) - v4 - 1);
VgaSeqRegReadModifyWrite(0x3D4u, 7u, 0, v25);
VgaSeqRegReadModifyWrite(0x3D4u, 9u, 223, v27);
VgaSeqRegReadModifyWrite(0x3D4u, 0xAEu, 0, v17 | 0x80);
__outbyte(0x3D4u, 0x11u);
n981_1 = 981;
v18 = __inbyte(0x3D5u);
result = v18 | 0x80;
__outbyte(n981_1, result);
return result;
}