void * FUN_00417450(int param_1)

{
  int iVar1;
  int iVar2;
  void *local_18 [3];
  
  if (param_1 != 0) {
    if (*(int *)(param_1 + 8) != 1) {
      return (void *)0x0;
    }
    local_18[0] = (void *)0x0;
    local_18[0] = malloc(8)   //possible issue identified - semgrep
    if (local_18[0] != (void *)0x0) {
      ixmlNamedNodeMap_init(local_18[0]);
      iVar2 = *(int *)(param_1 + 0x2c);
      while( true ) {
        if (iVar2 == 0) {
          return local_18[0];
        }
        iVar1 = ixmlNamedNodeMap_addToNamedNodeMap(local_18,iVar2);
        if (iVar1 != 0) break;
        iVar2 = *(int *)(iVar2 + 0x28);
      }
      ixmlNamedNodeMap_free(local_18[0]);
      return (void *)0x0;
    }
  }
  return (void *)0x0;
}