undefined ** FUN_00403240(char *param_1,int param_2)
{
undefined *puVar1;
int iVar2;
char *pcVar3;
undefined **ppuVar4;
undefined **ppuVar5;
ppuVar5 = (undefined **)0x0;
while( true ) {
ppuVar4 = (undefined **)PTR_LOOP_0041b0d0;
if (ppuVar5 != (undefined **)0x0) {
ppuVar4 = (undefined **)*ppuVar5;
}
if ((ppuVar4 == &PTR_LOOP_0041b0d0) || (ppuVar4 == (undefined **)0x0)) break;
iVar2 = strcmp(ppuVar4[2],param_1);
if (iVar2 == 0) {
return ppuVar4;
}
ppuVar5 = ppuVar4;
if (ppuVar4[3] != (undefined *)0x0) {
solist_get_reset();
while (iVar2 = solist_get_next(ppuVar4[3]), iVar2 != 0) {
iVar2 = sobj_strcmp(iVar2,param_1);
if (iVar2 == 0) {
return ppuVar4;
}
}
}
}
ppuVar5 = (undefined **)0x0;
if ((param_2 != 0) && (ppuVar5 = (undefined **)malloc(0x38), ppuVar5 != (undefined **)0x0)) { //possible issue identified - semgrep
memset(ppuVar5,0,0x38) //possible issue identified - semgrep
pcVar3 = strdup(param_1) //possible issue identified - semgrep
puVar1 = PTR_LOOP_0041b0d4;
*ppuVar5 = (undefined *)&PTR_LOOP_0041b0d0;
PTR_LOOP_0041b0d4 = (undefined *)ppuVar5;
ppuVar5[2] = pcVar3;
*(undefined ***)puVar1 = ppuVar5;
ppuVar5[1] = puVar1;
}
return ppuVar5;
}