unsigned __int8 __fastcall VgaDisplaySetCursor(unsigned __int8 n2, unsigned __int8 n4, int a3)
{
unsigned __int8 n4_1; // al
int n2_1; // ebx
_DWORD *v5; // esi
int v6; // ebp
int i; // edx
int j; // edx
int v9; // esi
int n4_2; // ebx
_BYTE *v11; // edx
int v12; // ecx
n4_1 = n4;
n2_1 = n2;
v5 = *(_DWORD **)(a3 + 58);
v6 = *(_DWORD *)(a3 + 62);
if ( n2 )
{
do
{
if ( *(_BYTE *)*v5 )
{
if ( *(_BYTE *)*v5 == 1 )
{
for ( i = 0; i < 64; ++i )
*(_BYTE *)(i + *(_DWORD *)(a3 + 70)) = *(_BYTE *)(*v5 + i + 1);
}
}
else
{
for ( j = 0; j < 64; ++j )
*(_BYTE *)(j + *(_DWORD *)(a3 + 66)) = *(_BYTE *)(*v5 + j + 1);
}
v5 += 2;
--n2_1;
}
while ( n2_1 );
n4_1 = n4;
}
v9 = 0;
n4_2 = n4_1;
if ( n4_1 )
{
while ( 1 )
{
v11 = *(_BYTE **)(v6 + 8 * v9);
if ( !*v11 )
{
v12 = *(_DWORD *)(a3 + 10);
goto LABEL_20;
}
if ( *v11 == 1 )
{
v12 = *(_DWORD *)(a3 + 18);
goto LABEL_20;
}
if ( *v11 == 16 )
break;
n4_1 = *v11 - 17;
if ( *v11 == 17 )
{
v12 = *(_DWORD *)(a3 + 22);
LABEL_20:
n4_1 = VgaCrtcSetRegister(v12, (int)v11);
}
if ( ++v9 >= n4_2 )
return n4_1;
}
v12 = *(_DWORD *)(a3 + 14);
goto LABEL_20;
}
return n4_1;
}