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*/ }