/* WARNING: Heritage AFTER dead removal. Example location: r0x0043e958 : 0x0041fa8c */
/* WARNING: Restarted to delay deadcode elimination for space: ram */

undefined4 yyparse(void)

{
  bool bVar1;
  short sVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  short *psVar8;
  char *pcVar9;
  undefined4 *puVar10;
  undefined4 *puVar11;
  int iVar12;
  uint uVar13;
  void *__ptr;
  uint uVar14;
  undefined4 *puVar15;
  int *piVar16;
  int iVar17;
  int iVar18;
  undefined4 uVar19;
  short *__src;
  int *piVar20;
  uint uVar21;
  int *piVar22;
  int *__src_00;
  short *psVar23;
  uint uVar24;
  undefined4 local_8b0;
  undefined4 local_8ac;
  undefined4 local_8a8;
  undefined4 local_8a4;
  int local_8a0;
  int local_89c;
  int local_898;
  int local_894;
  int local_890;
  int local_88c;
  int local_888;
  int local_884;
  int local_880;
  int local_87c;
  int local_878;
  int local_874;
  int local_870;
  int local_86c;
  int local_868;
  int local_864;
  int local_860;
  int local_85c;
  int local_858;
  int local_854;
  int local_850;
  int local_84c;
  int local_848;
  int local_844;
  int local_840;
  int local_83c;
  int local_838;
  int local_834;
  int local_830;
  int local_82c;
  int local_828;
  int local_824;
  int local_820;
  int local_81c;
  int local_818;
  int local_814;
  short local_810 [200];
  int local_680 [400];
  int *local_40;
  int *local_3c;
  uint local_38;
  int local_34;
  int local_30;
  short *local_2c;
  
  __src = local_810;
  __src_00 = local_680;
  yychar = 0xfffffffe;
  yynerrs = 0;
  uVar21 = 0;
  local_34 = 0;
  local_2c = __src;
  uVar24 = 200;
  piVar20 = __src_00;
  psVar23 = __src;
  do {
    *psVar23 = (short)uVar21;
    if (__src + (uVar24 - 1) <= psVar23) {
      uVar14 = uVar24 << 1;
      if (uVar24 < 10000) {
        iVar18 = uVar24 << 2;
        if (10000 < uVar14) {
          uVar14 = 10000;
          iVar18 = 20000;
        }
        psVar8 = (short *)malloc(iVar18 + uVar14 * 8 + 7)   //possible issue identified - semgrep
        if (psVar8 == (short *)0x0) goto LAB_0042209c;
        iVar17 = ((int)psVar23 - (int)__src >> 1) + 1;
        memcpy(psVar8,__src,iVar17 * 2)   //possible issue identified - semgrep
        piVar16 = (int *)((int)psVar8 + iVar18);
        memcpy(piVar16,__src_00,iVar17 * 8)   //possible issue identified - semgrep
        if (__src != local_2c) {
          free(__src)   //possible issue identified - semgrep
        }
        psVar23 = psVar8 + -(1 - iVar17);
        if (psVar23 < psVar8 + (uVar14 - 1)) {
          piVar20 = piVar16 + (1 - iVar17) * -2;
          __src = psVar8;
          uVar24 = uVar14;
          __src_00 = piVar16;
          goto LAB_0041fa64;
        }
LAB_0041fe54:
        uVar19 = 1;
        __src = psVar8;
      }
      else {
LAB_0042209c:
        yyerror("memory exhausted");
        uVar19 = 2;
      }
      goto LAB_0041fe58;
    }
LAB_0041fa64:
    iVar18 = (int)(short)(&DAT_0042b418)[uVar21];
    if (iVar18 != -0xa8) {
      if (yychar == 0xfffffffe) {
        yychar = yylex();
      }
      if ((int)yychar < 1) {
        yychar = 0;
        uVar14 = 0;
      }
      else if (yychar < 0x14b) {
        uVar14 = (uint)*(byte *)((int)&DAT_0042b618 + yychar);
      }
      else {
        uVar14 = 2;
      }
      uVar13 = uVar14 + iVar18;
      if ((0x112 < uVar13) || ((int)*(short *)(&DAT_0042b764 + uVar13 * 2) != uVar14))
      goto LAB_0041faf0;
      uVar21 = (uint)(byte)(&UNK_0042b98c)[uVar13];
      if (uVar21 == 0) goto LAB_0041fd84;
      uVar19 = 0;
      if (uVar21 != 2) {
        if (local_34 != 0) {
          local_34 = local_34 + -1;
        }
        if (yychar != 0) {
          yychar = 0xfffffffe;
        }
        piVar16 = piVar20 + 2;
        *piVar16 = yylval;
        piVar20[3] = DAT_0043e97c;
        goto LAB_0041fd60;
      }
      goto LAB_0041fe58;
    }
LAB_0041faf0:
    iVar7 = cf_nisp_list;
    iVar6 = cf_bcmcs_list;
    iVar5 = cf_sip_list;
    iVar4 = cf_dns_list;
    iVar3 = cf_aftr_list;
    iVar12 = cf_ntp_list;
    iVar17 = cf_nis_list;
    uVar21 = (uint)(byte)(&DAT_0042baa0)[uVar21];
    if (uVar21 == 0) {
LAB_0041fd84:
      psVar8 = __src;
      if (local_34 == 0) {
        yynerrs = yynerrs + 1;
        yyerror("syntax error");
      }
      else if (local_34 == 3) {
        if ((int)yychar < 1) {
          if (yychar == 0) goto LAB_0041fe54;
        }
        else {
          yychar = 0xfffffffe;
        }
      }
      while ((((iVar18 == -0xa8 || (0x112 < iVar18 + 1U)) ||
              (*(short *)(&DAT_0042b764 + (iVar18 + 1U) * 2) != 1)) ||
             (uVar21 = (uint)(byte)(&UNK_0042b98d)[iVar18], uVar21 == 0))) {
        bVar1 = psVar23 == __src;
        psVar23 = psVar23 + -1;
        if (bVar1) goto LAB_0041fe54;
        piVar20 = piVar20 + -2;
        iVar18 = (int)(short)(&DAT_0042b418)[*psVar23];
      }
      piVar16 = piVar20 + 2;
      if (uVar21 != 2) {
        *piVar16 = yylval;
        piVar20[3] = DAT_0043e97c;
        local_34 = 3;
        goto LAB_0041fd60;
      }
      uVar19 = 0;
LAB_0041fe58:
      if (__src != local_2c) {
        free(__src)   //possible issue identified - semgrep
      }
      return uVar19;
    }
    local_38 = (uint)(byte)(&UNK_0042bba0)[uVar21];
    piVar16 = (int *)piVar20[(1 - (uint)(byte)(&UNK_0042bba0)[uVar21]) * 2];
    iVar18 = (piVar20 + (1 - (uint)(byte)(&UNK_0042bba0)[uVar21]) * 2)[1];
    switch(uVar21 - 0xd & 0xff) {
    case 0:
      puVar10 = (undefined4 *)malloc(0x10)   //possible issue identified - semgrep
      if (puVar10 == (undefined4 *)0x0) goto LAB_004222e4;
      puVar10[1] = 0;
      iVar17 = lineno;
      puVar10[3] = 0;
      puVar10[2] = iVar17;
      *puVar10 = 0;
      puVar10[1] = piVar20[-8];
      iVar17 = piVar20[-4];
      puVar15 = &DAT_00441180;
LAB_0042080c:
      puVar10[3] = iVar17;
      iVar17 = FUN_0041f8fc(puVar10,puVar15);
      if (iVar17 != 0) {
        return 0xffffffff;
      }
      break;
    case 1:
      puVar10 = (undefined4 *)malloc(0x10)   //possible issue identified - semgrep
      if (puVar10 != (undefined4 *)0x0) {
        puVar10[1] = 0;
        iVar17 = lineno;
        puVar10[3] = 0;
        puVar10[2] = iVar17;
        *puVar10 = 0;
        puVar10[1] = piVar20[-8];
        iVar17 = piVar20[-4];
        puVar15 = &DAT_00441184;
        goto LAB_0042080c;
      }
      goto LAB_004222e4;
    case 2:
      puVar10 = (undefined4 *)malloc(0x10)   //possible issue identified - semgrep
      if (puVar10 != (undefined4 *)0x0) {
        puVar10[1] = 0;
        iVar17 = lineno;
        puVar10[3] = 0;
        puVar10[2] = iVar17;
        *puVar10 = 0;
        puVar10[1] = piVar20[-8];
        iVar17 = piVar20[-4];
        puVar15 = &DAT_0044118c;
        goto LAB_0042080c;
      }
      goto LAB_004222e4;
    case 3:
      if (cf_dns_list == 0) {
        cf_dns_list = piVar20[-2];
      }
      else {
        **(int **)(cf_dns_list + 4) = piVar20[-2];
        *(undefined4 *)(iVar4 + 4) = *(undefined4 *)(piVar20[-2] + 4);
      }
      break;
    case 4:
      puVar10 = (undefined4 *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (puVar10 == (undefined4 *)0x0) {
LAB_00422380:
        yywarn("can\'t allocate memory");
        if ((void *)piVar20[-2] == (void *)0x0) {
          return 0xffffffff;
        }
        free((void *)piVar20[-2]);
        return 0xffffffff;
      }
      puVar10[1] = 0;
      puVar10[7] = 0;
      puVar10[3] = iVar17;
      puVar10[6] = 0;
      *puVar10 = 0;
      puVar10[4] = 0;
      puVar10[5] = 0;
      puVar10[2] = 0x1e;
      puVar15 = cf_dns_name_list;
      puVar10[7] = piVar20[-2];
      puVar10[1] = puVar10;
      if (puVar15 == (undefined4 *)0x0) {
        cf_dns_name_list = puVar10;
        *puVar10 = 0;
        puVar10[1] = puVar10;
      }
      else {
        puVar11 = (undefined4 *)puVar15[1];
        puVar15[1] = puVar10;
        *puVar11 = puVar10;
      }
      break;
    case 5:
      if (cf_ntp_list == 0) {
        cf_ntp_list = piVar20[-2];
      }
      else {
        **(int **)(cf_ntp_list + 4) = piVar20[-2];
        *(undefined4 *)(iVar12 + 4) = *(undefined4 *)(piVar20[-2] + 4);
      }
      break;
    case 6:
      if (cf_sip_list == 0) {
        cf_sip_list = piVar20[-2];
      }
      else {
        **(int **)(cf_sip_list + 4) = piVar20[-2];
        *(undefined4 *)(iVar5 + 4) = *(undefined4 *)(piVar20[-2] + 4);
      }
      break;
    case 7:
      puVar10 = (undefined4 *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (puVar10 == (undefined4 *)0x0) goto LAB_00422380;
      puVar10[1] = 0;
      puVar10[7] = 0;
      puVar10[3] = iVar17;
      puVar10[6] = 0;
      *puVar10 = 0;
      puVar10[4] = 0;
      puVar10[5] = 0;
      puVar10[2] = 0x1e;
      puVar15 = cf_sip_name_list;
      puVar10[7] = piVar20[-2];
      puVar10[1] = puVar10;
      if (puVar15 == (undefined4 *)0x0) {
        cf_sip_name_list = puVar10;
        *puVar10 = 0;
        puVar10[1] = puVar10;
      }
      else {
        puVar11 = (undefined4 *)puVar15[1];
        puVar15[1] = puVar10;
        *puVar11 = puVar10;
      }
      break;
    case 8:
      if (cf_aftr_list == 0) {
        cf_aftr_list = piVar20[-2];
      }
      else {
        **(int **)(cf_aftr_list + 4) = piVar20[-2];
        *(undefined4 *)(iVar3 + 4) = *(undefined4 *)(piVar20[-2] + 4);
      }
      break;
    case 9:
      puVar10 = (undefined4 *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (puVar10 == (undefined4 *)0x0) goto LAB_00422380;
      puVar10[1] = 0;
      puVar10[7] = 0;
      puVar10[3] = iVar17;
      puVar10[6] = 0;
      *puVar10 = 0;
      puVar10[4] = 0;
      puVar10[5] = 0;
      puVar10[2] = 0x1e;
      puVar15 = cf_aftr_name_list;
      puVar10[7] = piVar20[-2];
      puVar10[1] = puVar10;
      if (puVar15 == (undefined4 *)0x0) {
        cf_aftr_name_list = puVar10;
        *puVar10 = 0;
        puVar10[1] = puVar10;
      }
      else {
        puVar11 = (undefined4 *)puVar15[1];
        puVar15[1] = puVar10;
        *puVar11 = puVar10;
      }
      break;
    case 10:
      if (cf_nis_list == 0) {
        cf_nis_list = piVar20[-2];
      }
      else {
        **(int **)(cf_nis_list + 4) = piVar20[-2];
        *(undefined4 *)(iVar17 + 4) = *(undefined4 *)(piVar20[-2] + 4);
      }
      break;
    case 0xb:
      puVar10 = (undefined4 *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (puVar10 == (undefined4 *)0x0) goto LAB_00422380;
      puVar10[1] = 0;
      puVar10[7] = 0;
      puVar10[3] = iVar17;
      puVar10[6] = 0;
      *puVar10 = 0;
      puVar10[4] = 0;
      puVar10[5] = 0;
      puVar10[2] = 0x1e;
      puVar15 = cf_nis_name_list;
      puVar10[7] = piVar20[-2];
      puVar10[1] = puVar10;
      if (puVar15 == (undefined4 *)0x0) {
        cf_nis_name_list = puVar10;
        *puVar10 = 0;
        puVar10[1] = puVar10;
      }
      else {
        puVar11 = (undefined4 *)puVar15[1];
        puVar15[1] = puVar10;
        *puVar11 = puVar10;
      }
      break;
    case 0xc:
      if (cf_nisp_list == 0) {
        cf_nisp_list = piVar20[-2];
      }
      else {
        **(int **)(cf_nisp_list + 4) = piVar20[-2];
        *(undefined4 *)(iVar7 + 4) = *(undefined4 *)(piVar20[-2] + 4);
      }
      break;
    case 0xd:
      puVar10 = (undefined4 *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (puVar10 == (undefined4 *)0x0) goto LAB_00422380;
      puVar10[1] = 0;
      puVar10[7] = 0;
      puVar10[3] = iVar17;
      puVar10[6] = 0;
      *puVar10 = 0;
      puVar10[4] = 0;
      puVar10[5] = 0;
      puVar10[2] = 0x1e;
      puVar15 = cf_nisp_name_list;
      puVar10[7] = piVar20[-2];
      puVar10[1] = puVar10;
      if (puVar15 == (undefined4 *)0x0) {
        cf_nisp_name_list = puVar10;
        *puVar10 = 0;
        puVar10[1] = puVar10;
      }
      else {
        puVar11 = (undefined4 *)puVar15[1];
        puVar15[1] = puVar10;
        *puVar11 = puVar10;
      }
      break;
    case 0xe:
      if (cf_bcmcs_list == 0) {
        cf_bcmcs_list = piVar20[-2];
      }
      else {
        **(int **)(cf_bcmcs_list + 4) = piVar20[-2];
        *(undefined4 *)(iVar6 + 4) = *(undefined4 *)(piVar20[-2] + 4);
      }
      break;
    case 0xf:
      puVar10 = (undefined4 *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (puVar10 == (undefined4 *)0x0) goto LAB_00422380;
      puVar10[1] = 0;
      puVar10[7] = 0;
      puVar10[3] = iVar17;
      puVar10[6] = 0;
      *puVar10 = 0;
      puVar10[4] = 0;
      puVar10[5] = 0;
      puVar10[2] = 0x1e;
      puVar15 = cf_bcmcs_name_list;
      puVar10[7] = piVar20[-2];
      puVar10[1] = puVar10;
      if (puVar15 == (undefined4 *)0x0) {
        cf_bcmcs_name_list = puVar10;
        *puVar10 = 0;
        puVar10[1] = puVar10;
      }
      else {
        puVar11 = (undefined4 *)puVar15[1];
        puVar15[1] = puVar10;
        *puVar11 = puVar10;
      }
      break;
    case 0x10:
      if ((cf_refreshtime == 0xffffffff) && (DAT_0043e484 == -1)) {
        cf_refreshtime = piVar20[-2];
        DAT_0043e484 = piVar20[-1];
        uVar14 = (uint)(cf_refreshtime + 1 < cf_refreshtime) + DAT_0043e484;
        if ((1 < uVar14) || ((uVar14 == 1 && (cf_refreshtime != 0xffffffff)))) {
          yyerror("refresh time is out of range");
        }
        if ((DAT_0043e484 < 1) && ((DAT_0043e484 != 0 || (cf_refreshtime < 600)))) {
          yyerror("refresh time is too small (must not be smaller than %d)",600);
        }
      }
      else {
        yywarn("multiple refresh times (ignored)");
      }
      break;
    case 0x11:
      puVar10 = (undefined4 *)malloc(0x10)   //possible issue identified - semgrep
      if (puVar10 != (undefined4 *)0x0) {
        puVar10[1] = 0;
        iVar17 = lineno;
        puVar10[3] = 0;
        puVar10[2] = iVar17;
        *puVar10 = 0;
        puVar10[1] = piVar20[-8];
        iVar17 = piVar20[-4];
        puVar15 = &DAT_00441188;
        goto LAB_0042080c;
      }
      goto LAB_004222e4;
    case 0x12:
      pcVar9 = strdup("0");
      if (pcVar9 == (char *)0x0) {
LAB_00422450:
        yywarn("can\'t allocate memory");
        return 0xffffffff;
      }
      puVar10 = (undefined4 *)malloc(0x10)   //possible issue identified - semgrep
      if (puVar10 == (undefined4 *)0x0) goto LAB_004222e4;
      puVar10[1] = pcVar9;
      iVar17 = lineno;
      puVar10[3] = 0;
      puVar10[2] = iVar17;
      *puVar10 = 0;
      iVar17 = piVar20[-4];
      puVar15 = &DAT_00441188;
LAB_00421468:
      puVar10[3] = iVar17;
      iVar17 = FUN_0041f8fc(puVar10,puVar15);
      if (iVar17 != 0) {
        return 0xffffffff;
      }
      break;
    case 0x13:
      puVar10 = (undefined4 *)malloc(0x10)   //possible issue identified - semgrep
      if (puVar10 != (undefined4 *)0x0) {
        puVar10[1] = 0;
        iVar17 = lineno;
        puVar10[3] = 0;
        puVar10[2] = iVar17;
        *puVar10 = 0;
        puVar10[1] = piVar20[-8];
        iVar17 = piVar20[-4];
        puVar15 = &DAT_0044119c;
        goto LAB_0042080c;
      }
      goto LAB_004222e4;
    case 0x14:
      pcVar9 = strdup("0");
      if (pcVar9 == (char *)0x0) goto LAB_00422450;
      puVar10 = (undefined4 *)malloc(0x10)   //possible issue identified - semgrep
      if (puVar10 != (undefined4 *)0x0) {
        puVar10[1] = pcVar9;
        iVar17 = lineno;
        puVar10[3] = 0;
        puVar10[2] = iVar17;
        *puVar10 = 0;
        iVar17 = piVar20[-4];
        puVar15 = &DAT_0044119c;
        goto LAB_00421468;
      }
      goto LAB_004222e4;
    case 0x15:
      puVar10 = (undefined4 *)malloc(0x10)   //possible issue identified - semgrep
      if (puVar10 != (undefined4 *)0x0) {
        puVar10[1] = 0;
        iVar17 = lineno;
        puVar10[3] = 0;
        puVar10[2] = iVar17;
        *puVar10 = 0;
        puVar10[1] = piVar20[-8];
        iVar17 = piVar20[-4];
        puVar15 = &DAT_00441194;
        goto LAB_0042080c;
      }
      goto LAB_004222e4;
    case 0x16:
      puVar10 = (undefined4 *)malloc(0x10)   //possible issue identified - semgrep
      if (puVar10 != (undefined4 *)0x0) {
        puVar10[1] = 0;
        iVar17 = lineno;
        puVar10[3] = 0;
        puVar10[2] = iVar17;
        *puVar10 = 0;
        puVar10[1] = piVar20[-8];
        iVar17 = piVar20[-4];
        puVar15 = &DAT_00441198;
        goto LAB_0042080c;
      }
      goto LAB_004222e4;
    case 0x17:
      piVar22 = piVar20 + -2;
      iVar17 = cfswitch_buffer(piVar20[-2]);
      if (iVar17 != 0) {
LAB_004223d4:
        __ptr = (void *)*piVar22;
LAB_00422364:
        free(__ptr);
        return 0xffffffff;
      }
      free((void *)piVar20[-2]);
      break;
    case 0x18:
      puVar10 = (undefined4 *)malloc(0x10)   //possible issue identified - semgrep
      if (puVar10 != (undefined4 *)0x0) {
        puVar10[1] = 0;
        iVar17 = lineno;
        puVar10[3] = 0;
        puVar10[2] = iVar17;
        *puVar10 = 0;
        puVar10[1] = piVar20[-8];
        iVar17 = piVar20[-4];
        puVar15 = &DAT_00441190;
        goto LAB_0042080c;
      }
LAB_004222e4:
      yywarn("can\'t allocate memory");
      if (piVar20[-4] == 0) {
        return 0xffffffff;
      }
LAB_00422304:
      FUN_0041f46c();
      return 0xffffffff;
    case 0x19:
      piVar16 = (int *)0x0;
      break;
    case 0x1a:
      piVar16 = (int *)piVar20[-2];
      if (piVar16 == (int *)0x0) {
        *(undefined4 *)*piVar20 = 0;
        *(int *)(*piVar20 + 4) = *piVar20;
        piVar16 = (int *)*piVar20;
      }
      else {
        *(int *)piVar16[1] = *piVar20;
        piVar16[1] = *(int *)(*piVar20 + 4);
      }
      break;
    case 0x1b:
      iVar17 = inet_pton(10,(char *)*piVar20,&local_8b0)   //possible issue identified - semgrep
      if (iVar17 != 1) {
        yywarn("invalid IPv6 address: %s",*piVar20);
        __ptr = (void *)*piVar20;
        goto LAB_00422364;
      }
      puVar10 = (undefined4 *)malloc(0x10)   //possible issue identified - semgrep
      if (puVar10 == (undefined4 *)0x0) goto LAB_00422450;
      *puVar10 = local_8b0;
      puVar10[1] = local_8ac;
      puVar10[2] = local_8a8;
      puVar10[3] = local_8a4;
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) {
        yywarn("can\'t allocate memory");
        free(puVar10);
        return 0xffffffff;
      }
      piVar16[7] = (int)puVar10;
      piVar16[2] = 0x1e;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x1c:
      piVar16 = (int *)0x0;
      break;
    case 0x1d:
      piVar16 = (int *)piVar20[-2];
      if (piVar16 == (int *)0x0) {
        *(undefined4 *)*piVar20 = 0;
        *(int *)(*piVar20 + 4) = *piVar20;
        piVar16 = (int *)*piVar20;
      }
      else {
        *(int *)piVar16[1] = *piVar20;
        piVar16[1] = *(int *)(*piVar20 + 4);
      }
      break;
    case 0x1e:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      if (piVar16 == (int *)0x0) {
LAB_004224ec:
        yywarn("can\'t allocate memory");
        if (piVar20[-2] == 0) {
          return 0xffffffff;
        }
        goto LAB_00422304;
      }
      piVar16[1] = 0;
      piVar16[7] = 0;
      iVar17 = lineno;
      piVar16[6] = 0;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[2] = 0;
      piVar16[6] = piVar20[-2];
      piVar16[1] = (int)piVar16;
      break;
    case 0x1f:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_004224ec;
      piVar16[7] = 0;
      piVar16[1] = 0;
      piVar16[6] = 0;
      piVar16[2] = 3;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[6] = piVar20[-2];
      piVar16[1] = (int)piVar16;
      break;
    case 0x20:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[2] = 2;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x21:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_004224ec;
      piVar16[7] = 0;
      piVar16[1] = 0;
      piVar16[6] = 0;
      piVar16[2] = 1;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[6] = piVar20[-2];
      piVar16[1] = (int)piVar16;
      break;
    case 0x22:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422380;
      piVar16[1] = 0;
      piVar16[6] = 0;
      piVar16[7] = 0;
      piVar16[2] = 4;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[7] = piVar20[-2];
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x23:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422380;
      piVar16[1] = 0;
      piVar16[6] = 0;
      piVar16[7] = 0;
      piVar16[2] = 9;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[7] = piVar20[-2];
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x24:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422380;
      piVar16[1] = 0;
      piVar16[6] = 0;
      piVar16[7] = 0;
      piVar16[2] = 5;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[7] = piVar20[-2];
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x25:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[2] = 6;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      iVar17 = piVar20[-1];
      piVar16[4] = piVar20[-2];
      piVar16[5] = iVar17;
      break;
    case 0x26:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[2] = 0xc;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      iVar17 = piVar20[-1];
      piVar16[4] = piVar20[-2];
      piVar16[5] = iVar17;
      break;
    case 0x27:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422380;
      piVar16[1] = 0;
      piVar16[6] = 0;
      piVar16[7] = 0;
      piVar16[2] = 7;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[7] = piVar20[-2];
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x28:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422380;
      piVar16[1] = 0;
      piVar16[6] = 0;
      piVar16[7] = 0;
      piVar16[2] = 8;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[7] = piVar20[-2];
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x29:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422380;
      piVar16[1] = 0;
      piVar16[6] = 0;
      piVar16[7] = 0;
      piVar16[2] = 10;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[7] = piVar20[-2];
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x2a:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422380;
      piVar16[1] = 0;
      piVar16[6] = 0;
      piVar16[7] = 0;
      piVar16[2] = 0xd;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[7] = piVar20[-2];
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x2b:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422380;
      piVar16[1] = 0;
      piVar16[6] = 0;
      piVar16[7] = 0;
      piVar16[2] = 0xb;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[7] = piVar20[-2];
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x2c:
      piVar16 = (int *)*piVar20;
      break;
    case 0x2d:
      *(int *)piVar20[-4] = *piVar20;
      *(undefined4 *)(piVar20[-4] + 4) = *(undefined4 *)(*piVar20 + 4);
      piVar16 = (int *)piVar20[-4];
      break;
    case 0x2e:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[2] = 0x10;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x2f:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[2] = 0x11;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      piVar16[7] = *piVar20;
      break;
    case 0x30:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[2] = 0x14;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      iVar17 = piVar20[1];
      piVar16[4] = *piVar20;
      piVar16[5] = iVar17;
      break;
    case 0x31:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[2] = 0x15;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      iVar17 = piVar20[1];
      piVar16[4] = *piVar20;
      piVar16[5] = iVar17;
      break;
    case 0x32:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[2] = 0x22;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x33:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[2] = 0x23;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x34:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[2] = 0x24;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x35:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[2] = 0x25;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x36:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[2] = 0x12;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x37:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[2] = 0x13;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x38:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[2] = 0x16;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x39:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[2] = 0x17;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x3a:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[2] = 0x18;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x3b:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[2] = 0x19;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x3c:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[2] = 0x1a;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x3d:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[2] = 0x1b;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x3e:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[2] = 0x1c;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x3f:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[2] = 0x1d;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x40:
      local_830 = 0;
      local_82c = 0;
      local_828 = 0;
      local_824 = 0;
      local_820 = 0;
      local_81c = 0;
      local_818 = 0;
      local_814 = 0;
      local_30 = inet_pton(10,(char *)piVar20[-4],&local_830)   //possible issue identified - semgrep
      piVar16 = piVar20 + -4;
      if (local_30 != 1) {
        iVar18 = *piVar16;
LAB_00422494:
        yywarn("invalid IPv6 address: %s",iVar18);
        free((void *)*piVar16);
        free((void *)*piVar20);
        return 0xffffffff;
      }
      iVar17 = inet_pton(10,(char *)*piVar20,&local_820)   //possible issue identified - semgrep
      if (iVar17 != local_30) {
        iVar18 = *piVar20;
        goto LAB_00422494;
      }
      free((void *)*piVar16);
      free((void *)*piVar20);
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      *piVar16 = local_830;
      piVar16[1] = local_82c;
      piVar16[2] = local_828;
      piVar16[3] = local_824;
      piVar16[4] = local_820;
      piVar16[5] = local_81c;
      piVar16[6] = local_818;
      piVar16[7] = local_814;
      break;
    case 0x41:
      iVar17 = piVar20[-4];
      iVar12 = *piVar20;
      piVar16 = (int *)malloc(8)   //possible issue identified - semgrep
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      *piVar16 = iVar17;
      piVar16[1] = iVar12;
      break;
    case 0x42:
      local_888 = 0;
      local_8a0 = 0;
      local_89c = 0;
      local_898 = 0;
      local_894 = 0;
      local_890 = 0;
      local_88c = 0;
      iVar17 = inet_pton(10,(char *)piVar20[-2],&local_898)   //possible issue identified - semgrep
      piVar22 = piVar20 + -2;
      if (iVar17 != 1) {
LAB_004223bc:
        yywarn("invalid IPv6 address: %s",*piVar22);
        goto LAB_004223d4;
      }
      free((void *)piVar20[-2]);
      local_888 = 0x80;
      local_8a0 = *piVar20;
      if (piVar20[1] < 0) {
        local_8a0 = -1;
      }
      local_89c = local_8a0;
      piVar16 = (int *)malloc(0x1c)   //possible issue identified - semgrep
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      *piVar16 = local_8a0;
      piVar16[1] = local_89c;
      piVar16[2] = local_898;
      piVar16[3] = local_894;
      piVar16[4] = local_890;
      piVar16[5] = local_88c;
      piVar16[6] = local_888;
      break;
    case 0x43:
      local_86c = 0;
      local_884 = 0;
      local_880 = 0;
      local_87c = 0;
      local_878 = 0;
      local_874 = 0;
      local_870 = 0;
      iVar17 = inet_pton(10,(char *)piVar20[-4],&local_87c)   //possible issue identified - semgrep
      piVar22 = piVar20 + -4;
      if (iVar17 != 1) goto LAB_004223bc;
      free((void *)piVar20[-4]);
      local_86c = 0x80;
      local_884 = piVar20[-2];
      if (piVar20[-1] < 0) {
        local_884 = -1;
      }
      local_880 = *piVar20;
      if (piVar20[1] < 0) {
        local_880 = -1;
      }
      piVar16 = (int *)malloc(0x1c)   //possible issue identified - semgrep
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      *piVar16 = local_884;
      piVar16[1] = local_880;
      piVar16[2] = local_87c;
      piVar16[3] = local_878;
      piVar16[4] = local_874;
      piVar16[5] = local_870;
      piVar16[6] = local_86c;
      break;
    case 0x44:
      local_850 = 0;
      local_868 = 0;
      local_864 = 0;
      local_860 = 0;
      local_85c = 0;
      local_858 = 0;
      local_854 = 0;
      iVar17 = inet_pton(10,(char *)piVar20[-6],&local_860)   //possible issue identified - semgrep
      piVar16 = piVar20 + -6;
      if (iVar17 != 1) {
LAB_0042246c:
        yywarn("invalid IPv6 address: %s",*piVar16);
        __ptr = (void *)*piVar16;
        goto LAB_00422364;
      }
      free((void *)piVar20[-6]);
      local_850 = piVar20[-2];
      local_868 = *piVar20;
      if (piVar20[1] < 0) {
        local_868 = -1;
      }
      local_864 = local_868;
      piVar16 = (int *)malloc(0x1c)   //possible issue identified - semgrep
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      *piVar16 = local_868;
      piVar16[1] = local_864;
      piVar16[2] = local_860;
      piVar16[3] = local_85c;
      piVar16[4] = local_858;
      piVar16[5] = local_854;
      piVar16[6] = local_850;
      break;
    case 0x45:
      local_834 = 0;
      local_84c = 0;
      local_848 = 0;
      local_844 = 0;
      local_840 = 0;
      local_83c = 0;
      local_838 = 0;
      iVar17 = inet_pton(10,(char *)piVar20[-8],&local_844)   //possible issue identified - semgrep
      piVar16 = piVar20 + -8;
      if (iVar17 != 1) goto LAB_0042246c;
      free((void *)piVar20[-8]);
      local_834 = piVar20[-4];
      local_84c = piVar20[-2];
      if (piVar20[-1] < 0) {
        local_84c = -1;
      }
      local_848 = *piVar20;
      if (piVar20[1] < 0) {
        local_848 = -1;
      }
      piVar16 = (int *)malloc(0x1c)   //possible issue identified - semgrep
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      *piVar16 = local_84c;
      piVar16[1] = local_848;
      piVar16[2] = local_844;
      piVar16[3] = local_840;
      piVar16[4] = local_83c;
      piVar16[5] = local_838;
      piVar16[6] = local_834;
      break;
    case 0x46:
      piVar16 = (int *)malloc(0xc)   //possible issue identified - semgrep
      if (piVar16 == (int *)0x0) {
        yywarn("can\'t allocate memory");
        __ptr = (void *)piVar20[-2];
        goto LAB_00422364;
      }
      local_3c = piVar20 + -2;
      pcVar9 = strdup((char *)piVar20[-2]);
      *piVar16 = (int)pcVar9;
      if (pcVar9 == (char *)0x0) {
        yywarn("can\'t allocate memory");
        __ptr = (void *)*local_3c;
        goto LAB_00422364;
      }
      free((void *)piVar20[-2]);
      if (piVar20[1] < 0) {
        piVar16[1] = -1;
      }
      else {
        piVar16[1] = *piVar20;
      }
      piVar16[2] = piVar16[1];
      break;
    case 0x47:
      piVar16 = (int *)malloc(0xc)   //possible issue identified - semgrep
      if (piVar16 == (int *)0x0) {
        yywarn("can\'t allocate memory");
        __ptr = (void *)piVar20[-4];
        goto LAB_00422364;
      }
      local_40 = piVar20 + -4;
      pcVar9 = strdup((char *)piVar20[-4]);
      *piVar16 = (int)pcVar9;
      if (pcVar9 == (char *)0x0) {
        yywarn("can\'t allocate memory");
        __ptr = (void *)*local_40;
        goto LAB_00422364;
      }
      free((void *)piVar20[-4]);
      if (piVar20[-1] < 0) {
        piVar16[1] = -1;
      }
      else {
        piVar16[1] = piVar20[-2];
      }
      if (piVar20[1] < 0) {
        piVar16[2] = -1;
      }
      else {
        piVar16[2] = *piVar20;
      }
      break;
    case 0x48:
      piVar16 = (int *)0xffffffff;
      iVar18 = -1;
      break;
    case 0x49:
      piVar16 = (int *)*piVar20;
      iVar18 = piVar20[1];
      break;
    case 0x4a:
      piVar16 = (int *)0x0;
      break;
    case 0x4b:
      piVar16 = (int *)piVar20[-2];
      if (piVar16 == (int *)0x0) {
        *(undefined4 *)*piVar20 = 0;
        *(int *)(*piVar20 + 4) = *piVar20;
        piVar16 = (int *)*piVar20;
      }
      else {
        *(int *)piVar16[1] = *piVar20;
        piVar16[1] = *(int *)(*piVar20 + 4);
      }
      break;
    case 0x4c:
      piVar16 = (int *)*piVar20;
      break;
    case 0x4d:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422380;
      piVar16[1] = 0;
      piVar16[6] = 0;
      piVar16[7] = 0;
      piVar16[2] = 0x20;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[7] = piVar20[-2];
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x4e:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) {
        yywarn("can\'t allocate memory");
        if ((void *)piVar20[-8] != (void *)0x0) {
          free((void *)piVar20[-8]);
        }
        if (piVar20[-4] == 0) {
          return 0xffffffff;
        }
        goto LAB_00422304;
      }
      piVar16[1] = 0;
      piVar16[6] = 0;
      piVar16[7] = 0;
      piVar16[2] = 0x1f;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[7] = piVar20[-8];
      iVar17 = piVar20[-4];
      piVar16[1] = (int)piVar16;
      piVar16[6] = iVar17;
      break;
    case 0x4f:
      piVar16 = (int *)0x0;
      break;
    case 0x50:
      piVar16 = (int *)piVar20[-2];
      if (piVar16 == (int *)0x0) {
        *(undefined4 *)*piVar20 = 0;
        *(int *)(*piVar20 + 4) = *piVar20;
        piVar16 = (int *)*piVar20;
      }
      else {
        *(int *)piVar16[1] = *piVar20;
        piVar16[1] = *(int *)(*piVar20 + 4);
      }
      break;
    case 0x51:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[2] = 0xe;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      iVar17 = piVar20[-1];
      piVar16[4] = piVar20[-2];
      piVar16[5] = iVar17;
      break;
    case 0x52:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[2] = 0xf;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      iVar17 = piVar20[-1];
      piVar16[4] = piVar20[-2];
      piVar16[5] = iVar17;
      break;
    case 0x53:
      piVar16 = (int *)0x0;
      break;
    case 0x54:
      piVar16 = (int *)piVar20[-2];
      if (piVar16 == (int *)0x0) {
        *(undefined4 *)*piVar20 = 0;
        *(int *)(*piVar20 + 4) = *piVar20;
        piVar16 = (int *)*piVar20;
      }
      else {
        *(int *)piVar16[1] = *piVar20;
        piVar16[1] = *(int *)(*piVar20 + 4);
      }
      break;
    case 0x55:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422380;
      piVar16[1] = 0;
      piVar16[6] = 0;
      piVar16[7] = 0;
      piVar16[2] = 0x21;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[7] = piVar20[-2];
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      break;
    case 0x56:
      piVar16 = (int *)0x0;
      break;
    case 0x57:
      piVar16 = (int *)piVar20[-2];
      if (piVar16 == (int *)0x0) {
        *(undefined4 *)*piVar20 = 0;
        *(int *)(*piVar20 + 4) = *piVar20;
        piVar16 = (int *)*piVar20;
      }
      else {
        *(int *)piVar16[1] = *piVar20;
        piVar16[1] = *(int *)(*piVar20 + 4);
      }
      break;
    case 0x58:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[2] = 0x26;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      iVar17 = piVar20[-1];
      piVar16[4] = piVar20[-2];
      piVar16[5] = iVar17;
      break;
    case 0x59:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[2] = 0x27;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      iVar17 = piVar20[-1];
      piVar16[4] = piVar20[-2];
      piVar16[5] = iVar17;
      break;
    case 0x5a:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[2] = 0x28;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      iVar17 = piVar20[-1];
      piVar16[4] = piVar20[-2];
      piVar16[5] = iVar17;
      break;
    case 0x5b:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[2] = 0x29;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      piVar16[7] = piVar20[-2];
      break;
    case 0x5c:
      piVar16 = (int *)0x2;
      iVar18 = 0;
      break;
    case 0x5d:
      piVar16 = (int *)0x3;
      iVar18 = 0;
      break;
    case 0x5e:
      piVar16 = (int *)0x1;
      iVar18 = 0;
      break;
    case 0x5f:
      piVar16 = (int *)0x0;
      iVar18 = 0;
      break;
    case 0x60:
      piVar16 = (int *)0x0;
      break;
    case 0x61:
      piVar16 = (int *)piVar20[-2];
      if (piVar16 == (int *)0x0) {
        *(undefined4 *)*piVar20 = 0;
        *(int *)(*piVar20 + 4) = *piVar20;
        piVar16 = (int *)*piVar20;
      }
      else {
        *(int *)piVar16[1] = *piVar20;
        piVar16[1] = *(int *)(*piVar20 + 4);
      }
      break;
    case 0x62:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[2] = 0x2a;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      piVar16[7] = piVar20[-2];
      break;
    case 99:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[2] = 0x2b;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      iVar17 = piVar20[-1];
      piVar16[4] = piVar20[-2];
      piVar16[5] = iVar17;
      break;
    case 100:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[2] = 0x2c;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      piVar16[7] = piVar20[-2];
      break;
    case 0x65:
      piVar16 = (int *)malloc(0x20)   //possible issue identified - semgrep
      iVar17 = lineno;
      if (piVar16 == (int *)0x0) goto LAB_00422450;
      piVar16[7] = 0;
      piVar16[2] = 0x2d;
      piVar16[3] = iVar17;
      *piVar16 = 0;
      piVar16[4] = 0;
      piVar16[5] = 0;
      piVar16[6] = 0;
      piVar16[1] = (int)piVar16;
      piVar16[7] = piVar20[-2];
    }
    uVar14 = local_38;
    psVar23 = psVar23 + -local_38;
    iVar17 = ((byte)(&UNK_0042bc14)[uVar21] - 0x4c) * 2;
    sVar2 = *psVar23;
    uVar21 = (int)sVar2 + (int)*(short *)(&UNK_0042bc88 + iVar17);
    piVar20[local_38 * -2 + 2] = (int)piVar16;
    piVar20[uVar14 * -2 + 3] = iVar18;
    piVar16 = piVar20 + uVar14 * -2 + 2;
    if ((uVar21 < 0x113) && ((int)*(short *)(&DAT_0042b764 + uVar21 * 2) == (int)sVar2)) {
      uVar21 = (uint)(byte)(&UNK_0042b98c)[uVar21];
    }
    else {
      uVar21 = (uint)*(short *)(&UNK_0042bcd4 + iVar17);
    }
LAB_0041fd60:
    psVar23 = psVar23 + 1;
    piVar20 = piVar16;
  } while( true );
}