int __cdecl ImageXorDecodeType6(int a1, char *a2, char *a3)
{
int v3; // ebx
int v4; // ebp
char *v5; // eax
int v7; // ecx
int v8; // edx
char v9; // al
char v10; // dl
int v12; // [esp+Ch] [ebp-Ch]
int v13; // [esp+10h] [ebp-8h]
v3 = 0;
v4 = 0;
if ( a1 > 0 )
{
v5 = a2;
do
{
v7 = 0;
v8 = 0;
v12 = 0;
v13 = 0;
do
{
v9 = *v5;
if ( v9 >= 0 )
{
v10 = v7 * v3 + v8 % 3;
v7 = v12;
*a3 = v9 ^ ((v10 & 1) == 0);
v8 = v13;
}
else
{
*a3 = v9;
}
v8 += v3;
v13 = v8;
v4 += *a3 & 1;
v5 = a2 + 1;
++a3;
++v7;
++a2;
v12 = v7;
}
while ( v7 < a1 );
++v3;
}
while ( v3 < a1 );
}
return v4;
}