// CpuTypeToDeviceIndex - addr:0xffdafb26
int __cdecl CpuTypeToDeviceIndex(int a1, unsigned __int8 n20, unsigned __int8 n0x1C, int n2, int a5)
{
char v5; // cl
unsigned int n0x1F; // esi
unsigned __int8 n0x1C_1; // al
int n0x1C_2; // eax
int n9; // [esp-4h] [ebp-14h]
int v11; // [esp+0h] [ebp-10h]
v5 = *(_BYTE *)(a5 + 44);
n0x1F = 0;
switch ( n20 )
{
case 0u:
n0x1C_1 = n0x1C;
if ( v5 || n0x1C >= 0x1Cu )
goto LABEL_27;
if ( n0x1C < 8u )
goto LABEL_23;
if ( n0x1C < 0x10u )
{
n9 = 9;
goto LABEL_8;
}
return 11 - (n0x1C < 0x18u);
case 1u:
n0x1C_1 = n0x1C;
if ( v5 || n0x1C >= 0x1Cu )
goto LABEL_27;
if ( n0x1C < 8u )
{
n9 = 14;
goto LABEL_8;
}
if ( n0x1C < 0x10u )
{
n9 = 15;
goto LABEL_8;
}
return 17 - (n0x1C < 0x18u);
case 2u:
n0x1C_1 = n0x1C;
if ( v5 || n0x1C >= 0x1Cu )
{
LABEL_27:
CpuDeadLoopEx(a1, "\nInvalid CHA Box Instance Number %d. \n", n0x1C_1);
}
else
{
if ( n0x1C < 8u )
{
n9 = 20;
goto LABEL_8;
}
if ( n0x1C < 0x10u )
{
n9 = 21;
goto LABEL_8;
}
return 23 - (n0x1C < 0x18u);
}
return n0x1F;
case 3u:
if ( !v5 && !n0x1C )
{
n9 = 29;
goto LABEL_8;
}
CpuDeadLoopEx(a1, "\nInvalid CHABC Box Instance Number %d. \n", n0x1C);
return n0x1F;
case 4u:
if ( !v5 && !n0x1C )
{
n9 = 30;
goto LABEL_8;
}
CpuDeadLoopEx(a1, "\nInvalid PCU Box Instance Number %d. \n", n0x1C);
return n0x1F;
case 5u:
if ( !v5 && !n0x1C )
{
n9 = 31;
goto LABEL_8;
}
CpuDeadLoopEx(a1, "\nInvalid VCU Box Instance Number %d. \n", n0x1C);
return n0x1F;
case 6u:
if ( v5 || n0x1C >= 2u )
CpuDeadLoopEx(a1, "\nInvalid M2MEM Box Instance Number %d. \n", n0x1C);
else
n0x1F = n0x1C + 8;
goto LABEL_94;
case 7u:
case 0xBu:
if ( v5 )
goto LABEL_12;
if ( n0x1C <= 1u )
{
n9 = 10;
}
else if ( n0x1C == 2 )
{
n9 = 11;
}
else if ( n0x1C <= 4u )
{
n9 = 12;
}
else
{
if ( n0x1C != 5 )
return n0x1F;
n9 = 13;
}
goto LABEL_8;
case 8u:
if ( v5 )
goto LABEL_15;
n0x1F = n0x1C / (unsigned int)*(unsigned __int8 *)(a5 + 60) + 22;
goto LABEL_94;
case 9u:
if ( v5 )
goto LABEL_15;
if ( n0x1C < 3u )
{
n0x1F = n0x1C + 14;
goto LABEL_94;
}
n0x1C_2 = n0x1C;
goto LABEL_58;
case 0xAu:
if ( v5 )
{
LABEL_12:
CpuDeadLoopEx(a1, "\nInvalid Cpu type.\n", v11);
return n0x1F;
}
if ( n0x1C < 2u )
{
n9 = 18;
goto LABEL_8;
}
CpuDeadLoopEx(a1, "\nInvalid Box instance.\n", v11);
return n0x1F;
case 0xCu:
if ( v5 )
{
LABEL_15:
CpuDeadLoopEx(a1, "\nInvalid Cpu type.\n", v11);
}
else
{
n0x1C_2 = n0x1C;
if ( n0x1C >= 5u )
LABEL_58:
CpuDeadLoopEx(a1, "\nInvalid KTI Box Instance Number %d. \n", n0x1C_2);
else
n0x1F = (unsigned __int8)byte_FFDB09B4[n0x1C];
}
goto LABEL_94;
case 0xDu:
if ( v5 || n0x1C >= 4u )
CpuDeadLoopEx(a1, "\nInvalid IIO PCIE DMI Box Instance Number %d. \n", n0x1C);
return n0x1F;
case 0xEu:
if ( v5 || n0x1C >= 0x15u )
{
CpuDeadLoopEx(a1, "\nInvalid IIO PCIE Box Instance Number %d. \n", n0x1C);
}
else
{
if ( !n0x1C )
return n0x1F;
n0x1F = (n0x1C - 1) % 4;
}
LABEL_94:
if ( n0x1F > 0x1F )
CpuDeadLoopEx(a1, "\nInvalid Device %d accessed for Box Type %d and Box Instance %d. \n", n0x1F);
return n0x1F;
case 0xFu:
if ( v5 )
CpuDeadLoopEx(a1, "\nInvalid IIO PCIE Box Instance Number %d. \n", n0x1C);
return n0x1F;
case 0x10u:
if ( !v5 )
{
n9 = 4;
goto LABEL_8;
}
CpuDeadLoopEx(a1, "\nInvalid IIO CB Box Instance Number %d. \n", n0x1C);
return n0x1F;
case 0x11u:
if ( !v5 )
{
n9 = 5;
goto LABEL_8;
}
CpuDeadLoopEx(a1, "\nInvalid IIO VTD Box Instance Number %d. \n", n0x1C);
return n0x1F;
case 0x12u:
if ( !v5 && n0x1C < 0x15u )
{
n9 = 7;
goto LABEL_8;
}
CpuDeadLoopEx(a1, "\nInvalid IIO DFX Box Instance Number %d. \n", n0x1C);
return n0x1F;
case 0x13u:
if ( !v5 && !n0x1C )
{
LABEL_23:
n9 = 8;
goto LABEL_8;
}
CpuDeadLoopEx(a1, "\nInvalid Ubox Instance Number %d. \n", n0x1C);
break;
case 0x14u:
if ( v5 || n0x1C )
{
CpuDeadLoopEx(a1, "\nInvalid FPGA Instance number %d. \n", n0x1C);
}
else
{
n9 = 16;
LABEL_8:
n0x1F = n9;
}
break;
default:
CpuDeadLoopEx(a1, "\nInvalid Box Type %d. \n", n20);
goto LABEL_94;
}
return n0x1F;
}