int __fastcall ImageDecodeInit(char *a1, char **p_%08x_%04x_%04x_%02x%02x_%02x%02x%02x%02x%02x%02x)
{
char v2; // bl
unsigned int n0x7FFFFFFF; // esi
char n57; // al
char n10; // al
char v7; // [esp+Ch] [ebp-4h]
v2 = 1;
v7 = 0;
n0x7FFFFFFF = 0;
while ( *a1 == 32 || *a1 == 9 )
++a1;
if ( !*a1 )
{
*p_%08x_%04x_%04x_%02x%02x_%02x%02x%02x%02x%02x%02x = a1;
return 0;
}
if ( *a1 == 45 )
{
v2 = -1;
++a1;
}
if ( *a1 == 43 )
++a1;
while ( 1 )
{
n57 = *a1;
if ( *a1 >= 48 && n57 <= 57 )
{
n10 = n57 - 48;
goto LABEL_17;
}
if ( (n57 & 0xDFu) < 0x41 || (n57 & 0xDFu) > 0x5A )
break;
n10 = (n57 & 0xDF) - 55;
LABEL_17:
if ( n10 >= 10 )
break;
n0x7FFFFFFF = n10 + 10 * n0x7FFFFFFF;
if ( v2 == 1 )
{
if ( n0x7FFFFFFF < 0x80000000 )
goto LABEL_23;
}
else if ( n0x7FFFFFFF <= 0x80000000 )
{
goto LABEL_23;
}
v7 = 1;
LABEL_23:
++a1;
}
*p_%08x_%04x_%04x_%02x%02x_%02x%02x%02x%02x%02x%02x = a1;
if ( v7 )
{
n0x7FFFFFFF = 0x7FFFFFFF;
if ( v2 == -1 )
n0x7FFFFFFF = 0x80000000;
}
return n0x7FFFFFFF * v2;
}