char __fastcall sub_19FC(unsigned __int8 a1, char a2, char a3, __int64 a4, char a5, char a6, char a7)
{
char result; // al
int v10; // ecx
int v11; // ecx
__int64 v12; // rdx
result = 0; /*0x1a00*/
if ( a1 ) /*0x1a0b*/
{
v10 = a1 - 1; /*0x1a0d*/
if ( v10 ) /*0x1a10*/
{
v11 = v10 - 1; /*0x1a12*/
if ( v11 ) /*0x1a15*/
{
if ( v11 != 1 ) /*0x1a1a*/
return result; /*0x1a1a*/
if ( a7 == 1 ) /*0x1a24*/
{
if ( !a6 ) /*0x1a2a*/
return result; /*0x1a2a*/
result = byte_7521; /*0x1a2c*/
}
else
{
if ( !a6 ) /*0x1a38*/
return result; /*0x1a38*/
result = byte_7503; /*0x1a3a*/
}
}
else if ( a7 == 1 ) /*0x1a47*/
{
if ( !a6 ) /*0x1a4d*/
return result; /*0x1a4d*/
result = byte_751C; /*0x1a4f*/
}
else
{
if ( !a6 ) /*0x1a5b*/
return result; /*0x1a5b*/
result = byte_74FE; /*0x1a5d*/
}
}
else
{
if ( !a5 ) /*0x1a69*/
return result; /*0x1a69*/
result = byte_74F9; /*0x1a6b*/
}
}
else
{
if ( !a5 ) /*0x1a77*/
return result; /*0x1a77*/
result = byte_74F4; /*0x1a79*/
}
v12 = (unsigned __int8)byte_7D91; /*0x1a7f*/
byte_7D60[2 * (unsigned __int8)byte_7D91 + 1] = a3 + a1 - a2; /*0x1a93*/
byte_7D60[2 * v12 + 2] = result; /*0x1a98*/
byte_7D91 = v12 + 1; /*0x1a9f*/
return result; /*0x1aa5*/
}