// FuncBlockToIndex - addr:0xffdafed6
int __cdecl FuncBlockToIndex(int a1, unsigned __int8 n20, unsigned __int8 n0x1C, unsigned __int8 n2, int a5)
{
unsigned __int8 v5; // cl
unsigned __int8 v6; // dl
unsigned int n7; // esi
int v8; // esi
unsigned __int8 n7_1; // al
v5 = *(_BYTE *)(a5 + 44);
v6 = *(_BYTE *)(a5 + 60);
n7 = 0;
switch ( n20 )
{
case 0u:
case 1u:
case 2u:
if ( !v5 && n0x1C < 0x1Cu )
{
n7 = n0x1C & 7;
goto LABEL_15;
}
return n7;
case 3u:
case 4u:
case 5u:
case 6u:
case 0xDu:
case 0xEu:
case 0xFu:
case 0x10u:
case 0x11u:
case 0x13u:
n7 = (unsigned __int8)byte_FFDB090C[168 * v5 + 8 * n20 + n2];
goto LABEL_15;
case 7u:
if ( n2 >= 2u )
return 4;
v8 = (unsigned __int8)byte_FFDB0944[168 * v5 + n0x1C % (unsigned int)v6];
LABEL_5:
n7 = n2 + v8;
goto LABEL_15;
case 8u:
v8 = (unsigned __int8)byte_FFDB094C[168 * v5 + n0x1C % (unsigned int)v6];
if ( n2 != 2 )
goto LABEL_5;
n7 = v8 + 3;
goto LABEL_15;
case 9u:
n7 = (unsigned __int8)byte_FFDB0954[168 * v5 + n2];
if ( n0x1C >= 9u )
goto LABEL_13;
goto LABEL_15;
case 0xAu:
n7 = (unsigned __int8)byte_FFDB095C[168 * v5 + n2];
if ( n0x1C == 1 )
LABEL_13:
n7 += 4;
goto LABEL_15;
case 0xBu:
v8 = (unsigned __int8)byte_FFDB0964[168 * v5 + n0x1C % (unsigned int)v6];
goto LABEL_5;
case 0xCu:
n7 = (unsigned __int8)byte_FFDB096C[168 * v5 + n2];
if ( n0x1C == 2 || n0x1C == 4 )
n7 += 4;
goto LABEL_15;
case 0x12u:
if ( n0x1C >= 0x15u || (n7_1 = byte_FFDB099C[168 * v5 + n2], n7_1 == 0xFF) )
{
CpuDeadLoopEx(a1, "\nInvalid IIO DFX Box Instance Number %d. \n", n0x1C);
}
else if ( n2 )
{
n7 = n7_1;
}
else
{
if ( !n0x1C )
return 0;
n7 = (n0x1C - 1) % 4;
}
LABEL_15:
if ( n7 > 7 )
CpuDeadLoopEx(
a1,
"\nInvalid Functional Block %d accessed for CPUType %d CPUIndex %d Box Type %d and Box Instance %d. \n",
n2);
return n7;
case 0x14u:
if ( n0x1C )
CpuDeadLoopEx(a1, "\nInvalid FPGA Box Instance Number %d. \n", n0x1C);
return 0;
default:
CpuDeadLoopEx(a1, "\nInvalid Box Type %d. \n", n20);
goto LABEL_15;
}
}