int __fastcall ImageDecodeGetWidth(_BYTE *a1, _BYTE *a2)
{
_BYTE *v2; // esi
_BYTE *v3; // edi
int n4; // ebx
int v5; // ecx
v2 = a1;
v3 = a1 + 16;
n4 = (unsigned __int8)a1 & 3;
if ( ((unsigned __int8)a1 & 3) != 0 && n4 == ((unsigned __int8)a2 & 3) )
{
v5 = 4 - n4;
if ( n4 != 4 )
{
do
{
if ( *v2 != *a2 )
break;
++v2;
++a2;
--v5;
}
while ( v5 );
}
}
while ( v2 <= v3 - 4 && *(_DWORD *)v2 == *(_DWORD *)a2 )
{
v2 += 4;
a2 += 4;
}
while ( 1 )
{
if ( v2 >= v3 )
return 0;
if ( *v2 != *a2 )
break;
++v2;
++a2;
}
return (char)*v2 - (char)*a2;
}