
int der_decode_sequence_ex(uchar *in,ulong inlen,ltc_asn1_list *list,ulong outlen,int ordered)

{
  byte bVar1;
  ltc_asn1_type lVar2;
  ltc_asn1_list *list_00;
  wchar_t wVar3;
  int *piVar4;
  int *piVar5;
  int iVar6;
  uint uVar7;
  int *piVar8;
  ltc_asn1_list *plVar9;
  ulong uVar10;
  int ordered_00;
  ulong uVar11;
  ulong uVar12;
  uchar *puVar13;
  uchar *puVar14;
  int iVar15;
  long in_FS_OFFSET;
  ulong size;
  ulong z;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (in == (uchar *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);
  }
  if (list == (ltc_asn1_list *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);
  }
  if (1 < inlen) {
    wVar3 = L'\a';
    if (1 < (byte)(*in - 0x30)) goto LAB_00172f95;
    bVar1 = in[1];
    uVar10 = (ulong)bVar1;
    uVar12 = 2;
    if ((char)bVar1 < '\0') {
      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;
      uVar11 = (ulong)(bVar1 & 0x7f);
      uVar12 = uVar11 + 2;
      if (inlen < uVar12) goto LAB_00172f95;
      uVar10 = 0;
      uVar7 = bVar1 & 7;
      puVar14 = in;
      if ((bVar1 & 7) != 0) {
        puVar13 = in;
        if (uVar7 != 1) {
          if (uVar7 != 2) {
            if (uVar7 != 3) {
              if (uVar7 != 4) {
                if (uVar7 != 5) {
                  if (uVar7 != 6) {
                    uVar10 = (ulong)in[2];
                    puVar14 = in + 1;
                  }
                  puVar13 = puVar14 + 1;
                  uVar10 = uVar10 << 8 | (ulong)puVar14[2];
                }
                puVar14 = puVar13 + 1;
                uVar10 = uVar10 << 8 | (ulong)puVar13[2];
              }
              puVar13 = puVar14 + 1;
              uVar10 = uVar10 << 8 | (ulong)puVar14[2];
            }
            puVar14 = puVar13 + 1;
            uVar10 = uVar10 << 8 | (ulong)puVar13[2];
          }
          puVar13 = puVar14 + 1;
          uVar10 = uVar10 << 8 | (ulong)puVar14[2];
        }
        uVar10 = uVar10 << 8 | (ulong)puVar13[2];
        puVar14 = puVar13 + 1;
        if (puVar13 + 1 == in + uVar11) goto LAB_00172dda;
      }
      do {
        puVar13 = puVar14 + 8;
        uVar10 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(puVar14[2],
                                                                                puVar14[3]),
                                                                       puVar14[4]),puVar14[5]),
                                                     puVar14[6]),puVar14[7]),*puVar13),puVar14[9]);
        puVar14 = puVar13;
      } while (puVar13 != in + uVar11);
    }
LAB_00172dda:
    wVar3 = L'\a';
    if (inlen < uVar12 + uVar10) goto LAB_00172f95;
    iVar6 = (int)outlen;
    if (iVar6 < 1) {
LAB_00173790:
      wVar3 = ~-(uint)(uVar10 == 0) & 0x15;
      goto LAB_00172f95;
    }
    piVar4 = &list[1].used;
    piVar5 = &list->used;
    piVar8 = piVar4 + (ulong)(iVar6 - 1) * 0x10;
    uVar7 = (int)((ulong)((long)piVar8 + (-0x40 - (long)piVar5)) >> 6) + 1U & 7;
    if (uVar7 == 0) goto LAB_00172e99;
    if (uVar7 != 1) {
      if (uVar7 != 2) {
        if (uVar7 != 3) {
          if (uVar7 != 4) {
            if (uVar7 != 5) {
              if (uVar7 != 6) {
                *piVar5 = 0;
                piVar5 = &list[1].used;
              }
              *piVar5 = 0;
              piVar5 = piVar5 + 0x10;
            }
            *piVar5 = 0;
            piVar5 = piVar5 + 0x10;
          }
          *piVar5 = 0;
          piVar5 = piVar5 + 0x10;
        }
        *piVar5 = 0;
        piVar5 = piVar5 + 0x10;
      }
      *piVar5 = 0;
      piVar5 = piVar5 + 0x10;
    }
    *piVar5 = 0;
    for (piVar5 = piVar5 + 0x10; piVar5 != piVar8; piVar5 = piVar5 + 0x80) {
LAB_00172e99:
      *piVar5 = 0;
      piVar5[0x10] = 0;
      piVar5[0x20] = 0;
      piVar5[0x30] = 0;
      piVar5[0x40] = 0;
      piVar5[0x50] = 0;
      piVar5[0x60] = 0;
      piVar5[0x70] = 0;
    }
    iVar15 = 0;
LAB_00172f1e:
    do {
      z = 0;
      plVar9 = list + iVar15;
      size = plVar9->size;
      lVar2 = plVar9->type;
      list_00 = (ltc_asn1_list *)plVar9->data;
      if ((ordered == 0) && (plVar9->used == 1)) goto LAB_001731b1;
      if (lVar2 == LTC_ASN1_EOL) break;
      switch(lVar2) {
      case LTC_ASN1_BOOLEAN:
        z = uVar10;
        wVar3 = der_decode_boolean(in + uVar12,uVar10,(int *)list_00);
        if (wVar3 == L'\0') {
          wVar3 = der_length_boolean(&z);
          break;
        }
        goto LAB_001731a8;
      case LTC_ASN1_INTEGER:
        z = uVar10;
        wVar3 = der_decode_integer(in + uVar12,uVar10,list_00);
        if (wVar3 != L'\0') goto LAB_001731a8;
        wVar3 = der_length_integer(list_00,&z);
        break;
      case LTC_ASN1_SHORT_INTEGER:
        z = uVar10;
        wVar3 = der_decode_short_integer(in + uVar12,uVar10,(ulong *)list_00);
        if (wVar3 != L'\0') goto LAB_001731a8;
        wVar3 = der_length_short_integer(*(ulong *)list_00,&z);
        break;
      case LTC_ASN1_BIT_STRING:
        z = uVar10;
        wVar3 = der_decode_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);
        goto joined_r0x00173127;
      case LTC_ASN1_OCTET_STRING:
        z = uVar10;
        wVar3 = der_decode_octet_string(in + uVar12,uVar10,(uchar *)list_00,&size);
        if (wVar3 != L'\0') goto LAB_001731a8;
        plVar9->size = size;
        wVar3 = der_length_octet_string(size,&z);
        break;
      case LTC_ASN1_NULL:
        if (((1 < uVar10) && (in[uVar12] == '\x05')) && (in[uVar12 + 1] == '\0')) {
          z = 2;
          uVar12 = uVar12 + 2;
          uVar10 = uVar10 - 2;
          goto switchD_00172f6d_caseD_14;
        }
        if (ordered == 0) goto LAB_001731b1;
        goto LAB_00172f90;
      case LTC_ASN1_OBJECT_IDENTIFIER:
        z = uVar10;
        wVar3 = der_decode_object_identifier(in + uVar12,uVar10,(ulong *)list_00,&size);
        if (wVar3 != L'\0') goto LAB_001731a8;
        plVar9->size = size;
        wVar3 = der_length_object_identifier((ulong *)list_00,size,&z);
        break;
      case LTC_ASN1_IA5_STRING:
        z = uVar10;
        wVar3 = der_decode_ia5_string(in + uVar12,uVar10,(uchar *)list_00,&size);
        if (wVar3 != L'\0') goto LAB_001731a8;
        plVar9->size = size;
        wVar3 = der_length_ia5_string((uchar *)list_00,size,&z);
        break;
      case LTC_ASN1_PRINTABLE_STRING:
        z = uVar10;
        wVar3 = der_decode_printable_string(in + uVar12,uVar10,(uchar *)list_00,&size);
        if (wVar3 != L'\0') goto LAB_001731a8;
        plVar9->size = size;
        wVar3 = der_length_printable_string((uchar *)list_00,size,&z);
        break;
      case LTC_ASN1_UTF8_STRING:
        z = uVar10;
        wVar3 = der_decode_utf8_string(in + uVar12,uVar10,(wchar_t *)list_00,&size);
        if (wVar3 != L'\0') goto LAB_001731a8;
        plVar9->size = size;
        wVar3 = der_length_utf8_string((wchar_t *)list_00,size,&z);
        break;
      case LTC_ASN1_UTCTIME:
        z = uVar10;
        wVar3 = der_decode_utctime(in + uVar12,&z,(ltc_utctime *)list_00);
        goto joined_r0x0017339c;
      case LTC_ASN1_CHOICE:
        z = uVar10;
        wVar3 = der_decode_choice(in + uVar12,&z,list_00,size);
        goto joined_r0x0017339c;
      case LTC_ASN1_SEQUENCE:
      case LTC_ASN1_SETOF:
        if (lVar2 == LTC_ASN1_SETOF) {
          if ((in[uVar12] & 0x3f) != 0x31) goto LAB_00172f90;
        }
        else if ((lVar2 == LTC_ASN1_SEQUENCE) && ((in[uVar12] & 0x3f) != 0x30)) goto LAB_00172f90;
        ordered_00 = 1;
        goto LAB_00173181;
      case LTC_ASN1_SET:
        ordered_00 = 0;
LAB_00173181:
        z = uVar10;
        wVar3 = der_decode_sequence_ex(in + uVar12,uVar10,list_00,size,ordered_00);
        if (wVar3 == L'\0') {
          wVar3 = der_length_sequence(list_00,size,&z);
          break;
        }
        goto LAB_001731a8;
      case LTC_ASN1_RAW_BIT_STRING:
        z = uVar10;
        wVar3 = der_decode_raw_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);
joined_r0x00173127:
        if (wVar3 == L'\0') {
          plVar9->size = size;
          wVar3 = der_length_bit_string(size,&z);
          break;
        }
        goto LAB_001731a8;
      case LTC_ASN1_TELETEX_STRING:
        z = uVar10;
        wVar3 = der_decode_teletex_string(in + uVar12,uVar10,(uchar *)list_00,&size);
        if (wVar3 != L'\0') goto LAB_001731a8;
        plVar9->size = size;
        wVar3 = der_length_teletex_string((uchar *)list_00,size,&z);
        break;
      case LTC_ASN1_CONSTRUCTED:
      case LTC_ASN1_CONTEXT_SPECIFIC:
        wVar3 = L'\x10';
        goto LAB_00172f95;
      case LTC_ASN1_GENERALIZEDTIME:
        z = uVar10;
        wVar3 = der_decode_generalizedtime(in + uVar12,&z,(ltc_generalizedtime *)list_00);
joined_r0x0017339c:
        if (wVar3 == L'\0') {
          uVar12 = uVar12 + z;
          uVar10 = uVar10 - z;
          goto switchD_00172f6d_caseD_14;
        }
LAB_001731a8:
        if (ordered == 0) goto LAB_001731b1;
        goto LAB_00172f95;
      default:
        goto switchD_00172f6d_caseD_14;
      }
      if (wVar3 != L'\0') goto LAB_00172f95;
      uVar12 = uVar12 + z;
      uVar10 = uVar10 - z;
switchD_00172f6d_caseD_14:
      plVar9->used = 1;
      if (ordered == 0) {
        iVar15 = 0;
        goto LAB_00172f1e;
      }
LAB_001731b1:
      iVar15 = iVar15 + 1;
    } while (iVar15 < iVar6);
    if (list->used != 0) {
      uVar12 = (ulong)((long)piVar8 - (long)piVar4) >> 6;
      uVar7 = (uint)uVar12 & 7;
      piVar5 = piVar4;
      if ((uVar12 & 7) == 0) goto LAB_00173282;
      piVar5 = &list[2].used;
      if (*piVar4 != 0) {
        if (uVar7 == 1) goto LAB_00173282;
        piVar4 = piVar5;
        if ((uVar7 == 2) ||
           (((uVar7 == 3 ||
             (((uVar7 == 4 ||
               (((uVar7 == 5 ||
                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&
                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&
                (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) && (piVar5 = piVar4 + 0x10, *piVar4 != 0))
             )) && (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) {
          iVar6 = *piVar4;
          piVar5 = piVar4 + 0x10;
          while (iVar6 != 0) {
LAB_00173282:
            if (piVar5 == piVar8) goto LAB_00173790;
            if (((*piVar5 == 0) || (piVar5[0x10] == 0)) ||
               (((piVar5[0x20] == 0 ||
                 (((piVar5[0x30] == 0 || (piVar5[0x40] == 0)) || (piVar5[0x50] == 0)))) ||
                (piVar5[0x60] == 0)))) break;
            iVar6 = piVar5[0x70];
            piVar5 = piVar5 + 0x80;
          }
        }
      }
    }
  }
LAB_00172f90:
  wVar3 = L'\a';
LAB_00172f95:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return wVar3;
}



ulong der_decode_sequence_ex(char *param_1,ulong param_2,long param_3,int param_4,int param_5)

{
  byte bVar1;
  undefined8 *puVar2;
  int iVar3;
  ulong uVar4;
  int *piVar5;
  uint uVar6;
  int *piVar7;
  int *piVar8;
  ulong uVar9;
  ulong uVar10;
  undefined8 uVar11;
  ulong uVar12;
  char *pcVar13;
  char *pcVar14;
  int iVar15;
  long in_FS_OFFSET;
  undefined8 local_50;
  ulong local_48;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_1 == (char *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);
  }
  if (param_3 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);
  }
  if (1 < param_2) {
    uVar4 = 7;
    if (1 < (byte)(*param_1 - 0x30U)) goto LAB_00172f95;
    bVar1 = param_1[1];
    uVar9 = (ulong)bVar1;
    uVar12 = 2;
    if ((char)bVar1 < '\0') {
      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;
      uVar10 = (ulong)(bVar1 & 0x7f);
      uVar12 = uVar10 + 2;
      if (param_2 < uVar12) goto LAB_00172f95;
      uVar4 = 0;
      uVar6 = bVar1 & 7;
      pcVar14 = param_1;
      if ((bVar1 & 7) != 0) {
        pcVar13 = param_1;
        if (uVar6 != 1) {
          if (uVar6 != 2) {
            if (uVar6 != 3) {
              if (uVar6 != 4) {
                if (uVar6 != 5) {
                  if (uVar6 != 6) {
                    uVar4 = (ulong)(byte)param_1[2];
                    pcVar14 = param_1 + 1;
                  }
                  pcVar13 = pcVar14 + 1;
                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];
                }
                pcVar14 = pcVar13 + 1;
                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];
              }
              pcVar13 = pcVar14 + 1;
              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];
            }
            pcVar14 = pcVar13 + 1;
            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];
          }
          pcVar13 = pcVar14 + 1;
          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];
        }
        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];
        pcVar14 = pcVar13 + 1;
        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;
      }
      do {
        pcVar13 = pcVar14 + 8;
        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]
                                                                              ),pcVar14[4]),
                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),
                                  *pcVar13),pcVar14[9]);
        pcVar14 = pcVar13;
      } while (pcVar13 != param_1 + uVar10);
    }
LAB_00172dda:
    uVar4 = 7;
    if (param_2 < uVar12 + uVar9) goto LAB_00172f95;
    if (param_4 < 1) {
LAB_00173790:
      uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);
      goto LAB_00172f95;
    }
    piVar5 = (int *)(param_3 + 0x58);
    piVar8 = (int *)(param_3 + 0x18);
    piVar7 = piVar5 + (ulong)(param_4 - 1) * 0x10;
    uVar6 = (int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U & 7;
    if (uVar6 == 0) goto LAB_00172e99;
    if (uVar6 != 1) {
      if (uVar6 != 2) {
        if (uVar6 != 3) {
          if (uVar6 != 4) {
            if (uVar6 != 5) {
              if (uVar6 != 6) {
                *piVar8 = 0;
                piVar8 = (int *)(param_3 + 0x58);
              }
              *piVar8 = 0;
              piVar8 = piVar8 + 0x10;
            }
            *piVar8 = 0;
            piVar8 = piVar8 + 0x10;
          }
          *piVar8 = 0;
          piVar8 = piVar8 + 0x10;
        }
        *piVar8 = 0;
        piVar8 = piVar8 + 0x10;
      }
      *piVar8 = 0;
      piVar8 = piVar8 + 0x10;
    }
    *piVar8 = 0;
    for (piVar8 = piVar8 + 0x10; piVar8 != piVar7; piVar8 = piVar8 + 0x80) {
LAB_00172e99:
      *piVar8 = 0;
      piVar8[0x10] = 0;
      piVar8[0x20] = 0;
      piVar8[0x30] = 0;
      piVar8[0x40] = 0;
      piVar8[0x50] = 0;
      piVar8[0x60] = 0;
      piVar8[0x70] = 0;
    }
    iVar15 = 0;
LAB_00172f1e:
    do {
      local_48 = 0;
      piVar8 = (int *)((long)iVar15 * 0x40 + param_3);
      local_50 = *(undefined8 *)(piVar8 + 4);
      iVar3 = *piVar8;
      puVar2 = *(undefined8 **)(piVar8 + 2);
      if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;
      if (iVar3 == 0) break;
      switch(iVar3) {
      case 1:
        local_48 = uVar9;
        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);
        if ((int)uVar4 == 0) {
          uVar4 = der_length_boolean(&local_48);
          iVar3 = (int)uVar4;
          break;
        }
        goto LAB_001731a8;
      case 2:
        local_48 = uVar9;
        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);
        if ((int)uVar4 != 0) goto LAB_001731a8;
        uVar4 = der_length_integer(puVar2,&local_48);
        iVar3 = (int)uVar4;
        break;
      case 3:
        local_48 = uVar9;
        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);
        if ((int)uVar4 != 0) goto LAB_001731a8;
        uVar4 = der_length_short_integer(*puVar2,&local_48);
        iVar3 = (int)uVar4;
        break;
      case 4:
        local_48 = uVar9;
        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);
        iVar3 = (int)uVar4;
        goto joined_r0x00173127;
      case 5:
        local_48 = uVar9;
        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);
        if ((int)uVar4 != 0) goto LAB_001731a8;
        *(undefined8 *)(piVar8 + 4) = local_50;
        uVar4 = der_length_octet_string(local_50,&local_48);
        iVar3 = (int)uVar4;
        break;
      case 6:
        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {
          local_48 = 2;
          uVar12 = uVar12 + 2;
          uVar9 = uVar9 - 2;
          goto switchD_00172f6d_caseD_14;
        }
        if (param_5 == 0) goto LAB_001731b1;
        goto LAB_00172f90;
      case 7:
        local_48 = uVar9;
        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);
        if ((int)uVar4 != 0) goto LAB_001731a8;
        *(undefined8 *)(piVar8 + 4) = local_50;
        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);
        iVar3 = (int)uVar4;
        break;
      case 8:
        local_48 = uVar9;
        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);
        if ((int)uVar4 != 0) goto LAB_001731a8;
        *(undefined8 *)(piVar8 + 4) = local_50;
        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);
        iVar3 = (int)uVar4;
        break;
      case 9:
        local_48 = uVar9;
        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);
        if ((int)uVar4 != 0) goto LAB_001731a8;
        *(undefined8 *)(piVar8 + 4) = local_50;
        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);
        iVar3 = (int)uVar4;
        break;
      case 10:
        local_48 = uVar9;
        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);
        if ((int)uVar4 != 0) goto LAB_001731a8;
        *(undefined8 *)(piVar8 + 4) = local_50;
        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);
        iVar3 = (int)uVar4;
        break;
      case 0xb:
        local_48 = uVar9;
        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);
        iVar3 = (int)uVar4;
        goto joined_r0x0017339c;
      case 0xc:
        local_48 = uVar9;
        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);
        iVar3 = (int)uVar4;
        goto joined_r0x0017339c;
      case 0xd:
      case 0xf:
        if (iVar3 == 0xf) {
          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;
        }
        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;
        uVar11 = 1;
        goto LAB_00173181;
      case 0xe:
        uVar11 = 0;
LAB_00173181:
        local_48 = uVar9;
        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);
        if ((int)uVar4 == 0) {
          uVar4 = der_length_sequence(puVar2,local_50,&local_48);
          iVar3 = (int)uVar4;
          break;
        }
        goto LAB_001731a8;
      case 0x10:
        local_48 = uVar9;
        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);
        iVar3 = (int)uVar4;
joined_r0x00173127:
        if (iVar3 == 0) {
          *(undefined8 *)(piVar8 + 4) = local_50;
          uVar4 = der_length_bit_string(local_50,&local_48);
          iVar3 = (int)uVar4;
          break;
        }
        goto LAB_001731a8;
      case 0x11:
        local_48 = uVar9;
        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);
        if ((int)uVar4 != 0) goto LAB_001731a8;
        *(undefined8 *)(piVar8 + 4) = local_50;
        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);
        iVar3 = (int)uVar4;
        break;
      case 0x12:
      case 0x13:
        uVar4 = 0x10;
        goto LAB_00172f95;
      case 0x14:
        local_48 = uVar9;
        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);
        iVar3 = (int)uVar4;
joined_r0x0017339c:
        if (iVar3 == 0) {
          uVar12 = uVar12 + local_48;
          uVar9 = uVar9 - local_48;
          goto switchD_00172f6d_caseD_14;
        }
LAB_001731a8:
        if (param_5 == 0) goto LAB_001731b1;
        goto LAB_00172f95;
      default:
        goto switchD_00172f6d_caseD_14;
      }
      if (iVar3 != 0) goto LAB_00172f95;
      uVar12 = uVar12 + local_48;
      uVar9 = uVar9 - local_48;
switchD_00172f6d_caseD_14:
      piVar8[6] = 1;
      if (param_5 == 0) {
        iVar15 = 0;
        goto LAB_00172f1e;
      }
LAB_001731b1:
      iVar15 = iVar15 + 1;
    } while (iVar15 < param_4);
    if (*(int *)(param_3 + 0x18) != 0) {
      uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6;
      uVar6 = (uint)uVar4 & 7;
      piVar8 = piVar5;
      if ((uVar4 & 7) == 0) goto LAB_00173282;
      piVar8 = (int *)(param_3 + 0x98);
      if (*piVar5 != 0) {
        if (uVar6 == 1) goto LAB_00173282;
        piVar5 = piVar8;
        if ((uVar6 == 2) ||
           (((uVar6 == 3 ||
             (((uVar6 == 4 ||
               (((uVar6 == 5 ||
                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))
                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&
                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))
             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {
          iVar15 = *piVar5;
          piVar8 = piVar5 + 0x10;
          while (iVar15 != 0) {
LAB_00173282:
            if (piVar8 == piVar7) goto LAB_00173790;
            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||
               (((piVar8[0x20] == 0 ||
                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||
                (piVar8[0x60] == 0)))) break;
            iVar15 = piVar8[0x70];
            piVar8 = piVar8 + 0x80;
          }
        }
      }
    }
  }
LAB_00172f90:
  uVar4 = 7;
LAB_00172f95:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return uVar4;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x68
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x58],RAX
XOR EAX,EAX
TEST RDI,RDI
JZ 0x001737df
MOV R13,RDX
TEST RDX,RDX
JZ 0x001737c7
CMP RSI,0x1
JBE 0x00172f90
MOVZX EAX,byte ptr [RDI]
MOV R12,RDI
LEA EDX,[RAX + -0x30]
MOV EAX,0x7
CMP DL,0x1
JA 0x00172f95
MOVZX EBP,byte ptr [RDI + 0x1]
MOV R15D,R8D
MOV R9D,0x2
TEST BPL,BPL
JS 0x00172fc0
LEA RDI,[R9 + RBP*0x1]
MOV EAX,0x7
CMP RDI,RSI
JA 0x00172f95
MOV dword ptr [RSP + 0x1c],ECX
TEST ECX,ECX
JLE 0x00173790
LEA ECX,[RCX + -0x1]
LEA RSI,[R13 + 0x58]
SHL RCX,0x6
LEA R10,[R13 + 0x18]
MOV qword ptr [RSP + 0x30],RSI
ADD RCX,RSI
MOV qword ptr [RSP + 0x10],RCX
SUB RCX,R10
SUB RCX,0x40
SHR RCX,0x6
ADD RCX,0x1
AND ECX,0x7
JZ 0x00172e99
CMP RCX,0x1
JZ 0x00172e87
CMP RCX,0x2
JZ 0x00172e7c
CMP RCX,0x3
JZ 0x00172e71
CMP RCX,0x4
JZ 0x00172e66
CMP RCX,0x5
JZ 0x00172e5b
CMP RCX,0x6
JNZ 0x00173748
MOV dword ptr [R10],0x0
ADD R10,0x40
MOV dword ptr [R10],0x0
ADD R10,0x40
MOV dword ptr [R10],0x0
ADD R10,0x40
MOV dword ptr [R10],0x0
ADD R10,0x40
MOV dword ptr [R10],0x0
ADD R10,0x40
MOV dword ptr [R10],0x0
ADD R10,0x40
CMP R10,qword ptr [RSP + 0x10]
JZ 0x00172ef5
MOV dword ptr [R10],0x0
ADD R10,0x200
MOV dword ptr [R10 + -0x1c0],0x0
MOV dword ptr [R10 + -0x180],0x0
MOV dword ptr [R10 + -0x140],0x0
MOV dword ptr [R10 + -0x100],0x0
MOV dword ptr [R10 + -0xc0],0x0
MOV dword ptr [R10 + -0x80],0x0
MOV dword ptr [R10 + -0x40],0x0
CMP R10,qword ptr [RSP + 0x10]
JNZ 0x00172e99
LEA RBX,[RSP + 0x50]
LEA R8,[RSP + 0x48]
MOV qword ptr [RSP + 0x8],R12
XOR R14D,R14D
MOV qword ptr [RSP + 0x28],RBX
MOV R12,R13
LEA RSI,[0x1c3844]
MOV R13,R9
MOV qword ptr [RSP + 0x20],R8
MOV qword ptr [RSP + 0x50],0x0
MOVSXD RBX,R14D
SHL RBX,0x6
ADD RBX,R12
MOV RCX,qword ptr [RBX + 0x10]
MOV R9D,dword ptr [RBX]
MOV R11,qword ptr [RBX + 0x8]
MOV qword ptr [RSP + 0x48],RCX
TEST R15D,R15D
JNZ 0x00172f50
CMP dword ptr [RBX + 0x18],0x1
JZ 0x001731b1
TEST R9D,R9D
JZ 0x001731c0
CMP R9D,0x14
JA 0x0017315a
MOV EDX,R9D
MOVSXD RAX,dword ptr [RSI + RDX*0x4]
ADD RAX,RSI
JMP RAX
CMP RBP,0x1
JBE 0x00172f86
MOV R8,qword ptr [RSP + 0x8]
CMP byte ptr [R8 + R13*0x1],0x5
JZ 0x001737a0
TEST R15D,R15D
JZ 0x001731b1
NOP
MOV EAX,0x7
MOV RSI,qword ptr [RSP + 0x58]
XOR RSI,qword ptr FS:[0x28]
JNZ 0x001737c2
ADD RSP,0x68
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
LEA EBX,[RBP + 0x7f]
CMP BL,0x2
JA 0x00172f95
MOV R8,RBP
AND R8D,0x7f
LEA R9,[R8 + 0x2]
CMP R9,RSI
JA 0x00172f95
MOV R10,RDI
XOR EBP,EBP
LEA RDI,[R8 + RDI*0x1]
AND R8D,0x7
JZ 0x00173083
CMP R8,0x1
JZ 0x0017306a
CMP R8,0x2
JZ 0x0017305a
CMP R8,0x3
JZ 0x0017304a
CMP R8,0x4
JZ 0x0017303a
CMP R8,0x5
JZ 0x0017302a
CMP R8,0x6
JZ 0x0017301a
MOVZX EBP,byte ptr [R12 + 0x2]
LEA R10,[R12 + 0x1]
MOVZX R11D,byte ptr [R10 + 0x2]
SHL RBP,0x8
ADD R10,0x1
OR RBP,R11
MOVZX R14D,byte ptr [R10 + 0x2]
SHL RBP,0x8
ADD R10,0x1
OR RBP,R14
MOVZX EAX,byte ptr [R10 + 0x2]
SHL RBP,0x8
ADD R10,0x1
OR RBP,RAX
MOVZX EDX,byte ptr [R10 + 0x2]
SHL RBP,0x8
ADD R10,0x1
OR RBP,RDX
MOVZX EBX,byte ptr [R10 + 0x2]
SHL RBP,0x8
ADD R10,0x1
OR RBP,RBX
MOVZX R8D,byte ptr [R10 + 0x2]
SHL RBP,0x8
ADD R10,0x1
OR RBP,R8
CMP R10,RDI
JZ 0x00172dda
MOVZX R11D,byte ptr [R10 + 0x2]
SHL RBP,0x8
MOVZX R14D,byte ptr [R10 + 0x3]
ADD R10,0x8
MOVZX EDX,byte ptr [R10 + -0x4]
MOVZX R8D,byte ptr [R10 + -0x2]
OR RBP,R11
SHL RBP,0x8
OR RBP,R14
MOVZX R14D,byte ptr [R10 + -0x1]
MOV RAX,RBP
MOVZX EBP,byte ptr [R10 + -0x3]
SHL RAX,0x8
OR RDX,RAX
MOV RBX,RDX
MOVZX EDX,byte ptr [R10]
SHL RBX,0x8
OR RBP,RBX
SHL RBP,0x8
OR R8,RBP
MOVZX EBP,byte ptr [R10 + 0x1]
SHL R8,0x8
OR R14,R8
SHL R14,0x8
OR RDX,R14
MOV RAX,RDX
SHL RAX,0x8
OR RBP,RAX
CMP R10,RDI
JNZ 0x00173083
JMP 0x00172dda
MOV RSI,qword ptr [RSP + 0x8]
MOV RCX,qword ptr [RSP + 0x20]
MOV RDX,R11
MOV qword ptr [RSP + 0x50],RBP
LEA RDI,[RSI + R13*0x1]
MOV RSI,RBP
CALL 0x00113c40
LEA RSI,[0x1c3844]
TEST EAX,EAX
JNZ 0x001731a8
MOV RDI,qword ptr [RSP + 0x48]
MOV RSI,qword ptr [RSP + 0x28]
MOV qword ptr [RBX + 0x10],RDI
CALL 0x00114e70
TEST EAX,EAX
JNZ 0x00172f95
NOP dword ptr [RAX]
MOV RCX,qword ptr [RSP + 0x50]
LEA RSI,[0x1c3844]
ADD R13,RCX
SUB RBP,RCX
MOV dword ptr [RBX + 0x18],0x1
TEST R15D,R15D
JNZ 0x001731b1
XOR R14D,R14D
JMP 0x00172f1e
MOV R10,qword ptr [RSP + 0x8]
MOV qword ptr [RSP + 0x50],RBP
XOR R8D,R8D
LEA RDI,[R10 + R13*0x1]
MOV RDX,R11
MOV RSI,RBP
MOV qword ptr [RSP + 0x38],R11
CALL 0x00172d70
MOV R11,qword ptr [RSP + 0x38]
LEA RSI,[0x1c3844]
TEST EAX,EAX
JZ 0x00173770
NOP dword ptr [RAX]
TEST R15D,R15D
JNZ 0x00172f95
ADD R14D,0x1
CMP dword ptr [RSP + 0x1c],R14D
JG 0x00172f1e
MOV R15D,dword ptr [R12 + 0x18]
TEST R15D,R15D
JZ 0x00172f90
MOV RAX,qword ptr [RSP + 0x30]
MOV R13,qword ptr [RSP + 0x10]
SUB R13,RAX
SHR R13,0x6
AND R13D,0x7
JZ 0x00173282
ADD RAX,0x40
MOV EBX,dword ptr [RAX + -0x40]
TEST EBX,EBX
JZ 0x00172f90
CMP R13,0x1
JZ 0x00173282
CMP R13,0x2
JZ 0x00173273
CMP R13,0x3
JZ 0x00173262
CMP R13,0x4
JZ 0x00173253
CMP R13,0x5
JZ 0x00173242
CMP R13,0x6
JZ 0x00173231
ADD RAX,0x40
MOV R8D,dword ptr [RAX + -0x40]
TEST R8D,R8D
JZ 0x00172f90
ADD RAX,0x40
MOV R10D,dword ptr [RAX + -0x40]
TEST R10D,R10D
JZ 0x00172f90
ADD RAX,0x40
MOV R9D,dword ptr [RAX + -0x40]
TEST R9D,R9D
JZ 0x00172f90
ADD RAX,0x40
MOV EDX,dword ptr [RAX + -0x40]
TEST EDX,EDX
JZ 0x00172f90
ADD RAX,0x40
MOV R11D,dword ptr [RAX + -0x40]
TEST R11D,R11D
JZ 0x00172f90
ADD RAX,0x40
MOV EDI,dword ptr [RAX + -0x40]
TEST EDI,EDI
JZ 0x00172f90
CMP RAX,qword ptr [RSP + 0x10]
JZ 0x00173790
MOV ESI,dword ptr [RAX]
TEST ESI,ESI
JZ 0x00172f90
MOV ECX,dword ptr [RAX + 0x40]
TEST ECX,ECX
JZ 0x00172f90
MOV R14D,dword ptr [RAX + 0x80]
TEST R14D,R14D
JZ 0x00172f90
MOV R12D,dword ptr [RAX + 0xc0]
TEST R12D,R12D
JZ 0x00172f90
MOV R15D,dword ptr [RAX + 0x100]
TEST R15D,R15D
JZ 0x00172f90
MOV R13D,dword ptr [RAX + 0x140]
TEST R13D,R13D
JZ 0x00172f90
MOV EBX,dword ptr [RAX + 0x180]
TEST EBX,EBX
JZ 0x00172f90
ADD RAX,0x200
MOV R8D,dword ptr [RAX + -0x40]
TEST R8D,R8D
JNZ 0x00173282
JMP 0x00172f90
MOV EAX,0x10
JMP 0x00172f95
MOV RCX,qword ptr [RSP + 0x8]
MOV RSI,RBP
MOV RDX,R11
MOV qword ptr [RSP + 0x50],RBP
MOV qword ptr [RSP + 0x38],R11
LEA RDI,[RCX + R13*0x1]
MOV RCX,qword ptr [RSP + 0x20]
CALL 0x00113c60
MOV R8,qword ptr [RSP + 0x38]
LEA RSI,[0x1c3844]
TEST EAX,EAX
JNZ 0x001731a8
MOV RSI,qword ptr [RSP + 0x48]
MOV RDX,qword ptr [RSP + 0x28]
MOV RDI,R8
MOV qword ptr [RBX + 0x10],RSI
CALL 0x00114e60
TEST EAX,EAX
JZ 0x00173148
JMP 0x00172f95
MOV RDI,qword ptr [RSP + 0x8]
MOV RSI,qword ptr [RSP + 0x28]
MOV RDX,R11
MOV qword ptr [RSP + 0x50],RBP
LEA RDI,[RDI + R13*0x1]
CALL 0x00114aa0
LEA RSI,[0x1c3844]
TEST EAX,EAX
JNZ 0x001731a8
MOV R8,qword ptr [RSP + 0x50]
ADD R13,R8
SUB RBP,R8
JMP 0x0017315a
MOV RAX,qword ptr [RSP + 0x8]
MOV RSI,RBP
MOV RDX,R11
MOV qword ptr [RSP + 0x50],RBP
MOV qword ptr [RSP + 0x38],R11
LEA RDI,[RAX + R13*0x1]
CALL 0x00113d30
MOV RDI,qword ptr [RSP + 0x38]
LEA RSI,[0x1c3844]
TEST EAX,EAX
JNZ 0x001731a8
MOV RSI,qword ptr [RSP + 0x28]
CALL 0x00113ab0
TEST EAX,EAX
JZ 0x00173148
JMP 0x00172f95
MOV RDI,qword ptr [RSP + 0x8]
MOV RSI,qword ptr [RSP + 0x28]
MOV RDX,R11
MOV qword ptr [RSP + 0x50],RBP
LEA RDI,[RDI + R13*0x1]
CALL 0x00113840
LEA RSI,[0x1c3844]
TEST EAX,EAX
JNZ 0x001731a8
JMP 0x001733a2
MOV RCX,qword ptr [RSP + 0x8]
MOV RSI,qword ptr [RSP + 0x28]
MOV RDX,R11
MOV qword ptr [RSP + 0x50],RBP
LEA RDI,[RCX + R13*0x1]
CALL 0x00113af0
LEA RSI,[0x1c3844]
TEST EAX,EAX
JNZ 0x001731a8
JMP 0x001733a2
MOV RDX,qword ptr [RSP + 0x8]
LEA RDI,[RDX + R13*0x1]
CMP R9D,0xf
JZ 0x00173758
CMP R9D,0xd
JNZ 0x0017349b
MOVZX R9D,byte ptr [RDI]
AND R9D,0x3f
CMP R9B,0x30
JNZ 0x00172f90
MOV qword ptr [RSP + 0x50],RBP
MOV R8D,0x1
JMP 0x00173181
MOV R10,qword ptr [RSP + 0x8]
MOV RCX,qword ptr [RSP + 0x20]
MOV RSI,RBP
MOV RDX,R11
MOV qword ptr [RSP + 0x50],RBP
LEA RDI,[R10 + R13*0x1]
MOV qword ptr [RSP + 0x38],R11
CALL 0x001133b0
MOV R9,qword ptr [RSP + 0x38]
LEA RSI,[0x1c3844]
TEST EAX,EAX
JNZ 0x001731a8
MOV RSI,qword ptr [RSP + 0x48]
MOV RDX,qword ptr [RSP + 0x28]
MOV RDI,R9
MOV qword ptr [RBX + 0x10],RSI
CALL 0x001131f0
TEST EAX,EAX
JZ 0x00173148
JMP 0x00172f95
MOV RDX,qword ptr [RSP + 0x8]
MOV RCX,qword ptr [RSP + 0x20]
MOV RSI,RBP
MOV qword ptr [RSP + 0x38],R11
MOV qword ptr [RSP + 0x50],RBP
LEA RDI,[RDX + R13*0x1]
MOV RDX,R11
CALL 0x00113600
MOV R11,qword ptr [RSP + 0x38]
LEA RSI,[0x1c3844]
TEST EAX,EAX
JNZ 0x001731a8
MOV RSI,qword ptr [RSP + 0x48]
MOV RDX,qword ptr [RSP + 0x28]
MOV RDI,R11
MOV qword ptr [RBX + 0x10],RSI
CALL 0x00114550
TEST EAX,EAX
JZ 0x00173148
JMP 0x00172f95
MOV RAX,qword ptr [RSP + 0x8]
MOV RCX,qword ptr [RSP + 0x20]
MOV RSI,RBP
MOV RDX,R11
MOV qword ptr [RSP + 0x50],RBP
LEA RDI,[RAX + R13*0x1]
MOV qword ptr [RSP + 0x38],R11
CALL 0x00114a30
MOV RDI,qword ptr [RSP + 0x38]
LEA RSI,[0x1c3844]
TEST EAX,EAX
JNZ 0x001731a8
MOV RSI,qword ptr [RSP + 0x48]
MOV RDX,qword ptr [RSP + 0x28]
MOV qword ptr [RBX + 0x10],RSI
CALL 0x00114170
TEST EAX,EAX
JZ 0x00173148
JMP 0x00172f95
MOV RSI,qword ptr [RSP + 0x8]
MOV RCX,qword ptr [RSP + 0x20]
MOV RDX,R11
MOV qword ptr [RSP + 0x50],RBP
MOV qword ptr [RSP + 0x38],R11
LEA RDI,[RSI + R13*0x1]
MOV RSI,RBP
CALL 0x001142f0
MOV RCX,qword ptr [RSP + 0x38]
LEA RSI,[0x1c3844]
TEST EAX,EAX
JNZ 0x001731a8
MOV RSI,qword ptr [RSP + 0x48]
MOV RDX,qword ptr [RSP + 0x28]
MOV RDI,RCX
MOV qword ptr [RBX + 0x10],RSI
CALL 0x00113a50
TEST EAX,EAX
JZ 0x00173148
JMP 0x00172f95
MOV R10,qword ptr [RSP + 0x8]
MOV RCX,qword ptr [RSP + 0x20]
MOV RSI,RBP
MOV RDX,R11
MOV qword ptr [RSP + 0x50],RBP
LEA RDI,[R10 + R13*0x1]
CALL 0x00114890
LEA RSI,[0x1c3844]
TEST EAX,EAX
JNZ 0x001731a8
MOV RDI,qword ptr [RSP + 0x48]
MOV RSI,qword ptr [RSP + 0x28]
MOV qword ptr [RBX + 0x10],RDI
CALL 0x00113390
TEST EAX,EAX
JZ 0x00173148
JMP 0x00172f95
MOV RSI,qword ptr [RSP + 0x8]
MOV RDX,R11
MOV qword ptr [RSP + 0x50],RBP
LEA RDI,[RSI + R13*0x1]
MOV RSI,RBP
CALL 0x00114d10
LEA RSI,[0x1c3844]
TEST EAX,EAX
JNZ 0x001731a8
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x001146b0
TEST EAX,EAX
JZ 0x00173148
JMP 0x00172f95
MOV R9,qword ptr [RSP + 0x8]
MOV RCX,qword ptr [RSP + 0x20]
MOV RSI,RBP
MOV RDX,R11
MOV qword ptr [RSP + 0x50],RBP
LEA RDI,[R9 + R13*0x1]
CALL 0x00113610
LEA RSI,[0x1c3844]
TEST EAX,EAX
JNZ 0x001731a8
JMP 0x00173129
MOV RDX,qword ptr [RSP + 0x8]
MOV RSI,RBP
MOV qword ptr [RSP + 0x38],R11
MOV qword ptr [RSP + 0x50],RBP
LEA RDI,[RDX + R13*0x1]
MOV RDX,R11
CALL 0x00114b60
MOV R11,qword ptr [RSP + 0x38]
LEA RSI,[0x1c3844]
TEST EAX,EAX
JNZ 0x001731a8
MOV RSI,qword ptr [RSP + 0x28]
MOV RDI,qword ptr [R11]
CALL 0x00114420
TEST EAX,EAX
JZ 0x00173148
JMP 0x00172f95
MOV dword ptr [R10],0x0
LEA R10,[R13 + 0x58]
JMP 0x00172e50
MOVZX EAX,byte ptr [RDI]
AND EAX,0x3f
CMP AL,0x31
JZ 0x0017349b
JMP 0x00172f90
MOV RDX,qword ptr [RSP + 0x28]
MOV RSI,qword ptr [RSP + 0x48]
MOV RDI,R11
CALL 0x00114460
TEST EAX,EAX
JZ 0x00173148
JMP 0x00172f95
CMP RBP,0x1
SBB EAX,EAX
NOT EAX
AND EAX,0x15
JMP 0x00172f95
CMP byte ptr [R8 + R13*0x1 + 0x1],0x0
JNZ 0x00172f86
MOV qword ptr [RSP + 0x50],0x2
ADD R13,0x2
SUB RBP,0x2
JMP 0x0017315a
CALL 0x00113880
MOV EDX,0x25
LEA RSI,[0x1c3810]
LEA RDI,[0x1c2da1]
CALL 0x00114270
MOV EDX,0x24
LEA RSI,[0x1c3810]
LEA RDI,[0x1a8790]
CALL 0x00114270
(translation_unit "ulong der_decode_sequence_ex(char *param_1,ulong param_2,long param_3,int param_4,int param_5)\n\n{\n  byte bVar1;\n  undefined8 *puVar2;\n  int iVar3;\n  ulong uVar4;\n  int *piVar5;\n  uint uVar6;\n  int *piVar7;\n  int *piVar8;\n  ulong uVar9;\n  ulong uVar10;\n  undefined8 uVar11;\n  ulong uVar12;\n  char *pcVar13;\n  char *pcVar14;\n  int iVar15;\n  long in_FS_OFFSET;\n  undefined8 local_50;\n  ulong local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);\n  }\n  if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);\n  }\n  if (1 < param_2) {\n    uVar4 = 7;\n    if (1 < (byte)(*param_1 - 0x30U)) goto LAB_00172f95;\n    bVar1 = param_1[1];\n    uVar9 = (ulong)bVar1;\n    uVar12 = 2;\n    if ((char)bVar1 < '\0') {\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar10 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar10 + 2;\n      if (param_2 < uVar12) goto LAB_00172f95;\n      uVar4 = 0;\n      uVar6 = bVar1 & 7;\n      pcVar14 = param_1;\n      if ((bVar1 & 7) != 0) {\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }\n      do {\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      } while (pcVar13 != param_1 + uVar10);\n    }\nLAB_00172dda:\n    uVar4 = 7;\n    if (param_2 < uVar12 + uVar9) goto LAB_00172f95;\n    if (param_4 < 1) {\nLAB_00173790:\n      uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);\n      goto LAB_00172f95;\n    }\n    piVar5 = (int *)(param_3 + 0x58);\n    piVar8 = (int *)(param_3 + 0x18);\n    piVar7 = piVar5 + (ulong)(param_4 - 1) * 0x10;\n    uVar6 = (int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U & 7;\n    if (uVar6 == 0) goto LAB_00172e99;\n    if (uVar6 != 1) {\n      if (uVar6 != 2) {\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }\n      *piVar8 = 0;\n      piVar8 = piVar8 + 0x10;\n    }\n    *piVar8 = 0;\n    for (piVar8 = piVar8 + 0x10; piVar8 != piVar7; piVar8 = piVar8 + 0x80) {\nLAB_00172e99:\n      *piVar8 = 0;\n      piVar8[0x10] = 0;\n      piVar8[0x20] = 0;\n      piVar8[0x30] = 0;\n      piVar8[0x40] = 0;\n      piVar8[0x50] = 0;\n      piVar8[0x60] = 0;\n      piVar8[0x70] = 0;\n    }\n    iVar15 = 0;\nLAB_00172f1e:\n    do {\n      local_48 = 0;\n      piVar8 = (int *)((long)iVar15 * 0x40 + param_3);\n      local_50 = *(undefined8 *)(piVar8 + 4);\n      iVar3 = *piVar8;\n      puVar2 = *(undefined8 **)(piVar8 + 2);\n      if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;\n      if (iVar3 == 0) break;\n      switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (iVar3 != 0) goto LAB_00172f95;\n      uVar12 = uVar12 + local_48;\n      uVar9 = uVar9 - local_48;\nswitchD_00172f6d_caseD_14:\n      piVar8[6] = 1;\n      if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < param_4);\n    if (*(int *)(param_3 + 0x18) != 0) {\n      uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6;\n      uVar6 = (uint)uVar4 & 7;\n      piVar8 = piVar5;\n      if ((uVar4 & 7) == 0) goto LAB_00173282;\n      piVar8 = (int *)(param_3 + 0x98);\n      if (*piVar5 != 0) {\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }\n    }\n  }\nLAB_00172f90:\n  uVar4 = 7;\nLAB_00172f95:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return uVar4;\n}\n\n" (function_definition "ulong der_decode_sequence_ex(char *param_1,ulong param_2,long param_3,int param_4,int param_5)\n\n{\n  byte bVar1;\n  undefined8 *puVar2;\n  int iVar3;\n  ulong uVar4;\n  int *piVar5;\n  uint uVar6;\n  int *piVar7;\n  int *piVar8;\n  ulong uVar9;\n  ulong uVar10;\n  undefined8 uVar11;\n  ulong uVar12;\n  char *pcVar13;\n  char *pcVar14;\n  int iVar15;\n  long in_FS_OFFSET;\n  undefined8 local_50;\n  ulong local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);\n  }\n  if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);\n  }\n  if (1 < param_2) {\n    uVar4 = 7;\n    if (1 < (byte)(*param_1 - 0x30U)) goto LAB_00172f95;\n    bVar1 = param_1[1];\n    uVar9 = (ulong)bVar1;\n    uVar12 = 2;\n    if ((char)bVar1 < '\0') {\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar10 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar10 + 2;\n      if (param_2 < uVar12) goto LAB_00172f95;\n      uVar4 = 0;\n      uVar6 = bVar1 & 7;\n      pcVar14 = param_1;\n      if ((bVar1 & 7) != 0) {\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }\n      do {\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      } while (pcVar13 != param_1 + uVar10);\n    }\nLAB_00172dda:\n    uVar4 = 7;\n    if (param_2 < uVar12 + uVar9) goto LAB_00172f95;\n    if (param_4 < 1) {\nLAB_00173790:\n      uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);\n      goto LAB_00172f95;\n    }\n    piVar5 = (int *)(param_3 + 0x58);\n    piVar8 = (int *)(param_3 + 0x18);\n    piVar7 = piVar5 + (ulong)(param_4 - 1) * 0x10;\n    uVar6 = (int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U & 7;\n    if (uVar6 == 0) goto LAB_00172e99;\n    if (uVar6 != 1) {\n      if (uVar6 != 2) {\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }\n      *piVar8 = 0;\n      piVar8 = piVar8 + 0x10;\n    }\n    *piVar8 = 0;\n    for (piVar8 = piVar8 + 0x10; piVar8 != piVar7; piVar8 = piVar8 + 0x80) {\nLAB_00172e99:\n      *piVar8 = 0;\n      piVar8[0x10] = 0;\n      piVar8[0x20] = 0;\n      piVar8[0x30] = 0;\n      piVar8[0x40] = 0;\n      piVar8[0x50] = 0;\n      piVar8[0x60] = 0;\n      piVar8[0x70] = 0;\n    }\n    iVar15 = 0;\nLAB_00172f1e:\n    do {\n      local_48 = 0;\n      piVar8 = (int *)((long)iVar15 * 0x40 + param_3);\n      local_50 = *(undefined8 *)(piVar8 + 4);\n      iVar3 = *piVar8;\n      puVar2 = *(undefined8 **)(piVar8 + 2);\n      if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;\n      if (iVar3 == 0) break;\n      switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (iVar3 != 0) goto LAB_00172f95;\n      uVar12 = uVar12 + local_48;\n      uVar9 = uVar9 - local_48;\nswitchD_00172f6d_caseD_14:\n      piVar8[6] = 1;\n      if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < param_4);\n    if (*(int *)(param_3 + 0x18) != 0) {\n      uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6;\n      uVar6 = (uint)uVar4 & 7;\n      piVar8 = piVar5;\n      if ((uVar4 & 7) == 0) goto LAB_00173282;\n      piVar8 = (int *)(param_3 + 0x98);\n      if (*piVar5 != 0) {\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }\n    }\n  }\nLAB_00172f90:\n  uVar4 = 7;\nLAB_00172f95:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return uVar4;\n}" type_identifier (function_declarator "der_decode_sequence_ex(char *param_1,ulong param_2,long param_3,int param_4,int param_5)" identifier (parameter_list "(char *param_1,ulong param_2,long param_3,int param_4,int param_5)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "ulong param_2" type_identifier identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  undefined8 *puVar2;\n  int iVar3;\n  ulong uVar4;\n  int *piVar5;\n  uint uVar6;\n  int *piVar7;\n  int *piVar8;\n  ulong uVar9;\n  ulong uVar10;\n  undefined8 uVar11;\n  ulong uVar12;\n  char *pcVar13;\n  char *pcVar14;\n  int iVar15;\n  long in_FS_OFFSET;\n  undefined8 local_50;\n  ulong local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);\n  }\n  if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);\n  }\n  if (1 < param_2) {\n    uVar4 = 7;\n    if (1 < (byte)(*param_1 - 0x30U)) goto LAB_00172f95;\n    bVar1 = param_1[1];\n    uVar9 = (ulong)bVar1;\n    uVar12 = 2;\n    if ((char)bVar1 < '\0') {\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar10 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar10 + 2;\n      if (param_2 < uVar12) goto LAB_00172f95;\n      uVar4 = 0;\n      uVar6 = bVar1 & 7;\n      pcVar14 = param_1;\n      if ((bVar1 & 7) != 0) {\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }\n      do {\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      } while (pcVar13 != param_1 + uVar10);\n    }\nLAB_00172dda:\n    uVar4 = 7;\n    if (param_2 < uVar12 + uVar9) goto LAB_00172f95;\n    if (param_4 < 1) {\nLAB_00173790:\n      uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);\n      goto LAB_00172f95;\n    }\n    piVar5 = (int *)(param_3 + 0x58);\n    piVar8 = (int *)(param_3 + 0x18);\n    piVar7 = piVar5 + (ulong)(param_4 - 1) * 0x10;\n    uVar6 = (int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U & 7;\n    if (uVar6 == 0) goto LAB_00172e99;\n    if (uVar6 != 1) {\n      if (uVar6 != 2) {\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }\n      *piVar8 = 0;\n      piVar8 = piVar8 + 0x10;\n    }\n    *piVar8 = 0;\n    for (piVar8 = piVar8 + 0x10; piVar8 != piVar7; piVar8 = piVar8 + 0x80) {\nLAB_00172e99:\n      *piVar8 = 0;\n      piVar8[0x10] = 0;\n      piVar8[0x20] = 0;\n      piVar8[0x30] = 0;\n      piVar8[0x40] = 0;\n      piVar8[0x50] = 0;\n      piVar8[0x60] = 0;\n      piVar8[0x70] = 0;\n    }\n    iVar15 = 0;\nLAB_00172f1e:\n    do {\n      local_48 = 0;\n      piVar8 = (int *)((long)iVar15 * 0x40 + param_3);\n      local_50 = *(undefined8 *)(piVar8 + 4);\n      iVar3 = *piVar8;\n      puVar2 = *(undefined8 **)(piVar8 + 2);\n      if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;\n      if (iVar3 == 0) break;\n      switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (iVar3 != 0) goto LAB_00172f95;\n      uVar12 = uVar12 + local_48;\n      uVar9 = uVar9 - local_48;\nswitchD_00172f6d_caseD_14:\n      piVar8[6] = 1;\n      if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < param_4);\n    if (*(int *)(param_3 + 0x18) != 0) {\n      uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6;\n      uVar6 = (uint)uVar4 & 7;\n      piVar8 = piVar5;\n      if ((uVar4 & 7) == 0) goto LAB_00173282;\n      piVar8 = (int *)(param_3 + 0x98);\n      if (*piVar5 != 0) {\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }\n    }\n  }\nLAB_00172f90:\n  uVar4 = 7;\nLAB_00172f95:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return uVar4;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined8 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_50;" type_identifier identifier ;) (declaration "ulong local_48;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (param_1 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);\n  }" if (parenthesized_expression "(param_1 == (char *)0x0)" ( (binary_expression "param_1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);\n  }" { comment (expression_statement "crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);" (call_expression "crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24)" identifier (argument_list "("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24)" ( (string_literal ""in != NULL"" " string_content ") , (string_literal ""src/pk/asn1/der/sequence/der_decode_sequence_ex.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);\n  }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);\n  }" { comment (expression_statement "crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);" (call_expression "crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25)" identifier (argument_list "("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25)" ( (string_literal ""list != NULL"" " string_content ") , (string_literal ""src/pk/asn1/der/sequence/der_decode_sequence_ex.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (1 < param_2) {\n    uVar4 = 7;\n    if (1 < (byte)(*param_1 - 0x30U)) goto LAB_00172f95;\n    bVar1 = param_1[1];\n    uVar9 = (ulong)bVar1;\n    uVar12 = 2;\n    if ((char)bVar1 < '\0') {\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar10 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar10 + 2;\n      if (param_2 < uVar12) goto LAB_00172f95;\n      uVar4 = 0;\n      uVar6 = bVar1 & 7;\n      pcVar14 = param_1;\n      if ((bVar1 & 7) != 0) {\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }\n      do {\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      } while (pcVar13 != param_1 + uVar10);\n    }\nLAB_00172dda:\n    uVar4 = 7;\n    if (param_2 < uVar12 + uVar9) goto LAB_00172f95;\n    if (param_4 < 1) {\nLAB_00173790:\n      uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);\n      goto LAB_00172f95;\n    }\n    piVar5 = (int *)(param_3 + 0x58);\n    piVar8 = (int *)(param_3 + 0x18);\n    piVar7 = piVar5 + (ulong)(param_4 - 1) * 0x10;\n    uVar6 = (int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U & 7;\n    if (uVar6 == 0) goto LAB_00172e99;\n    if (uVar6 != 1) {\n      if (uVar6 != 2) {\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }\n      *piVar8 = 0;\n      piVar8 = piVar8 + 0x10;\n    }\n    *piVar8 = 0;\n    for (piVar8 = piVar8 + 0x10; piVar8 != piVar7; piVar8 = piVar8 + 0x80) {\nLAB_00172e99:\n      *piVar8 = 0;\n      piVar8[0x10] = 0;\n      piVar8[0x20] = 0;\n      piVar8[0x30] = 0;\n      piVar8[0x40] = 0;\n      piVar8[0x50] = 0;\n      piVar8[0x60] = 0;\n      piVar8[0x70] = 0;\n    }\n    iVar15 = 0;\nLAB_00172f1e:\n    do {\n      local_48 = 0;\n      piVar8 = (int *)((long)iVar15 * 0x40 + param_3);\n      local_50 = *(undefined8 *)(piVar8 + 4);\n      iVar3 = *piVar8;\n      puVar2 = *(undefined8 **)(piVar8 + 2);\n      if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;\n      if (iVar3 == 0) break;\n      switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (iVar3 != 0) goto LAB_00172f95;\n      uVar12 = uVar12 + local_48;\n      uVar9 = uVar9 - local_48;\nswitchD_00172f6d_caseD_14:\n      piVar8[6] = 1;\n      if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < param_4);\n    if (*(int *)(param_3 + 0x18) != 0) {\n      uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6;\n      uVar6 = (uint)uVar4 & 7;\n      piVar8 = piVar5;\n      if ((uVar4 & 7) == 0) goto LAB_00173282;\n      piVar8 = (int *)(param_3 + 0x98);\n      if (*piVar5 != 0) {\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(1 < param_2)" ( (binary_expression "1 < param_2" number_literal < identifier) )) (compound_statement "{\n    uVar4 = 7;\n    if (1 < (byte)(*param_1 - 0x30U)) goto LAB_00172f95;\n    bVar1 = param_1[1];\n    uVar9 = (ulong)bVar1;\n    uVar12 = 2;\n    if ((char)bVar1 < '\0') {\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar10 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar10 + 2;\n      if (param_2 < uVar12) goto LAB_00172f95;\n      uVar4 = 0;\n      uVar6 = bVar1 & 7;\n      pcVar14 = param_1;\n      if ((bVar1 & 7) != 0) {\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }\n      do {\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      } while (pcVar13 != param_1 + uVar10);\n    }\nLAB_00172dda:\n    uVar4 = 7;\n    if (param_2 < uVar12 + uVar9) goto LAB_00172f95;\n    if (param_4 < 1) {\nLAB_00173790:\n      uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);\n      goto LAB_00172f95;\n    }\n    piVar5 = (int *)(param_3 + 0x58);\n    piVar8 = (int *)(param_3 + 0x18);\n    piVar7 = piVar5 + (ulong)(param_4 - 1) * 0x10;\n    uVar6 = (int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U & 7;\n    if (uVar6 == 0) goto LAB_00172e99;\n    if (uVar6 != 1) {\n      if (uVar6 != 2) {\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }\n      *piVar8 = 0;\n      piVar8 = piVar8 + 0x10;\n    }\n    *piVar8 = 0;\n    for (piVar8 = piVar8 + 0x10; piVar8 != piVar7; piVar8 = piVar8 + 0x80) {\nLAB_00172e99:\n      *piVar8 = 0;\n      piVar8[0x10] = 0;\n      piVar8[0x20] = 0;\n      piVar8[0x30] = 0;\n      piVar8[0x40] = 0;\n      piVar8[0x50] = 0;\n      piVar8[0x60] = 0;\n      piVar8[0x70] = 0;\n    }\n    iVar15 = 0;\nLAB_00172f1e:\n    do {\n      local_48 = 0;\n      piVar8 = (int *)((long)iVar15 * 0x40 + param_3);\n      local_50 = *(undefined8 *)(piVar8 + 4);\n      iVar3 = *piVar8;\n      puVar2 = *(undefined8 **)(piVar8 + 2);\n      if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;\n      if (iVar3 == 0) break;\n      switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (iVar3 != 0) goto LAB_00172f95;\n      uVar12 = uVar12 + local_48;\n      uVar9 = uVar9 - local_48;\nswitchD_00172f6d_caseD_14:\n      piVar8[6] = 1;\n      if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < param_4);\n    if (*(int *)(param_3 + 0x18) != 0) {\n      uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6;\n      uVar6 = (uint)uVar4 & 7;\n      piVar8 = piVar5;\n      if ((uVar4 & 7) == 0) goto LAB_00173282;\n      piVar8 = (int *)(param_3 + 0x98);\n      if (*piVar5 != 0) {\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "uVar4 = 7;" (assignment_expression "uVar4 = 7" identifier = number_literal) ;) (if_statement "if (1 < (byte)(*param_1 - 0x30U)) goto LAB_00172f95;" if (parenthesized_expression "(1 < (byte)(*param_1 - 0x30U))" ( (binary_expression "1 < (byte)(*param_1 - 0x30U)" number_literal < (call_expression "(byte)(*param_1 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*param_1 - 0x30U)" ( (binary_expression "*param_1 - 0x30U" (pointer_expression "*param_1" * identifier) - number_literal) )))) )) (goto_statement "goto LAB_00172f95;" goto statement_identifier ;)) (expression_statement "bVar1 = param_1[1];" (assignment_expression "bVar1 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = (ulong)bVar1;" (assignment_expression "uVar9 = (ulong)bVar1" identifier = (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar12 = 2;" (assignment_expression "uVar12 = 2" identifier = number_literal) ;) (if_statement "if ((char)bVar1 < '\0') {\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar10 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar10 + 2;\n      if (param_2 < uVar12) goto LAB_00172f95;\n      uVar4 = 0;\n      uVar6 = bVar1 & 7;\n      pcVar14 = param_1;\n      if ((bVar1 & 7) != 0) {\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }\n      do {\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      } while (pcVar13 != param_1 + uVar10);\n    }" if (parenthesized_expression "((char)bVar1 < '\0')" ( (binary_expression "(char)bVar1 < '\0'" (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar10 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar10 + 2;\n      if (param_2 < uVar12) goto LAB_00172f95;\n      uVar4 = 0;\n      uVar6 = bVar1 & 7;\n      pcVar14 = param_1;\n      if ((bVar1 & 7) != 0) {\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }\n      do {\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      } while (pcVar13 != param_1 + uVar10);\n    }" { (if_statement "if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;" if (parenthesized_expression "(2 < (byte)(bVar1 + 0x7f))" ( (binary_expression "2 < (byte)(bVar1 + 0x7f)" number_literal < (call_expression "(byte)(bVar1 + 0x7f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 + 0x7f)" ( (binary_expression "bVar1 + 0x7f" identifier + number_literal) )))) )) (goto_statement "goto LAB_00172f95;" goto statement_identifier ;)) (expression_statement "uVar10 = (ulong)(bVar1 & 0x7f);" (assignment_expression "uVar10 = (ulong)(bVar1 & 0x7f)" identifier = (call_expression "(ulong)(bVar1 & 0x7f)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(bVar1 & 0x7f)" ( (binary_expression "bVar1 & 0x7f" identifier & number_literal) )))) ;) (expression_statement "uVar12 = uVar10 + 2;" (assignment_expression "uVar12 = uVar10 + 2" identifier = (binary_expression "uVar10 + 2" identifier + number_literal)) ;) (if_statement "if (param_2 < uVar12) goto LAB_00172f95;" if (parenthesized_expression "(param_2 < uVar12)" ( (binary_expression "param_2 < uVar12" identifier < identifier) )) (goto_statement "goto LAB_00172f95;" goto statement_identifier ;)) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = bVar1 & 7;" (assignment_expression "uVar6 = bVar1 & 7" identifier = (binary_expression "bVar1 & 7" identifier & number_literal)) ;) (expression_statement "pcVar14 = param_1;" (assignment_expression "pcVar14 = param_1" identifier = identifier) ;) (if_statement "if ((bVar1 & 7) != 0) {\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }" if (parenthesized_expression "((bVar1 & 7) != 0)" ( (binary_expression "(bVar1 & 7) != 0" (parenthesized_expression "(bVar1 & 7)" ( (binary_expression "bVar1 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }" { (expression_statement "pcVar13 = param_1;" (assignment_expression "pcVar13 = param_1" identifier = identifier) ;) (if_statement "if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }" if (parenthesized_expression "(uVar6 != 1)" ( (binary_expression "uVar6 != 1" identifier != number_literal) )) (compound_statement "{\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }" { (if_statement "if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }" if (parenthesized_expression "(uVar6 != 2)" ( (binary_expression "uVar6 != 2" identifier != number_literal) )) (compound_statement "{\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }" { (if_statement "if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }" if (parenthesized_expression "(uVar6 != 3)" ( (binary_expression "uVar6 != 3" identifier != number_literal) )) (compound_statement "{\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }" { (if_statement "if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }" if (parenthesized_expression "(uVar6 != 4)" ( (binary_expression "uVar6 != 4" identifier != number_literal) )) (compound_statement "{\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }" { (if_statement "if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }" if (parenthesized_expression "(uVar6 != 5)" ( (binary_expression "uVar6 != 5" identifier != number_literal) )) (compound_statement "{\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }" { (if_statement "if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }" if (parenthesized_expression "(uVar6 != 6)" ( (binary_expression "uVar6 != 6" identifier != number_literal) )) (compound_statement "{\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }" { (expression_statement "uVar4 = (ulong)(byte)param_1[2];" (assignment_expression "uVar4 = (ulong)(byte)param_1[2]" identifier = (cast_expression "(ulong)(byte)param_1[2]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)param_1[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[2]" identifier [ number_literal ])))) ;) (expression_statement "pcVar14 = param_1 + 1;" (assignment_expression "pcVar14 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) })) (expression_statement "pcVar13 = pcVar14 + 1;" (assignment_expression "pcVar13 = pcVar14 + 1" identifier = (binary_expression "pcVar14 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];" (assignment_expression "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2]" identifier = (binary_expression "uVar4 << 8 | (ulong)(byte)pcVar14[2]" (binary_expression "uVar4 << 8" identifier << number_literal) | (cast_expression "(ulong)(byte)pcVar14[2]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)pcVar14[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar14[2]" identifier [ number_literal ]))))) ;) })) (expression_statement "pcVar14 = pcVar13 + 1;" (assignment_expression "pcVar14 = pcVar13 + 1" identifier = (binary_expression "pcVar13 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];" (assignment_expression "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2]" identifier = (binary_expression "uVar4 << 8 | (ulong)(byte)pcVar13[2]" (binary_expression "uVar4 << 8" identifier << number_literal) | (cast_expression "(ulong)(byte)pcVar13[2]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)pcVar13[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar13[2]" identifier [ number_literal ]))))) ;) })) (expression_statement "pcVar13 = pcVar14 + 1;" (assignment_expression "pcVar13 = pcVar14 + 1" identifier = (binary_expression "pcVar14 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];" (assignment_expression "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2]" identifier = (binary_expression "uVar4 << 8 | (ulong)(byte)pcVar14[2]" (binary_expression "uVar4 << 8" identifier << number_literal) | (cast_expression "(ulong)(byte)pcVar14[2]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)pcVar14[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar14[2]" identifier [ number_literal ]))))) ;) })) (expression_statement "pcVar14 = pcVar13 + 1;" (assignment_expression "pcVar14 = pcVar13 + 1" identifier = (binary_expression "pcVar13 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];" (assignment_expression "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2]" identifier = (binary_expression "uVar4 << 8 | (ulong)(byte)pcVar13[2]" (binary_expression "uVar4 << 8" identifier << number_literal) | (cast_expression "(ulong)(byte)pcVar13[2]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)pcVar13[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar13[2]" identifier [ number_literal ]))))) ;) })) (expression_statement "pcVar13 = pcVar14 + 1;" (assignment_expression "pcVar13 = pcVar14 + 1" identifier = (binary_expression "pcVar14 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];" (assignment_expression "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2]" identifier = (binary_expression "uVar4 << 8 | (ulong)(byte)pcVar14[2]" (binary_expression "uVar4 << 8" identifier << number_literal) | (cast_expression "(ulong)(byte)pcVar14[2]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)pcVar14[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar14[2]" identifier [ number_literal ]))))) ;) })) (expression_statement "uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];" (assignment_expression "uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2]" identifier = (binary_expression "uVar4 << 8 | (ulong)(byte)pcVar13[2]" (binary_expression "uVar4 << 8" identifier << number_literal) | (cast_expression "(ulong)(byte)pcVar13[2]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)pcVar13[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar13[2]" identifier [ number_literal ]))))) ;) (expression_statement "pcVar14 = pcVar13 + 1;" (assignment_expression "pcVar14 = pcVar13 + 1" identifier = (binary_expression "pcVar13 + 1" identifier + number_literal)) ;) (if_statement "if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;" if (parenthesized_expression "(pcVar13 + 1 == param_1 + uVar10)" ( (binary_expression "pcVar13 + 1 == param_1 + uVar10" (binary_expression "pcVar13 + 1" identifier + number_literal) == (binary_expression "param_1 + uVar10" identifier + identifier)) )) (goto_statement "goto LAB_00172dda;" goto statement_identifier ;)) })) (do_statement "do {\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      } while (pcVar13 != param_1 + uVar10);" do (compound_statement "{\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      }" { (expression_statement "pcVar13 = pcVar14 + 8;" (assignment_expression "pcVar13 = pcVar14 + 8" identifier = (binary_expression "pcVar14 + 8" identifier + number_literal)) ;) (expression_statement "uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);" (assignment_expression "uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9])" identifier = (call_expression "CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9])" identifier (argument_list "(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9])" ( (call_expression "CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13)" identifier (argument_list "(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13)" ( (call_expression "CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7])" identifier (argument_list "(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7])" ( (call_expression "CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6])" identifier (argument_list "(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6])" ( (call_expression "CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5])" identifier (argument_list "(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5])" ( (call_expression "CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4])" identifier (argument_list "(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4])" ( (call_expression "CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              )" identifier (argument_list "(pcVar14[2],pcVar14[3]\n                                                                              )" ( (subscript_expression "pcVar14[2]" identifier [ number_literal ]) , (subscript_expression "pcVar14[3]" identifier [ number_literal ]) ))) , (subscript_expression "pcVar14[4]" identifier [ number_literal ]) ))) , (subscript_expression "pcVar14[5]" identifier [ number_literal ]) ))) , (subscript_expression "pcVar14[6]" identifier [ number_literal ]) ))) , (subscript_expression "pcVar14[7]" identifier [ number_literal ]) ))) , (pointer_expression "*pcVar13" * identifier) ))) , (subscript_expression "pcVar14[9]" identifier [ number_literal ]) )))) ;) (expression_statement "pcVar14 = pcVar13;" (assignment_expression "pcVar14 = pcVar13" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar13 != param_1 + uVar10)" ( (binary_expression "pcVar13 != param_1 + uVar10" identifier != (binary_expression "param_1 + uVar10" identifier + identifier)) )) ;) })) (labeled_statement "LAB_00172dda:\n    uVar4 = 7;" statement_identifier : (expression_statement "uVar4 = 7;" (assignment_expression "uVar4 = 7" identifier = number_literal) ;)) (if_statement "if (param_2 < uVar12 + uVar9) goto LAB_00172f95;" if (parenthesized_expression "(param_2 < uVar12 + uVar9)" ( (binary_expression "param_2 < uVar12 + uVar9" identifier < (binary_expression "uVar12 + uVar9" identifier + identifier)) )) (goto_statement "goto LAB_00172f95;" goto statement_identifier ;)) (if_statement "if (param_4 < 1) {\nLAB_00173790:\n      uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);\n      goto LAB_00172f95;\n    }" if (parenthesized_expression "(param_4 < 1)" ( (binary_expression "param_4 < 1" identifier < number_literal) )) (compound_statement "{\nLAB_00173790:\n      uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);\n      goto LAB_00172f95;\n    }" { (labeled_statement "LAB_00173790:\n      uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);" statement_identifier : (expression_statement "uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);" (assignment_expression "uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15)" identifier = (call_expression "(ulong)(~-(uint)(uVar9 == 0) & 0x15)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(~-(uint)(uVar9 == 0) & 0x15)" ( (binary_expression "~-(uint)(uVar9 == 0) & 0x15" (unary_expression "~-(uint)(uVar9 == 0)" ~ (unary_expression "-(uint)(uVar9 == 0)" - (call_expression "(uint)(uVar9 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) ))))) & number_literal) )))) ;)) (goto_statement "goto LAB_00172f95;" goto statement_identifier ;) })) (expression_statement "piVar5 = (int *)(param_3 + 0x58);" (assignment_expression "piVar5 = (int *)(param_3 + 0x58)" identifier = (cast_expression "(int *)(param_3 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x58)" ( (binary_expression "param_3 + 0x58" identifier + number_literal) )))) ;) (expression_statement "piVar8 = (int *)(param_3 + 0x18);" (assignment_expression "piVar8 = (int *)(param_3 + 0x18)" identifier = (cast_expression "(int *)(param_3 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x18)" ( (binary_expression "param_3 + 0x18" identifier + number_literal) )))) ;) (expression_statement "piVar7 = piVar5 + (ulong)(param_4 - 1) * 0x10;" (assignment_expression "piVar7 = piVar5 + (ulong)(param_4 - 1) * 0x10" identifier = (binary_expression "piVar5 + (ulong)(param_4 - 1) * 0x10" identifier + (binary_expression "(ulong)(param_4 - 1) * 0x10" (call_expression "(ulong)(param_4 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(param_4 - 1)" ( (binary_expression "param_4 - 1" identifier - number_literal) ))) * number_literal))) ;) (expression_statement "uVar6 = (int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U & 7;" (assignment_expression "uVar6 = (int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U & 7" identifier = (binary_expression "(int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U & 7" (binary_expression "(int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U" (cast_expression "(int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6)" ( (binary_expression "(ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6" (call_expression "(ulong)((long)piVar7 + (-0x40 - (long)piVar8))" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)piVar7 + (-0x40 - (long)piVar8))" ( (binary_expression "(long)piVar7 + (-0x40 - (long)piVar8)" (cast_expression "(long)piVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(-0x40 - (long)piVar8)" ( (binary_expression "-0x40 - (long)piVar8" number_literal - (cast_expression "(long)piVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ))) >> number_literal) ))) + number_literal) & number_literal)) ;) (if_statement "if (uVar6 == 0) goto LAB_00172e99;" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00172e99;" goto statement_identifier ;)) (if_statement "if (uVar6 != 1) {\n      if (uVar6 != 2) {\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }\n      *piVar8 = 0;\n      piVar8 = piVar8 + 0x10;\n    }" if (parenthesized_expression "(uVar6 != 1)" ( (binary_expression "uVar6 != 1" identifier != number_literal) )) (compound_statement "{\n      if (uVar6 != 2) {\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }\n      *piVar8 = 0;\n      piVar8 = piVar8 + 0x10;\n    }" { (if_statement "if (uVar6 != 2) {\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }" if (parenthesized_expression "(uVar6 != 2)" ( (binary_expression "uVar6 != 2" identifier != number_literal) )) (compound_statement "{\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }" { (if_statement "if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }" if (parenthesized_expression "(uVar6 != 3)" ( (binary_expression "uVar6 != 3" identifier != number_literal) )) (compound_statement "{\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }" { (if_statement "if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }" if (parenthesized_expression "(uVar6 != 4)" ( (binary_expression "uVar6 != 4" identifier != number_literal) )) (compound_statement "{\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }" { (if_statement "if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }" if (parenthesized_expression "(uVar6 != 5)" ( (binary_expression "uVar6 != 5" identifier != number_literal) )) (compound_statement "{\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }" { (if_statement "if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }" if (parenthesized_expression "(uVar6 != 6)" ( (binary_expression "uVar6 != 6" identifier != number_literal) )) (compound_statement "{\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }" { (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "piVar8 = (int *)(param_3 + 0x58);" (assignment_expression "piVar8 = (int *)(param_3 + 0x58)" identifier = (cast_expression "(int *)(param_3 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x58)" ( (binary_expression "param_3 + 0x58" identifier + number_literal) )))) ;) })) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "piVar8 = piVar8 + 0x10;" (assignment_expression "piVar8 = piVar8 + 0x10" identifier = (binary_expression "piVar8 + 0x10" identifier + number_literal)) ;) })) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "piVar8 = piVar8 + 0x10;" (assignment_expression "piVar8 = piVar8 + 0x10" identifier = (binary_expression "piVar8 + 0x10" identifier + number_literal)) ;) })) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "piVar8 = piVar8 + 0x10;" (assignment_expression "piVar8 = piVar8 + 0x10" identifier = (binary_expression "piVar8 + 0x10" identifier + number_literal)) ;) })) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "piVar8 = piVar8 + 0x10;" (assignment_expression "piVar8 = piVar8 + 0x10" identifier = (binary_expression "piVar8 + 0x10" identifier + number_literal)) ;) })) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "piVar8 = piVar8 + 0x10;" (assignment_expression "piVar8 = piVar8 + 0x10" identifier = (binary_expression "piVar8 + 0x10" identifier + number_literal)) ;) })) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (for_statement "for (piVar8 = piVar8 + 0x10; piVar8 != piVar7; piVar8 = piVar8 + 0x80) {\nLAB_00172e99:\n      *piVar8 = 0;\n      piVar8[0x10] = 0;\n      piVar8[0x20] = 0;\n      piVar8[0x30] = 0;\n      piVar8[0x40] = 0;\n      piVar8[0x50] = 0;\n      piVar8[0x60] = 0;\n      piVar8[0x70] = 0;\n    }" for ( (assignment_expression "piVar8 = piVar8 + 0x10" identifier = (binary_expression "piVar8 + 0x10" identifier + number_literal)) ; (binary_expression "piVar8 != piVar7" identifier != identifier) ; (assignment_expression "piVar8 = piVar8 + 0x80" identifier = (binary_expression "piVar8 + 0x80" identifier + number_literal)) ) (compound_statement "{\nLAB_00172e99:\n      *piVar8 = 0;\n      piVar8[0x10] = 0;\n      piVar8[0x20] = 0;\n      piVar8[0x30] = 0;\n      piVar8[0x40] = 0;\n      piVar8[0x50] = 0;\n      piVar8[0x60] = 0;\n      piVar8[0x70] = 0;\n    }" { (labeled_statement "LAB_00172e99:\n      *piVar8 = 0;" statement_identifier : (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (expression_statement "piVar8[0x10] = 0;" (assignment_expression "piVar8[0x10] = 0" (subscript_expression "piVar8[0x10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x20] = 0;" (assignment_expression "piVar8[0x20] = 0" (subscript_expression "piVar8[0x20]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x30] = 0;" (assignment_expression "piVar8[0x30] = 0" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x40] = 0;" (assignment_expression "piVar8[0x40] = 0" (subscript_expression "piVar8[0x40]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x50] = 0;" (assignment_expression "piVar8[0x50] = 0" (subscript_expression "piVar8[0x50]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x60] = 0;" (assignment_expression "piVar8[0x60] = 0" (subscript_expression "piVar8[0x60]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x70] = 0;" (assignment_expression "piVar8[0x70] = 0" (subscript_expression "piVar8[0x70]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00172f1e:\n    do {\n      local_48 = 0;\n      piVar8 = (int *)((long)iVar15 * 0x40 + param_3);\n      local_50 = *(undefined8 *)(piVar8 + 4);\n      iVar3 = *piVar8;\n      puVar2 = *(undefined8 **)(piVar8 + 2);\n      if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;\n      if (iVar3 == 0) break;\n      switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (iVar3 != 0) goto LAB_00172f95;\n      uVar12 = uVar12 + local_48;\n      uVar9 = uVar9 - local_48;\nswitchD_00172f6d_caseD_14:\n      piVar8[6] = 1;\n      if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < param_4);" statement_identifier : (do_statement "do {\n      local_48 = 0;\n      piVar8 = (int *)((long)iVar15 * 0x40 + param_3);\n      local_50 = *(undefined8 *)(piVar8 + 4);\n      iVar3 = *piVar8;\n      puVar2 = *(undefined8 **)(piVar8 + 2);\n      if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;\n      if (iVar3 == 0) break;\n      switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (iVar3 != 0) goto LAB_00172f95;\n      uVar12 = uVar12 + local_48;\n      uVar9 = uVar9 - local_48;\nswitchD_00172f6d_caseD_14:\n      piVar8[6] = 1;\n      if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < param_4);" do (compound_statement "{\n      local_48 = 0;\n      piVar8 = (int *)((long)iVar15 * 0x40 + param_3);\n      local_50 = *(undefined8 *)(piVar8 + 4);\n      iVar3 = *piVar8;\n      puVar2 = *(undefined8 **)(piVar8 + 2);\n      if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;\n      if (iVar3 == 0) break;\n      switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (iVar3 != 0) goto LAB_00172f95;\n      uVar12 = uVar12 + local_48;\n      uVar9 = uVar9 - local_48;\nswitchD_00172f6d_caseD_14:\n      piVar8[6] = 1;\n      if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    }" { (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "piVar8 = (int *)((long)iVar15 * 0x40 + param_3);" (assignment_expression "piVar8 = (int *)((long)iVar15 * 0x40 + param_3)" identifier = (cast_expression "(int *)((long)iVar15 * 0x40 + param_3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)iVar15 * 0x40 + param_3)" ( (binary_expression "(long)iVar15 * 0x40 + param_3" (binary_expression "(long)iVar15 * 0x40" (cast_expression "(long)iVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) + identifier) )))) ;) (expression_statement "local_50 = *(undefined8 *)(piVar8 + 4);" (assignment_expression "local_50 = *(undefined8 *)(piVar8 + 4)" identifier = (pointer_expression "*(undefined8 *)(piVar8 + 4)" * (cast_expression "(undefined8 *)(piVar8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 4)" ( (binary_expression "piVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *piVar8;" (assignment_expression "iVar3 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "puVar2 = *(undefined8 **)(piVar8 + 2);" (assignment_expression "puVar2 = *(undefined8 **)(piVar8 + 2)" identifier = (pointer_expression "*(undefined8 **)(piVar8 + 2)" * (cast_expression "(undefined8 **)(piVar8 + 2)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8 + 2)" ( (binary_expression "piVar8 + 2" identifier + number_literal) ))))) ;) (if_statement "if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;" if (parenthesized_expression "((param_5 == 0) && (piVar8[6] == 1))" ( (binary_expression "(param_5 == 0) && (piVar8[6] == 1)" (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) && (parenthesized_expression "(piVar8[6] == 1)" ( (binary_expression "piVar8[6] == 1" (subscript_expression "piVar8[6]" identifier [ number_literal ]) == number_literal) ))) )) (goto_statement "goto LAB_001731b1;" goto statement_identifier ;)) (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (switch_statement "switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }" switch (parenthesized_expression "(iVar3)" ( identifier )) (compound_statement "{\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }" { (case_statement "case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);" (assignment_expression "uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2)" identifier = (call_expression "der_decode_boolean(param_1 + uVar12,uVar9,puVar2)" identifier (argument_list "(param_1 + uVar12,uVar9,puVar2)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , identifier , identifier )))) ;) (if_statement "if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }" if (parenthesized_expression "((int)uVar4 == 0)" ( (binary_expression "(int)uVar4 == 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }" { (expression_statement "uVar4 = der_length_boolean(&local_48);" (assignment_expression "uVar4 = der_length_boolean(&local_48)" identifier = (call_expression "der_length_boolean(&local_48)" identifier (argument_list "(&local_48)" ( (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;) })) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (case_statement "case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);" (assignment_expression "uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2)" identifier = (call_expression "der_decode_integer(param_1 + uVar12,uVar9,puVar2)" identifier (argument_list "(param_1 + uVar12,uVar9,puVar2)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , identifier , identifier )))) ;) (if_statement "if ((int)uVar4 != 0) goto LAB_001731a8;" if (parenthesized_expression "((int)uVar4 != 0)" ( (binary_expression "(int)uVar4 != 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (expression_statement "uVar4 = der_length_integer(puVar2,&local_48);" (assignment_expression "uVar4 = der_length_integer(puVar2,&local_48)" identifier = (call_expression "der_length_integer(puVar2,&local_48)" identifier (argument_list "(puVar2,&local_48)" ( identifier , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);" (assignment_expression "uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2)" identifier = (call_expression "der_decode_short_integer(param_1 + uVar12,uVar9,puVar2)" identifier (argument_list "(param_1 + uVar12,uVar9,puVar2)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , identifier , identifier )))) ;) (if_statement "if ((int)uVar4 != 0) goto LAB_001731a8;" if (parenthesized_expression "((int)uVar4 != 0)" ( (binary_expression "(int)uVar4 != 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (expression_statement "uVar4 = der_length_short_integer(*puVar2,&local_48);" (assignment_expression "uVar4 = der_length_short_integer(*puVar2,&local_48)" identifier = (call_expression "der_length_short_integer(*puVar2,&local_48)" identifier (argument_list "(*puVar2,&local_48)" ( (pointer_expression "*puVar2" * identifier) , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);" (assignment_expression "uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier = (call_expression "der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier (argument_list "(param_1 + uVar12,uVar9,puVar2,&local_50)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , identifier , identifier , (pointer_expression "&local_50" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto joined_r0x00173127;" goto statement_identifier ;)) (case_statement "case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);" (assignment_expression "uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier = (call_expression "der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier (argument_list "(param_1 + uVar12,uVar9,puVar2,&local_50)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , identifier , identifier , (pointer_expression "&local_50" & identifier) )))) ;) (if_statement "if ((int)uVar4 != 0) goto LAB_001731a8;" if (parenthesized_expression "((int)uVar4 != 0)" ( (binary_expression "(int)uVar4 != 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (expression_statement "*(undefined8 *)(piVar8 + 4) = local_50;" (assignment_expression "*(undefined8 *)(piVar8 + 4) = local_50" (pointer_expression "*(undefined8 *)(piVar8 + 4)" * (cast_expression "(undefined8 *)(piVar8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 4)" ( (binary_expression "piVar8 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = der_length_octet_string(local_50,&local_48);" (assignment_expression "uVar4 = der_length_octet_string(local_50,&local_48)" identifier = (call_expression "der_length_octet_string(local_50,&local_48)" identifier (argument_list "(local_50,&local_48)" ( identifier , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;" case number_literal : (if_statement "if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }" if (parenthesized_expression "(((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0'))" ( (binary_expression "((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')" (parenthesized_expression "((1 < uVar9) && (param_1[uVar12] == '\x05'))" ( (binary_expression "(1 < uVar9) && (param_1[uVar12] == '\x05')" (parenthesized_expression "(1 < uVar9)" ( (binary_expression "1 < uVar9" number_literal < identifier) )) && (parenthesized_expression "(param_1[uVar12] == '\x05')" ( (binary_expression "param_1[uVar12] == '\x05'" (subscript_expression "param_1[uVar12]" identifier [ identifier ]) == (char_literal "'\x05'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(param_1[uVar12 + 1] == '\0')" ( (binary_expression "param_1[uVar12 + 1] == '\0'" (subscript_expression "param_1[uVar12 + 1]" identifier [ (binary_expression "uVar12 + 1" identifier + number_literal) ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }" { (expression_statement "local_48 = 2;" (assignment_expression "local_48 = 2" identifier = number_literal) ;) (expression_statement "uVar12 = uVar12 + 2;" (assignment_expression "uVar12 = uVar12 + 2" identifier = (binary_expression "uVar12 + 2" identifier + number_literal)) ;) (expression_statement "uVar9 = uVar9 - 2;" (assignment_expression "uVar9 = uVar9 - 2" identifier = (binary_expression "uVar9 - 2" identifier - number_literal)) ;) (goto_statement "goto switchD_00172f6d_caseD_14;" goto statement_identifier ;) })) (if_statement "if (param_5 == 0) goto LAB_001731b1;" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001731b1;" goto statement_identifier ;)) (goto_statement "goto LAB_00172f90;" goto statement_identifier ;)) (case_statement "case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);" (assignment_expression "uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier = (call_expression "der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier (argument_list "(param_1 + uVar12,uVar9,puVar2,&local_50)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , identifier , identifier , (pointer_expression "&local_50" & identifier) )))) ;) (if_statement "if ((int)uVar4 != 0) goto LAB_001731a8;" if (parenthesized_expression "((int)uVar4 != 0)" ( (binary_expression "(int)uVar4 != 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (expression_statement "*(undefined8 *)(piVar8 + 4) = local_50;" (assignment_expression "*(undefined8 *)(piVar8 + 4) = local_50" (pointer_expression "*(undefined8 *)(piVar8 + 4)" * (cast_expression "(undefined8 *)(piVar8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 4)" ( (binary_expression "piVar8 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);" (assignment_expression "uVar4 = der_length_object_identifier(puVar2,local_50,&local_48)" identifier = (call_expression "der_length_object_identifier(puVar2,local_50,&local_48)" identifier (argument_list "(puVar2,local_50,&local_48)" ( identifier , identifier , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);" (assignment_expression "uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier = (call_expression "der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier (argument_list "(param_1 + uVar12,uVar9,puVar2,&local_50)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , identifier , identifier , (pointer_expression "&local_50" & identifier) )))) ;) (if_statement "if ((int)uVar4 != 0) goto LAB_001731a8;" if (parenthesized_expression "((int)uVar4 != 0)" ( (binary_expression "(int)uVar4 != 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (expression_statement "*(undefined8 *)(piVar8 + 4) = local_50;" (assignment_expression "*(undefined8 *)(piVar8 + 4) = local_50" (pointer_expression "*(undefined8 *)(piVar8 + 4)" * (cast_expression "(undefined8 *)(piVar8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 4)" ( (binary_expression "piVar8 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);" (assignment_expression "uVar4 = der_length_ia5_string(puVar2,local_50,&local_48)" identifier = (call_expression "der_length_ia5_string(puVar2,local_50,&local_48)" identifier (argument_list "(puVar2,local_50,&local_48)" ( identifier , identifier , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);" (assignment_expression "uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier = (call_expression "der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier (argument_list "(param_1 + uVar12,uVar9,puVar2,&local_50)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , identifier , identifier , (pointer_expression "&local_50" & identifier) )))) ;) (if_statement "if ((int)uVar4 != 0) goto LAB_001731a8;" if (parenthesized_expression "((int)uVar4 != 0)" ( (binary_expression "(int)uVar4 != 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (expression_statement "*(undefined8 *)(piVar8 + 4) = local_50;" (assignment_expression "*(undefined8 *)(piVar8 + 4) = local_50" (pointer_expression "*(undefined8 *)(piVar8 + 4)" * (cast_expression "(undefined8 *)(piVar8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 4)" ( (binary_expression "piVar8 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = der_length_printable_string(puVar2,local_50,&local_48);" (assignment_expression "uVar4 = der_length_printable_string(puVar2,local_50,&local_48)" identifier = (call_expression "der_length_printable_string(puVar2,local_50,&local_48)" identifier (argument_list "(puVar2,local_50,&local_48)" ( identifier , identifier , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);" (assignment_expression "uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier = (call_expression "der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier (argument_list "(param_1 + uVar12,uVar9,puVar2,&local_50)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , identifier , identifier , (pointer_expression "&local_50" & identifier) )))) ;) (if_statement "if ((int)uVar4 != 0) goto LAB_001731a8;" if (parenthesized_expression "((int)uVar4 != 0)" ( (binary_expression "(int)uVar4 != 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (expression_statement "*(undefined8 *)(piVar8 + 4) = local_50;" (assignment_expression "*(undefined8 *)(piVar8 + 4) = local_50" (pointer_expression "*(undefined8 *)(piVar8 + 4)" * (cast_expression "(undefined8 *)(piVar8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 4)" ( (binary_expression "piVar8 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);" (assignment_expression "uVar4 = der_length_utf8_string(puVar2,local_50,&local_48)" identifier = (call_expression "der_length_utf8_string(puVar2,local_50,&local_48)" identifier (argument_list "(puVar2,local_50,&local_48)" ( identifier , identifier , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);" (assignment_expression "uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2)" identifier = (call_expression "der_decode_utctime(param_1 + uVar12,&local_48,puVar2)" identifier (argument_list "(param_1 + uVar12,&local_48,puVar2)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , (pointer_expression "&local_48" & identifier) , identifier )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto joined_r0x0017339c;" goto statement_identifier ;)) (case_statement "case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);" (assignment_expression "uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2)" identifier = (call_expression "der_decode_choice(param_1 + uVar12,&local_48,puVar2)" identifier (argument_list "(param_1 + uVar12,&local_48,puVar2)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , (pointer_expression "&local_48" & identifier) , identifier )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto joined_r0x0017339c;" goto statement_identifier ;)) (case_statement "case 0xd:" case number_literal :) (case_statement "case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;" case number_literal : (if_statement "if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;" if (parenthesized_expression "(iVar3 == 0xf)" ( (binary_expression "iVar3 == 0xf" identifier == number_literal) )) (compound_statement "{\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }" { (if_statement "if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;" if (parenthesized_expression "((param_1[uVar12] & 0x3fU) != 0x31)" ( (binary_expression "(param_1[uVar12] & 0x3fU) != 0x31" (parenthesized_expression "(param_1[uVar12] & 0x3fU)" ( (binary_expression "param_1[uVar12] & 0x3fU" (subscript_expression "param_1[uVar12]" identifier [ identifier ]) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00172f90;" goto statement_identifier ;)) }) (else_clause "else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;" else (if_statement "if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;" if (parenthesized_expression "((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30))" ( (binary_expression "(iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)" (parenthesized_expression "(iVar3 == 0xd)" ( (binary_expression "iVar3 == 0xd" identifier == number_literal) )) && (parenthesized_expression "((param_1[uVar12] & 0x3fU) != 0x30)" ( (binary_expression "(param_1[uVar12] & 0x3fU) != 0x30" (parenthesized_expression "(param_1[uVar12] & 0x3fU)" ( (binary_expression "param_1[uVar12] & 0x3fU" (subscript_expression "param_1[uVar12]" identifier [ identifier ]) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_00172f90;" goto statement_identifier ;)))) (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00173181;" goto statement_identifier ;)) (case_statement "case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;" case number_literal : (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00173181:\n        local_48 = uVar9;" statement_identifier : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;)) (expression_statement "uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);" (assignment_expression "uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11)" identifier = (call_expression "der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11)" identifier (argument_list "(param_1 + uVar12,uVar9,puVar2,local_50,uVar11)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , identifier , identifier , identifier , identifier )))) ;) (if_statement "if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }" if (parenthesized_expression "((int)uVar4 == 0)" ( (binary_expression "(int)uVar4 == 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }" { (expression_statement "uVar4 = der_length_sequence(puVar2,local_50,&local_48);" (assignment_expression "uVar4 = der_length_sequence(puVar2,local_50,&local_48)" identifier = (call_expression "der_length_sequence(puVar2,local_50,&local_48)" identifier (argument_list "(puVar2,local_50,&local_48)" ( identifier , identifier , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;) })) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (case_statement "case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);" (assignment_expression "uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier = (call_expression "der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier (argument_list "(param_1 + uVar12,uVar9,puVar2,&local_50)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , identifier , identifier , (pointer_expression "&local_50" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (labeled_statement "joined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }" statement_identifier : (if_statement "if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }" { (expression_statement "*(undefined8 *)(piVar8 + 4) = local_50;" (assignment_expression "*(undefined8 *)(piVar8 + 4) = local_50" (pointer_expression "*(undefined8 *)(piVar8 + 4)" * (cast_expression "(undefined8 *)(piVar8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 4)" ( (binary_expression "piVar8 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = der_length_bit_string(local_50,&local_48);" (assignment_expression "uVar4 = der_length_bit_string(local_50,&local_48)" identifier = (call_expression "der_length_bit_string(local_50,&local_48)" identifier (argument_list "(local_50,&local_48)" ( identifier , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;) }))) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (case_statement "case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);" (assignment_expression "uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier = (call_expression "der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier (argument_list "(param_1 + uVar12,uVar9,puVar2,&local_50)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , identifier , identifier , (pointer_expression "&local_50" & identifier) )))) ;) (if_statement "if ((int)uVar4 != 0) goto LAB_001731a8;" if (parenthesized_expression "((int)uVar4 != 0)" ( (binary_expression "(int)uVar4 != 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (expression_statement "*(undefined8 *)(piVar8 + 4) = local_50;" (assignment_expression "*(undefined8 *)(piVar8 + 4) = local_50" (pointer_expression "*(undefined8 *)(piVar8 + 4)" * (cast_expression "(undefined8 *)(piVar8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 4)" ( (binary_expression "piVar8 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);" (assignment_expression "uVar4 = der_length_teletex_string(puVar2,local_50,&local_48)" identifier = (call_expression "der_length_teletex_string(puVar2,local_50,&local_48)" identifier (argument_list "(puVar2,local_50,&local_48)" ( identifier , identifier , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 0x12:" case number_literal :) (case_statement "case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;" case number_literal : (expression_statement "uVar4 = 0x10;" (assignment_expression "uVar4 = 0x10" identifier = number_literal) ;) (goto_statement "goto LAB_00172f95;" goto statement_identifier ;)) (case_statement "case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);" (assignment_expression "uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2)" identifier = (call_expression "der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2)" identifier (argument_list "(param_1 + uVar12,&local_48,puVar2)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , (pointer_expression "&local_48" & identifier) , identifier )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (labeled_statement "joined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }" statement_identifier : (if_statement "if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }" { (expression_statement "uVar12 = uVar12 + local_48;" (assignment_expression "uVar12 = uVar12 + local_48" identifier = (binary_expression "uVar12 + local_48" identifier + identifier)) ;) (expression_statement "uVar9 = uVar9 - local_48;" (assignment_expression "uVar9 = uVar9 - local_48" identifier = (binary_expression "uVar9 - local_48" identifier - identifier)) ;) (goto_statement "goto switchD_00172f6d_caseD_14;" goto statement_identifier ;) }))) (labeled_statement "LAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;" statement_identifier : (if_statement "if (param_5 == 0) goto LAB_001731b1;" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001731b1;" goto statement_identifier ;))) (goto_statement "goto LAB_00172f95;" goto statement_identifier ;)) (case_statement "default:\n        goto switchD_00172f6d_caseD_14;" default : (goto_statement "goto switchD_00172f6d_caseD_14;" goto statement_identifier ;)) })) (if_statement "if (iVar3 != 0) goto LAB_00172f95;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00172f95;" goto statement_identifier ;)) (expression_statement "uVar12 = uVar12 + local_48;" (assignment_expression "uVar12 = uVar12 + local_48" identifier = (binary_expression "uVar12 + local_48" identifier + identifier)) ;) (expression_statement "uVar9 = uVar9 - local_48;" (assignment_expression "uVar9 = uVar9 - local_48" identifier = (binary_expression "uVar9 - local_48" identifier - identifier)) ;) (labeled_statement "switchD_00172f6d_caseD_14:\n      piVar8[6] = 1;" statement_identifier : (expression_statement "piVar8[6] = 1;" (assignment_expression "piVar8[6] = 1" (subscript_expression "piVar8[6]" identifier [ number_literal ]) = number_literal) ;)) (if_statement "if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00172f1e;" goto statement_identifier ;) })) (labeled_statement "LAB_001731b1:\n      iVar15 = iVar15 + 1;" statement_identifier : (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "(iVar15 < param_4)" ( (binary_expression "iVar15 < param_4" identifier < identifier) )) ;)) (if_statement "if (*(int *)(param_3 + 0x18) != 0) {\n      uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6;\n      uVar6 = (uint)uVar4 & 7;\n      piVar8 = piVar5;\n      if ((uVar4 & 7) == 0) goto LAB_00173282;\n      piVar8 = (int *)(param_3 + 0x98);\n      if (*piVar5 != 0) {\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(*(int *)(param_3 + 0x18) != 0)" ( (binary_expression "*(int *)(param_3 + 0x18) != 0" (pointer_expression "*(int *)(param_3 + 0x18)" * (cast_expression "(int *)(param_3 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x18)" ( (binary_expression "param_3 + 0x18" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6;\n      uVar6 = (uint)uVar4 & 7;\n      piVar8 = piVar5;\n      if ((uVar4 & 7) == 0) goto LAB_00173282;\n      piVar8 = (int *)(param_3 + 0x98);\n      if (*piVar5 != 0) {\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }\n    }" { (expression_statement "uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6;" (assignment_expression "uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6" identifier = (binary_expression "(ulong)((long)piVar7 - (long)piVar5) >> 6" (call_expression "(ulong)((long)piVar7 - (long)piVar5)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)piVar7 - (long)piVar5)" ( (binary_expression "(long)piVar7 - (long)piVar5" (cast_expression "(long)piVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)piVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) >> number_literal)) ;) (expression_statement "uVar6 = (uint)uVar4 & 7;" (assignment_expression "uVar6 = (uint)uVar4 & 7" identifier = (binary_expression "(uint)uVar4 & 7" (cast_expression "(uint)uVar4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "piVar8 = piVar5;" (assignment_expression "piVar8 = piVar5" identifier = identifier) ;) (if_statement "if ((uVar4 & 7) == 0) goto LAB_00173282;" if (parenthesized_expression "((uVar4 & 7) == 0)" ( (binary_expression "(uVar4 & 7) == 0" (parenthesized_expression "(uVar4 & 7)" ( (binary_expression "uVar4 & 7" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00173282;" goto statement_identifier ;)) (expression_statement "piVar8 = (int *)(param_3 + 0x98);" (assignment_expression "piVar8 = (int *)(param_3 + 0x98)" identifier = (cast_expression "(int *)(param_3 + 0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x98)" ( (binary_expression "param_3 + 0x98" identifier + number_literal) )))) ;) (if_statement "if (*piVar5 != 0) {\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }" if (parenthesized_expression "(*piVar5 != 0)" ( (binary_expression "*piVar5 != 0" (pointer_expression "*piVar5" * identifier) != number_literal) )) (compound_statement "{\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }" { (if_statement "if (uVar6 == 1) goto LAB_00173282;" if (parenthesized_expression "(uVar6 == 1)" ( (binary_expression "uVar6 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00173282;" goto statement_identifier ;)) (expression_statement "piVar5 = piVar8;" (assignment_expression "piVar5 = piVar8" identifier = identifier) ;) (if_statement "if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }" if (parenthesized_expression "((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0))))" ( (binary_expression "(uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))" (parenthesized_expression "(uVar6 == 2)" ( (binary_expression "uVar6 == 2" identifier == number_literal) )) || (parenthesized_expression "(((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))" ( (parenthesized_expression "((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0))" ( (binary_expression "(uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)" (parenthesized_expression "(uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             ))" ( (binary_expression "uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )" (binary_expression "uVar6 == 3" identifier == number_literal) || (parenthesized_expression "(((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )" ( (parenthesized_expression "((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))" ( (binary_expression "(uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0)" (parenthesized_expression "(uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0))))" ( (binary_expression "uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))" (binary_expression "uVar6 == 4" identifier == number_literal) || (parenthesized_expression "(((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))" ( (parenthesized_expression "((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0))" ( (binary_expression "(uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)" (parenthesized_expression "(uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0))))" ( (binary_expression "uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))" (binary_expression "uVar6 == 5" identifier == number_literal) || (parenthesized_expression "(((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))" ( (parenthesized_expression "((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0))" ( (binary_expression "(uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)" (parenthesized_expression "(uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))" ( (binary_expression "uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0)" (binary_expression "uVar6 == 6" identifier == number_literal) || (parenthesized_expression "(piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0)" ( (comma_expression "piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0" (assignment_expression "piVar5 = (int *)(param_3 + 0xd8)" identifier = (cast_expression "(int *)(param_3 + 0xd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd8)" ( (binary_expression "param_3 + 0xd8" identifier + number_literal) )))) , (binary_expression "*(int *)(param_3 + 0x98) != 0" (pointer_expression "*(int *)(param_3 + 0x98)" * (cast_expression "(int *)(param_3 + 0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x98)" ( (binary_expression "param_3 + 0x98" identifier + number_literal) )))) != number_literal)) ))) )) && (parenthesized_expression "(piVar8 = piVar5 + 0x10, *piVar5 != 0)" ( (comma_expression "piVar8 = piVar5 + 0x10, *piVar5 != 0" (assignment_expression "piVar8 = piVar5 + 0x10" identifier = (binary_expression "piVar5 + 0x10" identifier + number_literal)) , (binary_expression "*piVar5 != 0" (pointer_expression "*piVar5" * identifier) != number_literal)) ))) )) ))) )) && (parenthesized_expression "(piVar5 = piVar8 + 0x10, *piVar8 != 0)" ( (comma_expression "piVar5 = piVar8 + 0x10, *piVar8 != 0" (assignment_expression "piVar5 = piVar8 + 0x10" identifier = (binary_expression "piVar8 + 0x10" identifier + number_literal)) , (binary_expression "*piVar8 != 0" (pointer_expression "*piVar8" * identifier) != number_literal)) ))) )) ))) )) && (parenthesized_expression "(piVar8 = piVar5 + 0x10, *piVar5 != 0)" ( (comma_expression "piVar8 = piVar5 + 0x10, *piVar5 != 0" (assignment_expression "piVar8 = piVar5 + 0x10" identifier = (binary_expression "piVar5 + 0x10" identifier + number_literal)) , (binary_expression "*piVar5 != 0" (pointer_expression "*piVar5" * identifier) != number_literal)) ))) )) ))) )) && (parenthesized_expression "(piVar5 = piVar8 + 0x10, *piVar8 != 0)" ( (comma_expression "piVar5 = piVar8 + 0x10, *piVar8 != 0" (assignment_expression "piVar5 = piVar8 + 0x10" identifier = (binary_expression "piVar8 + 0x10" identifier + number_literal)) , (binary_expression "*piVar8 != 0" (pointer_expression "*piVar8" * identifier) != number_literal)) ))) )) ))) )) (compound_statement "{\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }" { (expression_statement "iVar15 = *piVar5;" (assignment_expression "iVar15 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "piVar8 = piVar5 + 0x10;" (assignment_expression "piVar8 = piVar5 + 0x10" identifier = (binary_expression "piVar5 + 0x10" identifier + number_literal)) ;) (while_statement "while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }" while (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }" { (labeled_statement "LAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;" statement_identifier : (if_statement "if (piVar8 == piVar7) goto LAB_00173790;" if (parenthesized_expression "(piVar8 == piVar7)" ( (binary_expression "piVar8 == piVar7" identifier == identifier) )) (goto_statement "goto LAB_00173790;" goto statement_identifier ;))) (if_statement "if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;" if (parenthesized_expression "(((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0))))" ( (binary_expression "((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))" (parenthesized_expression "((*piVar8 == 0) || (piVar8[0x10] == 0))" ( (binary_expression "(*piVar8 == 0) || (piVar8[0x10] == 0)" (parenthesized_expression "(*piVar8 == 0)" ( (binary_expression "*piVar8 == 0" (pointer_expression "*piVar8" * identifier) == number_literal) )) || (parenthesized_expression "(piVar8[0x10] == 0)" ( (binary_expression "piVar8[0x10] == 0" (subscript_expression "piVar8[0x10]" identifier [ number_literal ]) == number_literal) ))) )) || (parenthesized_expression "(((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))" ( (parenthesized_expression "((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0))" ( (binary_expression "(piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)" (parenthesized_expression "(piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0))))" ( (binary_expression "piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))" (binary_expression "piVar8[0x20] == 0" (subscript_expression "piVar8[0x20]" identifier [ number_literal ]) == number_literal) || (parenthesized_expression "(((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))" ( (parenthesized_expression "((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0))" ( (binary_expression "(piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)" (parenthesized_expression "(piVar8[0x30] == 0 || (piVar8[0x40] == 0))" ( (binary_expression "piVar8[0x30] == 0 || (piVar8[0x40] == 0)" (binary_expression "piVar8[0x30] == 0" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) == number_literal) || (parenthesized_expression "(piVar8[0x40] == 0)" ( (binary_expression "piVar8[0x40] == 0" (subscript_expression "piVar8[0x40]" identifier [ number_literal ]) == number_literal) ))) )) || (parenthesized_expression "(piVar8[0x50] == 0)" ( (binary_expression "piVar8[0x50] == 0" (subscript_expression "piVar8[0x50]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) || (parenthesized_expression "(piVar8[0x60] == 0)" ( (binary_expression "piVar8[0x60] == 0" (subscript_expression "piVar8[0x60]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = piVar8[0x70];" (assignment_expression "iVar15 = piVar8[0x70]" identifier = (subscript_expression "piVar8[0x70]" identifier [ number_literal ])) ;) (expression_statement "piVar8 = piVar8 + 0x80;" (assignment_expression "piVar8 = piVar8 + 0x80" identifier = (binary_expression "piVar8 + 0x80" identifier + number_literal)) ;) })) })) })) })) })) (labeled_statement "LAB_00172f90:\n  uVar4 = 7;" statement_identifier : (expression_statement "uVar4 = 7;" (assignment_expression "uVar4 = 7" identifier = number_literal) ;)) (labeled_statement "LAB_00172f95:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit "int der_decode_sequence_ex(uchar *in,ulong inlen,ltc_asn1_list *list,ulong outlen,int ordered)\n\n{\n  byte bVar1;\n  ltc_asn1_type lVar2;\n  ltc_asn1_list *list_00;\n  wchar_t wVar3;\n  int *piVar4;\n  int *piVar5;\n  int iVar6;\n  uint uVar7;\n  int *piVar8;\n  ltc_asn1_list *plVar9;\n  ulong uVar10;\n  int ordered_00;\n  ulong uVar11;\n  ulong uVar12;\n  uchar *puVar13;\n  uchar *puVar14;\n  int iVar15;\n  long in_FS_OFFSET;\n  ulong size;\n  ulong z;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (in == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);\n  }\n  if (list == (ltc_asn1_list *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);\n  }\n  if (1 < inlen) {\n    wVar3 = L'\a';\n    if (1 < (byte)(*in - 0x30)) goto LAB_00172f95;\n    bVar1 = in[1];\n    uVar10 = (ulong)bVar1;\n    uVar12 = 2;\n    if ((char)bVar1 < '\0') {\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar11 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar11 + 2;\n      if (inlen < uVar12) goto LAB_00172f95;\n      uVar10 = 0;\n      uVar7 = bVar1 & 7;\n      puVar14 = in;\n      if ((bVar1 & 7) != 0) {\n        puVar13 = in;\n        if (uVar7 != 1) {\n          if (uVar7 != 2) {\n            if (uVar7 != 3) {\n              if (uVar7 != 4) {\n                if (uVar7 != 5) {\n                  if (uVar7 != 6) {\n                    uVar10 = (ulong)in[2];\n                    puVar14 = in + 1;\n                  }\n                  puVar13 = puVar14 + 1;\n                  uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n                }\n                puVar14 = puVar13 + 1;\n                uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n              }\n              puVar13 = puVar14 + 1;\n              uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n            }\n            puVar14 = puVar13 + 1;\n            uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n          }\n          puVar13 = puVar14 + 1;\n          uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n        }\n        uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n        puVar14 = puVar13 + 1;\n        if (puVar13 + 1 == in + uVar11) goto LAB_00172dda;\n      }\n      do {\n        puVar13 = puVar14 + 8;\n        uVar10 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(puVar14[2],\n                                                                                puVar14[3]),\n                                                                       puVar14[4]),puVar14[5]),\n                                                     puVar14[6]),puVar14[7]),*puVar13),puVar14[9]);\n        puVar14 = puVar13;\n      } while (puVar13 != in + uVar11);\n    }\nLAB_00172dda:\n    wVar3 = L'\a';\n    if (inlen < uVar12 + uVar10) goto LAB_00172f95;\n    iVar6 = (int)outlen;\n    if (iVar6 < 1) {\nLAB_00173790:\n      wVar3 = ~-(uint)(uVar10 == 0) & 0x15;\n      goto LAB_00172f95;\n    }\n    piVar4 = &list[1].used;\n    piVar5 = &list->used;\n    piVar8 = piVar4 + (ulong)(iVar6 - 1) * 0x10;\n    uVar7 = (int)((ulong)((long)piVar8 + (-0x40 - (long)piVar5)) >> 6) + 1U & 7;\n    if (uVar7 == 0) goto LAB_00172e99;\n    if (uVar7 != 1) {\n      if (uVar7 != 2) {\n        if (uVar7 != 3) {\n          if (uVar7 != 4) {\n            if (uVar7 != 5) {\n              if (uVar7 != 6) {\n                *piVar5 = 0;\n                piVar5 = &list[1].used;\n              }\n              *piVar5 = 0;\n              piVar5 = piVar5 + 0x10;\n            }\n            *piVar5 = 0;\n            piVar5 = piVar5 + 0x10;\n          }\n          *piVar5 = 0;\n          piVar5 = piVar5 + 0x10;\n        }\n        *piVar5 = 0;\n        piVar5 = piVar5 + 0x10;\n      }\n      *piVar5 = 0;\n      piVar5 = piVar5 + 0x10;\n    }\n    *piVar5 = 0;\n    for (piVar5 = piVar5 + 0x10; piVar5 != piVar8; piVar5 = piVar5 + 0x80) {\nLAB_00172e99:\n      *piVar5 = 0;\n      piVar5[0x10] = 0;\n      piVar5[0x20] = 0;\n      piVar5[0x30] = 0;\n      piVar5[0x40] = 0;\n      piVar5[0x50] = 0;\n      piVar5[0x60] = 0;\n      piVar5[0x70] = 0;\n    }\n    iVar15 = 0;\nLAB_00172f1e:\n    do {\n      z = 0;\n      plVar9 = list + iVar15;\n      size = plVar9->size;\n      lVar2 = plVar9->type;\n      list_00 = (ltc_asn1_list *)plVar9->data;\n      if ((ordered == 0) && (plVar9->used == 1)) goto LAB_001731b1;\n      if (lVar2 == LTC_ASN1_EOL) break;\n      switch(lVar2) {\n      case LTC_ASN1_BOOLEAN:\n        z = uVar10;\n        wVar3 = der_decode_boolean(in + uVar12,uVar10,(int *)list_00);\n        if (wVar3 == L'\0') {\n          wVar3 = der_length_boolean(&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_INTEGER:\n        z = uVar10;\n        wVar3 = der_decode_integer(in + uVar12,uVar10,list_00);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        wVar3 = der_length_integer(list_00,&z);\n        break;\n      case LTC_ASN1_SHORT_INTEGER:\n        z = uVar10;\n        wVar3 = der_decode_short_integer(in + uVar12,uVar10,(ulong *)list_00);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        wVar3 = der_length_short_integer(*(ulong *)list_00,&z);\n        break;\n      case LTC_ASN1_BIT_STRING:\n        z = uVar10;\n        wVar3 = der_decode_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        goto joined_r0x00173127;\n      case LTC_ASN1_OCTET_STRING:\n        z = uVar10;\n        wVar3 = der_decode_octet_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_octet_string(size,&z);\n        break;\n      case LTC_ASN1_NULL:\n        if (((1 < uVar10) && (in[uVar12] == '\x05')) && (in[uVar12 + 1] == '\0')) {\n          z = 2;\n          uVar12 = uVar12 + 2;\n          uVar10 = uVar10 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (ordered == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case LTC_ASN1_OBJECT_IDENTIFIER:\n        z = uVar10;\n        wVar3 = der_decode_object_identifier(in + uVar12,uVar10,(ulong *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_object_identifier((ulong *)list_00,size,&z);\n        break;\n      case LTC_ASN1_IA5_STRING:\n        z = uVar10;\n        wVar3 = der_decode_ia5_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_ia5_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_PRINTABLE_STRING:\n        z = uVar10;\n        wVar3 = der_decode_printable_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_printable_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_UTF8_STRING:\n        z = uVar10;\n        wVar3 = der_decode_utf8_string(in + uVar12,uVar10,(wchar_t *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_utf8_string((wchar_t *)list_00,size,&z);\n        break;\n      case LTC_ASN1_UTCTIME:\n        z = uVar10;\n        wVar3 = der_decode_utctime(in + uVar12,&z,(ltc_utctime *)list_00);\n        goto joined_r0x0017339c;\n      case LTC_ASN1_CHOICE:\n        z = uVar10;\n        wVar3 = der_decode_choice(in + uVar12,&z,list_00,size);\n        goto joined_r0x0017339c;\n      case LTC_ASN1_SEQUENCE:\n      case LTC_ASN1_SETOF:\n        if (lVar2 == LTC_ASN1_SETOF) {\n          if ((in[uVar12] & 0x3f) != 0x31) goto LAB_00172f90;\n        }\n        else if ((lVar2 == LTC_ASN1_SEQUENCE) && ((in[uVar12] & 0x3f) != 0x30)) goto LAB_00172f90;\n        ordered_00 = 1;\n        goto LAB_00173181;\n      case LTC_ASN1_SET:\n        ordered_00 = 0;\nLAB_00173181:\n        z = uVar10;\n        wVar3 = der_decode_sequence_ex(in + uVar12,uVar10,list_00,size,ordered_00);\n        if (wVar3 == L'\0') {\n          wVar3 = der_length_sequence(list_00,size,&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_RAW_BIT_STRING:\n        z = uVar10;\n        wVar3 = der_decode_raw_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);\njoined_r0x00173127:\n        if (wVar3 == L'\0') {\n          plVar9->size = size;\n          wVar3 = der_length_bit_string(size,&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_TELETEX_STRING:\n        z = uVar10;\n        wVar3 = der_decode_teletex_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_teletex_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_CONSTRUCTED:\n      case LTC_ASN1_CONTEXT_SPECIFIC:\n        wVar3 = L'\x10';\n        goto LAB_00172f95;\n      case LTC_ASN1_GENERALIZEDTIME:\n        z = uVar10;\n        wVar3 = der_decode_generalizedtime(in + uVar12,&z,(ltc_generalizedtime *)list_00);\njoined_r0x0017339c:\n        if (wVar3 == L'\0') {\n          uVar12 = uVar12 + z;\n          uVar10 = uVar10 - z;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (ordered == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (wVar3 != L'\0') goto LAB_00172f95;\n      uVar12 = uVar12 + z;\n      uVar10 = uVar10 - z;\nswitchD_00172f6d_caseD_14:\n      plVar9->used = 1;\n      if (ordered == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < iVar6);\n    if (list->used != 0) {\n      uVar12 = (ulong)((long)piVar8 - (long)piVar4) >> 6;\n      uVar7 = (uint)uVar12 & 7;\n      piVar5 = piVar4;\n      if ((uVar12 & 7) == 0) goto LAB_00173282;\n      piVar5 = &list[2].used;\n      if (*piVar4 != 0) {\n        if (uVar7 == 1) goto LAB_00173282;\n        piVar4 = piVar5;\n        if ((uVar7 == 2) ||\n           (((uVar7 == 3 ||\n             (((uVar7 == 4 ||\n               (((uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&\n                (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) && (piVar5 = piVar4 + 0x10, *piVar4 != 0))\n             )) && (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) {\n          iVar6 = *piVar4;\n          piVar5 = piVar4 + 0x10;\n          while (iVar6 != 0) {\nLAB_00173282:\n            if (piVar5 == piVar8) goto LAB_00173790;\n            if (((*piVar5 == 0) || (piVar5[0x10] == 0)) ||\n               (((piVar5[0x20] == 0 ||\n                 (((piVar5[0x30] == 0 || (piVar5[0x40] == 0)) || (piVar5[0x50] == 0)))) ||\n                (piVar5[0x60] == 0)))) break;\n            iVar6 = piVar5[0x70];\n            piVar5 = piVar5 + 0x80;\n          }\n        }\n      }\n    }\n  }\nLAB_00172f90:\n  wVar3 = L'\a';\nLAB_00172f95:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return wVar3;\n}\n\n" (function_definition "int der_decode_sequence_ex(uchar *in,ulong inlen,ltc_asn1_list *list,ulong outlen,int ordered)\n\n{\n  byte bVar1;\n  ltc_asn1_type lVar2;\n  ltc_asn1_list *list_00;\n  wchar_t wVar3;\n  int *piVar4;\n  int *piVar5;\n  int iVar6;\n  uint uVar7;\n  int *piVar8;\n  ltc_asn1_list *plVar9;\n  ulong uVar10;\n  int ordered_00;\n  ulong uVar11;\n  ulong uVar12;\n  uchar *puVar13;\n  uchar *puVar14;\n  int iVar15;\n  long in_FS_OFFSET;\n  ulong size;\n  ulong z;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (in == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);\n  }\n  if (list == (ltc_asn1_list *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);\n  }\n  if (1 < inlen) {\n    wVar3 = L'\a';\n    if (1 < (byte)(*in - 0x30)) goto LAB_00172f95;\n    bVar1 = in[1];\n    uVar10 = (ulong)bVar1;\n    uVar12 = 2;\n    if ((char)bVar1 < '\0') {\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar11 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar11 + 2;\n      if (inlen < uVar12) goto LAB_00172f95;\n      uVar10 = 0;\n      uVar7 = bVar1 & 7;\n      puVar14 = in;\n      if ((bVar1 & 7) != 0) {\n        puVar13 = in;\n        if (uVar7 != 1) {\n          if (uVar7 != 2) {\n            if (uVar7 != 3) {\n              if (uVar7 != 4) {\n                if (uVar7 != 5) {\n                  if (uVar7 != 6) {\n                    uVar10 = (ulong)in[2];\n                    puVar14 = in + 1;\n                  }\n                  puVar13 = puVar14 + 1;\n                  uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n                }\n                puVar14 = puVar13 + 1;\n                uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n              }\n              puVar13 = puVar14 + 1;\n              uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n            }\n            puVar14 = puVar13 + 1;\n            uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n          }\n          puVar13 = puVar14 + 1;\n          uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n        }\n        uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n        puVar14 = puVar13 + 1;\n        if (puVar13 + 1 == in + uVar11) goto LAB_00172dda;\n      }\n      do {\n        puVar13 = puVar14 + 8;\n        uVar10 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(puVar14[2],\n                                                                                puVar14[3]),\n                                                                       puVar14[4]),puVar14[5]),\n                                                     puVar14[6]),puVar14[7]),*puVar13),puVar14[9]);\n        puVar14 = puVar13;\n      } while (puVar13 != in + uVar11);\n    }\nLAB_00172dda:\n    wVar3 = L'\a';\n    if (inlen < uVar12 + uVar10) goto LAB_00172f95;\n    iVar6 = (int)outlen;\n    if (iVar6 < 1) {\nLAB_00173790:\n      wVar3 = ~-(uint)(uVar10 == 0) & 0x15;\n      goto LAB_00172f95;\n    }\n    piVar4 = &list[1].used;\n    piVar5 = &list->used;\n    piVar8 = piVar4 + (ulong)(iVar6 - 1) * 0x10;\n    uVar7 = (int)((ulong)((long)piVar8 + (-0x40 - (long)piVar5)) >> 6) + 1U & 7;\n    if (uVar7 == 0) goto LAB_00172e99;\n    if (uVar7 != 1) {\n      if (uVar7 != 2) {\n        if (uVar7 != 3) {\n          if (uVar7 != 4) {\n            if (uVar7 != 5) {\n              if (uVar7 != 6) {\n                *piVar5 = 0;\n                piVar5 = &list[1].used;\n              }\n              *piVar5 = 0;\n              piVar5 = piVar5 + 0x10;\n            }\n            *piVar5 = 0;\n            piVar5 = piVar5 + 0x10;\n          }\n          *piVar5 = 0;\n          piVar5 = piVar5 + 0x10;\n        }\n        *piVar5 = 0;\n        piVar5 = piVar5 + 0x10;\n      }\n      *piVar5 = 0;\n      piVar5 = piVar5 + 0x10;\n    }\n    *piVar5 = 0;\n    for (piVar5 = piVar5 + 0x10; piVar5 != piVar8; piVar5 = piVar5 + 0x80) {\nLAB_00172e99:\n      *piVar5 = 0;\n      piVar5[0x10] = 0;\n      piVar5[0x20] = 0;\n      piVar5[0x30] = 0;\n      piVar5[0x40] = 0;\n      piVar5[0x50] = 0;\n      piVar5[0x60] = 0;\n      piVar5[0x70] = 0;\n    }\n    iVar15 = 0;\nLAB_00172f1e:\n    do {\n      z = 0;\n      plVar9 = list + iVar15;\n      size = plVar9->size;\n      lVar2 = plVar9->type;\n      list_00 = (ltc_asn1_list *)plVar9->data;\n      if ((ordered == 0) && (plVar9->used == 1)) goto LAB_001731b1;\n      if (lVar2 == LTC_ASN1_EOL) break;\n      switch(lVar2) {\n      case LTC_ASN1_BOOLEAN:\n        z = uVar10;\n        wVar3 = der_decode_boolean(in + uVar12,uVar10,(int *)list_00);\n        if (wVar3 == L'\0') {\n          wVar3 = der_length_boolean(&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_INTEGER:\n        z = uVar10;\n        wVar3 = der_decode_integer(in + uVar12,uVar10,list_00);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        wVar3 = der_length_integer(list_00,&z);\n        break;\n      case LTC_ASN1_SHORT_INTEGER:\n        z = uVar10;\n        wVar3 = der_decode_short_integer(in + uVar12,uVar10,(ulong *)list_00);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        wVar3 = der_length_short_integer(*(ulong *)list_00,&z);\n        break;\n      case LTC_ASN1_BIT_STRING:\n        z = uVar10;\n        wVar3 = der_decode_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        goto joined_r0x00173127;\n      case LTC_ASN1_OCTET_STRING:\n        z = uVar10;\n        wVar3 = der_decode_octet_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_octet_string(size,&z);\n        break;\n      case LTC_ASN1_NULL:\n        if (((1 < uVar10) && (in[uVar12] == '\x05')) && (in[uVar12 + 1] == '\0')) {\n          z = 2;\n          uVar12 = uVar12 + 2;\n          uVar10 = uVar10 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (ordered == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case LTC_ASN1_OBJECT_IDENTIFIER:\n        z = uVar10;\n        wVar3 = der_decode_object_identifier(in + uVar12,uVar10,(ulong *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_object_identifier((ulong *)list_00,size,&z);\n        break;\n      case LTC_ASN1_IA5_STRING:\n        z = uVar10;\n        wVar3 = der_decode_ia5_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_ia5_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_PRINTABLE_STRING:\n        z = uVar10;\n        wVar3 = der_decode_printable_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_printable_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_UTF8_STRING:\n        z = uVar10;\n        wVar3 = der_decode_utf8_string(in + uVar12,uVar10,(wchar_t *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_utf8_string((wchar_t *)list_00,size,&z);\n        break;\n      case LTC_ASN1_UTCTIME:\n        z = uVar10;\n        wVar3 = der_decode_utctime(in + uVar12,&z,(ltc_utctime *)list_00);\n        goto joined_r0x0017339c;\n      case LTC_ASN1_CHOICE:\n        z = uVar10;\n        wVar3 = der_decode_choice(in + uVar12,&z,list_00,size);\n        goto joined_r0x0017339c;\n      case LTC_ASN1_SEQUENCE:\n      case LTC_ASN1_SETOF:\n        if (lVar2 == LTC_ASN1_SETOF) {\n          if ((in[uVar12] & 0x3f) != 0x31) goto LAB_00172f90;\n        }\n        else if ((lVar2 == LTC_ASN1_SEQUENCE) && ((in[uVar12] & 0x3f) != 0x30)) goto LAB_00172f90;\n        ordered_00 = 1;\n        goto LAB_00173181;\n      case LTC_ASN1_SET:\n        ordered_00 = 0;\nLAB_00173181:\n        z = uVar10;\n        wVar3 = der_decode_sequence_ex(in + uVar12,uVar10,list_00,size,ordered_00);\n        if (wVar3 == L'\0') {\n          wVar3 = der_length_sequence(list_00,size,&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_RAW_BIT_STRING:\n        z = uVar10;\n        wVar3 = der_decode_raw_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);\njoined_r0x00173127:\n        if (wVar3 == L'\0') {\n          plVar9->size = size;\n          wVar3 = der_length_bit_string(size,&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_TELETEX_STRING:\n        z = uVar10;\n        wVar3 = der_decode_teletex_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_teletex_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_CONSTRUCTED:\n      case LTC_ASN1_CONTEXT_SPECIFIC:\n        wVar3 = L'\x10';\n        goto LAB_00172f95;\n      case LTC_ASN1_GENERALIZEDTIME:\n        z = uVar10;\n        wVar3 = der_decode_generalizedtime(in + uVar12,&z,(ltc_generalizedtime *)list_00);\njoined_r0x0017339c:\n        if (wVar3 == L'\0') {\n          uVar12 = uVar12 + z;\n          uVar10 = uVar10 - z;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (ordered == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (wVar3 != L'\0') goto LAB_00172f95;\n      uVar12 = uVar12 + z;\n      uVar10 = uVar10 - z;\nswitchD_00172f6d_caseD_14:\n      plVar9->used = 1;\n      if (ordered == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < iVar6);\n    if (list->used != 0) {\n      uVar12 = (ulong)((long)piVar8 - (long)piVar4) >> 6;\n      uVar7 = (uint)uVar12 & 7;\n      piVar5 = piVar4;\n      if ((uVar12 & 7) == 0) goto LAB_00173282;\n      piVar5 = &list[2].used;\n      if (*piVar4 != 0) {\n        if (uVar7 == 1) goto LAB_00173282;\n        piVar4 = piVar5;\n        if ((uVar7 == 2) ||\n           (((uVar7 == 3 ||\n             (((uVar7 == 4 ||\n               (((uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&\n                (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) && (piVar5 = piVar4 + 0x10, *piVar4 != 0))\n             )) && (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) {\n          iVar6 = *piVar4;\n          piVar5 = piVar4 + 0x10;\n          while (iVar6 != 0) {\nLAB_00173282:\n            if (piVar5 == piVar8) goto LAB_00173790;\n            if (((*piVar5 == 0) || (piVar5[0x10] == 0)) ||\n               (((piVar5[0x20] == 0 ||\n                 (((piVar5[0x30] == 0 || (piVar5[0x40] == 0)) || (piVar5[0x50] == 0)))) ||\n                (piVar5[0x60] == 0)))) break;\n            iVar6 = piVar5[0x70];\n            piVar5 = piVar5 + 0x80;\n          }\n        }\n      }\n    }\n  }\nLAB_00172f90:\n  wVar3 = L'\a';\nLAB_00172f95:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return wVar3;\n}" primitive_type (function_declarator "der_decode_sequence_ex(uchar *in,ulong inlen,ltc_asn1_list *list,ulong outlen,int ordered)" identifier (parameter_list "(uchar *in,ulong inlen,ltc_asn1_list *list,ulong outlen,int ordered)" ( (parameter_declaration "uchar *in" type_identifier (pointer_declarator "*in" * identifier)) , (parameter_declaration "ulong inlen" type_identifier identifier) , (parameter_declaration "ltc_asn1_list *list" type_identifier (pointer_declarator "*list" * identifier)) , (parameter_declaration "ulong outlen" type_identifier identifier) , (parameter_declaration "int ordered" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  ltc_asn1_type lVar2;\n  ltc_asn1_list *list_00;\n  wchar_t wVar3;\n  int *piVar4;\n  int *piVar5;\n  int iVar6;\n  uint uVar7;\n  int *piVar8;\n  ltc_asn1_list *plVar9;\n  ulong uVar10;\n  int ordered_00;\n  ulong uVar11;\n  ulong uVar12;\n  uchar *puVar13;\n  uchar *puVar14;\n  int iVar15;\n  long in_FS_OFFSET;\n  ulong size;\n  ulong z;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (in == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);\n  }\n  if (list == (ltc_asn1_list *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);\n  }\n  if (1 < inlen) {\n    wVar3 = L'\a';\n    if (1 < (byte)(*in - 0x30)) goto LAB_00172f95;\n    bVar1 = in[1];\n    uVar10 = (ulong)bVar1;\n    uVar12 = 2;\n    if ((char)bVar1 < '\0') {\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar11 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar11 + 2;\n      if (inlen < uVar12) goto LAB_00172f95;\n      uVar10 = 0;\n      uVar7 = bVar1 & 7;\n      puVar14 = in;\n      if ((bVar1 & 7) != 0) {\n        puVar13 = in;\n        if (uVar7 != 1) {\n          if (uVar7 != 2) {\n            if (uVar7 != 3) {\n              if (uVar7 != 4) {\n                if (uVar7 != 5) {\n                  if (uVar7 != 6) {\n                    uVar10 = (ulong)in[2];\n                    puVar14 = in + 1;\n                  }\n                  puVar13 = puVar14 + 1;\n                  uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n                }\n                puVar14 = puVar13 + 1;\n                uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n              }\n              puVar13 = puVar14 + 1;\n              uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n            }\n            puVar14 = puVar13 + 1;\n            uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n          }\n          puVar13 = puVar14 + 1;\n          uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n        }\n        uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n        puVar14 = puVar13 + 1;\n        if (puVar13 + 1 == in + uVar11) goto LAB_00172dda;\n      }\n      do {\n        puVar13 = puVar14 + 8;\n        uVar10 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(puVar14[2],\n                                                                                puVar14[3]),\n                                                                       puVar14[4]),puVar14[5]),\n                                                     puVar14[6]),puVar14[7]),*puVar13),puVar14[9]);\n        puVar14 = puVar13;\n      } while (puVar13 != in + uVar11);\n    }\nLAB_00172dda:\n    wVar3 = L'\a';\n    if (inlen < uVar12 + uVar10) goto LAB_00172f95;\n    iVar6 = (int)outlen;\n    if (iVar6 < 1) {\nLAB_00173790:\n      wVar3 = ~-(uint)(uVar10 == 0) & 0x15;\n      goto LAB_00172f95;\n    }\n    piVar4 = &list[1].used;\n    piVar5 = &list->used;\n    piVar8 = piVar4 + (ulong)(iVar6 - 1) * 0x10;\n    uVar7 = (int)((ulong)((long)piVar8 + (-0x40 - (long)piVar5)) >> 6) + 1U & 7;\n    if (uVar7 == 0) goto LAB_00172e99;\n    if (uVar7 != 1) {\n      if (uVar7 != 2) {\n        if (uVar7 != 3) {\n          if (uVar7 != 4) {\n            if (uVar7 != 5) {\n              if (uVar7 != 6) {\n                *piVar5 = 0;\n                piVar5 = &list[1].used;\n              }\n              *piVar5 = 0;\n              piVar5 = piVar5 + 0x10;\n            }\n            *piVar5 = 0;\n            piVar5 = piVar5 + 0x10;\n          }\n          *piVar5 = 0;\n          piVar5 = piVar5 + 0x10;\n        }\n        *piVar5 = 0;\n        piVar5 = piVar5 + 0x10;\n      }\n      *piVar5 = 0;\n      piVar5 = piVar5 + 0x10;\n    }\n    *piVar5 = 0;\n    for (piVar5 = piVar5 + 0x10; piVar5 != piVar8; piVar5 = piVar5 + 0x80) {\nLAB_00172e99:\n      *piVar5 = 0;\n      piVar5[0x10] = 0;\n      piVar5[0x20] = 0;\n      piVar5[0x30] = 0;\n      piVar5[0x40] = 0;\n      piVar5[0x50] = 0;\n      piVar5[0x60] = 0;\n      piVar5[0x70] = 0;\n    }\n    iVar15 = 0;\nLAB_00172f1e:\n    do {\n      z = 0;\n      plVar9 = list + iVar15;\n      size = plVar9->size;\n      lVar2 = plVar9->type;\n      list_00 = (ltc_asn1_list *)plVar9->data;\n      if ((ordered == 0) && (plVar9->used == 1)) goto LAB_001731b1;\n      if (lVar2 == LTC_ASN1_EOL) break;\n      switch(lVar2) {\n      case LTC_ASN1_BOOLEAN:\n        z = uVar10;\n        wVar3 = der_decode_boolean(in + uVar12,uVar10,(int *)list_00);\n        if (wVar3 == L'\0') {\n          wVar3 = der_length_boolean(&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_INTEGER:\n        z = uVar10;\n        wVar3 = der_decode_integer(in + uVar12,uVar10,list_00);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        wVar3 = der_length_integer(list_00,&z);\n        break;\n      case LTC_ASN1_SHORT_INTEGER:\n        z = uVar10;\n        wVar3 = der_decode_short_integer(in + uVar12,uVar10,(ulong *)list_00);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        wVar3 = der_length_short_integer(*(ulong *)list_00,&z);\n        break;\n      case LTC_ASN1_BIT_STRING:\n        z = uVar10;\n        wVar3 = der_decode_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        goto joined_r0x00173127;\n      case LTC_ASN1_OCTET_STRING:\n        z = uVar10;\n        wVar3 = der_decode_octet_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_octet_string(size,&z);\n        break;\n      case LTC_ASN1_NULL:\n        if (((1 < uVar10) && (in[uVar12] == '\x05')) && (in[uVar12 + 1] == '\0')) {\n          z = 2;\n          uVar12 = uVar12 + 2;\n          uVar10 = uVar10 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (ordered == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case LTC_ASN1_OBJECT_IDENTIFIER:\n        z = uVar10;\n        wVar3 = der_decode_object_identifier(in + uVar12,uVar10,(ulong *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_object_identifier((ulong *)list_00,size,&z);\n        break;\n      case LTC_ASN1_IA5_STRING:\n        z = uVar10;\n        wVar3 = der_decode_ia5_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_ia5_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_PRINTABLE_STRING:\n        z = uVar10;\n        wVar3 = der_decode_printable_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_printable_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_UTF8_STRING:\n        z = uVar10;\n        wVar3 = der_decode_utf8_string(in + uVar12,uVar10,(wchar_t *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_utf8_string((wchar_t *)list_00,size,&z);\n        break;\n      case LTC_ASN1_UTCTIME:\n        z = uVar10;\n        wVar3 = der_decode_utctime(in + uVar12,&z,(ltc_utctime *)list_00);\n        goto joined_r0x0017339c;\n      case LTC_ASN1_CHOICE:\n        z = uVar10;\n        wVar3 = der_decode_choice(in + uVar12,&z,list_00,size);\n        goto joined_r0x0017339c;\n      case LTC_ASN1_SEQUENCE:\n      case LTC_ASN1_SETOF:\n        if (lVar2 == LTC_ASN1_SETOF) {\n          if ((in[uVar12] & 0x3f) != 0x31) goto LAB_00172f90;\n        }\n        else if ((lVar2 == LTC_ASN1_SEQUENCE) && ((in[uVar12] & 0x3f) != 0x30)) goto LAB_00172f90;\n        ordered_00 = 1;\n        goto LAB_00173181;\n      case LTC_ASN1_SET:\n        ordered_00 = 0;\nLAB_00173181:\n        z = uVar10;\n        wVar3 = der_decode_sequence_ex(in + uVar12,uVar10,list_00,size,ordered_00);\n        if (wVar3 == L'\0') {\n          wVar3 = der_length_sequence(list_00,size,&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_RAW_BIT_STRING:\n        z = uVar10;\n        wVar3 = der_decode_raw_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);\njoined_r0x00173127:\n        if (wVar3 == L'\0') {\n          plVar9->size = size;\n          wVar3 = der_length_bit_string(size,&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_TELETEX_STRING:\n        z = uVar10;\n        wVar3 = der_decode_teletex_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_teletex_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_CONSTRUCTED:\n      case LTC_ASN1_CONTEXT_SPECIFIC:\n        wVar3 = L'\x10';\n        goto LAB_00172f95;\n      case LTC_ASN1_GENERALIZEDTIME:\n        z = uVar10;\n        wVar3 = der_decode_generalizedtime(in + uVar12,&z,(ltc_generalizedtime *)list_00);\njoined_r0x0017339c:\n        if (wVar3 == L'\0') {\n          uVar12 = uVar12 + z;\n          uVar10 = uVar10 - z;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (ordered == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (wVar3 != L'\0') goto LAB_00172f95;\n      uVar12 = uVar12 + z;\n      uVar10 = uVar10 - z;\nswitchD_00172f6d_caseD_14:\n      plVar9->used = 1;\n      if (ordered == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < iVar6);\n    if (list->used != 0) {\n      uVar12 = (ulong)((long)piVar8 - (long)piVar4) >> 6;\n      uVar7 = (uint)uVar12 & 7;\n      piVar5 = piVar4;\n      if ((uVar12 & 7) == 0) goto LAB_00173282;\n      piVar5 = &list[2].used;\n      if (*piVar4 != 0) {\n        if (uVar7 == 1) goto LAB_00173282;\n        piVar4 = piVar5;\n        if ((uVar7 == 2) ||\n           (((uVar7 == 3 ||\n             (((uVar7 == 4 ||\n               (((uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&\n                (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) && (piVar5 = piVar4 + 0x10, *piVar4 != 0))\n             )) && (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) {\n          iVar6 = *piVar4;\n          piVar5 = piVar4 + 0x10;\n          while (iVar6 != 0) {\nLAB_00173282:\n            if (piVar5 == piVar8) goto LAB_00173790;\n            if (((*piVar5 == 0) || (piVar5[0x10] == 0)) ||\n               (((piVar5[0x20] == 0 ||\n                 (((piVar5[0x30] == 0 || (piVar5[0x40] == 0)) || (piVar5[0x50] == 0)))) ||\n                (piVar5[0x60] == 0)))) break;\n            iVar6 = piVar5[0x70];\n            piVar5 = piVar5 + 0x80;\n          }\n        }\n      }\n    }\n  }\nLAB_00172f90:\n  wVar3 = L'\a';\nLAB_00172f95:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return wVar3;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "ltc_asn1_type lVar2;" type_identifier identifier ;) (declaration "ltc_asn1_list *list_00;" type_identifier (pointer_declarator "*list_00" * identifier) ;) (declaration "wchar_t wVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "ltc_asn1_list *plVar9;" type_identifier (pointer_declarator "*plVar9" * identifier) ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "int ordered_00;" primitive_type identifier ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "uchar *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uchar *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong size;" type_identifier identifier ;) (declaration "ulong z;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (in == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);\n  }" if (parenthesized_expression "(in == (uchar *)0x0)" ( (binary_expression "in == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);\n  }" { comment (expression_statement "crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);" (call_expression "crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24)" identifier (argument_list "("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24)" ( (string_literal ""in != NULL"" " string_content ") , (string_literal ""src/pk/asn1/der/sequence/der_decode_sequence_ex.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (list == (ltc_asn1_list *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);\n  }" if (parenthesized_expression "(list == (ltc_asn1_list *)0x0)" ( (binary_expression "list == (ltc_asn1_list *)0x0" identifier == (cast_expression "(ltc_asn1_list *)0x0" ( (type_descriptor "ltc_asn1_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);\n  }" { comment (expression_statement "crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);" (call_expression "crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25)" identifier (argument_list "("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25)" ( (string_literal ""list != NULL"" " string_content ") , (string_literal ""src/pk/asn1/der/sequence/der_decode_sequence_ex.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (1 < inlen) {\n    wVar3 = L'\a';\n    if (1 < (byte)(*in - 0x30)) goto LAB_00172f95;\n    bVar1 = in[1];\n    uVar10 = (ulong)bVar1;\n    uVar12 = 2;\n    if ((char)bVar1 < '\0') {\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar11 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar11 + 2;\n      if (inlen < uVar12) goto LAB_00172f95;\n      uVar10 = 0;\n      uVar7 = bVar1 & 7;\n      puVar14 = in;\n      if ((bVar1 & 7) != 0) {\n        puVar13 = in;\n        if (uVar7 != 1) {\n          if (uVar7 != 2) {\n            if (uVar7 != 3) {\n              if (uVar7 != 4) {\n                if (uVar7 != 5) {\n                  if (uVar7 != 6) {\n                    uVar10 = (ulong)in[2];\n                    puVar14 = in + 1;\n                  }\n                  puVar13 = puVar14 + 1;\n                  uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n                }\n                puVar14 = puVar13 + 1;\n                uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n              }\n              puVar13 = puVar14 + 1;\n              uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n            }\n            puVar14 = puVar13 + 1;\n            uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n          }\n          puVar13 = puVar14 + 1;\n          uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n        }\n        uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n        puVar14 = puVar13 + 1;\n        if (puVar13 + 1 == in + uVar11) goto LAB_00172dda;\n      }\n      do {\n        puVar13 = puVar14 + 8;\n        uVar10 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(puVar14[2],\n                                                                                puVar14[3]),\n                                                                       puVar14[4]),puVar14[5]),\n                                                     puVar14[6]),puVar14[7]),*puVar13),puVar14[9]);\n        puVar14 = puVar13;\n      } while (puVar13 != in + uVar11);\n    }\nLAB_00172dda:\n    wVar3 = L'\a';\n    if (inlen < uVar12 + uVar10) goto LAB_00172f95;\n    iVar6 = (int)outlen;\n    if (iVar6 < 1) {\nLAB_00173790:\n      wVar3 = ~-(uint)(uVar10 == 0) & 0x15;\n      goto LAB_00172f95;\n    }\n    piVar4 = &list[1].used;\n    piVar5 = &list->used;\n    piVar8 = piVar4 + (ulong)(iVar6 - 1) * 0x10;\n    uVar7 = (int)((ulong)((long)piVar8 + (-0x40 - (long)piVar5)) >> 6) + 1U & 7;\n    if (uVar7 == 0) goto LAB_00172e99;\n    if (uVar7 != 1) {\n      if (uVar7 != 2) {\n        if (uVar7 != 3) {\n          if (uVar7 != 4) {\n            if (uVar7 != 5) {\n              if (uVar7 != 6) {\n                *piVar5 = 0;\n                piVar5 = &list[1].used;\n              }\n              *piVar5 = 0;\n              piVar5 = piVar5 + 0x10;\n            }\n            *piVar5 = 0;\n            piVar5 = piVar5 + 0x10;\n          }\n          *piVar5 = 0;\n          piVar5 = piVar5 + 0x10;\n        }\n        *piVar5 = 0;\n        piVar5 = piVar5 + 0x10;\n      }\n      *piVar5 = 0;\n      piVar5 = piVar5 + 0x10;\n    }\n    *piVar5 = 0;\n    for (piVar5 = piVar5 + 0x10; piVar5 != piVar8; piVar5 = piVar5 + 0x80) {\nLAB_00172e99:\n      *piVar5 = 0;\n      piVar5[0x10] = 0;\n      piVar5[0x20] = 0;\n      piVar5[0x30] = 0;\n      piVar5[0x40] = 0;\n      piVar5[0x50] = 0;\n      piVar5[0x60] = 0;\n      piVar5[0x70] = 0;\n    }\n    iVar15 = 0;\nLAB_00172f1e:\n    do {\n      z = 0;\n      plVar9 = list + iVar15;\n      size = plVar9->size;\n      lVar2 = plVar9->type;\n      list_00 = (ltc_asn1_list *)plVar9->data;\n      if ((ordered == 0) && (plVar9->used == 1)) goto LAB_001731b1;\n      if (lVar2 == LTC_ASN1_EOL) break;\n      switch(lVar2) {\n      case LTC_ASN1_BOOLEAN:\n        z = uVar10;\n        wVar3 = der_decode_boolean(in + uVar12,uVar10,(int *)list_00);\n        if (wVar3 == L'\0') {\n          wVar3 = der_length_boolean(&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_INTEGER:\n        z = uVar10;\n        wVar3 = der_decode_integer(in + uVar12,uVar10,list_00);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        wVar3 = der_length_integer(list_00,&z);\n        break;\n      case LTC_ASN1_SHORT_INTEGER:\n        z = uVar10;\n        wVar3 = der_decode_short_integer(in + uVar12,uVar10,(ulong *)list_00);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        wVar3 = der_length_short_integer(*(ulong *)list_00,&z);\n        break;\n      case LTC_ASN1_BIT_STRING:\n        z = uVar10;\n        wVar3 = der_decode_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        goto joined_r0x00173127;\n      case LTC_ASN1_OCTET_STRING:\n        z = uVar10;\n        wVar3 = der_decode_octet_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_octet_string(size,&z);\n        break;\n      case LTC_ASN1_NULL:\n        if (((1 < uVar10) && (in[uVar12] == '\x05')) && (in[uVar12 + 1] == '\0')) {\n          z = 2;\n          uVar12 = uVar12 + 2;\n          uVar10 = uVar10 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (ordered == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case LTC_ASN1_OBJECT_IDENTIFIER:\n        z = uVar10;\n        wVar3 = der_decode_object_identifier(in + uVar12,uVar10,(ulong *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_object_identifier((ulong *)list_00,size,&z);\n        break;\n      case LTC_ASN1_IA5_STRING:\n        z = uVar10;\n        wVar3 = der_decode_ia5_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_ia5_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_PRINTABLE_STRING:\n        z = uVar10;\n        wVar3 = der_decode_printable_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_printable_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_UTF8_STRING:\n        z = uVar10;\n        wVar3 = der_decode_utf8_string(in + uVar12,uVar10,(wchar_t *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_utf8_string((wchar_t *)list_00,size,&z);\n        break;\n      case LTC_ASN1_UTCTIME:\n        z = uVar10;\n        wVar3 = der_decode_utctime(in + uVar12,&z,(ltc_utctime *)list_00);\n        goto joined_r0x0017339c;\n      case LTC_ASN1_CHOICE:\n        z = uVar10;\n        wVar3 = der_decode_choice(in + uVar12,&z,list_00,size);\n        goto joined_r0x0017339c;\n      case LTC_ASN1_SEQUENCE:\n      case LTC_ASN1_SETOF:\n        if (lVar2 == LTC_ASN1_SETOF) {\n          if ((in[uVar12] & 0x3f) != 0x31) goto LAB_00172f90;\n        }\n        else if ((lVar2 == LTC_ASN1_SEQUENCE) && ((in[uVar12] & 0x3f) != 0x30)) goto LAB_00172f90;\n        ordered_00 = 1;\n        goto LAB_00173181;\n      case LTC_ASN1_SET:\n        ordered_00 = 0;\nLAB_00173181:\n        z = uVar10;\n        wVar3 = der_decode_sequence_ex(in + uVar12,uVar10,list_00,size,ordered_00);\n        if (wVar3 == L'\0') {\n          wVar3 = der_length_sequence(list_00,size,&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_RAW_BIT_STRING:\n        z = uVar10;\n        wVar3 = der_decode_raw_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);\njoined_r0x00173127:\n        if (wVar3 == L'\0') {\n          plVar9->size = size;\n          wVar3 = der_length_bit_string(size,&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_TELETEX_STRING:\n        z = uVar10;\n        wVar3 = der_decode_teletex_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_teletex_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_CONSTRUCTED:\n      case LTC_ASN1_CONTEXT_SPECIFIC:\n        wVar3 = L'\x10';\n        goto LAB_00172f95;\n      case LTC_ASN1_GENERALIZEDTIME:\n        z = uVar10;\n        wVar3 = der_decode_generalizedtime(in + uVar12,&z,(ltc_generalizedtime *)list_00);\njoined_r0x0017339c:\n        if (wVar3 == L'\0') {\n          uVar12 = uVar12 + z;\n          uVar10 = uVar10 - z;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (ordered == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (wVar3 != L'\0') goto LAB_00172f95;\n      uVar12 = uVar12 + z;\n      uVar10 = uVar10 - z;\nswitchD_00172f6d_caseD_14:\n      plVar9->used = 1;\n      if (ordered == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < iVar6);\n    if (list->used != 0) {\n      uVar12 = (ulong)((long)piVar8 - (long)piVar4) >> 6;\n      uVar7 = (uint)uVar12 & 7;\n      piVar5 = piVar4;\n      if ((uVar12 & 7) == 0) goto LAB_00173282;\n      piVar5 = &list[2].used;\n      if (*piVar4 != 0) {\n        if (uVar7 == 1) goto LAB_00173282;\n        piVar4 = piVar5;\n        if ((uVar7 == 2) ||\n           (((uVar7 == 3 ||\n             (((uVar7 == 4 ||\n               (((uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&\n                (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) && (piVar5 = piVar4 + 0x10, *piVar4 != 0))\n             )) && (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) {\n          iVar6 = *piVar4;\n          piVar5 = piVar4 + 0x10;\n          while (iVar6 != 0) {\nLAB_00173282:\n            if (piVar5 == piVar8) goto LAB_00173790;\n            if (((*piVar5 == 0) || (piVar5[0x10] == 0)) ||\n               (((piVar5[0x20] == 0 ||\n                 (((piVar5[0x30] == 0 || (piVar5[0x40] == 0)) || (piVar5[0x50] == 0)))) ||\n                (piVar5[0x60] == 0)))) break;\n            iVar6 = piVar5[0x70];\n            piVar5 = piVar5 + 0x80;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(1 < inlen)" ( (binary_expression "1 < inlen" number_literal < identifier) )) (compound_statement "{\n    wVar3 = L'\a';\n    if (1 < (byte)(*in - 0x30)) goto LAB_00172f95;\n    bVar1 = in[1];\n    uVar10 = (ulong)bVar1;\n    uVar12 = 2;\n    if ((char)bVar1 < '\0') {\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar11 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar11 + 2;\n      if (inlen < uVar12) goto LAB_00172f95;\n      uVar10 = 0;\n      uVar7 = bVar1 & 7;\n      puVar14 = in;\n      if ((bVar1 & 7) != 0) {\n        puVar13 = in;\n        if (uVar7 != 1) {\n          if (uVar7 != 2) {\n            if (uVar7 != 3) {\n              if (uVar7 != 4) {\n                if (uVar7 != 5) {\n                  if (uVar7 != 6) {\n                    uVar10 = (ulong)in[2];\n                    puVar14 = in + 1;\n                  }\n                  puVar13 = puVar14 + 1;\n                  uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n                }\n                puVar14 = puVar13 + 1;\n                uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n              }\n              puVar13 = puVar14 + 1;\n              uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n            }\n            puVar14 = puVar13 + 1;\n            uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n          }\n          puVar13 = puVar14 + 1;\n          uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n        }\n        uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n        puVar14 = puVar13 + 1;\n        if (puVar13 + 1 == in + uVar11) goto LAB_00172dda;\n      }\n      do {\n        puVar13 = puVar14 + 8;\n        uVar10 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(puVar14[2],\n                                                                                puVar14[3]),\n                                                                       puVar14[4]),puVar14[5]),\n                                                     puVar14[6]),puVar14[7]),*puVar13),puVar14[9]);\n        puVar14 = puVar13;\n      } while (puVar13 != in + uVar11);\n    }\nLAB_00172dda:\n    wVar3 = L'\a';\n    if (inlen < uVar12 + uVar10) goto LAB_00172f95;\n    iVar6 = (int)outlen;\n    if (iVar6 < 1) {\nLAB_00173790:\n      wVar3 = ~-(uint)(uVar10 == 0) & 0x15;\n      goto LAB_00172f95;\n    }\n    piVar4 = &list[1].used;\n    piVar5 = &list->used;\n    piVar8 = piVar4 + (ulong)(iVar6 - 1) * 0x10;\n    uVar7 = (int)((ulong)((long)piVar8 + (-0x40 - (long)piVar5)) >> 6) + 1U & 7;\n    if (uVar7 == 0) goto LAB_00172e99;\n    if (uVar7 != 1) {\n      if (uVar7 != 2) {\n        if (uVar7 != 3) {\n          if (uVar7 != 4) {\n            if (uVar7 != 5) {\n              if (uVar7 != 6) {\n                *piVar5 = 0;\n                piVar5 = &list[1].used;\n              }\n              *piVar5 = 0;\n              piVar5 = piVar5 + 0x10;\n            }\n            *piVar5 = 0;\n            piVar5 = piVar5 + 0x10;\n          }\n          *piVar5 = 0;\n          piVar5 = piVar5 + 0x10;\n        }\n        *piVar5 = 0;\n        piVar5 = piVar5 + 0x10;\n      }\n      *piVar5 = 0;\n      piVar5 = piVar5 + 0x10;\n    }\n    *piVar5 = 0;\n    for (piVar5 = piVar5 + 0x10; piVar5 != piVar8; piVar5 = piVar5 + 0x80) {\nLAB_00172e99:\n      *piVar5 = 0;\n      piVar5[0x10] = 0;\n      piVar5[0x20] = 0;\n      piVar5[0x30] = 0;\n      piVar5[0x40] = 0;\n      piVar5[0x50] = 0;\n      piVar5[0x60] = 0;\n      piVar5[0x70] = 0;\n    }\n    iVar15 = 0;\nLAB_00172f1e:\n    do {\n      z = 0;\n      plVar9 = list + iVar15;\n      size = plVar9->size;\n      lVar2 = plVar9->type;\n      list_00 = (ltc_asn1_list *)plVar9->data;\n      if ((ordered == 0) && (plVar9->used == 1)) goto LAB_001731b1;\n      if (lVar2 == LTC_ASN1_EOL) break;\n      switch(lVar2) {\n      case LTC_ASN1_BOOLEAN:\n        z = uVar10;\n        wVar3 = der_decode_boolean(in + uVar12,uVar10,(int *)list_00);\n        if (wVar3 == L'\0') {\n          wVar3 = der_length_boolean(&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_INTEGER:\n        z = uVar10;\n        wVar3 = der_decode_integer(in + uVar12,uVar10,list_00);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        wVar3 = der_length_integer(list_00,&z);\n        break;\n      case LTC_ASN1_SHORT_INTEGER:\n        z = uVar10;\n        wVar3 = der_decode_short_integer(in + uVar12,uVar10,(ulong *)list_00);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        wVar3 = der_length_short_integer(*(ulong *)list_00,&z);\n        break;\n      case LTC_ASN1_BIT_STRING:\n        z = uVar10;\n        wVar3 = der_decode_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        goto joined_r0x00173127;\n      case LTC_ASN1_OCTET_STRING:\n        z = uVar10;\n        wVar3 = der_decode_octet_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_octet_string(size,&z);\n        break;\n      case LTC_ASN1_NULL:\n        if (((1 < uVar10) && (in[uVar12] == '\x05')) && (in[uVar12 + 1] == '\0')) {\n          z = 2;\n          uVar12 = uVar12 + 2;\n          uVar10 = uVar10 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (ordered == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case LTC_ASN1_OBJECT_IDENTIFIER:\n        z = uVar10;\n        wVar3 = der_decode_object_identifier(in + uVar12,uVar10,(ulong *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_object_identifier((ulong *)list_00,size,&z);\n        break;\n      case LTC_ASN1_IA5_STRING:\n        z = uVar10;\n        wVar3 = der_decode_ia5_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_ia5_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_PRINTABLE_STRING:\n        z = uVar10;\n        wVar3 = der_decode_printable_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_printable_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_UTF8_STRING:\n        z = uVar10;\n        wVar3 = der_decode_utf8_string(in + uVar12,uVar10,(wchar_t *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_utf8_string((wchar_t *)list_00,size,&z);\n        break;\n      case LTC_ASN1_UTCTIME:\n        z = uVar10;\n        wVar3 = der_decode_utctime(in + uVar12,&z,(ltc_utctime *)list_00);\n        goto joined_r0x0017339c;\n      case LTC_ASN1_CHOICE:\n        z = uVar10;\n        wVar3 = der_decode_choice(in + uVar12,&z,list_00,size);\n        goto joined_r0x0017339c;\n      case LTC_ASN1_SEQUENCE:\n      case LTC_ASN1_SETOF:\n        if (lVar2 == LTC_ASN1_SETOF) {\n          if ((in[uVar12] & 0x3f) != 0x31) goto LAB_00172f90;\n        }\n        else if ((lVar2 == LTC_ASN1_SEQUENCE) && ((in[uVar12] & 0x3f) != 0x30)) goto LAB_00172f90;\n        ordered_00 = 1;\n        goto LAB_00173181;\n      case LTC_ASN1_SET:\n        ordered_00 = 0;\nLAB_00173181:\n        z = uVar10;\n        wVar3 = der_decode_sequence_ex(in + uVar12,uVar10,list_00,size,ordered_00);\n        if (wVar3 == L'\0') {\n          wVar3 = der_length_sequence(list_00,size,&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_RAW_BIT_STRING:\n        z = uVar10;\n        wVar3 = der_decode_raw_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);\njoined_r0x00173127:\n        if (wVar3 == L'\0') {\n          plVar9->size = size;\n          wVar3 = der_length_bit_string(size,&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_TELETEX_STRING:\n        z = uVar10;\n        wVar3 = der_decode_teletex_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_teletex_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_CONSTRUCTED:\n      case LTC_ASN1_CONTEXT_SPECIFIC:\n        wVar3 = L'\x10';\n        goto LAB_00172f95;\n      case LTC_ASN1_GENERALIZEDTIME:\n        z = uVar10;\n        wVar3 = der_decode_generalizedtime(in + uVar12,&z,(ltc_generalizedtime *)list_00);\njoined_r0x0017339c:\n        if (wVar3 == L'\0') {\n          uVar12 = uVar12 + z;\n          uVar10 = uVar10 - z;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (ordered == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (wVar3 != L'\0') goto LAB_00172f95;\n      uVar12 = uVar12 + z;\n      uVar10 = uVar10 - z;\nswitchD_00172f6d_caseD_14:\n      plVar9->used = 1;\n      if (ordered == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < iVar6);\n    if (list->used != 0) {\n      uVar12 = (ulong)((long)piVar8 - (long)piVar4) >> 6;\n      uVar7 = (uint)uVar12 & 7;\n      piVar5 = piVar4;\n      if ((uVar12 & 7) == 0) goto LAB_00173282;\n      piVar5 = &list[2].used;\n      if (*piVar4 != 0) {\n        if (uVar7 == 1) goto LAB_00173282;\n        piVar4 = piVar5;\n        if ((uVar7 == 2) ||\n           (((uVar7 == 3 ||\n             (((uVar7 == 4 ||\n               (((uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&\n                (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) && (piVar5 = piVar4 + 0x10, *piVar4 != 0))\n             )) && (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) {\n          iVar6 = *piVar4;\n          piVar5 = piVar4 + 0x10;\n          while (iVar6 != 0) {\nLAB_00173282:\n            if (piVar5 == piVar8) goto LAB_00173790;\n            if (((*piVar5 == 0) || (piVar5[0x10] == 0)) ||\n               (((piVar5[0x20] == 0 ||\n                 (((piVar5[0x30] == 0 || (piVar5[0x40] == 0)) || (piVar5[0x50] == 0)))) ||\n                (piVar5[0x60] == 0)))) break;\n            iVar6 = piVar5[0x70];\n            piVar5 = piVar5 + 0x80;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "wVar3 = L'\a';" (assignment_expression "wVar3 = L'\a'" identifier = (char_literal "L'\a'" L' escape_sequence ')) ;) (if_statement "if (1 < (byte)(*in - 0x30)) goto LAB_00172f95;" if (parenthesized_expression "(1 < (byte)(*in - 0x30))" ( (binary_expression "1 < (byte)(*in - 0x30)" number_literal < (call_expression "(byte)(*in - 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*in - 0x30)" ( (binary_expression "*in - 0x30" (pointer_expression "*in" * identifier) - number_literal) )))) )) (goto_statement "goto LAB_00172f95;" goto statement_identifier ;)) (expression_statement "bVar1 = in[1];" (assignment_expression "bVar1 = in[1]" identifier = (subscript_expression "in[1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = (ulong)bVar1;" (assignment_expression "uVar10 = (ulong)bVar1" identifier = (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar12 = 2;" (assignment_expression "uVar12 = 2" identifier = number_literal) ;) (if_statement "if ((char)bVar1 < '\0') {\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar11 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar11 + 2;\n      if (inlen < uVar12) goto LAB_00172f95;\n      uVar10 = 0;\n      uVar7 = bVar1 & 7;\n      puVar14 = in;\n      if ((bVar1 & 7) != 0) {\n        puVar13 = in;\n        if (uVar7 != 1) {\n          if (uVar7 != 2) {\n            if (uVar7 != 3) {\n              if (uVar7 != 4) {\n                if (uVar7 != 5) {\n                  if (uVar7 != 6) {\n                    uVar10 = (ulong)in[2];\n                    puVar14 = in + 1;\n                  }\n                  puVar13 = puVar14 + 1;\n                  uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n                }\n                puVar14 = puVar13 + 1;\n                uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n              }\n              puVar13 = puVar14 + 1;\n              uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n            }\n            puVar14 = puVar13 + 1;\n            uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n          }\n          puVar13 = puVar14 + 1;\n          uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n        }\n        uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n        puVar14 = puVar13 + 1;\n        if (puVar13 + 1 == in + uVar11) goto LAB_00172dda;\n      }\n      do {\n        puVar13 = puVar14 + 8;\n        uVar10 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(puVar14[2],\n                                                                                puVar14[3]),\n                                                                       puVar14[4]),puVar14[5]),\n                                                     puVar14[6]),puVar14[7]),*puVar13),puVar14[9]);\n        puVar14 = puVar13;\n      } while (puVar13 != in + uVar11);\n    }" if (parenthesized_expression "((char)bVar1 < '\0')" ( (binary_expression "(char)bVar1 < '\0'" (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar11 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar11 + 2;\n      if (inlen < uVar12) goto LAB_00172f95;\n      uVar10 = 0;\n      uVar7 = bVar1 & 7;\n      puVar14 = in;\n      if ((bVar1 & 7) != 0) {\n        puVar13 = in;\n        if (uVar7 != 1) {\n          if (uVar7 != 2) {\n            if (uVar7 != 3) {\n              if (uVar7 != 4) {\n                if (uVar7 != 5) {\n                  if (uVar7 != 6) {\n                    uVar10 = (ulong)in[2];\n                    puVar14 = in + 1;\n                  }\n                  puVar13 = puVar14 + 1;\n                  uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n                }\n                puVar14 = puVar13 + 1;\n                uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n              }\n              puVar13 = puVar14 + 1;\n              uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n            }\n            puVar14 = puVar13 + 1;\n            uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n          }\n          puVar13 = puVar14 + 1;\n          uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n        }\n        uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n        puVar14 = puVar13 + 1;\n        if (puVar13 + 1 == in + uVar11) goto LAB_00172dda;\n      }\n      do {\n        puVar13 = puVar14 + 8;\n        uVar10 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(puVar14[2],\n                                                                                puVar14[3]),\n                                                                       puVar14[4]),puVar14[5]),\n                                                     puVar14[6]),puVar14[7]),*puVar13),puVar14[9]);\n        puVar14 = puVar13;\n      } while (puVar13 != in + uVar11);\n    }" { (if_statement "if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;" if (parenthesized_expression "(2 < (byte)(bVar1 + 0x7f))" ( (binary_expression "2 < (byte)(bVar1 + 0x7f)" number_literal < (call_expression "(byte)(bVar1 + 0x7f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 + 0x7f)" ( (binary_expression "bVar1 + 0x7f" identifier + number_literal) )))) )) (goto_statement "goto LAB_00172f95;" goto statement_identifier ;)) (expression_statement "uVar11 = (ulong)(bVar1 & 0x7f);" (assignment_expression "uVar11 = (ulong)(bVar1 & 0x7f)" identifier = (call_expression "(ulong)(bVar1 & 0x7f)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(bVar1 & 0x7f)" ( (binary_expression "bVar1 & 0x7f" identifier & number_literal) )))) ;) (expression_statement "uVar12 = uVar11 + 2;" (assignment_expression "uVar12 = uVar11 + 2" identifier = (binary_expression "uVar11 + 2" identifier + number_literal)) ;) (if_statement "if (inlen < uVar12) goto LAB_00172f95;" if (parenthesized_expression "(inlen < uVar12)" ( (binary_expression "inlen < uVar12" identifier < identifier) )) (goto_statement "goto LAB_00172f95;" goto statement_identifier ;)) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "uVar7 = bVar1 & 7;" (assignment_expression "uVar7 = bVar1 & 7" identifier = (binary_expression "bVar1 & 7" identifier & number_literal)) ;) (expression_statement "puVar14 = in;" (assignment_expression "puVar14 = in" identifier = identifier) ;) (if_statement "if ((bVar1 & 7) != 0) {\n        puVar13 = in;\n        if (uVar7 != 1) {\n          if (uVar7 != 2) {\n            if (uVar7 != 3) {\n              if (uVar7 != 4) {\n                if (uVar7 != 5) {\n                  if (uVar7 != 6) {\n                    uVar10 = (ulong)in[2];\n                    puVar14 = in + 1;\n                  }\n                  puVar13 = puVar14 + 1;\n                  uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n                }\n                puVar14 = puVar13 + 1;\n                uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n              }\n              puVar13 = puVar14 + 1;\n              uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n            }\n            puVar14 = puVar13 + 1;\n            uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n          }\n          puVar13 = puVar14 + 1;\n          uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n        }\n        uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n        puVar14 = puVar13 + 1;\n        if (puVar13 + 1 == in + uVar11) goto LAB_00172dda;\n      }" if (parenthesized_expression "((bVar1 & 7) != 0)" ( (binary_expression "(bVar1 & 7) != 0" (parenthesized_expression "(bVar1 & 7)" ( (binary_expression "bVar1 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        puVar13 = in;\n        if (uVar7 != 1) {\n          if (uVar7 != 2) {\n            if (uVar7 != 3) {\n              if (uVar7 != 4) {\n                if (uVar7 != 5) {\n                  if (uVar7 != 6) {\n                    uVar10 = (ulong)in[2];\n                    puVar14 = in + 1;\n                  }\n                  puVar13 = puVar14 + 1;\n                  uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n                }\n                puVar14 = puVar13 + 1;\n                uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n              }\n              puVar13 = puVar14 + 1;\n              uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n            }\n            puVar14 = puVar13 + 1;\n            uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n          }\n          puVar13 = puVar14 + 1;\n          uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n        }\n        uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n        puVar14 = puVar13 + 1;\n        if (puVar13 + 1 == in + uVar11) goto LAB_00172dda;\n      }" { (expression_statement "puVar13 = in;" (assignment_expression "puVar13 = in" identifier = identifier) ;) (if_statement "if (uVar7 != 1) {\n          if (uVar7 != 2) {\n            if (uVar7 != 3) {\n              if (uVar7 != 4) {\n                if (uVar7 != 5) {\n                  if (uVar7 != 6) {\n                    uVar10 = (ulong)in[2];\n                    puVar14 = in + 1;\n                  }\n                  puVar13 = puVar14 + 1;\n                  uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n                }\n                puVar14 = puVar13 + 1;\n                uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n              }\n              puVar13 = puVar14 + 1;\n              uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n            }\n            puVar14 = puVar13 + 1;\n            uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n          }\n          puVar13 = puVar14 + 1;\n          uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n        }" if (parenthesized_expression "(uVar7 != 1)" ( (binary_expression "uVar7 != 1" identifier != number_literal) )) (compound_statement "{\n          if (uVar7 != 2) {\n            if (uVar7 != 3) {\n              if (uVar7 != 4) {\n                if (uVar7 != 5) {\n                  if (uVar7 != 6) {\n                    uVar10 = (ulong)in[2];\n                    puVar14 = in + 1;\n                  }\n                  puVar13 = puVar14 + 1;\n                  uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n                }\n                puVar14 = puVar13 + 1;\n                uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n              }\n              puVar13 = puVar14 + 1;\n              uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n            }\n            puVar14 = puVar13 + 1;\n            uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n          }\n          puVar13 = puVar14 + 1;\n          uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n        }" { (if_statement "if (uVar7 != 2) {\n            if (uVar7 != 3) {\n              if (uVar7 != 4) {\n                if (uVar7 != 5) {\n                  if (uVar7 != 6) {\n                    uVar10 = (ulong)in[2];\n                    puVar14 = in + 1;\n                  }\n                  puVar13 = puVar14 + 1;\n                  uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n                }\n                puVar14 = puVar13 + 1;\n                uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n              }\n              puVar13 = puVar14 + 1;\n              uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n            }\n            puVar14 = puVar13 + 1;\n            uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n          }" if (parenthesized_expression "(uVar7 != 2)" ( (binary_expression "uVar7 != 2" identifier != number_literal) )) (compound_statement "{\n            if (uVar7 != 3) {\n              if (uVar7 != 4) {\n                if (uVar7 != 5) {\n                  if (uVar7 != 6) {\n                    uVar10 = (ulong)in[2];\n                    puVar14 = in + 1;\n                  }\n                  puVar13 = puVar14 + 1;\n                  uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n                }\n                puVar14 = puVar13 + 1;\n                uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n              }\n              puVar13 = puVar14 + 1;\n              uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n            }\n            puVar14 = puVar13 + 1;\n            uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n          }" { (if_statement "if (uVar7 != 3) {\n              if (uVar7 != 4) {\n                if (uVar7 != 5) {\n                  if (uVar7 != 6) {\n                    uVar10 = (ulong)in[2];\n                    puVar14 = in + 1;\n                  }\n                  puVar13 = puVar14 + 1;\n                  uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n                }\n                puVar14 = puVar13 + 1;\n                uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n              }\n              puVar13 = puVar14 + 1;\n              uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n            }" if (parenthesized_expression "(uVar7 != 3)" ( (binary_expression "uVar7 != 3" identifier != number_literal) )) (compound_statement "{\n              if (uVar7 != 4) {\n                if (uVar7 != 5) {\n                  if (uVar7 != 6) {\n                    uVar10 = (ulong)in[2];\n                    puVar14 = in + 1;\n                  }\n                  puVar13 = puVar14 + 1;\n                  uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n                }\n                puVar14 = puVar13 + 1;\n                uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n              }\n              puVar13 = puVar14 + 1;\n              uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n            }" { (if_statement "if (uVar7 != 4) {\n                if (uVar7 != 5) {\n                  if (uVar7 != 6) {\n                    uVar10 = (ulong)in[2];\n                    puVar14 = in + 1;\n                  }\n                  puVar13 = puVar14 + 1;\n                  uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n                }\n                puVar14 = puVar13 + 1;\n                uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n              }" if (parenthesized_expression "(uVar7 != 4)" ( (binary_expression "uVar7 != 4" identifier != number_literal) )) (compound_statement "{\n                if (uVar7 != 5) {\n                  if (uVar7 != 6) {\n                    uVar10 = (ulong)in[2];\n                    puVar14 = in + 1;\n                  }\n                  puVar13 = puVar14 + 1;\n                  uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n                }\n                puVar14 = puVar13 + 1;\n                uVar10 = uVar10 << 8 | (ulong)puVar13[2];\n              }" { (if_statement "if (uVar7 != 5) {\n                  if (uVar7 != 6) {\n                    uVar10 = (ulong)in[2];\n                    puVar14 = in + 1;\n                  }\n                  puVar13 = puVar14 + 1;\n                  uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n                }" if (parenthesized_expression "(uVar7 != 5)" ( (binary_expression "uVar7 != 5" identifier != number_literal) )) (compound_statement "{\n                  if (uVar7 != 6) {\n                    uVar10 = (ulong)in[2];\n                    puVar14 = in + 1;\n                  }\n                  puVar13 = puVar14 + 1;\n                  uVar10 = uVar10 << 8 | (ulong)puVar14[2];\n                }" { (if_statement "if (uVar7 != 6) {\n                    uVar10 = (ulong)in[2];\n                    puVar14 = in + 1;\n                  }" if (parenthesized_expression "(uVar7 != 6)" ( (binary_expression "uVar7 != 6" identifier != number_literal) )) (compound_statement "{\n                    uVar10 = (ulong)in[2];\n                    puVar14 = in + 1;\n                  }" { (expression_statement "uVar10 = (ulong)in[2];" (assignment_expression "uVar10 = (ulong)in[2]" identifier = (cast_expression "(ulong)in[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "in[2]" identifier [ number_literal ]))) ;) (expression_statement "puVar14 = in + 1;" (assignment_expression "puVar14 = in + 1" identifier = (binary_expression "in + 1" identifier + number_literal)) ;) })) (expression_statement "puVar13 = puVar14 + 1;" (assignment_expression "puVar13 = puVar14 + 1" identifier = (binary_expression "puVar14 + 1" identifier + number_literal)) ;) (expression_statement "uVar10 = uVar10 << 8 | (ulong)puVar14[2];" (assignment_expression "uVar10 = uVar10 << 8 | (ulong)puVar14[2]" identifier = (binary_expression "uVar10 << 8 | (ulong)puVar14[2]" (binary_expression "uVar10 << 8" identifier << number_literal) | (cast_expression "(ulong)puVar14[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar14[2]" identifier [ number_literal ])))) ;) })) (expression_statement "puVar14 = puVar13 + 1;" (assignment_expression "puVar14 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) (expression_statement "uVar10 = uVar10 << 8 | (ulong)puVar13[2];" (assignment_expression "uVar10 = uVar10 << 8 | (ulong)puVar13[2]" identifier = (binary_expression "uVar10 << 8 | (ulong)puVar13[2]" (binary_expression "uVar10 << 8" identifier << number_literal) | (cast_expression "(ulong)puVar13[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar13[2]" identifier [ number_literal ])))) ;) })) (expression_statement "puVar13 = puVar14 + 1;" (assignment_expression "puVar13 = puVar14 + 1" identifier = (binary_expression "puVar14 + 1" identifier + number_literal)) ;) (expression_statement "uVar10 = uVar10 << 8 | (ulong)puVar14[2];" (assignment_expression "uVar10 = uVar10 << 8 | (ulong)puVar14[2]" identifier = (binary_expression "uVar10 << 8 | (ulong)puVar14[2]" (binary_expression "uVar10 << 8" identifier << number_literal) | (cast_expression "(ulong)puVar14[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar14[2]" identifier [ number_literal ])))) ;) })) (expression_statement "puVar14 = puVar13 + 1;" (assignment_expression "puVar14 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) (expression_statement "uVar10 = uVar10 << 8 | (ulong)puVar13[2];" (assignment_expression "uVar10 = uVar10 << 8 | (ulong)puVar13[2]" identifier = (binary_expression "uVar10 << 8 | (ulong)puVar13[2]" (binary_expression "uVar10 << 8" identifier << number_literal) | (cast_expression "(ulong)puVar13[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar13[2]" identifier [ number_literal ])))) ;) })) (expression_statement "puVar13 = puVar14 + 1;" (assignment_expression "puVar13 = puVar14 + 1" identifier = (binary_expression "puVar14 + 1" identifier + number_literal)) ;) (expression_statement "uVar10 = uVar10 << 8 | (ulong)puVar14[2];" (assignment_expression "uVar10 = uVar10 << 8 | (ulong)puVar14[2]" identifier = (binary_expression "uVar10 << 8 | (ulong)puVar14[2]" (binary_expression "uVar10 << 8" identifier << number_literal) | (cast_expression "(ulong)puVar14[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar14[2]" identifier [ number_literal ])))) ;) })) (expression_statement "uVar10 = uVar10 << 8 | (ulong)puVar13[2];" (assignment_expression "uVar10 = uVar10 << 8 | (ulong)puVar13[2]" identifier = (binary_expression "uVar10 << 8 | (ulong)puVar13[2]" (binary_expression "uVar10 << 8" identifier << number_literal) | (cast_expression "(ulong)puVar13[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar13[2]" identifier [ number_literal ])))) ;) (expression_statement "puVar14 = puVar13 + 1;" (assignment_expression "puVar14 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) (if_statement "if (puVar13 + 1 == in + uVar11) goto LAB_00172dda;" if (parenthesized_expression "(puVar13 + 1 == in + uVar11)" ( (binary_expression "puVar13 + 1 == in + uVar11" (binary_expression "puVar13 + 1" identifier + number_literal) == (binary_expression "in + uVar11" identifier + identifier)) )) (goto_statement "goto LAB_00172dda;" goto statement_identifier ;)) })) (do_statement "do {\n        puVar13 = puVar14 + 8;\n        uVar10 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(puVar14[2],\n                                                                                puVar14[3]),\n                                                                       puVar14[4]),puVar14[5]),\n                                                     puVar14[6]),puVar14[7]),*puVar13),puVar14[9]);\n        puVar14 = puVar13;\n      } while (puVar13 != in + uVar11);" do (compound_statement "{\n        puVar13 = puVar14 + 8;\n        uVar10 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(puVar14[2],\n                                                                                puVar14[3]),\n                                                                       puVar14[4]),puVar14[5]),\n                                                     puVar14[6]),puVar14[7]),*puVar13),puVar14[9]);\n        puVar14 = puVar13;\n      }" { (expression_statement "puVar13 = puVar14 + 8;" (assignment_expression "puVar13 = puVar14 + 8" identifier = (binary_expression "puVar14 + 8" identifier + number_literal)) ;) (expression_statement "uVar10 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(puVar14[2],\n                                                                                puVar14[3]),\n                                                                       puVar14[4]),puVar14[5]),\n                                                     puVar14[6]),puVar14[7]),*puVar13),puVar14[9]);" (assignment_expression "uVar10 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(puVar14[2],\n                                                                                puVar14[3]),\n                                                                       puVar14[4]),puVar14[5]),\n                                                     puVar14[6]),puVar14[7]),*puVar13),puVar14[9])" identifier = (call_expression "CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(puVar14[2],\n                                                                                puVar14[3]),\n                                                                       puVar14[4]),puVar14[5]),\n                                                     puVar14[6]),puVar14[7]),*puVar13),puVar14[9])" identifier (argument_list "(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(puVar14[2],\n                                                                                puVar14[3]),\n                                                                       puVar14[4]),puVar14[5]),\n                                                     puVar14[6]),puVar14[7]),*puVar13),puVar14[9])" ( (call_expression "CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(puVar14[2],\n                                                                                puVar14[3]),\n                                                                       puVar14[4]),puVar14[5]),\n                                                     puVar14[6]),puVar14[7]),*puVar13)" identifier (argument_list "(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(puVar14[2],\n                                                                                puVar14[3]),\n                                                                       puVar14[4]),puVar14[5]),\n                                                     puVar14[6]),puVar14[7]),*puVar13)" ( (call_expression "CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(puVar14[2],\n                                                                                puVar14[3]),\n                                                                       puVar14[4]),puVar14[5]),\n                                                     puVar14[6]),puVar14[7])" identifier (argument_list "(CONCAT41(CONCAT31(CONCAT21(CONCAT11(puVar14[2],\n                                                                                puVar14[3]),\n                                                                       puVar14[4]),puVar14[5]),\n                                                     puVar14[6]),puVar14[7])" ( (call_expression "CONCAT41(CONCAT31(CONCAT21(CONCAT11(puVar14[2],\n                                                                                puVar14[3]),\n                                                                       puVar14[4]),puVar14[5]),\n                                                     puVar14[6])" identifier (argument_list "(CONCAT31(CONCAT21(CONCAT11(puVar14[2],\n                                                                                puVar14[3]),\n                                                                       puVar14[4]),puVar14[5]),\n                                                     puVar14[6])" ( (call_expression "CONCAT31(CONCAT21(CONCAT11(puVar14[2],\n                                                                                puVar14[3]),\n                                                                       puVar14[4]),puVar14[5])" identifier (argument_list "(CONCAT21(CONCAT11(puVar14[2],\n                                                                                puVar14[3]),\n                                                                       puVar14[4]),puVar14[5])" ( (call_expression "CONCAT21(CONCAT11(puVar14[2],\n                                                                                puVar14[3]),\n                                                                       puVar14[4])" identifier (argument_list "(CONCAT11(puVar14[2],\n                                                                                puVar14[3]),\n                                                                       puVar14[4])" ( (call_expression "CONCAT11(puVar14[2],\n                                                                                puVar14[3])" identifier (argument_list "(puVar14[2],\n                                                                                puVar14[3])" ( (subscript_expression "puVar14[2]" identifier [ number_literal ]) , (subscript_expression "puVar14[3]" identifier [ number_literal ]) ))) , (subscript_expression "puVar14[4]" identifier [ number_literal ]) ))) , (subscript_expression "puVar14[5]" identifier [ number_literal ]) ))) , (subscript_expression "puVar14[6]" identifier [ number_literal ]) ))) , (subscript_expression "puVar14[7]" identifier [ number_literal ]) ))) , (pointer_expression "*puVar13" * identifier) ))) , (subscript_expression "puVar14[9]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar14 = puVar13;" (assignment_expression "puVar14 = puVar13" identifier = identifier) ;) }) while (parenthesized_expression "(puVar13 != in + uVar11)" ( (binary_expression "puVar13 != in + uVar11" identifier != (binary_expression "in + uVar11" identifier + identifier)) )) ;) })) (labeled_statement "LAB_00172dda:\n    wVar3 = L'\a';" statement_identifier : (expression_statement "wVar3 = L'\a';" (assignment_expression "wVar3 = L'\a'" identifier = (char_literal "L'\a'" L' escape_sequence ')) ;)) (if_statement "if (inlen < uVar12 + uVar10) goto LAB_00172f95;" if (parenthesized_expression "(inlen < uVar12 + uVar10)" ( (binary_expression "inlen < uVar12 + uVar10" identifier < (binary_expression "uVar12 + uVar10" identifier + identifier)) )) (goto_statement "goto LAB_00172f95;" goto statement_identifier ;)) (expression_statement "iVar6 = (int)outlen;" (assignment_expression "iVar6 = (int)outlen" identifier = (cast_expression "(int)outlen" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (iVar6 < 1) {\nLAB_00173790:\n      wVar3 = ~-(uint)(uVar10 == 0) & 0x15;\n      goto LAB_00172f95;\n    }" if (parenthesized_expression "(iVar6 < 1)" ( (binary_expression "iVar6 < 1" identifier < number_literal) )) (compound_statement "{\nLAB_00173790:\n      wVar3 = ~-(uint)(uVar10 == 0) & 0x15;\n      goto LAB_00172f95;\n    }" { (labeled_statement "LAB_00173790:\n      wVar3 = ~-(uint)(uVar10 == 0) & 0x15;" statement_identifier : (expression_statement "wVar3 = ~-(uint)(uVar10 == 0) & 0x15;" (assignment_expression "wVar3 = ~-(uint)(uVar10 == 0) & 0x15" identifier = (binary_expression "~-(uint)(uVar10 == 0) & 0x15" (unary_expression "~-(uint)(uVar10 == 0)" ~ (unary_expression "-(uint)(uVar10 == 0)" - (call_expression "(uint)(uVar10 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) ))))) & number_literal)) ;)) (goto_statement "goto LAB_00172f95;" goto statement_identifier ;) })) (expression_statement "piVar4 = &list[1].used;" (assignment_expression "piVar4 = &list[1].used" identifier = (pointer_expression "&list[1].used" & (field_expression "list[1].used" (subscript_expression "list[1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "piVar5 = &list->used;" (assignment_expression "piVar5 = &list->used" identifier = (pointer_expression "&list->used" & (field_expression "list->used" identifier -> field_identifier))) ;) (expression_statement "piVar8 = piVar4 + (ulong)(iVar6 - 1) * 0x10;" (assignment_expression "piVar8 = piVar4 + (ulong)(iVar6 - 1) * 0x10" identifier = (binary_expression "piVar4 + (ulong)(iVar6 - 1) * 0x10" identifier + (binary_expression "(ulong)(iVar6 - 1) * 0x10" (call_expression "(ulong)(iVar6 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar6 - 1)" ( (binary_expression "iVar6 - 1" identifier - number_literal) ))) * number_literal))) ;) (expression_statement "uVar7 = (int)((ulong)((long)piVar8 + (-0x40 - (long)piVar5)) >> 6) + 1U & 7;" (assignment_expression "uVar7 = (int)((ulong)((long)piVar8 + (-0x40 - (long)piVar5)) >> 6) + 1U & 7" identifier = (binary_expression "(int)((ulong)((long)piVar8 + (-0x40 - (long)piVar5)) >> 6) + 1U & 7" (binary_expression "(int)((ulong)((long)piVar8 + (-0x40 - (long)piVar5)) >> 6) + 1U" (cast_expression "(int)((ulong)((long)piVar8 + (-0x40 - (long)piVar5)) >> 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulong)((long)piVar8 + (-0x40 - (long)piVar5)) >> 6)" ( (binary_expression "(ulong)((long)piVar8 + (-0x40 - (long)piVar5)) >> 6" (call_expression "(ulong)((long)piVar8 + (-0x40 - (long)piVar5))" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)piVar8 + (-0x40 - (long)piVar5))" ( (binary_expression "(long)piVar8 + (-0x40 - (long)piVar5)" (cast_expression "(long)piVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(-0x40 - (long)piVar5)" ( (binary_expression "-0x40 - (long)piVar5" number_literal - (cast_expression "(long)piVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ))) >> number_literal) ))) + number_literal) & number_literal)) ;) (if_statement "if (uVar7 == 0) goto LAB_00172e99;" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00172e99;" goto statement_identifier ;)) (if_statement "if (uVar7 != 1) {\n      if (uVar7 != 2) {\n        if (uVar7 != 3) {\n          if (uVar7 != 4) {\n            if (uVar7 != 5) {\n              if (uVar7 != 6) {\n                *piVar5 = 0;\n                piVar5 = &list[1].used;\n              }\n              *piVar5 = 0;\n              piVar5 = piVar5 + 0x10;\n            }\n            *piVar5 = 0;\n            piVar5 = piVar5 + 0x10;\n          }\n          *piVar5 = 0;\n          piVar5 = piVar5 + 0x10;\n        }\n        *piVar5 = 0;\n        piVar5 = piVar5 + 0x10;\n      }\n      *piVar5 = 0;\n      piVar5 = piVar5 + 0x10;\n    }" if (parenthesized_expression "(uVar7 != 1)" ( (binary_expression "uVar7 != 1" identifier != number_literal) )) (compound_statement "{\n      if (uVar7 != 2) {\n        if (uVar7 != 3) {\n          if (uVar7 != 4) {\n            if (uVar7 != 5) {\n              if (uVar7 != 6) {\n                *piVar5 = 0;\n                piVar5 = &list[1].used;\n              }\n              *piVar5 = 0;\n              piVar5 = piVar5 + 0x10;\n            }\n            *piVar5 = 0;\n            piVar5 = piVar5 + 0x10;\n          }\n          *piVar5 = 0;\n          piVar5 = piVar5 + 0x10;\n        }\n        *piVar5 = 0;\n        piVar5 = piVar5 + 0x10;\n      }\n      *piVar5 = 0;\n      piVar5 = piVar5 + 0x10;\n    }" { (if_statement "if (uVar7 != 2) {\n        if (uVar7 != 3) {\n          if (uVar7 != 4) {\n            if (uVar7 != 5) {\n              if (uVar7 != 6) {\n                *piVar5 = 0;\n                piVar5 = &list[1].used;\n              }\n              *piVar5 = 0;\n              piVar5 = piVar5 + 0x10;\n            }\n            *piVar5 = 0;\n            piVar5 = piVar5 + 0x10;\n          }\n          *piVar5 = 0;\n          piVar5 = piVar5 + 0x10;\n        }\n        *piVar5 = 0;\n        piVar5 = piVar5 + 0x10;\n      }" if (parenthesized_expression "(uVar7 != 2)" ( (binary_expression "uVar7 != 2" identifier != number_literal) )) (compound_statement "{\n        if (uVar7 != 3) {\n          if (uVar7 != 4) {\n            if (uVar7 != 5) {\n              if (uVar7 != 6) {\n                *piVar5 = 0;\n                piVar5 = &list[1].used;\n              }\n              *piVar5 = 0;\n              piVar5 = piVar5 + 0x10;\n            }\n            *piVar5 = 0;\n            piVar5 = piVar5 + 0x10;\n          }\n          *piVar5 = 0;\n          piVar5 = piVar5 + 0x10;\n        }\n        *piVar5 = 0;\n        piVar5 = piVar5 + 0x10;\n      }" { (if_statement "if (uVar7 != 3) {\n          if (uVar7 != 4) {\n            if (uVar7 != 5) {\n              if (uVar7 != 6) {\n                *piVar5 = 0;\n                piVar5 = &list[1].used;\n              }\n              *piVar5 = 0;\n              piVar5 = piVar5 + 0x10;\n            }\n            *piVar5 = 0;\n            piVar5 = piVar5 + 0x10;\n          }\n          *piVar5 = 0;\n          piVar5 = piVar5 + 0x10;\n        }" if (parenthesized_expression "(uVar7 != 3)" ( (binary_expression "uVar7 != 3" identifier != number_literal) )) (compound_statement "{\n          if (uVar7 != 4) {\n            if (uVar7 != 5) {\n              if (uVar7 != 6) {\n                *piVar5 = 0;\n                piVar5 = &list[1].used;\n              }\n              *piVar5 = 0;\n              piVar5 = piVar5 + 0x10;\n            }\n            *piVar5 = 0;\n            piVar5 = piVar5 + 0x10;\n          }\n          *piVar5 = 0;\n          piVar5 = piVar5 + 0x10;\n        }" { (if_statement "if (uVar7 != 4) {\n            if (uVar7 != 5) {\n              if (uVar7 != 6) {\n                *piVar5 = 0;\n                piVar5 = &list[1].used;\n              }\n              *piVar5 = 0;\n              piVar5 = piVar5 + 0x10;\n            }\n            *piVar5 = 0;\n            piVar5 = piVar5 + 0x10;\n          }" if (parenthesized_expression "(uVar7 != 4)" ( (binary_expression "uVar7 != 4" identifier != number_literal) )) (compound_statement "{\n            if (uVar7 != 5) {\n              if (uVar7 != 6) {\n                *piVar5 = 0;\n                piVar5 = &list[1].used;\n              }\n              *piVar5 = 0;\n              piVar5 = piVar5 + 0x10;\n            }\n            *piVar5 = 0;\n            piVar5 = piVar5 + 0x10;\n          }" { (if_statement "if (uVar7 != 5) {\n              if (uVar7 != 6) {\n                *piVar5 = 0;\n                piVar5 = &list[1].used;\n              }\n              *piVar5 = 0;\n              piVar5 = piVar5 + 0x10;\n            }" if (parenthesized_expression "(uVar7 != 5)" ( (binary_expression "uVar7 != 5" identifier != number_literal) )) (compound_statement "{\n              if (uVar7 != 6) {\n                *piVar5 = 0;\n                piVar5 = &list[1].used;\n              }\n              *piVar5 = 0;\n              piVar5 = piVar5 + 0x10;\n            }" { (if_statement "if (uVar7 != 6) {\n                *piVar5 = 0;\n                piVar5 = &list[1].used;\n              }" if (parenthesized_expression "(uVar7 != 6)" ( (binary_expression "uVar7 != 6" identifier != number_literal) )) (compound_statement "{\n                *piVar5 = 0;\n                piVar5 = &list[1].used;\n              }" { (expression_statement "*piVar5 = 0;" (assignment_expression "*piVar5 = 0" (pointer_expression "*piVar5" * identifier) = number_literal) ;) (expression_statement "piVar5 = &list[1].used;" (assignment_expression "piVar5 = &list[1].used" identifier = (pointer_expression "&list[1].used" & (field_expression "list[1].used" (subscript_expression "list[1]" identifier [ number_literal ]) . field_identifier))) ;) })) (expression_statement "*piVar5 = 0;" (assignment_expression "*piVar5 = 0" (pointer_expression "*piVar5" * identifier) = number_literal) ;) (expression_statement "piVar5 = piVar5 + 0x10;" (assignment_expression "piVar5 = piVar5 + 0x10" identifier = (binary_expression "piVar5 + 0x10" identifier + number_literal)) ;) })) (expression_statement "*piVar5 = 0;" (assignment_expression "*piVar5 = 0" (pointer_expression "*piVar5" * identifier) = number_literal) ;) (expression_statement "piVar5 = piVar5 + 0x10;" (assignment_expression "piVar5 = piVar5 + 0x10" identifier = (binary_expression "piVar5 + 0x10" identifier + number_literal)) ;) })) (expression_statement "*piVar5 = 0;" (assignment_expression "*piVar5 = 0" (pointer_expression "*piVar5" * identifier) = number_literal) ;) (expression_statement "piVar5 = piVar5 + 0x10;" (assignment_expression "piVar5 = piVar5 + 0x10" identifier = (binary_expression "piVar5 + 0x10" identifier + number_literal)) ;) })) (expression_statement "*piVar5 = 0;" (assignment_expression "*piVar5 = 0" (pointer_expression "*piVar5" * identifier) = number_literal) ;) (expression_statement "piVar5 = piVar5 + 0x10;" (assignment_expression "piVar5 = piVar5 + 0x10" identifier = (binary_expression "piVar5 + 0x10" identifier + number_literal)) ;) })) (expression_statement "*piVar5 = 0;" (assignment_expression "*piVar5 = 0" (pointer_expression "*piVar5" * identifier) = number_literal) ;) (expression_statement "piVar5 = piVar5 + 0x10;" (assignment_expression "piVar5 = piVar5 + 0x10" identifier = (binary_expression "piVar5 + 0x10" identifier + number_literal)) ;) })) (expression_statement "*piVar5 = 0;" (assignment_expression "*piVar5 = 0" (pointer_expression "*piVar5" * identifier) = number_literal) ;) (for_statement "for (piVar5 = piVar5 + 0x10; piVar5 != piVar8; piVar5 = piVar5 + 0x80) {\nLAB_00172e99:\n      *piVar5 = 0;\n      piVar5[0x10] = 0;\n      piVar5[0x20] = 0;\n      piVar5[0x30] = 0;\n      piVar5[0x40] = 0;\n      piVar5[0x50] = 0;\n      piVar5[0x60] = 0;\n      piVar5[0x70] = 0;\n    }" for ( (assignment_expression "piVar5 = piVar5 + 0x10" identifier = (binary_expression "piVar5 + 0x10" identifier + number_literal)) ; (binary_expression "piVar5 != piVar8" identifier != identifier) ; (assignment_expression "piVar5 = piVar5 + 0x80" identifier = (binary_expression "piVar5 + 0x80" identifier + number_literal)) ) (compound_statement "{\nLAB_00172e99:\n      *piVar5 = 0;\n      piVar5[0x10] = 0;\n      piVar5[0x20] = 0;\n      piVar5[0x30] = 0;\n      piVar5[0x40] = 0;\n      piVar5[0x50] = 0;\n      piVar5[0x60] = 0;\n      piVar5[0x70] = 0;\n    }" { (labeled_statement "LAB_00172e99:\n      *piVar5 = 0;" statement_identifier : (expression_statement "*piVar5 = 0;" (assignment_expression "*piVar5 = 0" (pointer_expression "*piVar5" * identifier) = number_literal) ;)) (expression_statement "piVar5[0x10] = 0;" (assignment_expression "piVar5[0x10] = 0" (subscript_expression "piVar5[0x10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x20] = 0;" (assignment_expression "piVar5[0x20] = 0" (subscript_expression "piVar5[0x20]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x30] = 0;" (assignment_expression "piVar5[0x30] = 0" (subscript_expression "piVar5[0x30]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x40] = 0;" (assignment_expression "piVar5[0x40] = 0" (subscript_expression "piVar5[0x40]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x50] = 0;" (assignment_expression "piVar5[0x50] = 0" (subscript_expression "piVar5[0x50]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x60] = 0;" (assignment_expression "piVar5[0x60] = 0" (subscript_expression "piVar5[0x60]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x70] = 0;" (assignment_expression "piVar5[0x70] = 0" (subscript_expression "piVar5[0x70]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00172f1e:\n    do {\n      z = 0;\n      plVar9 = list + iVar15;\n      size = plVar9->size;\n      lVar2 = plVar9->type;\n      list_00 = (ltc_asn1_list *)plVar9->data;\n      if ((ordered == 0) && (plVar9->used == 1)) goto LAB_001731b1;\n      if (lVar2 == LTC_ASN1_EOL) break;\n      switch(lVar2) {\n      case LTC_ASN1_BOOLEAN:\n        z = uVar10;\n        wVar3 = der_decode_boolean(in + uVar12,uVar10,(int *)list_00);\n        if (wVar3 == L'\0') {\n          wVar3 = der_length_boolean(&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_INTEGER:\n        z = uVar10;\n        wVar3 = der_decode_integer(in + uVar12,uVar10,list_00);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        wVar3 = der_length_integer(list_00,&z);\n        break;\n      case LTC_ASN1_SHORT_INTEGER:\n        z = uVar10;\n        wVar3 = der_decode_short_integer(in + uVar12,uVar10,(ulong *)list_00);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        wVar3 = der_length_short_integer(*(ulong *)list_00,&z);\n        break;\n      case LTC_ASN1_BIT_STRING:\n        z = uVar10;\n        wVar3 = der_decode_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        goto joined_r0x00173127;\n      case LTC_ASN1_OCTET_STRING:\n        z = uVar10;\n        wVar3 = der_decode_octet_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_octet_string(size,&z);\n        break;\n      case LTC_ASN1_NULL:\n        if (((1 < uVar10) && (in[uVar12] == '\x05')) && (in[uVar12 + 1] == '\0')) {\n          z = 2;\n          uVar12 = uVar12 + 2;\n          uVar10 = uVar10 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (ordered == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case LTC_ASN1_OBJECT_IDENTIFIER:\n        z = uVar10;\n        wVar3 = der_decode_object_identifier(in + uVar12,uVar10,(ulong *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_object_identifier((ulong *)list_00,size,&z);\n        break;\n      case LTC_ASN1_IA5_STRING:\n        z = uVar10;\n        wVar3 = der_decode_ia5_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_ia5_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_PRINTABLE_STRING:\n        z = uVar10;\n        wVar3 = der_decode_printable_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_printable_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_UTF8_STRING:\n        z = uVar10;\n        wVar3 = der_decode_utf8_string(in + uVar12,uVar10,(wchar_t *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_utf8_string((wchar_t *)list_00,size,&z);\n        break;\n      case LTC_ASN1_UTCTIME:\n        z = uVar10;\n        wVar3 = der_decode_utctime(in + uVar12,&z,(ltc_utctime *)list_00);\n        goto joined_r0x0017339c;\n      case LTC_ASN1_CHOICE:\n        z = uVar10;\n        wVar3 = der_decode_choice(in + uVar12,&z,list_00,size);\n        goto joined_r0x0017339c;\n      case LTC_ASN1_SEQUENCE:\n      case LTC_ASN1_SETOF:\n        if (lVar2 == LTC_ASN1_SETOF) {\n          if ((in[uVar12] & 0x3f) != 0x31) goto LAB_00172f90;\n        }\n        else if ((lVar2 == LTC_ASN1_SEQUENCE) && ((in[uVar12] & 0x3f) != 0x30)) goto LAB_00172f90;\n        ordered_00 = 1;\n        goto LAB_00173181;\n      case LTC_ASN1_SET:\n        ordered_00 = 0;\nLAB_00173181:\n        z = uVar10;\n        wVar3 = der_decode_sequence_ex(in + uVar12,uVar10,list_00,size,ordered_00);\n        if (wVar3 == L'\0') {\n          wVar3 = der_length_sequence(list_00,size,&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_RAW_BIT_STRING:\n        z = uVar10;\n        wVar3 = der_decode_raw_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);\njoined_r0x00173127:\n        if (wVar3 == L'\0') {\n          plVar9->size = size;\n          wVar3 = der_length_bit_string(size,&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_TELETEX_STRING:\n        z = uVar10;\n        wVar3 = der_decode_teletex_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_teletex_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_CONSTRUCTED:\n      case LTC_ASN1_CONTEXT_SPECIFIC:\n        wVar3 = L'\x10';\n        goto LAB_00172f95;\n      case LTC_ASN1_GENERALIZEDTIME:\n        z = uVar10;\n        wVar3 = der_decode_generalizedtime(in + uVar12,&z,(ltc_generalizedtime *)list_00);\njoined_r0x0017339c:\n        if (wVar3 == L'\0') {\n          uVar12 = uVar12 + z;\n          uVar10 = uVar10 - z;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (ordered == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (wVar3 != L'\0') goto LAB_00172f95;\n      uVar12 = uVar12 + z;\n      uVar10 = uVar10 - z;\nswitchD_00172f6d_caseD_14:\n      plVar9->used = 1;\n      if (ordered == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < iVar6);" statement_identifier : (do_statement "do {\n      z = 0;\n      plVar9 = list + iVar15;\n      size = plVar9->size;\n      lVar2 = plVar9->type;\n      list_00 = (ltc_asn1_list *)plVar9->data;\n      if ((ordered == 0) && (plVar9->used == 1)) goto LAB_001731b1;\n      if (lVar2 == LTC_ASN1_EOL) break;\n      switch(lVar2) {\n      case LTC_ASN1_BOOLEAN:\n        z = uVar10;\n        wVar3 = der_decode_boolean(in + uVar12,uVar10,(int *)list_00);\n        if (wVar3 == L'\0') {\n          wVar3 = der_length_boolean(&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_INTEGER:\n        z = uVar10;\n        wVar3 = der_decode_integer(in + uVar12,uVar10,list_00);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        wVar3 = der_length_integer(list_00,&z);\n        break;\n      case LTC_ASN1_SHORT_INTEGER:\n        z = uVar10;\n        wVar3 = der_decode_short_integer(in + uVar12,uVar10,(ulong *)list_00);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        wVar3 = der_length_short_integer(*(ulong *)list_00,&z);\n        break;\n      case LTC_ASN1_BIT_STRING:\n        z = uVar10;\n        wVar3 = der_decode_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        goto joined_r0x00173127;\n      case LTC_ASN1_OCTET_STRING:\n        z = uVar10;\n        wVar3 = der_decode_octet_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_octet_string(size,&z);\n        break;\n      case LTC_ASN1_NULL:\n        if (((1 < uVar10) && (in[uVar12] == '\x05')) && (in[uVar12 + 1] == '\0')) {\n          z = 2;\n          uVar12 = uVar12 + 2;\n          uVar10 = uVar10 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (ordered == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case LTC_ASN1_OBJECT_IDENTIFIER:\n        z = uVar10;\n        wVar3 = der_decode_object_identifier(in + uVar12,uVar10,(ulong *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_object_identifier((ulong *)list_00,size,&z);\n        break;\n      case LTC_ASN1_IA5_STRING:\n        z = uVar10;\n        wVar3 = der_decode_ia5_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_ia5_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_PRINTABLE_STRING:\n        z = uVar10;\n        wVar3 = der_decode_printable_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_printable_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_UTF8_STRING:\n        z = uVar10;\n        wVar3 = der_decode_utf8_string(in + uVar12,uVar10,(wchar_t *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_utf8_string((wchar_t *)list_00,size,&z);\n        break;\n      case LTC_ASN1_UTCTIME:\n        z = uVar10;\n        wVar3 = der_decode_utctime(in + uVar12,&z,(ltc_utctime *)list_00);\n        goto joined_r0x0017339c;\n      case LTC_ASN1_CHOICE:\n        z = uVar10;\n        wVar3 = der_decode_choice(in + uVar12,&z,list_00,size);\n        goto joined_r0x0017339c;\n      case LTC_ASN1_SEQUENCE:\n      case LTC_ASN1_SETOF:\n        if (lVar2 == LTC_ASN1_SETOF) {\n          if ((in[uVar12] & 0x3f) != 0x31) goto LAB_00172f90;\n        }\n        else if ((lVar2 == LTC_ASN1_SEQUENCE) && ((in[uVar12] & 0x3f) != 0x30)) goto LAB_00172f90;\n        ordered_00 = 1;\n        goto LAB_00173181;\n      case LTC_ASN1_SET:\n        ordered_00 = 0;\nLAB_00173181:\n        z = uVar10;\n        wVar3 = der_decode_sequence_ex(in + uVar12,uVar10,list_00,size,ordered_00);\n        if (wVar3 == L'\0') {\n          wVar3 = der_length_sequence(list_00,size,&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_RAW_BIT_STRING:\n        z = uVar10;\n        wVar3 = der_decode_raw_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);\njoined_r0x00173127:\n        if (wVar3 == L'\0') {\n          plVar9->size = size;\n          wVar3 = der_length_bit_string(size,&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_TELETEX_STRING:\n        z = uVar10;\n        wVar3 = der_decode_teletex_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_teletex_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_CONSTRUCTED:\n      case LTC_ASN1_CONTEXT_SPECIFIC:\n        wVar3 = L'\x10';\n        goto LAB_00172f95;\n      case LTC_ASN1_GENERALIZEDTIME:\n        z = uVar10;\n        wVar3 = der_decode_generalizedtime(in + uVar12,&z,(ltc_generalizedtime *)list_00);\njoined_r0x0017339c:\n        if (wVar3 == L'\0') {\n          uVar12 = uVar12 + z;\n          uVar10 = uVar10 - z;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (ordered == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (wVar3 != L'\0') goto LAB_00172f95;\n      uVar12 = uVar12 + z;\n      uVar10 = uVar10 - z;\nswitchD_00172f6d_caseD_14:\n      plVar9->used = 1;\n      if (ordered == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < iVar6);" do (compound_statement "{\n      z = 0;\n      plVar9 = list + iVar15;\n      size = plVar9->size;\n      lVar2 = plVar9->type;\n      list_00 = (ltc_asn1_list *)plVar9->data;\n      if ((ordered == 0) && (plVar9->used == 1)) goto LAB_001731b1;\n      if (lVar2 == LTC_ASN1_EOL) break;\n      switch(lVar2) {\n      case LTC_ASN1_BOOLEAN:\n        z = uVar10;\n        wVar3 = der_decode_boolean(in + uVar12,uVar10,(int *)list_00);\n        if (wVar3 == L'\0') {\n          wVar3 = der_length_boolean(&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_INTEGER:\n        z = uVar10;\n        wVar3 = der_decode_integer(in + uVar12,uVar10,list_00);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        wVar3 = der_length_integer(list_00,&z);\n        break;\n      case LTC_ASN1_SHORT_INTEGER:\n        z = uVar10;\n        wVar3 = der_decode_short_integer(in + uVar12,uVar10,(ulong *)list_00);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        wVar3 = der_length_short_integer(*(ulong *)list_00,&z);\n        break;\n      case LTC_ASN1_BIT_STRING:\n        z = uVar10;\n        wVar3 = der_decode_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        goto joined_r0x00173127;\n      case LTC_ASN1_OCTET_STRING:\n        z = uVar10;\n        wVar3 = der_decode_octet_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_octet_string(size,&z);\n        break;\n      case LTC_ASN1_NULL:\n        if (((1 < uVar10) && (in[uVar12] == '\x05')) && (in[uVar12 + 1] == '\0')) {\n          z = 2;\n          uVar12 = uVar12 + 2;\n          uVar10 = uVar10 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (ordered == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case LTC_ASN1_OBJECT_IDENTIFIER:\n        z = uVar10;\n        wVar3 = der_decode_object_identifier(in + uVar12,uVar10,(ulong *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_object_identifier((ulong *)list_00,size,&z);\n        break;\n      case LTC_ASN1_IA5_STRING:\n        z = uVar10;\n        wVar3 = der_decode_ia5_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_ia5_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_PRINTABLE_STRING:\n        z = uVar10;\n        wVar3 = der_decode_printable_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_printable_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_UTF8_STRING:\n        z = uVar10;\n        wVar3 = der_decode_utf8_string(in + uVar12,uVar10,(wchar_t *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_utf8_string((wchar_t *)list_00,size,&z);\n        break;\n      case LTC_ASN1_UTCTIME:\n        z = uVar10;\n        wVar3 = der_decode_utctime(in + uVar12,&z,(ltc_utctime *)list_00);\n        goto joined_r0x0017339c;\n      case LTC_ASN1_CHOICE:\n        z = uVar10;\n        wVar3 = der_decode_choice(in + uVar12,&z,list_00,size);\n        goto joined_r0x0017339c;\n      case LTC_ASN1_SEQUENCE:\n      case LTC_ASN1_SETOF:\n        if (lVar2 == LTC_ASN1_SETOF) {\n          if ((in[uVar12] & 0x3f) != 0x31) goto LAB_00172f90;\n        }\n        else if ((lVar2 == LTC_ASN1_SEQUENCE) && ((in[uVar12] & 0x3f) != 0x30)) goto LAB_00172f90;\n        ordered_00 = 1;\n        goto LAB_00173181;\n      case LTC_ASN1_SET:\n        ordered_00 = 0;\nLAB_00173181:\n        z = uVar10;\n        wVar3 = der_decode_sequence_ex(in + uVar12,uVar10,list_00,size,ordered_00);\n        if (wVar3 == L'\0') {\n          wVar3 = der_length_sequence(list_00,size,&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_RAW_BIT_STRING:\n        z = uVar10;\n        wVar3 = der_decode_raw_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);\njoined_r0x00173127:\n        if (wVar3 == L'\0') {\n          plVar9->size = size;\n          wVar3 = der_length_bit_string(size,&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_TELETEX_STRING:\n        z = uVar10;\n        wVar3 = der_decode_teletex_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_teletex_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_CONSTRUCTED:\n      case LTC_ASN1_CONTEXT_SPECIFIC:\n        wVar3 = L'\x10';\n        goto LAB_00172f95;\n      case LTC_ASN1_GENERALIZEDTIME:\n        z = uVar10;\n        wVar3 = der_decode_generalizedtime(in + uVar12,&z,(ltc_generalizedtime *)list_00);\njoined_r0x0017339c:\n        if (wVar3 == L'\0') {\n          uVar12 = uVar12 + z;\n          uVar10 = uVar10 - z;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (ordered == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (wVar3 != L'\0') goto LAB_00172f95;\n      uVar12 = uVar12 + z;\n      uVar10 = uVar10 - z;\nswitchD_00172f6d_caseD_14:\n      plVar9->used = 1;\n      if (ordered == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    }" { (expression_statement "z = 0;" (assignment_expression "z = 0" identifier = number_literal) ;) (expression_statement "plVar9 = list + iVar15;" (assignment_expression "plVar9 = list + iVar15" identifier = (binary_expression "list + iVar15" identifier + identifier)) ;) (expression_statement "size = plVar9->size;" (assignment_expression "size = plVar9->size" identifier = (field_expression "plVar9->size" identifier -> field_identifier)) ;) (expression_statement "lVar2 = plVar9->type;" (assignment_expression "lVar2 = plVar9->type" identifier = (field_expression "plVar9->type" identifier -> field_identifier)) ;) (expression_statement "list_00 = (ltc_asn1_list *)plVar9->data;" (assignment_expression "list_00 = (ltc_asn1_list *)plVar9->data" identifier = (cast_expression "(ltc_asn1_list *)plVar9->data" ( (type_descriptor "ltc_asn1_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "plVar9->data" identifier -> field_identifier))) ;) (if_statement "if ((ordered == 0) && (plVar9->used == 1)) goto LAB_001731b1;" if (parenthesized_expression "((ordered == 0) && (plVar9->used == 1))" ( (binary_expression "(ordered == 0) && (plVar9->used == 1)" (parenthesized_expression "(ordered == 0)" ( (binary_expression "ordered == 0" identifier == number_literal) )) && (parenthesized_expression "(plVar9->used == 1)" ( (binary_expression "plVar9->used == 1" (field_expression "plVar9->used" identifier -> field_identifier) == number_literal) ))) )) (goto_statement "goto LAB_001731b1;" goto statement_identifier ;)) (if_statement "if (lVar2 == LTC_ASN1_EOL) break;" if (parenthesized_expression "(lVar2 == LTC_ASN1_EOL)" ( (binary_expression "lVar2 == LTC_ASN1_EOL" identifier == identifier) )) (break_statement "break;" break ;)) (switch_statement "switch(lVar2) {\n      case LTC_ASN1_BOOLEAN:\n        z = uVar10;\n        wVar3 = der_decode_boolean(in + uVar12,uVar10,(int *)list_00);\n        if (wVar3 == L'\0') {\n          wVar3 = der_length_boolean(&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_INTEGER:\n        z = uVar10;\n        wVar3 = der_decode_integer(in + uVar12,uVar10,list_00);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        wVar3 = der_length_integer(list_00,&z);\n        break;\n      case LTC_ASN1_SHORT_INTEGER:\n        z = uVar10;\n        wVar3 = der_decode_short_integer(in + uVar12,uVar10,(ulong *)list_00);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        wVar3 = der_length_short_integer(*(ulong *)list_00,&z);\n        break;\n      case LTC_ASN1_BIT_STRING:\n        z = uVar10;\n        wVar3 = der_decode_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        goto joined_r0x00173127;\n      case LTC_ASN1_OCTET_STRING:\n        z = uVar10;\n        wVar3 = der_decode_octet_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_octet_string(size,&z);\n        break;\n      case LTC_ASN1_NULL:\n        if (((1 < uVar10) && (in[uVar12] == '\x05')) && (in[uVar12 + 1] == '\0')) {\n          z = 2;\n          uVar12 = uVar12 + 2;\n          uVar10 = uVar10 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (ordered == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case LTC_ASN1_OBJECT_IDENTIFIER:\n        z = uVar10;\n        wVar3 = der_decode_object_identifier(in + uVar12,uVar10,(ulong *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_object_identifier((ulong *)list_00,size,&z);\n        break;\n      case LTC_ASN1_IA5_STRING:\n        z = uVar10;\n        wVar3 = der_decode_ia5_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_ia5_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_PRINTABLE_STRING:\n        z = uVar10;\n        wVar3 = der_decode_printable_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_printable_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_UTF8_STRING:\n        z = uVar10;\n        wVar3 = der_decode_utf8_string(in + uVar12,uVar10,(wchar_t *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_utf8_string((wchar_t *)list_00,size,&z);\n        break;\n      case LTC_ASN1_UTCTIME:\n        z = uVar10;\n        wVar3 = der_decode_utctime(in + uVar12,&z,(ltc_utctime *)list_00);\n        goto joined_r0x0017339c;\n      case LTC_ASN1_CHOICE:\n        z = uVar10;\n        wVar3 = der_decode_choice(in + uVar12,&z,list_00,size);\n        goto joined_r0x0017339c;\n      case LTC_ASN1_SEQUENCE:\n      case LTC_ASN1_SETOF:\n        if (lVar2 == LTC_ASN1_SETOF) {\n          if ((in[uVar12] & 0x3f) != 0x31) goto LAB_00172f90;\n        }\n        else if ((lVar2 == LTC_ASN1_SEQUENCE) && ((in[uVar12] & 0x3f) != 0x30)) goto LAB_00172f90;\n        ordered_00 = 1;\n        goto LAB_00173181;\n      case LTC_ASN1_SET:\n        ordered_00 = 0;\nLAB_00173181:\n        z = uVar10;\n        wVar3 = der_decode_sequence_ex(in + uVar12,uVar10,list_00,size,ordered_00);\n        if (wVar3 == L'\0') {\n          wVar3 = der_length_sequence(list_00,size,&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_RAW_BIT_STRING:\n        z = uVar10;\n        wVar3 = der_decode_raw_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);\njoined_r0x00173127:\n        if (wVar3 == L'\0') {\n          plVar9->size = size;\n          wVar3 = der_length_bit_string(size,&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_TELETEX_STRING:\n        z = uVar10;\n        wVar3 = der_decode_teletex_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_teletex_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_CONSTRUCTED:\n      case LTC_ASN1_CONTEXT_SPECIFIC:\n        wVar3 = L'\x10';\n        goto LAB_00172f95;\n      case LTC_ASN1_GENERALIZEDTIME:\n        z = uVar10;\n        wVar3 = der_decode_generalizedtime(in + uVar12,&z,(ltc_generalizedtime *)list_00);\njoined_r0x0017339c:\n        if (wVar3 == L'\0') {\n          uVar12 = uVar12 + z;\n          uVar10 = uVar10 - z;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (ordered == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }" switch (parenthesized_expression "(lVar2)" ( identifier )) (compound_statement "{\n      case LTC_ASN1_BOOLEAN:\n        z = uVar10;\n        wVar3 = der_decode_boolean(in + uVar12,uVar10,(int *)list_00);\n        if (wVar3 == L'\0') {\n          wVar3 = der_length_boolean(&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_INTEGER:\n        z = uVar10;\n        wVar3 = der_decode_integer(in + uVar12,uVar10,list_00);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        wVar3 = der_length_integer(list_00,&z);\n        break;\n      case LTC_ASN1_SHORT_INTEGER:\n        z = uVar10;\n        wVar3 = der_decode_short_integer(in + uVar12,uVar10,(ulong *)list_00);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        wVar3 = der_length_short_integer(*(ulong *)list_00,&z);\n        break;\n      case LTC_ASN1_BIT_STRING:\n        z = uVar10;\n        wVar3 = der_decode_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        goto joined_r0x00173127;\n      case LTC_ASN1_OCTET_STRING:\n        z = uVar10;\n        wVar3 = der_decode_octet_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_octet_string(size,&z);\n        break;\n      case LTC_ASN1_NULL:\n        if (((1 < uVar10) && (in[uVar12] == '\x05')) && (in[uVar12 + 1] == '\0')) {\n          z = 2;\n          uVar12 = uVar12 + 2;\n          uVar10 = uVar10 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (ordered == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case LTC_ASN1_OBJECT_IDENTIFIER:\n        z = uVar10;\n        wVar3 = der_decode_object_identifier(in + uVar12,uVar10,(ulong *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_object_identifier((ulong *)list_00,size,&z);\n        break;\n      case LTC_ASN1_IA5_STRING:\n        z = uVar10;\n        wVar3 = der_decode_ia5_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_ia5_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_PRINTABLE_STRING:\n        z = uVar10;\n        wVar3 = der_decode_printable_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_printable_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_UTF8_STRING:\n        z = uVar10;\n        wVar3 = der_decode_utf8_string(in + uVar12,uVar10,(wchar_t *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_utf8_string((wchar_t *)list_00,size,&z);\n        break;\n      case LTC_ASN1_UTCTIME:\n        z = uVar10;\n        wVar3 = der_decode_utctime(in + uVar12,&z,(ltc_utctime *)list_00);\n        goto joined_r0x0017339c;\n      case LTC_ASN1_CHOICE:\n        z = uVar10;\n        wVar3 = der_decode_choice(in + uVar12,&z,list_00,size);\n        goto joined_r0x0017339c;\n      case LTC_ASN1_SEQUENCE:\n      case LTC_ASN1_SETOF:\n        if (lVar2 == LTC_ASN1_SETOF) {\n          if ((in[uVar12] & 0x3f) != 0x31) goto LAB_00172f90;\n        }\n        else if ((lVar2 == LTC_ASN1_SEQUENCE) && ((in[uVar12] & 0x3f) != 0x30)) goto LAB_00172f90;\n        ordered_00 = 1;\n        goto LAB_00173181;\n      case LTC_ASN1_SET:\n        ordered_00 = 0;\nLAB_00173181:\n        z = uVar10;\n        wVar3 = der_decode_sequence_ex(in + uVar12,uVar10,list_00,size,ordered_00);\n        if (wVar3 == L'\0') {\n          wVar3 = der_length_sequence(list_00,size,&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_RAW_BIT_STRING:\n        z = uVar10;\n        wVar3 = der_decode_raw_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);\njoined_r0x00173127:\n        if (wVar3 == L'\0') {\n          plVar9->size = size;\n          wVar3 = der_length_bit_string(size,&z);\n          break;\n        }\n        goto LAB_001731a8;\n      case LTC_ASN1_TELETEX_STRING:\n        z = uVar10;\n        wVar3 = der_decode_teletex_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_teletex_string((uchar *)list_00,size,&z);\n        break;\n      case LTC_ASN1_CONSTRUCTED:\n      case LTC_ASN1_CONTEXT_SPECIFIC:\n        wVar3 = L'\x10';\n        goto LAB_00172f95;\n      case LTC_ASN1_GENERALIZEDTIME:\n        z = uVar10;\n        wVar3 = der_decode_generalizedtime(in + uVar12,&z,(ltc_generalizedtime *)list_00);\njoined_r0x0017339c:\n        if (wVar3 == L'\0') {\n          uVar12 = uVar12 + z;\n          uVar10 = uVar10 - z;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (ordered == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }" { (case_statement "case LTC_ASN1_BOOLEAN:\n        z = uVar10;\n        wVar3 = der_decode_boolean(in + uVar12,uVar10,(int *)list_00);\n        if (wVar3 == L'\0') {\n          wVar3 = der_length_boolean(&z);\n          break;\n        }\n        goto LAB_001731a8;" case identifier : (expression_statement "z = uVar10;" (assignment_expression "z = uVar10" identifier = identifier) ;) (expression_statement "wVar3 = der_decode_boolean(in + uVar12,uVar10,(int *)list_00);" (assignment_expression "wVar3 = der_decode_boolean(in + uVar12,uVar10,(int *)list_00)" identifier = (call_expression "der_decode_boolean(in + uVar12,uVar10,(int *)list_00)" identifier (argument_list "(in + uVar12,uVar10,(int *)list_00)" ( (binary_expression "in + uVar12" identifier + identifier) , identifier , (cast_expression "(int *)list_00" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (wVar3 == L'\0') {\n          wVar3 = der_length_boolean(&z);\n          break;\n        }" if (parenthesized_expression "(wVar3 == L'\0')" ( (binary_expression "wVar3 == L'\0'" identifier == (char_literal "L'\0'" L' escape_sequence ')) )) (compound_statement "{\n          wVar3 = der_length_boolean(&z);\n          break;\n        }" { (expression_statement "wVar3 = der_length_boolean(&z);" (assignment_expression "wVar3 = der_length_boolean(&z)" identifier = (call_expression "der_length_boolean(&z)" identifier (argument_list "(&z)" ( (pointer_expression "&z" & identifier) )))) ;) (break_statement "break;" break ;) })) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (case_statement "case LTC_ASN1_INTEGER:\n        z = uVar10;\n        wVar3 = der_decode_integer(in + uVar12,uVar10,list_00);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        wVar3 = der_length_integer(list_00,&z);\n        break;" case identifier : (expression_statement "z = uVar10;" (assignment_expression "z = uVar10" identifier = identifier) ;) (expression_statement "wVar3 = der_decode_integer(in + uVar12,uVar10,list_00);" (assignment_expression "wVar3 = der_decode_integer(in + uVar12,uVar10,list_00)" identifier = (call_expression "der_decode_integer(in + uVar12,uVar10,list_00)" identifier (argument_list "(in + uVar12,uVar10,list_00)" ( (binary_expression "in + uVar12" identifier + identifier) , identifier , identifier )))) ;) (if_statement "if (wVar3 != L'\0') goto LAB_001731a8;" if (parenthesized_expression "(wVar3 != L'\0')" ( (binary_expression "wVar3 != L'\0'" identifier != (char_literal "L'\0'" L' escape_sequence ')) )) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (expression_statement "wVar3 = der_length_integer(list_00,&z);" (assignment_expression "wVar3 = der_length_integer(list_00,&z)" identifier = (call_expression "der_length_integer(list_00,&z)" identifier (argument_list "(list_00,&z)" ( identifier , (pointer_expression "&z" & identifier) )))) ;) (break_statement "break;" break ;)) (case_statement "case LTC_ASN1_SHORT_INTEGER:\n        z = uVar10;\n        wVar3 = der_decode_short_integer(in + uVar12,uVar10,(ulong *)list_00);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        wVar3 = der_length_short_integer(*(ulong *)list_00,&z);\n        break;" case identifier : (expression_statement "z = uVar10;" (assignment_expression "z = uVar10" identifier = identifier) ;) (expression_statement "wVar3 = der_decode_short_integer(in + uVar12,uVar10,(ulong *)list_00);" (assignment_expression "wVar3 = der_decode_short_integer(in + uVar12,uVar10,(ulong *)list_00)" identifier = (call_expression "der_decode_short_integer(in + uVar12,uVar10,(ulong *)list_00)" identifier (argument_list "(in + uVar12,uVar10,(ulong *)list_00)" ( (binary_expression "in + uVar12" identifier + identifier) , identifier , (cast_expression "(ulong *)list_00" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (wVar3 != L'\0') goto LAB_001731a8;" if (parenthesized_expression "(wVar3 != L'\0')" ( (binary_expression "wVar3 != L'\0'" identifier != (char_literal "L'\0'" L' escape_sequence ')) )) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (expression_statement "wVar3 = der_length_short_integer(*(ulong *)list_00,&z);" (assignment_expression "wVar3 = der_length_short_integer(*(ulong *)list_00,&z)" identifier = (call_expression "der_length_short_integer(*(ulong *)list_00,&z)" identifier (argument_list "(*(ulong *)list_00,&z)" ( (pointer_expression "*(ulong *)list_00" * (cast_expression "(ulong *)list_00" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (pointer_expression "&z" & identifier) )))) ;) (break_statement "break;" break ;)) (case_statement "case LTC_ASN1_BIT_STRING:\n        z = uVar10;\n        wVar3 = der_decode_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        goto joined_r0x00173127;" case identifier : (expression_statement "z = uVar10;" (assignment_expression "z = uVar10" identifier = identifier) ;) (expression_statement "wVar3 = der_decode_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);" (assignment_expression "wVar3 = der_decode_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size)" identifier = (call_expression "der_decode_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size)" identifier (argument_list "(in + uVar12,uVar10,(uchar *)list_00,&size)" ( (binary_expression "in + uVar12" identifier + identifier) , identifier , (cast_expression "(uchar *)list_00" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&size" & identifier) )))) ;) (goto_statement "goto joined_r0x00173127;" goto statement_identifier ;)) (case_statement "case LTC_ASN1_OCTET_STRING:\n        z = uVar10;\n        wVar3 = der_decode_octet_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_octet_string(size,&z);\n        break;" case identifier : (expression_statement "z = uVar10;" (assignment_expression "z = uVar10" identifier = identifier) ;) (expression_statement "wVar3 = der_decode_octet_string(in + uVar12,uVar10,(uchar *)list_00,&size);" (assignment_expression "wVar3 = der_decode_octet_string(in + uVar12,uVar10,(uchar *)list_00,&size)" identifier = (call_expression "der_decode_octet_string(in + uVar12,uVar10,(uchar *)list_00,&size)" identifier (argument_list "(in + uVar12,uVar10,(uchar *)list_00,&size)" ( (binary_expression "in + uVar12" identifier + identifier) , identifier , (cast_expression "(uchar *)list_00" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&size" & identifier) )))) ;) (if_statement "if (wVar3 != L'\0') goto LAB_001731a8;" if (parenthesized_expression "(wVar3 != L'\0')" ( (binary_expression "wVar3 != L'\0'" identifier != (char_literal "L'\0'" L' escape_sequence ')) )) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (expression_statement "plVar9->size = size;" (assignment_expression "plVar9->size = size" (field_expression "plVar9->size" identifier -> field_identifier) = identifier) ;) (expression_statement "wVar3 = der_length_octet_string(size,&z);" (assignment_expression "wVar3 = der_length_octet_string(size,&z)" identifier = (call_expression "der_length_octet_string(size,&z)" identifier (argument_list "(size,&z)" ( identifier , (pointer_expression "&z" & identifier) )))) ;) (break_statement "break;" break ;)) (case_statement "case LTC_ASN1_NULL:\n        if (((1 < uVar10) && (in[uVar12] == '\x05')) && (in[uVar12 + 1] == '\0')) {\n          z = 2;\n          uVar12 = uVar12 + 2;\n          uVar10 = uVar10 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (ordered == 0) goto LAB_001731b1;\n        goto LAB_00172f90;" case identifier : (if_statement "if (((1 < uVar10) && (in[uVar12] == '\x05')) && (in[uVar12 + 1] == '\0')) {\n          z = 2;\n          uVar12 = uVar12 + 2;\n          uVar10 = uVar10 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }" if (parenthesized_expression "(((1 < uVar10) && (in[uVar12] == '\x05')) && (in[uVar12 + 1] == '\0'))" ( (binary_expression "((1 < uVar10) && (in[uVar12] == '\x05')) && (in[uVar12 + 1] == '\0')" (parenthesized_expression "((1 < uVar10) && (in[uVar12] == '\x05'))" ( (binary_expression "(1 < uVar10) && (in[uVar12] == '\x05')" (parenthesized_expression "(1 < uVar10)" ( (binary_expression "1 < uVar10" number_literal < identifier) )) && (parenthesized_expression "(in[uVar12] == '\x05')" ( (binary_expression "in[uVar12] == '\x05'" (subscript_expression "in[uVar12]" identifier [ identifier ]) == (char_literal "'\x05'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(in[uVar12 + 1] == '\0')" ( (binary_expression "in[uVar12 + 1] == '\0'" (subscript_expression "in[uVar12 + 1]" identifier [ (binary_expression "uVar12 + 1" identifier + number_literal) ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          z = 2;\n          uVar12 = uVar12 + 2;\n          uVar10 = uVar10 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }" { (expression_statement "z = 2;" (assignment_expression "z = 2" identifier = number_literal) ;) (expression_statement "uVar12 = uVar12 + 2;" (assignment_expression "uVar12 = uVar12 + 2" identifier = (binary_expression "uVar12 + 2" identifier + number_literal)) ;) (expression_statement "uVar10 = uVar10 - 2;" (assignment_expression "uVar10 = uVar10 - 2" identifier = (binary_expression "uVar10 - 2" identifier - number_literal)) ;) (goto_statement "goto switchD_00172f6d_caseD_14;" goto statement_identifier ;) })) (if_statement "if (ordered == 0) goto LAB_001731b1;" if (parenthesized_expression "(ordered == 0)" ( (binary_expression "ordered == 0" identifier == number_literal) )) (goto_statement "goto LAB_001731b1;" goto statement_identifier ;)) (goto_statement "goto LAB_00172f90;" goto statement_identifier ;)) (case_statement "case LTC_ASN1_OBJECT_IDENTIFIER:\n        z = uVar10;\n        wVar3 = der_decode_object_identifier(in + uVar12,uVar10,(ulong *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_object_identifier((ulong *)list_00,size,&z);\n        break;" case identifier : (expression_statement "z = uVar10;" (assignment_expression "z = uVar10" identifier = identifier) ;) (expression_statement "wVar3 = der_decode_object_identifier(in + uVar12,uVar10,(ulong *)list_00,&size);" (assignment_expression "wVar3 = der_decode_object_identifier(in + uVar12,uVar10,(ulong *)list_00,&size)" identifier = (call_expression "der_decode_object_identifier(in + uVar12,uVar10,(ulong *)list_00,&size)" identifier (argument_list "(in + uVar12,uVar10,(ulong *)list_00,&size)" ( (binary_expression "in + uVar12" identifier + identifier) , identifier , (cast_expression "(ulong *)list_00" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&size" & identifier) )))) ;) (if_statement "if (wVar3 != L'\0') goto LAB_001731a8;" if (parenthesized_expression "(wVar3 != L'\0')" ( (binary_expression "wVar3 != L'\0'" identifier != (char_literal "L'\0'" L' escape_sequence ')) )) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (expression_statement "plVar9->size = size;" (assignment_expression "plVar9->size = size" (field_expression "plVar9->size" identifier -> field_identifier) = identifier) ;) (expression_statement "wVar3 = der_length_object_identifier((ulong *)list_00,size,&z);" (assignment_expression "wVar3 = der_length_object_identifier((ulong *)list_00,size,&z)" identifier = (call_expression "der_length_object_identifier((ulong *)list_00,size,&z)" identifier (argument_list "((ulong *)list_00,size,&z)" ( (cast_expression "(ulong *)list_00" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (pointer_expression "&z" & identifier) )))) ;) (break_statement "break;" break ;)) (case_statement "case LTC_ASN1_IA5_STRING:\n        z = uVar10;\n        wVar3 = der_decode_ia5_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_ia5_string((uchar *)list_00,size,&z);\n        break;" case identifier : (expression_statement "z = uVar10;" (assignment_expression "z = uVar10" identifier = identifier) ;) (expression_statement "wVar3 = der_decode_ia5_string(in + uVar12,uVar10,(uchar *)list_00,&size);" (assignment_expression "wVar3 = der_decode_ia5_string(in + uVar12,uVar10,(uchar *)list_00,&size)" identifier = (call_expression "der_decode_ia5_string(in + uVar12,uVar10,(uchar *)list_00,&size)" identifier (argument_list "(in + uVar12,uVar10,(uchar *)list_00,&size)" ( (binary_expression "in + uVar12" identifier + identifier) , identifier , (cast_expression "(uchar *)list_00" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&size" & identifier) )))) ;) (if_statement "if (wVar3 != L'\0') goto LAB_001731a8;" if (parenthesized_expression "(wVar3 != L'\0')" ( (binary_expression "wVar3 != L'\0'" identifier != (char_literal "L'\0'" L' escape_sequence ')) )) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (expression_statement "plVar9->size = size;" (assignment_expression "plVar9->size = size" (field_expression "plVar9->size" identifier -> field_identifier) = identifier) ;) (expression_statement "wVar3 = der_length_ia5_string((uchar *)list_00,size,&z);" (assignment_expression "wVar3 = der_length_ia5_string((uchar *)list_00,size,&z)" identifier = (call_expression "der_length_ia5_string((uchar *)list_00,size,&z)" identifier (argument_list "((uchar *)list_00,size,&z)" ( (cast_expression "(uchar *)list_00" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (pointer_expression "&z" & identifier) )))) ;) (break_statement "break;" break ;)) (case_statement "case LTC_ASN1_PRINTABLE_STRING:\n        z = uVar10;\n        wVar3 = der_decode_printable_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_printable_string((uchar *)list_00,size,&z);\n        break;" case identifier : (expression_statement "z = uVar10;" (assignment_expression "z = uVar10" identifier = identifier) ;) (expression_statement "wVar3 = der_decode_printable_string(in + uVar12,uVar10,(uchar *)list_00,&size);" (assignment_expression "wVar3 = der_decode_printable_string(in + uVar12,uVar10,(uchar *)list_00,&size)" identifier = (call_expression "der_decode_printable_string(in + uVar12,uVar10,(uchar *)list_00,&size)" identifier (argument_list "(in + uVar12,uVar10,(uchar *)list_00,&size)" ( (binary_expression "in + uVar12" identifier + identifier) , identifier , (cast_expression "(uchar *)list_00" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&size" & identifier) )))) ;) (if_statement "if (wVar3 != L'\0') goto LAB_001731a8;" if (parenthesized_expression "(wVar3 != L'\0')" ( (binary_expression "wVar3 != L'\0'" identifier != (char_literal "L'\0'" L' escape_sequence ')) )) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (expression_statement "plVar9->size = size;" (assignment_expression "plVar9->size = size" (field_expression "plVar9->size" identifier -> field_identifier) = identifier) ;) (expression_statement "wVar3 = der_length_printable_string((uchar *)list_00,size,&z);" (assignment_expression "wVar3 = der_length_printable_string((uchar *)list_00,size,&z)" identifier = (call_expression "der_length_printable_string((uchar *)list_00,size,&z)" identifier (argument_list "((uchar *)list_00,size,&z)" ( (cast_expression "(uchar *)list_00" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (pointer_expression "&z" & identifier) )))) ;) (break_statement "break;" break ;)) (case_statement "case LTC_ASN1_UTF8_STRING:\n        z = uVar10;\n        wVar3 = der_decode_utf8_string(in + uVar12,uVar10,(wchar_t *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_utf8_string((wchar_t *)list_00,size,&z);\n        break;" case identifier : (expression_statement "z = uVar10;" (assignment_expression "z = uVar10" identifier = identifier) ;) (expression_statement "wVar3 = der_decode_utf8_string(in + uVar12,uVar10,(wchar_t *)list_00,&size);" (assignment_expression "wVar3 = der_decode_utf8_string(in + uVar12,uVar10,(wchar_t *)list_00,&size)" identifier = (call_expression "der_decode_utf8_string(in + uVar12,uVar10,(wchar_t *)list_00,&size)" identifier (argument_list "(in + uVar12,uVar10,(wchar_t *)list_00,&size)" ( (binary_expression "in + uVar12" identifier + identifier) , identifier , (cast_expression "(wchar_t *)list_00" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&size" & identifier) )))) ;) (if_statement "if (wVar3 != L'\0') goto LAB_001731a8;" if (parenthesized_expression "(wVar3 != L'\0')" ( (binary_expression "wVar3 != L'\0'" identifier != (char_literal "L'\0'" L' escape_sequence ')) )) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (expression_statement "plVar9->size = size;" (assignment_expression "plVar9->size = size" (field_expression "plVar9->size" identifier -> field_identifier) = identifier) ;) (expression_statement "wVar3 = der_length_utf8_string((wchar_t *)list_00,size,&z);" (assignment_expression "wVar3 = der_length_utf8_string((wchar_t *)list_00,size,&z)" identifier = (call_expression "der_length_utf8_string((wchar_t *)list_00,size,&z)" identifier (argument_list "((wchar_t *)list_00,size,&z)" ( (cast_expression "(wchar_t *)list_00" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (pointer_expression "&z" & identifier) )))) ;) (break_statement "break;" break ;)) (case_statement "case LTC_ASN1_UTCTIME:\n        z = uVar10;\n        wVar3 = der_decode_utctime(in + uVar12,&z,(ltc_utctime *)list_00);\n        goto joined_r0x0017339c;" case identifier : (expression_statement "z = uVar10;" (assignment_expression "z = uVar10" identifier = identifier) ;) (expression_statement "wVar3 = der_decode_utctime(in + uVar12,&z,(ltc_utctime *)list_00);" (assignment_expression "wVar3 = der_decode_utctime(in + uVar12,&z,(ltc_utctime *)list_00)" identifier = (call_expression "der_decode_utctime(in + uVar12,&z,(ltc_utctime *)list_00)" identifier (argument_list "(in + uVar12,&z,(ltc_utctime *)list_00)" ( (binary_expression "in + uVar12" identifier + identifier) , (pointer_expression "&z" & identifier) , (cast_expression "(ltc_utctime *)list_00" ( (type_descriptor "ltc_utctime *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (goto_statement "goto joined_r0x0017339c;" goto statement_identifier ;)) (case_statement "case LTC_ASN1_CHOICE:\n        z = uVar10;\n        wVar3 = der_decode_choice(in + uVar12,&z,list_00,size);\n        goto joined_r0x0017339c;" case identifier : (expression_statement "z = uVar10;" (assignment_expression "z = uVar10" identifier = identifier) ;) (expression_statement "wVar3 = der_decode_choice(in + uVar12,&z,list_00,size);" (assignment_expression "wVar3 = der_decode_choice(in + uVar12,&z,list_00,size)" identifier = (call_expression "der_decode_choice(in + uVar12,&z,list_00,size)" identifier (argument_list "(in + uVar12,&z,list_00,size)" ( (binary_expression "in + uVar12" identifier + identifier) , (pointer_expression "&z" & identifier) , identifier , identifier )))) ;) (goto_statement "goto joined_r0x0017339c;" goto statement_identifier ;)) (case_statement "case LTC_ASN1_SEQUENCE:" case identifier :) (case_statement "case LTC_ASN1_SETOF:\n        if (lVar2 == LTC_ASN1_SETOF) {\n          if ((in[uVar12] & 0x3f) != 0x31) goto LAB_00172f90;\n        }\n        else if ((lVar2 == LTC_ASN1_SEQUENCE) && ((in[uVar12] & 0x3f) != 0x30)) goto LAB_00172f90;\n        ordered_00 = 1;\n        goto LAB_00173181;" case identifier : (if_statement "if (lVar2 == LTC_ASN1_SETOF) {\n          if ((in[uVar12] & 0x3f) != 0x31) goto LAB_00172f90;\n        }\n        else if ((lVar2 == LTC_ASN1_SEQUENCE) && ((in[uVar12] & 0x3f) != 0x30)) goto LAB_00172f90;" if (parenthesized_expression "(lVar2 == LTC_ASN1_SETOF)" ( (binary_expression "lVar2 == LTC_ASN1_SETOF" identifier == identifier) )) (compound_statement "{\n          if ((in[uVar12] & 0x3f) != 0x31) goto LAB_00172f90;\n        }" { (if_statement "if ((in[uVar12] & 0x3f) != 0x31) goto LAB_00172f90;" if (parenthesized_expression "((in[uVar12] & 0x3f) != 0x31)" ( (binary_expression "(in[uVar12] & 0x3f) != 0x31" (parenthesized_expression "(in[uVar12] & 0x3f)" ( (binary_expression "in[uVar12] & 0x3f" (subscript_expression "in[uVar12]" identifier [ identifier ]) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00172f90;" goto statement_identifier ;)) }) (else_clause "else if ((lVar2 == LTC_ASN1_SEQUENCE) && ((in[uVar12] & 0x3f) != 0x30)) goto LAB_00172f90;" else (if_statement "if ((lVar2 == LTC_ASN1_SEQUENCE) && ((in[uVar12] & 0x3f) != 0x30)) goto LAB_00172f90;" if (parenthesized_expression "((lVar2 == LTC_ASN1_SEQUENCE) && ((in[uVar12] & 0x3f) != 0x30))" ( (binary_expression "(lVar2 == LTC_ASN1_SEQUENCE) && ((in[uVar12] & 0x3f) != 0x30)" (parenthesized_expression "(lVar2 == LTC_ASN1_SEQUENCE)" ( (binary_expression "lVar2 == LTC_ASN1_SEQUENCE" identifier == identifier) )) && (parenthesized_expression "((in[uVar12] & 0x3f) != 0x30)" ( (binary_expression "(in[uVar12] & 0x3f) != 0x30" (parenthesized_expression "(in[uVar12] & 0x3f)" ( (binary_expression "in[uVar12] & 0x3f" (subscript_expression "in[uVar12]" identifier [ identifier ]) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_00172f90;" goto statement_identifier ;)))) (expression_statement "ordered_00 = 1;" (assignment_expression "ordered_00 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00173181;" goto statement_identifier ;)) (case_statement "case LTC_ASN1_SET:\n        ordered_00 = 0;\nLAB_00173181:\n        z = uVar10;\n        wVar3 = der_decode_sequence_ex(in + uVar12,uVar10,list_00,size,ordered_00);\n        if (wVar3 == L'\0') {\n          wVar3 = der_length_sequence(list_00,size,&z);\n          break;\n        }\n        goto LAB_001731a8;" case identifier : (expression_statement "ordered_00 = 0;" (assignment_expression "ordered_00 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00173181:\n        z = uVar10;" statement_identifier : (expression_statement "z = uVar10;" (assignment_expression "z = uVar10" identifier = identifier) ;)) (expression_statement "wVar3 = der_decode_sequence_ex(in + uVar12,uVar10,list_00,size,ordered_00);" (assignment_expression "wVar3 = der_decode_sequence_ex(in + uVar12,uVar10,list_00,size,ordered_00)" identifier = (call_expression "der_decode_sequence_ex(in + uVar12,uVar10,list_00,size,ordered_00)" identifier (argument_list "(in + uVar12,uVar10,list_00,size,ordered_00)" ( (binary_expression "in + uVar12" identifier + identifier) , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (wVar3 == L'\0') {\n          wVar3 = der_length_sequence(list_00,size,&z);\n          break;\n        }" if (parenthesized_expression "(wVar3 == L'\0')" ( (binary_expression "wVar3 == L'\0'" identifier == (char_literal "L'\0'" L' escape_sequence ')) )) (compound_statement "{\n          wVar3 = der_length_sequence(list_00,size,&z);\n          break;\n        }" { (expression_statement "wVar3 = der_length_sequence(list_00,size,&z);" (assignment_expression "wVar3 = der_length_sequence(list_00,size,&z)" identifier = (call_expression "der_length_sequence(list_00,size,&z)" identifier (argument_list "(list_00,size,&z)" ( identifier , identifier , (pointer_expression "&z" & identifier) )))) ;) (break_statement "break;" break ;) })) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (case_statement "case LTC_ASN1_RAW_BIT_STRING:\n        z = uVar10;\n        wVar3 = der_decode_raw_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);\njoined_r0x00173127:\n        if (wVar3 == L'\0') {\n          plVar9->size = size;\n          wVar3 = der_length_bit_string(size,&z);\n          break;\n        }\n        goto LAB_001731a8;" case identifier : (expression_statement "z = uVar10;" (assignment_expression "z = uVar10" identifier = identifier) ;) (expression_statement "wVar3 = der_decode_raw_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size);" (assignment_expression "wVar3 = der_decode_raw_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size)" identifier = (call_expression "der_decode_raw_bit_string(in + uVar12,uVar10,(uchar *)list_00,&size)" identifier (argument_list "(in + uVar12,uVar10,(uchar *)list_00,&size)" ( (binary_expression "in + uVar12" identifier + identifier) , identifier , (cast_expression "(uchar *)list_00" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&size" & identifier) )))) ;) (labeled_statement "joined_r0x00173127:\n        if (wVar3 == L'\0') {\n          plVar9->size = size;\n          wVar3 = der_length_bit_string(size,&z);\n          break;\n        }" statement_identifier : (if_statement "if (wVar3 == L'\0') {\n          plVar9->size = size;\n          wVar3 = der_length_bit_string(size,&z);\n          break;\n        }" if (parenthesized_expression "(wVar3 == L'\0')" ( (binary_expression "wVar3 == L'\0'" identifier == (char_literal "L'\0'" L' escape_sequence ')) )) (compound_statement "{\n          plVar9->size = size;\n          wVar3 = der_length_bit_string(size,&z);\n          break;\n        }" { (expression_statement "plVar9->size = size;" (assignment_expression "plVar9->size = size" (field_expression "plVar9->size" identifier -> field_identifier) = identifier) ;) (expression_statement "wVar3 = der_length_bit_string(size,&z);" (assignment_expression "wVar3 = der_length_bit_string(size,&z)" identifier = (call_expression "der_length_bit_string(size,&z)" identifier (argument_list "(size,&z)" ( identifier , (pointer_expression "&z" & identifier) )))) ;) (break_statement "break;" break ;) }))) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (case_statement "case LTC_ASN1_TELETEX_STRING:\n        z = uVar10;\n        wVar3 = der_decode_teletex_string(in + uVar12,uVar10,(uchar *)list_00,&size);\n        if (wVar3 != L'\0') goto LAB_001731a8;\n        plVar9->size = size;\n        wVar3 = der_length_teletex_string((uchar *)list_00,size,&z);\n        break;" case identifier : (expression_statement "z = uVar10;" (assignment_expression "z = uVar10" identifier = identifier) ;) (expression_statement "wVar3 = der_decode_teletex_string(in + uVar12,uVar10,(uchar *)list_00,&size);" (assignment_expression "wVar3 = der_decode_teletex_string(in + uVar12,uVar10,(uchar *)list_00,&size)" identifier = (call_expression "der_decode_teletex_string(in + uVar12,uVar10,(uchar *)list_00,&size)" identifier (argument_list "(in + uVar12,uVar10,(uchar *)list_00,&size)" ( (binary_expression "in + uVar12" identifier + identifier) , identifier , (cast_expression "(uchar *)list_00" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&size" & identifier) )))) ;) (if_statement "if (wVar3 != L'\0') goto LAB_001731a8;" if (parenthesized_expression "(wVar3 != L'\0')" ( (binary_expression "wVar3 != L'\0'" identifier != (char_literal "L'\0'" L' escape_sequence ')) )) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (expression_statement "plVar9->size = size;" (assignment_expression "plVar9->size = size" (field_expression "plVar9->size" identifier -> field_identifier) = identifier) ;) (expression_statement "wVar3 = der_length_teletex_string((uchar *)list_00,size,&z);" (assignment_expression "wVar3 = der_length_teletex_string((uchar *)list_00,size,&z)" identifier = (call_expression "der_length_teletex_string((uchar *)list_00,size,&z)" identifier (argument_list "((uchar *)list_00,size,&z)" ( (cast_expression "(uchar *)list_00" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (pointer_expression "&z" & identifier) )))) ;) (break_statement "break;" break ;)) (case_statement "case LTC_ASN1_CONSTRUCTED:" case identifier :) (case_statement "case LTC_ASN1_CONTEXT_SPECIFIC:\n        wVar3 = L'\x10';\n        goto LAB_00172f95;" case identifier : (expression_statement "wVar3 = L'\x10';" (assignment_expression "wVar3 = L'\x10'" identifier = (char_literal "L'\x10'" L' escape_sequence ')) ;) (goto_statement "goto LAB_00172f95;" goto statement_identifier ;)) (case_statement "case LTC_ASN1_GENERALIZEDTIME:\n        z = uVar10;\n        wVar3 = der_decode_generalizedtime(in + uVar12,&z,(ltc_generalizedtime *)list_00);\njoined_r0x0017339c:\n        if (wVar3 == L'\0') {\n          uVar12 = uVar12 + z;\n          uVar10 = uVar10 - z;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (ordered == 0) goto LAB_001731b1;\n        goto LAB_00172f95;" case identifier : (expression_statement "z = uVar10;" (assignment_expression "z = uVar10" identifier = identifier) ;) (expression_statement "wVar3 = der_decode_generalizedtime(in + uVar12,&z,(ltc_generalizedtime *)list_00);" (assignment_expression "wVar3 = der_decode_generalizedtime(in + uVar12,&z,(ltc_generalizedtime *)list_00)" identifier = (call_expression "der_decode_generalizedtime(in + uVar12,&z,(ltc_generalizedtime *)list_00)" identifier (argument_list "(in + uVar12,&z,(ltc_generalizedtime *)list_00)" ( (binary_expression "in + uVar12" identifier + identifier) , (pointer_expression "&z" & identifier) , (cast_expression "(ltc_generalizedtime *)list_00" ( (type_descriptor "ltc_generalizedtime *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (labeled_statement "joined_r0x0017339c:\n        if (wVar3 == L'\0') {\n          uVar12 = uVar12 + z;\n          uVar10 = uVar10 - z;\n          goto switchD_00172f6d_caseD_14;\n        }" statement_identifier : (if_statement "if (wVar3 == L'\0') {\n          uVar12 = uVar12 + z;\n          uVar10 = uVar10 - z;\n          goto switchD_00172f6d_caseD_14;\n        }" if (parenthesized_expression "(wVar3 == L'\0')" ( (binary_expression "wVar3 == L'\0'" identifier == (char_literal "L'\0'" L' escape_sequence ')) )) (compound_statement "{\n          uVar12 = uVar12 + z;\n          uVar10 = uVar10 - z;\n          goto switchD_00172f6d_caseD_14;\n        }" { (expression_statement "uVar12 = uVar12 + z;" (assignment_expression "uVar12 = uVar12 + z" identifier = (binary_expression "uVar12 + z" identifier + identifier)) ;) (expression_statement "uVar10 = uVar10 - z;" (assignment_expression "uVar10 = uVar10 - z" identifier = (binary_expression "uVar10 - z" identifier - identifier)) ;) (goto_statement "goto switchD_00172f6d_caseD_14;" goto statement_identifier ;) }))) (labeled_statement "LAB_001731a8:\n        if (ordered == 0) goto LAB_001731b1;" statement_identifier : (if_statement "if (ordered == 0) goto LAB_001731b1;" if (parenthesized_expression "(ordered == 0)" ( (binary_expression "ordered == 0" identifier == number_literal) )) (goto_statement "goto LAB_001731b1;" goto statement_identifier ;))) (goto_statement "goto LAB_00172f95;" goto statement_identifier ;)) (case_statement "default:\n        goto switchD_00172f6d_caseD_14;" default : (goto_statement "goto switchD_00172f6d_caseD_14;" goto statement_identifier ;)) })) (if_statement "if (wVar3 != L'\0') goto LAB_00172f95;" if (parenthesized_expression "(wVar3 != L'\0')" ( (binary_expression "wVar3 != L'\0'" identifier != (char_literal "L'\0'" L' escape_sequence ')) )) (goto_statement "goto LAB_00172f95;" goto statement_identifier ;)) (expression_statement "uVar12 = uVar12 + z;" (assignment_expression "uVar12 = uVar12 + z" identifier = (binary_expression "uVar12 + z" identifier + identifier)) ;) (expression_statement "uVar10 = uVar10 - z;" (assignment_expression "uVar10 = uVar10 - z" identifier = (binary_expression "uVar10 - z" identifier - identifier)) ;) (labeled_statement "switchD_00172f6d_caseD_14:\n      plVar9->used = 1;" statement_identifier : (expression_statement "plVar9->used = 1;" (assignment_expression "plVar9->used = 1" (field_expression "plVar9->used" identifier -> field_identifier) = number_literal) ;)) (if_statement "if (ordered == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }" if (parenthesized_expression "(ordered == 0)" ( (binary_expression "ordered == 0" identifier == number_literal) )) (compound_statement "{\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00172f1e;" goto statement_identifier ;) })) (labeled_statement "LAB_001731b1:\n      iVar15 = iVar15 + 1;" statement_identifier : (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "(iVar15 < iVar6)" ( (binary_expression "iVar15 < iVar6" identifier < identifier) )) ;)) (if_statement "if (list->used != 0) {\n      uVar12 = (ulong)((long)piVar8 - (long)piVar4) >> 6;\n      uVar7 = (uint)uVar12 & 7;\n      piVar5 = piVar4;\n      if ((uVar12 & 7) == 0) goto LAB_00173282;\n      piVar5 = &list[2].used;\n      if (*piVar4 != 0) {\n        if (uVar7 == 1) goto LAB_00173282;\n        piVar4 = piVar5;\n        if ((uVar7 == 2) ||\n           (((uVar7 == 3 ||\n             (((uVar7 == 4 ||\n               (((uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&\n                (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) && (piVar5 = piVar4 + 0x10, *piVar4 != 0))\n             )) && (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) {\n          iVar6 = *piVar4;\n          piVar5 = piVar4 + 0x10;\n          while (iVar6 != 0) {\nLAB_00173282:\n            if (piVar5 == piVar8) goto LAB_00173790;\n            if (((*piVar5 == 0) || (piVar5[0x10] == 0)) ||\n               (((piVar5[0x20] == 0 ||\n                 (((piVar5[0x30] == 0 || (piVar5[0x40] == 0)) || (piVar5[0x50] == 0)))) ||\n                (piVar5[0x60] == 0)))) break;\n            iVar6 = piVar5[0x70];\n            piVar5 = piVar5 + 0x80;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(list->used != 0)" ( (binary_expression "list->used != 0" (field_expression "list->used" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n      uVar12 = (ulong)((long)piVar8 - (long)piVar4) >> 6;\n      uVar7 = (uint)uVar12 & 7;\n      piVar5 = piVar4;\n      if ((uVar12 & 7) == 0) goto LAB_00173282;\n      piVar5 = &list[2].used;\n      if (*piVar4 != 0) {\n        if (uVar7 == 1) goto LAB_00173282;\n        piVar4 = piVar5;\n        if ((uVar7 == 2) ||\n           (((uVar7 == 3 ||\n             (((uVar7 == 4 ||\n               (((uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&\n                (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) && (piVar5 = piVar4 + 0x10, *piVar4 != 0))\n             )) && (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) {\n          iVar6 = *piVar4;\n          piVar5 = piVar4 + 0x10;\n          while (iVar6 != 0) {\nLAB_00173282:\n            if (piVar5 == piVar8) goto LAB_00173790;\n            if (((*piVar5 == 0) || (piVar5[0x10] == 0)) ||\n               (((piVar5[0x20] == 0 ||\n                 (((piVar5[0x30] == 0 || (piVar5[0x40] == 0)) || (piVar5[0x50] == 0)))) ||\n                (piVar5[0x60] == 0)))) break;\n            iVar6 = piVar5[0x70];\n            piVar5 = piVar5 + 0x80;\n          }\n        }\n      }\n    }" { (expression_statement "uVar12 = (ulong)((long)piVar8 - (long)piVar4) >> 6;" (assignment_expression "uVar12 = (ulong)((long)piVar8 - (long)piVar4) >> 6" identifier = (binary_expression "(ulong)((long)piVar8 - (long)piVar4) >> 6" (call_expression "(ulong)((long)piVar8 - (long)piVar4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)piVar8 - (long)piVar4)" ( (binary_expression "(long)piVar8 - (long)piVar4" (cast_expression "(long)piVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)piVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) >> number_literal)) ;) (expression_statement "uVar7 = (uint)uVar12 & 7;" (assignment_expression "uVar7 = (uint)uVar12 & 7" identifier = (binary_expression "(uint)uVar12 & 7" (cast_expression "(uint)uVar12" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "piVar5 = piVar4;" (assignment_expression "piVar5 = piVar4" identifier = identifier) ;) (if_statement "if ((uVar12 & 7) == 0) goto LAB_00173282;" if (parenthesized_expression "((uVar12 & 7) == 0)" ( (binary_expression "(uVar12 & 7) == 0" (parenthesized_expression "(uVar12 & 7)" ( (binary_expression "uVar12 & 7" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00173282;" goto statement_identifier ;)) (expression_statement "piVar5 = &list[2].used;" (assignment_expression "piVar5 = &list[2].used" identifier = (pointer_expression "&list[2].used" & (field_expression "list[2].used" (subscript_expression "list[2]" identifier [ number_literal ]) . field_identifier))) ;) (if_statement "if (*piVar4 != 0) {\n        if (uVar7 == 1) goto LAB_00173282;\n        piVar4 = piVar5;\n        if ((uVar7 == 2) ||\n           (((uVar7 == 3 ||\n             (((uVar7 == 4 ||\n               (((uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&\n                (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) && (piVar5 = piVar4 + 0x10, *piVar4 != 0))\n             )) && (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) {\n          iVar6 = *piVar4;\n          piVar5 = piVar4 + 0x10;\n          while (iVar6 != 0) {\nLAB_00173282:\n            if (piVar5 == piVar8) goto LAB_00173790;\n            if (((*piVar5 == 0) || (piVar5[0x10] == 0)) ||\n               (((piVar5[0x20] == 0 ||\n                 (((piVar5[0x30] == 0 || (piVar5[0x40] == 0)) || (piVar5[0x50] == 0)))) ||\n                (piVar5[0x60] == 0)))) break;\n            iVar6 = piVar5[0x70];\n            piVar5 = piVar5 + 0x80;\n          }\n        }\n      }" if (parenthesized_expression "(*piVar4 != 0)" ( (binary_expression "*piVar4 != 0" (pointer_expression "*piVar4" * identifier) != number_literal) )) (compound_statement "{\n        if (uVar7 == 1) goto LAB_00173282;\n        piVar4 = piVar5;\n        if ((uVar7 == 2) ||\n           (((uVar7 == 3 ||\n             (((uVar7 == 4 ||\n               (((uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&\n                (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) && (piVar5 = piVar4 + 0x10, *piVar4 != 0))\n             )) && (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) {\n          iVar6 = *piVar4;\n          piVar5 = piVar4 + 0x10;\n          while (iVar6 != 0) {\nLAB_00173282:\n            if (piVar5 == piVar8) goto LAB_00173790;\n            if (((*piVar5 == 0) || (piVar5[0x10] == 0)) ||\n               (((piVar5[0x20] == 0 ||\n                 (((piVar5[0x30] == 0 || (piVar5[0x40] == 0)) || (piVar5[0x50] == 0)))) ||\n                (piVar5[0x60] == 0)))) break;\n            iVar6 = piVar5[0x70];\n            piVar5 = piVar5 + 0x80;\n          }\n        }\n      }" { (if_statement "if (uVar7 == 1) goto LAB_00173282;" if (parenthesized_expression "(uVar7 == 1)" ( (binary_expression "uVar7 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00173282;" goto statement_identifier ;)) (expression_statement "piVar4 = piVar5;" (assignment_expression "piVar4 = piVar5" identifier = identifier) ;) (if_statement "if ((uVar7 == 2) ||\n           (((uVar7 == 3 ||\n             (((uVar7 == 4 ||\n               (((uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&\n                (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) && (piVar5 = piVar4 + 0x10, *piVar4 != 0))\n             )) && (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) {\n          iVar6 = *piVar4;\n          piVar5 = piVar4 + 0x10;\n          while (iVar6 != 0) {\nLAB_00173282:\n            if (piVar5 == piVar8) goto LAB_00173790;\n            if (((*piVar5 == 0) || (piVar5[0x10] == 0)) ||\n               (((piVar5[0x20] == 0 ||\n                 (((piVar5[0x30] == 0 || (piVar5[0x40] == 0)) || (piVar5[0x50] == 0)))) ||\n                (piVar5[0x60] == 0)))) break;\n            iVar6 = piVar5[0x70];\n            piVar5 = piVar5 + 0x80;\n          }\n        }" if (parenthesized_expression "((uVar7 == 2) ||\n           (((uVar7 == 3 ||\n             (((uVar7 == 4 ||\n               (((uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&\n                (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) && (piVar5 = piVar4 + 0x10, *piVar4 != 0))\n             )) && (piVar4 = piVar5 + 0x10, *piVar5 != 0))))" ( (binary_expression "(uVar7 == 2) ||\n           (((uVar7 == 3 ||\n             (((uVar7 == 4 ||\n               (((uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&\n                (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) && (piVar5 = piVar4 + 0x10, *piVar4 != 0))\n             )) && (piVar4 = piVar5 + 0x10, *piVar5 != 0)))" (parenthesized_expression "(uVar7 == 2)" ( (binary_expression "uVar7 == 2" identifier == number_literal) )) || (parenthesized_expression "(((uVar7 == 3 ||\n             (((uVar7 == 4 ||\n               (((uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&\n                (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) && (piVar5 = piVar4 + 0x10, *piVar4 != 0))\n             )) && (piVar4 = piVar5 + 0x10, *piVar5 != 0)))" ( (parenthesized_expression "((uVar7 == 3 ||\n             (((uVar7 == 4 ||\n               (((uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&\n                (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) && (piVar5 = piVar4 + 0x10, *piVar4 != 0))\n             )) && (piVar4 = piVar5 + 0x10, *piVar5 != 0))" ( (binary_expression "(uVar7 == 3 ||\n             (((uVar7 == 4 ||\n               (((uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&\n                (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) && (piVar5 = piVar4 + 0x10, *piVar4 != 0))\n             )) && (piVar4 = piVar5 + 0x10, *piVar5 != 0)" (parenthesized_expression "(uVar7 == 3 ||\n             (((uVar7 == 4 ||\n               (((uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&\n                (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) && (piVar5 = piVar4 + 0x10, *piVar4 != 0))\n             ))" ( (binary_expression "uVar7 == 3 ||\n             (((uVar7 == 4 ||\n               (((uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&\n                (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) && (piVar5 = piVar4 + 0x10, *piVar4 != 0))\n             )" (binary_expression "uVar7 == 3" identifier == number_literal) || (parenthesized_expression "(((uVar7 == 4 ||\n               (((uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&\n                (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) && (piVar5 = piVar4 + 0x10, *piVar4 != 0))\n             )" ( (parenthesized_expression "((uVar7 == 4 ||\n               (((uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&\n                (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) && (piVar5 = piVar4 + 0x10, *piVar4 != 0))" ( (binary_expression "(uVar7 == 4 ||\n               (((uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&\n                (piVar4 = piVar5 + 0x10, *piVar5 != 0)))) && (piVar5 = piVar4 + 0x10, *piVar4 != 0)" (parenthesized_expression "(uVar7 == 4 ||\n               (((uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&\n                (piVar4 = piVar5 + 0x10, *piVar5 != 0))))" ( (binary_expression "uVar7 == 4 ||\n               (((uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&\n                (piVar4 = piVar5 + 0x10, *piVar5 != 0)))" (binary_expression "uVar7 == 4" identifier == number_literal) || (parenthesized_expression "(((uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&\n                (piVar4 = piVar5 + 0x10, *piVar5 != 0)))" ( (parenthesized_expression "((uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&\n                (piVar4 = piVar5 + 0x10, *piVar5 != 0))" ( (binary_expression "(uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))) &&\n                (piVar4 = piVar5 + 0x10, *piVar5 != 0)" (parenthesized_expression "(uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0))))" ( (binary_expression "uVar7 == 5 ||\n                 (((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))" (binary_expression "uVar7 == 5" identifier == number_literal) || (parenthesized_expression "(((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)))" ( (parenthesized_expression "((uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0))" ( (binary_expression "(uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)) &&\n                  (piVar5 = piVar4 + 0x10, *piVar4 != 0)" (parenthesized_expression "(uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0))" ( (binary_expression "uVar7 == 6 || (piVar4 = &list[3].used, list[2].used != 0)" (binary_expression "uVar7 == 6" identifier == number_literal) || (parenthesized_expression "(piVar4 = &list[3].used, list[2].used != 0)" ( (comma_expression "piVar4 = &list[3].used, list[2].used != 0" (assignment_expression "piVar4 = &list[3].used" identifier = (pointer_expression "&list[3].used" & (field_expression "list[3].used" (subscript_expression "list[3]" identifier [ number_literal ]) . field_identifier))) , (binary_expression "list[2].used != 0" (field_expression "list[2].used" (subscript_expression "list[2]" identifier [ number_literal ]) . field_identifier) != number_literal)) ))) )) && (parenthesized_expression "(piVar5 = piVar4 + 0x10, *piVar4 != 0)" ( (comma_expression "piVar5 = piVar4 + 0x10, *piVar4 != 0" (assignment_expression "piVar5 = piVar4 + 0x10" identifier = (binary_expression "piVar4 + 0x10" identifier + number_literal)) , (binary_expression "*piVar4 != 0" (pointer_expression "*piVar4" * identifier) != number_literal)) ))) )) ))) )) && (parenthesized_expression "(piVar4 = piVar5 + 0x10, *piVar5 != 0)" ( (comma_expression "piVar4 = piVar5 + 0x10, *piVar5 != 0" (assignment_expression "piVar4 = piVar5 + 0x10" identifier = (binary_expression "piVar5 + 0x10" identifier + number_literal)) , (binary_expression "*piVar5 != 0" (pointer_expression "*piVar5" * identifier) != number_literal)) ))) )) ))) )) && (parenthesized_expression "(piVar5 = piVar4 + 0x10, *piVar4 != 0)" ( (comma_expression "piVar5 = piVar4 + 0x10, *piVar4 != 0" (assignment_expression "piVar5 = piVar4 + 0x10" identifier = (binary_expression "piVar4 + 0x10" identifier + number_literal)) , (binary_expression "*piVar4 != 0" (pointer_expression "*piVar4" * identifier) != number_literal)) ))) )) ))) )) && (parenthesized_expression "(piVar4 = piVar5 + 0x10, *piVar5 != 0)" ( (comma_expression "piVar4 = piVar5 + 0x10, *piVar5 != 0" (assignment_expression "piVar4 = piVar5 + 0x10" identifier = (binary_expression "piVar5 + 0x10" identifier + number_literal)) , (binary_expression "*piVar5 != 0" (pointer_expression "*piVar5" * identifier) != number_literal)) ))) )) ))) )) (compound_statement "{\n          iVar6 = *piVar4;\n          piVar5 = piVar4 + 0x10;\n          while (iVar6 != 0) {\nLAB_00173282:\n            if (piVar5 == piVar8) goto LAB_00173790;\n            if (((*piVar5 == 0) || (piVar5[0x10] == 0)) ||\n               (((piVar5[0x20] == 0 ||\n                 (((piVar5[0x30] == 0 || (piVar5[0x40] == 0)) || (piVar5[0x50] == 0)))) ||\n                (piVar5[0x60] == 0)))) break;\n            iVar6 = piVar5[0x70];\n            piVar5 = piVar5 + 0x80;\n          }\n        }" { (expression_statement "iVar6 = *piVar4;" (assignment_expression "iVar6 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "piVar5 = piVar4 + 0x10;" (assignment_expression "piVar5 = piVar4 + 0x10" identifier = (binary_expression "piVar4 + 0x10" identifier + number_literal)) ;) (while_statement "while (iVar6 != 0) {\nLAB_00173282:\n            if (piVar5 == piVar8) goto LAB_00173790;\n            if (((*piVar5 == 0) || (piVar5[0x10] == 0)) ||\n               (((piVar5[0x20] == 0 ||\n                 (((piVar5[0x30] == 0 || (piVar5[0x40] == 0)) || (piVar5[0x50] == 0)))) ||\n                (piVar5[0x60] == 0)))) break;\n            iVar6 = piVar5[0x70];\n            piVar5 = piVar5 + 0x80;\n          }" while (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00173282:\n            if (piVar5 == piVar8) goto LAB_00173790;\n            if (((*piVar5 == 0) || (piVar5[0x10] == 0)) ||\n               (((piVar5[0x20] == 0 ||\n                 (((piVar5[0x30] == 0 || (piVar5[0x40] == 0)) || (piVar5[0x50] == 0)))) ||\n                (piVar5[0x60] == 0)))) break;\n            iVar6 = piVar5[0x70];\n            piVar5 = piVar5 + 0x80;\n          }" { (labeled_statement "LAB_00173282:\n            if (piVar5 == piVar8) goto LAB_00173790;" statement_identifier : (if_statement "if (piVar5 == piVar8) goto LAB_00173790;" if (parenthesized_expression "(piVar5 == piVar8)" ( (binary_expression "piVar5 == piVar8" identifier == identifier) )) (goto_statement "goto LAB_00173790;" goto statement_identifier ;))) (if_statement "if (((*piVar5 == 0) || (piVar5[0x10] == 0)) ||\n               (((piVar5[0x20] == 0 ||\n                 (((piVar5[0x30] == 0 || (piVar5[0x40] == 0)) || (piVar5[0x50] == 0)))) ||\n                (piVar5[0x60] == 0)))) break;" if (parenthesized_expression "(((*piVar5 == 0) || (piVar5[0x10] == 0)) ||\n               (((piVar5[0x20] == 0 ||\n                 (((piVar5[0x30] == 0 || (piVar5[0x40] == 0)) || (piVar5[0x50] == 0)))) ||\n                (piVar5[0x60] == 0))))" ( (binary_expression "((*piVar5 == 0) || (piVar5[0x10] == 0)) ||\n               (((piVar5[0x20] == 0 ||\n                 (((piVar5[0x30] == 0 || (piVar5[0x40] == 0)) || (piVar5[0x50] == 0)))) ||\n                (piVar5[0x60] == 0)))" (parenthesized_expression "((*piVar5 == 0) || (piVar5[0x10] == 0))" ( (binary_expression "(*piVar5 == 0) || (piVar5[0x10] == 0)" (parenthesized_expression "(*piVar5 == 0)" ( (binary_expression "*piVar5 == 0" (pointer_expression "*piVar5" * identifier) == number_literal) )) || (parenthesized_expression "(piVar5[0x10] == 0)" ( (binary_expression "piVar5[0x10] == 0" (subscript_expression "piVar5[0x10]" identifier [ number_literal ]) == number_literal) ))) )) || (parenthesized_expression "(((piVar5[0x20] == 0 ||\n                 (((piVar5[0x30] == 0 || (piVar5[0x40] == 0)) || (piVar5[0x50] == 0)))) ||\n                (piVar5[0x60] == 0)))" ( (parenthesized_expression "((piVar5[0x20] == 0 ||\n                 (((piVar5[0x30] == 0 || (piVar5[0x40] == 0)) || (piVar5[0x50] == 0)))) ||\n                (piVar5[0x60] == 0))" ( (binary_expression "(piVar5[0x20] == 0 ||\n                 (((piVar5[0x30] == 0 || (piVar5[0x40] == 0)) || (piVar5[0x50] == 0)))) ||\n                (piVar5[0x60] == 0)" (parenthesized_expression "(piVar5[0x20] == 0 ||\n                 (((piVar5[0x30] == 0 || (piVar5[0x40] == 0)) || (piVar5[0x50] == 0))))" ( (binary_expression "piVar5[0x20] == 0 ||\n                 (((piVar5[0x30] == 0 || (piVar5[0x40] == 0)) || (piVar5[0x50] == 0)))" (binary_expression "piVar5[0x20] == 0" (subscript_expression "piVar5[0x20]" identifier [ number_literal ]) == number_literal) || (parenthesized_expression "(((piVar5[0x30] == 0 || (piVar5[0x40] == 0)) || (piVar5[0x50] == 0)))" ( (parenthesized_expression "((piVar5[0x30] == 0 || (piVar5[0x40] == 0)) || (piVar5[0x50] == 0))" ( (binary_expression "(piVar5[0x30] == 0 || (piVar5[0x40] == 0)) || (piVar5[0x50] == 0)" (parenthesized_expression "(piVar5[0x30] == 0 || (piVar5[0x40] == 0))" ( (binary_expression "piVar5[0x30] == 0 || (piVar5[0x40] == 0)" (binary_expression "piVar5[0x30] == 0" (subscript_expression "piVar5[0x30]" identifier [ number_literal ]) == number_literal) || (parenthesized_expression "(piVar5[0x40] == 0)" ( (binary_expression "piVar5[0x40] == 0" (subscript_expression "piVar5[0x40]" identifier [ number_literal ]) == number_literal) ))) )) || (parenthesized_expression "(piVar5[0x50] == 0)" ( (binary_expression "piVar5[0x50] == 0" (subscript_expression "piVar5[0x50]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) || (parenthesized_expression "(piVar5[0x60] == 0)" ( (binary_expression "piVar5[0x60] == 0" (subscript_expression "piVar5[0x60]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = piVar5[0x70];" (assignment_expression "iVar6 = piVar5[0x70]" identifier = (subscript_expression "piVar5[0x70]" identifier [ number_literal ])) ;) (expression_statement "piVar5 = piVar5 + 0x80;" (assignment_expression "piVar5 = piVar5 + 0x80" identifier = (binary_expression "piVar5 + 0x80" identifier + number_literal)) ;) })) })) })) })) })) (labeled_statement "LAB_00172f90:\n  wVar3 = L'\a';" statement_identifier : (expression_statement "wVar3 = L'\a';" (assignment_expression "wVar3 = L'\a'" identifier = (char_literal "L'\a'" L' escape_sequence ')) ;)) (labeled_statement "LAB_00172f95:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return wVar3;" return identifier ;) })))
(translation_unit "ulong der_decode_sequence_ex(char *param_1,ulong param_2,long param_3,int param_4,int param_5)\n\n{\n  byte bVar1;\n  undefined8 *puVar2;\n  int iVar3;\n  ulong uVar4;\n  int *piVar5;\n  uint uVar6;\n  int *piVar7;\n  int *piVar8;\n  ulong uVar9;\n  ulong uVar10;\n  undefined8 uVar11;\n  ulong uVar12;\n  char *pcVar13;\n  char *pcVar14;\n  int iVar15;\n  long in_FS_OFFSET;\n  undefined8 local_50;\n  ulong local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == (char *)0x0) {\n                    \n    crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);\n  }\n  if (param_3 == 0) {\n                    \n    crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);\n  }\n  if (1 < param_2) {\n    uVar4 = 7;\n    if (1 < (byte)(*param_1 - 0x30U)) goto LAB_00172f95;\n    bVar1 = param_1[1];\n    uVar9 = (ulong)bVar1;\n    uVar12 = 2;\n    if ((char)bVar1 < '\0') {\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar10 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar10 + 2;\n      if (param_2 < uVar12) goto LAB_00172f95;\n      uVar4 = 0;\n      uVar6 = bVar1 & 7;\n      pcVar14 = param_1;\n      if ((bVar1 & 7) != 0) {\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }\n      do {\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      } while (pcVar13 != param_1 + uVar10);\n    }\nLAB_00172dda:\n    uVar4 = 7;\n    if (param_2 < uVar12 + uVar9) goto LAB_00172f95;\n    if (param_4 < 1) {\nLAB_00173790:\n      uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);\n      goto LAB_00172f95;\n    }\n    piVar5 = (int *)(param_3 + 0x58);\n    piVar8 = (int *)(param_3 + 0x18);\n    piVar7 = piVar5 + (ulong)(param_4 - 1) * 0x10;\n    uVar6 = (int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U & 7;\n    if (uVar6 == 0) goto LAB_00172e99;\n    if (uVar6 != 1) {\n      if (uVar6 != 2) {\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }\n      *piVar8 = 0;\n      piVar8 = piVar8 + 0x10;\n    }\n    *piVar8 = 0;\n    for (piVar8 = piVar8 + 0x10; piVar8 != piVar7; piVar8 = piVar8 + 0x80) {\nLAB_00172e99:\n      *piVar8 = 0;\n      piVar8[0x10] = 0;\n      piVar8[0x20] = 0;\n      piVar8[0x30] = 0;\n      piVar8[0x40] = 0;\n      piVar8[0x50] = 0;\n      piVar8[0x60] = 0;\n      piVar8[0x70] = 0;\n    }\n    iVar15 = 0;\nLAB_00172f1e:\n    do {\n      local_48 = 0;\n      piVar8 = (int *)((long)iVar15 * 0x40 + param_3);\n      local_50 = *(undefined8 *)(piVar8 + 4);\n      iVar3 = *piVar8;\n      puVar2 = *(undefined8 **)(piVar8 + 2);\n      if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;\n      if (iVar3 == 0) break;\n      switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (iVar3 != 0) goto LAB_00172f95;\n      uVar12 = uVar12 + local_48;\n      uVar9 = uVar9 - local_48;\nswitchD_00172f6d_caseD_14:\n      piVar8[6] = 1;\n      if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < param_4);\n    if (*(int *)(param_3 + 0x18) != 0) {\n      uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6;\n      uVar6 = (uint)uVar4 & 7;\n      piVar8 = piVar5;\n      if ((uVar4 & 7) == 0) goto LAB_00173282;\n      piVar8 = (int *)(param_3 + 0x98);\n      if (*piVar5 != 0) {\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }\n    }\n  }\nLAB_00172f90:\n  uVar4 = 7;\nLAB_00172f95:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return uVar4;\n}\n\n" (function_definition "ulong der_decode_sequence_ex(char *param_1,ulong param_2,long param_3,int param_4,int param_5)\n\n{\n  byte bVar1;\n  undefined8 *puVar2;\n  int iVar3;\n  ulong uVar4;\n  int *piVar5;\n  uint uVar6;\n  int *piVar7;\n  int *piVar8;\n  ulong uVar9;\n  ulong uVar10;\n  undefined8 uVar11;\n  ulong uVar12;\n  char *pcVar13;\n  char *pcVar14;\n  int iVar15;\n  long in_FS_OFFSET;\n  undefined8 local_50;\n  ulong local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == (char *)0x0) {\n                    \n    crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);\n  }\n  if (param_3 == 0) {\n                    \n    crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);\n  }\n  if (1 < param_2) {\n    uVar4 = 7;\n    if (1 < (byte)(*param_1 - 0x30U)) goto LAB_00172f95;\n    bVar1 = param_1[1];\n    uVar9 = (ulong)bVar1;\n    uVar12 = 2;\n    if ((char)bVar1 < '\0') {\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar10 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar10 + 2;\n      if (param_2 < uVar12) goto LAB_00172f95;\n      uVar4 = 0;\n      uVar6 = bVar1 & 7;\n      pcVar14 = param_1;\n      if ((bVar1 & 7) != 0) {\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }\n      do {\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      } while (pcVar13 != param_1 + uVar10);\n    }\nLAB_00172dda:\n    uVar4 = 7;\n    if (param_2 < uVar12 + uVar9) goto LAB_00172f95;\n    if (param_4 < 1) {\nLAB_00173790:\n      uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);\n      goto LAB_00172f95;\n    }\n    piVar5 = (int *)(param_3 + 0x58);\n    piVar8 = (int *)(param_3 + 0x18);\n    piVar7 = piVar5 + (ulong)(param_4 - 1) * 0x10;\n    uVar6 = (int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U & 7;\n    if (uVar6 == 0) goto LAB_00172e99;\n    if (uVar6 != 1) {\n      if (uVar6 != 2) {\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }\n      *piVar8 = 0;\n      piVar8 = piVar8 + 0x10;\n    }\n    *piVar8 = 0;\n    for (piVar8 = piVar8 + 0x10; piVar8 != piVar7; piVar8 = piVar8 + 0x80) {\nLAB_00172e99:\n      *piVar8 = 0;\n      piVar8[0x10] = 0;\n      piVar8[0x20] = 0;\n      piVar8[0x30] = 0;\n      piVar8[0x40] = 0;\n      piVar8[0x50] = 0;\n      piVar8[0x60] = 0;\n      piVar8[0x70] = 0;\n    }\n    iVar15 = 0;\nLAB_00172f1e:\n    do {\n      local_48 = 0;\n      piVar8 = (int *)((long)iVar15 * 0x40 + param_3);\n      local_50 = *(undefined8 *)(piVar8 + 4);\n      iVar3 = *piVar8;\n      puVar2 = *(undefined8 **)(piVar8 + 2);\n      if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;\n      if (iVar3 == 0) break;\n      switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (iVar3 != 0) goto LAB_00172f95;\n      uVar12 = uVar12 + local_48;\n      uVar9 = uVar9 - local_48;\nswitchD_00172f6d_caseD_14:\n      piVar8[6] = 1;\n      if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < param_4);\n    if (*(int *)(param_3 + 0x18) != 0) {\n      uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6;\n      uVar6 = (uint)uVar4 & 7;\n      piVar8 = piVar5;\n      if ((uVar4 & 7) == 0) goto LAB_00173282;\n      piVar8 = (int *)(param_3 + 0x98);\n      if (*piVar5 != 0) {\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }\n    }\n  }\nLAB_00172f90:\n  uVar4 = 7;\nLAB_00172f95:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return uVar4;\n}" type_identifier (function_declarator "der_decode_sequence_ex(char *param_1,ulong param_2,long param_3,int param_4,int param_5)" identifier (parameter_list "(char *param_1,ulong param_2,long param_3,int param_4,int param_5)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "ulong param_2" type_identifier identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  undefined8 *puVar2;\n  int iVar3;\n  ulong uVar4;\n  int *piVar5;\n  uint uVar6;\n  int *piVar7;\n  int *piVar8;\n  ulong uVar9;\n  ulong uVar10;\n  undefined8 uVar11;\n  ulong uVar12;\n  char *pcVar13;\n  char *pcVar14;\n  int iVar15;\n  long in_FS_OFFSET;\n  undefined8 local_50;\n  ulong local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == (char *)0x0) {\n                    \n    crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);\n  }\n  if (param_3 == 0) {\n                    \n    crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);\n  }\n  if (1 < param_2) {\n    uVar4 = 7;\n    if (1 < (byte)(*param_1 - 0x30U)) goto LAB_00172f95;\n    bVar1 = param_1[1];\n    uVar9 = (ulong)bVar1;\n    uVar12 = 2;\n    if ((char)bVar1 < '\0') {\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar10 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar10 + 2;\n      if (param_2 < uVar12) goto LAB_00172f95;\n      uVar4 = 0;\n      uVar6 = bVar1 & 7;\n      pcVar14 = param_1;\n      if ((bVar1 & 7) != 0) {\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }\n      do {\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      } while (pcVar13 != param_1 + uVar10);\n    }\nLAB_00172dda:\n    uVar4 = 7;\n    if (param_2 < uVar12 + uVar9) goto LAB_00172f95;\n    if (param_4 < 1) {\nLAB_00173790:\n      uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);\n      goto LAB_00172f95;\n    }\n    piVar5 = (int *)(param_3 + 0x58);\n    piVar8 = (int *)(param_3 + 0x18);\n    piVar7 = piVar5 + (ulong)(param_4 - 1) * 0x10;\n    uVar6 = (int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U & 7;\n    if (uVar6 == 0) goto LAB_00172e99;\n    if (uVar6 != 1) {\n      if (uVar6 != 2) {\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }\n      *piVar8 = 0;\n      piVar8 = piVar8 + 0x10;\n    }\n    *piVar8 = 0;\n    for (piVar8 = piVar8 + 0x10; piVar8 != piVar7; piVar8 = piVar8 + 0x80) {\nLAB_00172e99:\n      *piVar8 = 0;\n      piVar8[0x10] = 0;\n      piVar8[0x20] = 0;\n      piVar8[0x30] = 0;\n      piVar8[0x40] = 0;\n      piVar8[0x50] = 0;\n      piVar8[0x60] = 0;\n      piVar8[0x70] = 0;\n    }\n    iVar15 = 0;\nLAB_00172f1e:\n    do {\n      local_48 = 0;\n      piVar8 = (int *)((long)iVar15 * 0x40 + param_3);\n      local_50 = *(undefined8 *)(piVar8 + 4);\n      iVar3 = *piVar8;\n      puVar2 = *(undefined8 **)(piVar8 + 2);\n      if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;\n      if (iVar3 == 0) break;\n      switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (iVar3 != 0) goto LAB_00172f95;\n      uVar12 = uVar12 + local_48;\n      uVar9 = uVar9 - local_48;\nswitchD_00172f6d_caseD_14:\n      piVar8[6] = 1;\n      if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < param_4);\n    if (*(int *)(param_3 + 0x18) != 0) {\n      uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6;\n      uVar6 = (uint)uVar4 & 7;\n      piVar8 = piVar5;\n      if ((uVar4 & 7) == 0) goto LAB_00173282;\n      piVar8 = (int *)(param_3 + 0x98);\n      if (*piVar5 != 0) {\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }\n    }\n  }\nLAB_00172f90:\n  uVar4 = 7;\nLAB_00172f95:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return uVar4;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined8 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_50;" type_identifier identifier ;) (declaration "ulong local_48;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (param_1 == (char *)0x0) {\n                    \n    crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);\n  }" if (parenthesized_expression "(param_1 == (char *)0x0)" ( (binary_expression "param_1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);\n  }" { (expression_statement "crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);" (call_expression "crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24)" identifier (argument_list "("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24)" ( (string_literal ""in != NULL"" " string_content ") , (string_literal ""src/pk/asn1/der/sequence/der_decode_sequence_ex.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_3 == 0) {\n                    \n    crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);\n  }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);\n  }" { (expression_statement "crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);" (call_expression "crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25)" identifier (argument_list "("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25)" ( (string_literal ""list != NULL"" " string_content ") , (string_literal ""src/pk/asn1/der/sequence/der_decode_sequence_ex.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (1 < param_2) {\n    uVar4 = 7;\n    if (1 < (byte)(*param_1 - 0x30U)) goto LAB_00172f95;\n    bVar1 = param_1[1];\n    uVar9 = (ulong)bVar1;\n    uVar12 = 2;\n    if ((char)bVar1 < '\0') {\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar10 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar10 + 2;\n      if (param_2 < uVar12) goto LAB_00172f95;\n      uVar4 = 0;\n      uVar6 = bVar1 & 7;\n      pcVar14 = param_1;\n      if ((bVar1 & 7) != 0) {\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }\n      do {\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      } while (pcVar13 != param_1 + uVar10);\n    }\nLAB_00172dda:\n    uVar4 = 7;\n    if (param_2 < uVar12 + uVar9) goto LAB_00172f95;\n    if (param_4 < 1) {\nLAB_00173790:\n      uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);\n      goto LAB_00172f95;\n    }\n    piVar5 = (int *)(param_3 + 0x58);\n    piVar8 = (int *)(param_3 + 0x18);\n    piVar7 = piVar5 + (ulong)(param_4 - 1) * 0x10;\n    uVar6 = (int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U & 7;\n    if (uVar6 == 0) goto LAB_00172e99;\n    if (uVar6 != 1) {\n      if (uVar6 != 2) {\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }\n      *piVar8 = 0;\n      piVar8 = piVar8 + 0x10;\n    }\n    *piVar8 = 0;\n    for (piVar8 = piVar8 + 0x10; piVar8 != piVar7; piVar8 = piVar8 + 0x80) {\nLAB_00172e99:\n      *piVar8 = 0;\n      piVar8[0x10] = 0;\n      piVar8[0x20] = 0;\n      piVar8[0x30] = 0;\n      piVar8[0x40] = 0;\n      piVar8[0x50] = 0;\n      piVar8[0x60] = 0;\n      piVar8[0x70] = 0;\n    }\n    iVar15 = 0;\nLAB_00172f1e:\n    do {\n      local_48 = 0;\n      piVar8 = (int *)((long)iVar15 * 0x40 + param_3);\n      local_50 = *(undefined8 *)(piVar8 + 4);\n      iVar3 = *piVar8;\n      puVar2 = *(undefined8 **)(piVar8 + 2);\n      if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;\n      if (iVar3 == 0) break;\n      switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (iVar3 != 0) goto LAB_00172f95;\n      uVar12 = uVar12 + local_48;\n      uVar9 = uVar9 - local_48;\nswitchD_00172f6d_caseD_14:\n      piVar8[6] = 1;\n      if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < param_4);\n    if (*(int *)(param_3 + 0x18) != 0) {\n      uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6;\n      uVar6 = (uint)uVar4 & 7;\n      piVar8 = piVar5;\n      if ((uVar4 & 7) == 0) goto LAB_00173282;\n      piVar8 = (int *)(param_3 + 0x98);\n      if (*piVar5 != 0) {\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(1 < param_2)" ( (binary_expression "1 < param_2" number_literal < identifier) )) (compound_statement "{\n    uVar4 = 7;\n    if (1 < (byte)(*param_1 - 0x30U)) goto LAB_00172f95;\n    bVar1 = param_1[1];\n    uVar9 = (ulong)bVar1;\n    uVar12 = 2;\n    if ((char)bVar1 < '\0') {\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar10 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar10 + 2;\n      if (param_2 < uVar12) goto LAB_00172f95;\n      uVar4 = 0;\n      uVar6 = bVar1 & 7;\n      pcVar14 = param_1;\n      if ((bVar1 & 7) != 0) {\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }\n      do {\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      } while (pcVar13 != param_1 + uVar10);\n    }\nLAB_00172dda:\n    uVar4 = 7;\n    if (param_2 < uVar12 + uVar9) goto LAB_00172f95;\n    if (param_4 < 1) {\nLAB_00173790:\n      uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);\n      goto LAB_00172f95;\n    }\n    piVar5 = (int *)(param_3 + 0x58);\n    piVar8 = (int *)(param_3 + 0x18);\n    piVar7 = piVar5 + (ulong)(param_4 - 1) * 0x10;\n    uVar6 = (int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U & 7;\n    if (uVar6 == 0) goto LAB_00172e99;\n    if (uVar6 != 1) {\n      if (uVar6 != 2) {\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }\n      *piVar8 = 0;\n      piVar8 = piVar8 + 0x10;\n    }\n    *piVar8 = 0;\n    for (piVar8 = piVar8 + 0x10; piVar8 != piVar7; piVar8 = piVar8 + 0x80) {\nLAB_00172e99:\n      *piVar8 = 0;\n      piVar8[0x10] = 0;\n      piVar8[0x20] = 0;\n      piVar8[0x30] = 0;\n      piVar8[0x40] = 0;\n      piVar8[0x50] = 0;\n      piVar8[0x60] = 0;\n      piVar8[0x70] = 0;\n    }\n    iVar15 = 0;\nLAB_00172f1e:\n    do {\n      local_48 = 0;\n      piVar8 = (int *)((long)iVar15 * 0x40 + param_3);\n      local_50 = *(undefined8 *)(piVar8 + 4);\n      iVar3 = *piVar8;\n      puVar2 = *(undefined8 **)(piVar8 + 2);\n      if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;\n      if (iVar3 == 0) break;\n      switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (iVar3 != 0) goto LAB_00172f95;\n      uVar12 = uVar12 + local_48;\n      uVar9 = uVar9 - local_48;\nswitchD_00172f6d_caseD_14:\n      piVar8[6] = 1;\n      if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < param_4);\n    if (*(int *)(param_3 + 0x18) != 0) {\n      uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6;\n      uVar6 = (uint)uVar4 & 7;\n      piVar8 = piVar5;\n      if ((uVar4 & 7) == 0) goto LAB_00173282;\n      piVar8 = (int *)(param_3 + 0x98);\n      if (*piVar5 != 0) {\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "uVar4 = 7;" (assignment_expression "uVar4 = 7" identifier = number_literal) ;) (if_statement "if (1 < (byte)(*param_1 - 0x30U)) goto LAB_00172f95;" if (parenthesized_expression "(1 < (byte)(*param_1 - 0x30U))" ( (binary_expression "1 < (byte)(*param_1 - 0x30U)" number_literal < (call_expression "(byte)(*param_1 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*param_1 - 0x30U)" ( (binary_expression "*param_1 - 0x30U" (pointer_expression "*param_1" * identifier) - number_literal) )))) )) (goto_statement "goto LAB_00172f95;" goto statement_identifier ;)) (expression_statement "bVar1 = param_1[1];" (assignment_expression "bVar1 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = (ulong)bVar1;" (assignment_expression "uVar9 = (ulong)bVar1" identifier = (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar12 = 2;" (assignment_expression "uVar12 = 2" identifier = number_literal) ;) (if_statement "if ((char)bVar1 < '\0') {\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar10 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar10 + 2;\n      if (param_2 < uVar12) goto LAB_00172f95;\n      uVar4 = 0;\n      uVar6 = bVar1 & 7;\n      pcVar14 = param_1;\n      if ((bVar1 & 7) != 0) {\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }\n      do {\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      } while (pcVar13 != param_1 + uVar10);\n    }" if (parenthesized_expression "((char)bVar1 < '\0')" ( (binary_expression "(char)bVar1 < '\0'" (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar10 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar10 + 2;\n      if (param_2 < uVar12) goto LAB_00172f95;\n      uVar4 = 0;\n      uVar6 = bVar1 & 7;\n      pcVar14 = param_1;\n      if ((bVar1 & 7) != 0) {\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }\n      do {\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      } while (pcVar13 != param_1 + uVar10);\n    }" { (if_statement "if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;" if (parenthesized_expression "(2 < (byte)(bVar1 + 0x7f))" ( (binary_expression "2 < (byte)(bVar1 + 0x7f)" number_literal < (call_expression "(byte)(bVar1 + 0x7f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 + 0x7f)" ( (binary_expression "bVar1 + 0x7f" identifier + number_literal) )))) )) (goto_statement "goto LAB_00172f95;" goto statement_identifier ;)) (expression_statement "uVar10 = (ulong)(bVar1 & 0x7f);" (assignment_expression "uVar10 = (ulong)(bVar1 & 0x7f)" identifier = (call_expression "(ulong)(bVar1 & 0x7f)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(bVar1 & 0x7f)" ( (binary_expression "bVar1 & 0x7f" identifier & number_literal) )))) ;) (expression_statement "uVar12 = uVar10 + 2;" (assignment_expression "uVar12 = uVar10 + 2" identifier = (binary_expression "uVar10 + 2" identifier + number_literal)) ;) (if_statement "if (param_2 < uVar12) goto LAB_00172f95;" if (parenthesized_expression "(param_2 < uVar12)" ( (binary_expression "param_2 < uVar12" identifier < identifier) )) (goto_statement "goto LAB_00172f95;" goto statement_identifier ;)) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = bVar1 & 7;" (assignment_expression "uVar6 = bVar1 & 7" identifier = (binary_expression "bVar1 & 7" identifier & number_literal)) ;) (expression_statement "pcVar14 = param_1;" (assignment_expression "pcVar14 = param_1" identifier = identifier) ;) (if_statement "if ((bVar1 & 7) != 0) {\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }" if (parenthesized_expression "((bVar1 & 7) != 0)" ( (binary_expression "(bVar1 & 7) != 0" (parenthesized_expression "(bVar1 & 7)" ( (binary_expression "bVar1 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }" { (expression_statement "pcVar13 = param_1;" (assignment_expression "pcVar13 = param_1" identifier = identifier) ;) (if_statement "if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }" if (parenthesized_expression "(uVar6 != 1)" ( (binary_expression "uVar6 != 1" identifier != number_literal) )) (compound_statement "{\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }" { (if_statement "if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }" if (parenthesized_expression "(uVar6 != 2)" ( (binary_expression "uVar6 != 2" identifier != number_literal) )) (compound_statement "{\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }" { (if_statement "if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }" if (parenthesized_expression "(uVar6 != 3)" ( (binary_expression "uVar6 != 3" identifier != number_literal) )) (compound_statement "{\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }" { (if_statement "if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }" if (parenthesized_expression "(uVar6 != 4)" ( (binary_expression "uVar6 != 4" identifier != number_literal) )) (compound_statement "{\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }" { (if_statement "if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }" if (parenthesized_expression "(uVar6 != 5)" ( (binary_expression "uVar6 != 5" identifier != number_literal) )) (compound_statement "{\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }" { (if_statement "if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }" if (parenthesized_expression "(uVar6 != 6)" ( (binary_expression "uVar6 != 6" identifier != number_literal) )) (compound_statement "{\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }" { (expression_statement "uVar4 = (ulong)(byte)param_1[2];" (assignment_expression "uVar4 = (ulong)(byte)param_1[2]" identifier = (cast_expression "(ulong)(byte)param_1[2]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)param_1[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[2]" identifier [ number_literal ])))) ;) (expression_statement "pcVar14 = param_1 + 1;" (assignment_expression "pcVar14 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) })) (expression_statement "pcVar13 = pcVar14 + 1;" (assignment_expression "pcVar13 = pcVar14 + 1" identifier = (binary_expression "pcVar14 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];" (assignment_expression "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2]" identifier = (binary_expression "uVar4 << 8 | (ulong)(byte)pcVar14[2]" (binary_expression "uVar4 << 8" identifier << number_literal) | (cast_expression "(ulong)(byte)pcVar14[2]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)pcVar14[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar14[2]" identifier [ number_literal ]))))) ;) })) (expression_statement "pcVar14 = pcVar13 + 1;" (assignment_expression "pcVar14 = pcVar13 + 1" identifier = (binary_expression "pcVar13 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];" (assignment_expression "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2]" identifier = (binary_expression "uVar4 << 8 | (ulong)(byte)pcVar13[2]" (binary_expression "uVar4 << 8" identifier << number_literal) | (cast_expression "(ulong)(byte)pcVar13[2]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)pcVar13[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar13[2]" identifier [ number_literal ]))))) ;) })) (expression_statement "pcVar13 = pcVar14 + 1;" (assignment_expression "pcVar13 = pcVar14 + 1" identifier = (binary_expression "pcVar14 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];" (assignment_expression "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2]" identifier = (binary_expression "uVar4 << 8 | (ulong)(byte)pcVar14[2]" (binary_expression "uVar4 << 8" identifier << number_literal) | (cast_expression "(ulong)(byte)pcVar14[2]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)pcVar14[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar14[2]" identifier [ number_literal ]))))) ;) })) (expression_statement "pcVar14 = pcVar13 + 1;" (assignment_expression "pcVar14 = pcVar13 + 1" identifier = (binary_expression "pcVar13 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];" (assignment_expression "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2]" identifier = (binary_expression "uVar4 << 8 | (ulong)(byte)pcVar13[2]" (binary_expression "uVar4 << 8" identifier << number_literal) | (cast_expression "(ulong)(byte)pcVar13[2]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)pcVar13[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar13[2]" identifier [ number_literal ]))))) ;) })) (expression_statement "pcVar13 = pcVar14 + 1;" (assignment_expression "pcVar13 = pcVar14 + 1" identifier = (binary_expression "pcVar14 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];" (assignment_expression "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2]" identifier = (binary_expression "uVar4 << 8 | (ulong)(byte)pcVar14[2]" (binary_expression "uVar4 << 8" identifier << number_literal) | (cast_expression "(ulong)(byte)pcVar14[2]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)pcVar14[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar14[2]" identifier [ number_literal ]))))) ;) })) (expression_statement "uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];" (assignment_expression "uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2]" identifier = (binary_expression "uVar4 << 8 | (ulong)(byte)pcVar13[2]" (binary_expression "uVar4 << 8" identifier << number_literal) | (cast_expression "(ulong)(byte)pcVar13[2]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)pcVar13[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar13[2]" identifier [ number_literal ]))))) ;) (expression_statement "pcVar14 = pcVar13 + 1;" (assignment_expression "pcVar14 = pcVar13 + 1" identifier = (binary_expression "pcVar13 + 1" identifier + number_literal)) ;) (if_statement "if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;" if (parenthesized_expression "(pcVar13 + 1 == param_1 + uVar10)" ( (binary_expression "pcVar13 + 1 == param_1 + uVar10" (binary_expression "pcVar13 + 1" identifier + number_literal) == (binary_expression "param_1 + uVar10" identifier + identifier)) )) (goto_statement "goto LAB_00172dda;" goto statement_identifier ;)) })) (do_statement "do {\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      } while (pcVar13 != param_1 + uVar10);" do (compound_statement "{\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      }" { (expression_statement "pcVar13 = pcVar14 + 8;" (assignment_expression "pcVar13 = pcVar14 + 8" identifier = (binary_expression "pcVar14 + 8" identifier + number_literal)) ;) (expression_statement "uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);" (assignment_expression "uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9])" identifier = (call_expression "CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9])" identifier (argument_list "(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9])" ( (call_expression "CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13)" identifier (argument_list "(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13)" ( (call_expression "CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7])" identifier (argument_list "(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7])" ( (call_expression "CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6])" identifier (argument_list "(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6])" ( (call_expression "CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5])" identifier (argument_list "(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5])" ( (call_expression "CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4])" identifier (argument_list "(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4])" ( (call_expression "CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              )" identifier (argument_list "(pcVar14[2],pcVar14[3]\n                                                                              )" ( (subscript_expression "pcVar14[2]" identifier [ number_literal ]) , (subscript_expression "pcVar14[3]" identifier [ number_literal ]) ))) , (subscript_expression "pcVar14[4]" identifier [ number_literal ]) ))) , (subscript_expression "pcVar14[5]" identifier [ number_literal ]) ))) , (subscript_expression "pcVar14[6]" identifier [ number_literal ]) ))) , (subscript_expression "pcVar14[7]" identifier [ number_literal ]) ))) , (pointer_expression "*pcVar13" * identifier) ))) , (subscript_expression "pcVar14[9]" identifier [ number_literal ]) )))) ;) (expression_statement "pcVar14 = pcVar13;" (assignment_expression "pcVar14 = pcVar13" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar13 != param_1 + uVar10)" ( (binary_expression "pcVar13 != param_1 + uVar10" identifier != (binary_expression "param_1 + uVar10" identifier + identifier)) )) ;) })) (labeled_statement "LAB_00172dda:\n    uVar4 = 7;" statement_identifier : (expression_statement "uVar4 = 7;" (assignment_expression "uVar4 = 7" identifier = number_literal) ;)) (if_statement "if (param_2 < uVar12 + uVar9) goto LAB_00172f95;" if (parenthesized_expression "(param_2 < uVar12 + uVar9)" ( (binary_expression "param_2 < uVar12 + uVar9" identifier < (binary_expression "uVar12 + uVar9" identifier + identifier)) )) (goto_statement "goto LAB_00172f95;" goto statement_identifier ;)) (if_statement "if (param_4 < 1) {\nLAB_00173790:\n      uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);\n      goto LAB_00172f95;\n    }" if (parenthesized_expression "(param_4 < 1)" ( (binary_expression "param_4 < 1" identifier < number_literal) )) (compound_statement "{\nLAB_00173790:\n      uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);\n      goto LAB_00172f95;\n    }" { (labeled_statement "LAB_00173790:\n      uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);" statement_identifier : (expression_statement "uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);" (assignment_expression "uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15)" identifier = (call_expression "(ulong)(~-(uint)(uVar9 == 0) & 0x15)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(~-(uint)(uVar9 == 0) & 0x15)" ( (binary_expression "~-(uint)(uVar9 == 0) & 0x15" (unary_expression "~-(uint)(uVar9 == 0)" ~ (unary_expression "-(uint)(uVar9 == 0)" - (call_expression "(uint)(uVar9 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) ))))) & number_literal) )))) ;)) (goto_statement "goto LAB_00172f95;" goto statement_identifier ;) })) (expression_statement "piVar5 = (int *)(param_3 + 0x58);" (assignment_expression "piVar5 = (int *)(param_3 + 0x58)" identifier = (cast_expression "(int *)(param_3 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x58)" ( (binary_expression "param_3 + 0x58" identifier + number_literal) )))) ;) (expression_statement "piVar8 = (int *)(param_3 + 0x18);" (assignment_expression "piVar8 = (int *)(param_3 + 0x18)" identifier = (cast_expression "(int *)(param_3 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x18)" ( (binary_expression "param_3 + 0x18" identifier + number_literal) )))) ;) (expression_statement "piVar7 = piVar5 + (ulong)(param_4 - 1) * 0x10;" (assignment_expression "piVar7 = piVar5 + (ulong)(param_4 - 1) * 0x10" identifier = (binary_expression "piVar5 + (ulong)(param_4 - 1) * 0x10" identifier + (binary_expression "(ulong)(param_4 - 1) * 0x10" (call_expression "(ulong)(param_4 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(param_4 - 1)" ( (binary_expression "param_4 - 1" identifier - number_literal) ))) * number_literal))) ;) (expression_statement "uVar6 = (int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U & 7;" (assignment_expression "uVar6 = (int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U & 7" identifier = (binary_expression "(int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U & 7" (binary_expression "(int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U" (cast_expression "(int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6)" ( (binary_expression "(ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6" (call_expression "(ulong)((long)piVar7 + (-0x40 - (long)piVar8))" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)piVar7 + (-0x40 - (long)piVar8))" ( (binary_expression "(long)piVar7 + (-0x40 - (long)piVar8)" (cast_expression "(long)piVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(-0x40 - (long)piVar8)" ( (binary_expression "-0x40 - (long)piVar8" number_literal - (cast_expression "(long)piVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ))) >> number_literal) ))) + number_literal) & number_literal)) ;) (if_statement "if (uVar6 == 0) goto LAB_00172e99;" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00172e99;" goto statement_identifier ;)) (if_statement "if (uVar6 != 1) {\n      if (uVar6 != 2) {\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }\n      *piVar8 = 0;\n      piVar8 = piVar8 + 0x10;\n    }" if (parenthesized_expression "(uVar6 != 1)" ( (binary_expression "uVar6 != 1" identifier != number_literal) )) (compound_statement "{\n      if (uVar6 != 2) {\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }\n      *piVar8 = 0;\n      piVar8 = piVar8 + 0x10;\n    }" { (if_statement "if (uVar6 != 2) {\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }" if (parenthesized_expression "(uVar6 != 2)" ( (binary_expression "uVar6 != 2" identifier != number_literal) )) (compound_statement "{\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }" { (if_statement "if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }" if (parenthesized_expression "(uVar6 != 3)" ( (binary_expression "uVar6 != 3" identifier != number_literal) )) (compound_statement "{\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }" { (if_statement "if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }" if (parenthesized_expression "(uVar6 != 4)" ( (binary_expression "uVar6 != 4" identifier != number_literal) )) (compound_statement "{\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }" { (if_statement "if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }" if (parenthesized_expression "(uVar6 != 5)" ( (binary_expression "uVar6 != 5" identifier != number_literal) )) (compound_statement "{\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }" { (if_statement "if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }" if (parenthesized_expression "(uVar6 != 6)" ( (binary_expression "uVar6 != 6" identifier != number_literal) )) (compound_statement "{\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }" { (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "piVar8 = (int *)(param_3 + 0x58);" (assignment_expression "piVar8 = (int *)(param_3 + 0x58)" identifier = (cast_expression "(int *)(param_3 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x58)" ( (binary_expression "param_3 + 0x58" identifier + number_literal) )))) ;) })) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "piVar8 = piVar8 + 0x10;" (assignment_expression "piVar8 = piVar8 + 0x10" identifier = (binary_expression "piVar8 + 0x10" identifier + number_literal)) ;) })) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "piVar8 = piVar8 + 0x10;" (assignment_expression "piVar8 = piVar8 + 0x10" identifier = (binary_expression "piVar8 + 0x10" identifier + number_literal)) ;) })) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "piVar8 = piVar8 + 0x10;" (assignment_expression "piVar8 = piVar8 + 0x10" identifier = (binary_expression "piVar8 + 0x10" identifier + number_literal)) ;) })) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "piVar8 = piVar8 + 0x10;" (assignment_expression "piVar8 = piVar8 + 0x10" identifier = (binary_expression "piVar8 + 0x10" identifier + number_literal)) ;) })) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "piVar8 = piVar8 + 0x10;" (assignment_expression "piVar8 = piVar8 + 0x10" identifier = (binary_expression "piVar8 + 0x10" identifier + number_literal)) ;) })) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (for_statement "for (piVar8 = piVar8 + 0x10; piVar8 != piVar7; piVar8 = piVar8 + 0x80) {\nLAB_00172e99:\n      *piVar8 = 0;\n      piVar8[0x10] = 0;\n      piVar8[0x20] = 0;\n      piVar8[0x30] = 0;\n      piVar8[0x40] = 0;\n      piVar8[0x50] = 0;\n      piVar8[0x60] = 0;\n      piVar8[0x70] = 0;\n    }" for ( (assignment_expression "piVar8 = piVar8 + 0x10" identifier = (binary_expression "piVar8 + 0x10" identifier + number_literal)) ; (binary_expression "piVar8 != piVar7" identifier != identifier) ; (assignment_expression "piVar8 = piVar8 + 0x80" identifier = (binary_expression "piVar8 + 0x80" identifier + number_literal)) ) (compound_statement "{\nLAB_00172e99:\n      *piVar8 = 0;\n      piVar8[0x10] = 0;\n      piVar8[0x20] = 0;\n      piVar8[0x30] = 0;\n      piVar8[0x40] = 0;\n      piVar8[0x50] = 0;\n      piVar8[0x60] = 0;\n      piVar8[0x70] = 0;\n    }" { (labeled_statement "LAB_00172e99:\n      *piVar8 = 0;" statement_identifier : (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (expression_statement "piVar8[0x10] = 0;" (assignment_expression "piVar8[0x10] = 0" (subscript_expression "piVar8[0x10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x20] = 0;" (assignment_expression "piVar8[0x20] = 0" (subscript_expression "piVar8[0x20]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x30] = 0;" (assignment_expression "piVar8[0x30] = 0" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x40] = 0;" (assignment_expression "piVar8[0x40] = 0" (subscript_expression "piVar8[0x40]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x50] = 0;" (assignment_expression "piVar8[0x50] = 0" (subscript_expression "piVar8[0x50]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x60] = 0;" (assignment_expression "piVar8[0x60] = 0" (subscript_expression "piVar8[0x60]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x70] = 0;" (assignment_expression "piVar8[0x70] = 0" (subscript_expression "piVar8[0x70]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00172f1e:\n    do {\n      local_48 = 0;\n      piVar8 = (int *)((long)iVar15 * 0x40 + param_3);\n      local_50 = *(undefined8 *)(piVar8 + 4);\n      iVar3 = *piVar8;\n      puVar2 = *(undefined8 **)(piVar8 + 2);\n      if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;\n      if (iVar3 == 0) break;\n      switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (iVar3 != 0) goto LAB_00172f95;\n      uVar12 = uVar12 + local_48;\n      uVar9 = uVar9 - local_48;\nswitchD_00172f6d_caseD_14:\n      piVar8[6] = 1;\n      if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < param_4);" statement_identifier : (do_statement "do {\n      local_48 = 0;\n      piVar8 = (int *)((long)iVar15 * 0x40 + param_3);\n      local_50 = *(undefined8 *)(piVar8 + 4);\n      iVar3 = *piVar8;\n      puVar2 = *(undefined8 **)(piVar8 + 2);\n      if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;\n      if (iVar3 == 0) break;\n      switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (iVar3 != 0) goto LAB_00172f95;\n      uVar12 = uVar12 + local_48;\n      uVar9 = uVar9 - local_48;\nswitchD_00172f6d_caseD_14:\n      piVar8[6] = 1;\n      if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < param_4);" do (compound_statement "{\n      local_48 = 0;\n      piVar8 = (int *)((long)iVar15 * 0x40 + param_3);\n      local_50 = *(undefined8 *)(piVar8 + 4);\n      iVar3 = *piVar8;\n      puVar2 = *(undefined8 **)(piVar8 + 2);\n      if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;\n      if (iVar3 == 0) break;\n      switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (iVar3 != 0) goto LAB_00172f95;\n      uVar12 = uVar12 + local_48;\n      uVar9 = uVar9 - local_48;\nswitchD_00172f6d_caseD_14:\n      piVar8[6] = 1;\n      if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    }" { (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "piVar8 = (int *)((long)iVar15 * 0x40 + param_3);" (assignment_expression "piVar8 = (int *)((long)iVar15 * 0x40 + param_3)" identifier = (cast_expression "(int *)((long)iVar15 * 0x40 + param_3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)iVar15 * 0x40 + param_3)" ( (binary_expression "(long)iVar15 * 0x40 + param_3" (binary_expression "(long)iVar15 * 0x40" (cast_expression "(long)iVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) + identifier) )))) ;) (expression_statement "local_50 = *(undefined8 *)(piVar8 + 4);" (assignment_expression "local_50 = *(undefined8 *)(piVar8 + 4)" identifier = (pointer_expression "*(undefined8 *)(piVar8 + 4)" * (cast_expression "(undefined8 *)(piVar8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 4)" ( (binary_expression "piVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *piVar8;" (assignment_expression "iVar3 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "puVar2 = *(undefined8 **)(piVar8 + 2);" (assignment_expression "puVar2 = *(undefined8 **)(piVar8 + 2)" identifier = (pointer_expression "*(undefined8 **)(piVar8 + 2)" * (cast_expression "(undefined8 **)(piVar8 + 2)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8 + 2)" ( (binary_expression "piVar8 + 2" identifier + number_literal) ))))) ;) (if_statement "if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;" if (parenthesized_expression "((param_5 == 0) && (piVar8[6] == 1))" ( (binary_expression "(param_5 == 0) && (piVar8[6] == 1)" (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) && (parenthesized_expression "(piVar8[6] == 1)" ( (binary_expression "piVar8[6] == 1" (subscript_expression "piVar8[6]" identifier [ number_literal ]) == number_literal) ))) )) (goto_statement "goto LAB_001731b1;" goto statement_identifier ;)) (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (switch_statement "switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }" switch (parenthesized_expression "(iVar3)" ( identifier )) (compound_statement "{\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }" { (case_statement "case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);" (assignment_expression "uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2)" identifier = (call_expression "der_decode_boolean(param_1 + uVar12,uVar9,puVar2)" identifier (argument_list "(param_1 + uVar12,uVar9,puVar2)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , identifier , identifier )))) ;) (if_statement "if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }" if (parenthesized_expression "((int)uVar4 == 0)" ( (binary_expression "(int)uVar4 == 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }" { (expression_statement "uVar4 = der_length_boolean(&local_48);" (assignment_expression "uVar4 = der_length_boolean(&local_48)" identifier = (call_expression "der_length_boolean(&local_48)" identifier (argument_list "(&local_48)" ( (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;) })) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (case_statement "case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);" (assignment_expression "uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2)" identifier = (call_expression "der_decode_integer(param_1 + uVar12,uVar9,puVar2)" identifier (argument_list "(param_1 + uVar12,uVar9,puVar2)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , identifier , identifier )))) ;) (if_statement "if ((int)uVar4 != 0) goto LAB_001731a8;" if (parenthesized_expression "((int)uVar4 != 0)" ( (binary_expression "(int)uVar4 != 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (expression_statement "uVar4 = der_length_integer(puVar2,&local_48);" (assignment_expression "uVar4 = der_length_integer(puVar2,&local_48)" identifier = (call_expression "der_length_integer(puVar2,&local_48)" identifier (argument_list "(puVar2,&local_48)" ( identifier , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);" (assignment_expression "uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2)" identifier = (call_expression "der_decode_short_integer(param_1 + uVar12,uVar9,puVar2)" identifier (argument_list "(param_1 + uVar12,uVar9,puVar2)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , identifier , identifier )))) ;) (if_statement "if ((int)uVar4 != 0) goto LAB_001731a8;" if (parenthesized_expression "((int)uVar4 != 0)" ( (binary_expression "(int)uVar4 != 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (expression_statement "uVar4 = der_length_short_integer(*puVar2,&local_48);" (assignment_expression "uVar4 = der_length_short_integer(*puVar2,&local_48)" identifier = (call_expression "der_length_short_integer(*puVar2,&local_48)" identifier (argument_list "(*puVar2,&local_48)" ( (pointer_expression "*puVar2" * identifier) , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);" (assignment_expression "uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier = (call_expression "der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier (argument_list "(param_1 + uVar12,uVar9,puVar2,&local_50)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , identifier , identifier , (pointer_expression "&local_50" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto joined_r0x00173127;" goto statement_identifier ;)) (case_statement "case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);" (assignment_expression "uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier = (call_expression "der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier (argument_list "(param_1 + uVar12,uVar9,puVar2,&local_50)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , identifier , identifier , (pointer_expression "&local_50" & identifier) )))) ;) (if_statement "if ((int)uVar4 != 0) goto LAB_001731a8;" if (parenthesized_expression "((int)uVar4 != 0)" ( (binary_expression "(int)uVar4 != 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (expression_statement "*(undefined8 *)(piVar8 + 4) = local_50;" (assignment_expression "*(undefined8 *)(piVar8 + 4) = local_50" (pointer_expression "*(undefined8 *)(piVar8 + 4)" * (cast_expression "(undefined8 *)(piVar8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 4)" ( (binary_expression "piVar8 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = der_length_octet_string(local_50,&local_48);" (assignment_expression "uVar4 = der_length_octet_string(local_50,&local_48)" identifier = (call_expression "der_length_octet_string(local_50,&local_48)" identifier (argument_list "(local_50,&local_48)" ( identifier , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;" case number_literal : (if_statement "if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }" if (parenthesized_expression "(((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0'))" ( (binary_expression "((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')" (parenthesized_expression "((1 < uVar9) && (param_1[uVar12] == '\x05'))" ( (binary_expression "(1 < uVar9) && (param_1[uVar12] == '\x05')" (parenthesized_expression "(1 < uVar9)" ( (binary_expression "1 < uVar9" number_literal < identifier) )) && (parenthesized_expression "(param_1[uVar12] == '\x05')" ( (binary_expression "param_1[uVar12] == '\x05'" (subscript_expression "param_1[uVar12]" identifier [ identifier ]) == (char_literal "'\x05'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(param_1[uVar12 + 1] == '\0')" ( (binary_expression "param_1[uVar12 + 1] == '\0'" (subscript_expression "param_1[uVar12 + 1]" identifier [ (binary_expression "uVar12 + 1" identifier + number_literal) ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }" { (expression_statement "local_48 = 2;" (assignment_expression "local_48 = 2" identifier = number_literal) ;) (expression_statement "uVar12 = uVar12 + 2;" (assignment_expression "uVar12 = uVar12 + 2" identifier = (binary_expression "uVar12 + 2" identifier + number_literal)) ;) (expression_statement "uVar9 = uVar9 - 2;" (assignment_expression "uVar9 = uVar9 - 2" identifier = (binary_expression "uVar9 - 2" identifier - number_literal)) ;) (goto_statement "goto switchD_00172f6d_caseD_14;" goto statement_identifier ;) })) (if_statement "if (param_5 == 0) goto LAB_001731b1;" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001731b1;" goto statement_identifier ;)) (goto_statement "goto LAB_00172f90;" goto statement_identifier ;)) (case_statement "case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);" (assignment_expression "uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier = (call_expression "der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier (argument_list "(param_1 + uVar12,uVar9,puVar2,&local_50)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , identifier , identifier , (pointer_expression "&local_50" & identifier) )))) ;) (if_statement "if ((int)uVar4 != 0) goto LAB_001731a8;" if (parenthesized_expression "((int)uVar4 != 0)" ( (binary_expression "(int)uVar4 != 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (expression_statement "*(undefined8 *)(piVar8 + 4) = local_50;" (assignment_expression "*(undefined8 *)(piVar8 + 4) = local_50" (pointer_expression "*(undefined8 *)(piVar8 + 4)" * (cast_expression "(undefined8 *)(piVar8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 4)" ( (binary_expression "piVar8 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);" (assignment_expression "uVar4 = der_length_object_identifier(puVar2,local_50,&local_48)" identifier = (call_expression "der_length_object_identifier(puVar2,local_50,&local_48)" identifier (argument_list "(puVar2,local_50,&local_48)" ( identifier , identifier , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);" (assignment_expression "uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier = (call_expression "der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier (argument_list "(param_1 + uVar12,uVar9,puVar2,&local_50)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , identifier , identifier , (pointer_expression "&local_50" & identifier) )))) ;) (if_statement "if ((int)uVar4 != 0) goto LAB_001731a8;" if (parenthesized_expression "((int)uVar4 != 0)" ( (binary_expression "(int)uVar4 != 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (expression_statement "*(undefined8 *)(piVar8 + 4) = local_50;" (assignment_expression "*(undefined8 *)(piVar8 + 4) = local_50" (pointer_expression "*(undefined8 *)(piVar8 + 4)" * (cast_expression "(undefined8 *)(piVar8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 4)" ( (binary_expression "piVar8 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);" (assignment_expression "uVar4 = der_length_ia5_string(puVar2,local_50,&local_48)" identifier = (call_expression "der_length_ia5_string(puVar2,local_50,&local_48)" identifier (argument_list "(puVar2,local_50,&local_48)" ( identifier , identifier , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);" (assignment_expression "uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier = (call_expression "der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier (argument_list "(param_1 + uVar12,uVar9,puVar2,&local_50)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , identifier , identifier , (pointer_expression "&local_50" & identifier) )))) ;) (if_statement "if ((int)uVar4 != 0) goto LAB_001731a8;" if (parenthesized_expression "((int)uVar4 != 0)" ( (binary_expression "(int)uVar4 != 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (expression_statement "*(undefined8 *)(piVar8 + 4) = local_50;" (assignment_expression "*(undefined8 *)(piVar8 + 4) = local_50" (pointer_expression "*(undefined8 *)(piVar8 + 4)" * (cast_expression "(undefined8 *)(piVar8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 4)" ( (binary_expression "piVar8 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = der_length_printable_string(puVar2,local_50,&local_48);" (assignment_expression "uVar4 = der_length_printable_string(puVar2,local_50,&local_48)" identifier = (call_expression "der_length_printable_string(puVar2,local_50,&local_48)" identifier (argument_list "(puVar2,local_50,&local_48)" ( identifier , identifier , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);" (assignment_expression "uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier = (call_expression "der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier (argument_list "(param_1 + uVar12,uVar9,puVar2,&local_50)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , identifier , identifier , (pointer_expression "&local_50" & identifier) )))) ;) (if_statement "if ((int)uVar4 != 0) goto LAB_001731a8;" if (parenthesized_expression "((int)uVar4 != 0)" ( (binary_expression "(int)uVar4 != 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (expression_statement "*(undefined8 *)(piVar8 + 4) = local_50;" (assignment_expression "*(undefined8 *)(piVar8 + 4) = local_50" (pointer_expression "*(undefined8 *)(piVar8 + 4)" * (cast_expression "(undefined8 *)(piVar8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 4)" ( (binary_expression "piVar8 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);" (assignment_expression "uVar4 = der_length_utf8_string(puVar2,local_50,&local_48)" identifier = (call_expression "der_length_utf8_string(puVar2,local_50,&local_48)" identifier (argument_list "(puVar2,local_50,&local_48)" ( identifier , identifier , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);" (assignment_expression "uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2)" identifier = (call_expression "der_decode_utctime(param_1 + uVar12,&local_48,puVar2)" identifier (argument_list "(param_1 + uVar12,&local_48,puVar2)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , (pointer_expression "&local_48" & identifier) , identifier )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto joined_r0x0017339c;" goto statement_identifier ;)) (case_statement "case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);" (assignment_expression "uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2)" identifier = (call_expression "der_decode_choice(param_1 + uVar12,&local_48,puVar2)" identifier (argument_list "(param_1 + uVar12,&local_48,puVar2)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , (pointer_expression "&local_48" & identifier) , identifier )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto joined_r0x0017339c;" goto statement_identifier ;)) (case_statement "case 0xd:" case number_literal :) (case_statement "case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;" case number_literal : (if_statement "if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;" if (parenthesized_expression "(iVar3 == 0xf)" ( (binary_expression "iVar3 == 0xf" identifier == number_literal) )) (compound_statement "{\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }" { (if_statement "if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;" if (parenthesized_expression "((param_1[uVar12] & 0x3fU) != 0x31)" ( (binary_expression "(param_1[uVar12] & 0x3fU) != 0x31" (parenthesized_expression "(param_1[uVar12] & 0x3fU)" ( (binary_expression "param_1[uVar12] & 0x3fU" (subscript_expression "param_1[uVar12]" identifier [ identifier ]) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00172f90;" goto statement_identifier ;)) }) (else_clause "else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;" else (if_statement "if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;" if (parenthesized_expression "((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30))" ( (binary_expression "(iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)" (parenthesized_expression "(iVar3 == 0xd)" ( (binary_expression "iVar3 == 0xd" identifier == number_literal) )) && (parenthesized_expression "((param_1[uVar12] & 0x3fU) != 0x30)" ( (binary_expression "(param_1[uVar12] & 0x3fU) != 0x30" (parenthesized_expression "(param_1[uVar12] & 0x3fU)" ( (binary_expression "param_1[uVar12] & 0x3fU" (subscript_expression "param_1[uVar12]" identifier [ identifier ]) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_00172f90;" goto statement_identifier ;)))) (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00173181;" goto statement_identifier ;)) (case_statement "case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;" case number_literal : (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00173181:\n        local_48 = uVar9;" statement_identifier : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;)) (expression_statement "uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);" (assignment_expression "uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11)" identifier = (call_expression "der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11)" identifier (argument_list "(param_1 + uVar12,uVar9,puVar2,local_50,uVar11)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , identifier , identifier , identifier , identifier )))) ;) (if_statement "if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }" if (parenthesized_expression "((int)uVar4 == 0)" ( (binary_expression "(int)uVar4 == 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }" { (expression_statement "uVar4 = der_length_sequence(puVar2,local_50,&local_48);" (assignment_expression "uVar4 = der_length_sequence(puVar2,local_50,&local_48)" identifier = (call_expression "der_length_sequence(puVar2,local_50,&local_48)" identifier (argument_list "(puVar2,local_50,&local_48)" ( identifier , identifier , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;) })) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (case_statement "case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);" (assignment_expression "uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier = (call_expression "der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier (argument_list "(param_1 + uVar12,uVar9,puVar2,&local_50)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , identifier , identifier , (pointer_expression "&local_50" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (labeled_statement "joined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }" statement_identifier : (if_statement "if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }" { (expression_statement "*(undefined8 *)(piVar8 + 4) = local_50;" (assignment_expression "*(undefined8 *)(piVar8 + 4) = local_50" (pointer_expression "*(undefined8 *)(piVar8 + 4)" * (cast_expression "(undefined8 *)(piVar8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 4)" ( (binary_expression "piVar8 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = der_length_bit_string(local_50,&local_48);" (assignment_expression "uVar4 = der_length_bit_string(local_50,&local_48)" identifier = (call_expression "der_length_bit_string(local_50,&local_48)" identifier (argument_list "(local_50,&local_48)" ( identifier , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;) }))) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (case_statement "case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);" (assignment_expression "uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier = (call_expression "der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50)" identifier (argument_list "(param_1 + uVar12,uVar9,puVar2,&local_50)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , identifier , identifier , (pointer_expression "&local_50" & identifier) )))) ;) (if_statement "if ((int)uVar4 != 0) goto LAB_001731a8;" if (parenthesized_expression "((int)uVar4 != 0)" ( (binary_expression "(int)uVar4 != 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (goto_statement "goto LAB_001731a8;" goto statement_identifier ;)) (expression_statement "*(undefined8 *)(piVar8 + 4) = local_50;" (assignment_expression "*(undefined8 *)(piVar8 + 4) = local_50" (pointer_expression "*(undefined8 *)(piVar8 + 4)" * (cast_expression "(undefined8 *)(piVar8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 4)" ( (binary_expression "piVar8 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);" (assignment_expression "uVar4 = der_length_teletex_string(puVar2,local_50,&local_48)" identifier = (call_expression "der_length_teletex_string(puVar2,local_50,&local_48)" identifier (argument_list "(puVar2,local_50,&local_48)" ( identifier , identifier , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 0x12:" case number_literal :) (case_statement "case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;" case number_literal : (expression_statement "uVar4 = 0x10;" (assignment_expression "uVar4 = 0x10" identifier = number_literal) ;) (goto_statement "goto LAB_00172f95;" goto statement_identifier ;)) (case_statement "case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;" case number_literal : (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" identifier = identifier) ;) (expression_statement "uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);" (assignment_expression "uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2)" identifier = (call_expression "der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2)" identifier (argument_list "(param_1 + uVar12,&local_48,puVar2)" ( (binary_expression "param_1 + uVar12" identifier + identifier) , (pointer_expression "&local_48" & identifier) , identifier )))) ;) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" identifier = (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (labeled_statement "joined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }" statement_identifier : (if_statement "if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }" { (expression_statement "uVar12 = uVar12 + local_48;" (assignment_expression "uVar12 = uVar12 + local_48" identifier = (binary_expression "uVar12 + local_48" identifier + identifier)) ;) (expression_statement "uVar9 = uVar9 - local_48;" (assignment_expression "uVar9 = uVar9 - local_48" identifier = (binary_expression "uVar9 - local_48" identifier - identifier)) ;) (goto_statement "goto switchD_00172f6d_caseD_14;" goto statement_identifier ;) }))) (labeled_statement "LAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;" statement_identifier : (if_statement "if (param_5 == 0) goto LAB_001731b1;" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001731b1;" goto statement_identifier ;))) (goto_statement "goto LAB_00172f95;" goto statement_identifier ;)) (case_statement "default:\n        goto switchD_00172f6d_caseD_14;" default : (goto_statement "goto switchD_00172f6d_caseD_14;" goto statement_identifier ;)) })) (if_statement "if (iVar3 != 0) goto LAB_00172f95;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00172f95;" goto statement_identifier ;)) (expression_statement "uVar12 = uVar12 + local_48;" (assignment_expression "uVar12 = uVar12 + local_48" identifier = (binary_expression "uVar12 + local_48" identifier + identifier)) ;) (expression_statement "uVar9 = uVar9 - local_48;" (assignment_expression "uVar9 = uVar9 - local_48" identifier = (binary_expression "uVar9 - local_48" identifier - identifier)) ;) (labeled_statement "switchD_00172f6d_caseD_14:\n      piVar8[6] = 1;" statement_identifier : (expression_statement "piVar8[6] = 1;" (assignment_expression "piVar8[6] = 1" (subscript_expression "piVar8[6]" identifier [ number_literal ]) = number_literal) ;)) (if_statement "if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00172f1e;" goto statement_identifier ;) })) (labeled_statement "LAB_001731b1:\n      iVar15 = iVar15 + 1;" statement_identifier : (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "(iVar15 < param_4)" ( (binary_expression "iVar15 < param_4" identifier < identifier) )) ;)) (if_statement "if (*(int *)(param_3 + 0x18) != 0) {\n      uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6;\n      uVar6 = (uint)uVar4 & 7;\n      piVar8 = piVar5;\n      if ((uVar4 & 7) == 0) goto LAB_00173282;\n      piVar8 = (int *)(param_3 + 0x98);\n      if (*piVar5 != 0) {\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(*(int *)(param_3 + 0x18) != 0)" ( (binary_expression "*(int *)(param_3 + 0x18) != 0" (pointer_expression "*(int *)(param_3 + 0x18)" * (cast_expression "(int *)(param_3 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x18)" ( (binary_expression "param_3 + 0x18" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6;\n      uVar6 = (uint)uVar4 & 7;\n      piVar8 = piVar5;\n      if ((uVar4 & 7) == 0) goto LAB_00173282;\n      piVar8 = (int *)(param_3 + 0x98);\n      if (*piVar5 != 0) {\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }\n    }" { (expression_statement "uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6;" (assignment_expression "uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6" identifier = (binary_expression "(ulong)((long)piVar7 - (long)piVar5) >> 6" (call_expression "(ulong)((long)piVar7 - (long)piVar5)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)piVar7 - (long)piVar5)" ( (binary_expression "(long)piVar7 - (long)piVar5" (cast_expression "(long)piVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)piVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) >> number_literal)) ;) (expression_statement "uVar6 = (uint)uVar4 & 7;" (assignment_expression "uVar6 = (uint)uVar4 & 7" identifier = (binary_expression "(uint)uVar4 & 7" (cast_expression "(uint)uVar4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "piVar8 = piVar5;" (assignment_expression "piVar8 = piVar5" identifier = identifier) ;) (if_statement "if ((uVar4 & 7) == 0) goto LAB_00173282;" if (parenthesized_expression "((uVar4 & 7) == 0)" ( (binary_expression "(uVar4 & 7) == 0" (parenthesized_expression "(uVar4 & 7)" ( (binary_expression "uVar4 & 7" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00173282;" goto statement_identifier ;)) (expression_statement "piVar8 = (int *)(param_3 + 0x98);" (assignment_expression "piVar8 = (int *)(param_3 + 0x98)" identifier = (cast_expression "(int *)(param_3 + 0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x98)" ( (binary_expression "param_3 + 0x98" identifier + number_literal) )))) ;) (if_statement "if (*piVar5 != 0) {\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }" if (parenthesized_expression "(*piVar5 != 0)" ( (binary_expression "*piVar5 != 0" (pointer_expression "*piVar5" * identifier) != number_literal) )) (compound_statement "{\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }" { (if_statement "if (uVar6 == 1) goto LAB_00173282;" if (parenthesized_expression "(uVar6 == 1)" ( (binary_expression "uVar6 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00173282;" goto statement_identifier ;)) (expression_statement "piVar5 = piVar8;" (assignment_expression "piVar5 = piVar8" identifier = identifier) ;) (if_statement "if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }" if (parenthesized_expression "((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0))))" ( (binary_expression "(uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))" (parenthesized_expression "(uVar6 == 2)" ( (binary_expression "uVar6 == 2" identifier == number_literal) )) || (parenthesized_expression "(((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))" ( (parenthesized_expression "((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0))" ( (binary_expression "(uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)" (parenthesized_expression "(uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             ))" ( (binary_expression "uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )" (binary_expression "uVar6 == 3" identifier == number_literal) || (parenthesized_expression "(((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )" ( (parenthesized_expression "((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))" ( (binary_expression "(uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0)" (parenthesized_expression "(uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0))))" ( (binary_expression "uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))" (binary_expression "uVar6 == 4" identifier == number_literal) || (parenthesized_expression "(((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))" ( (parenthesized_expression "((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0))" ( (binary_expression "(uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)" (parenthesized_expression "(uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0))))" ( (binary_expression "uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))" (binary_expression "uVar6 == 5" identifier == number_literal) || (parenthesized_expression "(((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))" ( (parenthesized_expression "((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0))" ( (binary_expression "(uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)" (parenthesized_expression "(uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))" ( (binary_expression "uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0)" (binary_expression "uVar6 == 6" identifier == number_literal) || (parenthesized_expression "(piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0)" ( (comma_expression "piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0" (assignment_expression "piVar5 = (int *)(param_3 + 0xd8)" identifier = (cast_expression "(int *)(param_3 + 0xd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xd8)" ( (binary_expression "param_3 + 0xd8" identifier + number_literal) )))) , (binary_expression "*(int *)(param_3 + 0x98) != 0" (pointer_expression "*(int *)(param_3 + 0x98)" * (cast_expression "(int *)(param_3 + 0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x98)" ( (binary_expression "param_3 + 0x98" identifier + number_literal) )))) != number_literal)) ))) )) && (parenthesized_expression "(piVar8 = piVar5 + 0x10, *piVar5 != 0)" ( (comma_expression "piVar8 = piVar5 + 0x10, *piVar5 != 0" (assignment_expression "piVar8 = piVar5 + 0x10" identifier = (binary_expression "piVar5 + 0x10" identifier + number_literal)) , (binary_expression "*piVar5 != 0" (pointer_expression "*piVar5" * identifier) != number_literal)) ))) )) ))) )) && (parenthesized_expression "(piVar5 = piVar8 + 0x10, *piVar8 != 0)" ( (comma_expression "piVar5 = piVar8 + 0x10, *piVar8 != 0" (assignment_expression "piVar5 = piVar8 + 0x10" identifier = (binary_expression "piVar8 + 0x10" identifier + number_literal)) , (binary_expression "*piVar8 != 0" (pointer_expression "*piVar8" * identifier) != number_literal)) ))) )) ))) )) && (parenthesized_expression "(piVar8 = piVar5 + 0x10, *piVar5 != 0)" ( (comma_expression "piVar8 = piVar5 + 0x10, *piVar5 != 0" (assignment_expression "piVar8 = piVar5 + 0x10" identifier = (binary_expression "piVar5 + 0x10" identifier + number_literal)) , (binary_expression "*piVar5 != 0" (pointer_expression "*piVar5" * identifier) != number_literal)) ))) )) ))) )) && (parenthesized_expression "(piVar5 = piVar8 + 0x10, *piVar8 != 0)" ( (comma_expression "piVar5 = piVar8 + 0x10, *piVar8 != 0" (assignment_expression "piVar5 = piVar8 + 0x10" identifier = (binary_expression "piVar8 + 0x10" identifier + number_literal)) , (binary_expression "*piVar8 != 0" (pointer_expression "*piVar8" * identifier) != number_literal)) ))) )) ))) )) (compound_statement "{\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }" { (expression_statement "iVar15 = *piVar5;" (assignment_expression "iVar15 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "piVar8 = piVar5 + 0x10;" (assignment_expression "piVar8 = piVar5 + 0x10" identifier = (binary_expression "piVar5 + 0x10" identifier + number_literal)) ;) (while_statement "while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }" while (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }" { (labeled_statement "LAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;" statement_identifier : (if_statement "if (piVar8 == piVar7) goto LAB_00173790;" if (parenthesized_expression "(piVar8 == piVar7)" ( (binary_expression "piVar8 == piVar7" identifier == identifier) )) (goto_statement "goto LAB_00173790;" goto statement_identifier ;))) (if_statement "if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;" if (parenthesized_expression "(((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0))))" ( (binary_expression "((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))" (parenthesized_expression "((*piVar8 == 0) || (piVar8[0x10] == 0))" ( (binary_expression "(*piVar8 == 0) || (piVar8[0x10] == 0)" (parenthesized_expression "(*piVar8 == 0)" ( (binary_expression "*piVar8 == 0" (pointer_expression "*piVar8" * identifier) == number_literal) )) || (parenthesized_expression "(piVar8[0x10] == 0)" ( (binary_expression "piVar8[0x10] == 0" (subscript_expression "piVar8[0x10]" identifier [ number_literal ]) == number_literal) ))) )) || (parenthesized_expression "(((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))" ( (parenthesized_expression "((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0))" ( (binary_expression "(piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)" (parenthesized_expression "(piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0))))" ( (binary_expression "piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))" (binary_expression "piVar8[0x20] == 0" (subscript_expression "piVar8[0x20]" identifier [ number_literal ]) == number_literal) || (parenthesized_expression "(((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))" ( (parenthesized_expression "((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0))" ( (binary_expression "(piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)" (parenthesized_expression "(piVar8[0x30] == 0 || (piVar8[0x40] == 0))" ( (binary_expression "piVar8[0x30] == 0 || (piVar8[0x40] == 0)" (binary_expression "piVar8[0x30] == 0" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) == number_literal) || (parenthesized_expression "(piVar8[0x40] == 0)" ( (binary_expression "piVar8[0x40] == 0" (subscript_expression "piVar8[0x40]" identifier [ number_literal ]) == number_literal) ))) )) || (parenthesized_expression "(piVar8[0x50] == 0)" ( (binary_expression "piVar8[0x50] == 0" (subscript_expression "piVar8[0x50]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) || (parenthesized_expression "(piVar8[0x60] == 0)" ( (binary_expression "piVar8[0x60] == 0" (subscript_expression "piVar8[0x60]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = piVar8[0x70];" (assignment_expression "iVar15 = piVar8[0x70]" identifier = (subscript_expression "piVar8[0x70]" identifier [ number_literal ])) ;) (expression_statement "piVar8 = piVar8 + 0x80;" (assignment_expression "piVar8 = piVar8 + 0x80" identifier = (binary_expression "piVar8 + 0x80" identifier + number_literal)) ;) })) })) })) })) })) (labeled_statement "LAB_00172f90:\n  uVar4 = 7;" statement_identifier : (expression_statement "uVar4 = 7;" (assignment_expression "uVar4 = 7" identifier = number_literal) ;)) (labeled_statement "LAB_00172f95:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" { (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) - LIT) )))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == (binary_expression IDENT + IDENT)) )) (goto_statement goto statement_identifier ;)) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (call_expression IDENT (argument_list ( (call_expression IDENT (argument_list ( (call_expression IDENT (argument_list ( (call_expression IDENT (argument_list ( (call_expression IDENT (argument_list ( (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) ))) , (subscript_expression IDENT [ LIT ]) ))) , (subscript_expression IDENT [ LIT ]) ))) , (subscript_expression IDENT [ LIT ]) ))) , (subscript_expression IDENT [ LIT ]) ))) , (pointer_expression * IDENT) ))) , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + IDENT)) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT + IDENT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (unary_expression ~ (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) ))))) & LIT) )))) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) ))) >> LIT) ))) + LIT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (for_statement for ( (assignment_expression IDENT = (binary_expression IDENT + LIT)) ; (binary_expression IDENT != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (break_statement break ;) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) == (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) & LIT) )) != LIT) ))) )) (goto_statement goto statement_identifier ;)))) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (break_statement break ;) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (break_statement break ;) }))) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (goto_statement goto statement_identifier ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) (goto_statement goto statement_identifier ;)) (case_statement default : (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (pointer_expression * IDENT) != LIT)) ))) )) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (pointer_expression * IDENT) != LIT)) ))) )) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (pointer_expression * IDENT) != LIT)) ))) )) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (pointer_expression * IDENT) != LIT)) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) ))) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) })) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "ulong der_decode_sequence_ex(char *param_1,ulong param_2,long param_3,int param_4,int param_5)\n\n{\n  byte bVar1;\n  undefined8 *puVar2;\n  int iVar3;\n  ulong uVar4;\n  int *piVar5;\n  uint uVar6;\n  int *piVar7;\n  int *piVar8;\n  ulong uVar9;\n  ulong uVar10;\n  undefined8 uVar11;\n  ulong uVar12;\n  char *pcVar13;\n  char *pcVar14;\n  int iVar15;\n  long in_FS_OFFSET;\n  undefined8 local_50;\n  ulong local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == (char *)0x0) {\n                    \n    crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);\n  }\n  if (param_3 == 0) {\n                    \n    crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);\n  }\n  if (1 < param_2) {\n    uVar4 = 7;\n    if (1 < (byte)(*param_1 - 0x30U)) goto LAB_00172f95;\n    bVar1 = param_1[1];\n    uVar9 = (ulong)bVar1;\n    uVar12 = 2;\n    if ((char)bVar1 < '\0') {\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar10 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar10 + 2;\n      if (param_2 < uVar12) goto LAB_00172f95;\n      uVar4 = 0;\n      uVar6 = bVar1 & 7;\n      pcVar14 = param_1;\n      if ((bVar1 & 7) != 0) {\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }\n      do {\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      } while (pcVar13 != param_1 + uVar10);\n    }\nLAB_00172dda:\n    uVar4 = 7;\n    if (param_2 < uVar12 + uVar9) goto LAB_00172f95;\n    if (param_4 < 1) {\nLAB_00173790:\n      uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);\n      goto LAB_00172f95;\n    }\n    piVar5 = (int *)(param_3 + 0x58);\n    piVar8 = (int *)(param_3 + 0x18);\n    piVar7 = piVar5 + (ulong)(param_4 - 1) * 0x10;\n    uVar6 = (int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U & 7;\n    if (uVar6 == 0) goto LAB_00172e99;\n    if (uVar6 != 1) {\n      if (uVar6 != 2) {\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }\n      *piVar8 = 0;\n      piVar8 = piVar8 + 0x10;\n    }\n    *piVar8 = 0;\n    for (piVar8 = piVar8 + 0x10; piVar8 != piVar7; piVar8 = piVar8 + 0x80) {\nLAB_00172e99:\n      *piVar8 = 0;\n      piVar8[0x10] = 0;\n      piVar8[0x20] = 0;\n      piVar8[0x30] = 0;\n      piVar8[0x40] = 0;\n      piVar8[0x50] = 0;\n      piVar8[0x60] = 0;\n      piVar8[0x70] = 0;\n    }\n    iVar15 = 0;\nLAB_00172f1e:\n    do {\n      local_48 = 0;\n      piVar8 = (int *)((long)iVar15 * 0x40 + param_3);\n      local_50 = *(undefined8 *)(piVar8 + 4);\n      iVar3 = *piVar8;\n      puVar2 = *(undefined8 **)(piVar8 + 2);\n      if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;\n      if (iVar3 == 0) break;\n      switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (iVar3 != 0) goto LAB_00172f95;\n      uVar12 = uVar12 + local_48;\n      uVar9 = uVar9 - local_48;\nswitchD_00172f6d_caseD_14:\n      piVar8[6] = 1;\n      if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < param_4);\n    if (*(int *)(param_3 + 0x18) != 0) {\n      uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6;\n      uVar6 = (uint)uVar4 & 7;\n      piVar8 = piVar5;\n      if ((uVar4 & 7) == 0) goto LAB_00173282;\n      piVar8 = (int *)(param_3 + 0x98);\n      if (*piVar5 != 0) {\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }\n    }\n  }\nLAB_00172f90:\n  uVar4 = 7;\nLAB_00172f95:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return uVar4;\n}" (type_identifier "ulong") (function_declarator "der_decode_sequence_ex(char *param_1,ulong param_2,long param_3,int param_4,int param_5)" (identifier "der_decode_sequence_ex") (parameter_list "(char *param_1,ulong param_2,long param_3,int param_4,int param_5)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "ulong param_2" (type_identifier "ulong") (identifier "param_2")) (, ",") (parameter_declaration "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) () ")"))) (compound_statement "{\n  byte bVar1;\n  undefined8 *puVar2;\n  int iVar3;\n  ulong uVar4;\n  int *piVar5;\n  uint uVar6;\n  int *piVar7;\n  int *piVar8;\n  ulong uVar9;\n  ulong uVar10;\n  undefined8 uVar11;\n  ulong uVar12;\n  char *pcVar13;\n  char *pcVar14;\n  int iVar15;\n  long in_FS_OFFSET;\n  undefined8 local_50;\n  ulong local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == (char *)0x0) {\n                    \n    crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);\n  }\n  if (param_3 == 0) {\n                    \n    crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);\n  }\n  if (1 < param_2) {\n    uVar4 = 7;\n    if (1 < (byte)(*param_1 - 0x30U)) goto LAB_00172f95;\n    bVar1 = param_1[1];\n    uVar9 = (ulong)bVar1;\n    uVar12 = 2;\n    if ((char)bVar1 < '\0') {\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar10 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar10 + 2;\n      if (param_2 < uVar12) goto LAB_00172f95;\n      uVar4 = 0;\n      uVar6 = bVar1 & 7;\n      pcVar14 = param_1;\n      if ((bVar1 & 7) != 0) {\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }\n      do {\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      } while (pcVar13 != param_1 + uVar10);\n    }\nLAB_00172dda:\n    uVar4 = 7;\n    if (param_2 < uVar12 + uVar9) goto LAB_00172f95;\n    if (param_4 < 1) {\nLAB_00173790:\n      uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);\n      goto LAB_00172f95;\n    }\n    piVar5 = (int *)(param_3 + 0x58);\n    piVar8 = (int *)(param_3 + 0x18);\n    piVar7 = piVar5 + (ulong)(param_4 - 1) * 0x10;\n    uVar6 = (int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U & 7;\n    if (uVar6 == 0) goto LAB_00172e99;\n    if (uVar6 != 1) {\n      if (uVar6 != 2) {\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }\n      *piVar8 = 0;\n      piVar8 = piVar8 + 0x10;\n    }\n    *piVar8 = 0;\n    for (piVar8 = piVar8 + 0x10; piVar8 != piVar7; piVar8 = piVar8 + 0x80) {\nLAB_00172e99:\n      *piVar8 = 0;\n      piVar8[0x10] = 0;\n      piVar8[0x20] = 0;\n      piVar8[0x30] = 0;\n      piVar8[0x40] = 0;\n      piVar8[0x50] = 0;\n      piVar8[0x60] = 0;\n      piVar8[0x70] = 0;\n    }\n    iVar15 = 0;\nLAB_00172f1e:\n    do {\n      local_48 = 0;\n      piVar8 = (int *)((long)iVar15 * 0x40 + param_3);\n      local_50 = *(undefined8 *)(piVar8 + 4);\n      iVar3 = *piVar8;\n      puVar2 = *(undefined8 **)(piVar8 + 2);\n      if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;\n      if (iVar3 == 0) break;\n      switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (iVar3 != 0) goto LAB_00172f95;\n      uVar12 = uVar12 + local_48;\n      uVar9 = uVar9 - local_48;\nswitchD_00172f6d_caseD_14:\n      piVar8[6] = 1;\n      if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < param_4);\n    if (*(int *)(param_3 + 0x18) != 0) {\n      uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6;\n      uVar6 = (uint)uVar4 & 7;\n      piVar8 = piVar5;\n      if ((uVar4 & 7) == 0) goto LAB_00173282;\n      piVar8 = (int *)(param_3 + 0x98);\n      if (*piVar5 != 0) {\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }\n    }\n  }\nLAB_00172f90:\n  uVar4 = 7;\nLAB_00172f95:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return uVar4;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "undefined8 *puVar2;" (type_identifier "undefined8") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "ulong uVar4;" (type_identifier "ulong") (identifier "uVar4") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "ulong uVar9;" (type_identifier "ulong") (identifier "uVar9") (; ";")) (declaration "ulong uVar10;" (type_identifier "ulong") (identifier "uVar10") (; ";")) (declaration "undefined8 uVar11;" (type_identifier "undefined8") (identifier "uVar11") (; ";")) (declaration "ulong uVar12;" (type_identifier "ulong") (identifier "uVar12") (; ";")) (declaration "char *pcVar13;" (primitive_type "char") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (declaration "char *pcVar14;" (primitive_type "char") (pointer_declarator "*pcVar14" (* "*") (identifier "pcVar14")) (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "undefined8 local_50;" (type_identifier "undefined8") (identifier "local_50") (; ";")) (declaration "ulong local_48;" (type_identifier "ulong") (identifier "local_48") (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (param_1 == (char *)0x0) {\n                    \n    crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);\n  }" (if "if") (parenthesized_expression "(param_1 == (char *)0x0)" (( "(") (binary_expression "param_1 == (char *)0x0" (identifier "param_1") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);\n  }" ({ "{") (expression_statement "crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);" (call_expression "crypt_argchk("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24)" (identifier "crypt_argchk") (argument_list "("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24)" (( "(") (string_literal ""in != NULL"" (" """) (string_content "in != NULL") (" """)) (, ",") (string_literal ""src/pk/asn1/der/sequence/der_decode_sequence_ex.c"" (" """) (string_content "src/pk/asn1/der/sequence/der_decode_sequence_ex.c") (" """)) (, ",") (number_literal "0x24") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_3 == 0) {\n                    \n    crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);\n  }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);\n  }" ({ "{") (expression_statement "crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);" (call_expression "crypt_argchk("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25)" (identifier "crypt_argchk") (argument_list "("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25)" (( "(") (string_literal ""list != NULL"" (" """) (string_content "list != NULL") (" """)) (, ",") (string_literal ""src/pk/asn1/der/sequence/der_decode_sequence_ex.c"" (" """) (string_content "src/pk/asn1/der/sequence/der_decode_sequence_ex.c") (" """)) (, ",") (number_literal "0x25") () ")"))) (; ";")) (} "}"))) (if_statement "if (1 < param_2) {\n    uVar4 = 7;\n    if (1 < (byte)(*param_1 - 0x30U)) goto LAB_00172f95;\n    bVar1 = param_1[1];\n    uVar9 = (ulong)bVar1;\n    uVar12 = 2;\n    if ((char)bVar1 < '\0') {\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar10 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar10 + 2;\n      if (param_2 < uVar12) goto LAB_00172f95;\n      uVar4 = 0;\n      uVar6 = bVar1 & 7;\n      pcVar14 = param_1;\n      if ((bVar1 & 7) != 0) {\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }\n      do {\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      } while (pcVar13 != param_1 + uVar10);\n    }\nLAB_00172dda:\n    uVar4 = 7;\n    if (param_2 < uVar12 + uVar9) goto LAB_00172f95;\n    if (param_4 < 1) {\nLAB_00173790:\n      uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);\n      goto LAB_00172f95;\n    }\n    piVar5 = (int *)(param_3 + 0x58);\n    piVar8 = (int *)(param_3 + 0x18);\n    piVar7 = piVar5 + (ulong)(param_4 - 1) * 0x10;\n    uVar6 = (int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U & 7;\n    if (uVar6 == 0) goto LAB_00172e99;\n    if (uVar6 != 1) {\n      if (uVar6 != 2) {\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }\n      *piVar8 = 0;\n      piVar8 = piVar8 + 0x10;\n    }\n    *piVar8 = 0;\n    for (piVar8 = piVar8 + 0x10; piVar8 != piVar7; piVar8 = piVar8 + 0x80) {\nLAB_00172e99:\n      *piVar8 = 0;\n      piVar8[0x10] = 0;\n      piVar8[0x20] = 0;\n      piVar8[0x30] = 0;\n      piVar8[0x40] = 0;\n      piVar8[0x50] = 0;\n      piVar8[0x60] = 0;\n      piVar8[0x70] = 0;\n    }\n    iVar15 = 0;\nLAB_00172f1e:\n    do {\n      local_48 = 0;\n      piVar8 = (int *)((long)iVar15 * 0x40 + param_3);\n      local_50 = *(undefined8 *)(piVar8 + 4);\n      iVar3 = *piVar8;\n      puVar2 = *(undefined8 **)(piVar8 + 2);\n      if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;\n      if (iVar3 == 0) break;\n      switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (iVar3 != 0) goto LAB_00172f95;\n      uVar12 = uVar12 + local_48;\n      uVar9 = uVar9 - local_48;\nswitchD_00172f6d_caseD_14:\n      piVar8[6] = 1;\n      if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < param_4);\n    if (*(int *)(param_3 + 0x18) != 0) {\n      uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6;\n      uVar6 = (uint)uVar4 & 7;\n      piVar8 = piVar5;\n      if ((uVar4 & 7) == 0) goto LAB_00173282;\n      piVar8 = (int *)(param_3 + 0x98);\n      if (*piVar5 != 0) {\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "(1 < param_2)" (( "(") (binary_expression "1 < param_2" (number_literal "1") (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n    uVar4 = 7;\n    if (1 < (byte)(*param_1 - 0x30U)) goto LAB_00172f95;\n    bVar1 = param_1[1];\n    uVar9 = (ulong)bVar1;\n    uVar12 = 2;\n    if ((char)bVar1 < '\0') {\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar10 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar10 + 2;\n      if (param_2 < uVar12) goto LAB_00172f95;\n      uVar4 = 0;\n      uVar6 = bVar1 & 7;\n      pcVar14 = param_1;\n      if ((bVar1 & 7) != 0) {\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }\n      do {\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      } while (pcVar13 != param_1 + uVar10);\n    }\nLAB_00172dda:\n    uVar4 = 7;\n    if (param_2 < uVar12 + uVar9) goto LAB_00172f95;\n    if (param_4 < 1) {\nLAB_00173790:\n      uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);\n      goto LAB_00172f95;\n    }\n    piVar5 = (int *)(param_3 + 0x58);\n    piVar8 = (int *)(param_3 + 0x18);\n    piVar7 = piVar5 + (ulong)(param_4 - 1) * 0x10;\n    uVar6 = (int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U & 7;\n    if (uVar6 == 0) goto LAB_00172e99;\n    if (uVar6 != 1) {\n      if (uVar6 != 2) {\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }\n      *piVar8 = 0;\n      piVar8 = piVar8 + 0x10;\n    }\n    *piVar8 = 0;\n    for (piVar8 = piVar8 + 0x10; piVar8 != piVar7; piVar8 = piVar8 + 0x80) {\nLAB_00172e99:\n      *piVar8 = 0;\n      piVar8[0x10] = 0;\n      piVar8[0x20] = 0;\n      piVar8[0x30] = 0;\n      piVar8[0x40] = 0;\n      piVar8[0x50] = 0;\n      piVar8[0x60] = 0;\n      piVar8[0x70] = 0;\n    }\n    iVar15 = 0;\nLAB_00172f1e:\n    do {\n      local_48 = 0;\n      piVar8 = (int *)((long)iVar15 * 0x40 + param_3);\n      local_50 = *(undefined8 *)(piVar8 + 4);\n      iVar3 = *piVar8;\n      puVar2 = *(undefined8 **)(piVar8 + 2);\n      if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;\n      if (iVar3 == 0) break;\n      switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (iVar3 != 0) goto LAB_00172f95;\n      uVar12 = uVar12 + local_48;\n      uVar9 = uVar9 - local_48;\nswitchD_00172f6d_caseD_14:\n      piVar8[6] = 1;\n      if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < param_4);\n    if (*(int *)(param_3 + 0x18) != 0) {\n      uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6;\n      uVar6 = (uint)uVar4 & 7;\n      piVar8 = piVar5;\n      if ((uVar4 & 7) == 0) goto LAB_00173282;\n      piVar8 = (int *)(param_3 + 0x98);\n      if (*piVar5 != 0) {\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "uVar4 = 7;" (assignment_expression "uVar4 = 7" (identifier "uVar4") (= "=") (number_literal "7")) (; ";")) (if_statement "if (1 < (byte)(*param_1 - 0x30U)) goto LAB_00172f95;" (if "if") (parenthesized_expression "(1 < (byte)(*param_1 - 0x30U))" (( "(") (binary_expression "1 < (byte)(*param_1 - 0x30U)" (number_literal "1") (< "<") (call_expression "(byte)(*param_1 - 0x30U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(*param_1 - 0x30U)" (( "(") (binary_expression "*param_1 - 0x30U" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (- "-") (number_literal "0x30U")) () ")")))) () ")")) (goto_statement "goto LAB_00172f95;" (goto "goto") (statement_identifier "LAB_00172f95") (; ";"))) (expression_statement "bVar1 = param_1[1];" (assignment_expression "bVar1 = param_1[1]" (identifier "bVar1") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar9 = (ulong)bVar1;" (assignment_expression "uVar9 = (ulong)bVar1" (identifier "uVar9") (= "=") (cast_expression "(ulong)bVar1" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar1"))) (; ";")) (expression_statement "uVar12 = 2;" (assignment_expression "uVar12 = 2" (identifier "uVar12") (= "=") (number_literal "2")) (; ";")) (if_statement "if ((char)bVar1 < '\0') {\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar10 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar10 + 2;\n      if (param_2 < uVar12) goto LAB_00172f95;\n      uVar4 = 0;\n      uVar6 = bVar1 & 7;\n      pcVar14 = param_1;\n      if ((bVar1 & 7) != 0) {\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }\n      do {\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      } while (pcVar13 != param_1 + uVar10);\n    }" (if "if") (parenthesized_expression "((char)bVar1 < '\0')" (( "(") (binary_expression "(char)bVar1 < '\0'" (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;\n      uVar10 = (ulong)(bVar1 & 0x7f);\n      uVar12 = uVar10 + 2;\n      if (param_2 < uVar12) goto LAB_00172f95;\n      uVar4 = 0;\n      uVar6 = bVar1 & 7;\n      pcVar14 = param_1;\n      if ((bVar1 & 7) != 0) {\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }\n      do {\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      } while (pcVar13 != param_1 + uVar10);\n    }" ({ "{") (if_statement "if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;" (if "if") (parenthesized_expression "(2 < (byte)(bVar1 + 0x7f))" (( "(") (binary_expression "2 < (byte)(bVar1 + 0x7f)" (number_literal "2") (< "<") (call_expression "(byte)(bVar1 + 0x7f)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar1 + 0x7f)" (( "(") (binary_expression "bVar1 + 0x7f" (identifier "bVar1") (+ "+") (number_literal "0x7f")) () ")")))) () ")")) (goto_statement "goto LAB_00172f95;" (goto "goto") (statement_identifier "LAB_00172f95") (; ";"))) (expression_statement "uVar10 = (ulong)(bVar1 & 0x7f);" (assignment_expression "uVar10 = (ulong)(bVar1 & 0x7f)" (identifier "uVar10") (= "=") (call_expression "(ulong)(bVar1 & 0x7f)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(bVar1 & 0x7f)" (( "(") (binary_expression "bVar1 & 0x7f" (identifier "bVar1") (& "&") (number_literal "0x7f")) () ")")))) (; ";")) (expression_statement "uVar12 = uVar10 + 2;" (assignment_expression "uVar12 = uVar10 + 2" (identifier "uVar12") (= "=") (binary_expression "uVar10 + 2" (identifier "uVar10") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (param_2 < uVar12) goto LAB_00172f95;" (if "if") (parenthesized_expression "(param_2 < uVar12)" (( "(") (binary_expression "param_2 < uVar12" (identifier "param_2") (< "<") (identifier "uVar12")) () ")")) (goto_statement "goto LAB_00172f95;" (goto "goto") (statement_identifier "LAB_00172f95") (; ";"))) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar6 = bVar1 & 7;" (assignment_expression "uVar6 = bVar1 & 7" (identifier "uVar6") (= "=") (binary_expression "bVar1 & 7" (identifier "bVar1") (& "&") (number_literal "7"))) (; ";")) (expression_statement "pcVar14 = param_1;" (assignment_expression "pcVar14 = param_1" (identifier "pcVar14") (= "=") (identifier "param_1")) (; ";")) (if_statement "if ((bVar1 & 7) != 0) {\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }" (if "if") (parenthesized_expression "((bVar1 & 7) != 0)" (( "(") (binary_expression "(bVar1 & 7) != 0" (parenthesized_expression "(bVar1 & 7)" (( "(") (binary_expression "bVar1 & 7" (identifier "bVar1") (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar13 = param_1;\n        if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }\n        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n        pcVar14 = pcVar13 + 1;\n        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;\n      }" ({ "{") (expression_statement "pcVar13 = param_1;" (assignment_expression "pcVar13 = param_1" (identifier "pcVar13") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (uVar6 != 1) {\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }" (if "if") (parenthesized_expression "(uVar6 != 1)" (( "(") (binary_expression "uVar6 != 1" (identifier "uVar6") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n          if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }\n          pcVar13 = pcVar14 + 1;\n          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n        }" ({ "{") (if_statement "if (uVar6 != 2) {\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }" (if "if") (parenthesized_expression "(uVar6 != 2)" (( "(") (binary_expression "uVar6 != 2" (identifier "uVar6") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n            if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }\n            pcVar14 = pcVar13 + 1;\n            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n          }" ({ "{") (if_statement "if (uVar6 != 3) {\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }" (if "if") (parenthesized_expression "(uVar6 != 3)" (( "(") (binary_expression "uVar6 != 3" (identifier "uVar6") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n              if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }\n              pcVar13 = pcVar14 + 1;\n              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n            }" ({ "{") (if_statement "if (uVar6 != 4) {\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }" (if "if") (parenthesized_expression "(uVar6 != 4)" (( "(") (binary_expression "uVar6 != 4" (identifier "uVar6") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n                if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }\n                pcVar14 = pcVar13 + 1;\n                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];\n              }" ({ "{") (if_statement "if (uVar6 != 5) {\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }" (if "if") (parenthesized_expression "(uVar6 != 5)" (( "(") (binary_expression "uVar6 != 5" (identifier "uVar6") (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n                  if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }\n                  pcVar13 = pcVar14 + 1;\n                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];\n                }" ({ "{") (if_statement "if (uVar6 != 6) {\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }" (if "if") (parenthesized_expression "(uVar6 != 6)" (( "(") (binary_expression "uVar6 != 6" (identifier "uVar6") (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n                    uVar4 = (ulong)(byte)param_1[2];\n                    pcVar14 = param_1 + 1;\n                  }" ({ "{") (expression_statement "uVar4 = (ulong)(byte)param_1[2];" (assignment_expression "uVar4 = (ulong)(byte)param_1[2]" (identifier "uVar4") (= "=") (cast_expression "(ulong)(byte)param_1[2]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(byte)param_1[2]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (expression_statement "pcVar14 = param_1 + 1;" (assignment_expression "pcVar14 = param_1 + 1" (identifier "pcVar14") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pcVar13 = pcVar14 + 1;" (assignment_expression "pcVar13 = pcVar14 + 1" (identifier "pcVar13") (= "=") (binary_expression "pcVar14 + 1" (identifier "pcVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];" (assignment_expression "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2]" (identifier "uVar4") (= "=") (binary_expression "uVar4 << 8 | (ulong)(byte)pcVar14[2]" (binary_expression "uVar4 << 8" (identifier "uVar4") (<< "<<") (number_literal "8")) (| "|") (cast_expression "(ulong)(byte)pcVar14[2]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(byte)pcVar14[2]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "pcVar14[2]" (identifier "pcVar14") ([ "[") (number_literal "2") (] "]")))))) (; ";")) (} "}"))) (expression_statement "pcVar14 = pcVar13 + 1;" (assignment_expression "pcVar14 = pcVar13 + 1" (identifier "pcVar14") (= "=") (binary_expression "pcVar13 + 1" (identifier "pcVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];" (assignment_expression "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2]" (identifier "uVar4") (= "=") (binary_expression "uVar4 << 8 | (ulong)(byte)pcVar13[2]" (binary_expression "uVar4 << 8" (identifier "uVar4") (<< "<<") (number_literal "8")) (| "|") (cast_expression "(ulong)(byte)pcVar13[2]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(byte)pcVar13[2]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "pcVar13[2]" (identifier "pcVar13") ([ "[") (number_literal "2") (] "]")))))) (; ";")) (} "}"))) (expression_statement "pcVar13 = pcVar14 + 1;" (assignment_expression "pcVar13 = pcVar14 + 1" (identifier "pcVar13") (= "=") (binary_expression "pcVar14 + 1" (identifier "pcVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];" (assignment_expression "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2]" (identifier "uVar4") (= "=") (binary_expression "uVar4 << 8 | (ulong)(byte)pcVar14[2]" (binary_expression "uVar4 << 8" (identifier "uVar4") (<< "<<") (number_literal "8")) (| "|") (cast_expression "(ulong)(byte)pcVar14[2]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(byte)pcVar14[2]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "pcVar14[2]" (identifier "pcVar14") ([ "[") (number_literal "2") (] "]")))))) (; ";")) (} "}"))) (expression_statement "pcVar14 = pcVar13 + 1;" (assignment_expression "pcVar14 = pcVar13 + 1" (identifier "pcVar14") (= "=") (binary_expression "pcVar13 + 1" (identifier "pcVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];" (assignment_expression "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2]" (identifier "uVar4") (= "=") (binary_expression "uVar4 << 8 | (ulong)(byte)pcVar13[2]" (binary_expression "uVar4 << 8" (identifier "uVar4") (<< "<<") (number_literal "8")) (| "|") (cast_expression "(ulong)(byte)pcVar13[2]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(byte)pcVar13[2]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "pcVar13[2]" (identifier "pcVar13") ([ "[") (number_literal "2") (] "]")))))) (; ";")) (} "}"))) (expression_statement "pcVar13 = pcVar14 + 1;" (assignment_expression "pcVar13 = pcVar14 + 1" (identifier "pcVar13") (= "=") (binary_expression "pcVar14 + 1" (identifier "pcVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];" (assignment_expression "uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2]" (identifier "uVar4") (= "=") (binary_expression "uVar4 << 8 | (ulong)(byte)pcVar14[2]" (binary_expression "uVar4 << 8" (identifier "uVar4") (<< "<<") (number_literal "8")) (| "|") (cast_expression "(ulong)(byte)pcVar14[2]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(byte)pcVar14[2]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "pcVar14[2]" (identifier "pcVar14") ([ "[") (number_literal "2") (] "]")))))) (; ";")) (} "}"))) (expression_statement "uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];" (assignment_expression "uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2]" (identifier "uVar9") (= "=") (binary_expression "uVar4 << 8 | (ulong)(byte)pcVar13[2]" (binary_expression "uVar4 << 8" (identifier "uVar4") (<< "<<") (number_literal "8")) (| "|") (cast_expression "(ulong)(byte)pcVar13[2]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(byte)pcVar13[2]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "pcVar13[2]" (identifier "pcVar13") ([ "[") (number_literal "2") (] "]")))))) (; ";")) (expression_statement "pcVar14 = pcVar13 + 1;" (assignment_expression "pcVar14 = pcVar13 + 1" (identifier "pcVar14") (= "=") (binary_expression "pcVar13 + 1" (identifier "pcVar13") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;" (if "if") (parenthesized_expression "(pcVar13 + 1 == param_1 + uVar10)" (( "(") (binary_expression "pcVar13 + 1 == param_1 + uVar10" (binary_expression "pcVar13 + 1" (identifier "pcVar13") (+ "+") (number_literal "1")) (== "==") (binary_expression "param_1 + uVar10" (identifier "param_1") (+ "+") (identifier "uVar10"))) () ")")) (goto_statement "goto LAB_00172dda;" (goto "goto") (statement_identifier "LAB_00172dda") (; ";"))) (} "}"))) (do_statement "do {\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      } while (pcVar13 != param_1 + uVar10);" (do "do") (compound_statement "{\n        pcVar13 = pcVar14 + 8;\n        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);\n        pcVar14 = pcVar13;\n      }" ({ "{") (expression_statement "pcVar13 = pcVar14 + 8;" (assignment_expression "pcVar13 = pcVar14 + 8" (identifier "pcVar13") (= "=") (binary_expression "pcVar14 + 8" (identifier "pcVar14") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9]);" (assignment_expression "uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9])" (identifier "uVar9") (= "=") (call_expression "CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9])" (identifier "CONCAT71") (argument_list "(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13),pcVar14[9])" (( "(") (call_expression "CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13)" (identifier "CONCAT61") (argument_list "(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),\n                                  *pcVar13)" (( "(") (call_expression "CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7])" (identifier "CONCAT51") (argument_list "(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6]),pcVar14[7])" (( "(") (call_expression "CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6])" (identifier "CONCAT41") (argument_list "(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5]),pcVar14[6])" (( "(") (call_expression "CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5])" (identifier "CONCAT31") (argument_list "(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4]),\n                                                             pcVar14[5])" (( "(") (call_expression "CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4])" (identifier "CONCAT21") (argument_list "(CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              ),pcVar14[4])" (( "(") (call_expression "CONCAT11(pcVar14[2],pcVar14[3]\n                                                                              )" (identifier "CONCAT11") (argument_list "(pcVar14[2],pcVar14[3]\n                                                                              )" (( "(") (subscript_expression "pcVar14[2]" (identifier "pcVar14") ([ "[") (number_literal "2") (] "]")) (, ",") (subscript_expression "pcVar14[3]" (identifier "pcVar14") ([ "[") (number_literal "3") (] "]")) () ")"))) (, ",") (subscript_expression "pcVar14[4]" (identifier "pcVar14") ([ "[") (number_literal "4") (] "]")) () ")"))) (, ",") (subscript_expression "pcVar14[5]" (identifier "pcVar14") ([ "[") (number_literal "5") (] "]")) () ")"))) (, ",") (subscript_expression "pcVar14[6]" (identifier "pcVar14") ([ "[") (number_literal "6") (] "]")) () ")"))) (, ",") (subscript_expression "pcVar14[7]" (identifier "pcVar14") ([ "[") (number_literal "7") (] "]")) () ")"))) (, ",") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) () ")"))) (, ",") (subscript_expression "pcVar14[9]" (identifier "pcVar14") ([ "[") (number_literal "9") (] "]")) () ")")))) (; ";")) (expression_statement "pcVar14 = pcVar13;" (assignment_expression "pcVar14 = pcVar13" (identifier "pcVar14") (= "=") (identifier "pcVar13")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar13 != param_1 + uVar10)" (( "(") (binary_expression "pcVar13 != param_1 + uVar10" (identifier "pcVar13") (!= "!=") (binary_expression "param_1 + uVar10" (identifier "param_1") (+ "+") (identifier "uVar10"))) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00172dda:\n    uVar4 = 7;" (statement_identifier "LAB_00172dda") (: ":") (expression_statement "uVar4 = 7;" (assignment_expression "uVar4 = 7" (identifier "uVar4") (= "=") (number_literal "7")) (; ";"))) (if_statement "if (param_2 < uVar12 + uVar9) goto LAB_00172f95;" (if "if") (parenthesized_expression "(param_2 < uVar12 + uVar9)" (( "(") (binary_expression "param_2 < uVar12 + uVar9" (identifier "param_2") (< "<") (binary_expression "uVar12 + uVar9" (identifier "uVar12") (+ "+") (identifier "uVar9"))) () ")")) (goto_statement "goto LAB_00172f95;" (goto "goto") (statement_identifier "LAB_00172f95") (; ";"))) (if_statement "if (param_4 < 1) {\nLAB_00173790:\n      uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);\n      goto LAB_00172f95;\n    }" (if "if") (parenthesized_expression "(param_4 < 1)" (( "(") (binary_expression "param_4 < 1" (identifier "param_4") (< "<") (number_literal "1")) () ")")) (compound_statement "{\nLAB_00173790:\n      uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);\n      goto LAB_00172f95;\n    }" ({ "{") (labeled_statement "LAB_00173790:\n      uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);" (statement_identifier "LAB_00173790") (: ":") (expression_statement "uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);" (assignment_expression "uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15)" (identifier "uVar4") (= "=") (call_expression "(ulong)(~-(uint)(uVar9 == 0) & 0x15)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(~-(uint)(uVar9 == 0) & 0x15)" (( "(") (binary_expression "~-(uint)(uVar9 == 0) & 0x15" (unary_expression "~-(uint)(uVar9 == 0)" (~ "~") (unary_expression "-(uint)(uVar9 == 0)" (- "-") (call_expression "(uint)(uVar9 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")"))))) (& "&") (number_literal "0x15")) () ")")))) (; ";"))) (goto_statement "goto LAB_00172f95;" (goto "goto") (statement_identifier "LAB_00172f95") (; ";")) (} "}"))) (expression_statement "piVar5 = (int *)(param_3 + 0x58);" (assignment_expression "piVar5 = (int *)(param_3 + 0x58)" (identifier "piVar5") (= "=") (cast_expression "(int *)(param_3 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x58)" (( "(") (binary_expression "param_3 + 0x58" (identifier "param_3") (+ "+") (number_literal "0x58")) () ")")))) (; ";")) (expression_statement "piVar8 = (int *)(param_3 + 0x18);" (assignment_expression "piVar8 = (int *)(param_3 + 0x18)" (identifier "piVar8") (= "=") (cast_expression "(int *)(param_3 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x18)" (( "(") (binary_expression "param_3 + 0x18" (identifier "param_3") (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "piVar7 = piVar5 + (ulong)(param_4 - 1) * 0x10;" (assignment_expression "piVar7 = piVar5 + (ulong)(param_4 - 1) * 0x10" (identifier "piVar7") (= "=") (binary_expression "piVar5 + (ulong)(param_4 - 1) * 0x10" (identifier "piVar5") (+ "+") (binary_expression "(ulong)(param_4 - 1) * 0x10" (call_expression "(ulong)(param_4 - 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(param_4 - 1)" (( "(") (binary_expression "param_4 - 1" (identifier "param_4") (- "-") (number_literal "1")) () ")"))) (* "*") (number_literal "0x10")))) (; ";")) (expression_statement "uVar6 = (int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U & 7;" (assignment_expression "uVar6 = (int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U & 7" (identifier "uVar6") (= "=") (binary_expression "(int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U & 7" (binary_expression "(int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U" (cast_expression "(int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6)" (( "(") (binary_expression "(ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6" (call_expression "(ulong)((long)piVar7 + (-0x40 - (long)piVar8))" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((long)piVar7 + (-0x40 - (long)piVar8))" (( "(") (binary_expression "(long)piVar7 + (-0x40 - (long)piVar8)" (cast_expression "(long)piVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "piVar7")) (+ "+") (parenthesized_expression "(-0x40 - (long)piVar8)" (( "(") (binary_expression "-0x40 - (long)piVar8" (number_literal "-0x40") (- "-") (cast_expression "(long)piVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "piVar8"))) () ")"))) () ")"))) (>> ">>") (number_literal "6")) () ")"))) (+ "+") (number_literal "1U")) (& "&") (number_literal "7"))) (; ";")) (if_statement "if (uVar6 == 0) goto LAB_00172e99;" (if "if") (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00172e99;" (goto "goto") (statement_identifier "LAB_00172e99") (; ";"))) (if_statement "if (uVar6 != 1) {\n      if (uVar6 != 2) {\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }\n      *piVar8 = 0;\n      piVar8 = piVar8 + 0x10;\n    }" (if "if") (parenthesized_expression "(uVar6 != 1)" (( "(") (binary_expression "uVar6 != 1" (identifier "uVar6") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n      if (uVar6 != 2) {\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }\n      *piVar8 = 0;\n      piVar8 = piVar8 + 0x10;\n    }" ({ "{") (if_statement "if (uVar6 != 2) {\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }" (if "if") (parenthesized_expression "(uVar6 != 2)" (( "(") (binary_expression "uVar6 != 2" (identifier "uVar6") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n        if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }\n        *piVar8 = 0;\n        piVar8 = piVar8 + 0x10;\n      }" ({ "{") (if_statement "if (uVar6 != 3) {\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }" (if "if") (parenthesized_expression "(uVar6 != 3)" (( "(") (binary_expression "uVar6 != 3" (identifier "uVar6") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n          if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }\n          *piVar8 = 0;\n          piVar8 = piVar8 + 0x10;\n        }" ({ "{") (if_statement "if (uVar6 != 4) {\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }" (if "if") (parenthesized_expression "(uVar6 != 4)" (( "(") (binary_expression "uVar6 != 4" (identifier "uVar6") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n            if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }\n            *piVar8 = 0;\n            piVar8 = piVar8 + 0x10;\n          }" ({ "{") (if_statement "if (uVar6 != 5) {\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }" (if "if") (parenthesized_expression "(uVar6 != 5)" (( "(") (binary_expression "uVar6 != 5" (identifier "uVar6") (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n              if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }\n              *piVar8 = 0;\n              piVar8 = piVar8 + 0x10;\n            }" ({ "{") (if_statement "if (uVar6 != 6) {\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }" (if "if") (parenthesized_expression "(uVar6 != 6)" (( "(") (binary_expression "uVar6 != 6" (identifier "uVar6") (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n                *piVar8 = 0;\n                piVar8 = (int *)(param_3 + 0x58);\n              }" ({ "{") (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8 = (int *)(param_3 + 0x58);" (assignment_expression "piVar8 = (int *)(param_3 + 0x58)" (identifier "piVar8") (= "=") (cast_expression "(int *)(param_3 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x58)" (( "(") (binary_expression "param_3 + 0x58" (identifier "param_3") (+ "+") (number_literal "0x58")) () ")")))) (; ";")) (} "}"))) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8 = piVar8 + 0x10;" (assignment_expression "piVar8 = piVar8 + 0x10" (identifier "piVar8") (= "=") (binary_expression "piVar8 + 0x10" (identifier "piVar8") (+ "+") (number_literal "0x10"))) (; ";")) (} "}"))) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8 = piVar8 + 0x10;" (assignment_expression "piVar8 = piVar8 + 0x10" (identifier "piVar8") (= "=") (binary_expression "piVar8 + 0x10" (identifier "piVar8") (+ "+") (number_literal "0x10"))) (; ";")) (} "}"))) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8 = piVar8 + 0x10;" (assignment_expression "piVar8 = piVar8 + 0x10" (identifier "piVar8") (= "=") (binary_expression "piVar8 + 0x10" (identifier "piVar8") (+ "+") (number_literal "0x10"))) (; ";")) (} "}"))) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8 = piVar8 + 0x10;" (assignment_expression "piVar8 = piVar8 + 0x10" (identifier "piVar8") (= "=") (binary_expression "piVar8 + 0x10" (identifier "piVar8") (+ "+") (number_literal "0x10"))) (; ";")) (} "}"))) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8 = piVar8 + 0x10;" (assignment_expression "piVar8 = piVar8 + 0x10" (identifier "piVar8") (= "=") (binary_expression "piVar8 + 0x10" (identifier "piVar8") (+ "+") (number_literal "0x10"))) (; ";")) (} "}"))) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0")) (; ";")) (for_statement "for (piVar8 = piVar8 + 0x10; piVar8 != piVar7; piVar8 = piVar8 + 0x80) {\nLAB_00172e99:\n      *piVar8 = 0;\n      piVar8[0x10] = 0;\n      piVar8[0x20] = 0;\n      piVar8[0x30] = 0;\n      piVar8[0x40] = 0;\n      piVar8[0x50] = 0;\n      piVar8[0x60] = 0;\n      piVar8[0x70] = 0;\n    }" (for "for") (( "(") (assignment_expression "piVar8 = piVar8 + 0x10" (identifier "piVar8") (= "=") (binary_expression "piVar8 + 0x10" (identifier "piVar8") (+ "+") (number_literal "0x10"))) (; ";") (binary_expression "piVar8 != piVar7" (identifier "piVar8") (!= "!=") (identifier "piVar7")) (; ";") (assignment_expression "piVar8 = piVar8 + 0x80" (identifier "piVar8") (= "=") (binary_expression "piVar8 + 0x80" (identifier "piVar8") (+ "+") (number_literal "0x80"))) () ")") (compound_statement "{\nLAB_00172e99:\n      *piVar8 = 0;\n      piVar8[0x10] = 0;\n      piVar8[0x20] = 0;\n      piVar8[0x30] = 0;\n      piVar8[0x40] = 0;\n      piVar8[0x50] = 0;\n      piVar8[0x60] = 0;\n      piVar8[0x70] = 0;\n    }" ({ "{") (labeled_statement "LAB_00172e99:\n      *piVar8 = 0;" (statement_identifier "LAB_00172e99") (: ":") (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0")) (; ";"))) (expression_statement "piVar8[0x10] = 0;" (assignment_expression "piVar8[0x10] = 0" (subscript_expression "piVar8[0x10]" (identifier "piVar8") ([ "[") (number_literal "0x10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8[0x20] = 0;" (assignment_expression "piVar8[0x20] = 0" (subscript_expression "piVar8[0x20]" (identifier "piVar8") ([ "[") (number_literal "0x20") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8[0x30] = 0;" (assignment_expression "piVar8[0x30] = 0" (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8[0x40] = 0;" (assignment_expression "piVar8[0x40] = 0" (subscript_expression "piVar8[0x40]" (identifier "piVar8") ([ "[") (number_literal "0x40") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8[0x50] = 0;" (assignment_expression "piVar8[0x50] = 0" (subscript_expression "piVar8[0x50]" (identifier "piVar8") ([ "[") (number_literal "0x50") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8[0x60] = 0;" (assignment_expression "piVar8[0x60] = 0" (subscript_expression "piVar8[0x60]" (identifier "piVar8") ([ "[") (number_literal "0x60") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8[0x70] = 0;" (assignment_expression "piVar8[0x70] = 0" (subscript_expression "piVar8[0x70]" (identifier "piVar8") ([ "[") (number_literal "0x70") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00172f1e:\n    do {\n      local_48 = 0;\n      piVar8 = (int *)((long)iVar15 * 0x40 + param_3);\n      local_50 = *(undefined8 *)(piVar8 + 4);\n      iVar3 = *piVar8;\n      puVar2 = *(undefined8 **)(piVar8 + 2);\n      if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;\n      if (iVar3 == 0) break;\n      switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (iVar3 != 0) goto LAB_00172f95;\n      uVar12 = uVar12 + local_48;\n      uVar9 = uVar9 - local_48;\nswitchD_00172f6d_caseD_14:\n      piVar8[6] = 1;\n      if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < param_4);" (statement_identifier "LAB_00172f1e") (: ":") (do_statement "do {\n      local_48 = 0;\n      piVar8 = (int *)((long)iVar15 * 0x40 + param_3);\n      local_50 = *(undefined8 *)(piVar8 + 4);\n      iVar3 = *piVar8;\n      puVar2 = *(undefined8 **)(piVar8 + 2);\n      if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;\n      if (iVar3 == 0) break;\n      switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (iVar3 != 0) goto LAB_00172f95;\n      uVar12 = uVar12 + local_48;\n      uVar9 = uVar9 - local_48;\nswitchD_00172f6d_caseD_14:\n      piVar8[6] = 1;\n      if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    } while (iVar15 < param_4);" (do "do") (compound_statement "{\n      local_48 = 0;\n      piVar8 = (int *)((long)iVar15 * 0x40 + param_3);\n      local_50 = *(undefined8 *)(piVar8 + 4);\n      iVar3 = *piVar8;\n      puVar2 = *(undefined8 **)(piVar8 + 2);\n      if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;\n      if (iVar3 == 0) break;\n      switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }\n      if (iVar3 != 0) goto LAB_00172f95;\n      uVar12 = uVar12 + local_48;\n      uVar9 = uVar9 - local_48;\nswitchD_00172f6d_caseD_14:\n      piVar8[6] = 1;\n      if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }\nLAB_001731b1:\n      iVar15 = iVar15 + 1;\n    }" ({ "{") (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8 = (int *)((long)iVar15 * 0x40 + param_3);" (assignment_expression "piVar8 = (int *)((long)iVar15 * 0x40 + param_3)" (identifier "piVar8") (= "=") (cast_expression "(int *)((long)iVar15 * 0x40 + param_3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)iVar15 * 0x40 + param_3)" (( "(") (binary_expression "(long)iVar15 * 0x40 + param_3" (binary_expression "(long)iVar15 * 0x40" (cast_expression "(long)iVar15" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar15")) (* "*") (number_literal "0x40")) (+ "+") (identifier "param_3")) () ")")))) (; ";")) (expression_statement "local_50 = *(undefined8 *)(piVar8 + 4);" (assignment_expression "local_50 = *(undefined8 *)(piVar8 + 4)" (identifier "local_50") (= "=") (pointer_expression "*(undefined8 *)(piVar8 + 4)" (* "*") (cast_expression "(undefined8 *)(piVar8 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8 + 4)" (( "(") (binary_expression "piVar8 + 4" (identifier "piVar8") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar3 = *piVar8;" (assignment_expression "iVar3 = *piVar8" (identifier "iVar3") (= "=") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (; ";")) (expression_statement "puVar2 = *(undefined8 **)(piVar8 + 2);" (assignment_expression "puVar2 = *(undefined8 **)(piVar8 + 2)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined8 **)(piVar8 + 2)" (* "*") (cast_expression "(undefined8 **)(piVar8 + 2)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar8 + 2)" (( "(") (binary_expression "piVar8 + 2" (identifier "piVar8") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (if_statement "if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;" (if "if") (parenthesized_expression "((param_5 == 0) && (piVar8[6] == 1))" (( "(") (binary_expression "(param_5 == 0) && (piVar8[6] == 1)" (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(piVar8[6] == 1)" (( "(") (binary_expression "piVar8[6] == 1" (subscript_expression "piVar8[6]" (identifier "piVar8") ([ "[") (number_literal "6") (] "]")) (== "==") (number_literal "1")) () ")"))) () ")")) (goto_statement "goto LAB_001731b1;" (goto "goto") (statement_identifier "LAB_001731b1") (; ";"))) (if_statement "if (iVar3 == 0) break;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (switch_statement "switch(iVar3) {\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }" (switch "switch") (parenthesized_expression "(iVar3)" (( "(") (identifier "iVar3") () ")")) (compound_statement "{\n      case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;\n      case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;\n      case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;\n      case 0xd:\n      case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;\n      case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;\n      case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;\n      case 0x12:\n      case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;\n      case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;\n      default:\n        goto switchD_00172f6d_caseD_14;\n      }" ({ "{") (case_statement "case 1:\n        local_48 = uVar9;\n        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;" (case "case") (number_literal "1") (: ":") (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" (identifier "local_48") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);" (assignment_expression "uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2)" (identifier "uVar4") (= "=") (call_expression "der_decode_boolean(param_1 + uVar12,uVar9,puVar2)" (identifier "der_decode_boolean") (argument_list "(param_1 + uVar12,uVar9,puVar2)" (( "(") (binary_expression "param_1 + uVar12" (identifier "param_1") (+ "+") (identifier "uVar12")) (, ",") (identifier "uVar9") (, ",") (identifier "puVar2") () ")")))) (; ";")) (if_statement "if ((int)uVar4 == 0) {\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }" (if "if") (parenthesized_expression "((int)uVar4 == 0)" (( "(") (binary_expression "(int)uVar4 == 0" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar4 = der_length_boolean(&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }" ({ "{") (expression_statement "uVar4 = der_length_boolean(&local_48);" (assignment_expression "uVar4 = der_length_boolean(&local_48)" (identifier "uVar4") (= "=") (call_expression "der_length_boolean(&local_48)" (identifier "der_length_boolean") (argument_list "(&local_48)" (( "(") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")")))) (; ";")) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" (identifier "iVar3") (= "=") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (goto_statement "goto LAB_001731a8;" (goto "goto") (statement_identifier "LAB_001731a8") (; ";"))) (case_statement "case 2:\n        local_48 = uVar9;\n        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_integer(puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;" (case "case") (number_literal "2") (: ":") (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" (identifier "local_48") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);" (assignment_expression "uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2)" (identifier "uVar4") (= "=") (call_expression "der_decode_integer(param_1 + uVar12,uVar9,puVar2)" (identifier "der_decode_integer") (argument_list "(param_1 + uVar12,uVar9,puVar2)" (( "(") (binary_expression "param_1 + uVar12" (identifier "param_1") (+ "+") (identifier "uVar12")) (, ",") (identifier "uVar9") (, ",") (identifier "puVar2") () ")")))) (; ";")) (if_statement "if ((int)uVar4 != 0) goto LAB_001731a8;" (if "if") (parenthesized_expression "((int)uVar4 != 0)" (( "(") (binary_expression "(int)uVar4 != 0" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001731a8;" (goto "goto") (statement_identifier "LAB_001731a8") (; ";"))) (expression_statement "uVar4 = der_length_integer(puVar2,&local_48);" (assignment_expression "uVar4 = der_length_integer(puVar2,&local_48)" (identifier "uVar4") (= "=") (call_expression "der_length_integer(puVar2,&local_48)" (identifier "der_length_integer") (argument_list "(puVar2,&local_48)" (( "(") (identifier "puVar2") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")")))) (; ";")) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" (identifier "iVar3") (= "=") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 3:\n        local_48 = uVar9;\n        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        uVar4 = der_length_short_integer(*puVar2,&local_48);\n        iVar3 = (int)uVar4;\n        break;" (case "case") (number_literal "3") (: ":") (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" (identifier "local_48") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);" (assignment_expression "uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2)" (identifier "uVar4") (= "=") (call_expression "der_decode_short_integer(param_1 + uVar12,uVar9,puVar2)" (identifier "der_decode_short_integer") (argument_list "(param_1 + uVar12,uVar9,puVar2)" (( "(") (binary_expression "param_1 + uVar12" (identifier "param_1") (+ "+") (identifier "uVar12")) (, ",") (identifier "uVar9") (, ",") (identifier "puVar2") () ")")))) (; ";")) (if_statement "if ((int)uVar4 != 0) goto LAB_001731a8;" (if "if") (parenthesized_expression "((int)uVar4 != 0)" (( "(") (binary_expression "(int)uVar4 != 0" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001731a8;" (goto "goto") (statement_identifier "LAB_001731a8") (; ";"))) (expression_statement "uVar4 = der_length_short_integer(*puVar2,&local_48);" (assignment_expression "uVar4 = der_length_short_integer(*puVar2,&local_48)" (identifier "uVar4") (= "=") (call_expression "der_length_short_integer(*puVar2,&local_48)" (identifier "der_length_short_integer") (argument_list "(*puVar2,&local_48)" (( "(") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")")))) (; ";")) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" (identifier "iVar3") (= "=") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\n        local_48 = uVar9;\n        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\n        goto joined_r0x00173127;" (case "case") (number_literal "4") (: ":") (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" (identifier "local_48") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);" (assignment_expression "uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50)" (identifier "uVar4") (= "=") (call_expression "der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50)" (identifier "der_decode_bit_string") (argument_list "(param_1 + uVar12,uVar9,puVar2,&local_50)" (( "(") (binary_expression "param_1 + uVar12" (identifier "param_1") (+ "+") (identifier "uVar12")) (, ",") (identifier "uVar9") (, ",") (identifier "puVar2") (, ",") (pointer_expression "&local_50" (& "&") (identifier "local_50")) () ")")))) (; ";")) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" (identifier "iVar3") (= "=") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) (; ";")) (goto_statement "goto joined_r0x00173127;" (goto "goto") (statement_identifier "joined_r0x00173127") (; ";"))) (case_statement "case 5:\n        local_48 = uVar9;\n        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_octet_string(local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;" (case "case") (number_literal "5") (: ":") (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" (identifier "local_48") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);" (assignment_expression "uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50)" (identifier "uVar4") (= "=") (call_expression "der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50)" (identifier "der_decode_octet_string") (argument_list "(param_1 + uVar12,uVar9,puVar2,&local_50)" (( "(") (binary_expression "param_1 + uVar12" (identifier "param_1") (+ "+") (identifier "uVar12")) (, ",") (identifier "uVar9") (, ",") (identifier "puVar2") (, ",") (pointer_expression "&local_50" (& "&") (identifier "local_50")) () ")")))) (; ";")) (if_statement "if ((int)uVar4 != 0) goto LAB_001731a8;" (if "if") (parenthesized_expression "((int)uVar4 != 0)" (( "(") (binary_expression "(int)uVar4 != 0" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001731a8;" (goto "goto") (statement_identifier "LAB_001731a8") (; ";"))) (expression_statement "*(undefined8 *)(piVar8 + 4) = local_50;" (assignment_expression "*(undefined8 *)(piVar8 + 4) = local_50" (pointer_expression "*(undefined8 *)(piVar8 + 4)" (* "*") (cast_expression "(undefined8 *)(piVar8 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8 + 4)" (( "(") (binary_expression "piVar8 + 4" (identifier "piVar8") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (expression_statement "uVar4 = der_length_octet_string(local_50,&local_48);" (assignment_expression "uVar4 = der_length_octet_string(local_50,&local_48)" (identifier "uVar4") (= "=") (call_expression "der_length_octet_string(local_50,&local_48)" (identifier "der_length_octet_string") (argument_list "(local_50,&local_48)" (( "(") (identifier "local_50") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")")))) (; ";")) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" (identifier "iVar3") (= "=") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f90;" (case "case") (number_literal "6") (: ":") (if_statement "if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }" (if "if") (parenthesized_expression "(((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0'))" (( "(") (binary_expression "((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')" (parenthesized_expression "((1 < uVar9) && (param_1[uVar12] == '\x05'))" (( "(") (binary_expression "(1 < uVar9) && (param_1[uVar12] == '\x05')" (parenthesized_expression "(1 < uVar9)" (( "(") (binary_expression "1 < uVar9" (number_literal "1") (< "<") (identifier "uVar9")) () ")")) (&& "&&") (parenthesized_expression "(param_1[uVar12] == '\x05')" (( "(") (binary_expression "param_1[uVar12] == '\x05'" (subscript_expression "param_1[uVar12]" (identifier "param_1") ([ "[") (identifier "uVar12") (] "]")) (== "==") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(param_1[uVar12 + 1] == '\0')" (( "(") (binary_expression "param_1[uVar12 + 1] == '\0'" (subscript_expression "param_1[uVar12 + 1]" (identifier "param_1") ([ "[") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1")) (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          local_48 = 2;\n          uVar12 = uVar12 + 2;\n          uVar9 = uVar9 - 2;\n          goto switchD_00172f6d_caseD_14;\n        }" ({ "{") (expression_statement "local_48 = 2;" (assignment_expression "local_48 = 2" (identifier "local_48") (= "=") (number_literal "2")) (; ";")) (expression_statement "uVar12 = uVar12 + 2;" (assignment_expression "uVar12 = uVar12 + 2" (identifier "uVar12") (= "=") (binary_expression "uVar12 + 2" (identifier "uVar12") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar9 = uVar9 - 2;" (assignment_expression "uVar9 = uVar9 - 2" (identifier "uVar9") (= "=") (binary_expression "uVar9 - 2" (identifier "uVar9") (- "-") (number_literal "2"))) (; ";")) (goto_statement "goto switchD_00172f6d_caseD_14;" (goto "goto") (statement_identifier "switchD_00172f6d_caseD_14") (; ";")) (} "}"))) (if_statement "if (param_5 == 0) goto LAB_001731b1;" (if "if") (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001731b1;" (goto "goto") (statement_identifier "LAB_001731b1") (; ";"))) (goto_statement "goto LAB_00172f90;" (goto "goto") (statement_identifier "LAB_00172f90") (; ";"))) (case_statement "case 7:\n        local_48 = uVar9;\n        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;" (case "case") (number_literal "7") (: ":") (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" (identifier "local_48") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);" (assignment_expression "uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50)" (identifier "uVar4") (= "=") (call_expression "der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50)" (identifier "der_decode_object_identifier") (argument_list "(param_1 + uVar12,uVar9,puVar2,&local_50)" (( "(") (binary_expression "param_1 + uVar12" (identifier "param_1") (+ "+") (identifier "uVar12")) (, ",") (identifier "uVar9") (, ",") (identifier "puVar2") (, ",") (pointer_expression "&local_50" (& "&") (identifier "local_50")) () ")")))) (; ";")) (if_statement "if ((int)uVar4 != 0) goto LAB_001731a8;" (if "if") (parenthesized_expression "((int)uVar4 != 0)" (( "(") (binary_expression "(int)uVar4 != 0" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001731a8;" (goto "goto") (statement_identifier "LAB_001731a8") (; ";"))) (expression_statement "*(undefined8 *)(piVar8 + 4) = local_50;" (assignment_expression "*(undefined8 *)(piVar8 + 4) = local_50" (pointer_expression "*(undefined8 *)(piVar8 + 4)" (* "*") (cast_expression "(undefined8 *)(piVar8 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8 + 4)" (( "(") (binary_expression "piVar8 + 4" (identifier "piVar8") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (expression_statement "uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);" (assignment_expression "uVar4 = der_length_object_identifier(puVar2,local_50,&local_48)" (identifier "uVar4") (= "=") (call_expression "der_length_object_identifier(puVar2,local_50,&local_48)" (identifier "der_length_object_identifier") (argument_list "(puVar2,local_50,&local_48)" (( "(") (identifier "puVar2") (, ",") (identifier "local_50") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")")))) (; ";")) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" (identifier "iVar3") (= "=") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 8:\n        local_48 = uVar9;\n        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;" (case "case") (number_literal "8") (: ":") (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" (identifier "local_48") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);" (assignment_expression "uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50)" (identifier "uVar4") (= "=") (call_expression "der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50)" (identifier "der_decode_ia5_string") (argument_list "(param_1 + uVar12,uVar9,puVar2,&local_50)" (( "(") (binary_expression "param_1 + uVar12" (identifier "param_1") (+ "+") (identifier "uVar12")) (, ",") (identifier "uVar9") (, ",") (identifier "puVar2") (, ",") (pointer_expression "&local_50" (& "&") (identifier "local_50")) () ")")))) (; ";")) (if_statement "if ((int)uVar4 != 0) goto LAB_001731a8;" (if "if") (parenthesized_expression "((int)uVar4 != 0)" (( "(") (binary_expression "(int)uVar4 != 0" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001731a8;" (goto "goto") (statement_identifier "LAB_001731a8") (; ";"))) (expression_statement "*(undefined8 *)(piVar8 + 4) = local_50;" (assignment_expression "*(undefined8 *)(piVar8 + 4) = local_50" (pointer_expression "*(undefined8 *)(piVar8 + 4)" (* "*") (cast_expression "(undefined8 *)(piVar8 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8 + 4)" (( "(") (binary_expression "piVar8 + 4" (identifier "piVar8") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (expression_statement "uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);" (assignment_expression "uVar4 = der_length_ia5_string(puVar2,local_50,&local_48)" (identifier "uVar4") (= "=") (call_expression "der_length_ia5_string(puVar2,local_50,&local_48)" (identifier "der_length_ia5_string") (argument_list "(puVar2,local_50,&local_48)" (( "(") (identifier "puVar2") (, ",") (identifier "local_50") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")")))) (; ";")) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" (identifier "iVar3") (= "=") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 9:\n        local_48 = uVar9;\n        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;" (case "case") (number_literal "9") (: ":") (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" (identifier "local_48") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);" (assignment_expression "uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50)" (identifier "uVar4") (= "=") (call_expression "der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50)" (identifier "der_decode_printable_string") (argument_list "(param_1 + uVar12,uVar9,puVar2,&local_50)" (( "(") (binary_expression "param_1 + uVar12" (identifier "param_1") (+ "+") (identifier "uVar12")) (, ",") (identifier "uVar9") (, ",") (identifier "puVar2") (, ",") (pointer_expression "&local_50" (& "&") (identifier "local_50")) () ")")))) (; ";")) (if_statement "if ((int)uVar4 != 0) goto LAB_001731a8;" (if "if") (parenthesized_expression "((int)uVar4 != 0)" (( "(") (binary_expression "(int)uVar4 != 0" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001731a8;" (goto "goto") (statement_identifier "LAB_001731a8") (; ";"))) (expression_statement "*(undefined8 *)(piVar8 + 4) = local_50;" (assignment_expression "*(undefined8 *)(piVar8 + 4) = local_50" (pointer_expression "*(undefined8 *)(piVar8 + 4)" (* "*") (cast_expression "(undefined8 *)(piVar8 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8 + 4)" (( "(") (binary_expression "piVar8 + 4" (identifier "piVar8") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (expression_statement "uVar4 = der_length_printable_string(puVar2,local_50,&local_48);" (assignment_expression "uVar4 = der_length_printable_string(puVar2,local_50,&local_48)" (identifier "uVar4") (= "=") (call_expression "der_length_printable_string(puVar2,local_50,&local_48)" (identifier "der_length_printable_string") (argument_list "(puVar2,local_50,&local_48)" (( "(") (identifier "puVar2") (, ",") (identifier "local_50") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")")))) (; ";")) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" (identifier "iVar3") (= "=") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 10:\n        local_48 = uVar9;\n        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;" (case "case") (number_literal "10") (: ":") (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" (identifier "local_48") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);" (assignment_expression "uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50)" (identifier "uVar4") (= "=") (call_expression "der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50)" (identifier "der_decode_utf8_string") (argument_list "(param_1 + uVar12,uVar9,puVar2,&local_50)" (( "(") (binary_expression "param_1 + uVar12" (identifier "param_1") (+ "+") (identifier "uVar12")) (, ",") (identifier "uVar9") (, ",") (identifier "puVar2") (, ",") (pointer_expression "&local_50" (& "&") (identifier "local_50")) () ")")))) (; ";")) (if_statement "if ((int)uVar4 != 0) goto LAB_001731a8;" (if "if") (parenthesized_expression "((int)uVar4 != 0)" (( "(") (binary_expression "(int)uVar4 != 0" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001731a8;" (goto "goto") (statement_identifier "LAB_001731a8") (; ";"))) (expression_statement "*(undefined8 *)(piVar8 + 4) = local_50;" (assignment_expression "*(undefined8 *)(piVar8 + 4) = local_50" (pointer_expression "*(undefined8 *)(piVar8 + 4)" (* "*") (cast_expression "(undefined8 *)(piVar8 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8 + 4)" (( "(") (binary_expression "piVar8 + 4" (identifier "piVar8") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (expression_statement "uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);" (assignment_expression "uVar4 = der_length_utf8_string(puVar2,local_50,&local_48)" (identifier "uVar4") (= "=") (call_expression "der_length_utf8_string(puVar2,local_50,&local_48)" (identifier "der_length_utf8_string") (argument_list "(puVar2,local_50,&local_48)" (( "(") (identifier "puVar2") (, ",") (identifier "local_50") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")")))) (; ";")) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" (identifier "iVar3") (= "=") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xb:\n        local_48 = uVar9;\n        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;" (case "case") (number_literal "0xb") (: ":") (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" (identifier "local_48") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);" (assignment_expression "uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2)" (identifier "uVar4") (= "=") (call_expression "der_decode_utctime(param_1 + uVar12,&local_48,puVar2)" (identifier "der_decode_utctime") (argument_list "(param_1 + uVar12,&local_48,puVar2)" (( "(") (binary_expression "param_1 + uVar12" (identifier "param_1") (+ "+") (identifier "uVar12")) (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) (, ",") (identifier "puVar2") () ")")))) (; ";")) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" (identifier "iVar3") (= "=") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) (; ";")) (goto_statement "goto joined_r0x0017339c;" (goto "goto") (statement_identifier "joined_r0x0017339c") (; ";"))) (case_statement "case 0xc:\n        local_48 = uVar9;\n        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\n        goto joined_r0x0017339c;" (case "case") (number_literal "0xc") (: ":") (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" (identifier "local_48") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);" (assignment_expression "uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2)" (identifier "uVar4") (= "=") (call_expression "der_decode_choice(param_1 + uVar12,&local_48,puVar2)" (identifier "der_decode_choice") (argument_list "(param_1 + uVar12,&local_48,puVar2)" (( "(") (binary_expression "param_1 + uVar12" (identifier "param_1") (+ "+") (identifier "uVar12")) (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) (, ",") (identifier "puVar2") () ")")))) (; ";")) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" (identifier "iVar3") (= "=") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) (; ";")) (goto_statement "goto joined_r0x0017339c;" (goto "goto") (statement_identifier "joined_r0x0017339c") (; ";"))) (case_statement "case 0xd:" (case "case") (number_literal "0xd") (: ":")) (case_statement "case 0xf:\n        if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;\n        uVar11 = 1;\n        goto LAB_00173181;" (case "case") (number_literal "0xf") (: ":") (if_statement "if (iVar3 == 0xf) {\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }\n        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;" (if "if") (parenthesized_expression "(iVar3 == 0xf)" (( "(") (binary_expression "iVar3 == 0xf" (identifier "iVar3") (== "==") (number_literal "0xf")) () ")")) (compound_statement "{\n          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;\n        }" ({ "{") (if_statement "if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;" (if "if") (parenthesized_expression "((param_1[uVar12] & 0x3fU) != 0x31)" (( "(") (binary_expression "(param_1[uVar12] & 0x3fU) != 0x31" (parenthesized_expression "(param_1[uVar12] & 0x3fU)" (( "(") (binary_expression "param_1[uVar12] & 0x3fU" (subscript_expression "param_1[uVar12]" (identifier "param_1") ([ "[") (identifier "uVar12") (] "]")) (& "&") (number_literal "0x3fU")) () ")")) (!= "!=") (number_literal "0x31")) () ")")) (goto_statement "goto LAB_00172f90;" (goto "goto") (statement_identifier "LAB_00172f90") (; ";"))) (} "}")) (else_clause "else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;" (else "else") (if_statement "if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;" (if "if") (parenthesized_expression "((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30))" (( "(") (binary_expression "(iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)" (parenthesized_expression "(iVar3 == 0xd)" (( "(") (binary_expression "iVar3 == 0xd" (identifier "iVar3") (== "==") (number_literal "0xd")) () ")")) (&& "&&") (parenthesized_expression "((param_1[uVar12] & 0x3fU) != 0x30)" (( "(") (binary_expression "(param_1[uVar12] & 0x3fU) != 0x30" (parenthesized_expression "(param_1[uVar12] & 0x3fU)" (( "(") (binary_expression "param_1[uVar12] & 0x3fU" (subscript_expression "param_1[uVar12]" (identifier "param_1") ([ "[") (identifier "uVar12") (] "]")) (& "&") (number_literal "0x3fU")) () ")")) (!= "!=") (number_literal "0x30")) () ")"))) () ")")) (goto_statement "goto LAB_00172f90;" (goto "goto") (statement_identifier "LAB_00172f90") (; ";"))))) (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" (identifier "uVar11") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00173181;" (goto "goto") (statement_identifier "LAB_00173181") (; ";"))) (case_statement "case 0xe:\n        uVar11 = 0;\nLAB_00173181:\n        local_48 = uVar9;\n        uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);\n        if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;" (case "case") (number_literal "0xe") (: ":") (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00173181:\n        local_48 = uVar9;" (statement_identifier "LAB_00173181") (: ":") (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" (identifier "local_48") (= "=") (identifier "uVar9")) (; ";"))) (expression_statement "uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);" (assignment_expression "uVar4 = der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11)" (identifier "uVar4") (= "=") (call_expression "der_decode_sequence_ex(param_1 + uVar12,uVar9,puVar2,local_50,uVar11)" (identifier "der_decode_sequence_ex") (argument_list "(param_1 + uVar12,uVar9,puVar2,local_50,uVar11)" (( "(") (binary_expression "param_1 + uVar12" (identifier "param_1") (+ "+") (identifier "uVar12")) (, ",") (identifier "uVar9") (, ",") (identifier "puVar2") (, ",") (identifier "local_50") (, ",") (identifier "uVar11") () ")")))) (; ";")) (if_statement "if ((int)uVar4 == 0) {\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }" (if "if") (parenthesized_expression "((int)uVar4 == 0)" (( "(") (binary_expression "(int)uVar4 == 0" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar4 = der_length_sequence(puVar2,local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }" ({ "{") (expression_statement "uVar4 = der_length_sequence(puVar2,local_50,&local_48);" (assignment_expression "uVar4 = der_length_sequence(puVar2,local_50,&local_48)" (identifier "uVar4") (= "=") (call_expression "der_length_sequence(puVar2,local_50,&local_48)" (identifier "der_length_sequence") (argument_list "(puVar2,local_50,&local_48)" (( "(") (identifier "puVar2") (, ",") (identifier "local_50") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")")))) (; ";")) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" (identifier "iVar3") (= "=") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (goto_statement "goto LAB_001731a8;" (goto "goto") (statement_identifier "LAB_001731a8") (; ";"))) (case_statement "case 0x10:\n        local_48 = uVar9;\n        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        iVar3 = (int)uVar4;\njoined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }\n        goto LAB_001731a8;" (case "case") (number_literal "0x10") (: ":") (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" (identifier "local_48") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);" (assignment_expression "uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50)" (identifier "uVar4") (= "=") (call_expression "der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50)" (identifier "der_decode_raw_bit_string") (argument_list "(param_1 + uVar12,uVar9,puVar2,&local_50)" (( "(") (binary_expression "param_1 + uVar12" (identifier "param_1") (+ "+") (identifier "uVar12")) (, ",") (identifier "uVar9") (, ",") (identifier "puVar2") (, ",") (pointer_expression "&local_50" (& "&") (identifier "local_50")) () ")")))) (; ";")) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" (identifier "iVar3") (= "=") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) (; ";")) (labeled_statement "joined_r0x00173127:\n        if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }" (statement_identifier "joined_r0x00173127") (: ":") (if_statement "if (iVar3 == 0) {\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(undefined8 *)(piVar8 + 4) = local_50;\n          uVar4 = der_length_bit_string(local_50,&local_48);\n          iVar3 = (int)uVar4;\n          break;\n        }" ({ "{") (expression_statement "*(undefined8 *)(piVar8 + 4) = local_50;" (assignment_expression "*(undefined8 *)(piVar8 + 4) = local_50" (pointer_expression "*(undefined8 *)(piVar8 + 4)" (* "*") (cast_expression "(undefined8 *)(piVar8 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8 + 4)" (( "(") (binary_expression "piVar8 + 4" (identifier "piVar8") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (expression_statement "uVar4 = der_length_bit_string(local_50,&local_48);" (assignment_expression "uVar4 = der_length_bit_string(local_50,&local_48)" (identifier "uVar4") (= "=") (call_expression "der_length_bit_string(local_50,&local_48)" (identifier "der_length_bit_string") (argument_list "(local_50,&local_48)" (( "(") (identifier "local_50") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")")))) (; ";")) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" (identifier "iVar3") (= "=") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}")))) (goto_statement "goto LAB_001731a8;" (goto "goto") (statement_identifier "LAB_001731a8") (; ";"))) (case_statement "case 0x11:\n        local_48 = uVar9;\n        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);\n        if ((int)uVar4 != 0) goto LAB_001731a8;\n        *(undefined8 *)(piVar8 + 4) = local_50;\n        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);\n        iVar3 = (int)uVar4;\n        break;" (case "case") (number_literal "0x11") (: ":") (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" (identifier "local_48") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);" (assignment_expression "uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50)" (identifier "uVar4") (= "=") (call_expression "der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50)" (identifier "der_decode_teletex_string") (argument_list "(param_1 + uVar12,uVar9,puVar2,&local_50)" (( "(") (binary_expression "param_1 + uVar12" (identifier "param_1") (+ "+") (identifier "uVar12")) (, ",") (identifier "uVar9") (, ",") (identifier "puVar2") (, ",") (pointer_expression "&local_50" (& "&") (identifier "local_50")) () ")")))) (; ";")) (if_statement "if ((int)uVar4 != 0) goto LAB_001731a8;" (if "if") (parenthesized_expression "((int)uVar4 != 0)" (( "(") (binary_expression "(int)uVar4 != 0" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001731a8;" (goto "goto") (statement_identifier "LAB_001731a8") (; ";"))) (expression_statement "*(undefined8 *)(piVar8 + 4) = local_50;" (assignment_expression "*(undefined8 *)(piVar8 + 4) = local_50" (pointer_expression "*(undefined8 *)(piVar8 + 4)" (* "*") (cast_expression "(undefined8 *)(piVar8 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8 + 4)" (( "(") (binary_expression "piVar8 + 4" (identifier "piVar8") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (expression_statement "uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);" (assignment_expression "uVar4 = der_length_teletex_string(puVar2,local_50,&local_48)" (identifier "uVar4") (= "=") (call_expression "der_length_teletex_string(puVar2,local_50,&local_48)" (identifier "der_length_teletex_string") (argument_list "(puVar2,local_50,&local_48)" (( "(") (identifier "puVar2") (, ",") (identifier "local_50") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")")))) (; ";")) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" (identifier "iVar3") (= "=") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x12:" (case "case") (number_literal "0x12") (: ":")) (case_statement "case 0x13:\n        uVar4 = 0x10;\n        goto LAB_00172f95;" (case "case") (number_literal "0x13") (: ":") (expression_statement "uVar4 = 0x10;" (assignment_expression "uVar4 = 0x10" (identifier "uVar4") (= "=") (number_literal "0x10")) (; ";")) (goto_statement "goto LAB_00172f95;" (goto "goto") (statement_identifier "LAB_00172f95") (; ";"))) (case_statement "case 0x14:\n        local_48 = uVar9;\n        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);\n        iVar3 = (int)uVar4;\njoined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }\nLAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;\n        goto LAB_00172f95;" (case "case") (number_literal "0x14") (: ":") (expression_statement "local_48 = uVar9;" (assignment_expression "local_48 = uVar9" (identifier "local_48") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);" (assignment_expression "uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2)" (identifier "uVar4") (= "=") (call_expression "der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2)" (identifier "der_decode_generalizedtime") (argument_list "(param_1 + uVar12,&local_48,puVar2)" (( "(") (binary_expression "param_1 + uVar12" (identifier "param_1") (+ "+") (identifier "uVar12")) (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) (, ",") (identifier "puVar2") () ")")))) (; ";")) (expression_statement "iVar3 = (int)uVar4;" (assignment_expression "iVar3 = (int)uVar4" (identifier "iVar3") (= "=") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) (; ";")) (labeled_statement "joined_r0x0017339c:\n        if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }" (statement_identifier "joined_r0x0017339c") (: ":") (if_statement "if (iVar3 == 0) {\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar12 = uVar12 + local_48;\n          uVar9 = uVar9 - local_48;\n          goto switchD_00172f6d_caseD_14;\n        }" ({ "{") (expression_statement "uVar12 = uVar12 + local_48;" (assignment_expression "uVar12 = uVar12 + local_48" (identifier "uVar12") (= "=") (binary_expression "uVar12 + local_48" (identifier "uVar12") (+ "+") (identifier "local_48"))) (; ";")) (expression_statement "uVar9 = uVar9 - local_48;" (assignment_expression "uVar9 = uVar9 - local_48" (identifier "uVar9") (= "=") (binary_expression "uVar9 - local_48" (identifier "uVar9") (- "-") (identifier "local_48"))) (; ";")) (goto_statement "goto switchD_00172f6d_caseD_14;" (goto "goto") (statement_identifier "switchD_00172f6d_caseD_14") (; ";")) (} "}")))) (labeled_statement "LAB_001731a8:\n        if (param_5 == 0) goto LAB_001731b1;" (statement_identifier "LAB_001731a8") (: ":") (if_statement "if (param_5 == 0) goto LAB_001731b1;" (if "if") (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001731b1;" (goto "goto") (statement_identifier "LAB_001731b1") (; ";")))) (goto_statement "goto LAB_00172f95;" (goto "goto") (statement_identifier "LAB_00172f95") (; ";"))) (case_statement "default:\n        goto switchD_00172f6d_caseD_14;" (default "default") (: ":") (goto_statement "goto switchD_00172f6d_caseD_14;" (goto "goto") (statement_identifier "switchD_00172f6d_caseD_14") (; ";"))) (} "}"))) (if_statement "if (iVar3 != 0) goto LAB_00172f95;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00172f95;" (goto "goto") (statement_identifier "LAB_00172f95") (; ";"))) (expression_statement "uVar12 = uVar12 + local_48;" (assignment_expression "uVar12 = uVar12 + local_48" (identifier "uVar12") (= "=") (binary_expression "uVar12 + local_48" (identifier "uVar12") (+ "+") (identifier "local_48"))) (; ";")) (expression_statement "uVar9 = uVar9 - local_48;" (assignment_expression "uVar9 = uVar9 - local_48" (identifier "uVar9") (= "=") (binary_expression "uVar9 - local_48" (identifier "uVar9") (- "-") (identifier "local_48"))) (; ";")) (labeled_statement "switchD_00172f6d_caseD_14:\n      piVar8[6] = 1;" (statement_identifier "switchD_00172f6d_caseD_14") (: ":") (expression_statement "piVar8[6] = 1;" (assignment_expression "piVar8[6] = 1" (subscript_expression "piVar8[6]" (identifier "piVar8") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "1")) (; ";"))) (if_statement "if (param_5 == 0) {\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }" (if "if") (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar15 = 0;\n        goto LAB_00172f1e;\n      }" ({ "{") (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00172f1e;" (goto "goto") (statement_identifier "LAB_00172f1e") (; ";")) (} "}"))) (labeled_statement "LAB_001731b1:\n      iVar15 = iVar15 + 1;" (statement_identifier "LAB_001731b1") (: ":") (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + 1" (identifier "iVar15") (+ "+") (number_literal "1"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(iVar15 < param_4)" (( "(") (binary_expression "iVar15 < param_4" (identifier "iVar15") (< "<") (identifier "param_4")) () ")")) (; ";"))) (if_statement "if (*(int *)(param_3 + 0x18) != 0) {\n      uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6;\n      uVar6 = (uint)uVar4 & 7;\n      piVar8 = piVar5;\n      if ((uVar4 & 7) == 0) goto LAB_00173282;\n      piVar8 = (int *)(param_3 + 0x98);\n      if (*piVar5 != 0) {\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(*(int *)(param_3 + 0x18) != 0)" (( "(") (binary_expression "*(int *)(param_3 + 0x18) != 0" (pointer_expression "*(int *)(param_3 + 0x18)" (* "*") (cast_expression "(int *)(param_3 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x18)" (( "(") (binary_expression "param_3 + 0x18" (identifier "param_3") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6;\n      uVar6 = (uint)uVar4 & 7;\n      piVar8 = piVar5;\n      if ((uVar4 & 7) == 0) goto LAB_00173282;\n      piVar8 = (int *)(param_3 + 0x98);\n      if (*piVar5 != 0) {\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6;" (assignment_expression "uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6" (identifier "uVar4") (= "=") (binary_expression "(ulong)((long)piVar7 - (long)piVar5) >> 6" (call_expression "(ulong)((long)piVar7 - (long)piVar5)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((long)piVar7 - (long)piVar5)" (( "(") (binary_expression "(long)piVar7 - (long)piVar5" (cast_expression "(long)piVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "piVar7")) (- "-") (cast_expression "(long)piVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "piVar5"))) () ")"))) (>> ">>") (number_literal "6"))) (; ";")) (expression_statement "uVar6 = (uint)uVar4 & 7;" (assignment_expression "uVar6 = (uint)uVar4 & 7" (identifier "uVar6") (= "=") (binary_expression "(uint)uVar4 & 7" (cast_expression "(uint)uVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar4")) (& "&") (number_literal "7"))) (; ";")) (expression_statement "piVar8 = piVar5;" (assignment_expression "piVar8 = piVar5" (identifier "piVar8") (= "=") (identifier "piVar5")) (; ";")) (if_statement "if ((uVar4 & 7) == 0) goto LAB_00173282;" (if "if") (parenthesized_expression "((uVar4 & 7) == 0)" (( "(") (binary_expression "(uVar4 & 7) == 0" (parenthesized_expression "(uVar4 & 7)" (( "(") (binary_expression "uVar4 & 7" (identifier "uVar4") (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00173282;" (goto "goto") (statement_identifier "LAB_00173282") (; ";"))) (expression_statement "piVar8 = (int *)(param_3 + 0x98);" (assignment_expression "piVar8 = (int *)(param_3 + 0x98)" (identifier "piVar8") (= "=") (cast_expression "(int *)(param_3 + 0x98)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x98)" (( "(") (binary_expression "param_3 + 0x98" (identifier "param_3") (+ "+") (number_literal "0x98")) () ")")))) (; ";")) (if_statement "if (*piVar5 != 0) {\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(*piVar5 != 0)" (( "(") (binary_expression "*piVar5 != 0" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (uVar6 == 1) goto LAB_00173282;\n        piVar5 = piVar8;\n        if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }\n      }" ({ "{") (if_statement "if (uVar6 == 1) goto LAB_00173282;" (if "if") (parenthesized_expression "(uVar6 == 1)" (( "(") (binary_expression "uVar6 == 1" (identifier "uVar6") (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_00173282;" (goto "goto") (statement_identifier "LAB_00173282") (; ";"))) (expression_statement "piVar5 = piVar8;" (assignment_expression "piVar5 = piVar8" (identifier "piVar5") (= "=") (identifier "piVar8")) (; ";")) (if_statement "if ((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }" (if "if") (parenthesized_expression "((uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0))))" (( "(") (binary_expression "(uVar6 == 2) ||\n           (((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))" (parenthesized_expression "(uVar6 == 2)" (( "(") (binary_expression "uVar6 == 2" (identifier "uVar6") (== "==") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))" (( "(") (parenthesized_expression "((uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0))" (( "(") (binary_expression "(uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)" (parenthesized_expression "(uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             ))" (( "(") (binary_expression "uVar6 == 3 ||\n             (((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )" (binary_expression "uVar6 == 3" (identifier "uVar6") (== "==") (number_literal "3")) (|| "||") (parenthesized_expression "(((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))\n             )" (( "(") (parenthesized_expression "((uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))" (( "(") (binary_expression "(uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0)" (parenthesized_expression "(uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0))))" (( "(") (binary_expression "uVar6 == 4 ||\n               (((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))" (binary_expression "uVar6 == 4" (identifier "uVar6") (== "==") (number_literal "4")) (|| "||") (parenthesized_expression "(((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))" (( "(") (parenthesized_expression "((uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0))" (( "(") (binary_expression "(uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&\n                (piVar5 = piVar8 + 0x10, *piVar8 != 0)" (parenthesized_expression "(uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0))))" (( "(") (binary_expression "uVar6 == 5 ||\n                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))" (binary_expression "uVar6 == 5" (identifier "uVar6") (== "==") (number_literal "5")) (|| "||") (parenthesized_expression "(((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))" (( "(") (parenthesized_expression "((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0))" (( "(") (binary_expression "(uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))\n                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)" (parenthesized_expression "(uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))" (( "(") (binary_expression "uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0)" (binary_expression "uVar6 == 6" (identifier "uVar6") (== "==") (number_literal "6")) (|| "||") (parenthesized_expression "(piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0)" (( "(") (comma_expression "piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0" (assignment_expression "piVar5 = (int *)(param_3 + 0xd8)" (identifier "piVar5") (= "=") (cast_expression "(int *)(param_3 + 0xd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xd8)" (( "(") (binary_expression "param_3 + 0xd8" (identifier "param_3") (+ "+") (number_literal "0xd8")) () ")")))) (, ",") (binary_expression "*(int *)(param_3 + 0x98) != 0" (pointer_expression "*(int *)(param_3 + 0x98)" (* "*") (cast_expression "(int *)(param_3 + 0x98)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x98)" (( "(") (binary_expression "param_3 + 0x98" (identifier "param_3") (+ "+") (number_literal "0x98")) () ")")))) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(piVar8 = piVar5 + 0x10, *piVar5 != 0)" (( "(") (comma_expression "piVar8 = piVar5 + 0x10, *piVar5 != 0" (assignment_expression "piVar8 = piVar5 + 0x10" (identifier "piVar8") (= "=") (binary_expression "piVar5 + 0x10" (identifier "piVar5") (+ "+") (number_literal "0x10"))) (, ",") (binary_expression "*piVar5 != 0" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(piVar5 = piVar8 + 0x10, *piVar8 != 0)" (( "(") (comma_expression "piVar5 = piVar8 + 0x10, *piVar8 != 0" (assignment_expression "piVar5 = piVar8 + 0x10" (identifier "piVar5") (= "=") (binary_expression "piVar8 + 0x10" (identifier "piVar8") (+ "+") (number_literal "0x10"))) (, ",") (binary_expression "*piVar8 != 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(piVar8 = piVar5 + 0x10, *piVar5 != 0)" (( "(") (comma_expression "piVar8 = piVar5 + 0x10, *piVar5 != 0" (assignment_expression "piVar8 = piVar5 + 0x10" (identifier "piVar8") (= "=") (binary_expression "piVar5 + 0x10" (identifier "piVar5") (+ "+") (number_literal "0x10"))) (, ",") (binary_expression "*piVar5 != 0" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(piVar5 = piVar8 + 0x10, *piVar8 != 0)" (( "(") (comma_expression "piVar5 = piVar8 + 0x10, *piVar8 != 0" (assignment_expression "piVar5 = piVar8 + 0x10" (identifier "piVar5") (= "=") (binary_expression "piVar8 + 0x10" (identifier "piVar8") (+ "+") (number_literal "0x10"))) (, ",") (binary_expression "*piVar8 != 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          iVar15 = *piVar5;\n          piVar8 = piVar5 + 0x10;\n          while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }\n        }" ({ "{") (expression_statement "iVar15 = *piVar5;" (assignment_expression "iVar15 = *piVar5" (identifier "iVar15") (= "=") (pointer_expression "*piVar5" (* "*") (identifier "piVar5"))) (; ";")) (expression_statement "piVar8 = piVar5 + 0x10;" (assignment_expression "piVar8 = piVar5 + 0x10" (identifier "piVar8") (= "=") (binary_expression "piVar5 + 0x10" (identifier "piVar5") (+ "+") (number_literal "0x10"))) (; ";")) (while_statement "while (iVar15 != 0) {\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }" (while "while") (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;\n            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;\n            iVar15 = piVar8[0x70];\n            piVar8 = piVar8 + 0x80;\n          }" ({ "{") (labeled_statement "LAB_00173282:\n            if (piVar8 == piVar7) goto LAB_00173790;" (statement_identifier "LAB_00173282") (: ":") (if_statement "if (piVar8 == piVar7) goto LAB_00173790;" (if "if") (parenthesized_expression "(piVar8 == piVar7)" (( "(") (binary_expression "piVar8 == piVar7" (identifier "piVar8") (== "==") (identifier "piVar7")) () ")")) (goto_statement "goto LAB_00173790;" (goto "goto") (statement_identifier "LAB_00173790") (; ";")))) (if_statement "if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))) break;" (if "if") (parenthesized_expression "(((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0))))" (( "(") (binary_expression "((*piVar8 == 0) || (piVar8[0x10] == 0)) ||\n               (((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))" (parenthesized_expression "((*piVar8 == 0) || (piVar8[0x10] == 0))" (( "(") (binary_expression "(*piVar8 == 0) || (piVar8[0x10] == 0)" (parenthesized_expression "(*piVar8 == 0)" (( "(") (binary_expression "*piVar8 == 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(piVar8[0x10] == 0)" (( "(") (binary_expression "piVar8[0x10] == 0" (subscript_expression "piVar8[0x10]" (identifier "piVar8") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)))" (( "(") (parenthesized_expression "((piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0))" (( "(") (binary_expression "(piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||\n                (piVar8[0x60] == 0)" (parenthesized_expression "(piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0))))" (( "(") (binary_expression "piVar8[0x20] == 0 ||\n                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))" (binary_expression "piVar8[0x20] == 0" (subscript_expression "piVar8[0x20]" (identifier "piVar8") ([ "[") (number_literal "0x20") (] "]")) (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))" (( "(") (parenthesized_expression "((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0))" (( "(") (binary_expression "(piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)" (parenthesized_expression "(piVar8[0x30] == 0 || (piVar8[0x40] == 0))" (( "(") (binary_expression "piVar8[0x30] == 0 || (piVar8[0x40] == 0)" (binary_expression "piVar8[0x30] == 0" (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]")) (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(piVar8[0x40] == 0)" (( "(") (binary_expression "piVar8[0x40] == 0" (subscript_expression "piVar8[0x40]" (identifier "piVar8") ([ "[") (number_literal "0x40") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(piVar8[0x50] == 0)" (( "(") (binary_expression "piVar8[0x50] == 0" (subscript_expression "piVar8[0x50]" (identifier "piVar8") ([ "[") (number_literal "0x50") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(piVar8[0x60] == 0)" (( "(") (binary_expression "piVar8[0x60] == 0" (subscript_expression "piVar8[0x60]" (identifier "piVar8") ([ "[") (number_literal "0x60") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar15 = piVar8[0x70];" (assignment_expression "iVar15 = piVar8[0x70]" (identifier "iVar15") (= "=") (subscript_expression "piVar8[0x70]" (identifier "piVar8") ([ "[") (number_literal "0x70") (] "]"))) (; ";")) (expression_statement "piVar8 = piVar8 + 0x80;" (assignment_expression "piVar8 = piVar8 + 0x80" (identifier "piVar8") (= "=") (binary_expression "piVar8 + 0x80" (identifier "piVar8") (+ "+") (number_literal "0x80"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (labeled_statement "LAB_00172f90:\n  uVar4 = 7;" (statement_identifier "LAB_00172f90") (: ":") (expression_statement "uVar4 = 7;" (assignment_expression "uVar4 = 7" (identifier "uVar4") (= "=") (number_literal "7")) (; ";"))) (labeled_statement "LAB_00172f95:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (statement_identifier "LAB_00172f95") (: ":") (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (if "if") (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (!= "!=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" ({ "{") (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}")))

int function_1(type_1 *var_2,type_2 var_5,type_3 *var_4,type_2 outlen,int var_25)

{
  type_4 var_6;
  type_5 var_26;
  type_3 *list_00;
  type_6 var_29;
  int *var_21;
  int *var_22;
  int var_20;
  type_7 var_9;
  int *var_23;
  type_3 *plVar9;
  type_2 var_11;
  int ordered_00;
  type_2 var_7;
  type_2 var_8;
  type_1 *var_12;
  type_1 *var_10;
  int var_24;
  long var_1;
  type_2 size;
  type_2 var_56;
  long var_57;
  
  var_57 = *(long *)(var_1 + 0x28);
  if (var_2 == (type_1 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("in != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x24);
  }
  if (var_4 == (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("list != NULL","src/pk/asn1/der/sequence/der_decode_sequence_ex.c",0x25);
  }
  if (1 < var_5) {
    var_29 = L'\a';
    if (1 < (type_4)(*var_2 - 0x30)) goto LAB_00172f95;
    var_6 = var_2[1];
    var_11 = (type_2)var_6;
    var_8 = 2;
    if ((char)var_6 < '\0') {
      if (2 < (type_4)(var_6 + 0x7f)) goto LAB_00172f95;
      var_7 = (type_2)(var_6 & 0x7f);
      var_8 = var_7 + 2;
      if (var_5 < var_8) goto LAB_00172f95;
      var_11 = 0;
      var_9 = var_6 & 7;
      var_10 = var_2;
      if ((var_6 & 7) != 0) {
        var_12 = var_2;
        if (var_9 != 1) {
          if (var_9 != 2) {
            if (var_9 != 3) {
              if (var_9 != 4) {
                if (var_9 != 5) {
                  if (var_9 != 6) {
                    var_11 = (type_2)var_2[2];
                    var_10 = var_2 + 1;
                  }
                  var_12 = var_10 + 1;
                  var_11 = var_11 << 8 | (type_2)var_10[2];
                }
                var_10 = var_12 + 1;
                var_11 = var_11 << 8 | (type_2)var_12[2];
              }
              var_12 = var_10 + 1;
              var_11 = var_11 << 8 | (type_2)var_10[2];
            }
            var_10 = var_12 + 1;
            var_11 = var_11 << 8 | (type_2)var_12[2];
          }
          var_12 = var_10 + 1;
          var_11 = var_11 << 8 | (type_2)var_10[2];
        }
        var_11 = var_11 << 8 | (type_2)var_12[2];
        var_10 = var_12 + 1;
        if (var_12 + 1 == var_2 + var_7) goto LAB_00172dda;
      }
      do {
        var_12 = var_10 + 8;
        var_11 = var_13(var_14(var_15(var_16(var_17(var_18(var_19(var_10[2],
                                                                                var_10[3]),
                                                                       var_10[4]),var_10[5]),
                                                     var_10[6]),var_10[7]),*var_12),var_10[9]);
        var_10 = var_12;
      } while (var_12 != var_2 + var_7);
    }
LAB_00172dda:
    var_29 = L'\a';
    if (var_5 < var_8 + var_11) goto LAB_00172f95;
    var_20 = (int)outlen;
    if (var_20 < 1) {
LAB_00173790:
      var_29 = ~-(type_7)(var_11 == 0) & 0x15;
      goto LAB_00172f95;
    }
    var_21 = &var_4[1].used;
    var_22 = &var_4->used;
    var_23 = var_21 + (type_2)(var_20 - 1) * 0x10;
    var_9 = (int)((type_2)((long)var_23 + (-0x40 - (long)var_22)) >> 6) + 1U & 7;
    if (var_9 == 0) goto LAB_00172e99;
    if (var_9 != 1) {
      if (var_9 != 2) {
        if (var_9 != 3) {
          if (var_9 != 4) {
            if (var_9 != 5) {
              if (var_9 != 6) {
                *var_22 = 0;
                var_22 = &var_4[1].used;
              }
              *var_22 = 0;
              var_22 = var_22 + 0x10;
            }
            *var_22 = 0;
            var_22 = var_22 + 0x10;
          }
          *var_22 = 0;
          var_22 = var_22 + 0x10;
        }
        *var_22 = 0;
        var_22 = var_22 + 0x10;
      }
      *var_22 = 0;
      var_22 = var_22 + 0x10;
    }
    *var_22 = 0;
    for (var_22 = var_22 + 0x10; var_22 != var_23; var_22 = var_22 + 0x80) {
LAB_00172e99:
      *var_22 = 0;
      var_22[0x10] = 0;
      var_22[0x20] = 0;
      var_22[0x30] = 0;
      var_22[0x40] = 0;
      var_22[0x50] = 0;
      var_22[0x60] = 0;
      var_22[0x70] = 0;
    }
    var_24 = 0;
LAB_00172f1e:
    do {
      var_56 = 0;
      plVar9 = var_4 + var_24;
      size = plVar9->size;
      var_26 = plVar9->type;
      list_00 = (type_3 *)plVar9->data;
      if ((var_25 == 0) && (plVar9->used == 1)) goto LAB_001731b1;
      if (var_26 == var_27) break;
      switch(var_26) {
      case LTC_ASN1_BOOLEAN:
        var_56 = var_11;
        var_29 = var_28(var_2 + var_8,var_11,(int *)list_00);
        if (var_29 == L'\0') {
          var_29 = var_30(&var_56);
          break;
        }
        goto LAB_001731a8;
      case LTC_ASN1_INTEGER:
        var_56 = var_11;
        var_29 = var_31(var_2 + var_8,var_11,list_00);
        if (var_29 != L'\0') goto LAB_001731a8;
        var_29 = var_32(list_00,&var_56);
        break;
      case LTC_ASN1_SHORT_INTEGER:
        var_56 = var_11;
        var_29 = var_33(var_2 + var_8,var_11,(type_2 *)list_00);
        if (var_29 != L'\0') goto LAB_001731a8;
        var_29 = var_34(*(type_2 *)list_00,&var_56);
        break;
      case LTC_ASN1_BIT_STRING:
        var_56 = var_11;
        var_29 = var_35(var_2 + var_8,var_11,(type_1 *)list_00,&size);
        goto joined_r0x00173127;
      case LTC_ASN1_OCTET_STRING:
        var_56 = var_11;
        var_29 = var_36(var_2 + var_8,var_11,(type_1 *)list_00,&size);
        if (var_29 != L'\0') goto LAB_001731a8;
        plVar9->size = size;
        var_29 = var_37(size,&var_56);
        break;
      case LTC_ASN1_NULL:
        if (((1 < var_11) && (var_2[var_8] == '\x05')) && (var_2[var_8 + 1] == '\0')) {
          var_56 = 2;
          var_8 = var_8 + 2;
          var_11 = var_11 - 2;
          goto switchD_00172f6d_caseD_14;
        }
        if (var_25 == 0) goto LAB_001731b1;
        goto LAB_00172f90;
      case LTC_ASN1_OBJECT_IDENTIFIER:
        var_56 = var_11;
        var_29 = var_38(var_2 + var_8,var_11,(type_2 *)list_00,&size);
        if (var_29 != L'\0') goto LAB_001731a8;
        plVar9->size = size;
        var_29 = var_39((type_2 *)list_00,size,&var_56);
        break;
      case LTC_ASN1_IA5_STRING:
        var_56 = var_11;
        var_29 = var_40(var_2 + var_8,var_11,(type_1 *)list_00,&size);
        if (var_29 != L'\0') goto LAB_001731a8;
        plVar9->size = size;
        var_29 = var_41((type_1 *)list_00,size,&var_56);
        break;
      case LTC_ASN1_PRINTABLE_STRING:
        var_56 = var_11;
        var_29 = var_42(var_2 + var_8,var_11,(type_1 *)list_00,&size);
        if (var_29 != L'\0') goto LAB_001731a8;
        plVar9->size = size;
        var_29 = var_43((type_1 *)list_00,size,&var_56);
        break;
      case LTC_ASN1_UTF8_STRING:
        var_56 = var_11;
        var_29 = var_44(var_2 + var_8,var_11,(type_6 *)list_00,&size);
        if (var_29 != L'\0') goto LAB_001731a8;
        plVar9->size = size;
        var_29 = var_45((type_6 *)list_00,size,&var_56);
        break;
      case LTC_ASN1_UTCTIME:
        var_56 = var_11;
        var_29 = var_46(var_2 + var_8,&var_56,(type_8 *)list_00);
        goto joined_r0x0017339c;
      case LTC_ASN1_CHOICE:
        var_56 = var_11;
        var_29 = var_47(var_2 + var_8,&var_56,list_00,size);
        goto joined_r0x0017339c;
      case var_49:
      case var_48:
        if (var_26 == var_48) {
          if ((var_2[var_8] & 0x3f) != 0x31) goto LAB_00172f90;
        }
        else if ((var_26 == var_49) && ((var_2[var_8] & 0x3f) != 0x30)) goto LAB_00172f90;
        ordered_00 = 1;
        goto LAB_00173181;
      case LTC_ASN1_SET:
        ordered_00 = 0;
LAB_00173181:
        var_56 = var_11;
        var_29 = function_1(var_2 + var_8,var_11,list_00,size,ordered_00);
        if (var_29 == L'\0') {
          var_29 = var_50(list_00,size,&var_56);
          break;
        }
        goto LAB_001731a8;
      case LTC_ASN1_RAW_BIT_STRING:
        var_56 = var_11;
        var_29 = var_51(var_2 + var_8,var_11,(type_1 *)list_00,&size);
joined_r0x00173127:
        if (var_29 == L'\0') {
          plVar9->size = size;
          var_29 = var_52(size,&var_56);
          break;
        }
        goto LAB_001731a8;
      case LTC_ASN1_TELETEX_STRING:
        var_56 = var_11;
        var_29 = var_53(var_2 + var_8,var_11,(type_1 *)list_00,&size);
        if (var_29 != L'\0') goto LAB_001731a8;
        plVar9->size = size;
        var_29 = var_54((type_1 *)list_00,size,&var_56);
        break;
      case LTC_ASN1_CONSTRUCTED:
      case LTC_ASN1_CONTEXT_SPECIFIC:
        var_29 = L'\x10';
        goto LAB_00172f95;
      case LTC_ASN1_GENERALIZEDTIME:
        var_56 = var_11;
        var_29 = var_55(var_2 + var_8,&var_56,(type_9 *)list_00);
joined_r0x0017339c:
        if (var_29 == L'\0') {
          var_8 = var_8 + var_56;
          var_11 = var_11 - var_56;
          goto switchD_00172f6d_caseD_14;
        }
LAB_001731a8:
        if (var_25 == 0) goto LAB_001731b1;
        goto LAB_00172f95;
      default:
        goto switchD_00172f6d_caseD_14;
      }
      if (var_29 != L'\0') goto LAB_00172f95;
      var_8 = var_8 + var_56;
      var_11 = var_11 - var_56;
switchD_00172f6d_caseD_14:
      plVar9->used = 1;
      if (var_25 == 0) {
        var_24 = 0;
        goto LAB_00172f1e;
      }
LAB_001731b1:
      var_24 = var_24 + 1;
    } while (var_24 < var_20);
    if (var_4->used != 0) {
      var_8 = (type_2)((long)var_23 - (long)var_21) >> 6;
      var_9 = (type_7)var_8 & 7;
      var_22 = var_21;
      if ((var_8 & 7) == 0) goto LAB_00173282;
      var_22 = &var_4[2].used;
      if (*var_21 != 0) {
        if (var_9 == 1) goto LAB_00173282;
        var_21 = var_22;
        if ((var_9 == 2) ||
           (((var_9 == 3 ||
             (((var_9 == 4 ||
               (((var_9 == 5 ||
                 (((var_9 == 6 || (var_21 = &var_4[3].used, var_4[2].used != 0)) &&
                  (var_22 = var_21 + 0x10, *var_21 != 0)))) &&
                (var_21 = var_22 + 0x10, *var_22 != 0)))) && (var_22 = var_21 + 0x10, *var_21 != 0))
             )) && (var_21 = var_22 + 0x10, *var_22 != 0)))) {
          var_20 = *var_21;
          var_22 = var_21 + 0x10;
          while (var_20 != 0) {
LAB_00173282:
            if (var_22 == var_23) goto LAB_00173790;
            if (((*var_22 == 0) || (var_22[0x10] == 0)) ||
               (((var_22[0x20] == 0 ||
                 (((var_22[0x30] == 0 || (var_22[0x40] == 0)) || (var_22[0x50] == 0)))) ||
                (var_22[0x60] == 0)))) break;
            var_20 = var_22[0x70];
            var_22 = var_22 + 0x80;
          }
        }
      }
    }
  }
LAB_00172f90:
  var_29 = L'\a';
LAB_00172f95:
  if (var_57 != *(long *)(var_1 + 0x28)) {
                    /* WARNING: Subroutine does not return */
    var_58();
  }
  return var_29;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (goto_statement label: (statement_identifier))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (call_expression function: (identifier) arguments: (argument_list (call_expression function: (identifier) arguments: (argument_list (call_expression function: (identifier) arguments: (argument_list (call_expression function: (identifier) arguments: (argument_list (call_expression function: (identifier) arguments: (argument_list (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal)))) (subscript_expression argument: (identifier) index: (number_literal)))) (subscript_expression argument: (identifier) index: (number_literal)))) (subscript_expression argument: (identifier) index: (number_literal)))) (subscript_expression argument: (identifier) index: (number_literal)))) (pointer_expression argument: (identifier)))) (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (unary_expression argument: (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))))))) right: (number_literal)))) right: (number_literal)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (for_statement initializer: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) condition: (binary_expression left: (identifier) right: (identifier)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (break_statement))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (identifier) (identifier) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (identifier) (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (break_statement)) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (char_literal (escape_sequence)))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (identifier) (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (identifier) (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (identifier) (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (identifier) (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (pointer_expression argument: (identifier)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (pointer_expression argument: (identifier)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (number_literal))) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (identifier) (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (break_statement))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (identifier) (identifier) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (break_statement)))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (identifier) (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (pointer_expression argument: (identifier)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (goto_statement label: (statement_identifier))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier))) (case_statement (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (return_statement (identifier)))))

ulong MASKED(char *param_1,ulong param_2,long param_3,int param_4,int param_5)

{
  byte bVar1;
  undefined8 *puVar2;
  int iVar3;
  ulong uVar4;
  int *piVar5;
  uint uVar6;
  int *piVar7;
  int *piVar8;
  ulong uVar9;
  ulong uVar10;
  undefined8 uVar11;
  ulong uVar12;
  char *pcVar13;
  char *pcVar14;
  int iVar15;
  long in_FS_OFFSET;
  undefined8 local_50;
  ulong local_48;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_1 == (char *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("in != NULL","src/pk/asn1/der/sequence/MASKED.c",0x24);
  }
  if (param_3 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("list != NULL","src/pk/asn1/der/sequence/MASKED.c",0x25);
  }
  if (1 < param_2) {
    uVar4 = 7;
    if (1 < (byte)(*param_1 - 0x30U)) goto LAB_00172f95;
    bVar1 = param_1[1];
    uVar9 = (ulong)bVar1;
    uVar12 = 2;
    if ((char)bVar1 < '\0') {
      if (2 < (byte)(bVar1 + 0x7f)) goto LAB_00172f95;
      uVar10 = (ulong)(bVar1 & 0x7f);
      uVar12 = uVar10 + 2;
      if (param_2 < uVar12) goto LAB_00172f95;
      uVar4 = 0;
      uVar6 = bVar1 & 7;
      pcVar14 = param_1;
      if ((bVar1 & 7) != 0) {
        pcVar13 = param_1;
        if (uVar6 != 1) {
          if (uVar6 != 2) {
            if (uVar6 != 3) {
              if (uVar6 != 4) {
                if (uVar6 != 5) {
                  if (uVar6 != 6) {
                    uVar4 = (ulong)(byte)param_1[2];
                    pcVar14 = param_1 + 1;
                  }
                  pcVar13 = pcVar14 + 1;
                  uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];
                }
                pcVar14 = pcVar13 + 1;
                uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];
              }
              pcVar13 = pcVar14 + 1;
              uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];
            }
            pcVar14 = pcVar13 + 1;
            uVar4 = uVar4 << 8 | (ulong)(byte)pcVar13[2];
          }
          pcVar13 = pcVar14 + 1;
          uVar4 = uVar4 << 8 | (ulong)(byte)pcVar14[2];
        }
        uVar9 = uVar4 << 8 | (ulong)(byte)pcVar13[2];
        pcVar14 = pcVar13 + 1;
        if (pcVar13 + 1 == param_1 + uVar10) goto LAB_00172dda;
      }
      do {
        pcVar13 = pcVar14 + 8;
        uVar9 = CONCAT71(CONCAT61(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11(pcVar14[2],pcVar14[3]
                                                                              ),pcVar14[4]),
                                                             pcVar14[5]),pcVar14[6]),pcVar14[7]),
                                  *pcVar13),pcVar14[9]);
        pcVar14 = pcVar13;
      } while (pcVar13 != param_1 + uVar10);
    }
LAB_00172dda:
    uVar4 = 7;
    if (param_2 < uVar12 + uVar9) goto LAB_00172f95;
    if (param_4 < 1) {
LAB_00173790:
      uVar4 = (ulong)(~-(uint)(uVar9 == 0) & 0x15);
      goto LAB_00172f95;
    }
    piVar5 = (int *)(param_3 + 0x58);
    piVar8 = (int *)(param_3 + 0x18);
    piVar7 = piVar5 + (ulong)(param_4 - 1) * 0x10;
    uVar6 = (int)((ulong)((long)piVar7 + (-0x40 - (long)piVar8)) >> 6) + 1U & 7;
    if (uVar6 == 0) goto LAB_00172e99;
    if (uVar6 != 1) {
      if (uVar6 != 2) {
        if (uVar6 != 3) {
          if (uVar6 != 4) {
            if (uVar6 != 5) {
              if (uVar6 != 6) {
                *piVar8 = 0;
                piVar8 = (int *)(param_3 + 0x58);
              }
              *piVar8 = 0;
              piVar8 = piVar8 + 0x10;
            }
            *piVar8 = 0;
            piVar8 = piVar8 + 0x10;
          }
          *piVar8 = 0;
          piVar8 = piVar8 + 0x10;
        }
        *piVar8 = 0;
        piVar8 = piVar8 + 0x10;
      }
      *piVar8 = 0;
      piVar8 = piVar8 + 0x10;
    }
    *piVar8 = 0;
    for (piVar8 = piVar8 + 0x10; piVar8 != piVar7; piVar8 = piVar8 + 0x80) {
LAB_00172e99:
      *piVar8 = 0;
      piVar8[0x10] = 0;
      piVar8[0x20] = 0;
      piVar8[0x30] = 0;
      piVar8[0x40] = 0;
      piVar8[0x50] = 0;
      piVar8[0x60] = 0;
      piVar8[0x70] = 0;
    }
    iVar15 = 0;
LAB_00172f1e:
    do {
      local_48 = 0;
      piVar8 = (int *)((long)iVar15 * 0x40 + param_3);
      local_50 = *(undefined8 *)(piVar8 + 4);
      iVar3 = *piVar8;
      puVar2 = *(undefined8 **)(piVar8 + 2);
      if ((param_5 == 0) && (piVar8[6] == 1)) goto LAB_001731b1;
      if (iVar3 == 0) break;
      switch(iVar3) {
      case 1:
        local_48 = uVar9;
        uVar4 = der_decode_boolean(param_1 + uVar12,uVar9,puVar2);
        if ((int)uVar4 == 0) {
          uVar4 = der_length_boolean(&local_48);
          iVar3 = (int)uVar4;
          break;
        }
        goto LAB_001731a8;
      case 2:
        local_48 = uVar9;
        uVar4 = der_decode_integer(param_1 + uVar12,uVar9,puVar2);
        if ((int)uVar4 != 0) goto LAB_001731a8;
        uVar4 = der_length_integer(puVar2,&local_48);
        iVar3 = (int)uVar4;
        break;
      case 3:
        local_48 = uVar9;
        uVar4 = der_decode_short_integer(param_1 + uVar12,uVar9,puVar2);
        if ((int)uVar4 != 0) goto LAB_001731a8;
        uVar4 = der_length_short_integer(*puVar2,&local_48);
        iVar3 = (int)uVar4;
        break;
      case 4:
        local_48 = uVar9;
        uVar4 = der_decode_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);
        iVar3 = (int)uVar4;
        goto joined_r0x00173127;
      case 5:
        local_48 = uVar9;
        uVar4 = der_decode_octet_string(param_1 + uVar12,uVar9,puVar2,&local_50);
        if ((int)uVar4 != 0) goto LAB_001731a8;
        *(undefined8 *)(piVar8 + 4) = local_50;
        uVar4 = der_length_octet_string(local_50,&local_48);
        iVar3 = (int)uVar4;
        break;
      case 6:
        if (((1 < uVar9) && (param_1[uVar12] == '\x05')) && (param_1[uVar12 + 1] == '\0')) {
          local_48 = 2;
          uVar12 = uVar12 + 2;
          uVar9 = uVar9 - 2;
          goto switchD_00172f6d_caseD_14;
        }
        if (param_5 == 0) goto LAB_001731b1;
        goto LAB_00172f90;
      case 7:
        local_48 = uVar9;
        uVar4 = der_decode_object_identifier(param_1 + uVar12,uVar9,puVar2,&local_50);
        if ((int)uVar4 != 0) goto LAB_001731a8;
        *(undefined8 *)(piVar8 + 4) = local_50;
        uVar4 = der_length_object_identifier(puVar2,local_50,&local_48);
        iVar3 = (int)uVar4;
        break;
      case 8:
        local_48 = uVar9;
        uVar4 = der_decode_ia5_string(param_1 + uVar12,uVar9,puVar2,&local_50);
        if ((int)uVar4 != 0) goto LAB_001731a8;
        *(undefined8 *)(piVar8 + 4) = local_50;
        uVar4 = der_length_ia5_string(puVar2,local_50,&local_48);
        iVar3 = (int)uVar4;
        break;
      case 9:
        local_48 = uVar9;
        uVar4 = der_decode_printable_string(param_1 + uVar12,uVar9,puVar2,&local_50);
        if ((int)uVar4 != 0) goto LAB_001731a8;
        *(undefined8 *)(piVar8 + 4) = local_50;
        uVar4 = der_length_printable_string(puVar2,local_50,&local_48);
        iVar3 = (int)uVar4;
        break;
      case 10:
        local_48 = uVar9;
        uVar4 = der_decode_utf8_string(param_1 + uVar12,uVar9,puVar2,&local_50);
        if ((int)uVar4 != 0) goto LAB_001731a8;
        *(undefined8 *)(piVar8 + 4) = local_50;
        uVar4 = der_length_utf8_string(puVar2,local_50,&local_48);
        iVar3 = (int)uVar4;
        break;
      case 0xb:
        local_48 = uVar9;
        uVar4 = der_decode_utctime(param_1 + uVar12,&local_48,puVar2);
        iVar3 = (int)uVar4;
        goto joined_r0x0017339c;
      case 0xc:
        local_48 = uVar9;
        uVar4 = der_decode_choice(param_1 + uVar12,&local_48,puVar2);
        iVar3 = (int)uVar4;
        goto joined_r0x0017339c;
      case 0xd:
      case 0xf:
        if (iVar3 == 0xf) {
          if ((param_1[uVar12] & 0x3fU) != 0x31) goto LAB_00172f90;
        }
        else if ((iVar3 == 0xd) && ((param_1[uVar12] & 0x3fU) != 0x30)) goto LAB_00172f90;
        uVar11 = 1;
        goto LAB_00173181;
      case 0xe:
        uVar11 = 0;
LAB_00173181:
        local_48 = uVar9;
        uVar4 = MASKED(param_1 + uVar12,uVar9,puVar2,local_50,uVar11);
        if ((int)uVar4 == 0) {
          uVar4 = der_length_sequence(puVar2,local_50,&local_48);
          iVar3 = (int)uVar4;
          break;
        }
        goto LAB_001731a8;
      case 0x10:
        local_48 = uVar9;
        uVar4 = der_decode_raw_bit_string(param_1 + uVar12,uVar9,puVar2,&local_50);
        iVar3 = (int)uVar4;
joined_r0x00173127:
        if (iVar3 == 0) {
          *(undefined8 *)(piVar8 + 4) = local_50;
          uVar4 = der_length_bit_string(local_50,&local_48);
          iVar3 = (int)uVar4;
          break;
        }
        goto LAB_001731a8;
      case 0x11:
        local_48 = uVar9;
        uVar4 = der_decode_teletex_string(param_1 + uVar12,uVar9,puVar2,&local_50);
        if ((int)uVar4 != 0) goto LAB_001731a8;
        *(undefined8 *)(piVar8 + 4) = local_50;
        uVar4 = der_length_teletex_string(puVar2,local_50,&local_48);
        iVar3 = (int)uVar4;
        break;
      case 0x12:
      case 0x13:
        uVar4 = 0x10;
        goto LAB_00172f95;
      case 0x14:
        local_48 = uVar9;
        uVar4 = der_decode_generalizedtime(param_1 + uVar12,&local_48,puVar2);
        iVar3 = (int)uVar4;
joined_r0x0017339c:
        if (iVar3 == 0) {
          uVar12 = uVar12 + local_48;
          uVar9 = uVar9 - local_48;
          goto switchD_00172f6d_caseD_14;
        }
LAB_001731a8:
        if (param_5 == 0) goto LAB_001731b1;
        goto LAB_00172f95;
      default:
        goto switchD_00172f6d_caseD_14;
      }
      if (iVar3 != 0) goto LAB_00172f95;
      uVar12 = uVar12 + local_48;
      uVar9 = uVar9 - local_48;
switchD_00172f6d_caseD_14:
      piVar8[6] = 1;
      if (param_5 == 0) {
        iVar15 = 0;
        goto LAB_00172f1e;
      }
LAB_001731b1:
      iVar15 = iVar15 + 1;
    } while (iVar15 < param_4);
    if (*(int *)(param_3 + 0x18) != 0) {
      uVar4 = (ulong)((long)piVar7 - (long)piVar5) >> 6;
      uVar6 = (uint)uVar4 & 7;
      piVar8 = piVar5;
      if ((uVar4 & 7) == 0) goto LAB_00173282;
      piVar8 = (int *)(param_3 + 0x98);
      if (*piVar5 != 0) {
        if (uVar6 == 1) goto LAB_00173282;
        piVar5 = piVar8;
        if ((uVar6 == 2) ||
           (((uVar6 == 3 ||
             (((uVar6 == 4 ||
               (((uVar6 == 5 ||
                 (((uVar6 == 6 || (piVar5 = (int *)(param_3 + 0xd8), *(int *)(param_3 + 0x98) != 0))
                  && (piVar8 = piVar5 + 0x10, *piVar5 != 0)))) &&
                (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) && (piVar8 = piVar5 + 0x10, *piVar5 != 0))
             )) && (piVar5 = piVar8 + 0x10, *piVar8 != 0)))) {
          iVar15 = *piVar5;
          piVar8 = piVar5 + 0x10;
          while (iVar15 != 0) {
LAB_00173282:
            if (piVar8 == piVar7) goto LAB_00173790;
            if (((*piVar8 == 0) || (piVar8[0x10] == 0)) ||
               (((piVar8[0x20] == 0 ||
                 (((piVar8[0x30] == 0 || (piVar8[0x40] == 0)) || (piVar8[0x50] == 0)))) ||
                (piVar8[0x60] == 0)))) break;
            iVar15 = piVar8[0x70];
            piVar8 = piVar8 + 0x80;
          }
        }
      }
    }
  }
LAB_00172f90:
  uVar4 = 7;
LAB_00172f95:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return uVar4;
}

