int __fastcall VgaDisplayDisable(unsigned __int16 *a1, _WORD *a2, unsigned __int16 *a3, _BYTE *a4)
{
unsigned __int16 i_1; // di
int v5; // ebx
int v6; // esi
int n0xFFFF; // eax
unsigned __int16 *v8; // eax
unsigned __int16 i; // cx
unsigned __int16 v10; // di
int j_1; // edi
int j; // ebx
__int16 j_2; // ax
char v14; // di
i_1 = 0;
v5 = 0;
v6 = 0;
while ( 1 )
{
v5 *= 2;
if ( VgaDisplayBlank(a4) )
v5 |= 1u;
++i_1;
n0xFFFF = 0xFFFF;
if ( i_1 == 0xFFFF )
break;
v8 = a1;
for ( i = *a1; i_1 >= i; i = *v8 )
{
if ( i_1 == i && (_WORD)v5 == v8[1] )
{
v10 = v8[2];
*a3 = v10;
j_1 = v10 & 0xF;
for ( j = j_1; j; --j )
{
v6 *= 2;
if ( VgaDisplayBlank(a4) )
v6 |= 1u;
}
j_2 = j_1;
v14 = j_1 - 1;
if ( j_2 )
{
if ( ((1 << (v14 & 0xF)) & v6) == 0 )
LOWORD(v6) = ((int)((v6 << (30 - v14)) | 0x80000000) >> (30 - v14)) + 1;
}
*a2 = v6;
return (int)a2;
}
v8 += 3;
}
}
return n0xFFFF;
}