int __fastcall BitmapRenderLine(char *i, int *Pool, int n3, int a4)
{
char *i_1; // esi
char v6; // dl
int v7; // edi
int BitsPerPixel; // eax
int v9; // ecx
int v10; // eax
int v12; // [esp+Ch] [ebp-4h]
i_1 = i;
v6 = *i;
if ( !*i )
return 0;
v7 = v12;
while ( 1 )
{
BitsPerPixel = BitmapGetBitsPerPixel(a4, v6);
if ( !BitsPerPixel )
{
v10 = BitmapRender(i_1, Pool, v9, v9);
LABEL_10:
v7 = v10;
goto LABEL_11;
}
if ( BitsPerPixel == 1 )
{
v10 = BitmapDecodeFull(i_1, Pool, v9, v9);
goto LABEL_10;
}
if ( BitsPerPixel != 3 || n3 != 3 )
{
v10 = BitmapDecodePixels(i_1, Pool, v9, a4);
goto LABEL_10;
}
LABEL_11:
if ( !v7 )
return 0;
if ( v7 < 0 )
return -1;
i_1 += v7;
v6 = *i_1;
if ( !*i_1 )
return 0;
}
}