undefined4 * FUN_00405030(int param_1,int param_2,char *param_3,int param_4)
{
int iVar1;
char *pcVar2;
int *piVar3;
undefined4 *puVar4;
puVar4 = (undefined4 *)0x0;
do {
if (param_4 < 1) {
return puVar4;
}
if (param_3 != (char *)0x0) {
if (puVar4 == (undefined4 *)0x0) {
puVar4 = *(undefined4 **)(param_1 + 8);
}
else {
puVar4 = (undefined4 *)*puVar4;
}
for (; puVar4 != (undefined4 *)(param_1 + 8); puVar4 = (undefined4 *)*puVar4) {
iVar1 = strcmp((char *)puVar4[7],param_3);
if (iVar1 == 0) goto LAB_00405118;
}
}
if (param_2 == 0) {
return (undefined4 *)0x0;
}
puVar4 = (undefined4 *)FUN_00404fb0();
if (puVar4 == (undefined4 *)0x0) {
return (undefined4 *)0x0;
}
pcVar2 = strdup(param_3) //possible issue identified - semgrep
piVar3 = *(int **)(param_1 + 0xc);
*puVar4 = (undefined4 *)(param_1 + 8);
puVar4[7] = pcVar2;
*piVar3 = (int)puVar4;
puVar4[6] = param_1;
*(undefined4 **)(param_1 + 0xc) = puVar4;
puVar4[1] = piVar3;
LAB_00405118:
param_4 = param_4 + -1;
} while( true );
}