void FUN_004052ec(char *param_1,char *param_2)

{
  undefined4 *puVar1;
  int iVar2;
  char *pcVar3;
  undefined4 *puVar4;
  
  puVar4 = DAT_00422a54;
  while( true ) {
    if (puVar4 == (undefined4 *)0x0) {
      puVar4 = (undefined4 *)malloc(0xc)   //possible issue identified - semgrep
      if (puVar4 != (undefined4 *)0x0) {
        *puVar4 = 0;
        puVar4[1] = 0;
        puVar4[2] = 0;
        pcVar3 = strdup(param_1)   //possible issue identified - semgrep
        puVar4[1] = pcVar3;
        if (param_2 == (char *)0x0) {
          param_2 = "";
        }
        pcVar3 = strdup(param_2)   //possible issue identified - semgrep
        puVar1 = DAT_00422a54;
        DAT_00422a54 = puVar4;
        puVar4[2] = pcVar3;
        *puVar4 = puVar1;
      }
      return;
    }
    iVar2 = strcmp((char *)puVar4[1],param_1);
    if (iVar2 == 0) break;
    puVar4 = (undefined4 *)*puVar4;
  }
  if ((void *)puVar4[2] != (void *)0x0) {
    free((void *)puVar4[2]);
  }
  if (param_2 == (char *)0x0) {
    param_2 = "";
  }
  pcVar3 = strdup(param_2)   //possible issue identified - semgrep
  puVar4[2] = pcVar3;
  return;
}