int __fastcall VgaDisplaySetStartAddr(unsigned __int16 a1, unsigned __int16 n8, _BYTE *a3, int a4)
{
int n8_4; // ebp
unsigned int n8_1; // ebx
unsigned int v7; // edx
int result; // eax
int v10; // ecx
int n8_2; // eax
_BYTE *v12; // ecx
int v13; // [esp+10h] [ebp-8h]
unsigned int v14; // [esp+14h] [ebp-4h]
int n8_3; // [esp+20h] [ebp+8h]
n8_4 = 0;
n8_1 = n8;
v7 = a1;
result = *(_DWORD *)(a4 + 30);
v14 = a1;
v10 = result + 4 * (a1 + n8_1 * *(_DWORD *)(a4 + 82));
v13 = v10;
do
{
if ( n8_1 >= *(_DWORD *)(a4 + 86) )
break;
n8_2 = 8;
v12 = (_BYTE *)(v10 + 2);
n8_3 = 8;
do
{
if ( v7 < *(_DWORD *)(a4 + 82) )
{
*(v12 - 2) = *a3;
*(v12 - 1) = a3[1];
*v12 = a3[2];
n8_2 = n8_3;
v12[1] = 0;
}
a3 += 4;
v12 += 4;
++v7;
n8_3 = --n8_2;
}
while ( n8_2 );
++n8_4;
result = *(_DWORD *)(a4 + 82);
++n8_1;
v7 = v14;
v10 = v13 + 4 * result;
v13 = v10;
}
while ( n8_4 < 8 );
return result;
}