int FUN_004174e8(int *param_1,int param_2)
{
uint uVar1;
int iVar2;
int *piVar3;
if (param_1 == (int *)0x0) {
piVar3 = (int *)0x0;
}
else {
piVar3 = (int *)0x0;
if (param_2 != 0) {
uVar1 = (*(code *)param_1[2])(param_2);
if (param_1[1] == 0) {
trap(0x1c00);
}
piVar3 = *(int **)(*param_1 + (uVar1 % (uint)param_1[1]) * 4);
while ((piVar3 != (int *)0x0 && (iVar2 = (*(code *)param_1[3])(param_2,piVar3[2]), iVar2 == 0)
)) {
piVar3 = (int *)*piVar3;
}
}
}
return (int)piVar3;
}