int __fastcall ImageRenderLine(int *p_n2, int n26, int p_n2a, int a4)
{
unsigned int *p_count; // eax
int v8; // eax
char *count; // edx
int v10; // edi
int v11; // ebx
int v12; // ecx
char v13; // al
int v14; // eax
int v15; // edx
char v16; // al
int v17; // eax
char v18; // al
int v19; // eax
p_count = ImageRenderAllocContext();
p_n2[3] = (int)p_count;
if ( !p_count )
return -1;
if ( ImageRenderBits(p_count, (char *)4, 2) >= 0 )
{
v8 = 0;
if ( n26 > 9 )
{
LOBYTE(v8) = n26 > 26;
++v8;
}
count = *(char **)(a4 + 4 * v8 + 140);
if ( !count || ImageRenderBits((unsigned int *)p_n2[3], count, p_n2[1]) >= 0 )
{
v10 = 0;
v11 = p_n2[1] / 2;
if ( v11 <= 0 )
{
LABEL_17:
if ( (p_n2[1] & 1) == 0 )
return 0;
v18 = *(_BYTE *)(p_n2[2] + 2 * v11);
v19 = v18 >= 0 ? *(char *)(v18 + a4) : -1;
if ( ImageRenderBits((unsigned int *)p_n2[3], (char *)6, v19) >= 0 )
return 0;
}
else
{
while ( 1 )
{
v12 = p_n2[2];
v13 = *(_BYTE *)(v12 + 2 * v10);
v14 = v13 >= 0 ? *(char *)(v13 + a4) : -1;
v15 = 45 * v14;
v16 = *(_BYTE *)(v12 + 2 * v10 + 1);
v17 = v16 >= 0 ? *(char *)(v16 + a4) : -1;
if ( ImageRenderBits((unsigned int *)p_n2[3], (char *)0xB, v15 + v17) < 0 )
break;
if ( ++v10 >= v11 )
goto LABEL_17;
}
}
}
}
p_n2[3] = 0;
return -1;
}