/* WARNING: Removing unreachable block (ram,0x004193d0) */
/* WARNING: Removing unreachable block (ram,0x0041969c) */
/* WARNING: Removing unreachable block (ram,0x004193ec) */
/* WARNING: Removing unreachable block (ram,0x00419628) */
/* WARNING: Removing unreachable block (ram,0x00419644) */
/* WARNING: Removing unreachable block (ram,0x004196bc) */
/* WARNING: Removing unreachable block (ram,0x00419424) */

int FUN_00415348(char *param_1,undefined4 *param_2)

{
  void *__ptr;
  undefined4 *puVar1;
  undefined *__s2;
  undefined4 *__s;
  int iVar2;
  size_t sVar3;
  char *pcVar4;
  undefined4 *puVar5;
  undefined4 uVar6;
  int iVar7;
  size_t sVar8;
  char cVar9;
  undefined4 uVar10;
  int iVar11;
  void *pvVar12;
  undefined4 *puVar13;
  char *pcVar14;
  char *pcVar15;
  undefined4 *puVar16;
  undefined4 uStack_a8;
  undefined4 uStack_a4;
  undefined4 uStack_a0;
  undefined4 uStack_9c;
  char *pcStack_98;
  undefined4 uStack_94;
  undefined4 *puStack_90;
  char *pcStack_8c;
  char *pcStack_88;
  uint uStack_84;
  char *pcStack_7c;
  char *pcStack_78;
  char *pcStack_58;
  char *pcStack_54;
  char *pcStack_50;
  char *pcStack_4c;
  char *pcStack_48;
  char *pcStack_44;
  char *pcStack_40;
  char *pcStack_3c;
  char *pcStack_38;
  undefined4 *puStack_34;
  undefined4 *puStack_30;
  
  if (((param_1 == (char *)0x0) || (param_2 == (undefined4 *)0x0)) || (*param_1 == '\0')) {
    return 0x69;
  }
  __s = (undefined4 *)malloc(0x40)   //possible issue identified - semgrep
  if (__s == (undefined4 *)0x0) {
    return 0x66;
  }
  memset(__s,0,0x40)   //possible issue identified - semgrep
  puVar16 = __s + 7;
  ixml_membuf_init(puVar16);
  ixml_membuf_init(__s + 3);
  pcVar4 = strdup(param_1);
  *__s = pcVar4;
  if (pcVar4 == (char *)0x0) {
    iVar2 = 0x66;
    goto LAB_004194bc;
  }
  __s[1] = *__s;
  uStack_a8 = 0;
  uStack_a4 = 0;
  uStack_a0 = 0;
  ixmlNode_init(&pcStack_8c);
  iVar2 = ixmlDocument_createDocumentEx(&uStack_a8);
  if (iVar2 == 0) {
    __s[0xd] = uStack_a8;
    FUN_004181e0(__s);
    pcStack_58 = PTR_s_<_xml_004303c0;
    sVar3 = strlen(PTR_s_<_xml_004303c0);
    iVar2 = strncmp((char *)__s[1],pcStack_58,sVar3)   //possible issue identified - semgrep
    if (iVar2 == 0) {
      iVar2 = FUN_0041879c(__s + 1,PTR_s__>_004303cc);
      FUN_004181e0(__s);
      if (iVar2 != 0) goto LAB_0041949c;
    }
    iVar2 = FUN_00418998(__s);
    __s2 = PTR_s_<_DOCTYPE_004303c4;
    if (iVar2 == 0) {
      pcVar14 = (char *)__s[1];
      sVar3 = strlen(PTR_s_<_DOCTYPE_004303c4);
      iVar2 = strncmp(pcVar14,__s2,sVar3)   //possible issue identified - semgrep
      pcVar4 = pcVar14 + 1;
      if (iVar2 == 0) {
        __s[1] = pcVar4;
        if (pcVar4 != (char *)0x0) {
          iVar11 = 1;
          cVar9 = pcVar14[1]   //possible issue identified - semgrep
          while (cVar9 != '\0') {
            if (cVar9 == '<') {
              iVar11 = iVar11 + 1;
            }
            else if (cVar9 == '>') {
              iVar11 = iVar11 + -1;
            }
            else if ((cVar9 == '\"') && (pcVar4 = strchr(pcVar4 + 1,0x22), pcVar4 == (char *)0x0)) {
              iVar2 = 0xc;
              goto LAB_0041949c;
            }
            pcVar4 = pcVar4 + 1;
            if (pcVar4 == (char *)0x0) {
              iVar2 = 0xc;
              if (iVar11 != 0) goto LAB_0041949c;
LAB_004196dc:
              __s[1] = pcVar4;
              goto LAB_004196e0;
            }
            if (iVar11 == 0) goto LAB_004196dc;
            cVar9 = *pcVar4;
          }
          goto LAB_00419618;
        }
LAB_0041986c:
        iVar2 = 0x6a;
      }
      else {
LAB_004196e0:
        iVar2 = FUN_00418998(__s);
        if (iVar2 == 0) {
          pcStack_48 = PTR_s_<_[CDATA[_004303e8;
          pcStack_4c = PTR_DAT_004303ec;
          pcStack_44 = PTR_DAT_004303d0;
          pcStack_40 = PTR_DAT_004303d8;
          pcStack_54 = PTR_s_<_xml__004303d4;
          pcStack_50 = PTR_s__>_004303cc;
          pcStack_3c = PTR_DAT_004303e0;
          pcStack_38 = PTR_s__>_004303e4;
          puStack_34 = &uStack_9c;
          puStack_30 = &uStack_a4;
          iVar2 = 0;
LAB_00419764:
          ixmlNode_init(&pcStack_8c);
          if (*(char *)__s[1] == '\0') goto code_r0x0041978c;
          if (__s[0xe] == 2) {
            __s[2] = (char *)__s[1];
            FUN_004181e0(__s);
            pcVar4 = (char *)__s[1];
            if (*pcVar4 != '\0') {
              if (*pcVar4 == '<') {
                pcStack_98 = pcVar4;
                sVar3 = strlen(pcStack_48);
                iVar11 = strncmp(pcVar4,pcStack_48,sVar3);
                pcVar15 = pcVar4 + sVar3;
                pcVar14 = pcVar15;
                if (iVar11 == 0) {
                  while( true ) {
                    iVar11 = (int)*pcVar14;
                    if (((((1 < iVar11 - 9U) && (iVar11 != 0xd)) && (0xd7df < iVar11 - 0x20U)) &&
                        ((0x1ffd < iVar11 - 0xe000U && (0xfffff < iVar11 - 0x10000U)))) ||
                       (iVar11 == 0x30)) break;
                    sVar3 = strlen(pcStack_4c);
                    iVar7 = strncmp(pcVar14,pcStack_4c,sVar3);
                    if (iVar7 == 0) break;
                    pcVar14 = pcVar14 + 1;
                  }
                  sVar3 = (int)pcVar14 - (int)pcVar15;
                  if ((((int)sVar3 < 1) || (iVar11 == 0x30)) ||
                     (pcStack_88 = (char *)malloc(sVar3 + 1), pcStack_88 == (char *)0x0))
                  goto LAB_0041986c;
                  strncpy(pcStack_88,pcVar15,sVar3);
                  pcStack_88[sVar3] = '\0';
                  pcStack_8c = strdup("#cdata-section");
                  if (pcStack_8c == (char *)0x0) goto LAB_0041986c;
                  uStack_84 = 4;
                  sVar3 = strlen(pcStack_4c);
                  pcStack_98 = pcVar14 + sVar3;
                  __s[1] = pcStack_98;
                }
                else {
                  sVar3 = strlen(pcStack_44);
                  iVar11 = strncmp(pcVar4,pcStack_44,sVar3);
                  if (iVar11 == 0) {
                    iVar11 = FUN_004188ac(&pcStack_98);
                    pcVar14 = pcStack_98;
                    if (iVar11 != 0) goto LAB_0041986c;
                  }
                  else {
                    sVar3 = strlen(pcStack_40);
                    iVar11 = strncmp(pcVar4,pcStack_40,sVar3);
                    if (iVar11 != 0) {
                      __s[0xe] = 0;
                      goto LAB_00419a34;
                    }
                    sVar8 = strlen(pcStack_58);
                    iVar11 = strncasecmp(pcVar4,pcStack_58,sVar8);
                    if (iVar11 == 0) goto LAB_0041986c;
                    sVar8 = strlen(pcStack_54);
                    iVar11 = strncasecmp(pcVar4,pcStack_54,sVar8);
                    if ((iVar11 == 0) ||
                       ((iVar11 = strncasecmp(pcVar4,pcStack_40,sVar3), pcVar14 = pcStack_98,
                        iVar11 == 0 &&
                        ((pcVar15 = strstr(pcVar4,pcStack_50), pcVar15 == (char *)0x0 ||
                         (pcVar14 = pcVar15 + sVar3, pcVar4 == pcVar15)))))) goto LAB_0041986c;
                  }
                  pcStack_98 = pcVar14;
                  __s[1] = pcStack_98;
                }
              }
              else {
                pcVar4 = (char *)__s[2];
                __s[1] = pcVar4;
                cVar9 = *pcVar4;
                while (pcStack_98 = pcVar4, cVar9 != '<') {
                  iVar11 = strncmp(pcVar4,"]]>",3);
                  if (iVar11 == 0) goto LAB_0041986c;
                  if (cVar9 == '\0') goto LAB_00419f74;
                  pcVar4 = pcVar4 + 1;
                  cVar9 = *pcVar4;
                }
                iVar11 = strncmp(pcVar4,"]]>",3);
                if (iVar11 == 0) goto LAB_0041986c;
LAB_00419f74:
                iVar11 = __s[1];
                ixml_membuf_destroy(puVar16);
                iVar7 = FUN_00418b58(__s,__s[1],(int)pcVar4 - iVar11);
                if ((((iVar7 != 0) || ((char *)__s[7] == (char *)0x0)) ||
                    (pcStack_88 = strdup((char *)__s[7]), pcStack_88 == (char *)0x0)) ||   //possible issue identified - semgrep
                   (pcStack_8c = strdup("#text"), pcStack_8c == (char *)0x0)) goto LAB_0041986c;
                uStack_84 = 3;
                __s[1] = __s[1] + ((int)pcVar4 - iVar11);
              }
            }
          }
          else {
            FUN_004181e0(__s);
            iVar11 = FUN_00419158(__s);
            if (((iVar11 == 0) && (__s[0xc] == 0)) && (*(char *)__s[1] == '\0')) goto LAB_00419a34;
            if (__s[8] == 0) goto LAB_0041986c;
            pcVar4 = (char *)__s[7];
            cVar9 = *pcVar4;
            if (cVar9 == '>') goto LAB_00419a34;
            iVar11 = strcmp(pcVar4,pcStack_3c);
            if (iVar11 == 0) {
              iVar11 = FUN_00419158(__s);
              iVar2 = 0x6a;
              if (((iVar11 == 0) || ((char *)__s[7] == (char *)0x0)) ||
                 (pcStack_8c = strdup((char *)__s[7]), pcStack_8c == (char *)0x0))
              goto LAB_0041949c;
              pcStack_88 = (char *)0x0;
              uStack_84 = 1;
              FUN_004181e0(__s);
              iVar2 = FUN_00419158(__s);
              if (((iVar2 == 0) || ((char *)__s[7] == (char *)0x0)) ||
                 (iVar2 = strcmp((char *)__s[7],">"), iVar2 != 0)) goto LAB_0041986c;
              if (uStack_84 == 1) {
LAB_00419b78:
                puVar13 = (undefined4 *)__s[0xc];
                iVar2 = strcmp((char *)*puVar13,pcStack_8c);
                if (iVar2 != 0) goto LAB_00419618;
                __s[0xc] = puVar13[4];
                FUN_004184ac(puVar13);
                __ptr = (void *)puVar13[3];
                while (__ptr != (void *)0x0) {
                  pvVar12 = *(void **)((int)__ptr + 8);
                  FUN_00418550(__ptr);
                  free(__ptr);
                  __ptr = pvVar12;
                }
                free(puVar13);
              }
              puVar13 = (undefined4 *)__s[0xd];
              iVar2 = strcmp(pcStack_8c,(char *)*puVar13);
              if (iVar2 != 0) goto LAB_00419618;
              __s[0xd] = puVar13[7];
              __s[0xe] = 2;
              iVar2 = 0;
              goto LAB_00419a58;
            }
            if (cVar9 != '<') {
              iVar11 = strcmp(pcVar4,pcStack_38);
              if (iVar11 == 0) {
                if (((char *)__s[3] != (char *)0x0) &&
                   (pcStack_8c = strdup((char *)__s[3]), pcStack_8c != (char *)0x0)) {
                  uStack_84 = 1;
                  goto LAB_00419b78;
                }
                goto LAB_0041986c;
              }
              if ((__s[0xe] != 1) || (uStack_94 = 0, pcVar4 == (char *)0x0)) goto LAB_0041986c;
              uVar6 = FUN_00417ef8(pcVar4,&uStack_94);
              iVar11 = FUN_00417e20(uVar6,0);
              if ((iVar11 == 0) ||
                 ((((pcStack_8c = strdup(pcVar4), pcStack_8c == (char *)0x0 ||
                    (iVar11 = FUN_00419158(__s), iVar11 == 0)) || (*(char *)__s[7] != '=')) ||
                  (iVar11 = FUN_00419158(__s), iVar11 == 0)))) goto LAB_0041986c;
              cVar9 = *(char *)__s[7];
              if ((cVar9 != '\"') && (cVar9 != '\'')) goto LAB_0041986c;
              pcVar14 = (char *)__s[1];
              pcVar4 = strstr(pcVar14,(char *)__s[7]);
              if (pcVar4 == (char *)0x0) goto LAB_0041986c;
              if (pcVar14 < pcVar4) {
                cVar9 = *pcVar14;
                if (cVar9 == '<') goto LAB_0041986c;
                while( true ) {
                  if (cVar9 == '&') {
                    pcVar14 = pcVar14 + 1;
                  }
                  pcVar14 = pcVar14 + 1;
                  if (pcVar4 <= pcVar14) break;
                  cVar9 = *pcVar14;
                  if (cVar9 == '<') {
                    iVar2 = 0x6a;
                    goto LAB_0041949c;
                  }
                }
              }
              ixml_membuf_destroy(puVar16);
              pcVar14 = (char *)__s[1];
              if ((pcVar4 != pcVar14) &&
                 (iVar11 = FUN_00418b58(__s,pcVar14,(int)pcVar4 - (int)pcVar14), iVar11 != 0))
              goto LAB_0041986c;
              __s[1] = pcVar4 + 1;
              if (((char *)__s[7] != (char *)0x0) &&
                 (pcStack_88 = strdup((char *)__s[7]), pcStack_88 == (char *)0x0))
              goto LAB_0041986c;
              pcVar4 = pcStack_8c;
              uStack_84 = 2;
              iVar11 = strcmp(pcStack_8c,"xmlns");
              iVar7 = __s[0xc];
              if (iVar11 == 0) {
                if (*(void **)(iVar7 + 8) != (void *)0x0) {
                  free(*(void **)(iVar7 + 8));
                }
LAB_0041992c:
                pcVar4 = strdup(pcStack_88);
                *(char **)(iVar7 + 8) = pcVar4;
                if (pcVar4 == (char *)0x0) goto LAB_0041986c;
              }
              else {
                iVar11 = strncmp(pcVar4,"xmlns:",6);
                if (iVar11 == 0) {
                  iVar11 = Parser_setNodePrefixAndLocalName(&pcStack_8c);
                  if ((iVar11 != 0) || (iVar7 == 0)) goto LAB_0041986c;
                  if ((*(char **)(iVar7 + 4) != (char *)0x0) &&
                     (iVar11 = strcmp(*(char **)(iVar7 + 4),pcStack_78), iVar11 == 0))
                  goto LAB_0041992c;
                  pcVar4 = pcStack_78;
                  puVar5 = *(undefined4 **)(iVar7 + 0xc);
                  puVar13 = *(undefined4 **)(iVar7 + 0xc);
                  while (puVar1 = puVar5, puVar1 != (undefined4 *)0x0) {
                    if (((char *)puVar1[1] != (char *)0x0) &&
                       (iVar11 = strcmp((char *)puVar1[1],pcVar4), iVar11 == 0)) {
                      if ((void *)*puVar1 != (void *)0x0) {
                        free((void *)*puVar1);
                      }
                      pcVar4 = strdup(pcStack_88);
                      *puVar1 = pcVar4;
                      if (pcVar4 != (char *)0x0) goto LAB_00419948;
                      iVar2 = 0x6a;
                      goto LAB_0041949c;
                    }
                    puVar13 = puVar1;
                    puVar5 = (undefined4 *)puVar1[2];
                  }
                  puVar5 = (undefined4 *)malloc(0xc)   //possible issue identified - semgrep
                  if (puVar5 == (undefined4 *)0x0) goto LAB_0041986c;
                  *puVar5 = 0;
                  puVar5[1] = 0;
                  puVar5[2] = 0;
                  pcVar4 = strdup(pcStack_78);
                  puVar5[1] = pcVar4;
                  if (pcVar4 != (char *)0x0) {
                    pcVar4 = strdup(pcStack_88);
                    *puVar5 = pcVar4;
                    if (pcVar4 != (char *)0x0) {
                      if (*(int *)(iVar7 + 0xc) == 0) {
                        *(undefined4 **)(iVar7 + 0xc) = puVar5;
                      }
                      else {
                        puVar13[2] = puVar5;
                      }
                      goto LAB_00419948;
                    }
                    FUN_00418550(puVar5);
                  }
                  free(puVar5);
                  iVar2 = 0x6a;
                  goto LAB_0041949c;
                }
              }
LAB_00419948:
              puVar13 = (undefined4 *)__s[0xb];
              if (puVar13 != (undefined4 *)0x0) {
                pcVar4 = (char *)puVar13[4];
                puVar5 = (undefined4 *)__s[0xc];
                if (pcVar4 == (char *)0x0) {
                  iVar11 = strcmp((char *)*puVar13,(char *)*puVar5);
                  if (iVar11 != 0) goto LAB_0041986c;
                  pcVar4 = (char *)puVar5[2];
                  if (pcVar4 != (char *)0x0) goto LAB_004199b4;
                  __s[0xb] = 0;
                }
                else {
                  iVar11 = strcmp((char *)*puVar13,(char *)*puVar5);
                  if ((iVar11 != 0) && (iVar11 = strcmp(pcVar4,(char *)puVar5[1]), iVar11 != 0))
                  goto LAB_0041986c;
                  pcVar4 = (char *)puVar5[2];
                  if (pcVar4 != (char *)0x0) {
LAB_004199b4:
                    pcVar4 = strdup(pcVar4);
                    puVar13[3] = pcVar4;
                    if (pcVar4 == (char *)0x0) goto LAB_0041986c;
                    __s[0xb] = 0;
                  }
                }
              }
              __s[2] = __s[1];
              iVar11 = FUN_00419158(__s);
              if (iVar11 != 0) {
                pcVar4 = (char *)__s[7];
                iVar11 = strcmp(pcVar4,"<");
                if (iVar11 != 0) {
                  iVar11 = strcmp(pcVar4,">");
                  if (iVar11 == 0) {
LAB_0041a694:
                    __s[0xe] = 2;
                  }
                  else {
                    __s[1] = __s[2];
                  }
                  goto LAB_00419a34;
                }
              }
              goto LAB_0041986c;
            }
            iVar11 = FUN_00419158(__s);
            if (((iVar11 == 0) || ((char *)__s[7] == (char *)0x0)) ||
               ((pcStack_8c = strdup((char *)__s[7]), pcStack_8c == (char *)0x0 ||
                ((iVar11 = ixml_membuf_assign_str(__s + 3,pcStack_8c), iVar11 != 0 ||
                 (iVar11 = Parser_setNodePrefixAndLocalName(&pcStack_8c), iVar11 != 0))))))
            goto LAB_0041986c;
            uStack_84 = 1;
            __s[2] = __s[1];
            pcStack_88 = (char *)0x0;
            iVar11 = FUN_00419158(__s);
            if (iVar11 == 0) goto LAB_0041986c;
            pcVar4 = (char *)__s[7];
            iVar11 = strcmp(pcVar4,"/>");
            if (iVar11 == 0) {
              __s[0xe] = 0;
              __s[1] = __s[2];
            }
            else {
              iVar11 = strcmp(pcVar4,">");
              if (iVar11 == 0) goto LAB_0041a694;
              __s[0xe] = 1;
              __s[1] = __s[2];
            }
          }
LAB_00419a34:
          pcVar4 = pcStack_8c;
          uVar6 = uStack_a8;
          if (uStack_84 == 2) {
            uStack_9c = 0;
            for (puVar13 = *(undefined4 **)(__s[0xd] + 0x2c); puVar13 != (undefined4 *)0x0;
                puVar13 = (undefined4 *)puVar13[10]) {
              iVar11 = strcmp((char *)*puVar13,pcVar4);
              iVar2 = 0xc;
              if (iVar11 == 0) goto LAB_0041949c;
            }
            iVar2 = ixmlDocument_createAttributeEx(uVar6,pcVar4,puStack_34);
            if ((iVar2 != 0) ||
               (iVar2 = ixmlNode_setNodeProperties(uStack_9c,&pcStack_8c), iVar2 != 0))
            goto LAB_0041949c;
            iVar2 = ixmlElement_setAttributeNode(__s[0xd],uStack_9c,0);
          }
          else {
            if (uStack_84 < 3) {
              if (uStack_84 != 1) goto LAB_00419a58;
              puStack_90 = (undefined4 *)0x0;
              if (__s[0xf] == 1) {
                if (__s[0xc] == 0) goto LAB_00419618;
              }
              else {
                __s[0xf] = 1;
              }
              __s[2] = __s[1];
              iVar2 = ixmlDocument_createElementEx(uStack_a8,pcStack_8c,&puStack_90);
              if (iVar2 != 0) goto LAB_0041949c;
              iVar2 = ixmlNode_setNodeProperties(puStack_90,&pcStack_8c);
              pcVar4 = pcStack_7c;
              if (iVar2 == 0) {
                if (pcStack_7c == (char *)0x0) {
                  for (iVar2 = __s[0xc]; iVar2 != 0; iVar2 = *(int *)(iVar2 + 0x10)) {
                    if ((*(int *)(iVar2 + 4) == 0) &&
                       (pcVar4 = *(char **)(iVar2 + 8), pcVar4 != (char *)0x0)) goto LAB_00419d84;
                  }
                  if (__s[0xe] == 1) goto LAB_0041a02c;
                }
                else {
                  iVar2 = __s[0xc];
                  if (iVar2 != 0) {
LAB_00419d10:
                    if ((*(char **)(iVar2 + 4) == (char *)0x0) ||
                       (iVar11 = strcmp(*(char **)(iVar2 + 4),pcVar4), iVar11 != 0))
                    goto LAB_00419d3c;
                    pcVar4 = *(char **)(iVar2 + 8);
LAB_00419d84:
                    puVar13 = puStack_90;
                    if ((puStack_90 != (undefined4 *)0x0) && (puStack_90[3] == 0)) {
                      pcVar4 = strdup(pcVar4)   //possible issue identified - semgrep
                      puVar13[3] = pcVar4;
                    }
                    goto LAB_00419da4;
                  }
LAB_0041a02c:
                  __s[0xb] = puStack_90;
                }
LAB_00419da4:
                iVar2 = ixmlNode_appendChild(__s[0xd],puStack_90);
                puVar13 = puStack_90;
                if (iVar2 == 0) {
                  __s[0xd] = puStack_90;
                  iVar2 = 0;
                  if (puStack_90 == (undefined4 *)0x0) goto LAB_00419a58;
                  puVar5 = (undefined4 *)malloc(0x14)   //possible issue identified - semgrep
                  if (puVar5 != (undefined4 *)0x0) {
                    *puVar5 = 0;
                    puVar5[1] = 0;
                    puVar5[2] = 0;
                    puVar5[3] = 0;
                    puVar5[4] = 0;
                    pcVar4 = strdup((char *)*puVar13);
                    *puVar5 = pcVar4;
                    if (pcVar4 != (char *)0x0) {
                      if ((char *)puVar13[4] == (char *)0x0) {
LAB_00419e48:
                        if ((char *)puVar13[3] != (char *)0x0) {
                          pcVar4 = strdup((char *)puVar13[3]);
                          puVar5[2] = pcVar4;
                          if (pcVar4 == (char *)0x0) goto LAB_0041a450;
                        }
                        uVar6 = __s[0xc];
                        __s[0xc] = puVar5;
                        puVar5[4] = uVar6;
                        goto LAB_00419a58;
                      }
                      pcVar4 = strdup((char *)puVar13[4]);
                      puVar5[1] = pcVar4;
                      if (pcVar4 != (char *)0x0) goto LAB_00419e48;
LAB_0041a450:
                      FUN_004184ac(puVar5);
                    }
                    free(puVar5);
                  }
                  iVar2 = 0x66;
                  goto LAB_0041949c;
                }
              }
              ixmlElement_free(puStack_90);
              goto LAB_0041949c;
            }
            if (uStack_84 == 3) {
              iVar2 = ixmlDocument_createTextNodeEx(uStack_a8,pcStack_88,puStack_30);
              if (iVar2 != 0) goto LAB_0041949c;
              uVar10 = __s[0xd];
              uVar6 = uStack_a4;
            }
            else {
              if (uStack_84 != 4) goto LAB_00419a58;
              iVar2 = ixmlDocument_createCDATASectionEx(uStack_a8,pcStack_88,&uStack_a0);
              if (iVar2 != 0) goto LAB_0041949c;
              uVar10 = __s[0xd];
              uVar6 = uStack_a0;
            }
            iVar2 = ixmlNode_appendChild(uVar10,uVar6);
          }
          if (iVar2 != 0) goto LAB_0041949c;
LAB_00419a58:
          Parser_freeNodeContent(&pcStack_8c);
          goto LAB_00419764;
        }
      }
    }
  }
LAB_0041949c:
  Parser_freeNodeContent(&pcStack_8c);
  ixmlDocument_free(uStack_a8);
LAB_004194bc:
  FUN_004185c4(__s);
  return iVar2;
code_r0x0041978c:
  if (__s[0xc] == 0) {
    *param_2 = uStack_a8;
    FUN_004185c4(__s);
    return iVar2;
  }
LAB_00419618:
  iVar2 = 0xc;
  goto LAB_0041949c;
LAB_00419d3c:
  for (puVar13 = *(undefined4 **)(iVar2 + 0xc); puVar13 != (undefined4 *)0x0;
      puVar13 = (undefined4 *)puVar13[2]) {
    iVar11 = strcmp((char *)puVar13[1],pcVar4);
    if (iVar11 == 0) {
      pcVar4 = (char *)*puVar13;
      goto LAB_00419d84;
    }
  }
  iVar2 = *(int *)(iVar2 + 0x10);
  if (iVar2 == 0) goto LAB_0041a02c;
  goto LAB_00419d10;
}