undefined4 * FUN_00417b38(undefined4 *param_1,int param_2)
{
int iVar1;
int iVar2;
undefined4 uVar3;
undefined4 *puVar4;
if (param_1 == (undefined4 *)0x0) {
switchD_00417bb4_default:
return (undefined4 *)0x0;
}
puVar4 = (undefined4 *)0x0;
switch(param_1[2]) {
case 0:
case 5:
case 6:
case 7:
case 8:
goto switchD_00417bb4_default;
case 1:
puVar4 = (undefined4 *)FUN_004177e0(param_1);
uVar3 = FUN_00417b38(param_1[0xb],param_2);
puVar4[0xb] = uVar3;
if (param_2 == 0) {
return puVar4;
}
iVar1 = FUN_00417b38(param_1[8],param_2);
puVar4[8] = iVar1;
if (iVar1 != 0) {
iVar2 = *(int *)(iVar1 + 0x28);
*(undefined4 **)(iVar1 + 0x1c) = puVar4;
for (; iVar2 != 0; iVar2 = *(int *)(iVar2 + 0x28)) {
*(undefined4 **)(iVar2 + 0x1c) = puVar4;
}
}
uVar3 = param_1[10];
goto LAB_00417c34;
case 2:
puVar4 = (undefined4 *)FUN_00417608(param_1);
uVar3 = param_1[10];
LAB_00417c34:
iVar1 = FUN_00417b38(uVar3,param_2);
puVar4[10] = iVar1;
if (iVar1 != 0) {
*(undefined4 **)(iVar1 + 0x24) = puVar4;
}
break;
case 3:
puVar4 = (undefined4 *)malloc(0x34) //possible issue identified - semgrep
if (puVar4 != (undefined4 *)0x0) {
uVar3 = *param_1;
*puVar4 = 0;
puVar4[1] = 0;
puVar4[2] = 0;
puVar4[3] = 0;
puVar4[4] = 0;
puVar4[5] = 0;
puVar4[6] = 0;
puVar4[7] = 0;
puVar4[8] = 0;
puVar4[9] = 0;
puVar4[10] = 0;
puVar4[0xb] = 0;
puVar4[0xc] = 0;
ixmlNode_setNodeName(puVar4,uVar3);
FUN_00416a38(puVar4,param_1[1]);
puVar4[2] = 3;
}
return puVar4;
case 4:
puVar4 = (undefined4 *)FUN_004179e8(param_1);
break;
case 9:
puVar4 = (undefined4 *)FUN_0041774c(param_1);
if (param_2 != 0) {
iVar1 = FUN_00417b38(param_1[8],param_2);
puVar4[8] = iVar1;
if (iVar1 != 0) {
*(undefined4 **)(iVar1 + 0x1c) = puVar4;
}
}
}
return puVar4;
}