int FUN_00419158(int param_1)

{
  char cVar1;
  int iVar2;
  undefined4 uVar3;
  int iVar4;
  char *pcVar5;
  int local_18 [2];
  
  ixml_membuf_destroy(param_1 + 0x1c);
  if (**(char **)(param_1 + 4) == '\0') {
    return 0;
  }
  iVar2 = FUN_00418998(param_1);
  if (iVar2 != 0) {
    return 0;
  }
  pcVar5 = *(char **)(param_1 + 4);
  cVar1 = *pcVar5;
  if ((cVar1 != '\"') && (cVar1 != '\'')) {
    if (cVar1 == '<') {
      iVar4 = FUN_00417ef8(pcVar5 + 1,local_18);
      iVar2 = 2;
      if (iVar4 == 0x2f) {
        pcVar5 = *(char **)(param_1 + 4);
      }
      else {
        iVar4 = FUN_00417e20(iVar4,0);
        iVar2 = 1;
        if (iVar4 != 1) {
          return 0;
        }
        pcVar5 = *(char **)(param_1 + 4);
      }
      goto LAB_00419288;
    }
    if (cVar1 != '=') {
      if (cVar1 == '/') {
        if (pcVar5[1] == '>') {
          *(char **)(param_1 + 8) = pcVar5;
          iVar2 = 2;
        }
        else {
          iVar2 = 0;
        }
      }
      else {
        iVar2 = 1;
        if (cVar1 != '>') {
          uVar3 = FUN_00417ef8(pcVar5,local_18);
          iVar4 = FUN_00417e20(uVar3,0);
          iVar2 = local_18[0];
          if (iVar4 == 0) {
            return 0;
          }
          while( true ) {
            uVar3 = FUN_00417ef8(*(int *)(param_1 + 4) + iVar2,local_18);
            iVar4 = FUN_00417e20(uVar3,1);
            if (iVar4 == 0) break;
            iVar2 = iVar2 + local_18[0];
          }
          pcVar5 = *(char **)(param_1 + 4);
        }
      }
      goto LAB_00419288;
    }
  }
  iVar2 = 1;
LAB_00419288:
  iVar4 = FUN_00418b58(param_1,pcVar5,iVar2);
  if (iVar4 != 0) {
    return 0;
  }
  *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + iVar2;
  return iVar2;
}