
/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

demangle_component * __regparm3 d_name(d_info *di)

{
  demangle_component *pdVar1;
  demangle_component *pdVar2;
  demangle_component **ppdVar3;
  char *pcVar4;
  demangle_component *pdVar5;
  int iVar6;
  int iVar7;
  byte bVar8;
  byte *pbVar9;
  demangle_component_type type;
  byte *pbVar10;
  char cVar11;
  uint uVar12;
  d_info *in_stack_ffffffc4;
  demangle_component *ret;
  
  pcVar4 = di->n;
  cVar11 = *pcVar4;
  if (cVar11 == 'S') {
    if (pcVar4[1] == 't') {
      di->n = pcVar4 + 2;
      pdVar1 = d_unqualified_name(in_stack_ffffffc4);
      iVar6 = di->next_comp;
      if (iVar6 < di->num_comps) {
        di->next_comp = iVar6 + 1;
        pdVar2 = di->comps + iVar6;
        pdVar2->d_printing = 0;
        pdVar2->type = DEMANGLE_COMPONENT_NAME;
        (pdVar2->u).s_name.s = "std";
        (pdVar2->u).s_name.len = 3;
      }
      else {
        pdVar2 = (demangle_component *)0x0;
      }
      pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_QUAL_NAME,pdVar2,pdVar1);
      di->expansion = di->expansion + 3;
      pcVar4 = di->n;
      if (*pcVar4 != 'I') {
        return pdVar1;
      }
      if ((pdVar1 == (demangle_component *)0x0) || (iVar6 = di->next_sub, di->num_subs <= iVar6))
      goto LAB_001f4da6;
      di->subs[iVar6] = pdVar1;
      di->next_sub = iVar6 + 1;
      if ((byte)(*pcVar4 + 0xb7U) < 2) goto LAB_001f4dd5;
      pdVar2 = (demangle_component *)0x0;
    }
    else {
      pdVar1 = d_substitution(di,0);
      pcVar4 = di->n;
      if (*pcVar4 != 'I') {
        return pdVar1;
      }
LAB_001f4dd5:
      di->n = pcVar4 + 1;
      pdVar2 = d_template_args_1(di);
    }
LAB_001f4de2:
    pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar1,pdVar2);
  }
  else {
    if (cVar11 < 'T') {
      if (cVar11 != 'N') goto LAB_001f4e00;
      di->n = pcVar4 + 1;
      ppdVar3 = d_cv_qualifiers(di,&ret,1);
      if (ppdVar3 != (demangle_component **)0x0) {
        pdVar2 = d_ref_qualifier(di,(demangle_component *)0x0);
        pbVar9 = (byte *)di->n;
        uVar12 = (uint)*pbVar9;
        pdVar1 = (demangle_component *)0x0;
LAB_001f4d13:
        if ((char)uVar12 != '\0') {
          pbVar10 = pbVar9;
          if ((char)uVar12 == 'D') {
            cVar11 = 'D';
            if ((pbVar9[1] & 0xdf) == 0x54) {
              pdVar5 = cplus_demangle_type(di);
              goto LAB_001f4f17;
            }
            pdVar5 = d_unqualified_name(in_stack_ffffffc4);
            goto LAB_001f4f17;
          }
          do {
            cVar11 = (char)uVar12;
            if ((byte)(uVar12 - 0x30) < 0x1d) {
              if ((0x100803ffU >> (uVar12 - 0x30 & 0x1f) & 1) == 0) {
LAB_001f5000:
                if (cVar11 == 'I') {
                  if (pdVar1 == (demangle_component *)0x0) break;
                  di->n = (char *)(pbVar10 + 1);
                  pdVar5 = d_template_args_1(di);
                  type = DEMANGLE_COMPONENT_TEMPLATE;
                }
                else {
                  if (cVar11 != 'T') {
                    if (cVar11 == 'E') {
                      *ppdVar3 = pdVar1;
                      if (pdVar1 != (demangle_component *)0x0) {
                        if (pdVar2 != (demangle_component *)0x0) {
                          (pdVar2->u).s_fixed.length = ret;
                          ret = pdVar2;
                        }
                        if (*pbVar10 == 0x45) {
                          di->n = (char *)(pbVar10 + 1);
                          return ret;
                        }
                      }
                      goto LAB_001f4da6;
                    }
                    if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;
                    pbVar9 = pbVar10 + 1;
                    di->n = (char *)pbVar9;
                    uVar12 = (uint)pbVar10[1];
                    goto LAB_001f4d13;
                  }
                  pdVar5 = d_template_param(di);
LAB_001f4f17:
                  type = DEMANGLE_COMPONENT_QUAL_NAME;
                  if (pdVar1 == (demangle_component *)0x0) goto LAB_001f4f24;
                }
LAB_001f4d51:
                pdVar5 = d_make_comp(di,type,pdVar1,pdVar5);
              }
              else {
LAB_001f4d3d:
                pdVar5 = d_unqualified_name(in_stack_ffffffc4);
                if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;
              }
              pbVar10 = (byte *)di->n;
              bVar8 = *pbVar10;
              pbVar9 = pbVar10;
              if (cVar11 == 'S') goto LAB_001f4d92;
            }
            else {
              if ((byte)(cVar11 + 0x9fU) < 0x1a) goto LAB_001f4d3d;
              if (cVar11 != 'U') {
                if (cVar11 != 'S') goto LAB_001f5000;
                pdVar5 = d_substitution(di,1);
                if (pdVar1 != (demangle_component *)0x0) {
LAB_001f4d4c:
                  type = DEMANGLE_COMPONENT_QUAL_NAME;
                  goto LAB_001f4d51;
                }
                pbVar9 = (byte *)di->n;
                uVar12 = (uint)*pbVar9;
                pdVar1 = pdVar5;
                goto LAB_001f4d13;
              }
              pdVar5 = d_unqualified_name(in_stack_ffffffc4);
              if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;
LAB_001f4f24:
              pbVar10 = (byte *)di->n;
              bVar8 = *pbVar10;
            }
            if (bVar8 != 0x45) goto code_r0x001f4d77;
            uVar12 = 0x45;
            pdVar1 = pdVar5;
          } while( true );
        }
        goto LAB_001f4da0;
      }
    }
    else {
      if (cVar11 == 'U') {
        pdVar1 = d_unqualified_name(in_stack_ffffffc4);
        return pdVar1;
      }
      if (cVar11 == 'Z') {
        di->n = pcVar4 + 1;
        pdVar1 = d_encoding(di,0);
        if ((pdVar1 != (demangle_component *)0x0) && (pcVar4 = di->n, *pcVar4 == 'E')) {
          di->n = pcVar4 + 1;
          if (pcVar4[1] == 's') {
            di->n = pcVar4 + 2;
            iVar6 = d_discriminator(di);
            if (iVar6 != 0) {
              iVar6 = di->next_comp;
              if (iVar6 < di->num_comps) {
                di->next_comp = iVar6 + 1;
                pdVar2 = di->comps + iVar6;
                pdVar2->d_printing = 0;
                pdVar2->type = DEMANGLE_COMPONENT_NAME;
                (pdVar2->u).s_name.s = "string literal";
                (pdVar2->u).s_name.len = 0xe;
                goto LAB_001f4ca4;
              }
LAB_001f514b:
              pdVar2 = (demangle_component *)0x0;
LAB_001f4ca4:
              if ((pdVar1->type == DEMANGLE_COMPONENT_TYPED_NAME) &&
                 (pdVar5 = (pdVar1->u).s_extended_operator.name,
                 pdVar5->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {
                (pdVar5->u).s_name.s = (char *)0x0;
              }
              pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_LOCAL_NAME,pdVar1,pdVar2);
              return pdVar1;
            }
          }
          else if (pcVar4[1] == 'd') {
            di->n = pcVar4 + 2;
            iVar6 = d_compact_number(di);
            if ((-1 < iVar6) &&
               (((pdVar5 = d_name(di), pdVar5 == (demangle_component *)0x0 ||
                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||
                (iVar7 = d_discriminator(di), iVar7 != 0)))) {
              iVar7 = di->next_comp;
              if (iVar7 < di->num_comps) {
                pdVar2 = di->comps + iVar7;
                pdVar2->d_printing = 0;
                di->next_comp = iVar7 + 1;
                pdVar2->type = DEMANGLE_COMPONENT_DEFAULT_ARG;
                (pdVar2->u).s_name.len = iVar6;
                (pdVar2->u).s_fixed.length = pdVar5;
                goto LAB_001f4ca4;
              }
              goto LAB_001f514b;
            }
          }
          else {
            pdVar2 = d_name(di);
            if (((pdVar2 == (demangle_component *)0x0) ||
                ((pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||
               (iVar6 = d_discriminator(di), iVar6 != 0)) goto LAB_001f4ca4;
          }
        }
      }
      else {
LAB_001f4e00:
        pdVar1 = d_unqualified_name(in_stack_ffffffc4);
        pcVar4 = di->n;
        if (*pcVar4 != 'I') {
          return pdVar1;
        }
        if ((pdVar1 != (demangle_component *)0x0) && (iVar6 = di->next_sub, iVar6 < di->num_subs)) {
          di->subs[iVar6] = pdVar1;
          di->next_sub = iVar6 + 1;
          pdVar2 = (demangle_component *)0x0;
          if ((byte)(*pcVar4 + 0xb7U) < 2) {
            di->n = pcVar4 + 1;
            pdVar2 = d_template_args_1(di);
          }
          goto LAB_001f4de2;
        }
      }
    }
LAB_001f4da6:
    pdVar1 = (demangle_component *)0x0;
  }
  return pdVar1;
code_r0x001f4d77:
  if ((pdVar5 == (demangle_component *)0x0) || (iVar6 = di->next_sub, di->num_subs <= iVar6))
  goto LAB_001f4da0;
  di->subs[iVar6] = pdVar5;
  di->next_sub = iVar6 + 1;
  bVar8 = *pbVar10;
  pbVar9 = pbVar10;
LAB_001f4d92:
  uVar12 = (uint)bVar8;
  pdVar1 = pdVar5;
  goto LAB_001f4d13;
LAB_001f4da0:
  *ppdVar3 = (demangle_component *)0x0;
  goto LAB_001f4da6;
}



/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

int __regparm3 FUN_001f4c10(int param_1)

{
  int *piVar1;
  uint *puVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  char *pcVar6;
  undefined4 uVar7;
  uint uVar8;
  uint *puVar9;
  byte bVar10;
  undefined4 *puVar11;
  byte *pbVar12;
  byte *pbVar13;
  char cVar14;
  int local_20;
  
  pcVar6 = *(char **)(param_1 + 0xc);
  cVar14 = *pcVar6;
  if (cVar14 == 'S') {
    if (pcVar6[1] == 't') {
      *(char **)(param_1 + 0xc) = pcVar6 + 2;
      uVar7 = FUN_001f46f0();
      iVar3 = *(int *)(param_1 + 0x14);
      if (iVar3 < *(int *)(param_1 + 0x18)) {
        *(int *)(param_1 + 0x14) = iVar3 + 1;
        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));
        puVar11[1] = 0;
        *puVar11 = 0;
        puVar11[2] = &DAT_002bdf00;
        puVar11[3] = 3;
      }
      iVar3 = FUN_001ec770(uVar7);
      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3;
      pcVar6 = *(char **)(param_1 + 0xc);
      if (*pcVar6 != 'I') {
        return iVar3;
      }
      if ((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))
      goto LAB_001f4da6;
      *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;
      *(int *)(param_1 + 0x20) = iVar4 + 1;
      if ((byte)(*pcVar6 + 0xb7U) < 2) goto LAB_001f4dd5;
      uVar7 = 0;
    }
    else {
      iVar3 = FUN_001eccd0();
      pcVar6 = *(char **)(param_1 + 0xc);
      if (*pcVar6 != 'I') {
        return iVar3;
      }
LAB_001f4dd5:
      *(char **)(param_1 + 0xc) = pcVar6 + 1;
      uVar7 = FUN_001f5c00();
    }
LAB_001f4de2:
    iVar3 = FUN_001ec770(uVar7);
  }
  else {
    if (cVar14 < 'T') {
      if (cVar14 != 'N') goto LAB_001f4e00;
      *(char **)(param_1 + 0xc) = pcVar6 + 1;
      piVar1 = (int *)FUN_001f6430();
      if (piVar1 != (int *)0x0) {
        iVar4 = FUN_001ec7e0();
        pbVar12 = *(byte **)(param_1 + 0xc);
        uVar8 = (uint)*pbVar12;
        iVar3 = 0;
LAB_001f4d13:
        if ((char)uVar8 != '\0') {
          pbVar13 = pbVar12;
          if ((char)uVar8 == 'D') {
            cVar14 = 'D';
            if ((pbVar12[1] & 0xdf) == 0x54) {
              iVar5 = FUN_001f3b10(param_1);
              goto LAB_001f4f17;
            }
            iVar5 = FUN_001f46f0();
            goto LAB_001f4f17;
          }
LAB_001f4d24:
          cVar14 = (char)uVar8;
          if ((byte)(uVar8 - 0x30) < 0x1d) {
            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;
LAB_001f5000:
            if (cVar14 == 'I') {
              if (iVar3 != 0) {
                *(byte **)(param_1 + 0xc) = pbVar13 + 1;
                iVar5 = FUN_001f5c00();
                goto LAB_001f4d51;
              }
              goto LAB_001f4da0;
            }
            if (cVar14 != 'T') {
              if (cVar14 == 'E') {
                *piVar1 = iVar3;
                if (iVar3 != 0) {
                  if (iVar4 != 0) {
                    *(int *)(iVar4 + 8) = local_20;
                    local_20 = iVar4;
                  }
                  if (*pbVar13 == 0x45) {
                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;
                    return local_20;
                  }
                }
                goto LAB_001f4da6;
              }
              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;
              pbVar12 = pbVar13 + 1;
              *(byte **)(param_1 + 0xc) = pbVar12;
              uVar8 = (uint)pbVar13[1];
              goto LAB_001f4d13;
            }
            iVar5 = FUN_001ecaa0();
LAB_001f4f17:
            if (iVar3 != 0) goto LAB_001f4d51;
LAB_001f4f24:
            pbVar13 = *(byte **)(param_1 + 0xc);
            bVar10 = *pbVar13;
            goto LAB_001f4d6e;
          }
          if ((byte)(cVar14 + 0x9fU) < 0x1a) {
LAB_001f4d3d:
            iVar5 = FUN_001f46f0();
            if (iVar3 != 0) goto LAB_001f4d51;
          }
          else {
            if (cVar14 == 'U') {
              iVar5 = FUN_001f46f0();
              if (iVar3 == 0) goto LAB_001f4f24;
              goto LAB_001f4d51;
            }
            if (cVar14 != 'S') goto LAB_001f5000;
            iVar5 = FUN_001eccd0();
            if (iVar3 == 0) {
              pbVar12 = *(byte **)(param_1 + 0xc);
              uVar8 = (uint)*pbVar12;
              iVar3 = iVar5;
              goto LAB_001f4d13;
            }
LAB_001f4d51:
            iVar5 = FUN_001ec770(iVar5);
          }
          pbVar13 = *(byte **)(param_1 + 0xc);
          bVar10 = *pbVar13;
          pbVar12 = pbVar13;
          if (cVar14 == 'S') goto LAB_001f4d92;
LAB_001f4d6e:
          if (bVar10 != 0x45) goto code_r0x001f4d77;
          uVar8 = 0x45;
          iVar3 = iVar5;
          goto LAB_001f4d24;
        }
LAB_001f4da0:
        *piVar1 = 0;
      }
    }
    else {
      if (cVar14 == 'U') {
        iVar3 = FUN_001f46f0();
        return iVar3;
      }
      if (cVar14 == 'Z') {
        *(char **)(param_1 + 0xc) = pcVar6 + 1;
        piVar1 = (int *)FUN_001f5180();
        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {
          *(char **)(param_1 + 0xc) = pcVar6 + 1;
          if (pcVar6[1] == 's') {
            *(char **)(param_1 + 0xc) = pcVar6 + 2;
            iVar3 = FUN_001ecfa0();
            if (iVar3 != 0) {
              iVar3 = *(int *)(param_1 + 0x14);
              if (iVar3 < *(int *)(param_1 + 0x18)) {
                *(int *)(param_1 + 0x14) = iVar3 + 1;
                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));
                puVar2[1] = 0;
                *puVar2 = 0;
                puVar2[2] = (uint)"string literal";
                puVar2[3] = 0xe;
                goto LAB_001f4ca4;
              }
LAB_001f514b:
              puVar2 = (uint *)0x0;
LAB_001f4ca4:
              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {
                ((int *)piVar1[3])[2] = 0;
              }
              iVar3 = FUN_001ec770(puVar2);
              return iVar3;
            }
          }
          else if (pcVar6[1] == 'd') {
            *(char **)(param_1 + 0xc) = pcVar6 + 2;
            uVar8 = FUN_001eca60();
            if ((-1 < (int)uVar8) &&
               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||
                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {
              iVar3 = *(int *)(param_1 + 0x14);
              if (iVar3 < *(int *)(param_1 + 0x18)) {
                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));
                puVar2[1] = 0;
                *(int *)(param_1 + 0x14) = iVar3 + 1;
                *puVar2 = 0x46;
                puVar2[3] = uVar8;
                puVar2[2] = (uint)puVar9;
                goto LAB_001f4ca4;
              }
              goto LAB_001f514b;
            }
          }
          else {
            puVar2 = (uint *)FUN_001f4c10();
            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||
               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;
          }
        }
      }
      else {
LAB_001f4e00:
        iVar3 = FUN_001f46f0();
        pcVar6 = *(char **)(param_1 + 0xc);
        if (*pcVar6 != 'I') {
          return iVar3;
        }
        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {
          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;
          *(int *)(param_1 + 0x20) = iVar4 + 1;
          uVar7 = 0;
          if ((byte)(*pcVar6 + 0xb7U) < 2) {
            *(char **)(param_1 + 0xc) = pcVar6 + 1;
            uVar7 = FUN_001f5c00();
          }
          goto LAB_001f4de2;
        }
      }
    }
LAB_001f4da6:
    iVar3 = 0;
  }
  return iVar3;
code_r0x001f4d77:
  if ((iVar5 == 0) || (iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3))
  goto LAB_001f4da0;
  *(int *)(*(int *)(param_1 + 0x1c) + iVar3 * 4) = iVar5;
  *(int *)(param_1 + 0x20) = iVar3 + 1;
  bVar10 = *pbVar13;
  pbVar12 = pbVar13;
LAB_001f4d92:
  uVar8 = (uint)bVar10;
  iVar3 = iVar5;
  goto LAB_001f4d13;
}


PUSH EBP
PUSH EDI
PUSH ESI
CALL 0x0004a046
ADD ESI,0x1ba3e8
PUSH EBX
MOV EBX,EAX
SUB ESP,0x2c
MOV EDX,dword ptr [EAX + 0xc]
MOVZX EAX,byte ptr [EDX]
CMP AL,0x53
JZ 0x001f4db8
JLE 0x001f4cd0
CMP AL,0x55
JZ 0x001f4e48
CMP AL,0x5a
JNZ 0x001f4e00
ADD EDX,0x1
MOV EAX,EBX
MOV dword ptr [EBX + 0xc],EDX
XOR EDX,EDX
CALL 0x001f5180
MOV EDI,EAX
TEST EAX,EAX
JZ 0x001f4da6
MOV EAX,dword ptr [EBX + 0xc]
CMP byte ptr [EAX],0x45
JNZ 0x001f4da6
LEA EDX,[EAX + 0x1]
MOV dword ptr [EBX + 0xc],EDX
MOVZX EDX,byte ptr [EAX + 0x1]
CMP DL,0x73
JZ 0x001f50b0
CMP DL,0x64
JZ 0x001f4f90
MOV EAX,EBX
CALL 0x001f4c10
MOV EBP,EAX
TEST EAX,EAX
JZ 0x001f4ca4
MOV EAX,dword ptr [EAX]
AND EAX,0xfffffffd
CMP EAX,0x45
JNZ 0x001f5137
CMP dword ptr [EDI],0x3
JZ 0x001f5078
SUB ESP,0xc
MOV ECX,EDI
MOV EDX,0x2
MOV EAX,EBX
PUSH EBP
CALL 0x001ec770
ADD ESP,0x10
MOV ESI,EAX
JMP 0x001f4da8
CMP AL,0x4e
JNZ 0x001f4e00
ADD EDX,0x1
MOV ECX,0x1
MOV EAX,EBX
MOV dword ptr [EBX + 0xc],EDX
LEA EDX,[ESP + 0x1c]
CALL 0x001f6430
MOV EDI,EAX
TEST EAX,EAX
JZ 0x001f4da6
XOR EDX,EDX
MOV EAX,EBX
XOR EBP,EBP
CALL 0x001ec7e0
MOV EDX,dword ptr [EBX + 0xc]
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,EBX
MOVZX ESI,byte ptr [EDX]
MOV EBX,ESI
MOV ESI,EAX
TEST BL,BL
JZ 0x001f4da0
CMP BL,0x44
JZ 0x001f4f00
LEA EAX,[EBX + -0x30]
CMP AL,0x1c
JA 0x001f4f38
MOV ECX,0x100803ff
BT ECX,EAX
JNC 0x001f5000
MOV EAX,ESI
CALL 0x001f46f0
TEST EBP,EBP
JZ 0x001f4f80
MOV EDX,0x1
SUB ESP,0xc
MOV ECX,EBP
PUSH EAX
MOV EAX,ESI
CALL 0x001ec770
ADD ESP,0x10
MOV EBP,EAX
MOV EDX,dword ptr [ESI + 0xc]
MOVZX ECX,byte ptr [EDX]
CMP BL,0x53
JZ 0x001f4d92
CMP CL,0x45
JZ 0x001f4f60
TEST EBP,EBP
JZ 0x001f4da0
MOV EAX,dword ptr [ESI + 0x20]
CMP EAX,dword ptr [ESI + 0x24]
JGE 0x001f4da0
MOV ECX,dword ptr [ESI + 0x1c]
MOV dword ptr [ECX + EAX*0x4],EBP
ADD EAX,0x1
MOV dword ptr [ESI + 0x20],EAX
MOVZX ECX,byte ptr [EDX]
MOV EBX,ECX
JMP 0x001f4d13
MOV dword ptr [EDI],0x0
XOR ESI,ESI
ADD ESP,0x2c
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP byte ptr [EDX + 0x1],0x74
JZ 0x001f4e60
XOR EDX,EDX
MOV EAX,EBX
CALL 0x001eccd0
MOV ESI,EAX
MOV EAX,dword ptr [EBX + 0xc]
CMP byte ptr [EAX],0x49
JNZ 0x001f4da8
ADD EAX,0x1
MOV dword ptr [EBX + 0xc],EAX
MOV EAX,EBX
CALL 0x001f5c00
SUB ESP,0xc
MOV ECX,ESI
MOV EDX,0x4
PUSH EAX
MOV EAX,EBX
CALL 0x001ec770
ADD ESP,0x10
MOV ESI,EAX
JMP 0x001f4da8
MOV EAX,EBX
CALL 0x001f46f0
MOV EDX,dword ptr [EBX + 0xc]
MOV ESI,EAX
CMP byte ptr [EDX],0x49
JNZ 0x001f4da8
TEST EAX,EAX
JZ 0x001f4da6
MOV EAX,dword ptr [EBX + 0x20]
CMP EAX,dword ptr [EBX + 0x24]
JGE 0x001f4da6
MOV ECX,dword ptr [EBX + 0x1c]
MOV dword ptr [ECX + EAX*0x4],ESI
ADD EAX,0x1
MOV dword ptr [EBX + 0x20],EAX
MOVZX EAX,byte ptr [EDX]
LEA ECX,[EAX + -0x49]
XOR EAX,EAX
CMP CL,0x1
JA 0x001f4de2
ADD EDX,0x1
MOV EAX,EBX
MOV dword ptr [EBX + 0xc],EDX
CALL 0x001f5c00
JMP 0x001f4de2
MOV EAX,EBX
CALL 0x001f46f0
ADD ESP,0x2c
MOV ESI,EAX
POP EBX
MOV EAX,ESI
POP ESI
POP EDI
POP EBP
RET
ADD EDX,0x2
MOV EAX,EBX
MOV dword ptr [EBX + 0xc],EDX
CALL 0x001f46f0
MOV EDX,dword ptr [EBX + 0x14]
CMP EDX,dword ptr [EBX + 0x18]
JGE 0x001f5130
MOV ECX,EDX
ADD EDX,0x1
MOV dword ptr [EBX + 0x14],EDX
SHL ECX,0x4
LEA EDX,[ESI + 0xfff0ef00]
ADD ECX,dword ptr [EBX + 0x10]
MOV dword ptr [ECX + 0x4],0x0
MOV dword ptr [ECX],0x0
MOV dword ptr [ECX + 0x8],EDX
MOV dword ptr [ECX + 0xc],0x3
SUB ESP,0xc
MOV EDX,0x1
PUSH EAX
MOV EAX,EBX
CALL 0x001ec770
ADD dword ptr [EBX + 0x2c],0x3
ADD ESP,0x10
MOV ESI,EAX
MOV EAX,dword ptr [EBX + 0xc]
CMP byte ptr [EAX],0x49
JNZ 0x001f4da8
TEST ESI,ESI
JZ 0x001f4da6
MOV EDX,dword ptr [EBX + 0x20]
CMP EDX,dword ptr [EBX + 0x24]
JGE 0x001f4da6
MOV ECX,dword ptr [EBX + 0x1c]
MOV dword ptr [ECX + EDX*0x4],ESI
ADD EDX,0x1
MOV dword ptr [EBX + 0x20],EDX
MOVZX EDI,byte ptr [EAX]
LEA EDX,[EDI + -0x49]
CMP DL,0x1
JBE 0x001f4dd5
XOR EAX,EAX
JMP 0x001f4de2
MOVZX EAX,byte ptr [EDX + 0x1]
AND EAX,0xffffffdf
CMP AL,0x54
JNZ 0x001f4f70
SUB ESP,0xc
PUSH ESI
CALL 0x001f3b10
ADD ESP,0x10
MOV EDX,0x1
TEST EBP,EBP
JNZ 0x001f4d51
MOV EDX,dword ptr [ESI + 0xc]
MOV EBP,EAX
MOVZX ECX,byte ptr [EDX]
JMP 0x001f4d6e
LEA EAX,[EBX + -0x61]
CMP AL,0x19
JBE 0x001f4d3d
CMP BL,0x55
JNZ 0x001f5100
MOV EAX,ESI
CALL 0x001f46f0
TEST EBP,EBP
JNZ 0x001f4d4c
JMP 0x001f4f24
MOV EBX,0x45
JMP 0x001f4d24
MOV EAX,ESI
CALL 0x001f46f0
JMP 0x001f4f17
MOV EBP,EAX
JMP 0x001f4d63
ADD EAX,0x2
MOV dword ptr [EBX + 0xc],EAX
MOV EAX,EBX
CALL 0x001eca60
TEST EAX,EAX
MOV dword ptr [ESP + 0xc],EAX
JS 0x001f4da6
MOV EAX,EBX
CALL 0x001f4c10
MOV EDX,dword ptr [ESP + 0xc]
TEST EAX,EAX
MOV ESI,EAX
JZ 0x001f4fc8
MOV EAX,dword ptr [EAX]
AND EAX,0xfffffffd
CMP EAX,0x45
JNZ 0x001f515e
MOV EAX,dword ptr [EBX + 0x14]
CMP EAX,dword ptr [EBX + 0x18]
JGE 0x001f514b
MOV EBP,EAX
ADD EAX,0x1
SHL EBP,0x4
ADD EBP,dword ptr [EBX + 0x10]
MOV dword ptr [EBP + 0x4],0x0
MOV dword ptr [EBX + 0x14],EAX
MOV dword ptr [EBP],0x46
MOV dword ptr [EBP + 0xc],EDX
MOV dword ptr [EBP + 0x8],ESI
JMP 0x001f4ca4
CMP BL,0x49
JZ 0x001f5090
CMP BL,0x54
JZ 0x001f5152
CMP BL,0x45
JZ 0x001f503b
TEST EBP,EBP
JZ 0x001f4da0
CMP BL,0x4d
JNZ 0x001f4da0
LEA EAX,[EDX + 0x1]
MOV dword ptr [ESI + 0xc],EAX
MOVZX ECX,byte ptr [EDX + 0x1]
MOV EDX,EAX
MOV EBX,ECX
JMP 0x001f4d13
MOV EBX,ESI
MOV dword ptr [EDI],EBP
TEST EBP,EBP
JZ 0x001f4da6
MOV EDI,dword ptr [ESP + 0xc]
TEST EDI,EDI
JZ 0x001f505a
MOV EAX,dword ptr [ESP + 0x1c]
MOV dword ptr [ESP + 0x1c],EDI
MOV dword ptr [EDI + 0x8],EAX
CMP byte ptr [EDX],0x45
JNZ 0x001f4da6
ADD EDX,0x1
MOV ESI,dword ptr [ESP + 0x1c]
MOV dword ptr [EBX + 0xc],EDX
JMP 0x001f4da8
MOV EAX,dword ptr [EDI + 0xc]
CMP dword ptr [EAX],0x29
JNZ 0x001f4cad
MOV dword ptr [EAX + 0x8],0x0
JMP 0x001f4cad
TEST EBP,EBP
JZ 0x001f4da0
ADD EDX,0x1
MOV EAX,ESI
MOV dword ptr [ESI + 0xc],EDX
CALL 0x001f5c00
MOV EDX,0x4
JMP 0x001f4d51
ADD EAX,0x2
MOV dword ptr [EBX + 0xc],EAX
MOV EAX,EBX
CALL 0x001ecfa0
TEST EAX,EAX
JZ 0x001f4da6
MOV EAX,dword ptr [EBX + 0x14]
CMP EAX,dword ptr [EBX + 0x18]
JGE 0x001f514b
MOV EBP,EAX
ADD EAX,0x1
MOV dword ptr [EBX + 0x14],EAX
SHL EBP,0x4
LEA EAX,[ESI + 0xfff0eef1]
ADD EBP,dword ptr [EBX + 0x10]
MOV dword ptr [EBP + 0x4],0x0
MOV dword ptr [EBP],0x0
MOV dword ptr [EBP + 0x8],EAX
MOV dword ptr [EBP + 0xc],0xe
JMP 0x001f4ca4
CMP BL,0x53
JNZ 0x001f5000
MOV EDX,0x1
MOV EAX,ESI
CALL 0x001eccd0
TEST EBP,EBP
JNZ 0x001f4d4c
MOV EDX,dword ptr [ESI + 0xc]
MOV EBP,EAX
MOVZX ECX,byte ptr [EDX]
MOV EBX,ECX
JMP 0x001f4d13
XOR ECX,ECX
JMP 0x001f4ea4
MOV EAX,EBX
CALL 0x001ecfa0
TEST EAX,EAX
JZ 0x001f4da6
JMP 0x001f4ca4
XOR EBP,EBP
JMP 0x001f4ca4
MOV EAX,ESI
CALL 0x001ecaa0
JMP 0x001f4f17
MOV EAX,EBX
MOV dword ptr [ESP + 0xc],EDX
CALL 0x001ecfa0
MOV EDX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JNZ 0x001f4fc8
JMP 0x001f4da6
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\nint __regparm3 FUN_001f4c10(int param_1)\n\n{\n  int *piVar1;\n  uint *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  uint *puVar9;\n  byte bVar10;\n  undefined4 *puVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  char cVar14;\n  int local_20;\n  \n  pcVar6 = *(char **)(param_1 + 0xc);\n  cVar14 = *pcVar6;\n  if (cVar14 == 'S') {\n    if (pcVar6[1] == 't') {\n      *(char **)(param_1 + 0xc) = pcVar6 + 2;\n      uVar7 = FUN_001f46f0();\n      iVar3 = *(int *)(param_1 + 0x14);\n      if (iVar3 < *(int *)(param_1 + 0x18)) {\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }\n      iVar3 = FUN_001ec770(uVar7);\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3;\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\n      if ((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))\n      goto LAB_001f4da6;\n      *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n      *(int *)(param_1 + 0x20) = iVar4 + 1;\n      if ((byte)(*pcVar6 + 0xb7U) < 2) goto LAB_001f4dd5;\n      uVar7 = 0;\n    }\n    else {\n      iVar3 = FUN_001eccd0();\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\nLAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      uVar7 = FUN_001f5c00();\n    }\nLAB_001f4de2:\n    iVar3 = FUN_001ec770(uVar7);\n  }\n  else {\n    if (cVar14 < 'T') {\n      if (cVar14 != 'N') goto LAB_001f4e00;\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      piVar1 = (int *)FUN_001f6430();\n      if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }\n    }\n    else {\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }\nLAB_001f4da6:\n    iVar3 = 0;\n  }\n  return iVar3;\ncode_r0x001f4d77:\n  if ((iVar5 == 0) || (iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3))\n  goto LAB_001f4da0;\n  *(int *)(*(int *)(param_1 + 0x1c) + iVar3 * 4) = iVar5;\n  *(int *)(param_1 + 0x20) = iVar3 + 1;\n  bVar10 = *pbVar13;\n  pbVar12 = pbVar13;\nLAB_001f4d92:\n  uVar8 = (uint)bVar10;\n  iVar3 = iVar5;\n  goto LAB_001f4d13;\n}\n\n" comment (function_definition "int __regparm3 FUN_001f4c10(int param_1)\n\n{\n  int *piVar1;\n  uint *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  uint *puVar9;\n  byte bVar10;\n  undefined4 *puVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  char cVar14;\n  int local_20;\n  \n  pcVar6 = *(char **)(param_1 + 0xc);\n  cVar14 = *pcVar6;\n  if (cVar14 == 'S') {\n    if (pcVar6[1] == 't') {\n      *(char **)(param_1 + 0xc) = pcVar6 + 2;\n      uVar7 = FUN_001f46f0();\n      iVar3 = *(int *)(param_1 + 0x14);\n      if (iVar3 < *(int *)(param_1 + 0x18)) {\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }\n      iVar3 = FUN_001ec770(uVar7);\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3;\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\n      if ((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))\n      goto LAB_001f4da6;\n      *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n      *(int *)(param_1 + 0x20) = iVar4 + 1;\n      if ((byte)(*pcVar6 + 0xb7U) < 2) goto LAB_001f4dd5;\n      uVar7 = 0;\n    }\n    else {\n      iVar3 = FUN_001eccd0();\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\nLAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      uVar7 = FUN_001f5c00();\n    }\nLAB_001f4de2:\n    iVar3 = FUN_001ec770(uVar7);\n  }\n  else {\n    if (cVar14 < 'T') {\n      if (cVar14 != 'N') goto LAB_001f4e00;\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      piVar1 = (int *)FUN_001f6430();\n      if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }\n    }\n    else {\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }\nLAB_001f4da6:\n    iVar3 = 0;\n  }\n  return iVar3;\ncode_r0x001f4d77:\n  if ((iVar5 == 0) || (iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3))\n  goto LAB_001f4da0;\n  *(int *)(*(int *)(param_1 + 0x1c) + iVar3 * 4) = iVar5;\n  *(int *)(param_1 + 0x20) = iVar3 + 1;\n  bVar10 = *pbVar13;\n  pbVar12 = pbVar13;\nLAB_001f4d92:\n  uVar8 = (uint)bVar10;\n  iVar3 = iVar5;\n  goto LAB_001f4d13;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_001f4c10(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  uint *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  uint *puVar9;\n  byte bVar10;\n  undefined4 *puVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  char cVar14;\n  int local_20;\n  \n  pcVar6 = *(char **)(param_1 + 0xc);\n  cVar14 = *pcVar6;\n  if (cVar14 == 'S') {\n    if (pcVar6[1] == 't') {\n      *(char **)(param_1 + 0xc) = pcVar6 + 2;\n      uVar7 = FUN_001f46f0();\n      iVar3 = *(int *)(param_1 + 0x14);\n      if (iVar3 < *(int *)(param_1 + 0x18)) {\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }\n      iVar3 = FUN_001ec770(uVar7);\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3;\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\n      if ((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))\n      goto LAB_001f4da6;\n      *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n      *(int *)(param_1 + 0x20) = iVar4 + 1;\n      if ((byte)(*pcVar6 + 0xb7U) < 2) goto LAB_001f4dd5;\n      uVar7 = 0;\n    }\n    else {\n      iVar3 = FUN_001eccd0();\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\nLAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      uVar7 = FUN_001f5c00();\n    }\nLAB_001f4de2:\n    iVar3 = FUN_001ec770(uVar7);\n  }\n  else {\n    if (cVar14 < 'T') {\n      if (cVar14 != 'N') goto LAB_001f4e00;\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      piVar1 = (int *)FUN_001f6430();\n      if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }\n    }\n    else {\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }\nLAB_001f4da6:\n    iVar3 = 0;\n  }\n  return iVar3;\ncode_r0x001f4d77:\n  if ((iVar5 == 0) || (iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3))\n  goto LAB_001f4da0;\n  *(int *)(*(int *)(param_1 + 0x1c) + iVar3 * 4) = iVar5;\n  *(int *)(param_1 + 0x20) = iVar3 + 1;\n  bVar10 = *pbVar13;\n  pbVar12 = pbVar13;\nLAB_001f4d92:\n  uVar8 = (uint)bVar10;\n  iVar3 = iVar5;\n  goto LAB_001f4d13;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "uint *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "char cVar14;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "pcVar6 = *(char **)(param_1 + 0xc);" (assignment_expression "pcVar6 = *(char **)(param_1 + 0xc)" identifier = (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "cVar14 = *pcVar6;" (assignment_expression "cVar14 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (if_statement "if (cVar14 == 'S') {\n    if (pcVar6[1] == 't') {\n      *(char **)(param_1 + 0xc) = pcVar6 + 2;\n      uVar7 = FUN_001f46f0();\n      iVar3 = *(int *)(param_1 + 0x14);\n      if (iVar3 < *(int *)(param_1 + 0x18)) {\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }\n      iVar3 = FUN_001ec770(uVar7);\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3;\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\n      if ((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))\n      goto LAB_001f4da6;\n      *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n      *(int *)(param_1 + 0x20) = iVar4 + 1;\n      if ((byte)(*pcVar6 + 0xb7U) < 2) goto LAB_001f4dd5;\n      uVar7 = 0;\n    }\n    else {\n      iVar3 = FUN_001eccd0();\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\nLAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      uVar7 = FUN_001f5c00();\n    }\nLAB_001f4de2:\n    iVar3 = FUN_001ec770(uVar7);\n  }\n  else {\n    if (cVar14 < 'T') {\n      if (cVar14 != 'N') goto LAB_001f4e00;\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      piVar1 = (int *)FUN_001f6430();\n      if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }\n    }\n    else {\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }\nLAB_001f4da6:\n    iVar3 = 0;\n  }" if (parenthesized_expression "(cVar14 == 'S')" ( (binary_expression "cVar14 == 'S'" identifier == (char_literal "'S'" ' character ')) )) (compound_statement "{\n    if (pcVar6[1] == 't') {\n      *(char **)(param_1 + 0xc) = pcVar6 + 2;\n      uVar7 = FUN_001f46f0();\n      iVar3 = *(int *)(param_1 + 0x14);\n      if (iVar3 < *(int *)(param_1 + 0x18)) {\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }\n      iVar3 = FUN_001ec770(uVar7);\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3;\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\n      if ((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))\n      goto LAB_001f4da6;\n      *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n      *(int *)(param_1 + 0x20) = iVar4 + 1;\n      if ((byte)(*pcVar6 + 0xb7U) < 2) goto LAB_001f4dd5;\n      uVar7 = 0;\n    }\n    else {\n      iVar3 = FUN_001eccd0();\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\nLAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      uVar7 = FUN_001f5c00();\n    }\nLAB_001f4de2:\n    iVar3 = FUN_001ec770(uVar7);\n  }" { (if_statement "if (pcVar6[1] == 't') {\n      *(char **)(param_1 + 0xc) = pcVar6 + 2;\n      uVar7 = FUN_001f46f0();\n      iVar3 = *(int *)(param_1 + 0x14);\n      if (iVar3 < *(int *)(param_1 + 0x18)) {\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }\n      iVar3 = FUN_001ec770(uVar7);\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3;\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\n      if ((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))\n      goto LAB_001f4da6;\n      *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n      *(int *)(param_1 + 0x20) = iVar4 + 1;\n      if ((byte)(*pcVar6 + 0xb7U) < 2) goto LAB_001f4dd5;\n      uVar7 = 0;\n    }\n    else {\n      iVar3 = FUN_001eccd0();\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\nLAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      uVar7 = FUN_001f5c00();\n    }" if (parenthesized_expression "(pcVar6[1] == 't')" ( (binary_expression "pcVar6[1] == 't'" (subscript_expression "pcVar6[1]" identifier [ number_literal ]) == (char_literal "'t'" ' character ')) )) (compound_statement "{\n      *(char **)(param_1 + 0xc) = pcVar6 + 2;\n      uVar7 = FUN_001f46f0();\n      iVar3 = *(int *)(param_1 + 0x14);\n      if (iVar3 < *(int *)(param_1 + 0x18)) {\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }\n      iVar3 = FUN_001ec770(uVar7);\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3;\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\n      if ((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))\n      goto LAB_001f4da6;\n      *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n      *(int *)(param_1 + 0x20) = iVar4 + 1;\n      if ((byte)(*pcVar6 + 0xb7U) < 2) goto LAB_001f4dd5;\n      uVar7 = 0;\n    }" { (expression_statement "*(char **)(param_1 + 0xc) = pcVar6 + 2;" (assignment_expression "*(char **)(param_1 + 0xc) = pcVar6 + 2" (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar6 + 2" identifier + number_literal)) ;) (expression_statement "uVar7 = FUN_001f46f0();" (assignment_expression "uVar7 = FUN_001f46f0()" identifier = (call_expression "FUN_001f46f0()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x14)" identifier = (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 < *(int *)(param_1 + 0x18)) {\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }" if (parenthesized_expression "(iVar3 < *(int *)(param_1 + 0x18))" ( (binary_expression "iVar3 < *(int *)(param_1 + 0x18)" identifier < (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }" { (expression_statement "*(int *)(param_1 + 0x14) = iVar3 + 1;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar3 + 1" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));" (assignment_expression "puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" identifier = (cast_expression "(undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" ( (binary_expression "iVar3 * 0x10 + *(int *)(param_1 + 0x10)" (binary_expression "iVar3 * 0x10" identifier * number_literal) + (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) )))) ;) (expression_statement "puVar11[1] = 0;" (assignment_expression "puVar11[1] = 0" (subscript_expression "puVar11[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar11 = 0;" (assignment_expression "*puVar11 = 0" (pointer_expression "*puVar11" * identifier) = number_literal) ;) (expression_statement "puVar11[2] = &DAT_002bdf00;" (assignment_expression "puVar11[2] = &DAT_002bdf00" (subscript_expression "puVar11[2]" identifier [ number_literal ]) = (pointer_expression "&DAT_002bdf00" & identifier)) ;) (expression_statement "puVar11[3] = 3;" (assignment_expression "puVar11[3] = 3" (subscript_expression "puVar11[3]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "iVar3 = FUN_001ec770(uVar7);" (assignment_expression "iVar3 = FUN_001ec770(uVar7)" identifier = (call_expression "FUN_001ec770(uVar7)" identifier (argument_list "(uVar7)" ( identifier )))) ;) (expression_statement "*(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3;" (assignment_expression "*(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x2c) + 3" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pcVar6 = *(char **)(param_1 + 0xc);" (assignment_expression "pcVar6 = *(char **)(param_1 + 0xc)" identifier = (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar6 != 'I') {\n        return iVar3;\n      }" if (parenthesized_expression "(*pcVar6 != 'I')" ( (binary_expression "*pcVar6 != 'I'" (pointer_expression "*pcVar6" * identifier) != (char_literal "'I'" ' character ')) )) (compound_statement "{\n        return iVar3;\n      }" { (return_statement "return iVar3;" return identifier ;) })) (if_statement "if ((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))\n      goto LAB_001f4da6;" if (parenthesized_expression "((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))" ( (binary_expression "(iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4)" ( (comma_expression "iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4" (assignment_expression "iVar4 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) , (binary_expression "*(int *)(param_1 + 0x24) <= iVar4" (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) <= identifier)) ))) )) (goto_statement "goto LAB_001f4da6;" goto statement_identifier ;)) (expression_statement "*(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;" (assignment_expression "*(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3" (pointer_expression "*(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4)" * (cast_expression "(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x1c) + iVar4 * 4)" ( (binary_expression "*(int *)(param_1 + 0x1c) + iVar4 * 4" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x20) = iVar4 + 1;" (assignment_expression "*(int *)(param_1 + 0x20) = iVar4 + 1" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (if_statement "if ((byte)(*pcVar6 + 0xb7U) < 2) goto LAB_001f4dd5;" if (parenthesized_expression "((byte)(*pcVar6 + 0xb7U) < 2)" ( (binary_expression "(byte)(*pcVar6 + 0xb7U) < 2" (call_expression "(byte)(*pcVar6 + 0xb7U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pcVar6 + 0xb7U)" ( (binary_expression "*pcVar6 + 0xb7U" (pointer_expression "*pcVar6" * identifier) + number_literal) ))) < number_literal) )) (goto_statement "goto LAB_001f4dd5;" goto statement_identifier ;)) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      iVar3 = FUN_001eccd0();\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\nLAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      uVar7 = FUN_001f5c00();\n    }" else (compound_statement "{\n      iVar3 = FUN_001eccd0();\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\nLAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      uVar7 = FUN_001f5c00();\n    }" { (expression_statement "iVar3 = FUN_001eccd0();" (assignment_expression "iVar3 = FUN_001eccd0()" identifier = (call_expression "FUN_001eccd0()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar6 = *(char **)(param_1 + 0xc);" (assignment_expression "pcVar6 = *(char **)(param_1 + 0xc)" identifier = (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar6 != 'I') {\n        return iVar3;\n      }" if (parenthesized_expression "(*pcVar6 != 'I')" ( (binary_expression "*pcVar6 != 'I'" (pointer_expression "*pcVar6" * identifier) != (char_literal "'I'" ' character ')) )) (compound_statement "{\n        return iVar3;\n      }" { (return_statement "return iVar3;" return identifier ;) })) (labeled_statement "LAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;" statement_identifier : (expression_statement "*(char **)(param_1 + 0xc) = pcVar6 + 1;" (assignment_expression "*(char **)(param_1 + 0xc) = pcVar6 + 1" (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;)) (expression_statement "uVar7 = FUN_001f5c00();" (assignment_expression "uVar7 = FUN_001f5c00()" identifier = (call_expression "FUN_001f5c00()" identifier (argument_list "()" ( )))) ;) }))) (labeled_statement "LAB_001f4de2:\n    iVar3 = FUN_001ec770(uVar7);" statement_identifier : (expression_statement "iVar3 = FUN_001ec770(uVar7);" (assignment_expression "iVar3 = FUN_001ec770(uVar7)" identifier = (call_expression "FUN_001ec770(uVar7)" identifier (argument_list "(uVar7)" ( identifier )))) ;)) }) (else_clause "else {\n    if (cVar14 < 'T') {\n      if (cVar14 != 'N') goto LAB_001f4e00;\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      piVar1 = (int *)FUN_001f6430();\n      if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }\n    }\n    else {\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }\nLAB_001f4da6:\n    iVar3 = 0;\n  }" else (compound_statement "{\n    if (cVar14 < 'T') {\n      if (cVar14 != 'N') goto LAB_001f4e00;\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      piVar1 = (int *)FUN_001f6430();\n      if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }\n    }\n    else {\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }\nLAB_001f4da6:\n    iVar3 = 0;\n  }" { (if_statement "if (cVar14 < 'T') {\n      if (cVar14 != 'N') goto LAB_001f4e00;\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      piVar1 = (int *)FUN_001f6430();\n      if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }\n    }\n    else {\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }" if (parenthesized_expression "(cVar14 < 'T')" ( (binary_expression "cVar14 < 'T'" identifier < (char_literal "'T'" ' character ')) )) (compound_statement "{\n      if (cVar14 != 'N') goto LAB_001f4e00;\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      piVar1 = (int *)FUN_001f6430();\n      if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }\n    }" { (if_statement "if (cVar14 != 'N') goto LAB_001f4e00;" if (parenthesized_expression "(cVar14 != 'N')" ( (binary_expression "cVar14 != 'N'" identifier != (char_literal "'N'" ' character ')) )) (goto_statement "goto LAB_001f4e00;" goto statement_identifier ;)) (expression_statement "*(char **)(param_1 + 0xc) = pcVar6 + 1;" (assignment_expression "*(char **)(param_1 + 0xc) = pcVar6 + 1" (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "piVar1 = (int *)FUN_001f6430();" (assignment_expression "piVar1 = (int *)FUN_001f6430()" identifier = (cast_expression "(int *)FUN_001f6430()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001f6430()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }" if (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }" { (expression_statement "iVar4 = FUN_001ec7e0();" (assignment_expression "iVar4 = FUN_001ec7e0()" identifier = (call_expression "FUN_001ec7e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "pbVar12 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar12 = *(byte **)(param_1 + 0xc)" identifier = (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = (uint)*pbVar12;" (assignment_expression "uVar8 = (uint)*pbVar12" identifier = (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (labeled_statement "LAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }" statement_identifier : (if_statement "if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }" if (parenthesized_expression "((char)uVar8 != '\0')" ( (binary_expression "(char)uVar8 != '\0'" (cast_expression "(char)uVar8" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }" { (expression_statement "pbVar13 = pbVar12;" (assignment_expression "pbVar13 = pbVar12" identifier = identifier) ;) (if_statement "if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }" if (parenthesized_expression "((char)uVar8 == 'D')" ( (binary_expression "(char)uVar8 == 'D'" (cast_expression "(char)uVar8" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'D'" ' character ')) )) (compound_statement "{\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }" { (expression_statement "cVar14 = 'D';" (assignment_expression "cVar14 = 'D'" identifier = (char_literal "'D'" ' character ')) ;) (if_statement "if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }" if (parenthesized_expression "((pbVar12[1] & 0xdf) == 0x54)" ( (binary_expression "(pbVar12[1] & 0xdf) == 0x54" (parenthesized_expression "(pbVar12[1] & 0xdf)" ( (binary_expression "pbVar12[1] & 0xdf" (subscript_expression "pbVar12[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }" { (expression_statement "iVar5 = FUN_001f3b10(param_1);" (assignment_expression "iVar5 = FUN_001f3b10(param_1)" identifier = (call_expression "FUN_001f3b10(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (goto_statement "goto LAB_001f4f17;" goto statement_identifier ;) })) (expression_statement "iVar5 = FUN_001f46f0();" (assignment_expression "iVar5 = FUN_001f46f0()" identifier = (call_expression "FUN_001f46f0()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_001f4f17;" goto statement_identifier ;) })) (labeled_statement "LAB_001f4d24:\n          cVar14 = (char)uVar8;" statement_identifier : (expression_statement "cVar14 = (char)uVar8;" (assignment_expression "cVar14 = (char)uVar8" identifier = (cast_expression "(char)uVar8" ( (type_descriptor "char" primitive_type) ) identifier)) ;)) (if_statement "if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }" if (parenthesized_expression "((byte)(uVar8 - 0x30) < 0x1d)" ( (binary_expression "(byte)(uVar8 - 0x30) < 0x1d" (call_expression "(byte)(uVar8 - 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar8 - 0x30)" ( (binary_expression "uVar8 - 0x30" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }" { (if_statement "if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;" if (parenthesized_expression "((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0)" ( (binary_expression "(0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0" (parenthesized_expression "(0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1)" ( (binary_expression "0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1" (binary_expression "0x100803ffU >> (uVar8 - 0x30 & 0x1f)" number_literal >> (parenthesized_expression "(uVar8 - 0x30 & 0x1f)" ( (binary_expression "uVar8 - 0x30 & 0x1f" (binary_expression "uVar8 - 0x30" identifier - number_literal) & number_literal) ))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_001f4d3d;" goto statement_identifier ;)) (labeled_statement "LAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }" statement_identifier : (if_statement "if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }" if (parenthesized_expression "(cVar14 == 'I')" ( (binary_expression "cVar14 == 'I'" identifier == (char_literal "'I'" ' character ')) )) (compound_statement "{\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }" { (if_statement "if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }" { (expression_statement "*(byte **)(param_1 + 0xc) = pbVar13 + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar13 + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (expression_statement "iVar5 = FUN_001f5c00();" (assignment_expression "iVar5 = FUN_001f5c00()" identifier = (call_expression "FUN_001f5c00()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_001f4d51;" goto statement_identifier ;) })) (goto_statement "goto LAB_001f4da0;" goto statement_identifier ;) }))) (if_statement "if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }" if (parenthesized_expression "(cVar14 != 'T')" ( (binary_expression "cVar14 != 'T'" identifier != (char_literal "'T'" ' character ')) )) (compound_statement "{\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }" { (if_statement "if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }" if (parenthesized_expression "(cVar14 == 'E')" ( (binary_expression "cVar14 == 'E'" identifier == (char_literal "'E'" ' character ')) )) (compound_statement "{\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }" { (expression_statement "*piVar1 = iVar3;" (assignment_expression "*piVar1 = iVar3" (pointer_expression "*piVar1" * identifier) = identifier) ;) (if_statement "if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }" { (if_statement "if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }" { (expression_statement "*(int *)(iVar4 + 8) = local_20;" (assignment_expression "*(int *)(iVar4 + 8) = local_20" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_20 = iVar4;" (assignment_expression "local_20 = iVar4" identifier = identifier) ;) })) (if_statement "if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }" if (parenthesized_expression "(*pbVar13 == 0x45)" ( (binary_expression "*pbVar13 == 0x45" (pointer_expression "*pbVar13" * identifier) == number_literal) )) (compound_statement "{\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }" { (expression_statement "*(byte **)(param_1 + 0xc) = pbVar13 + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar13 + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (return_statement "return local_20;" return identifier ;) })) })) (goto_statement "goto LAB_001f4da6;" goto statement_identifier ;) })) (if_statement "if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;" if (parenthesized_expression "((iVar3 == 0) || (cVar14 != 'M'))" ( (binary_expression "(iVar3 == 0) || (cVar14 != 'M')" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "(cVar14 != 'M')" ( (binary_expression "cVar14 != 'M'" identifier != (char_literal "'M'" ' character ')) ))) )) (goto_statement "goto LAB_001f4da0;" goto statement_identifier ;)) (expression_statement "pbVar12 = pbVar13 + 1;" (assignment_expression "pbVar12 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (expression_statement "*(byte **)(param_1 + 0xc) = pbVar12;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar12" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar8 = (uint)pbVar13[1];" (assignment_expression "uVar8 = (uint)pbVar13[1]" identifier = (cast_expression "(uint)pbVar13[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar13[1]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_001f4d13;" goto statement_identifier ;) })) (expression_statement "iVar5 = FUN_001ecaa0();" (assignment_expression "iVar5 = FUN_001ecaa0()" identifier = (call_expression "FUN_001ecaa0()" identifier (argument_list "()" ( )))) ;) (labeled_statement "LAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;" statement_identifier : (if_statement "if (iVar3 != 0) goto LAB_001f4d51;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001f4d51;" goto statement_identifier ;))) (labeled_statement "LAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);" statement_identifier : (expression_statement "pbVar13 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar13 = *(byte **)(param_1 + 0xc)" identifier = (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;)) (expression_statement "bVar10 = *pbVar13;" (assignment_expression "bVar10 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) (goto_statement "goto LAB_001f4d6e;" goto statement_identifier ;) })) (if_statement "if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }" if (parenthesized_expression "((byte)(cVar14 + 0x9fU) < 0x1a)" ( (binary_expression "(byte)(cVar14 + 0x9fU) < 0x1a" (call_expression "(byte)(cVar14 + 0x9fU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar14 + 0x9fU)" ( (binary_expression "cVar14 + 0x9fU" identifier + number_literal) ))) < number_literal) )) (compound_statement "{\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }" { (labeled_statement "LAB_001f4d3d:\n            iVar5 = FUN_001f46f0();" statement_identifier : (expression_statement "iVar5 = FUN_001f46f0();" (assignment_expression "iVar5 = FUN_001f46f0()" identifier = (call_expression "FUN_001f46f0()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar3 != 0) goto LAB_001f4d51;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001f4d51;" goto statement_identifier ;)) }) (else_clause "else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }" else (compound_statement "{\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }" { (if_statement "if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }" if (parenthesized_expression "(cVar14 == 'U')" ( (binary_expression "cVar14 == 'U'" identifier == (char_literal "'U'" ' character ')) )) (compound_statement "{\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }" { (expression_statement "iVar5 = FUN_001f46f0();" (assignment_expression "iVar5 = FUN_001f46f0()" identifier = (call_expression "FUN_001f46f0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) goto LAB_001f4f24;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001f4f24;" goto statement_identifier ;)) (goto_statement "goto LAB_001f4d51;" goto statement_identifier ;) })) (if_statement "if (cVar14 != 'S') goto LAB_001f5000;" if (parenthesized_expression "(cVar14 != 'S')" ( (binary_expression "cVar14 != 'S'" identifier != (char_literal "'S'" ' character ')) )) (goto_statement "goto LAB_001f5000;" goto statement_identifier ;)) (expression_statement "iVar5 = FUN_001eccd0();" (assignment_expression "iVar5 = FUN_001eccd0()" identifier = (call_expression "FUN_001eccd0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }" { (expression_statement "pbVar12 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar12 = *(byte **)(param_1 + 0xc)" identifier = (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = (uint)*pbVar12;" (assignment_expression "uVar8 = (uint)*pbVar12" identifier = (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "iVar3 = iVar5;" (assignment_expression "iVar3 = iVar5" identifier = identifier) ;) (goto_statement "goto LAB_001f4d13;" goto statement_identifier ;) })) (labeled_statement "LAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);" statement_identifier : (expression_statement "iVar5 = FUN_001ec770(iVar5);" (assignment_expression "iVar5 = FUN_001ec770(iVar5)" identifier = (call_expression "FUN_001ec770(iVar5)" identifier (argument_list "(iVar5)" ( identifier )))) ;)) }))) (expression_statement "pbVar13 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar13 = *(byte **)(param_1 + 0xc)" identifier = (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "bVar10 = *pbVar13;" (assignment_expression "bVar10 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) (expression_statement "pbVar12 = pbVar13;" (assignment_expression "pbVar12 = pbVar13" identifier = identifier) ;) (if_statement "if (cVar14 == 'S') goto LAB_001f4d92;" if (parenthesized_expression "(cVar14 == 'S')" ( (binary_expression "cVar14 == 'S'" identifier == (char_literal "'S'" ' character ')) )) (goto_statement "goto LAB_001f4d92;" goto statement_identifier ;)) (labeled_statement "LAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;" statement_identifier : (if_statement "if (bVar10 != 0x45) goto code_r0x001f4d77;" if (parenthesized_expression "(bVar10 != 0x45)" ( (binary_expression "bVar10 != 0x45" identifier != number_literal) )) (goto_statement "goto code_r0x001f4d77;" goto statement_identifier ;))) (expression_statement "uVar8 = 0x45;" (assignment_expression "uVar8 = 0x45" identifier = number_literal) ;) (expression_statement "iVar3 = iVar5;" (assignment_expression "iVar3 = iVar5" identifier = identifier) ;) (goto_statement "goto LAB_001f4d24;" goto statement_identifier ;) }))) (labeled_statement "LAB_001f4da0:\n        *piVar1 = 0;" statement_identifier : (expression_statement "*piVar1 = 0;" (assignment_expression "*piVar1 = 0" (pointer_expression "*piVar1" * identifier) = number_literal) ;)) })) }) (else_clause "else {\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }" else (compound_statement "{\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }" { (if_statement "if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }" if (parenthesized_expression "(cVar14 == 'U')" ( (binary_expression "cVar14 == 'U'" identifier == (char_literal "'U'" ' character ')) )) (compound_statement "{\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }" { (expression_statement "iVar3 = FUN_001f46f0();" (assignment_expression "iVar3 = FUN_001f46f0()" identifier = (call_expression "FUN_001f46f0()" identifier (argument_list "()" ( )))) ;) (return_statement "return iVar3;" return identifier ;) })) (if_statement "if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }" if (parenthesized_expression "(cVar14 == 'Z')" ( (binary_expression "cVar14 == 'Z'" identifier == (char_literal "'Z'" ' character ')) )) (compound_statement "{\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }" { (expression_statement "*(char **)(param_1 + 0xc) = pcVar6 + 1;" (assignment_expression "*(char **)(param_1 + 0xc) = pcVar6 + 1" (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "piVar1 = (int *)FUN_001f5180();" (assignment_expression "piVar1 = (int *)FUN_001f5180()" identifier = (cast_expression "(int *)FUN_001f5180()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001f5180()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }" if (parenthesized_expression "((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E'))" ( (binary_expression "(piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')" (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')" ( (comma_expression "pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E'" (assignment_expression "pcVar6 = *(char **)(param_1 + 0xc)" identifier = (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) , (binary_expression "*pcVar6 == 'E'" (pointer_expression "*pcVar6" * identifier) == (char_literal "'E'" ' character '))) ))) )) (compound_statement "{\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }" { (expression_statement "*(char **)(param_1 + 0xc) = pcVar6 + 1;" (assignment_expression "*(char **)(param_1 + 0xc) = pcVar6 + 1" (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (if_statement "if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }" if (parenthesized_expression "(pcVar6[1] == 's')" ( (binary_expression "pcVar6[1] == 's'" (subscript_expression "pcVar6[1]" identifier [ number_literal ]) == (char_literal "'s'" ' character ')) )) (compound_statement "{\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }" { (expression_statement "*(char **)(param_1 + 0xc) = pcVar6 + 2;" (assignment_expression "*(char **)(param_1 + 0xc) = pcVar6 + 2" (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar6 + 2" identifier + number_literal)) ;) (expression_statement "iVar3 = FUN_001ecfa0();" (assignment_expression "iVar3 = FUN_001ecfa0()" identifier = (call_expression "FUN_001ecfa0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }" { (expression_statement "iVar3 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x14)" identifier = (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }" if (parenthesized_expression "(iVar3 < *(int *)(param_1 + 0x18))" ( (binary_expression "iVar3 < *(int *)(param_1 + 0x18)" identifier < (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }" { (expression_statement "*(int *)(param_1 + 0x14) = iVar3 + 1;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar3 + 1" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));" (assignment_expression "puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" identifier = (cast_expression "(uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" ( (binary_expression "iVar3 * 0x10 + *(int *)(param_1 + 0x10)" (binary_expression "iVar3 * 0x10" identifier * number_literal) + (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) )))) ;) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (expression_statement "puVar2[2] = (uint)"string literal";" (assignment_expression "puVar2[2] = (uint)"string literal"" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = (cast_expression "(uint)"string literal"" ( (type_descriptor "uint" type_identifier) ) (string_literal ""string literal"" " string_content "))) ;) (expression_statement "puVar2[3] = 0xe;" (assignment_expression "puVar2[3] = 0xe" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_001f4ca4;" goto statement_identifier ;) })) (labeled_statement "LAB_001f514b:\n              puVar2 = (uint *)0x0;" statement_identifier : (expression_statement "puVar2 = (uint *)0x0;" (assignment_expression "puVar2 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (labeled_statement "LAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }" statement_identifier : (if_statement "if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }" if (parenthesized_expression "((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29))" ( (binary_expression "(*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)" (parenthesized_expression "(*piVar1 == 3)" ( (binary_expression "*piVar1 == 3" (pointer_expression "*piVar1" * identifier) == number_literal) )) && (parenthesized_expression "(*(int *)piVar1[3] == 0x29)" ( (binary_expression "*(int *)piVar1[3] == 0x29" (pointer_expression "*(int *)piVar1[3]" * (cast_expression "(int *)piVar1[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar1[3]" identifier [ number_literal ]))) == number_literal) ))) )) (compound_statement "{\n                ((int *)piVar1[3])[2] = 0;\n              }" { (expression_statement "((int *)piVar1[3])[2] = 0;" (assignment_expression "((int *)piVar1[3])[2] = 0" (subscript_expression "((int *)piVar1[3])[2]" (parenthesized_expression "((int *)piVar1[3])" ( (cast_expression "(int *)piVar1[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar1[3]" identifier [ number_literal ])) )) [ number_literal ]) = number_literal) ;) }))) (expression_statement "iVar3 = FUN_001ec770(puVar2);" (assignment_expression "iVar3 = FUN_001ec770(puVar2)" identifier = (call_expression "FUN_001ec770(puVar2)" identifier (argument_list "(puVar2)" ( identifier )))) ;) (return_statement "return iVar3;" return identifier ;) })) }) (else_clause "else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }" else (if_statement "if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }" if (parenthesized_expression "(pcVar6[1] == 'd')" ( (binary_expression "pcVar6[1] == 'd'" (subscript_expression "pcVar6[1]" identifier [ number_literal ]) == (char_literal "'d'" ' character ')) )) (compound_statement "{\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }" { (expression_statement "*(char **)(param_1 + 0xc) = pcVar6 + 2;" (assignment_expression "*(char **)(param_1 + 0xc) = pcVar6 + 2" (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar6 + 2" identifier + number_literal)) ;) (expression_statement "uVar8 = FUN_001eca60();" (assignment_expression "uVar8 = FUN_001eca60()" identifier = (call_expression "FUN_001eca60()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }" if (parenthesized_expression "((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0))))" ( (binary_expression "(-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))" (parenthesized_expression "(-1 < (int)uVar8)" ( (binary_expression "-1 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))" ( (parenthesized_expression "((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0))" ( (binary_expression "(puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)" (parenthesized_expression "(puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45))" ( (comma_expression "puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)" (assignment_expression "puVar9 = (uint *)FUN_001f4c10()" identifier = (cast_expression "(uint *)FUN_001f4c10()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001f4c10()" identifier (argument_list "()" ( ))))) , (binary_expression "puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)" (binary_expression "puVar9 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "((*puVar9 & 0xfffffffd) == 0x45)" ( (binary_expression "(*puVar9 & 0xfffffffd) == 0x45" (parenthesized_expression "(*puVar9 & 0xfffffffd)" ( (binary_expression "*puVar9 & 0xfffffffd" (pointer_expression "*puVar9" * identifier) & number_literal) )) == number_literal) )))) )) || (parenthesized_expression "(iVar3 = FUN_001ecfa0(), iVar3 != 0)" ( (comma_expression "iVar3 = FUN_001ecfa0(), iVar3 != 0" (assignment_expression "iVar3 = FUN_001ecfa0()" identifier = (call_expression "FUN_001ecfa0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }" { (expression_statement "iVar3 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x14)" identifier = (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }" if (parenthesized_expression "(iVar3 < *(int *)(param_1 + 0x18))" ( (binary_expression "iVar3 < *(int *)(param_1 + 0x18)" identifier < (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }" { (expression_statement "puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));" (assignment_expression "puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" identifier = (cast_expression "(uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" ( (binary_expression "iVar3 * 0x10 + *(int *)(param_1 + 0x10)" (binary_expression "iVar3 * 0x10" identifier * number_literal) + (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) )))) ;) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x14) = iVar3 + 1;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar3 + 1" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "*puVar2 = 0x46;" (assignment_expression "*puVar2 = 0x46" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (expression_statement "puVar2[3] = uVar8;" (assignment_expression "puVar2[3] = uVar8" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[2] = (uint)puVar9;" (assignment_expression "puVar2[2] = (uint)puVar9" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_001f4ca4;" goto statement_identifier ;) })) (goto_statement "goto LAB_001f514b;" goto statement_identifier ;) })) }) (else_clause "else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }" else (compound_statement "{\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }" { (expression_statement "puVar2 = (uint *)FUN_001f4c10();" (assignment_expression "puVar2 = (uint *)FUN_001f4c10()" identifier = (cast_expression "(uint *)FUN_001f4c10()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001f4c10()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;" if (parenthesized_expression "(((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0))" ( (binary_expression "((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)" (parenthesized_expression "((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45))" ( (binary_expression "(puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)" (parenthesized_expression "(puVar2 == (uint *)0x0)" ( (binary_expression "puVar2 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((*puVar2 & 0xfffffffd) == 0x45)" ( (binary_expression "(*puVar2 & 0xfffffffd) == 0x45" (parenthesized_expression "(*puVar2 & 0xfffffffd)" ( (binary_expression "*puVar2 & 0xfffffffd" (pointer_expression "*puVar2" * identifier) & number_literal) )) == number_literal) ))) )) || (parenthesized_expression "(iVar3 = FUN_001ecfa0(), iVar3 != 0)" ( (comma_expression "iVar3 = FUN_001ecfa0(), iVar3 != 0" (assignment_expression "iVar3 = FUN_001ecfa0()" identifier = (call_expression "FUN_001ecfa0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_001f4ca4;" goto statement_identifier ;)) }))))) })) }) (else_clause "else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }" else (compound_statement "{\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }" { (labeled_statement "LAB_001f4e00:\n        iVar3 = FUN_001f46f0();" statement_identifier : (expression_statement "iVar3 = FUN_001f46f0();" (assignment_expression "iVar3 = FUN_001f46f0()" identifier = (call_expression "FUN_001f46f0()" identifier (argument_list "()" ( )))) ;)) (expression_statement "pcVar6 = *(char **)(param_1 + 0xc);" (assignment_expression "pcVar6 = *(char **)(param_1 + 0xc)" identifier = (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar6 != 'I') {\n          return iVar3;\n        }" if (parenthesized_expression "(*pcVar6 != 'I')" ( (binary_expression "*pcVar6 != 'I'" (pointer_expression "*pcVar6" * identifier) != (char_literal "'I'" ' character ')) )) (compound_statement "{\n          return iVar3;\n        }" { (return_statement "return iVar3;" return identifier ;) })) (if_statement "if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }" if (parenthesized_expression "((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24)))" ( (binary_expression "(iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))" ( (comma_expression "iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24)" (assignment_expression "iVar4 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) , (binary_expression "iVar4 < *(int *)(param_1 + 0x24)" identifier < (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))))) ))) )) (compound_statement "{\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }" { (expression_statement "*(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;" (assignment_expression "*(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3" (pointer_expression "*(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4)" * (cast_expression "(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x1c) + iVar4 * 4)" ( (binary_expression "*(int *)(param_1 + 0x1c) + iVar4 * 4" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x20) = iVar4 + 1;" (assignment_expression "*(int *)(param_1 + 0x20) = iVar4 + 1" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (if_statement "if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }" if (parenthesized_expression "((byte)(*pcVar6 + 0xb7U) < 2)" ( (binary_expression "(byte)(*pcVar6 + 0xb7U) < 2" (call_expression "(byte)(*pcVar6 + 0xb7U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pcVar6 + 0xb7U)" ( (binary_expression "*pcVar6 + 0xb7U" (pointer_expression "*pcVar6" * identifier) + number_literal) ))) < number_literal) )) (compound_statement "{\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }" { (expression_statement "*(char **)(param_1 + 0xc) = pcVar6 + 1;" (assignment_expression "*(char **)(param_1 + 0xc) = pcVar6 + 1" (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "uVar7 = FUN_001f5c00();" (assignment_expression "uVar7 = FUN_001f5c00()" identifier = (call_expression "FUN_001f5c00()" identifier (argument_list "()" ( )))) ;) })) (goto_statement "goto LAB_001f4de2;" goto statement_identifier ;) })) }))) }))) (labeled_statement "LAB_001f4da6:\n    iVar3 = 0;" statement_identifier : (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;)) }))) (return_statement "return iVar3;" return identifier ;) (labeled_statement "code_r0x001f4d77:\n  if ((iVar5 == 0) || (iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3))\n  goto LAB_001f4da0;" statement_identifier : (if_statement "if ((iVar5 == 0) || (iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3))\n  goto LAB_001f4da0;" if (parenthesized_expression "((iVar5 == 0) || (iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3))" ( (binary_expression "(iVar5 == 0) || (iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3)" ( (comma_expression "iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3" (assignment_expression "iVar3 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) , (binary_expression "*(int *)(param_1 + 0x24) <= iVar3" (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) <= identifier)) ))) )) (goto_statement "goto LAB_001f4da0;" goto statement_identifier ;))) (expression_statement "*(int *)(*(int *)(param_1 + 0x1c) + iVar3 * 4) = iVar5;" (assignment_expression "*(int *)(*(int *)(param_1 + 0x1c) + iVar3 * 4) = iVar5" (pointer_expression "*(int *)(*(int *)(param_1 + 0x1c) + iVar3 * 4)" * (cast_expression "(int *)(*(int *)(param_1 + 0x1c) + iVar3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x1c) + iVar3 * 4)" ( (binary_expression "*(int *)(param_1 + 0x1c) + iVar3 * 4" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + (binary_expression "iVar3 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x20) = iVar3 + 1;" (assignment_expression "*(int *)(param_1 + 0x20) = iVar3 + 1" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "bVar10 = *pbVar13;" (assignment_expression "bVar10 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) (expression_statement "pbVar12 = pbVar13;" (assignment_expression "pbVar12 = pbVar13" identifier = identifier) ;) (labeled_statement "LAB_001f4d92:\n  uVar8 = (uint)bVar10;" statement_identifier : (expression_statement "uVar8 = (uint)bVar10;" (assignment_expression "uVar8 = (uint)bVar10" identifier = (cast_expression "(uint)bVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "iVar3 = iVar5;" (assignment_expression "iVar3 = iVar5" identifier = identifier) ;) (goto_statement "goto LAB_001f4d13;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\ndemangle_component * __regparm3 d_name(d_info *di)\n\n{\n  demangle_component *pdVar1;\n  demangle_component *pdVar2;\n  demangle_component **ppdVar3;\n  char *pcVar4;\n  demangle_component *pdVar5;\n  int iVar6;\n  int iVar7;\n  byte bVar8;\n  byte *pbVar9;\n  demangle_component_type type;\n  byte *pbVar10;\n  char cVar11;\n  uint uVar12;\n  d_info *in_stack_ffffffc4;\n  demangle_component *ret;\n  \n  pcVar4 = di->n;\n  cVar11 = *pcVar4;\n  if (cVar11 == 'S') {\n    if (pcVar4[1] == 't') {\n      di->n = pcVar4 + 2;\n      pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n      iVar6 = di->next_comp;\n      if (iVar6 < di->num_comps) {\n        di->next_comp = iVar6 + 1;\n        pdVar2 = di->comps + iVar6;\n        pdVar2->d_printing = 0;\n        pdVar2->type = DEMANGLE_COMPONENT_NAME;\n        (pdVar2->u).s_name.s = "std";\n        (pdVar2->u).s_name.len = 3;\n      }\n      else {\n        pdVar2 = (demangle_component *)0x0;\n      }\n      pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_QUAL_NAME,pdVar2,pdVar1);\n      di->expansion = di->expansion + 3;\n      pcVar4 = di->n;\n      if (*pcVar4 != 'I') {\n        return pdVar1;\n      }\n      if ((pdVar1 == (demangle_component *)0x0) || (iVar6 = di->next_sub, di->num_subs <= iVar6))\n      goto LAB_001f4da6;\n      di->subs[iVar6] = pdVar1;\n      di->next_sub = iVar6 + 1;\n      if ((byte)(*pcVar4 + 0xb7U) < 2) goto LAB_001f4dd5;\n      pdVar2 = (demangle_component *)0x0;\n    }\n    else {\n      pdVar1 = d_substitution(di,0);\n      pcVar4 = di->n;\n      if (*pcVar4 != 'I') {\n        return pdVar1;\n      }\nLAB_001f4dd5:\n      di->n = pcVar4 + 1;\n      pdVar2 = d_template_args_1(di);\n    }\nLAB_001f4de2:\n    pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar1,pdVar2);\n  }\n  else {\n    if (cVar11 < 'T') {\n      if (cVar11 != 'N') goto LAB_001f4e00;\n      di->n = pcVar4 + 1;\n      ppdVar3 = d_cv_qualifiers(di,&ret,1);\n      if (ppdVar3 != (demangle_component **)0x0) {\n        pdVar2 = d_ref_qualifier(di,(demangle_component *)0x0);\n        pbVar9 = (byte *)di->n;\n        uVar12 = (uint)*pbVar9;\n        pdVar1 = (demangle_component *)0x0;\nLAB_001f4d13:\n        if ((char)uVar12 != '\0') {\n          pbVar10 = pbVar9;\n          if ((char)uVar12 == 'D') {\n            cVar11 = 'D';\n            if ((pbVar9[1] & 0xdf) == 0x54) {\n              pdVar5 = cplus_demangle_type(di);\n              goto LAB_001f4f17;\n            }\n            pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n            goto LAB_001f4f17;\n          }\n          do {\n            cVar11 = (char)uVar12;\n            if ((byte)(uVar12 - 0x30) < 0x1d) {\n              if ((0x100803ffU >> (uVar12 - 0x30 & 0x1f) & 1) == 0) {\nLAB_001f5000:\n                if (cVar11 == 'I') {\n                  if (pdVar1 == (demangle_component *)0x0) break;\n                  di->n = (char *)(pbVar10 + 1);\n                  pdVar5 = d_template_args_1(di);\n                  type = DEMANGLE_COMPONENT_TEMPLATE;\n                }\n                else {\n                  if (cVar11 != 'T') {\n                    if (cVar11 == 'E') {\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }\n                    if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;\n                    pbVar9 = pbVar10 + 1;\n                    di->n = (char *)pbVar9;\n                    uVar12 = (uint)pbVar10[1];\n                    goto LAB_001f4d13;\n                  }\n                  pdVar5 = d_template_param(di);\nLAB_001f4f17:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  if (pdVar1 == (demangle_component *)0x0) goto LAB_001f4f24;\n                }\nLAB_001f4d51:\n                pdVar5 = d_make_comp(di,type,pdVar1,pdVar5);\n              }\n              else {\nLAB_001f4d3d:\n                pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n                if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\n              }\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n              pbVar9 = pbVar10;\n              if (cVar11 == 'S') goto LAB_001f4d92;\n            }\n            else {\n              if ((byte)(cVar11 + 0x9fU) < 0x1a) goto LAB_001f4d3d;\n              if (cVar11 != 'U') {\n                if (cVar11 != 'S') goto LAB_001f5000;\n                pdVar5 = d_substitution(di,1);\n                if (pdVar1 != (demangle_component *)0x0) {\nLAB_001f4d4c:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  goto LAB_001f4d51;\n                }\n                pbVar9 = (byte *)di->n;\n                uVar12 = (uint)*pbVar9;\n                pdVar1 = pdVar5;\n                goto LAB_001f4d13;\n              }\n              pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n              if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\nLAB_001f4f24:\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n            }\n            if (bVar8 != 0x45) goto code_r0x001f4d77;\n            uVar12 = 0x45;\n            pdVar1 = pdVar5;\n          } while( true );\n        }\n        goto LAB_001f4da0;\n      }\n    }\n    else {\n      if (cVar11 == 'U') {\n        pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n        return pdVar1;\n      }\n      if (cVar11 == 'Z') {\n        di->n = pcVar4 + 1;\n        pdVar1 = d_encoding(di,0);\n        if ((pdVar1 != (demangle_component *)0x0) && (pcVar4 = di->n, *pcVar4 == 'E')) {\n          di->n = pcVar4 + 1;\n          if (pcVar4[1] == 's') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_discriminator(di);\n            if (iVar6 != 0) {\n              iVar6 = di->next_comp;\n              if (iVar6 < di->num_comps) {\n                di->next_comp = iVar6 + 1;\n                pdVar2 = di->comps + iVar6;\n                pdVar2->d_printing = 0;\n                pdVar2->type = DEMANGLE_COMPONENT_NAME;\n                (pdVar2->u).s_name.s = "string literal";\n                (pdVar2->u).s_name.len = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              pdVar2 = (demangle_component *)0x0;\nLAB_001f4ca4:\n              if ((pdVar1->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                 (pdVar5 = (pdVar1->u).s_extended_operator.name,\n                 pdVar5->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                (pdVar5->u).s_name.s = (char *)0x0;\n              }\n              pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_LOCAL_NAME,pdVar1,pdVar2);\n              return pdVar1;\n            }\n          }\n          else if (pcVar4[1] == 'd') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_compact_number(di);\n            if ((-1 < iVar6) &&\n               (((pdVar5 = d_name(di), pdVar5 == (demangle_component *)0x0 ||\n                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n                (iVar7 = d_discriminator(di), iVar7 != 0)))) {\n              iVar7 = di->next_comp;\n              if (iVar7 < di->num_comps) {\n                pdVar2 = di->comps + iVar7;\n                pdVar2->d_printing = 0;\n                di->next_comp = iVar7 + 1;\n                pdVar2->type = DEMANGLE_COMPONENT_DEFAULT_ARG;\n                (pdVar2->u).s_name.len = iVar6;\n                (pdVar2->u).s_fixed.length = pdVar5;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            pdVar2 = d_name(di);\n            if (((pdVar2 == (demangle_component *)0x0) ||\n                ((pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n               (iVar6 = d_discriminator(di), iVar6 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n        pcVar4 = di->n;\n        if (*pcVar4 != 'I') {\n          return pdVar1;\n        }\n        if ((pdVar1 != (demangle_component *)0x0) && (iVar6 = di->next_sub, iVar6 < di->num_subs)) {\n          di->subs[iVar6] = pdVar1;\n          di->next_sub = iVar6 + 1;\n          pdVar2 = (demangle_component *)0x0;\n          if ((byte)(*pcVar4 + 0xb7U) < 2) {\n            di->n = pcVar4 + 1;\n            pdVar2 = d_template_args_1(di);\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }\nLAB_001f4da6:\n    pdVar1 = (demangle_component *)0x0;\n  }\n  return pdVar1;\ncode_r0x001f4d77:\n  if ((pdVar5 == (demangle_component *)0x0) || (iVar6 = di->next_sub, di->num_subs <= iVar6))\n  goto LAB_001f4da0;\n  di->subs[iVar6] = pdVar5;\n  di->next_sub = iVar6 + 1;\n  bVar8 = *pbVar10;\n  pbVar9 = pbVar10;\nLAB_001f4d92:\n  uVar12 = (uint)bVar8;\n  pdVar1 = pdVar5;\n  goto LAB_001f4d13;\nLAB_001f4da0:\n  *ppdVar3 = (demangle_component *)0x0;\n  goto LAB_001f4da6;\n}\n\n" comment (ERROR "demangle_component * __regparm3 d_name(d_info *di)" (binary_expression "demangle_component * __regparm3 d_name(d_info *di)" identifier * (ERROR "__regparm3" identifier) (call_expression "d_name(d_info *di)" identifier (argument_list "(d_info *di)" ( (binary_expression "d_info *di" identifier * identifier) ))))) (compound_statement "{\n  demangle_component *pdVar1;\n  demangle_component *pdVar2;\n  demangle_component **ppdVar3;\n  char *pcVar4;\n  demangle_component *pdVar5;\n  int iVar6;\n  int iVar7;\n  byte bVar8;\n  byte *pbVar9;\n  demangle_component_type type;\n  byte *pbVar10;\n  char cVar11;\n  uint uVar12;\n  d_info *in_stack_ffffffc4;\n  demangle_component *ret;\n  \n  pcVar4 = di->n;\n  cVar11 = *pcVar4;\n  if (cVar11 == 'S') {\n    if (pcVar4[1] == 't') {\n      di->n = pcVar4 + 2;\n      pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n      iVar6 = di->next_comp;\n      if (iVar6 < di->num_comps) {\n        di->next_comp = iVar6 + 1;\n        pdVar2 = di->comps + iVar6;\n        pdVar2->d_printing = 0;\n        pdVar2->type = DEMANGLE_COMPONENT_NAME;\n        (pdVar2->u).s_name.s = "std";\n        (pdVar2->u).s_name.len = 3;\n      }\n      else {\n        pdVar2 = (demangle_component *)0x0;\n      }\n      pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_QUAL_NAME,pdVar2,pdVar1);\n      di->expansion = di->expansion + 3;\n      pcVar4 = di->n;\n      if (*pcVar4 != 'I') {\n        return pdVar1;\n      }\n      if ((pdVar1 == (demangle_component *)0x0) || (iVar6 = di->next_sub, di->num_subs <= iVar6))\n      goto LAB_001f4da6;\n      di->subs[iVar6] = pdVar1;\n      di->next_sub = iVar6 + 1;\n      if ((byte)(*pcVar4 + 0xb7U) < 2) goto LAB_001f4dd5;\n      pdVar2 = (demangle_component *)0x0;\n    }\n    else {\n      pdVar1 = d_substitution(di,0);\n      pcVar4 = di->n;\n      if (*pcVar4 != 'I') {\n        return pdVar1;\n      }\nLAB_001f4dd5:\n      di->n = pcVar4 + 1;\n      pdVar2 = d_template_args_1(di);\n    }\nLAB_001f4de2:\n    pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar1,pdVar2);\n  }\n  else {\n    if (cVar11 < 'T') {\n      if (cVar11 != 'N') goto LAB_001f4e00;\n      di->n = pcVar4 + 1;\n      ppdVar3 = d_cv_qualifiers(di,&ret,1);\n      if (ppdVar3 != (demangle_component **)0x0) {\n        pdVar2 = d_ref_qualifier(di,(demangle_component *)0x0);\n        pbVar9 = (byte *)di->n;\n        uVar12 = (uint)*pbVar9;\n        pdVar1 = (demangle_component *)0x0;\nLAB_001f4d13:\n        if ((char)uVar12 != '\0') {\n          pbVar10 = pbVar9;\n          if ((char)uVar12 == 'D') {\n            cVar11 = 'D';\n            if ((pbVar9[1] & 0xdf) == 0x54) {\n              pdVar5 = cplus_demangle_type(di);\n              goto LAB_001f4f17;\n            }\n            pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n            goto LAB_001f4f17;\n          }\n          do {\n            cVar11 = (char)uVar12;\n            if ((byte)(uVar12 - 0x30) < 0x1d) {\n              if ((0x100803ffU >> (uVar12 - 0x30 & 0x1f) & 1) == 0) {\nLAB_001f5000:\n                if (cVar11 == 'I') {\n                  if (pdVar1 == (demangle_component *)0x0) break;\n                  di->n = (char *)(pbVar10 + 1);\n                  pdVar5 = d_template_args_1(di);\n                  type = DEMANGLE_COMPONENT_TEMPLATE;\n                }\n                else {\n                  if (cVar11 != 'T') {\n                    if (cVar11 == 'E') {\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }\n                    if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;\n                    pbVar9 = pbVar10 + 1;\n                    di->n = (char *)pbVar9;\n                    uVar12 = (uint)pbVar10[1];\n                    goto LAB_001f4d13;\n                  }\n                  pdVar5 = d_template_param(di);\nLAB_001f4f17:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  if (pdVar1 == (demangle_component *)0x0) goto LAB_001f4f24;\n                }\nLAB_001f4d51:\n                pdVar5 = d_make_comp(di,type,pdVar1,pdVar5);\n              }\n              else {\nLAB_001f4d3d:\n                pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n                if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\n              }\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n              pbVar9 = pbVar10;\n              if (cVar11 == 'S') goto LAB_001f4d92;\n            }\n            else {\n              if ((byte)(cVar11 + 0x9fU) < 0x1a) goto LAB_001f4d3d;\n              if (cVar11 != 'U') {\n                if (cVar11 != 'S') goto LAB_001f5000;\n                pdVar5 = d_substitution(di,1);\n                if (pdVar1 != (demangle_component *)0x0) {\nLAB_001f4d4c:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  goto LAB_001f4d51;\n                }\n                pbVar9 = (byte *)di->n;\n                uVar12 = (uint)*pbVar9;\n                pdVar1 = pdVar5;\n                goto LAB_001f4d13;\n              }\n              pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n              if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\nLAB_001f4f24:\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n            }\n            if (bVar8 != 0x45) goto code_r0x001f4d77;\n            uVar12 = 0x45;\n            pdVar1 = pdVar5;\n          } while( true );\n        }\n        goto LAB_001f4da0;\n      }\n    }\n    else {\n      if (cVar11 == 'U') {\n        pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n        return pdVar1;\n      }\n      if (cVar11 == 'Z') {\n        di->n = pcVar4 + 1;\n        pdVar1 = d_encoding(di,0);\n        if ((pdVar1 != (demangle_component *)0x0) && (pcVar4 = di->n, *pcVar4 == 'E')) {\n          di->n = pcVar4 + 1;\n          if (pcVar4[1] == 's') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_discriminator(di);\n            if (iVar6 != 0) {\n              iVar6 = di->next_comp;\n              if (iVar6 < di->num_comps) {\n                di->next_comp = iVar6 + 1;\n                pdVar2 = di->comps + iVar6;\n                pdVar2->d_printing = 0;\n                pdVar2->type = DEMANGLE_COMPONENT_NAME;\n                (pdVar2->u).s_name.s = "string literal";\n                (pdVar2->u).s_name.len = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              pdVar2 = (demangle_component *)0x0;\nLAB_001f4ca4:\n              if ((pdVar1->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                 (pdVar5 = (pdVar1->u).s_extended_operator.name,\n                 pdVar5->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                (pdVar5->u).s_name.s = (char *)0x0;\n              }\n              pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_LOCAL_NAME,pdVar1,pdVar2);\n              return pdVar1;\n            }\n          }\n          else if (pcVar4[1] == 'd') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_compact_number(di);\n            if ((-1 < iVar6) &&\n               (((pdVar5 = d_name(di), pdVar5 == (demangle_component *)0x0 ||\n                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n                (iVar7 = d_discriminator(di), iVar7 != 0)))) {\n              iVar7 = di->next_comp;\n              if (iVar7 < di->num_comps) {\n                pdVar2 = di->comps + iVar7;\n                pdVar2->d_printing = 0;\n                di->next_comp = iVar7 + 1;\n                pdVar2->type = DEMANGLE_COMPONENT_DEFAULT_ARG;\n                (pdVar2->u).s_name.len = iVar6;\n                (pdVar2->u).s_fixed.length = pdVar5;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            pdVar2 = d_name(di);\n            if (((pdVar2 == (demangle_component *)0x0) ||\n                ((pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n               (iVar6 = d_discriminator(di), iVar6 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n        pcVar4 = di->n;\n        if (*pcVar4 != 'I') {\n          return pdVar1;\n        }\n        if ((pdVar1 != (demangle_component *)0x0) && (iVar6 = di->next_sub, iVar6 < di->num_subs)) {\n          di->subs[iVar6] = pdVar1;\n          di->next_sub = iVar6 + 1;\n          pdVar2 = (demangle_component *)0x0;\n          if ((byte)(*pcVar4 + 0xb7U) < 2) {\n            di->n = pcVar4 + 1;\n            pdVar2 = d_template_args_1(di);\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }\nLAB_001f4da6:\n    pdVar1 = (demangle_component *)0x0;\n  }\n  return pdVar1;\ncode_r0x001f4d77:\n  if ((pdVar5 == (demangle_component *)0x0) || (iVar6 = di->next_sub, di->num_subs <= iVar6))\n  goto LAB_001f4da0;\n  di->subs[iVar6] = pdVar5;\n  di->next_sub = iVar6 + 1;\n  bVar8 = *pbVar10;\n  pbVar9 = pbVar10;\nLAB_001f4d92:\n  uVar12 = (uint)bVar8;\n  pdVar1 = pdVar5;\n  goto LAB_001f4d13;\nLAB_001f4da0:\n  *ppdVar3 = (demangle_component *)0x0;\n  goto LAB_001f4da6;\n}" { (declaration "demangle_component *pdVar1;" type_identifier (pointer_declarator "*pdVar1" * identifier) ;) (declaration "demangle_component *pdVar2;" type_identifier (pointer_declarator "*pdVar2" * identifier) ;) (declaration "demangle_component **ppdVar3;" type_identifier (pointer_declarator "**ppdVar3" * (pointer_declarator "*ppdVar3" * identifier)) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "demangle_component *pdVar5;" type_identifier (pointer_declarator "*pdVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "demangle_component_type type;" type_identifier identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "d_info *in_stack_ffffffc4;" type_identifier (pointer_declarator "*in_stack_ffffffc4" * identifier) ;) (declaration "demangle_component *ret;" type_identifier (pointer_declarator "*ret" * identifier) ;) (expression_statement "pcVar4 = di->n;" (assignment_expression "pcVar4 = di->n" identifier = (field_expression "di->n" identifier -> field_identifier)) ;) (expression_statement "cVar11 = *pcVar4;" (assignment_expression "cVar11 = *pcVar4" identifier = (pointer_expression "*pcVar4" * identifier)) ;) (if_statement "if (cVar11 == 'S') {\n    if (pcVar4[1] == 't') {\n      di->n = pcVar4 + 2;\n      pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n      iVar6 = di->next_comp;\n      if (iVar6 < di->num_comps) {\n        di->next_comp = iVar6 + 1;\n        pdVar2 = di->comps + iVar6;\n        pdVar2->d_printing = 0;\n        pdVar2->type = DEMANGLE_COMPONENT_NAME;\n        (pdVar2->u).s_name.s = "std";\n        (pdVar2->u).s_name.len = 3;\n      }\n      else {\n        pdVar2 = (demangle_component *)0x0;\n      }\n      pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_QUAL_NAME,pdVar2,pdVar1);\n      di->expansion = di->expansion + 3;\n      pcVar4 = di->n;\n      if (*pcVar4 != 'I') {\n        return pdVar1;\n      }\n      if ((pdVar1 == (demangle_component *)0x0) || (iVar6 = di->next_sub, di->num_subs <= iVar6))\n      goto LAB_001f4da6;\n      di->subs[iVar6] = pdVar1;\n      di->next_sub = iVar6 + 1;\n      if ((byte)(*pcVar4 + 0xb7U) < 2) goto LAB_001f4dd5;\n      pdVar2 = (demangle_component *)0x0;\n    }\n    else {\n      pdVar1 = d_substitution(di,0);\n      pcVar4 = di->n;\n      if (*pcVar4 != 'I') {\n        return pdVar1;\n      }\nLAB_001f4dd5:\n      di->n = pcVar4 + 1;\n      pdVar2 = d_template_args_1(di);\n    }\nLAB_001f4de2:\n    pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar1,pdVar2);\n  }\n  else {\n    if (cVar11 < 'T') {\n      if (cVar11 != 'N') goto LAB_001f4e00;\n      di->n = pcVar4 + 1;\n      ppdVar3 = d_cv_qualifiers(di,&ret,1);\n      if (ppdVar3 != (demangle_component **)0x0) {\n        pdVar2 = d_ref_qualifier(di,(demangle_component *)0x0);\n        pbVar9 = (byte *)di->n;\n        uVar12 = (uint)*pbVar9;\n        pdVar1 = (demangle_component *)0x0;\nLAB_001f4d13:\n        if ((char)uVar12 != '\0') {\n          pbVar10 = pbVar9;\n          if ((char)uVar12 == 'D') {\n            cVar11 = 'D';\n            if ((pbVar9[1] & 0xdf) == 0x54) {\n              pdVar5 = cplus_demangle_type(di);\n              goto LAB_001f4f17;\n            }\n            pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n            goto LAB_001f4f17;\n          }\n          do {\n            cVar11 = (char)uVar12;\n            if ((byte)(uVar12 - 0x30) < 0x1d) {\n              if ((0x100803ffU >> (uVar12 - 0x30 & 0x1f) & 1) == 0) {\nLAB_001f5000:\n                if (cVar11 == 'I') {\n                  if (pdVar1 == (demangle_component *)0x0) break;\n                  di->n = (char *)(pbVar10 + 1);\n                  pdVar5 = d_template_args_1(di);\n                  type = DEMANGLE_COMPONENT_TEMPLATE;\n                }\n                else {\n                  if (cVar11 != 'T') {\n                    if (cVar11 == 'E') {\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }\n                    if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;\n                    pbVar9 = pbVar10 + 1;\n                    di->n = (char *)pbVar9;\n                    uVar12 = (uint)pbVar10[1];\n                    goto LAB_001f4d13;\n                  }\n                  pdVar5 = d_template_param(di);\nLAB_001f4f17:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  if (pdVar1 == (demangle_component *)0x0) goto LAB_001f4f24;\n                }\nLAB_001f4d51:\n                pdVar5 = d_make_comp(di,type,pdVar1,pdVar5);\n              }\n              else {\nLAB_001f4d3d:\n                pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n                if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\n              }\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n              pbVar9 = pbVar10;\n              if (cVar11 == 'S') goto LAB_001f4d92;\n            }\n            else {\n              if ((byte)(cVar11 + 0x9fU) < 0x1a) goto LAB_001f4d3d;\n              if (cVar11 != 'U') {\n                if (cVar11 != 'S') goto LAB_001f5000;\n                pdVar5 = d_substitution(di,1);\n                if (pdVar1 != (demangle_component *)0x0) {\nLAB_001f4d4c:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  goto LAB_001f4d51;\n                }\n                pbVar9 = (byte *)di->n;\n                uVar12 = (uint)*pbVar9;\n                pdVar1 = pdVar5;\n                goto LAB_001f4d13;\n              }\n              pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n              if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\nLAB_001f4f24:\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n            }\n            if (bVar8 != 0x45) goto code_r0x001f4d77;\n            uVar12 = 0x45;\n            pdVar1 = pdVar5;\n          } while( true );\n        }\n        goto LAB_001f4da0;\n      }\n    }\n    else {\n      if (cVar11 == 'U') {\n        pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n        return pdVar1;\n      }\n      if (cVar11 == 'Z') {\n        di->n = pcVar4 + 1;\n        pdVar1 = d_encoding(di,0);\n        if ((pdVar1 != (demangle_component *)0x0) && (pcVar4 = di->n, *pcVar4 == 'E')) {\n          di->n = pcVar4 + 1;\n          if (pcVar4[1] == 's') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_discriminator(di);\n            if (iVar6 != 0) {\n              iVar6 = di->next_comp;\n              if (iVar6 < di->num_comps) {\n                di->next_comp = iVar6 + 1;\n                pdVar2 = di->comps + iVar6;\n                pdVar2->d_printing = 0;\n                pdVar2->type = DEMANGLE_COMPONENT_NAME;\n                (pdVar2->u).s_name.s = "string literal";\n                (pdVar2->u).s_name.len = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              pdVar2 = (demangle_component *)0x0;\nLAB_001f4ca4:\n              if ((pdVar1->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                 (pdVar5 = (pdVar1->u).s_extended_operator.name,\n                 pdVar5->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                (pdVar5->u).s_name.s = (char *)0x0;\n              }\n              pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_LOCAL_NAME,pdVar1,pdVar2);\n              return pdVar1;\n            }\n          }\n          else if (pcVar4[1] == 'd') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_compact_number(di);\n            if ((-1 < iVar6) &&\n               (((pdVar5 = d_name(di), pdVar5 == (demangle_component *)0x0 ||\n                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n                (iVar7 = d_discriminator(di), iVar7 != 0)))) {\n              iVar7 = di->next_comp;\n              if (iVar7 < di->num_comps) {\n                pdVar2 = di->comps + iVar7;\n                pdVar2->d_printing = 0;\n                di->next_comp = iVar7 + 1;\n                pdVar2->type = DEMANGLE_COMPONENT_DEFAULT_ARG;\n                (pdVar2->u).s_name.len = iVar6;\n                (pdVar2->u).s_fixed.length = pdVar5;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            pdVar2 = d_name(di);\n            if (((pdVar2 == (demangle_component *)0x0) ||\n                ((pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n               (iVar6 = d_discriminator(di), iVar6 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n        pcVar4 = di->n;\n        if (*pcVar4 != 'I') {\n          return pdVar1;\n        }\n        if ((pdVar1 != (demangle_component *)0x0) && (iVar6 = di->next_sub, iVar6 < di->num_subs)) {\n          di->subs[iVar6] = pdVar1;\n          di->next_sub = iVar6 + 1;\n          pdVar2 = (demangle_component *)0x0;\n          if ((byte)(*pcVar4 + 0xb7U) < 2) {\n            di->n = pcVar4 + 1;\n            pdVar2 = d_template_args_1(di);\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }\nLAB_001f4da6:\n    pdVar1 = (demangle_component *)0x0;\n  }" if (parenthesized_expression "(cVar11 == 'S')" ( (binary_expression "cVar11 == 'S'" identifier == (char_literal "'S'" ' character ')) )) (compound_statement "{\n    if (pcVar4[1] == 't') {\n      di->n = pcVar4 + 2;\n      pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n      iVar6 = di->next_comp;\n      if (iVar6 < di->num_comps) {\n        di->next_comp = iVar6 + 1;\n        pdVar2 = di->comps + iVar6;\n        pdVar2->d_printing = 0;\n        pdVar2->type = DEMANGLE_COMPONENT_NAME;\n        (pdVar2->u).s_name.s = "std";\n        (pdVar2->u).s_name.len = 3;\n      }\n      else {\n        pdVar2 = (demangle_component *)0x0;\n      }\n      pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_QUAL_NAME,pdVar2,pdVar1);\n      di->expansion = di->expansion + 3;\n      pcVar4 = di->n;\n      if (*pcVar4 != 'I') {\n        return pdVar1;\n      }\n      if ((pdVar1 == (demangle_component *)0x0) || (iVar6 = di->next_sub, di->num_subs <= iVar6))\n      goto LAB_001f4da6;\n      di->subs[iVar6] = pdVar1;\n      di->next_sub = iVar6 + 1;\n      if ((byte)(*pcVar4 + 0xb7U) < 2) goto LAB_001f4dd5;\n      pdVar2 = (demangle_component *)0x0;\n    }\n    else {\n      pdVar1 = d_substitution(di,0);\n      pcVar4 = di->n;\n      if (*pcVar4 != 'I') {\n        return pdVar1;\n      }\nLAB_001f4dd5:\n      di->n = pcVar4 + 1;\n      pdVar2 = d_template_args_1(di);\n    }\nLAB_001f4de2:\n    pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar1,pdVar2);\n  }" { (if_statement "if (pcVar4[1] == 't') {\n      di->n = pcVar4 + 2;\n      pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n      iVar6 = di->next_comp;\n      if (iVar6 < di->num_comps) {\n        di->next_comp = iVar6 + 1;\n        pdVar2 = di->comps + iVar6;\n        pdVar2->d_printing = 0;\n        pdVar2->type = DEMANGLE_COMPONENT_NAME;\n        (pdVar2->u).s_name.s = "std";\n        (pdVar2->u).s_name.len = 3;\n      }\n      else {\n        pdVar2 = (demangle_component *)0x0;\n      }\n      pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_QUAL_NAME,pdVar2,pdVar1);\n      di->expansion = di->expansion + 3;\n      pcVar4 = di->n;\n      if (*pcVar4 != 'I') {\n        return pdVar1;\n      }\n      if ((pdVar1 == (demangle_component *)0x0) || (iVar6 = di->next_sub, di->num_subs <= iVar6))\n      goto LAB_001f4da6;\n      di->subs[iVar6] = pdVar1;\n      di->next_sub = iVar6 + 1;\n      if ((byte)(*pcVar4 + 0xb7U) < 2) goto LAB_001f4dd5;\n      pdVar2 = (demangle_component *)0x0;\n    }\n    else {\n      pdVar1 = d_substitution(di,0);\n      pcVar4 = di->n;\n      if (*pcVar4 != 'I') {\n        return pdVar1;\n      }\nLAB_001f4dd5:\n      di->n = pcVar4 + 1;\n      pdVar2 = d_template_args_1(di);\n    }" if (parenthesized_expression "(pcVar4[1] == 't')" ( (binary_expression "pcVar4[1] == 't'" (subscript_expression "pcVar4[1]" identifier [ number_literal ]) == (char_literal "'t'" ' character ')) )) (compound_statement "{\n      di->n = pcVar4 + 2;\n      pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n      iVar6 = di->next_comp;\n      if (iVar6 < di->num_comps) {\n        di->next_comp = iVar6 + 1;\n        pdVar2 = di->comps + iVar6;\n        pdVar2->d_printing = 0;\n        pdVar2->type = DEMANGLE_COMPONENT_NAME;\n        (pdVar2->u).s_name.s = "std";\n        (pdVar2->u).s_name.len = 3;\n      }\n      else {\n        pdVar2 = (demangle_component *)0x0;\n      }\n      pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_QUAL_NAME,pdVar2,pdVar1);\n      di->expansion = di->expansion + 3;\n      pcVar4 = di->n;\n      if (*pcVar4 != 'I') {\n        return pdVar1;\n      }\n      if ((pdVar1 == (demangle_component *)0x0) || (iVar6 = di->next_sub, di->num_subs <= iVar6))\n      goto LAB_001f4da6;\n      di->subs[iVar6] = pdVar1;\n      di->next_sub = iVar6 + 1;\n      if ((byte)(*pcVar4 + 0xb7U) < 2) goto LAB_001f4dd5;\n      pdVar2 = (demangle_component *)0x0;\n    }" { (expression_statement "di->n = pcVar4 + 2;" (assignment_expression "di->n = pcVar4 + 2" (field_expression "di->n" identifier -> field_identifier) = (binary_expression "pcVar4 + 2" identifier + number_literal)) ;) (expression_statement "pdVar1 = d_unqualified_name(in_stack_ffffffc4);" (assignment_expression "pdVar1 = d_unqualified_name(in_stack_ffffffc4)" identifier = (call_expression "d_unqualified_name(in_stack_ffffffc4)" identifier (argument_list "(in_stack_ffffffc4)" ( identifier )))) ;) (expression_statement "iVar6 = di->next_comp;" (assignment_expression "iVar6 = di->next_comp" identifier = (field_expression "di->next_comp" identifier -> field_identifier)) ;) (if_statement "if (iVar6 < di->num_comps) {\n        di->next_comp = iVar6 + 1;\n        pdVar2 = di->comps + iVar6;\n        pdVar2->d_printing = 0;\n        pdVar2->type = DEMANGLE_COMPONENT_NAME;\n        (pdVar2->u).s_name.s = "std";\n        (pdVar2->u).s_name.len = 3;\n      }\n      else {\n        pdVar2 = (demangle_component *)0x0;\n      }" if (parenthesized_expression "(iVar6 < di->num_comps)" ( (binary_expression "iVar6 < di->num_comps" identifier < (field_expression "di->num_comps" identifier -> field_identifier)) )) (compound_statement "{\n        di->next_comp = iVar6 + 1;\n        pdVar2 = di->comps + iVar6;\n        pdVar2->d_printing = 0;\n        pdVar2->type = DEMANGLE_COMPONENT_NAME;\n        (pdVar2->u).s_name.s = "std";\n        (pdVar2->u).s_name.len = 3;\n      }" { (expression_statement "di->next_comp = iVar6 + 1;" (assignment_expression "di->next_comp = iVar6 + 1" (field_expression "di->next_comp" identifier -> field_identifier) = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "pdVar2 = di->comps + iVar6;" (assignment_expression "pdVar2 = di->comps + iVar6" identifier = (binary_expression "di->comps + iVar6" (field_expression "di->comps" identifier -> field_identifier) + identifier)) ;) (expression_statement "pdVar2->d_printing = 0;" (assignment_expression "pdVar2->d_printing = 0" (field_expression "pdVar2->d_printing" identifier -> field_identifier) = number_literal) ;) (expression_statement "pdVar2->type = DEMANGLE_COMPONENT_NAME;" (assignment_expression "pdVar2->type = DEMANGLE_COMPONENT_NAME" (field_expression "pdVar2->type" identifier -> field_identifier) = identifier) ;) (expression_statement "(pdVar2->u).s_name.s = "std";" (assignment_expression "(pdVar2->u).s_name.s = "std"" (field_expression "(pdVar2->u).s_name.s" (field_expression "(pdVar2->u).s_name" (parenthesized_expression "(pdVar2->u)" ( (field_expression "pdVar2->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (string_literal ""std"" " string_content ")) ;) (expression_statement "(pdVar2->u).s_name.len = 3;" (assignment_expression "(pdVar2->u).s_name.len = 3" (field_expression "(pdVar2->u).s_name.len" (field_expression "(pdVar2->u).s_name" (parenthesized_expression "(pdVar2->u)" ( (field_expression "pdVar2->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) }) (else_clause "else {\n        pdVar2 = (demangle_component *)0x0;\n      }" else (compound_statement "{\n        pdVar2 = (demangle_component *)0x0;\n      }" { (expression_statement "pdVar2 = (demangle_component *)0x0;" (assignment_expression "pdVar2 = (demangle_component *)0x0" identifier = (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_QUAL_NAME,pdVar2,pdVar1);" (assignment_expression "pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_QUAL_NAME,pdVar2,pdVar1)" identifier = (call_expression "d_make_comp(di,DEMANGLE_COMPONENT_QUAL_NAME,pdVar2,pdVar1)" identifier (argument_list "(di,DEMANGLE_COMPONENT_QUAL_NAME,pdVar2,pdVar1)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "di->expansion = di->expansion + 3;" (assignment_expression "di->expansion = di->expansion + 3" (field_expression "di->expansion" identifier -> field_identifier) = (binary_expression "di->expansion + 3" (field_expression "di->expansion" identifier -> field_identifier) + number_literal)) ;) (expression_statement "pcVar4 = di->n;" (assignment_expression "pcVar4 = di->n" identifier = (field_expression "di->n" identifier -> field_identifier)) ;) (if_statement "if (*pcVar4 != 'I') {\n        return pdVar1;\n      }" if (parenthesized_expression "(*pcVar4 != 'I')" ( (binary_expression "*pcVar4 != 'I'" (pointer_expression "*pcVar4" * identifier) != (char_literal "'I'" ' character ')) )) (compound_statement "{\n        return pdVar1;\n      }" { (return_statement "return pdVar1;" return identifier ;) })) (if_statement "if ((pdVar1 == (demangle_component *)0x0) || (iVar6 = di->next_sub, di->num_subs <= iVar6))\n      goto LAB_001f4da6;" if (parenthesized_expression "((pdVar1 == (demangle_component *)0x0) || (iVar6 = di->next_sub, di->num_subs <= iVar6))" ( (binary_expression "(pdVar1 == (demangle_component *)0x0) || (iVar6 = di->next_sub, di->num_subs <= iVar6)" (parenthesized_expression "(pdVar1 == (demangle_component *)0x0)" ( (binary_expression "pdVar1 == (demangle_component *)0x0" identifier == (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar6 = di->next_sub, di->num_subs <= iVar6)" ( (comma_expression "iVar6 = di->next_sub, di->num_subs <= iVar6" (assignment_expression "iVar6 = di->next_sub" identifier = (field_expression "di->next_sub" identifier -> field_identifier)) , (binary_expression "di->num_subs <= iVar6" (field_expression "di->num_subs" identifier -> field_identifier) <= identifier)) ))) )) (goto_statement "goto LAB_001f4da6;" goto statement_identifier ;)) (expression_statement "di->subs[iVar6] = pdVar1;" (assignment_expression "di->subs[iVar6] = pdVar1" (subscript_expression "di->subs[iVar6]" (field_expression "di->subs" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "di->next_sub = iVar6 + 1;" (assignment_expression "di->next_sub = iVar6 + 1" (field_expression "di->next_sub" identifier -> field_identifier) = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (if_statement "if ((byte)(*pcVar4 + 0xb7U) < 2) goto LAB_001f4dd5;" if (parenthesized_expression "((byte)(*pcVar4 + 0xb7U) < 2)" ( (binary_expression "(byte)(*pcVar4 + 0xb7U) < 2" (call_expression "(byte)(*pcVar4 + 0xb7U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pcVar4 + 0xb7U)" ( (binary_expression "*pcVar4 + 0xb7U" (pointer_expression "*pcVar4" * identifier) + number_literal) ))) < number_literal) )) (goto_statement "goto LAB_001f4dd5;" goto statement_identifier ;)) (expression_statement "pdVar2 = (demangle_component *)0x0;" (assignment_expression "pdVar2 = (demangle_component *)0x0" identifier = (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      pdVar1 = d_substitution(di,0);\n      pcVar4 = di->n;\n      if (*pcVar4 != 'I') {\n        return pdVar1;\n      }\nLAB_001f4dd5:\n      di->n = pcVar4 + 1;\n      pdVar2 = d_template_args_1(di);\n    }" else (compound_statement "{\n      pdVar1 = d_substitution(di,0);\n      pcVar4 = di->n;\n      if (*pcVar4 != 'I') {\n        return pdVar1;\n      }\nLAB_001f4dd5:\n      di->n = pcVar4 + 1;\n      pdVar2 = d_template_args_1(di);\n    }" { (expression_statement "pdVar1 = d_substitution(di,0);" (assignment_expression "pdVar1 = d_substitution(di,0)" identifier = (call_expression "d_substitution(di,0)" identifier (argument_list "(di,0)" ( identifier , number_literal )))) ;) (expression_statement "pcVar4 = di->n;" (assignment_expression "pcVar4 = di->n" identifier = (field_expression "di->n" identifier -> field_identifier)) ;) (if_statement "if (*pcVar4 != 'I') {\n        return pdVar1;\n      }" if (parenthesized_expression "(*pcVar4 != 'I')" ( (binary_expression "*pcVar4 != 'I'" (pointer_expression "*pcVar4" * identifier) != (char_literal "'I'" ' character ')) )) (compound_statement "{\n        return pdVar1;\n      }" { (return_statement "return pdVar1;" return identifier ;) })) (labeled_statement "LAB_001f4dd5:\n      di->n = pcVar4 + 1;" statement_identifier : (expression_statement "di->n = pcVar4 + 1;" (assignment_expression "di->n = pcVar4 + 1" (field_expression "di->n" identifier -> field_identifier) = (binary_expression "pcVar4 + 1" identifier + number_literal)) ;)) (expression_statement "pdVar2 = d_template_args_1(di);" (assignment_expression "pdVar2 = d_template_args_1(di)" identifier = (call_expression "d_template_args_1(di)" identifier (argument_list "(di)" ( identifier )))) ;) }))) (labeled_statement "LAB_001f4de2:\n    pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar1,pdVar2);" statement_identifier : (expression_statement "pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar1,pdVar2);" (assignment_expression "pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar1,pdVar2)" identifier = (call_expression "d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar1,pdVar2)" identifier (argument_list "(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar1,pdVar2)" ( identifier , identifier , identifier , identifier )))) ;)) }) (else_clause "else {\n    if (cVar11 < 'T') {\n      if (cVar11 != 'N') goto LAB_001f4e00;\n      di->n = pcVar4 + 1;\n      ppdVar3 = d_cv_qualifiers(di,&ret,1);\n      if (ppdVar3 != (demangle_component **)0x0) {\n        pdVar2 = d_ref_qualifier(di,(demangle_component *)0x0);\n        pbVar9 = (byte *)di->n;\n        uVar12 = (uint)*pbVar9;\n        pdVar1 = (demangle_component *)0x0;\nLAB_001f4d13:\n        if ((char)uVar12 != '\0') {\n          pbVar10 = pbVar9;\n          if ((char)uVar12 == 'D') {\n            cVar11 = 'D';\n            if ((pbVar9[1] & 0xdf) == 0x54) {\n              pdVar5 = cplus_demangle_type(di);\n              goto LAB_001f4f17;\n            }\n            pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n            goto LAB_001f4f17;\n          }\n          do {\n            cVar11 = (char)uVar12;\n            if ((byte)(uVar12 - 0x30) < 0x1d) {\n              if ((0x100803ffU >> (uVar12 - 0x30 & 0x1f) & 1) == 0) {\nLAB_001f5000:\n                if (cVar11 == 'I') {\n                  if (pdVar1 == (demangle_component *)0x0) break;\n                  di->n = (char *)(pbVar10 + 1);\n                  pdVar5 = d_template_args_1(di);\n                  type = DEMANGLE_COMPONENT_TEMPLATE;\n                }\n                else {\n                  if (cVar11 != 'T') {\n                    if (cVar11 == 'E') {\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }\n                    if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;\n                    pbVar9 = pbVar10 + 1;\n                    di->n = (char *)pbVar9;\n                    uVar12 = (uint)pbVar10[1];\n                    goto LAB_001f4d13;\n                  }\n                  pdVar5 = d_template_param(di);\nLAB_001f4f17:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  if (pdVar1 == (demangle_component *)0x0) goto LAB_001f4f24;\n                }\nLAB_001f4d51:\n                pdVar5 = d_make_comp(di,type,pdVar1,pdVar5);\n              }\n              else {\nLAB_001f4d3d:\n                pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n                if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\n              }\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n              pbVar9 = pbVar10;\n              if (cVar11 == 'S') goto LAB_001f4d92;\n            }\n            else {\n              if ((byte)(cVar11 + 0x9fU) < 0x1a) goto LAB_001f4d3d;\n              if (cVar11 != 'U') {\n                if (cVar11 != 'S') goto LAB_001f5000;\n                pdVar5 = d_substitution(di,1);\n                if (pdVar1 != (demangle_component *)0x0) {\nLAB_001f4d4c:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  goto LAB_001f4d51;\n                }\n                pbVar9 = (byte *)di->n;\n                uVar12 = (uint)*pbVar9;\n                pdVar1 = pdVar5;\n                goto LAB_001f4d13;\n              }\n              pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n              if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\nLAB_001f4f24:\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n            }\n            if (bVar8 != 0x45) goto code_r0x001f4d77;\n            uVar12 = 0x45;\n            pdVar1 = pdVar5;\n          } while( true );\n        }\n        goto LAB_001f4da0;\n      }\n    }\n    else {\n      if (cVar11 == 'U') {\n        pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n        return pdVar1;\n      }\n      if (cVar11 == 'Z') {\n        di->n = pcVar4 + 1;\n        pdVar1 = d_encoding(di,0);\n        if ((pdVar1 != (demangle_component *)0x0) && (pcVar4 = di->n, *pcVar4 == 'E')) {\n          di->n = pcVar4 + 1;\n          if (pcVar4[1] == 's') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_discriminator(di);\n            if (iVar6 != 0) {\n              iVar6 = di->next_comp;\n              if (iVar6 < di->num_comps) {\n                di->next_comp = iVar6 + 1;\n                pdVar2 = di->comps + iVar6;\n                pdVar2->d_printing = 0;\n                pdVar2->type = DEMANGLE_COMPONENT_NAME;\n                (pdVar2->u).s_name.s = "string literal";\n                (pdVar2->u).s_name.len = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              pdVar2 = (demangle_component *)0x0;\nLAB_001f4ca4:\n              if ((pdVar1->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                 (pdVar5 = (pdVar1->u).s_extended_operator.name,\n                 pdVar5->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                (pdVar5->u).s_name.s = (char *)0x0;\n              }\n              pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_LOCAL_NAME,pdVar1,pdVar2);\n              return pdVar1;\n            }\n          }\n          else if (pcVar4[1] == 'd') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_compact_number(di);\n            if ((-1 < iVar6) &&\n               (((pdVar5 = d_name(di), pdVar5 == (demangle_component *)0x0 ||\n                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n                (iVar7 = d_discriminator(di), iVar7 != 0)))) {\n              iVar7 = di->next_comp;\n              if (iVar7 < di->num_comps) {\n                pdVar2 = di->comps + iVar7;\n                pdVar2->d_printing = 0;\n                di->next_comp = iVar7 + 1;\n                pdVar2->type = DEMANGLE_COMPONENT_DEFAULT_ARG;\n                (pdVar2->u).s_name.len = iVar6;\n                (pdVar2->u).s_fixed.length = pdVar5;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            pdVar2 = d_name(di);\n            if (((pdVar2 == (demangle_component *)0x0) ||\n                ((pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n               (iVar6 = d_discriminator(di), iVar6 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n        pcVar4 = di->n;\n        if (*pcVar4 != 'I') {\n          return pdVar1;\n        }\n        if ((pdVar1 != (demangle_component *)0x0) && (iVar6 = di->next_sub, iVar6 < di->num_subs)) {\n          di->subs[iVar6] = pdVar1;\n          di->next_sub = iVar6 + 1;\n          pdVar2 = (demangle_component *)0x0;\n          if ((byte)(*pcVar4 + 0xb7U) < 2) {\n            di->n = pcVar4 + 1;\n            pdVar2 = d_template_args_1(di);\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }\nLAB_001f4da6:\n    pdVar1 = (demangle_component *)0x0;\n  }" else (compound_statement "{\n    if (cVar11 < 'T') {\n      if (cVar11 != 'N') goto LAB_001f4e00;\n      di->n = pcVar4 + 1;\n      ppdVar3 = d_cv_qualifiers(di,&ret,1);\n      if (ppdVar3 != (demangle_component **)0x0) {\n        pdVar2 = d_ref_qualifier(di,(demangle_component *)0x0);\n        pbVar9 = (byte *)di->n;\n        uVar12 = (uint)*pbVar9;\n        pdVar1 = (demangle_component *)0x0;\nLAB_001f4d13:\n        if ((char)uVar12 != '\0') {\n          pbVar10 = pbVar9;\n          if ((char)uVar12 == 'D') {\n            cVar11 = 'D';\n            if ((pbVar9[1] & 0xdf) == 0x54) {\n              pdVar5 = cplus_demangle_type(di);\n              goto LAB_001f4f17;\n            }\n            pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n            goto LAB_001f4f17;\n          }\n          do {\n            cVar11 = (char)uVar12;\n            if ((byte)(uVar12 - 0x30) < 0x1d) {\n              if ((0x100803ffU >> (uVar12 - 0x30 & 0x1f) & 1) == 0) {\nLAB_001f5000:\n                if (cVar11 == 'I') {\n                  if (pdVar1 == (demangle_component *)0x0) break;\n                  di->n = (char *)(pbVar10 + 1);\n                  pdVar5 = d_template_args_1(di);\n                  type = DEMANGLE_COMPONENT_TEMPLATE;\n                }\n                else {\n                  if (cVar11 != 'T') {\n                    if (cVar11 == 'E') {\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }\n                    if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;\n                    pbVar9 = pbVar10 + 1;\n                    di->n = (char *)pbVar9;\n                    uVar12 = (uint)pbVar10[1];\n                    goto LAB_001f4d13;\n                  }\n                  pdVar5 = d_template_param(di);\nLAB_001f4f17:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  if (pdVar1 == (demangle_component *)0x0) goto LAB_001f4f24;\n                }\nLAB_001f4d51:\n                pdVar5 = d_make_comp(di,type,pdVar1,pdVar5);\n              }\n              else {\nLAB_001f4d3d:\n                pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n                if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\n              }\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n              pbVar9 = pbVar10;\n              if (cVar11 == 'S') goto LAB_001f4d92;\n            }\n            else {\n              if ((byte)(cVar11 + 0x9fU) < 0x1a) goto LAB_001f4d3d;\n              if (cVar11 != 'U') {\n                if (cVar11 != 'S') goto LAB_001f5000;\n                pdVar5 = d_substitution(di,1);\n                if (pdVar1 != (demangle_component *)0x0) {\nLAB_001f4d4c:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  goto LAB_001f4d51;\n                }\n                pbVar9 = (byte *)di->n;\n                uVar12 = (uint)*pbVar9;\n                pdVar1 = pdVar5;\n                goto LAB_001f4d13;\n              }\n              pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n              if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\nLAB_001f4f24:\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n            }\n            if (bVar8 != 0x45) goto code_r0x001f4d77;\n            uVar12 = 0x45;\n            pdVar1 = pdVar5;\n          } while( true );\n        }\n        goto LAB_001f4da0;\n      }\n    }\n    else {\n      if (cVar11 == 'U') {\n        pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n        return pdVar1;\n      }\n      if (cVar11 == 'Z') {\n        di->n = pcVar4 + 1;\n        pdVar1 = d_encoding(di,0);\n        if ((pdVar1 != (demangle_component *)0x0) && (pcVar4 = di->n, *pcVar4 == 'E')) {\n          di->n = pcVar4 + 1;\n          if (pcVar4[1] == 's') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_discriminator(di);\n            if (iVar6 != 0) {\n              iVar6 = di->next_comp;\n              if (iVar6 < di->num_comps) {\n                di->next_comp = iVar6 + 1;\n                pdVar2 = di->comps + iVar6;\n                pdVar2->d_printing = 0;\n                pdVar2->type = DEMANGLE_COMPONENT_NAME;\n                (pdVar2->u).s_name.s = "string literal";\n                (pdVar2->u).s_name.len = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              pdVar2 = (demangle_component *)0x0;\nLAB_001f4ca4:\n              if ((pdVar1->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                 (pdVar5 = (pdVar1->u).s_extended_operator.name,\n                 pdVar5->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                (pdVar5->u).s_name.s = (char *)0x0;\n              }\n              pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_LOCAL_NAME,pdVar1,pdVar2);\n              return pdVar1;\n            }\n          }\n          else if (pcVar4[1] == 'd') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_compact_number(di);\n            if ((-1 < iVar6) &&\n               (((pdVar5 = d_name(di), pdVar5 == (demangle_component *)0x0 ||\n                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n                (iVar7 = d_discriminator(di), iVar7 != 0)))) {\n              iVar7 = di->next_comp;\n              if (iVar7 < di->num_comps) {\n                pdVar2 = di->comps + iVar7;\n                pdVar2->d_printing = 0;\n                di->next_comp = iVar7 + 1;\n                pdVar2->type = DEMANGLE_COMPONENT_DEFAULT_ARG;\n                (pdVar2->u).s_name.len = iVar6;\n                (pdVar2->u).s_fixed.length = pdVar5;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            pdVar2 = d_name(di);\n            if (((pdVar2 == (demangle_component *)0x0) ||\n                ((pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n               (iVar6 = d_discriminator(di), iVar6 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n        pcVar4 = di->n;\n        if (*pcVar4 != 'I') {\n          return pdVar1;\n        }\n        if ((pdVar1 != (demangle_component *)0x0) && (iVar6 = di->next_sub, iVar6 < di->num_subs)) {\n          di->subs[iVar6] = pdVar1;\n          di->next_sub = iVar6 + 1;\n          pdVar2 = (demangle_component *)0x0;\n          if ((byte)(*pcVar4 + 0xb7U) < 2) {\n            di->n = pcVar4 + 1;\n            pdVar2 = d_template_args_1(di);\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }\nLAB_001f4da6:\n    pdVar1 = (demangle_component *)0x0;\n  }" { (if_statement "if (cVar11 < 'T') {\n      if (cVar11 != 'N') goto LAB_001f4e00;\n      di->n = pcVar4 + 1;\n      ppdVar3 = d_cv_qualifiers(di,&ret,1);\n      if (ppdVar3 != (demangle_component **)0x0) {\n        pdVar2 = d_ref_qualifier(di,(demangle_component *)0x0);\n        pbVar9 = (byte *)di->n;\n        uVar12 = (uint)*pbVar9;\n        pdVar1 = (demangle_component *)0x0;\nLAB_001f4d13:\n        if ((char)uVar12 != '\0') {\n          pbVar10 = pbVar9;\n          if ((char)uVar12 == 'D') {\n            cVar11 = 'D';\n            if ((pbVar9[1] & 0xdf) == 0x54) {\n              pdVar5 = cplus_demangle_type(di);\n              goto LAB_001f4f17;\n            }\n            pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n            goto LAB_001f4f17;\n          }\n          do {\n            cVar11 = (char)uVar12;\n            if ((byte)(uVar12 - 0x30) < 0x1d) {\n              if ((0x100803ffU >> (uVar12 - 0x30 & 0x1f) & 1) == 0) {\nLAB_001f5000:\n                if (cVar11 == 'I') {\n                  if (pdVar1 == (demangle_component *)0x0) break;\n                  di->n = (char *)(pbVar10 + 1);\n                  pdVar5 = d_template_args_1(di);\n                  type = DEMANGLE_COMPONENT_TEMPLATE;\n                }\n                else {\n                  if (cVar11 != 'T') {\n                    if (cVar11 == 'E') {\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }\n                    if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;\n                    pbVar9 = pbVar10 + 1;\n                    di->n = (char *)pbVar9;\n                    uVar12 = (uint)pbVar10[1];\n                    goto LAB_001f4d13;\n                  }\n                  pdVar5 = d_template_param(di);\nLAB_001f4f17:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  if (pdVar1 == (demangle_component *)0x0) goto LAB_001f4f24;\n                }\nLAB_001f4d51:\n                pdVar5 = d_make_comp(di,type,pdVar1,pdVar5);\n              }\n              else {\nLAB_001f4d3d:\n                pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n                if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\n              }\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n              pbVar9 = pbVar10;\n              if (cVar11 == 'S') goto LAB_001f4d92;\n            }\n            else {\n              if ((byte)(cVar11 + 0x9fU) < 0x1a) goto LAB_001f4d3d;\n              if (cVar11 != 'U') {\n                if (cVar11 != 'S') goto LAB_001f5000;\n                pdVar5 = d_substitution(di,1);\n                if (pdVar1 != (demangle_component *)0x0) {\nLAB_001f4d4c:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  goto LAB_001f4d51;\n                }\n                pbVar9 = (byte *)di->n;\n                uVar12 = (uint)*pbVar9;\n                pdVar1 = pdVar5;\n                goto LAB_001f4d13;\n              }\n              pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n              if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\nLAB_001f4f24:\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n            }\n            if (bVar8 != 0x45) goto code_r0x001f4d77;\n            uVar12 = 0x45;\n            pdVar1 = pdVar5;\n          } while( true );\n        }\n        goto LAB_001f4da0;\n      }\n    }\n    else {\n      if (cVar11 == 'U') {\n        pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n        return pdVar1;\n      }\n      if (cVar11 == 'Z') {\n        di->n = pcVar4 + 1;\n        pdVar1 = d_encoding(di,0);\n        if ((pdVar1 != (demangle_component *)0x0) && (pcVar4 = di->n, *pcVar4 == 'E')) {\n          di->n = pcVar4 + 1;\n          if (pcVar4[1] == 's') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_discriminator(di);\n            if (iVar6 != 0) {\n              iVar6 = di->next_comp;\n              if (iVar6 < di->num_comps) {\n                di->next_comp = iVar6 + 1;\n                pdVar2 = di->comps + iVar6;\n                pdVar2->d_printing = 0;\n                pdVar2->type = DEMANGLE_COMPONENT_NAME;\n                (pdVar2->u).s_name.s = "string literal";\n                (pdVar2->u).s_name.len = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              pdVar2 = (demangle_component *)0x0;\nLAB_001f4ca4:\n              if ((pdVar1->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                 (pdVar5 = (pdVar1->u).s_extended_operator.name,\n                 pdVar5->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                (pdVar5->u).s_name.s = (char *)0x0;\n              }\n              pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_LOCAL_NAME,pdVar1,pdVar2);\n              return pdVar1;\n            }\n          }\n          else if (pcVar4[1] == 'd') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_compact_number(di);\n            if ((-1 < iVar6) &&\n               (((pdVar5 = d_name(di), pdVar5 == (demangle_component *)0x0 ||\n                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n                (iVar7 = d_discriminator(di), iVar7 != 0)))) {\n              iVar7 = di->next_comp;\n              if (iVar7 < di->num_comps) {\n                pdVar2 = di->comps + iVar7;\n                pdVar2->d_printing = 0;\n                di->next_comp = iVar7 + 1;\n                pdVar2->type = DEMANGLE_COMPONENT_DEFAULT_ARG;\n                (pdVar2->u).s_name.len = iVar6;\n                (pdVar2->u).s_fixed.length = pdVar5;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            pdVar2 = d_name(di);\n            if (((pdVar2 == (demangle_component *)0x0) ||\n                ((pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n               (iVar6 = d_discriminator(di), iVar6 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n        pcVar4 = di->n;\n        if (*pcVar4 != 'I') {\n          return pdVar1;\n        }\n        if ((pdVar1 != (demangle_component *)0x0) && (iVar6 = di->next_sub, iVar6 < di->num_subs)) {\n          di->subs[iVar6] = pdVar1;\n          di->next_sub = iVar6 + 1;\n          pdVar2 = (demangle_component *)0x0;\n          if ((byte)(*pcVar4 + 0xb7U) < 2) {\n            di->n = pcVar4 + 1;\n            pdVar2 = d_template_args_1(di);\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }" if (parenthesized_expression "(cVar11 < 'T')" ( (binary_expression "cVar11 < 'T'" identifier < (char_literal "'T'" ' character ')) )) (compound_statement "{\n      if (cVar11 != 'N') goto LAB_001f4e00;\n      di->n = pcVar4 + 1;\n      ppdVar3 = d_cv_qualifiers(di,&ret,1);\n      if (ppdVar3 != (demangle_component **)0x0) {\n        pdVar2 = d_ref_qualifier(di,(demangle_component *)0x0);\n        pbVar9 = (byte *)di->n;\n        uVar12 = (uint)*pbVar9;\n        pdVar1 = (demangle_component *)0x0;\nLAB_001f4d13:\n        if ((char)uVar12 != '\0') {\n          pbVar10 = pbVar9;\n          if ((char)uVar12 == 'D') {\n            cVar11 = 'D';\n            if ((pbVar9[1] & 0xdf) == 0x54) {\n              pdVar5 = cplus_demangle_type(di);\n              goto LAB_001f4f17;\n            }\n            pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n            goto LAB_001f4f17;\n          }\n          do {\n            cVar11 = (char)uVar12;\n            if ((byte)(uVar12 - 0x30) < 0x1d) {\n              if ((0x100803ffU >> (uVar12 - 0x30 & 0x1f) & 1) == 0) {\nLAB_001f5000:\n                if (cVar11 == 'I') {\n                  if (pdVar1 == (demangle_component *)0x0) break;\n                  di->n = (char *)(pbVar10 + 1);\n                  pdVar5 = d_template_args_1(di);\n                  type = DEMANGLE_COMPONENT_TEMPLATE;\n                }\n                else {\n                  if (cVar11 != 'T') {\n                    if (cVar11 == 'E') {\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }\n                    if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;\n                    pbVar9 = pbVar10 + 1;\n                    di->n = (char *)pbVar9;\n                    uVar12 = (uint)pbVar10[1];\n                    goto LAB_001f4d13;\n                  }\n                  pdVar5 = d_template_param(di);\nLAB_001f4f17:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  if (pdVar1 == (demangle_component *)0x0) goto LAB_001f4f24;\n                }\nLAB_001f4d51:\n                pdVar5 = d_make_comp(di,type,pdVar1,pdVar5);\n              }\n              else {\nLAB_001f4d3d:\n                pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n                if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\n              }\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n              pbVar9 = pbVar10;\n              if (cVar11 == 'S') goto LAB_001f4d92;\n            }\n            else {\n              if ((byte)(cVar11 + 0x9fU) < 0x1a) goto LAB_001f4d3d;\n              if (cVar11 != 'U') {\n                if (cVar11 != 'S') goto LAB_001f5000;\n                pdVar5 = d_substitution(di,1);\n                if (pdVar1 != (demangle_component *)0x0) {\nLAB_001f4d4c:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  goto LAB_001f4d51;\n                }\n                pbVar9 = (byte *)di->n;\n                uVar12 = (uint)*pbVar9;\n                pdVar1 = pdVar5;\n                goto LAB_001f4d13;\n              }\n              pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n              if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\nLAB_001f4f24:\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n            }\n            if (bVar8 != 0x45) goto code_r0x001f4d77;\n            uVar12 = 0x45;\n            pdVar1 = pdVar5;\n          } while( true );\n        }\n        goto LAB_001f4da0;\n      }\n    }" { (if_statement "if (cVar11 != 'N') goto LAB_001f4e00;" if (parenthesized_expression "(cVar11 != 'N')" ( (binary_expression "cVar11 != 'N'" identifier != (char_literal "'N'" ' character ')) )) (goto_statement "goto LAB_001f4e00;" goto statement_identifier ;)) (expression_statement "di->n = pcVar4 + 1;" (assignment_expression "di->n = pcVar4 + 1" (field_expression "di->n" identifier -> field_identifier) = (binary_expression "pcVar4 + 1" identifier + number_literal)) ;) (expression_statement "ppdVar3 = d_cv_qualifiers(di,&ret,1);" (assignment_expression "ppdVar3 = d_cv_qualifiers(di,&ret,1)" identifier = (call_expression "d_cv_qualifiers(di,&ret,1)" identifier (argument_list "(di,&ret,1)" ( identifier , (pointer_expression "&ret" & identifier) , number_literal )))) ;) (if_statement "if (ppdVar3 != (demangle_component **)0x0) {\n        pdVar2 = d_ref_qualifier(di,(demangle_component *)0x0);\n        pbVar9 = (byte *)di->n;\n        uVar12 = (uint)*pbVar9;\n        pdVar1 = (demangle_component *)0x0;\nLAB_001f4d13:\n        if ((char)uVar12 != '\0') {\n          pbVar10 = pbVar9;\n          if ((char)uVar12 == 'D') {\n            cVar11 = 'D';\n            if ((pbVar9[1] & 0xdf) == 0x54) {\n              pdVar5 = cplus_demangle_type(di);\n              goto LAB_001f4f17;\n            }\n            pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n            goto LAB_001f4f17;\n          }\n          do {\n            cVar11 = (char)uVar12;\n            if ((byte)(uVar12 - 0x30) < 0x1d) {\n              if ((0x100803ffU >> (uVar12 - 0x30 & 0x1f) & 1) == 0) {\nLAB_001f5000:\n                if (cVar11 == 'I') {\n                  if (pdVar1 == (demangle_component *)0x0) break;\n                  di->n = (char *)(pbVar10 + 1);\n                  pdVar5 = d_template_args_1(di);\n                  type = DEMANGLE_COMPONENT_TEMPLATE;\n                }\n                else {\n                  if (cVar11 != 'T') {\n                    if (cVar11 == 'E') {\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }\n                    if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;\n                    pbVar9 = pbVar10 + 1;\n                    di->n = (char *)pbVar9;\n                    uVar12 = (uint)pbVar10[1];\n                    goto LAB_001f4d13;\n                  }\n                  pdVar5 = d_template_param(di);\nLAB_001f4f17:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  if (pdVar1 == (demangle_component *)0x0) goto LAB_001f4f24;\n                }\nLAB_001f4d51:\n                pdVar5 = d_make_comp(di,type,pdVar1,pdVar5);\n              }\n              else {\nLAB_001f4d3d:\n                pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n                if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\n              }\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n              pbVar9 = pbVar10;\n              if (cVar11 == 'S') goto LAB_001f4d92;\n            }\n            else {\n              if ((byte)(cVar11 + 0x9fU) < 0x1a) goto LAB_001f4d3d;\n              if (cVar11 != 'U') {\n                if (cVar11 != 'S') goto LAB_001f5000;\n                pdVar5 = d_substitution(di,1);\n                if (pdVar1 != (demangle_component *)0x0) {\nLAB_001f4d4c:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  goto LAB_001f4d51;\n                }\n                pbVar9 = (byte *)di->n;\n                uVar12 = (uint)*pbVar9;\n                pdVar1 = pdVar5;\n                goto LAB_001f4d13;\n              }\n              pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n              if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\nLAB_001f4f24:\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n            }\n            if (bVar8 != 0x45) goto code_r0x001f4d77;\n            uVar12 = 0x45;\n            pdVar1 = pdVar5;\n          } while( true );\n        }\n        goto LAB_001f4da0;\n      }" if (parenthesized_expression "(ppdVar3 != (demangle_component **)0x0)" ( (binary_expression "ppdVar3 != (demangle_component **)0x0" identifier != (cast_expression "(demangle_component **)0x0" ( (type_descriptor "demangle_component **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n        pdVar2 = d_ref_qualifier(di,(demangle_component *)0x0);\n        pbVar9 = (byte *)di->n;\n        uVar12 = (uint)*pbVar9;\n        pdVar1 = (demangle_component *)0x0;\nLAB_001f4d13:\n        if ((char)uVar12 != '\0') {\n          pbVar10 = pbVar9;\n          if ((char)uVar12 == 'D') {\n            cVar11 = 'D';\n            if ((pbVar9[1] & 0xdf) == 0x54) {\n              pdVar5 = cplus_demangle_type(di);\n              goto LAB_001f4f17;\n            }\n            pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n            goto LAB_001f4f17;\n          }\n          do {\n            cVar11 = (char)uVar12;\n            if ((byte)(uVar12 - 0x30) < 0x1d) {\n              if ((0x100803ffU >> (uVar12 - 0x30 & 0x1f) & 1) == 0) {\nLAB_001f5000:\n                if (cVar11 == 'I') {\n                  if (pdVar1 == (demangle_component *)0x0) break;\n                  di->n = (char *)(pbVar10 + 1);\n                  pdVar5 = d_template_args_1(di);\n                  type = DEMANGLE_COMPONENT_TEMPLATE;\n                }\n                else {\n                  if (cVar11 != 'T') {\n                    if (cVar11 == 'E') {\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }\n                    if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;\n                    pbVar9 = pbVar10 + 1;\n                    di->n = (char *)pbVar9;\n                    uVar12 = (uint)pbVar10[1];\n                    goto LAB_001f4d13;\n                  }\n                  pdVar5 = d_template_param(di);\nLAB_001f4f17:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  if (pdVar1 == (demangle_component *)0x0) goto LAB_001f4f24;\n                }\nLAB_001f4d51:\n                pdVar5 = d_make_comp(di,type,pdVar1,pdVar5);\n              }\n              else {\nLAB_001f4d3d:\n                pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n                if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\n              }\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n              pbVar9 = pbVar10;\n              if (cVar11 == 'S') goto LAB_001f4d92;\n            }\n            else {\n              if ((byte)(cVar11 + 0x9fU) < 0x1a) goto LAB_001f4d3d;\n              if (cVar11 != 'U') {\n                if (cVar11 != 'S') goto LAB_001f5000;\n                pdVar5 = d_substitution(di,1);\n                if (pdVar1 != (demangle_component *)0x0) {\nLAB_001f4d4c:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  goto LAB_001f4d51;\n                }\n                pbVar9 = (byte *)di->n;\n                uVar12 = (uint)*pbVar9;\n                pdVar1 = pdVar5;\n                goto LAB_001f4d13;\n              }\n              pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n              if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\nLAB_001f4f24:\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n            }\n            if (bVar8 != 0x45) goto code_r0x001f4d77;\n            uVar12 = 0x45;\n            pdVar1 = pdVar5;\n          } while( true );\n        }\n        goto LAB_001f4da0;\n      }" { (expression_statement "pdVar2 = d_ref_qualifier(di,(demangle_component *)0x0);" (assignment_expression "pdVar2 = d_ref_qualifier(di,(demangle_component *)0x0)" identifier = (call_expression "d_ref_qualifier(di,(demangle_component *)0x0)" identifier (argument_list "(di,(demangle_component *)0x0)" ( identifier , (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "pbVar9 = (byte *)di->n;" (assignment_expression "pbVar9 = (byte *)di->n" identifier = (cast_expression "(byte *)di->n" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "di->n" identifier -> field_identifier))) ;) (expression_statement "uVar12 = (uint)*pbVar9;" (assignment_expression "uVar12 = (uint)*pbVar9" identifier = (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pdVar1 = (demangle_component *)0x0;" (assignment_expression "pdVar1 = (demangle_component *)0x0" identifier = (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_001f4d13:\n        if ((char)uVar12 != '\0') {\n          pbVar10 = pbVar9;\n          if ((char)uVar12 == 'D') {\n            cVar11 = 'D';\n            if ((pbVar9[1] & 0xdf) == 0x54) {\n              pdVar5 = cplus_demangle_type(di);\n              goto LAB_001f4f17;\n            }\n            pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n            goto LAB_001f4f17;\n          }\n          do {\n            cVar11 = (char)uVar12;\n            if ((byte)(uVar12 - 0x30) < 0x1d) {\n              if ((0x100803ffU >> (uVar12 - 0x30 & 0x1f) & 1) == 0) {\nLAB_001f5000:\n                if (cVar11 == 'I') {\n                  if (pdVar1 == (demangle_component *)0x0) break;\n                  di->n = (char *)(pbVar10 + 1);\n                  pdVar5 = d_template_args_1(di);\n                  type = DEMANGLE_COMPONENT_TEMPLATE;\n                }\n                else {\n                  if (cVar11 != 'T') {\n                    if (cVar11 == 'E') {\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }\n                    if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;\n                    pbVar9 = pbVar10 + 1;\n                    di->n = (char *)pbVar9;\n                    uVar12 = (uint)pbVar10[1];\n                    goto LAB_001f4d13;\n                  }\n                  pdVar5 = d_template_param(di);\nLAB_001f4f17:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  if (pdVar1 == (demangle_component *)0x0) goto LAB_001f4f24;\n                }\nLAB_001f4d51:\n                pdVar5 = d_make_comp(di,type,pdVar1,pdVar5);\n              }\n              else {\nLAB_001f4d3d:\n                pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n                if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\n              }\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n              pbVar9 = pbVar10;\n              if (cVar11 == 'S') goto LAB_001f4d92;\n            }\n            else {\n              if ((byte)(cVar11 + 0x9fU) < 0x1a) goto LAB_001f4d3d;\n              if (cVar11 != 'U') {\n                if (cVar11 != 'S') goto LAB_001f5000;\n                pdVar5 = d_substitution(di,1);\n                if (pdVar1 != (demangle_component *)0x0) {\nLAB_001f4d4c:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  goto LAB_001f4d51;\n                }\n                pbVar9 = (byte *)di->n;\n                uVar12 = (uint)*pbVar9;\n                pdVar1 = pdVar5;\n                goto LAB_001f4d13;\n              }\n              pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n              if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\nLAB_001f4f24:\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n            }\n            if (bVar8 != 0x45) goto code_r0x001f4d77;\n            uVar12 = 0x45;\n            pdVar1 = pdVar5;\n          } while( true );\n        }" statement_identifier : (if_statement "if ((char)uVar12 != '\0') {\n          pbVar10 = pbVar9;\n          if ((char)uVar12 == 'D') {\n            cVar11 = 'D';\n            if ((pbVar9[1] & 0xdf) == 0x54) {\n              pdVar5 = cplus_demangle_type(di);\n              goto LAB_001f4f17;\n            }\n            pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n            goto LAB_001f4f17;\n          }\n          do {\n            cVar11 = (char)uVar12;\n            if ((byte)(uVar12 - 0x30) < 0x1d) {\n              if ((0x100803ffU >> (uVar12 - 0x30 & 0x1f) & 1) == 0) {\nLAB_001f5000:\n                if (cVar11 == 'I') {\n                  if (pdVar1 == (demangle_component *)0x0) break;\n                  di->n = (char *)(pbVar10 + 1);\n                  pdVar5 = d_template_args_1(di);\n                  type = DEMANGLE_COMPONENT_TEMPLATE;\n                }\n                else {\n                  if (cVar11 != 'T') {\n                    if (cVar11 == 'E') {\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }\n                    if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;\n                    pbVar9 = pbVar10 + 1;\n                    di->n = (char *)pbVar9;\n                    uVar12 = (uint)pbVar10[1];\n                    goto LAB_001f4d13;\n                  }\n                  pdVar5 = d_template_param(di);\nLAB_001f4f17:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  if (pdVar1 == (demangle_component *)0x0) goto LAB_001f4f24;\n                }\nLAB_001f4d51:\n                pdVar5 = d_make_comp(di,type,pdVar1,pdVar5);\n              }\n              else {\nLAB_001f4d3d:\n                pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n                if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\n              }\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n              pbVar9 = pbVar10;\n              if (cVar11 == 'S') goto LAB_001f4d92;\n            }\n            else {\n              if ((byte)(cVar11 + 0x9fU) < 0x1a) goto LAB_001f4d3d;\n              if (cVar11 != 'U') {\n                if (cVar11 != 'S') goto LAB_001f5000;\n                pdVar5 = d_substitution(di,1);\n                if (pdVar1 != (demangle_component *)0x0) {\nLAB_001f4d4c:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  goto LAB_001f4d51;\n                }\n                pbVar9 = (byte *)di->n;\n                uVar12 = (uint)*pbVar9;\n                pdVar1 = pdVar5;\n                goto LAB_001f4d13;\n              }\n              pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n              if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\nLAB_001f4f24:\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n            }\n            if (bVar8 != 0x45) goto code_r0x001f4d77;\n            uVar12 = 0x45;\n            pdVar1 = pdVar5;\n          } while( true );\n        }" if (parenthesized_expression "((char)uVar12 != '\0')" ( (binary_expression "(char)uVar12 != '\0'" (cast_expression "(char)uVar12" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          pbVar10 = pbVar9;\n          if ((char)uVar12 == 'D') {\n            cVar11 = 'D';\n            if ((pbVar9[1] & 0xdf) == 0x54) {\n              pdVar5 = cplus_demangle_type(di);\n              goto LAB_001f4f17;\n            }\n            pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n            goto LAB_001f4f17;\n          }\n          do {\n            cVar11 = (char)uVar12;\n            if ((byte)(uVar12 - 0x30) < 0x1d) {\n              if ((0x100803ffU >> (uVar12 - 0x30 & 0x1f) & 1) == 0) {\nLAB_001f5000:\n                if (cVar11 == 'I') {\n                  if (pdVar1 == (demangle_component *)0x0) break;\n                  di->n = (char *)(pbVar10 + 1);\n                  pdVar5 = d_template_args_1(di);\n                  type = DEMANGLE_COMPONENT_TEMPLATE;\n                }\n                else {\n                  if (cVar11 != 'T') {\n                    if (cVar11 == 'E') {\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }\n                    if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;\n                    pbVar9 = pbVar10 + 1;\n                    di->n = (char *)pbVar9;\n                    uVar12 = (uint)pbVar10[1];\n                    goto LAB_001f4d13;\n                  }\n                  pdVar5 = d_template_param(di);\nLAB_001f4f17:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  if (pdVar1 == (demangle_component *)0x0) goto LAB_001f4f24;\n                }\nLAB_001f4d51:\n                pdVar5 = d_make_comp(di,type,pdVar1,pdVar5);\n              }\n              else {\nLAB_001f4d3d:\n                pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n                if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\n              }\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n              pbVar9 = pbVar10;\n              if (cVar11 == 'S') goto LAB_001f4d92;\n            }\n            else {\n              if ((byte)(cVar11 + 0x9fU) < 0x1a) goto LAB_001f4d3d;\n              if (cVar11 != 'U') {\n                if (cVar11 != 'S') goto LAB_001f5000;\n                pdVar5 = d_substitution(di,1);\n                if (pdVar1 != (demangle_component *)0x0) {\nLAB_001f4d4c:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  goto LAB_001f4d51;\n                }\n                pbVar9 = (byte *)di->n;\n                uVar12 = (uint)*pbVar9;\n                pdVar1 = pdVar5;\n                goto LAB_001f4d13;\n              }\n              pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n              if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\nLAB_001f4f24:\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n            }\n            if (bVar8 != 0x45) goto code_r0x001f4d77;\n            uVar12 = 0x45;\n            pdVar1 = pdVar5;\n          } while( true );\n        }" { (expression_statement "pbVar10 = pbVar9;" (assignment_expression "pbVar10 = pbVar9" identifier = identifier) ;) (if_statement "if ((char)uVar12 == 'D') {\n            cVar11 = 'D';\n            if ((pbVar9[1] & 0xdf) == 0x54) {\n              pdVar5 = cplus_demangle_type(di);\n              goto LAB_001f4f17;\n            }\n            pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n            goto LAB_001f4f17;\n          }" if (parenthesized_expression "((char)uVar12 == 'D')" ( (binary_expression "(char)uVar12 == 'D'" (cast_expression "(char)uVar12" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'D'" ' character ')) )) (compound_statement "{\n            cVar11 = 'D';\n            if ((pbVar9[1] & 0xdf) == 0x54) {\n              pdVar5 = cplus_demangle_type(di);\n              goto LAB_001f4f17;\n            }\n            pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n            goto LAB_001f4f17;\n          }" { (expression_statement "cVar11 = 'D';" (assignment_expression "cVar11 = 'D'" identifier = (char_literal "'D'" ' character ')) ;) (if_statement "if ((pbVar9[1] & 0xdf) == 0x54) {\n              pdVar5 = cplus_demangle_type(di);\n              goto LAB_001f4f17;\n            }" if (parenthesized_expression "((pbVar9[1] & 0xdf) == 0x54)" ( (binary_expression "(pbVar9[1] & 0xdf) == 0x54" (parenthesized_expression "(pbVar9[1] & 0xdf)" ( (binary_expression "pbVar9[1] & 0xdf" (subscript_expression "pbVar9[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n              pdVar5 = cplus_demangle_type(di);\n              goto LAB_001f4f17;\n            }" { (expression_statement "pdVar5 = cplus_demangle_type(di);" (assignment_expression "pdVar5 = cplus_demangle_type(di)" identifier = (call_expression "cplus_demangle_type(di)" identifier (argument_list "(di)" ( identifier )))) ;) (goto_statement "goto LAB_001f4f17;" goto statement_identifier ;) })) (expression_statement "pdVar5 = d_unqualified_name(in_stack_ffffffc4);" (assignment_expression "pdVar5 = d_unqualified_name(in_stack_ffffffc4)" identifier = (call_expression "d_unqualified_name(in_stack_ffffffc4)" identifier (argument_list "(in_stack_ffffffc4)" ( identifier )))) ;) (goto_statement "goto LAB_001f4f17;" goto statement_identifier ;) })) (do_statement "do {\n            cVar11 = (char)uVar12;\n            if ((byte)(uVar12 - 0x30) < 0x1d) {\n              if ((0x100803ffU >> (uVar12 - 0x30 & 0x1f) & 1) == 0) {\nLAB_001f5000:\n                if (cVar11 == 'I') {\n                  if (pdVar1 == (demangle_component *)0x0) break;\n                  di->n = (char *)(pbVar10 + 1);\n                  pdVar5 = d_template_args_1(di);\n                  type = DEMANGLE_COMPONENT_TEMPLATE;\n                }\n                else {\n                  if (cVar11 != 'T') {\n                    if (cVar11 == 'E') {\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }\n                    if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;\n                    pbVar9 = pbVar10 + 1;\n                    di->n = (char *)pbVar9;\n                    uVar12 = (uint)pbVar10[1];\n                    goto LAB_001f4d13;\n                  }\n                  pdVar5 = d_template_param(di);\nLAB_001f4f17:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  if (pdVar1 == (demangle_component *)0x0) goto LAB_001f4f24;\n                }\nLAB_001f4d51:\n                pdVar5 = d_make_comp(di,type,pdVar1,pdVar5);\n              }\n              else {\nLAB_001f4d3d:\n                pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n                if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\n              }\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n              pbVar9 = pbVar10;\n              if (cVar11 == 'S') goto LAB_001f4d92;\n            }\n            else {\n              if ((byte)(cVar11 + 0x9fU) < 0x1a) goto LAB_001f4d3d;\n              if (cVar11 != 'U') {\n                if (cVar11 != 'S') goto LAB_001f5000;\n                pdVar5 = d_substitution(di,1);\n                if (pdVar1 != (demangle_component *)0x0) {\nLAB_001f4d4c:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  goto LAB_001f4d51;\n                }\n                pbVar9 = (byte *)di->n;\n                uVar12 = (uint)*pbVar9;\n                pdVar1 = pdVar5;\n                goto LAB_001f4d13;\n              }\n              pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n              if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\nLAB_001f4f24:\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n            }\n            if (bVar8 != 0x45) goto code_r0x001f4d77;\n            uVar12 = 0x45;\n            pdVar1 = pdVar5;\n          } while( true );" do (compound_statement "{\n            cVar11 = (char)uVar12;\n            if ((byte)(uVar12 - 0x30) < 0x1d) {\n              if ((0x100803ffU >> (uVar12 - 0x30 & 0x1f) & 1) == 0) {\nLAB_001f5000:\n                if (cVar11 == 'I') {\n                  if (pdVar1 == (demangle_component *)0x0) break;\n                  di->n = (char *)(pbVar10 + 1);\n                  pdVar5 = d_template_args_1(di);\n                  type = DEMANGLE_COMPONENT_TEMPLATE;\n                }\n                else {\n                  if (cVar11 != 'T') {\n                    if (cVar11 == 'E') {\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }\n                    if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;\n                    pbVar9 = pbVar10 + 1;\n                    di->n = (char *)pbVar9;\n                    uVar12 = (uint)pbVar10[1];\n                    goto LAB_001f4d13;\n                  }\n                  pdVar5 = d_template_param(di);\nLAB_001f4f17:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  if (pdVar1 == (demangle_component *)0x0) goto LAB_001f4f24;\n                }\nLAB_001f4d51:\n                pdVar5 = d_make_comp(di,type,pdVar1,pdVar5);\n              }\n              else {\nLAB_001f4d3d:\n                pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n                if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\n              }\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n              pbVar9 = pbVar10;\n              if (cVar11 == 'S') goto LAB_001f4d92;\n            }\n            else {\n              if ((byte)(cVar11 + 0x9fU) < 0x1a) goto LAB_001f4d3d;\n              if (cVar11 != 'U') {\n                if (cVar11 != 'S') goto LAB_001f5000;\n                pdVar5 = d_substitution(di,1);\n                if (pdVar1 != (demangle_component *)0x0) {\nLAB_001f4d4c:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  goto LAB_001f4d51;\n                }\n                pbVar9 = (byte *)di->n;\n                uVar12 = (uint)*pbVar9;\n                pdVar1 = pdVar5;\n                goto LAB_001f4d13;\n              }\n              pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n              if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\nLAB_001f4f24:\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n            }\n            if (bVar8 != 0x45) goto code_r0x001f4d77;\n            uVar12 = 0x45;\n            pdVar1 = pdVar5;\n          }" { (expression_statement "cVar11 = (char)uVar12;" (assignment_expression "cVar11 = (char)uVar12" identifier = (cast_expression "(char)uVar12" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if ((byte)(uVar12 - 0x30) < 0x1d) {\n              if ((0x100803ffU >> (uVar12 - 0x30 & 0x1f) & 1) == 0) {\nLAB_001f5000:\n                if (cVar11 == 'I') {\n                  if (pdVar1 == (demangle_component *)0x0) break;\n                  di->n = (char *)(pbVar10 + 1);\n                  pdVar5 = d_template_args_1(di);\n                  type = DEMANGLE_COMPONENT_TEMPLATE;\n                }\n                else {\n                  if (cVar11 != 'T') {\n                    if (cVar11 == 'E') {\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }\n                    if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;\n                    pbVar9 = pbVar10 + 1;\n                    di->n = (char *)pbVar9;\n                    uVar12 = (uint)pbVar10[1];\n                    goto LAB_001f4d13;\n                  }\n                  pdVar5 = d_template_param(di);\nLAB_001f4f17:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  if (pdVar1 == (demangle_component *)0x0) goto LAB_001f4f24;\n                }\nLAB_001f4d51:\n                pdVar5 = d_make_comp(di,type,pdVar1,pdVar5);\n              }\n              else {\nLAB_001f4d3d:\n                pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n                if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\n              }\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n              pbVar9 = pbVar10;\n              if (cVar11 == 'S') goto LAB_001f4d92;\n            }\n            else {\n              if ((byte)(cVar11 + 0x9fU) < 0x1a) goto LAB_001f4d3d;\n              if (cVar11 != 'U') {\n                if (cVar11 != 'S') goto LAB_001f5000;\n                pdVar5 = d_substitution(di,1);\n                if (pdVar1 != (demangle_component *)0x0) {\nLAB_001f4d4c:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  goto LAB_001f4d51;\n                }\n                pbVar9 = (byte *)di->n;\n                uVar12 = (uint)*pbVar9;\n                pdVar1 = pdVar5;\n                goto LAB_001f4d13;\n              }\n              pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n              if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\nLAB_001f4f24:\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n            }" if (parenthesized_expression "((byte)(uVar12 - 0x30) < 0x1d)" ( (binary_expression "(byte)(uVar12 - 0x30) < 0x1d" (call_expression "(byte)(uVar12 - 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar12 - 0x30)" ( (binary_expression "uVar12 - 0x30" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n              if ((0x100803ffU >> (uVar12 - 0x30 & 0x1f) & 1) == 0) {\nLAB_001f5000:\n                if (cVar11 == 'I') {\n                  if (pdVar1 == (demangle_component *)0x0) break;\n                  di->n = (char *)(pbVar10 + 1);\n                  pdVar5 = d_template_args_1(di);\n                  type = DEMANGLE_COMPONENT_TEMPLATE;\n                }\n                else {\n                  if (cVar11 != 'T') {\n                    if (cVar11 == 'E') {\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }\n                    if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;\n                    pbVar9 = pbVar10 + 1;\n                    di->n = (char *)pbVar9;\n                    uVar12 = (uint)pbVar10[1];\n                    goto LAB_001f4d13;\n                  }\n                  pdVar5 = d_template_param(di);\nLAB_001f4f17:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  if (pdVar1 == (demangle_component *)0x0) goto LAB_001f4f24;\n                }\nLAB_001f4d51:\n                pdVar5 = d_make_comp(di,type,pdVar1,pdVar5);\n              }\n              else {\nLAB_001f4d3d:\n                pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n                if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\n              }\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n              pbVar9 = pbVar10;\n              if (cVar11 == 'S') goto LAB_001f4d92;\n            }" { (if_statement "if ((0x100803ffU >> (uVar12 - 0x30 & 0x1f) & 1) == 0) {\nLAB_001f5000:\n                if (cVar11 == 'I') {\n                  if (pdVar1 == (demangle_component *)0x0) break;\n                  di->n = (char *)(pbVar10 + 1);\n                  pdVar5 = d_template_args_1(di);\n                  type = DEMANGLE_COMPONENT_TEMPLATE;\n                }\n                else {\n                  if (cVar11 != 'T') {\n                    if (cVar11 == 'E') {\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }\n                    if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;\n                    pbVar9 = pbVar10 + 1;\n                    di->n = (char *)pbVar9;\n                    uVar12 = (uint)pbVar10[1];\n                    goto LAB_001f4d13;\n                  }\n                  pdVar5 = d_template_param(di);\nLAB_001f4f17:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  if (pdVar1 == (demangle_component *)0x0) goto LAB_001f4f24;\n                }\nLAB_001f4d51:\n                pdVar5 = d_make_comp(di,type,pdVar1,pdVar5);\n              }\n              else {\nLAB_001f4d3d:\n                pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n                if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\n              }" if (parenthesized_expression "((0x100803ffU >> (uVar12 - 0x30 & 0x1f) & 1) == 0)" ( (binary_expression "(0x100803ffU >> (uVar12 - 0x30 & 0x1f) & 1) == 0" (parenthesized_expression "(0x100803ffU >> (uVar12 - 0x30 & 0x1f) & 1)" ( (binary_expression "0x100803ffU >> (uVar12 - 0x30 & 0x1f) & 1" (binary_expression "0x100803ffU >> (uVar12 - 0x30 & 0x1f)" number_literal >> (parenthesized_expression "(uVar12 - 0x30 & 0x1f)" ( (binary_expression "uVar12 - 0x30 & 0x1f" (binary_expression "uVar12 - 0x30" identifier - number_literal) & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001f5000:\n                if (cVar11 == 'I') {\n                  if (pdVar1 == (demangle_component *)0x0) break;\n                  di->n = (char *)(pbVar10 + 1);\n                  pdVar5 = d_template_args_1(di);\n                  type = DEMANGLE_COMPONENT_TEMPLATE;\n                }\n                else {\n                  if (cVar11 != 'T') {\n                    if (cVar11 == 'E') {\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }\n                    if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;\n                    pbVar9 = pbVar10 + 1;\n                    di->n = (char *)pbVar9;\n                    uVar12 = (uint)pbVar10[1];\n                    goto LAB_001f4d13;\n                  }\n                  pdVar5 = d_template_param(di);\nLAB_001f4f17:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  if (pdVar1 == (demangle_component *)0x0) goto LAB_001f4f24;\n                }\nLAB_001f4d51:\n                pdVar5 = d_make_comp(di,type,pdVar1,pdVar5);\n              }" { (labeled_statement "LAB_001f5000:\n                if (cVar11 == 'I') {\n                  if (pdVar1 == (demangle_component *)0x0) break;\n                  di->n = (char *)(pbVar10 + 1);\n                  pdVar5 = d_template_args_1(di);\n                  type = DEMANGLE_COMPONENT_TEMPLATE;\n                }\n                else {\n                  if (cVar11 != 'T') {\n                    if (cVar11 == 'E') {\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }\n                    if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;\n                    pbVar9 = pbVar10 + 1;\n                    di->n = (char *)pbVar9;\n                    uVar12 = (uint)pbVar10[1];\n                    goto LAB_001f4d13;\n                  }\n                  pdVar5 = d_template_param(di);\nLAB_001f4f17:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  if (pdVar1 == (demangle_component *)0x0) goto LAB_001f4f24;\n                }" statement_identifier : (if_statement "if (cVar11 == 'I') {\n                  if (pdVar1 == (demangle_component *)0x0) break;\n                  di->n = (char *)(pbVar10 + 1);\n                  pdVar5 = d_template_args_1(di);\n                  type = DEMANGLE_COMPONENT_TEMPLATE;\n                }\n                else {\n                  if (cVar11 != 'T') {\n                    if (cVar11 == 'E') {\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }\n                    if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;\n                    pbVar9 = pbVar10 + 1;\n                    di->n = (char *)pbVar9;\n                    uVar12 = (uint)pbVar10[1];\n                    goto LAB_001f4d13;\n                  }\n                  pdVar5 = d_template_param(di);\nLAB_001f4f17:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  if (pdVar1 == (demangle_component *)0x0) goto LAB_001f4f24;\n                }" if (parenthesized_expression "(cVar11 == 'I')" ( (binary_expression "cVar11 == 'I'" identifier == (char_literal "'I'" ' character ')) )) (compound_statement "{\n                  if (pdVar1 == (demangle_component *)0x0) break;\n                  di->n = (char *)(pbVar10 + 1);\n                  pdVar5 = d_template_args_1(di);\n                  type = DEMANGLE_COMPONENT_TEMPLATE;\n                }" { (if_statement "if (pdVar1 == (demangle_component *)0x0) break;" if (parenthesized_expression "(pdVar1 == (demangle_component *)0x0)" ( (binary_expression "pdVar1 == (demangle_component *)0x0" identifier == (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "di->n = (char *)(pbVar10 + 1);" (assignment_expression "di->n = (char *)(pbVar10 + 1)" (field_expression "di->n" identifier -> field_identifier) = (cast_expression "(char *)(pbVar10 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar10 + 1)" ( (binary_expression "pbVar10 + 1" identifier + number_literal) )))) ;) (expression_statement "pdVar5 = d_template_args_1(di);" (assignment_expression "pdVar5 = d_template_args_1(di)" identifier = (call_expression "d_template_args_1(di)" identifier (argument_list "(di)" ( identifier )))) ;) (expression_statement "type = DEMANGLE_COMPONENT_TEMPLATE;" (assignment_expression "type = DEMANGLE_COMPONENT_TEMPLATE" identifier = identifier) ;) }) (else_clause "else {\n                  if (cVar11 != 'T') {\n                    if (cVar11 == 'E') {\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }\n                    if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;\n                    pbVar9 = pbVar10 + 1;\n                    di->n = (char *)pbVar9;\n                    uVar12 = (uint)pbVar10[1];\n                    goto LAB_001f4d13;\n                  }\n                  pdVar5 = d_template_param(di);\nLAB_001f4f17:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  if (pdVar1 == (demangle_component *)0x0) goto LAB_001f4f24;\n                }" else (compound_statement "{\n                  if (cVar11 != 'T') {\n                    if (cVar11 == 'E') {\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }\n                    if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;\n                    pbVar9 = pbVar10 + 1;\n                    di->n = (char *)pbVar9;\n                    uVar12 = (uint)pbVar10[1];\n                    goto LAB_001f4d13;\n                  }\n                  pdVar5 = d_template_param(di);\nLAB_001f4f17:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  if (pdVar1 == (demangle_component *)0x0) goto LAB_001f4f24;\n                }" { (if_statement "if (cVar11 != 'T') {\n                    if (cVar11 == 'E') {\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }\n                    if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;\n                    pbVar9 = pbVar10 + 1;\n                    di->n = (char *)pbVar9;\n                    uVar12 = (uint)pbVar10[1];\n                    goto LAB_001f4d13;\n                  }" if (parenthesized_expression "(cVar11 != 'T')" ( (binary_expression "cVar11 != 'T'" identifier != (char_literal "'T'" ' character ')) )) (compound_statement "{\n                    if (cVar11 == 'E') {\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }\n                    if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;\n                    pbVar9 = pbVar10 + 1;\n                    di->n = (char *)pbVar9;\n                    uVar12 = (uint)pbVar10[1];\n                    goto LAB_001f4d13;\n                  }" { (if_statement "if (cVar11 == 'E') {\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }" if (parenthesized_expression "(cVar11 == 'E')" ( (binary_expression "cVar11 == 'E'" identifier == (char_literal "'E'" ' character ')) )) (compound_statement "{\n                      *ppdVar3 = pdVar1;\n                      if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }\n                      goto LAB_001f4da6;\n                    }" { (expression_statement "*ppdVar3 = pdVar1;" (assignment_expression "*ppdVar3 = pdVar1" (pointer_expression "*ppdVar3" * identifier) = identifier) ;) (if_statement "if (pdVar1 != (demangle_component *)0x0) {\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }" if (parenthesized_expression "(pdVar1 != (demangle_component *)0x0)" ( (binary_expression "pdVar1 != (demangle_component *)0x0" identifier != (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }\n                        if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }\n                      }" { (if_statement "if (pdVar2 != (demangle_component *)0x0) {\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }" if (parenthesized_expression "(pdVar2 != (demangle_component *)0x0)" ( (binary_expression "pdVar2 != (demangle_component *)0x0" identifier != (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          (pdVar2->u).s_fixed.length = ret;\n                          ret = pdVar2;\n                        }" { (expression_statement "(pdVar2->u).s_fixed.length = ret;" (assignment_expression "(pdVar2->u).s_fixed.length = ret" (field_expression "(pdVar2->u).s_fixed.length" (field_expression "(pdVar2->u).s_fixed" (parenthesized_expression "(pdVar2->u)" ( (field_expression "pdVar2->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "ret = pdVar2;" (assignment_expression "ret = pdVar2" identifier = identifier) ;) })) (if_statement "if (*pbVar10 == 0x45) {\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }" if (parenthesized_expression "(*pbVar10 == 0x45)" ( (binary_expression "*pbVar10 == 0x45" (pointer_expression "*pbVar10" * identifier) == number_literal) )) (compound_statement "{\n                          di->n = (char *)(pbVar10 + 1);\n                          return ret;\n                        }" { (expression_statement "di->n = (char *)(pbVar10 + 1);" (assignment_expression "di->n = (char *)(pbVar10 + 1)" (field_expression "di->n" identifier -> field_identifier) = (cast_expression "(char *)(pbVar10 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar10 + 1)" ( (binary_expression "pbVar10 + 1" identifier + number_literal) )))) ;) (return_statement "return ret;" return identifier ;) })) })) (goto_statement "goto LAB_001f4da6;" goto statement_identifier ;) })) (if_statement "if ((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')) break;" if (parenthesized_expression "((pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M'))" ( (binary_expression "(pdVar1 == (demangle_component *)0x0) || (cVar11 != 'M')" (parenthesized_expression "(pdVar1 == (demangle_component *)0x0)" ( (binary_expression "pdVar1 == (demangle_component *)0x0" identifier == (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(cVar11 != 'M')" ( (binary_expression "cVar11 != 'M'" identifier != (char_literal "'M'" ' character ')) ))) )) (break_statement "break;" break ;)) (expression_statement "pbVar9 = pbVar10 + 1;" (assignment_expression "pbVar9 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "di->n = (char *)pbVar9;" (assignment_expression "di->n = (char *)pbVar9" (field_expression "di->n" identifier -> field_identifier) = (cast_expression "(char *)pbVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar12 = (uint)pbVar10[1];" (assignment_expression "uVar12 = (uint)pbVar10[1]" identifier = (cast_expression "(uint)pbVar10[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar10[1]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_001f4d13;" goto statement_identifier ;) })) (expression_statement "pdVar5 = d_template_param(di);" (assignment_expression "pdVar5 = d_template_param(di)" identifier = (call_expression "d_template_param(di)" identifier (argument_list "(di)" ( identifier )))) ;) (labeled_statement "LAB_001f4f17:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;" statement_identifier : (expression_statement "type = DEMANGLE_COMPONENT_QUAL_NAME;" (assignment_expression "type = DEMANGLE_COMPONENT_QUAL_NAME" identifier = identifier) ;)) (if_statement "if (pdVar1 == (demangle_component *)0x0) goto LAB_001f4f24;" if (parenthesized_expression "(pdVar1 == (demangle_component *)0x0)" ( (binary_expression "pdVar1 == (demangle_component *)0x0" identifier == (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001f4f24;" goto statement_identifier ;)) })))) (labeled_statement "LAB_001f4d51:\n                pdVar5 = d_make_comp(di,type,pdVar1,pdVar5);" statement_identifier : (expression_statement "pdVar5 = d_make_comp(di,type,pdVar1,pdVar5);" (assignment_expression "pdVar5 = d_make_comp(di,type,pdVar1,pdVar5)" identifier = (call_expression "d_make_comp(di,type,pdVar1,pdVar5)" identifier (argument_list "(di,type,pdVar1,pdVar5)" ( identifier , identifier , identifier , identifier )))) ;)) }) (else_clause "else {\nLAB_001f4d3d:\n                pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n                if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\n              }" else (compound_statement "{\nLAB_001f4d3d:\n                pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n                if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\n              }" { (labeled_statement "LAB_001f4d3d:\n                pdVar5 = d_unqualified_name(in_stack_ffffffc4);" statement_identifier : (expression_statement "pdVar5 = d_unqualified_name(in_stack_ffffffc4);" (assignment_expression "pdVar5 = d_unqualified_name(in_stack_ffffffc4)" identifier = (call_expression "d_unqualified_name(in_stack_ffffffc4)" identifier (argument_list "(in_stack_ffffffc4)" ( identifier )))) ;)) (if_statement "if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;" if (parenthesized_expression "(pdVar1 != (demangle_component *)0x0)" ( (binary_expression "pdVar1 != (demangle_component *)0x0" identifier != (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001f4d4c;" goto statement_identifier ;)) }))) (expression_statement "pbVar10 = (byte *)di->n;" (assignment_expression "pbVar10 = (byte *)di->n" identifier = (cast_expression "(byte *)di->n" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "di->n" identifier -> field_identifier))) ;) (expression_statement "bVar8 = *pbVar10;" (assignment_expression "bVar8 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (expression_statement "pbVar9 = pbVar10;" (assignment_expression "pbVar9 = pbVar10" identifier = identifier) ;) (if_statement "if (cVar11 == 'S') goto LAB_001f4d92;" if (parenthesized_expression "(cVar11 == 'S')" ( (binary_expression "cVar11 == 'S'" identifier == (char_literal "'S'" ' character ')) )) (goto_statement "goto LAB_001f4d92;" goto statement_identifier ;)) }) (else_clause "else {\n              if ((byte)(cVar11 + 0x9fU) < 0x1a) goto LAB_001f4d3d;\n              if (cVar11 != 'U') {\n                if (cVar11 != 'S') goto LAB_001f5000;\n                pdVar5 = d_substitution(di,1);\n                if (pdVar1 != (demangle_component *)0x0) {\nLAB_001f4d4c:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  goto LAB_001f4d51;\n                }\n                pbVar9 = (byte *)di->n;\n                uVar12 = (uint)*pbVar9;\n                pdVar1 = pdVar5;\n                goto LAB_001f4d13;\n              }\n              pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n              if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\nLAB_001f4f24:\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n            }" else (compound_statement "{\n              if ((byte)(cVar11 + 0x9fU) < 0x1a) goto LAB_001f4d3d;\n              if (cVar11 != 'U') {\n                if (cVar11 != 'S') goto LAB_001f5000;\n                pdVar5 = d_substitution(di,1);\n                if (pdVar1 != (demangle_component *)0x0) {\nLAB_001f4d4c:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  goto LAB_001f4d51;\n                }\n                pbVar9 = (byte *)di->n;\n                uVar12 = (uint)*pbVar9;\n                pdVar1 = pdVar5;\n                goto LAB_001f4d13;\n              }\n              pdVar5 = d_unqualified_name(in_stack_ffffffc4);\n              if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;\nLAB_001f4f24:\n              pbVar10 = (byte *)di->n;\n              bVar8 = *pbVar10;\n            }" { (if_statement "if ((byte)(cVar11 + 0x9fU) < 0x1a) goto LAB_001f4d3d;" if (parenthesized_expression "((byte)(cVar11 + 0x9fU) < 0x1a)" ( (binary_expression "(byte)(cVar11 + 0x9fU) < 0x1a" (call_expression "(byte)(cVar11 + 0x9fU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar11 + 0x9fU)" ( (binary_expression "cVar11 + 0x9fU" identifier + number_literal) ))) < number_literal) )) (goto_statement "goto LAB_001f4d3d;" goto statement_identifier ;)) (if_statement "if (cVar11 != 'U') {\n                if (cVar11 != 'S') goto LAB_001f5000;\n                pdVar5 = d_substitution(di,1);\n                if (pdVar1 != (demangle_component *)0x0) {\nLAB_001f4d4c:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  goto LAB_001f4d51;\n                }\n                pbVar9 = (byte *)di->n;\n                uVar12 = (uint)*pbVar9;\n                pdVar1 = pdVar5;\n                goto LAB_001f4d13;\n              }" if (parenthesized_expression "(cVar11 != 'U')" ( (binary_expression "cVar11 != 'U'" identifier != (char_literal "'U'" ' character ')) )) (compound_statement "{\n                if (cVar11 != 'S') goto LAB_001f5000;\n                pdVar5 = d_substitution(di,1);\n                if (pdVar1 != (demangle_component *)0x0) {\nLAB_001f4d4c:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  goto LAB_001f4d51;\n                }\n                pbVar9 = (byte *)di->n;\n                uVar12 = (uint)*pbVar9;\n                pdVar1 = pdVar5;\n                goto LAB_001f4d13;\n              }" { (if_statement "if (cVar11 != 'S') goto LAB_001f5000;" if (parenthesized_expression "(cVar11 != 'S')" ( (binary_expression "cVar11 != 'S'" identifier != (char_literal "'S'" ' character ')) )) (goto_statement "goto LAB_001f5000;" goto statement_identifier ;)) (expression_statement "pdVar5 = d_substitution(di,1);" (assignment_expression "pdVar5 = d_substitution(di,1)" identifier = (call_expression "d_substitution(di,1)" identifier (argument_list "(di,1)" ( identifier , number_literal )))) ;) (if_statement "if (pdVar1 != (demangle_component *)0x0) {\nLAB_001f4d4c:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  goto LAB_001f4d51;\n                }" if (parenthesized_expression "(pdVar1 != (demangle_component *)0x0)" ( (binary_expression "pdVar1 != (demangle_component *)0x0" identifier != (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_001f4d4c:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;\n                  goto LAB_001f4d51;\n                }" { (labeled_statement "LAB_001f4d4c:\n                  type = DEMANGLE_COMPONENT_QUAL_NAME;" statement_identifier : (expression_statement "type = DEMANGLE_COMPONENT_QUAL_NAME;" (assignment_expression "type = DEMANGLE_COMPONENT_QUAL_NAME" identifier = identifier) ;)) (goto_statement "goto LAB_001f4d51;" goto statement_identifier ;) })) (expression_statement "pbVar9 = (byte *)di->n;" (assignment_expression "pbVar9 = (byte *)di->n" identifier = (cast_expression "(byte *)di->n" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "di->n" identifier -> field_identifier))) ;) (expression_statement "uVar12 = (uint)*pbVar9;" (assignment_expression "uVar12 = (uint)*pbVar9" identifier = (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pdVar1 = pdVar5;" (assignment_expression "pdVar1 = pdVar5" identifier = identifier) ;) (goto_statement "goto LAB_001f4d13;" goto statement_identifier ;) })) (expression_statement "pdVar5 = d_unqualified_name(in_stack_ffffffc4);" (assignment_expression "pdVar5 = d_unqualified_name(in_stack_ffffffc4)" identifier = (call_expression "d_unqualified_name(in_stack_ffffffc4)" identifier (argument_list "(in_stack_ffffffc4)" ( identifier )))) ;) (if_statement "if (pdVar1 != (demangle_component *)0x0) goto LAB_001f4d4c;" if (parenthesized_expression "(pdVar1 != (demangle_component *)0x0)" ( (binary_expression "pdVar1 != (demangle_component *)0x0" identifier != (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001f4d4c;" goto statement_identifier ;)) (labeled_statement "LAB_001f4f24:\n              pbVar10 = (byte *)di->n;" statement_identifier : (expression_statement "pbVar10 = (byte *)di->n;" (assignment_expression "pbVar10 = (byte *)di->n" identifier = (cast_expression "(byte *)di->n" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "di->n" identifier -> field_identifier))) ;)) (expression_statement "bVar8 = *pbVar10;" (assignment_expression "bVar8 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) }))) (if_statement "if (bVar8 != 0x45) goto code_r0x001f4d77;" if (parenthesized_expression "(bVar8 != 0x45)" ( (binary_expression "bVar8 != 0x45" identifier != number_literal) )) (goto_statement "goto code_r0x001f4d77;" goto statement_identifier ;)) (expression_statement "uVar12 = 0x45;" (assignment_expression "uVar12 = 0x45" identifier = number_literal) ;) (expression_statement "pdVar1 = pdVar5;" (assignment_expression "pdVar1 = pdVar5" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (goto_statement "goto LAB_001f4da0;" goto statement_identifier ;) })) }) (else_clause "else {\n      if (cVar11 == 'U') {\n        pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n        return pdVar1;\n      }\n      if (cVar11 == 'Z') {\n        di->n = pcVar4 + 1;\n        pdVar1 = d_encoding(di,0);\n        if ((pdVar1 != (demangle_component *)0x0) && (pcVar4 = di->n, *pcVar4 == 'E')) {\n          di->n = pcVar4 + 1;\n          if (pcVar4[1] == 's') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_discriminator(di);\n            if (iVar6 != 0) {\n              iVar6 = di->next_comp;\n              if (iVar6 < di->num_comps) {\n                di->next_comp = iVar6 + 1;\n                pdVar2 = di->comps + iVar6;\n                pdVar2->d_printing = 0;\n                pdVar2->type = DEMANGLE_COMPONENT_NAME;\n                (pdVar2->u).s_name.s = "string literal";\n                (pdVar2->u).s_name.len = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              pdVar2 = (demangle_component *)0x0;\nLAB_001f4ca4:\n              if ((pdVar1->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                 (pdVar5 = (pdVar1->u).s_extended_operator.name,\n                 pdVar5->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                (pdVar5->u).s_name.s = (char *)0x0;\n              }\n              pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_LOCAL_NAME,pdVar1,pdVar2);\n              return pdVar1;\n            }\n          }\n          else if (pcVar4[1] == 'd') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_compact_number(di);\n            if ((-1 < iVar6) &&\n               (((pdVar5 = d_name(di), pdVar5 == (demangle_component *)0x0 ||\n                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n                (iVar7 = d_discriminator(di), iVar7 != 0)))) {\n              iVar7 = di->next_comp;\n              if (iVar7 < di->num_comps) {\n                pdVar2 = di->comps + iVar7;\n                pdVar2->d_printing = 0;\n                di->next_comp = iVar7 + 1;\n                pdVar2->type = DEMANGLE_COMPONENT_DEFAULT_ARG;\n                (pdVar2->u).s_name.len = iVar6;\n                (pdVar2->u).s_fixed.length = pdVar5;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            pdVar2 = d_name(di);\n            if (((pdVar2 == (demangle_component *)0x0) ||\n                ((pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n               (iVar6 = d_discriminator(di), iVar6 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n        pcVar4 = di->n;\n        if (*pcVar4 != 'I') {\n          return pdVar1;\n        }\n        if ((pdVar1 != (demangle_component *)0x0) && (iVar6 = di->next_sub, iVar6 < di->num_subs)) {\n          di->subs[iVar6] = pdVar1;\n          di->next_sub = iVar6 + 1;\n          pdVar2 = (demangle_component *)0x0;\n          if ((byte)(*pcVar4 + 0xb7U) < 2) {\n            di->n = pcVar4 + 1;\n            pdVar2 = d_template_args_1(di);\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }" else (compound_statement "{\n      if (cVar11 == 'U') {\n        pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n        return pdVar1;\n      }\n      if (cVar11 == 'Z') {\n        di->n = pcVar4 + 1;\n        pdVar1 = d_encoding(di,0);\n        if ((pdVar1 != (demangle_component *)0x0) && (pcVar4 = di->n, *pcVar4 == 'E')) {\n          di->n = pcVar4 + 1;\n          if (pcVar4[1] == 's') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_discriminator(di);\n            if (iVar6 != 0) {\n              iVar6 = di->next_comp;\n              if (iVar6 < di->num_comps) {\n                di->next_comp = iVar6 + 1;\n                pdVar2 = di->comps + iVar6;\n                pdVar2->d_printing = 0;\n                pdVar2->type = DEMANGLE_COMPONENT_NAME;\n                (pdVar2->u).s_name.s = "string literal";\n                (pdVar2->u).s_name.len = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              pdVar2 = (demangle_component *)0x0;\nLAB_001f4ca4:\n              if ((pdVar1->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                 (pdVar5 = (pdVar1->u).s_extended_operator.name,\n                 pdVar5->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                (pdVar5->u).s_name.s = (char *)0x0;\n              }\n              pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_LOCAL_NAME,pdVar1,pdVar2);\n              return pdVar1;\n            }\n          }\n          else if (pcVar4[1] == 'd') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_compact_number(di);\n            if ((-1 < iVar6) &&\n               (((pdVar5 = d_name(di), pdVar5 == (demangle_component *)0x0 ||\n                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n                (iVar7 = d_discriminator(di), iVar7 != 0)))) {\n              iVar7 = di->next_comp;\n              if (iVar7 < di->num_comps) {\n                pdVar2 = di->comps + iVar7;\n                pdVar2->d_printing = 0;\n                di->next_comp = iVar7 + 1;\n                pdVar2->type = DEMANGLE_COMPONENT_DEFAULT_ARG;\n                (pdVar2->u).s_name.len = iVar6;\n                (pdVar2->u).s_fixed.length = pdVar5;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            pdVar2 = d_name(di);\n            if (((pdVar2 == (demangle_component *)0x0) ||\n                ((pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n               (iVar6 = d_discriminator(di), iVar6 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n        pcVar4 = di->n;\n        if (*pcVar4 != 'I') {\n          return pdVar1;\n        }\n        if ((pdVar1 != (demangle_component *)0x0) && (iVar6 = di->next_sub, iVar6 < di->num_subs)) {\n          di->subs[iVar6] = pdVar1;\n          di->next_sub = iVar6 + 1;\n          pdVar2 = (demangle_component *)0x0;\n          if ((byte)(*pcVar4 + 0xb7U) < 2) {\n            di->n = pcVar4 + 1;\n            pdVar2 = d_template_args_1(di);\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }" { (if_statement "if (cVar11 == 'U') {\n        pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n        return pdVar1;\n      }" if (parenthesized_expression "(cVar11 == 'U')" ( (binary_expression "cVar11 == 'U'" identifier == (char_literal "'U'" ' character ')) )) (compound_statement "{\n        pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n        return pdVar1;\n      }" { (expression_statement "pdVar1 = d_unqualified_name(in_stack_ffffffc4);" (assignment_expression "pdVar1 = d_unqualified_name(in_stack_ffffffc4)" identifier = (call_expression "d_unqualified_name(in_stack_ffffffc4)" identifier (argument_list "(in_stack_ffffffc4)" ( identifier )))) ;) (return_statement "return pdVar1;" return identifier ;) })) (if_statement "if (cVar11 == 'Z') {\n        di->n = pcVar4 + 1;\n        pdVar1 = d_encoding(di,0);\n        if ((pdVar1 != (demangle_component *)0x0) && (pcVar4 = di->n, *pcVar4 == 'E')) {\n          di->n = pcVar4 + 1;\n          if (pcVar4[1] == 's') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_discriminator(di);\n            if (iVar6 != 0) {\n              iVar6 = di->next_comp;\n              if (iVar6 < di->num_comps) {\n                di->next_comp = iVar6 + 1;\n                pdVar2 = di->comps + iVar6;\n                pdVar2->d_printing = 0;\n                pdVar2->type = DEMANGLE_COMPONENT_NAME;\n                (pdVar2->u).s_name.s = "string literal";\n                (pdVar2->u).s_name.len = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              pdVar2 = (demangle_component *)0x0;\nLAB_001f4ca4:\n              if ((pdVar1->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                 (pdVar5 = (pdVar1->u).s_extended_operator.name,\n                 pdVar5->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                (pdVar5->u).s_name.s = (char *)0x0;\n              }\n              pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_LOCAL_NAME,pdVar1,pdVar2);\n              return pdVar1;\n            }\n          }\n          else if (pcVar4[1] == 'd') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_compact_number(di);\n            if ((-1 < iVar6) &&\n               (((pdVar5 = d_name(di), pdVar5 == (demangle_component *)0x0 ||\n                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n                (iVar7 = d_discriminator(di), iVar7 != 0)))) {\n              iVar7 = di->next_comp;\n              if (iVar7 < di->num_comps) {\n                pdVar2 = di->comps + iVar7;\n                pdVar2->d_printing = 0;\n                di->next_comp = iVar7 + 1;\n                pdVar2->type = DEMANGLE_COMPONENT_DEFAULT_ARG;\n                (pdVar2->u).s_name.len = iVar6;\n                (pdVar2->u).s_fixed.length = pdVar5;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            pdVar2 = d_name(di);\n            if (((pdVar2 == (demangle_component *)0x0) ||\n                ((pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n               (iVar6 = d_discriminator(di), iVar6 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n        pcVar4 = di->n;\n        if (*pcVar4 != 'I') {\n          return pdVar1;\n        }\n        if ((pdVar1 != (demangle_component *)0x0) && (iVar6 = di->next_sub, iVar6 < di->num_subs)) {\n          di->subs[iVar6] = pdVar1;\n          di->next_sub = iVar6 + 1;\n          pdVar2 = (demangle_component *)0x0;\n          if ((byte)(*pcVar4 + 0xb7U) < 2) {\n            di->n = pcVar4 + 1;\n            pdVar2 = d_template_args_1(di);\n          }\n          goto LAB_001f4de2;\n        }\n      }" if (parenthesized_expression "(cVar11 == 'Z')" ( (binary_expression "cVar11 == 'Z'" identifier == (char_literal "'Z'" ' character ')) )) (compound_statement "{\n        di->n = pcVar4 + 1;\n        pdVar1 = d_encoding(di,0);\n        if ((pdVar1 != (demangle_component *)0x0) && (pcVar4 = di->n, *pcVar4 == 'E')) {\n          di->n = pcVar4 + 1;\n          if (pcVar4[1] == 's') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_discriminator(di);\n            if (iVar6 != 0) {\n              iVar6 = di->next_comp;\n              if (iVar6 < di->num_comps) {\n                di->next_comp = iVar6 + 1;\n                pdVar2 = di->comps + iVar6;\n                pdVar2->d_printing = 0;\n                pdVar2->type = DEMANGLE_COMPONENT_NAME;\n                (pdVar2->u).s_name.s = "string literal";\n                (pdVar2->u).s_name.len = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              pdVar2 = (demangle_component *)0x0;\nLAB_001f4ca4:\n              if ((pdVar1->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                 (pdVar5 = (pdVar1->u).s_extended_operator.name,\n                 pdVar5->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                (pdVar5->u).s_name.s = (char *)0x0;\n              }\n              pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_LOCAL_NAME,pdVar1,pdVar2);\n              return pdVar1;\n            }\n          }\n          else if (pcVar4[1] == 'd') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_compact_number(di);\n            if ((-1 < iVar6) &&\n               (((pdVar5 = d_name(di), pdVar5 == (demangle_component *)0x0 ||\n                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n                (iVar7 = d_discriminator(di), iVar7 != 0)))) {\n              iVar7 = di->next_comp;\n              if (iVar7 < di->num_comps) {\n                pdVar2 = di->comps + iVar7;\n                pdVar2->d_printing = 0;\n                di->next_comp = iVar7 + 1;\n                pdVar2->type = DEMANGLE_COMPONENT_DEFAULT_ARG;\n                (pdVar2->u).s_name.len = iVar6;\n                (pdVar2->u).s_fixed.length = pdVar5;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            pdVar2 = d_name(di);\n            if (((pdVar2 == (demangle_component *)0x0) ||\n                ((pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n               (iVar6 = d_discriminator(di), iVar6 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }" { (expression_statement "di->n = pcVar4 + 1;" (assignment_expression "di->n = pcVar4 + 1" (field_expression "di->n" identifier -> field_identifier) = (binary_expression "pcVar4 + 1" identifier + number_literal)) ;) (expression_statement "pdVar1 = d_encoding(di,0);" (assignment_expression "pdVar1 = d_encoding(di,0)" identifier = (call_expression "d_encoding(di,0)" identifier (argument_list "(di,0)" ( identifier , number_literal )))) ;) (if_statement "if ((pdVar1 != (demangle_component *)0x0) && (pcVar4 = di->n, *pcVar4 == 'E')) {\n          di->n = pcVar4 + 1;\n          if (pcVar4[1] == 's') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_discriminator(di);\n            if (iVar6 != 0) {\n              iVar6 = di->next_comp;\n              if (iVar6 < di->num_comps) {\n                di->next_comp = iVar6 + 1;\n                pdVar2 = di->comps + iVar6;\n                pdVar2->d_printing = 0;\n                pdVar2->type = DEMANGLE_COMPONENT_NAME;\n                (pdVar2->u).s_name.s = "string literal";\n                (pdVar2->u).s_name.len = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              pdVar2 = (demangle_component *)0x0;\nLAB_001f4ca4:\n              if ((pdVar1->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                 (pdVar5 = (pdVar1->u).s_extended_operator.name,\n                 pdVar5->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                (pdVar5->u).s_name.s = (char *)0x0;\n              }\n              pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_LOCAL_NAME,pdVar1,pdVar2);\n              return pdVar1;\n            }\n          }\n          else if (pcVar4[1] == 'd') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_compact_number(di);\n            if ((-1 < iVar6) &&\n               (((pdVar5 = d_name(di), pdVar5 == (demangle_component *)0x0 ||\n                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n                (iVar7 = d_discriminator(di), iVar7 != 0)))) {\n              iVar7 = di->next_comp;\n              if (iVar7 < di->num_comps) {\n                pdVar2 = di->comps + iVar7;\n                pdVar2->d_printing = 0;\n                di->next_comp = iVar7 + 1;\n                pdVar2->type = DEMANGLE_COMPONENT_DEFAULT_ARG;\n                (pdVar2->u).s_name.len = iVar6;\n                (pdVar2->u).s_fixed.length = pdVar5;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            pdVar2 = d_name(di);\n            if (((pdVar2 == (demangle_component *)0x0) ||\n                ((pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n               (iVar6 = d_discriminator(di), iVar6 != 0)) goto LAB_001f4ca4;\n          }\n        }" if (parenthesized_expression "((pdVar1 != (demangle_component *)0x0) && (pcVar4 = di->n, *pcVar4 == 'E'))" ( (binary_expression "(pdVar1 != (demangle_component *)0x0) && (pcVar4 = di->n, *pcVar4 == 'E')" (parenthesized_expression "(pdVar1 != (demangle_component *)0x0)" ( (binary_expression "pdVar1 != (demangle_component *)0x0" identifier != (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar4 = di->n, *pcVar4 == 'E')" ( (comma_expression "pcVar4 = di->n, *pcVar4 == 'E'" (assignment_expression "pcVar4 = di->n" identifier = (field_expression "di->n" identifier -> field_identifier)) , (binary_expression "*pcVar4 == 'E'" (pointer_expression "*pcVar4" * identifier) == (char_literal "'E'" ' character '))) ))) )) (compound_statement "{\n          di->n = pcVar4 + 1;\n          if (pcVar4[1] == 's') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_discriminator(di);\n            if (iVar6 != 0) {\n              iVar6 = di->next_comp;\n              if (iVar6 < di->num_comps) {\n                di->next_comp = iVar6 + 1;\n                pdVar2 = di->comps + iVar6;\n                pdVar2->d_printing = 0;\n                pdVar2->type = DEMANGLE_COMPONENT_NAME;\n                (pdVar2->u).s_name.s = "string literal";\n                (pdVar2->u).s_name.len = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              pdVar2 = (demangle_component *)0x0;\nLAB_001f4ca4:\n              if ((pdVar1->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                 (pdVar5 = (pdVar1->u).s_extended_operator.name,\n                 pdVar5->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                (pdVar5->u).s_name.s = (char *)0x0;\n              }\n              pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_LOCAL_NAME,pdVar1,pdVar2);\n              return pdVar1;\n            }\n          }\n          else if (pcVar4[1] == 'd') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_compact_number(di);\n            if ((-1 < iVar6) &&\n               (((pdVar5 = d_name(di), pdVar5 == (demangle_component *)0x0 ||\n                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n                (iVar7 = d_discriminator(di), iVar7 != 0)))) {\n              iVar7 = di->next_comp;\n              if (iVar7 < di->num_comps) {\n                pdVar2 = di->comps + iVar7;\n                pdVar2->d_printing = 0;\n                di->next_comp = iVar7 + 1;\n                pdVar2->type = DEMANGLE_COMPONENT_DEFAULT_ARG;\n                (pdVar2->u).s_name.len = iVar6;\n                (pdVar2->u).s_fixed.length = pdVar5;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            pdVar2 = d_name(di);\n            if (((pdVar2 == (demangle_component *)0x0) ||\n                ((pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n               (iVar6 = d_discriminator(di), iVar6 != 0)) goto LAB_001f4ca4;\n          }\n        }" { (expression_statement "di->n = pcVar4 + 1;" (assignment_expression "di->n = pcVar4 + 1" (field_expression "di->n" identifier -> field_identifier) = (binary_expression "pcVar4 + 1" identifier + number_literal)) ;) (if_statement "if (pcVar4[1] == 's') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_discriminator(di);\n            if (iVar6 != 0) {\n              iVar6 = di->next_comp;\n              if (iVar6 < di->num_comps) {\n                di->next_comp = iVar6 + 1;\n                pdVar2 = di->comps + iVar6;\n                pdVar2->d_printing = 0;\n                pdVar2->type = DEMANGLE_COMPONENT_NAME;\n                (pdVar2->u).s_name.s = "string literal";\n                (pdVar2->u).s_name.len = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              pdVar2 = (demangle_component *)0x0;\nLAB_001f4ca4:\n              if ((pdVar1->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                 (pdVar5 = (pdVar1->u).s_extended_operator.name,\n                 pdVar5->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                (pdVar5->u).s_name.s = (char *)0x0;\n              }\n              pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_LOCAL_NAME,pdVar1,pdVar2);\n              return pdVar1;\n            }\n          }\n          else if (pcVar4[1] == 'd') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_compact_number(di);\n            if ((-1 < iVar6) &&\n               (((pdVar5 = d_name(di), pdVar5 == (demangle_component *)0x0 ||\n                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n                (iVar7 = d_discriminator(di), iVar7 != 0)))) {\n              iVar7 = di->next_comp;\n              if (iVar7 < di->num_comps) {\n                pdVar2 = di->comps + iVar7;\n                pdVar2->d_printing = 0;\n                di->next_comp = iVar7 + 1;\n                pdVar2->type = DEMANGLE_COMPONENT_DEFAULT_ARG;\n                (pdVar2->u).s_name.len = iVar6;\n                (pdVar2->u).s_fixed.length = pdVar5;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            pdVar2 = d_name(di);\n            if (((pdVar2 == (demangle_component *)0x0) ||\n                ((pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n               (iVar6 = d_discriminator(di), iVar6 != 0)) goto LAB_001f4ca4;\n          }" if (parenthesized_expression "(pcVar4[1] == 's')" ( (binary_expression "pcVar4[1] == 's'" (subscript_expression "pcVar4[1]" identifier [ number_literal ]) == (char_literal "'s'" ' character ')) )) (compound_statement "{\n            di->n = pcVar4 + 2;\n            iVar6 = d_discriminator(di);\n            if (iVar6 != 0) {\n              iVar6 = di->next_comp;\n              if (iVar6 < di->num_comps) {\n                di->next_comp = iVar6 + 1;\n                pdVar2 = di->comps + iVar6;\n                pdVar2->d_printing = 0;\n                pdVar2->type = DEMANGLE_COMPONENT_NAME;\n                (pdVar2->u).s_name.s = "string literal";\n                (pdVar2->u).s_name.len = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              pdVar2 = (demangle_component *)0x0;\nLAB_001f4ca4:\n              if ((pdVar1->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                 (pdVar5 = (pdVar1->u).s_extended_operator.name,\n                 pdVar5->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                (pdVar5->u).s_name.s = (char *)0x0;\n              }\n              pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_LOCAL_NAME,pdVar1,pdVar2);\n              return pdVar1;\n            }\n          }" { (expression_statement "di->n = pcVar4 + 2;" (assignment_expression "di->n = pcVar4 + 2" (field_expression "di->n" identifier -> field_identifier) = (binary_expression "pcVar4 + 2" identifier + number_literal)) ;) (expression_statement "iVar6 = d_discriminator(di);" (assignment_expression "iVar6 = d_discriminator(di)" identifier = (call_expression "d_discriminator(di)" identifier (argument_list "(di)" ( identifier )))) ;) (if_statement "if (iVar6 != 0) {\n              iVar6 = di->next_comp;\n              if (iVar6 < di->num_comps) {\n                di->next_comp = iVar6 + 1;\n                pdVar2 = di->comps + iVar6;\n                pdVar2->d_printing = 0;\n                pdVar2->type = DEMANGLE_COMPONENT_NAME;\n                (pdVar2->u).s_name.s = "string literal";\n                (pdVar2->u).s_name.len = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              pdVar2 = (demangle_component *)0x0;\nLAB_001f4ca4:\n              if ((pdVar1->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                 (pdVar5 = (pdVar1->u).s_extended_operator.name,\n                 pdVar5->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                (pdVar5->u).s_name.s = (char *)0x0;\n              }\n              pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_LOCAL_NAME,pdVar1,pdVar2);\n              return pdVar1;\n            }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar6 = di->next_comp;\n              if (iVar6 < di->num_comps) {\n                di->next_comp = iVar6 + 1;\n                pdVar2 = di->comps + iVar6;\n                pdVar2->d_printing = 0;\n                pdVar2->type = DEMANGLE_COMPONENT_NAME;\n                (pdVar2->u).s_name.s = "string literal";\n                (pdVar2->u).s_name.len = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              pdVar2 = (demangle_component *)0x0;\nLAB_001f4ca4:\n              if ((pdVar1->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                 (pdVar5 = (pdVar1->u).s_extended_operator.name,\n                 pdVar5->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                (pdVar5->u).s_name.s = (char *)0x0;\n              }\n              pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_LOCAL_NAME,pdVar1,pdVar2);\n              return pdVar1;\n            }" { (expression_statement "iVar6 = di->next_comp;" (assignment_expression "iVar6 = di->next_comp" identifier = (field_expression "di->next_comp" identifier -> field_identifier)) ;) (if_statement "if (iVar6 < di->num_comps) {\n                di->next_comp = iVar6 + 1;\n                pdVar2 = di->comps + iVar6;\n                pdVar2->d_printing = 0;\n                pdVar2->type = DEMANGLE_COMPONENT_NAME;\n                (pdVar2->u).s_name.s = "string literal";\n                (pdVar2->u).s_name.len = 0xe;\n                goto LAB_001f4ca4;\n              }" if (parenthesized_expression "(iVar6 < di->num_comps)" ( (binary_expression "iVar6 < di->num_comps" identifier < (field_expression "di->num_comps" identifier -> field_identifier)) )) (compound_statement "{\n                di->next_comp = iVar6 + 1;\n                pdVar2 = di->comps + iVar6;\n                pdVar2->d_printing = 0;\n                pdVar2->type = DEMANGLE_COMPONENT_NAME;\n                (pdVar2->u).s_name.s = "string literal";\n                (pdVar2->u).s_name.len = 0xe;\n                goto LAB_001f4ca4;\n              }" { (expression_statement "di->next_comp = iVar6 + 1;" (assignment_expression "di->next_comp = iVar6 + 1" (field_expression "di->next_comp" identifier -> field_identifier) = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "pdVar2 = di->comps + iVar6;" (assignment_expression "pdVar2 = di->comps + iVar6" identifier = (binary_expression "di->comps + iVar6" (field_expression "di->comps" identifier -> field_identifier) + identifier)) ;) (expression_statement "pdVar2->d_printing = 0;" (assignment_expression "pdVar2->d_printing = 0" (field_expression "pdVar2->d_printing" identifier -> field_identifier) = number_literal) ;) (expression_statement "pdVar2->type = DEMANGLE_COMPONENT_NAME;" (assignment_expression "pdVar2->type = DEMANGLE_COMPONENT_NAME" (field_expression "pdVar2->type" identifier -> field_identifier) = identifier) ;) (expression_statement "(pdVar2->u).s_name.s = "string literal";" (assignment_expression "(pdVar2->u).s_name.s = "string literal"" (field_expression "(pdVar2->u).s_name.s" (field_expression "(pdVar2->u).s_name" (parenthesized_expression "(pdVar2->u)" ( (field_expression "pdVar2->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (string_literal ""string literal"" " string_content ")) ;) (expression_statement "(pdVar2->u).s_name.len = 0xe;" (assignment_expression "(pdVar2->u).s_name.len = 0xe" (field_expression "(pdVar2->u).s_name.len" (field_expression "(pdVar2->u).s_name" (parenthesized_expression "(pdVar2->u)" ( (field_expression "pdVar2->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (goto_statement "goto LAB_001f4ca4;" goto statement_identifier ;) })) (labeled_statement "LAB_001f514b:\n              pdVar2 = (demangle_component *)0x0;" statement_identifier : (expression_statement "pdVar2 = (demangle_component *)0x0;" (assignment_expression "pdVar2 = (demangle_component *)0x0" identifier = (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (labeled_statement "LAB_001f4ca4:\n              if ((pdVar1->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                 (pdVar5 = (pdVar1->u).s_extended_operator.name,\n                 pdVar5->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                (pdVar5->u).s_name.s = (char *)0x0;\n              }" statement_identifier : (if_statement "if ((pdVar1->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                 (pdVar5 = (pdVar1->u).s_extended_operator.name,\n                 pdVar5->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                (pdVar5->u).s_name.s = (char *)0x0;\n              }" if (parenthesized_expression "((pdVar1->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                 (pdVar5 = (pdVar1->u).s_extended_operator.name,\n                 pdVar5->type == DEMANGLE_COMPONENT_FUNCTION_TYPE))" ( (binary_expression "(pdVar1->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                 (pdVar5 = (pdVar1->u).s_extended_operator.name,\n                 pdVar5->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)" (parenthesized_expression "(pdVar1->type == DEMANGLE_COMPONENT_TYPED_NAME)" ( (binary_expression "pdVar1->type == DEMANGLE_COMPONENT_TYPED_NAME" (field_expression "pdVar1->type" identifier -> field_identifier) == identifier) )) && (parenthesized_expression "(pdVar5 = (pdVar1->u).s_extended_operator.name,\n                 pdVar5->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)" ( (comma_expression "pdVar5 = (pdVar1->u).s_extended_operator.name,\n                 pdVar5->type == DEMANGLE_COMPONENT_FUNCTION_TYPE" (assignment_expression "pdVar5 = (pdVar1->u).s_extended_operator.name" identifier = (field_expression "(pdVar1->u).s_extended_operator.name" (field_expression "(pdVar1->u).s_extended_operator" (parenthesized_expression "(pdVar1->u)" ( (field_expression "pdVar1->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) , (binary_expression "pdVar5->type == DEMANGLE_COMPONENT_FUNCTION_TYPE" (field_expression "pdVar5->type" identifier -> field_identifier) == identifier)) ))) )) (compound_statement "{\n                (pdVar5->u).s_name.s = (char *)0x0;\n              }" { (expression_statement "(pdVar5->u).s_name.s = (char *)0x0;" (assignment_expression "(pdVar5->u).s_name.s = (char *)0x0" (field_expression "(pdVar5->u).s_name.s" (field_expression "(pdVar5->u).s_name" (parenthesized_expression "(pdVar5->u)" ( (field_expression "pdVar5->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_LOCAL_NAME,pdVar1,pdVar2);" (assignment_expression "pdVar1 = d_make_comp(di,DEMANGLE_COMPONENT_LOCAL_NAME,pdVar1,pdVar2)" identifier = (call_expression "d_make_comp(di,DEMANGLE_COMPONENT_LOCAL_NAME,pdVar1,pdVar2)" identifier (argument_list "(di,DEMANGLE_COMPONENT_LOCAL_NAME,pdVar1,pdVar2)" ( identifier , identifier , identifier , identifier )))) ;) (return_statement "return pdVar1;" return identifier ;) })) }) (else_clause "else if (pcVar4[1] == 'd') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_compact_number(di);\n            if ((-1 < iVar6) &&\n               (((pdVar5 = d_name(di), pdVar5 == (demangle_component *)0x0 ||\n                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n                (iVar7 = d_discriminator(di), iVar7 != 0)))) {\n              iVar7 = di->next_comp;\n              if (iVar7 < di->num_comps) {\n                pdVar2 = di->comps + iVar7;\n                pdVar2->d_printing = 0;\n                di->next_comp = iVar7 + 1;\n                pdVar2->type = DEMANGLE_COMPONENT_DEFAULT_ARG;\n                (pdVar2->u).s_name.len = iVar6;\n                (pdVar2->u).s_fixed.length = pdVar5;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            pdVar2 = d_name(di);\n            if (((pdVar2 == (demangle_component *)0x0) ||\n                ((pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n               (iVar6 = d_discriminator(di), iVar6 != 0)) goto LAB_001f4ca4;\n          }" else (if_statement "if (pcVar4[1] == 'd') {\n            di->n = pcVar4 + 2;\n            iVar6 = d_compact_number(di);\n            if ((-1 < iVar6) &&\n               (((pdVar5 = d_name(di), pdVar5 == (demangle_component *)0x0 ||\n                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n                (iVar7 = d_discriminator(di), iVar7 != 0)))) {\n              iVar7 = di->next_comp;\n              if (iVar7 < di->num_comps) {\n                pdVar2 = di->comps + iVar7;\n                pdVar2->d_printing = 0;\n                di->next_comp = iVar7 + 1;\n                pdVar2->type = DEMANGLE_COMPONENT_DEFAULT_ARG;\n                (pdVar2->u).s_name.len = iVar6;\n                (pdVar2->u).s_fixed.length = pdVar5;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            pdVar2 = d_name(di);\n            if (((pdVar2 == (demangle_component *)0x0) ||\n                ((pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n               (iVar6 = d_discriminator(di), iVar6 != 0)) goto LAB_001f4ca4;\n          }" if (parenthesized_expression "(pcVar4[1] == 'd')" ( (binary_expression "pcVar4[1] == 'd'" (subscript_expression "pcVar4[1]" identifier [ number_literal ]) == (char_literal "'d'" ' character ')) )) (compound_statement "{\n            di->n = pcVar4 + 2;\n            iVar6 = d_compact_number(di);\n            if ((-1 < iVar6) &&\n               (((pdVar5 = d_name(di), pdVar5 == (demangle_component *)0x0 ||\n                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n                (iVar7 = d_discriminator(di), iVar7 != 0)))) {\n              iVar7 = di->next_comp;\n              if (iVar7 < di->num_comps) {\n                pdVar2 = di->comps + iVar7;\n                pdVar2->d_printing = 0;\n                di->next_comp = iVar7 + 1;\n                pdVar2->type = DEMANGLE_COMPONENT_DEFAULT_ARG;\n                (pdVar2->u).s_name.len = iVar6;\n                (pdVar2->u).s_fixed.length = pdVar5;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }" { (expression_statement "di->n = pcVar4 + 2;" (assignment_expression "di->n = pcVar4 + 2" (field_expression "di->n" identifier -> field_identifier) = (binary_expression "pcVar4 + 2" identifier + number_literal)) ;) (expression_statement "iVar6 = d_compact_number(di);" (assignment_expression "iVar6 = d_compact_number(di)" identifier = (call_expression "d_compact_number(di)" identifier (argument_list "(di)" ( identifier )))) ;) (if_statement "if ((-1 < iVar6) &&\n               (((pdVar5 = d_name(di), pdVar5 == (demangle_component *)0x0 ||\n                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n                (iVar7 = d_discriminator(di), iVar7 != 0)))) {\n              iVar7 = di->next_comp;\n              if (iVar7 < di->num_comps) {\n                pdVar2 = di->comps + iVar7;\n                pdVar2->d_printing = 0;\n                di->next_comp = iVar7 + 1;\n                pdVar2->type = DEMANGLE_COMPONENT_DEFAULT_ARG;\n                (pdVar2->u).s_name.len = iVar6;\n                (pdVar2->u).s_fixed.length = pdVar5;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }" if (parenthesized_expression "((-1 < iVar6) &&\n               (((pdVar5 = d_name(di), pdVar5 == (demangle_component *)0x0 ||\n                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n                (iVar7 = d_discriminator(di), iVar7 != 0))))" ( (binary_expression "(-1 < iVar6) &&\n               (((pdVar5 = d_name(di), pdVar5 == (demangle_component *)0x0 ||\n                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n                (iVar7 = d_discriminator(di), iVar7 != 0)))" (parenthesized_expression "(-1 < iVar6)" ( (binary_expression "-1 < iVar6" number_literal < identifier) )) && (parenthesized_expression "(((pdVar5 = d_name(di), pdVar5 == (demangle_component *)0x0 ||\n                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n                (iVar7 = d_discriminator(di), iVar7 != 0)))" ( (parenthesized_expression "((pdVar5 = d_name(di), pdVar5 == (demangle_component *)0x0 ||\n                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n                (iVar7 = d_discriminator(di), iVar7 != 0))" ( (binary_expression "(pdVar5 = d_name(di), pdVar5 == (demangle_component *)0x0 ||\n                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n                (iVar7 = d_discriminator(di), iVar7 != 0)" (parenthesized_expression "(pdVar5 = d_name(di), pdVar5 == (demangle_component *)0x0 ||\n                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA))" ( (comma_expression "pdVar5 = d_name(di), pdVar5 == (demangle_component *)0x0 ||\n                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)" (assignment_expression "pdVar5 = d_name(di)" identifier = (call_expression "d_name(di)" identifier (argument_list "(di)" ( identifier )))) , (binary_expression "pdVar5 == (demangle_component *)0x0 ||\n                 ((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)" (binary_expression "pdVar5 == (demangle_component *)0x0" identifier == (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "((pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)" ( (binary_expression "(pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA" (parenthesized_expression "(pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME)" ( (binary_expression "pdVar5->type & ~DEMANGLE_COMPONENT_LOCAL_NAME" (field_expression "pdVar5->type" identifier -> field_identifier) & (unary_expression "~DEMANGLE_COMPONENT_LOCAL_NAME" ~ identifier)) )) == identifier) )))) )) || (parenthesized_expression "(iVar7 = d_discriminator(di), iVar7 != 0)" ( (comma_expression "iVar7 = d_discriminator(di), iVar7 != 0" (assignment_expression "iVar7 = d_discriminator(di)" identifier = (call_expression "d_discriminator(di)" identifier (argument_list "(di)" ( identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n              iVar7 = di->next_comp;\n              if (iVar7 < di->num_comps) {\n                pdVar2 = di->comps + iVar7;\n                pdVar2->d_printing = 0;\n                di->next_comp = iVar7 + 1;\n                pdVar2->type = DEMANGLE_COMPONENT_DEFAULT_ARG;\n                (pdVar2->u).s_name.len = iVar6;\n                (pdVar2->u).s_fixed.length = pdVar5;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }" { (expression_statement "iVar7 = di->next_comp;" (assignment_expression "iVar7 = di->next_comp" identifier = (field_expression "di->next_comp" identifier -> field_identifier)) ;) (if_statement "if (iVar7 < di->num_comps) {\n                pdVar2 = di->comps + iVar7;\n                pdVar2->d_printing = 0;\n                di->next_comp = iVar7 + 1;\n                pdVar2->type = DEMANGLE_COMPONENT_DEFAULT_ARG;\n                (pdVar2->u).s_name.len = iVar6;\n                (pdVar2->u).s_fixed.length = pdVar5;\n                goto LAB_001f4ca4;\n              }" if (parenthesized_expression "(iVar7 < di->num_comps)" ( (binary_expression "iVar7 < di->num_comps" identifier < (field_expression "di->num_comps" identifier -> field_identifier)) )) (compound_statement "{\n                pdVar2 = di->comps + iVar7;\n                pdVar2->d_printing = 0;\n                di->next_comp = iVar7 + 1;\n                pdVar2->type = DEMANGLE_COMPONENT_DEFAULT_ARG;\n                (pdVar2->u).s_name.len = iVar6;\n                (pdVar2->u).s_fixed.length = pdVar5;\n                goto LAB_001f4ca4;\n              }" { (expression_statement "pdVar2 = di->comps + iVar7;" (assignment_expression "pdVar2 = di->comps + iVar7" identifier = (binary_expression "di->comps + iVar7" (field_expression "di->comps" identifier -> field_identifier) + identifier)) ;) (expression_statement "pdVar2->d_printing = 0;" (assignment_expression "pdVar2->d_printing = 0" (field_expression "pdVar2->d_printing" identifier -> field_identifier) = number_literal) ;) (expression_statement "di->next_comp = iVar7 + 1;" (assignment_expression "di->next_comp = iVar7 + 1" (field_expression "di->next_comp" identifier -> field_identifier) = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "pdVar2->type = DEMANGLE_COMPONENT_DEFAULT_ARG;" (assignment_expression "pdVar2->type = DEMANGLE_COMPONENT_DEFAULT_ARG" (field_expression "pdVar2->type" identifier -> field_identifier) = identifier) ;) (expression_statement "(pdVar2->u).s_name.len = iVar6;" (assignment_expression "(pdVar2->u).s_name.len = iVar6" (field_expression "(pdVar2->u).s_name.len" (field_expression "(pdVar2->u).s_name" (parenthesized_expression "(pdVar2->u)" ( (field_expression "pdVar2->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(pdVar2->u).s_fixed.length = pdVar5;" (assignment_expression "(pdVar2->u).s_fixed.length = pdVar5" (field_expression "(pdVar2->u).s_fixed.length" (field_expression "(pdVar2->u).s_fixed" (parenthesized_expression "(pdVar2->u)" ( (field_expression "pdVar2->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (goto_statement "goto LAB_001f4ca4;" goto statement_identifier ;) })) (goto_statement "goto LAB_001f514b;" goto statement_identifier ;) })) }) (else_clause "else {\n            pdVar2 = d_name(di);\n            if (((pdVar2 == (demangle_component *)0x0) ||\n                ((pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n               (iVar6 = d_discriminator(di), iVar6 != 0)) goto LAB_001f4ca4;\n          }" else (compound_statement "{\n            pdVar2 = d_name(di);\n            if (((pdVar2 == (demangle_component *)0x0) ||\n                ((pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n               (iVar6 = d_discriminator(di), iVar6 != 0)) goto LAB_001f4ca4;\n          }" { (expression_statement "pdVar2 = d_name(di);" (assignment_expression "pdVar2 = d_name(di)" identifier = (call_expression "d_name(di)" identifier (argument_list "(di)" ( identifier )))) ;) (if_statement "if (((pdVar2 == (demangle_component *)0x0) ||\n                ((pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n               (iVar6 = d_discriminator(di), iVar6 != 0)) goto LAB_001f4ca4;" if (parenthesized_expression "(((pdVar2 == (demangle_component *)0x0) ||\n                ((pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n               (iVar6 = d_discriminator(di), iVar6 != 0))" ( (binary_expression "((pdVar2 == (demangle_component *)0x0) ||\n                ((pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)) ||\n               (iVar6 = d_discriminator(di), iVar6 != 0)" (parenthesized_expression "((pdVar2 == (demangle_component *)0x0) ||\n                ((pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA))" ( (binary_expression "(pdVar2 == (demangle_component *)0x0) ||\n                ((pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)" (parenthesized_expression "(pdVar2 == (demangle_component *)0x0)" ( (binary_expression "pdVar2 == (demangle_component *)0x0" identifier == (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA)" ( (binary_expression "(pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == DEMANGLE_COMPONENT_LAMBDA" (parenthesized_expression "(pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME)" ( (binary_expression "pdVar2->type & ~DEMANGLE_COMPONENT_LOCAL_NAME" (field_expression "pdVar2->type" identifier -> field_identifier) & (unary_expression "~DEMANGLE_COMPONENT_LOCAL_NAME" ~ identifier)) )) == identifier) ))) )) || (parenthesized_expression "(iVar6 = d_discriminator(di), iVar6 != 0)" ( (comma_expression "iVar6 = d_discriminator(di), iVar6 != 0" (assignment_expression "iVar6 = d_discriminator(di)" identifier = (call_expression "d_discriminator(di)" identifier (argument_list "(di)" ( identifier )))) , (binary_expression "iVar6 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_001f4ca4;" goto statement_identifier ;)) }))))) })) }) (else_clause "else {\nLAB_001f4e00:\n        pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n        pcVar4 = di->n;\n        if (*pcVar4 != 'I') {\n          return pdVar1;\n        }\n        if ((pdVar1 != (demangle_component *)0x0) && (iVar6 = di->next_sub, iVar6 < di->num_subs)) {\n          di->subs[iVar6] = pdVar1;\n          di->next_sub = iVar6 + 1;\n          pdVar2 = (demangle_component *)0x0;\n          if ((byte)(*pcVar4 + 0xb7U) < 2) {\n            di->n = pcVar4 + 1;\n            pdVar2 = d_template_args_1(di);\n          }\n          goto LAB_001f4de2;\n        }\n      }" else (compound_statement "{\nLAB_001f4e00:\n        pdVar1 = d_unqualified_name(in_stack_ffffffc4);\n        pcVar4 = di->n;\n        if (*pcVar4 != 'I') {\n          return pdVar1;\n        }\n        if ((pdVar1 != (demangle_component *)0x0) && (iVar6 = di->next_sub, iVar6 < di->num_subs)) {\n          di->subs[iVar6] = pdVar1;\n          di->next_sub = iVar6 + 1;\n          pdVar2 = (demangle_component *)0x0;\n          if ((byte)(*pcVar4 + 0xb7U) < 2) {\n            di->n = pcVar4 + 1;\n            pdVar2 = d_template_args_1(di);\n          }\n          goto LAB_001f4de2;\n        }\n      }" { (labeled_statement "LAB_001f4e00:\n        pdVar1 = d_unqualified_name(in_stack_ffffffc4);" statement_identifier : (expression_statement "pdVar1 = d_unqualified_name(in_stack_ffffffc4);" (assignment_expression "pdVar1 = d_unqualified_name(in_stack_ffffffc4)" identifier = (call_expression "d_unqualified_name(in_stack_ffffffc4)" identifier (argument_list "(in_stack_ffffffc4)" ( identifier )))) ;)) (expression_statement "pcVar4 = di->n;" (assignment_expression "pcVar4 = di->n" identifier = (field_expression "di->n" identifier -> field_identifier)) ;) (if_statement "if (*pcVar4 != 'I') {\n          return pdVar1;\n        }" if (parenthesized_expression "(*pcVar4 != 'I')" ( (binary_expression "*pcVar4 != 'I'" (pointer_expression "*pcVar4" * identifier) != (char_literal "'I'" ' character ')) )) (compound_statement "{\n          return pdVar1;\n        }" { (return_statement "return pdVar1;" return identifier ;) })) (if_statement "if ((pdVar1 != (demangle_component *)0x0) && (iVar6 = di->next_sub, iVar6 < di->num_subs)) {\n          di->subs[iVar6] = pdVar1;\n          di->next_sub = iVar6 + 1;\n          pdVar2 = (demangle_component *)0x0;\n          if ((byte)(*pcVar4 + 0xb7U) < 2) {\n            di->n = pcVar4 + 1;\n            pdVar2 = d_template_args_1(di);\n          }\n          goto LAB_001f4de2;\n        }" if (parenthesized_expression "((pdVar1 != (demangle_component *)0x0) && (iVar6 = di->next_sub, iVar6 < di->num_subs))" ( (binary_expression "(pdVar1 != (demangle_component *)0x0) && (iVar6 = di->next_sub, iVar6 < di->num_subs)" (parenthesized_expression "(pdVar1 != (demangle_component *)0x0)" ( (binary_expression "pdVar1 != (demangle_component *)0x0" identifier != (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar6 = di->next_sub, iVar6 < di->num_subs)" ( (comma_expression "iVar6 = di->next_sub, iVar6 < di->num_subs" (assignment_expression "iVar6 = di->next_sub" identifier = (field_expression "di->next_sub" identifier -> field_identifier)) , (binary_expression "iVar6 < di->num_subs" identifier < (field_expression "di->num_subs" identifier -> field_identifier))) ))) )) (compound_statement "{\n          di->subs[iVar6] = pdVar1;\n          di->next_sub = iVar6 + 1;\n          pdVar2 = (demangle_component *)0x0;\n          if ((byte)(*pcVar4 + 0xb7U) < 2) {\n            di->n = pcVar4 + 1;\n            pdVar2 = d_template_args_1(di);\n          }\n          goto LAB_001f4de2;\n        }" { (expression_statement "di->subs[iVar6] = pdVar1;" (assignment_expression "di->subs[iVar6] = pdVar1" (subscript_expression "di->subs[iVar6]" (field_expression "di->subs" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "di->next_sub = iVar6 + 1;" (assignment_expression "di->next_sub = iVar6 + 1" (field_expression "di->next_sub" identifier -> field_identifier) = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "pdVar2 = (demangle_component *)0x0;" (assignment_expression "pdVar2 = (demangle_component *)0x0" identifier = (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((byte)(*pcVar4 + 0xb7U) < 2) {\n            di->n = pcVar4 + 1;\n            pdVar2 = d_template_args_1(di);\n          }" if (parenthesized_expression "((byte)(*pcVar4 + 0xb7U) < 2)" ( (binary_expression "(byte)(*pcVar4 + 0xb7U) < 2" (call_expression "(byte)(*pcVar4 + 0xb7U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pcVar4 + 0xb7U)" ( (binary_expression "*pcVar4 + 0xb7U" (pointer_expression "*pcVar4" * identifier) + number_literal) ))) < number_literal) )) (compound_statement "{\n            di->n = pcVar4 + 1;\n            pdVar2 = d_template_args_1(di);\n          }" { (expression_statement "di->n = pcVar4 + 1;" (assignment_expression "di->n = pcVar4 + 1" (field_expression "di->n" identifier -> field_identifier) = (binary_expression "pcVar4 + 1" identifier + number_literal)) ;) (expression_statement "pdVar2 = d_template_args_1(di);" (assignment_expression "pdVar2 = d_template_args_1(di)" identifier = (call_expression "d_template_args_1(di)" identifier (argument_list "(di)" ( identifier )))) ;) })) (goto_statement "goto LAB_001f4de2;" goto statement_identifier ;) })) }))) }))) (labeled_statement "LAB_001f4da6:\n    pdVar1 = (demangle_component *)0x0;" statement_identifier : (expression_statement "pdVar1 = (demangle_component *)0x0;" (assignment_expression "pdVar1 = (demangle_component *)0x0" identifier = (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }))) (return_statement "return pdVar1;" return identifier ;) (labeled_statement "code_r0x001f4d77:\n  if ((pdVar5 == (demangle_component *)0x0) || (iVar6 = di->next_sub, di->num_subs <= iVar6))\n  goto LAB_001f4da0;" statement_identifier : (if_statement "if ((pdVar5 == (demangle_component *)0x0) || (iVar6 = di->next_sub, di->num_subs <= iVar6))\n  goto LAB_001f4da0;" if (parenthesized_expression "((pdVar5 == (demangle_component *)0x0) || (iVar6 = di->next_sub, di->num_subs <= iVar6))" ( (binary_expression "(pdVar5 == (demangle_component *)0x0) || (iVar6 = di->next_sub, di->num_subs <= iVar6)" (parenthesized_expression "(pdVar5 == (demangle_component *)0x0)" ( (binary_expression "pdVar5 == (demangle_component *)0x0" identifier == (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar6 = di->next_sub, di->num_subs <= iVar6)" ( (comma_expression "iVar6 = di->next_sub, di->num_subs <= iVar6" (assignment_expression "iVar6 = di->next_sub" identifier = (field_expression "di->next_sub" identifier -> field_identifier)) , (binary_expression "di->num_subs <= iVar6" (field_expression "di->num_subs" identifier -> field_identifier) <= identifier)) ))) )) (goto_statement "goto LAB_001f4da0;" goto statement_identifier ;))) (expression_statement "di->subs[iVar6] = pdVar5;" (assignment_expression "di->subs[iVar6] = pdVar5" (subscript_expression "di->subs[iVar6]" (field_expression "di->subs" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "di->next_sub = iVar6 + 1;" (assignment_expression "di->next_sub = iVar6 + 1" (field_expression "di->next_sub" identifier -> field_identifier) = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "bVar8 = *pbVar10;" (assignment_expression "bVar8 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (expression_statement "pbVar9 = pbVar10;" (assignment_expression "pbVar9 = pbVar10" identifier = identifier) ;) (labeled_statement "LAB_001f4d92:\n  uVar12 = (uint)bVar8;" statement_identifier : (expression_statement "uVar12 = (uint)bVar8;" (assignment_expression "uVar12 = (uint)bVar8" identifier = (cast_expression "(uint)bVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "pdVar1 = pdVar5;" (assignment_expression "pdVar1 = pdVar5" identifier = identifier) ;) (goto_statement "goto LAB_001f4d13;" goto statement_identifier ;) (labeled_statement "LAB_001f4da0:\n  *ppdVar3 = (demangle_component *)0x0;" statement_identifier : (expression_statement "*ppdVar3 = (demangle_component *)0x0;" (assignment_expression "*ppdVar3 = (demangle_component *)0x0" (pointer_expression "*ppdVar3" * identifier) = (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_001f4da6;" goto statement_identifier ;) }))
(translation_unit "int __regparm3 FUN_001f4c10(int param_1)\n\n{\n  int *piVar1;\n  uint *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  uint *puVar9;\n  byte bVar10;\n  undefined4 *puVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  char cVar14;\n  int local_20;\n  \n  pcVar6 = *(char **)(param_1 + 0xc);\n  cVar14 = *pcVar6;\n  if (cVar14 == 'S') {\n    if (pcVar6[1] == 't') {\n      *(char **)(param_1 + 0xc) = pcVar6 + 2;\n      uVar7 = FUN_001f46f0();\n      iVar3 = *(int *)(param_1 + 0x14);\n      if (iVar3 < *(int *)(param_1 + 0x18)) {\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }\n      iVar3 = FUN_001ec770(uVar7);\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3;\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\n      if ((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))\n      goto LAB_001f4da6;\n      *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n      *(int *)(param_1 + 0x20) = iVar4 + 1;\n      if ((byte)(*pcVar6 + 0xb7U) < 2) goto LAB_001f4dd5;\n      uVar7 = 0;\n    }\n    else {\n      iVar3 = FUN_001eccd0();\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\nLAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      uVar7 = FUN_001f5c00();\n    }\nLAB_001f4de2:\n    iVar3 = FUN_001ec770(uVar7);\n  }\n  else {\n    if (cVar14 < 'T') {\n      if (cVar14 != 'N') goto LAB_001f4e00;\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      piVar1 = (int *)FUN_001f6430();\n      if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }\n    }\n    else {\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }\nLAB_001f4da6:\n    iVar3 = 0;\n  }\n  return iVar3;\ncode_r0x001f4d77:\n  if ((iVar5 == 0) || (iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3))\n  goto LAB_001f4da0;\n  *(int *)(*(int *)(param_1 + 0x1c) + iVar3 * 4) = iVar5;\n  *(int *)(param_1 + 0x20) = iVar3 + 1;\n  bVar10 = *pbVar13;\n  pbVar12 = pbVar13;\nLAB_001f4d92:\n  uVar8 = (uint)bVar10;\n  iVar3 = iVar5;\n  goto LAB_001f4d13;\n}\n\n" (function_definition "int __regparm3 FUN_001f4c10(int param_1)\n\n{\n  int *piVar1;\n  uint *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  uint *puVar9;\n  byte bVar10;\n  undefined4 *puVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  char cVar14;\n  int local_20;\n  \n  pcVar6 = *(char **)(param_1 + 0xc);\n  cVar14 = *pcVar6;\n  if (cVar14 == 'S') {\n    if (pcVar6[1] == 't') {\n      *(char **)(param_1 + 0xc) = pcVar6 + 2;\n      uVar7 = FUN_001f46f0();\n      iVar3 = *(int *)(param_1 + 0x14);\n      if (iVar3 < *(int *)(param_1 + 0x18)) {\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }\n      iVar3 = FUN_001ec770(uVar7);\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3;\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\n      if ((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))\n      goto LAB_001f4da6;\n      *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n      *(int *)(param_1 + 0x20) = iVar4 + 1;\n      if ((byte)(*pcVar6 + 0xb7U) < 2) goto LAB_001f4dd5;\n      uVar7 = 0;\n    }\n    else {\n      iVar3 = FUN_001eccd0();\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\nLAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      uVar7 = FUN_001f5c00();\n    }\nLAB_001f4de2:\n    iVar3 = FUN_001ec770(uVar7);\n  }\n  else {\n    if (cVar14 < 'T') {\n      if (cVar14 != 'N') goto LAB_001f4e00;\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      piVar1 = (int *)FUN_001f6430();\n      if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }\n    }\n    else {\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }\nLAB_001f4da6:\n    iVar3 = 0;\n  }\n  return iVar3;\ncode_r0x001f4d77:\n  if ((iVar5 == 0) || (iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3))\n  goto LAB_001f4da0;\n  *(int *)(*(int *)(param_1 + 0x1c) + iVar3 * 4) = iVar5;\n  *(int *)(param_1 + 0x20) = iVar3 + 1;\n  bVar10 = *pbVar13;\n  pbVar12 = pbVar13;\nLAB_001f4d92:\n  uVar8 = (uint)bVar10;\n  iVar3 = iVar5;\n  goto LAB_001f4d13;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_001f4c10(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  uint *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  uint *puVar9;\n  byte bVar10;\n  undefined4 *puVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  char cVar14;\n  int local_20;\n  \n  pcVar6 = *(char **)(param_1 + 0xc);\n  cVar14 = *pcVar6;\n  if (cVar14 == 'S') {\n    if (pcVar6[1] == 't') {\n      *(char **)(param_1 + 0xc) = pcVar6 + 2;\n      uVar7 = FUN_001f46f0();\n      iVar3 = *(int *)(param_1 + 0x14);\n      if (iVar3 < *(int *)(param_1 + 0x18)) {\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }\n      iVar3 = FUN_001ec770(uVar7);\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3;\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\n      if ((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))\n      goto LAB_001f4da6;\n      *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n      *(int *)(param_1 + 0x20) = iVar4 + 1;\n      if ((byte)(*pcVar6 + 0xb7U) < 2) goto LAB_001f4dd5;\n      uVar7 = 0;\n    }\n    else {\n      iVar3 = FUN_001eccd0();\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\nLAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      uVar7 = FUN_001f5c00();\n    }\nLAB_001f4de2:\n    iVar3 = FUN_001ec770(uVar7);\n  }\n  else {\n    if (cVar14 < 'T') {\n      if (cVar14 != 'N') goto LAB_001f4e00;\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      piVar1 = (int *)FUN_001f6430();\n      if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }\n    }\n    else {\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }\nLAB_001f4da6:\n    iVar3 = 0;\n  }\n  return iVar3;\ncode_r0x001f4d77:\n  if ((iVar5 == 0) || (iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3))\n  goto LAB_001f4da0;\n  *(int *)(*(int *)(param_1 + 0x1c) + iVar3 * 4) = iVar5;\n  *(int *)(param_1 + 0x20) = iVar3 + 1;\n  bVar10 = *pbVar13;\n  pbVar12 = pbVar13;\nLAB_001f4d92:\n  uVar8 = (uint)bVar10;\n  iVar3 = iVar5;\n  goto LAB_001f4d13;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "uint *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "char cVar14;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "pcVar6 = *(char **)(param_1 + 0xc);" (assignment_expression "pcVar6 = *(char **)(param_1 + 0xc)" identifier = (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "cVar14 = *pcVar6;" (assignment_expression "cVar14 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (if_statement "if (cVar14 == 'S') {\n    if (pcVar6[1] == 't') {\n      *(char **)(param_1 + 0xc) = pcVar6 + 2;\n      uVar7 = FUN_001f46f0();\n      iVar3 = *(int *)(param_1 + 0x14);\n      if (iVar3 < *(int *)(param_1 + 0x18)) {\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }\n      iVar3 = FUN_001ec770(uVar7);\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3;\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\n      if ((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))\n      goto LAB_001f4da6;\n      *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n      *(int *)(param_1 + 0x20) = iVar4 + 1;\n      if ((byte)(*pcVar6 + 0xb7U) < 2) goto LAB_001f4dd5;\n      uVar7 = 0;\n    }\n    else {\n      iVar3 = FUN_001eccd0();\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\nLAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      uVar7 = FUN_001f5c00();\n    }\nLAB_001f4de2:\n    iVar3 = FUN_001ec770(uVar7);\n  }\n  else {\n    if (cVar14 < 'T') {\n      if (cVar14 != 'N') goto LAB_001f4e00;\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      piVar1 = (int *)FUN_001f6430();\n      if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }\n    }\n    else {\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }\nLAB_001f4da6:\n    iVar3 = 0;\n  }" if (parenthesized_expression "(cVar14 == 'S')" ( (binary_expression "cVar14 == 'S'" identifier == (char_literal "'S'" ' character ')) )) (compound_statement "{\n    if (pcVar6[1] == 't') {\n      *(char **)(param_1 + 0xc) = pcVar6 + 2;\n      uVar7 = FUN_001f46f0();\n      iVar3 = *(int *)(param_1 + 0x14);\n      if (iVar3 < *(int *)(param_1 + 0x18)) {\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }\n      iVar3 = FUN_001ec770(uVar7);\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3;\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\n      if ((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))\n      goto LAB_001f4da6;\n      *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n      *(int *)(param_1 + 0x20) = iVar4 + 1;\n      if ((byte)(*pcVar6 + 0xb7U) < 2) goto LAB_001f4dd5;\n      uVar7 = 0;\n    }\n    else {\n      iVar3 = FUN_001eccd0();\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\nLAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      uVar7 = FUN_001f5c00();\n    }\nLAB_001f4de2:\n    iVar3 = FUN_001ec770(uVar7);\n  }" { (if_statement "if (pcVar6[1] == 't') {\n      *(char **)(param_1 + 0xc) = pcVar6 + 2;\n      uVar7 = FUN_001f46f0();\n      iVar3 = *(int *)(param_1 + 0x14);\n      if (iVar3 < *(int *)(param_1 + 0x18)) {\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }\n      iVar3 = FUN_001ec770(uVar7);\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3;\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\n      if ((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))\n      goto LAB_001f4da6;\n      *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n      *(int *)(param_1 + 0x20) = iVar4 + 1;\n      if ((byte)(*pcVar6 + 0xb7U) < 2) goto LAB_001f4dd5;\n      uVar7 = 0;\n    }\n    else {\n      iVar3 = FUN_001eccd0();\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\nLAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      uVar7 = FUN_001f5c00();\n    }" if (parenthesized_expression "(pcVar6[1] == 't')" ( (binary_expression "pcVar6[1] == 't'" (subscript_expression "pcVar6[1]" identifier [ number_literal ]) == (char_literal "'t'" ' character ')) )) (compound_statement "{\n      *(char **)(param_1 + 0xc) = pcVar6 + 2;\n      uVar7 = FUN_001f46f0();\n      iVar3 = *(int *)(param_1 + 0x14);\n      if (iVar3 < *(int *)(param_1 + 0x18)) {\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }\n      iVar3 = FUN_001ec770(uVar7);\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3;\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\n      if ((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))\n      goto LAB_001f4da6;\n      *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n      *(int *)(param_1 + 0x20) = iVar4 + 1;\n      if ((byte)(*pcVar6 + 0xb7U) < 2) goto LAB_001f4dd5;\n      uVar7 = 0;\n    }" { (expression_statement "*(char **)(param_1 + 0xc) = pcVar6 + 2;" (assignment_expression "*(char **)(param_1 + 0xc) = pcVar6 + 2" (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar6 + 2" identifier + number_literal)) ;) (expression_statement "uVar7 = FUN_001f46f0();" (assignment_expression "uVar7 = FUN_001f46f0()" identifier = (call_expression "FUN_001f46f0()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x14)" identifier = (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 < *(int *)(param_1 + 0x18)) {\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }" if (parenthesized_expression "(iVar3 < *(int *)(param_1 + 0x18))" ( (binary_expression "iVar3 < *(int *)(param_1 + 0x18)" identifier < (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }" { (expression_statement "*(int *)(param_1 + 0x14) = iVar3 + 1;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar3 + 1" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));" (assignment_expression "puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" identifier = (cast_expression "(undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" ( (binary_expression "iVar3 * 0x10 + *(int *)(param_1 + 0x10)" (binary_expression "iVar3 * 0x10" identifier * number_literal) + (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) )))) ;) (expression_statement "puVar11[1] = 0;" (assignment_expression "puVar11[1] = 0" (subscript_expression "puVar11[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar11 = 0;" (assignment_expression "*puVar11 = 0" (pointer_expression "*puVar11" * identifier) = number_literal) ;) (expression_statement "puVar11[2] = &DAT_002bdf00;" (assignment_expression "puVar11[2] = &DAT_002bdf00" (subscript_expression "puVar11[2]" identifier [ number_literal ]) = (pointer_expression "&DAT_002bdf00" & identifier)) ;) (expression_statement "puVar11[3] = 3;" (assignment_expression "puVar11[3] = 3" (subscript_expression "puVar11[3]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "iVar3 = FUN_001ec770(uVar7);" (assignment_expression "iVar3 = FUN_001ec770(uVar7)" identifier = (call_expression "FUN_001ec770(uVar7)" identifier (argument_list "(uVar7)" ( identifier )))) ;) (expression_statement "*(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3;" (assignment_expression "*(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x2c) + 3" (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pcVar6 = *(char **)(param_1 + 0xc);" (assignment_expression "pcVar6 = *(char **)(param_1 + 0xc)" identifier = (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar6 != 'I') {\n        return iVar3;\n      }" if (parenthesized_expression "(*pcVar6 != 'I')" ( (binary_expression "*pcVar6 != 'I'" (pointer_expression "*pcVar6" * identifier) != (char_literal "'I'" ' character ')) )) (compound_statement "{\n        return iVar3;\n      }" { (return_statement "return iVar3;" return identifier ;) })) (if_statement "if ((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))\n      goto LAB_001f4da6;" if (parenthesized_expression "((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))" ( (binary_expression "(iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4)" ( (comma_expression "iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4" (assignment_expression "iVar4 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) , (binary_expression "*(int *)(param_1 + 0x24) <= iVar4" (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) <= identifier)) ))) )) (goto_statement "goto LAB_001f4da6;" goto statement_identifier ;)) (expression_statement "*(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;" (assignment_expression "*(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3" (pointer_expression "*(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4)" * (cast_expression "(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x1c) + iVar4 * 4)" ( (binary_expression "*(int *)(param_1 + 0x1c) + iVar4 * 4" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x20) = iVar4 + 1;" (assignment_expression "*(int *)(param_1 + 0x20) = iVar4 + 1" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (if_statement "if ((byte)(*pcVar6 + 0xb7U) < 2) goto LAB_001f4dd5;" if (parenthesized_expression "((byte)(*pcVar6 + 0xb7U) < 2)" ( (binary_expression "(byte)(*pcVar6 + 0xb7U) < 2" (call_expression "(byte)(*pcVar6 + 0xb7U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pcVar6 + 0xb7U)" ( (binary_expression "*pcVar6 + 0xb7U" (pointer_expression "*pcVar6" * identifier) + number_literal) ))) < number_literal) )) (goto_statement "goto LAB_001f4dd5;" goto statement_identifier ;)) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      iVar3 = FUN_001eccd0();\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\nLAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      uVar7 = FUN_001f5c00();\n    }" else (compound_statement "{\n      iVar3 = FUN_001eccd0();\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\nLAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      uVar7 = FUN_001f5c00();\n    }" { (expression_statement "iVar3 = FUN_001eccd0();" (assignment_expression "iVar3 = FUN_001eccd0()" identifier = (call_expression "FUN_001eccd0()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar6 = *(char **)(param_1 + 0xc);" (assignment_expression "pcVar6 = *(char **)(param_1 + 0xc)" identifier = (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar6 != 'I') {\n        return iVar3;\n      }" if (parenthesized_expression "(*pcVar6 != 'I')" ( (binary_expression "*pcVar6 != 'I'" (pointer_expression "*pcVar6" * identifier) != (char_literal "'I'" ' character ')) )) (compound_statement "{\n        return iVar3;\n      }" { (return_statement "return iVar3;" return identifier ;) })) (labeled_statement "LAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;" statement_identifier : (expression_statement "*(char **)(param_1 + 0xc) = pcVar6 + 1;" (assignment_expression "*(char **)(param_1 + 0xc) = pcVar6 + 1" (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;)) (expression_statement "uVar7 = FUN_001f5c00();" (assignment_expression "uVar7 = FUN_001f5c00()" identifier = (call_expression "FUN_001f5c00()" identifier (argument_list "()" ( )))) ;) }))) (labeled_statement "LAB_001f4de2:\n    iVar3 = FUN_001ec770(uVar7);" statement_identifier : (expression_statement "iVar3 = FUN_001ec770(uVar7);" (assignment_expression "iVar3 = FUN_001ec770(uVar7)" identifier = (call_expression "FUN_001ec770(uVar7)" identifier (argument_list "(uVar7)" ( identifier )))) ;)) }) (else_clause "else {\n    if (cVar14 < 'T') {\n      if (cVar14 != 'N') goto LAB_001f4e00;\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      piVar1 = (int *)FUN_001f6430();\n      if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }\n    }\n    else {\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }\nLAB_001f4da6:\n    iVar3 = 0;\n  }" else (compound_statement "{\n    if (cVar14 < 'T') {\n      if (cVar14 != 'N') goto LAB_001f4e00;\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      piVar1 = (int *)FUN_001f6430();\n      if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }\n    }\n    else {\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }\nLAB_001f4da6:\n    iVar3 = 0;\n  }" { (if_statement "if (cVar14 < 'T') {\n      if (cVar14 != 'N') goto LAB_001f4e00;\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      piVar1 = (int *)FUN_001f6430();\n      if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }\n    }\n    else {\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }" if (parenthesized_expression "(cVar14 < 'T')" ( (binary_expression "cVar14 < 'T'" identifier < (char_literal "'T'" ' character ')) )) (compound_statement "{\n      if (cVar14 != 'N') goto LAB_001f4e00;\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      piVar1 = (int *)FUN_001f6430();\n      if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }\n    }" { (if_statement "if (cVar14 != 'N') goto LAB_001f4e00;" if (parenthesized_expression "(cVar14 != 'N')" ( (binary_expression "cVar14 != 'N'" identifier != (char_literal "'N'" ' character ')) )) (goto_statement "goto LAB_001f4e00;" goto statement_identifier ;)) (expression_statement "*(char **)(param_1 + 0xc) = pcVar6 + 1;" (assignment_expression "*(char **)(param_1 + 0xc) = pcVar6 + 1" (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "piVar1 = (int *)FUN_001f6430();" (assignment_expression "piVar1 = (int *)FUN_001f6430()" identifier = (cast_expression "(int *)FUN_001f6430()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001f6430()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }" if (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }" { (expression_statement "iVar4 = FUN_001ec7e0();" (assignment_expression "iVar4 = FUN_001ec7e0()" identifier = (call_expression "FUN_001ec7e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "pbVar12 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar12 = *(byte **)(param_1 + 0xc)" identifier = (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = (uint)*pbVar12;" (assignment_expression "uVar8 = (uint)*pbVar12" identifier = (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (labeled_statement "LAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }" statement_identifier : (if_statement "if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }" if (parenthesized_expression "((char)uVar8 != '\0')" ( (binary_expression "(char)uVar8 != '\0'" (cast_expression "(char)uVar8" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }" { (expression_statement "pbVar13 = pbVar12;" (assignment_expression "pbVar13 = pbVar12" identifier = identifier) ;) (if_statement "if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }" if (parenthesized_expression "((char)uVar8 == 'D')" ( (binary_expression "(char)uVar8 == 'D'" (cast_expression "(char)uVar8" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'D'" ' character ')) )) (compound_statement "{\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }" { (expression_statement "cVar14 = 'D';" (assignment_expression "cVar14 = 'D'" identifier = (char_literal "'D'" ' character ')) ;) (if_statement "if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }" if (parenthesized_expression "((pbVar12[1] & 0xdf) == 0x54)" ( (binary_expression "(pbVar12[1] & 0xdf) == 0x54" (parenthesized_expression "(pbVar12[1] & 0xdf)" ( (binary_expression "pbVar12[1] & 0xdf" (subscript_expression "pbVar12[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }" { (expression_statement "iVar5 = FUN_001f3b10(param_1);" (assignment_expression "iVar5 = FUN_001f3b10(param_1)" identifier = (call_expression "FUN_001f3b10(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (goto_statement "goto LAB_001f4f17;" goto statement_identifier ;) })) (expression_statement "iVar5 = FUN_001f46f0();" (assignment_expression "iVar5 = FUN_001f46f0()" identifier = (call_expression "FUN_001f46f0()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_001f4f17;" goto statement_identifier ;) })) (labeled_statement "LAB_001f4d24:\n          cVar14 = (char)uVar8;" statement_identifier : (expression_statement "cVar14 = (char)uVar8;" (assignment_expression "cVar14 = (char)uVar8" identifier = (cast_expression "(char)uVar8" ( (type_descriptor "char" primitive_type) ) identifier)) ;)) (if_statement "if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }" if (parenthesized_expression "((byte)(uVar8 - 0x30) < 0x1d)" ( (binary_expression "(byte)(uVar8 - 0x30) < 0x1d" (call_expression "(byte)(uVar8 - 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar8 - 0x30)" ( (binary_expression "uVar8 - 0x30" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }" { (if_statement "if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;" if (parenthesized_expression "((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0)" ( (binary_expression "(0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0" (parenthesized_expression "(0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1)" ( (binary_expression "0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1" (binary_expression "0x100803ffU >> (uVar8 - 0x30 & 0x1f)" number_literal >> (parenthesized_expression "(uVar8 - 0x30 & 0x1f)" ( (binary_expression "uVar8 - 0x30 & 0x1f" (binary_expression "uVar8 - 0x30" identifier - number_literal) & number_literal) ))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_001f4d3d;" goto statement_identifier ;)) (labeled_statement "LAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }" statement_identifier : (if_statement "if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }" if (parenthesized_expression "(cVar14 == 'I')" ( (binary_expression "cVar14 == 'I'" identifier == (char_literal "'I'" ' character ')) )) (compound_statement "{\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }" { (if_statement "if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }" { (expression_statement "*(byte **)(param_1 + 0xc) = pbVar13 + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar13 + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (expression_statement "iVar5 = FUN_001f5c00();" (assignment_expression "iVar5 = FUN_001f5c00()" identifier = (call_expression "FUN_001f5c00()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_001f4d51;" goto statement_identifier ;) })) (goto_statement "goto LAB_001f4da0;" goto statement_identifier ;) }))) (if_statement "if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }" if (parenthesized_expression "(cVar14 != 'T')" ( (binary_expression "cVar14 != 'T'" identifier != (char_literal "'T'" ' character ')) )) (compound_statement "{\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }" { (if_statement "if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }" if (parenthesized_expression "(cVar14 == 'E')" ( (binary_expression "cVar14 == 'E'" identifier == (char_literal "'E'" ' character ')) )) (compound_statement "{\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }" { (expression_statement "*piVar1 = iVar3;" (assignment_expression "*piVar1 = iVar3" (pointer_expression "*piVar1" * identifier) = identifier) ;) (if_statement "if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }" { (if_statement "if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }" { (expression_statement "*(int *)(iVar4 + 8) = local_20;" (assignment_expression "*(int *)(iVar4 + 8) = local_20" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_20 = iVar4;" (assignment_expression "local_20 = iVar4" identifier = identifier) ;) })) (if_statement "if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }" if (parenthesized_expression "(*pbVar13 == 0x45)" ( (binary_expression "*pbVar13 == 0x45" (pointer_expression "*pbVar13" * identifier) == number_literal) )) (compound_statement "{\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }" { (expression_statement "*(byte **)(param_1 + 0xc) = pbVar13 + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar13 + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (return_statement "return local_20;" return identifier ;) })) })) (goto_statement "goto LAB_001f4da6;" goto statement_identifier ;) })) (if_statement "if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;" if (parenthesized_expression "((iVar3 == 0) || (cVar14 != 'M'))" ( (binary_expression "(iVar3 == 0) || (cVar14 != 'M')" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "(cVar14 != 'M')" ( (binary_expression "cVar14 != 'M'" identifier != (char_literal "'M'" ' character ')) ))) )) (goto_statement "goto LAB_001f4da0;" goto statement_identifier ;)) (expression_statement "pbVar12 = pbVar13 + 1;" (assignment_expression "pbVar12 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (expression_statement "*(byte **)(param_1 + 0xc) = pbVar12;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar12" (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar8 = (uint)pbVar13[1];" (assignment_expression "uVar8 = (uint)pbVar13[1]" identifier = (cast_expression "(uint)pbVar13[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar13[1]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_001f4d13;" goto statement_identifier ;) })) (expression_statement "iVar5 = FUN_001ecaa0();" (assignment_expression "iVar5 = FUN_001ecaa0()" identifier = (call_expression "FUN_001ecaa0()" identifier (argument_list "()" ( )))) ;) (labeled_statement "LAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;" statement_identifier : (if_statement "if (iVar3 != 0) goto LAB_001f4d51;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001f4d51;" goto statement_identifier ;))) (labeled_statement "LAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);" statement_identifier : (expression_statement "pbVar13 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar13 = *(byte **)(param_1 + 0xc)" identifier = (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;)) (expression_statement "bVar10 = *pbVar13;" (assignment_expression "bVar10 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) (goto_statement "goto LAB_001f4d6e;" goto statement_identifier ;) })) (if_statement "if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }" if (parenthesized_expression "((byte)(cVar14 + 0x9fU) < 0x1a)" ( (binary_expression "(byte)(cVar14 + 0x9fU) < 0x1a" (call_expression "(byte)(cVar14 + 0x9fU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar14 + 0x9fU)" ( (binary_expression "cVar14 + 0x9fU" identifier + number_literal) ))) < number_literal) )) (compound_statement "{\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }" { (labeled_statement "LAB_001f4d3d:\n            iVar5 = FUN_001f46f0();" statement_identifier : (expression_statement "iVar5 = FUN_001f46f0();" (assignment_expression "iVar5 = FUN_001f46f0()" identifier = (call_expression "FUN_001f46f0()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar3 != 0) goto LAB_001f4d51;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001f4d51;" goto statement_identifier ;)) }) (else_clause "else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }" else (compound_statement "{\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }" { (if_statement "if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }" if (parenthesized_expression "(cVar14 == 'U')" ( (binary_expression "cVar14 == 'U'" identifier == (char_literal "'U'" ' character ')) )) (compound_statement "{\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }" { (expression_statement "iVar5 = FUN_001f46f0();" (assignment_expression "iVar5 = FUN_001f46f0()" identifier = (call_expression "FUN_001f46f0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) goto LAB_001f4f24;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001f4f24;" goto statement_identifier ;)) (goto_statement "goto LAB_001f4d51;" goto statement_identifier ;) })) (if_statement "if (cVar14 != 'S') goto LAB_001f5000;" if (parenthesized_expression "(cVar14 != 'S')" ( (binary_expression "cVar14 != 'S'" identifier != (char_literal "'S'" ' character ')) )) (goto_statement "goto LAB_001f5000;" goto statement_identifier ;)) (expression_statement "iVar5 = FUN_001eccd0();" (assignment_expression "iVar5 = FUN_001eccd0()" identifier = (call_expression "FUN_001eccd0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }" { (expression_statement "pbVar12 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar12 = *(byte **)(param_1 + 0xc)" identifier = (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = (uint)*pbVar12;" (assignment_expression "uVar8 = (uint)*pbVar12" identifier = (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "iVar3 = iVar5;" (assignment_expression "iVar3 = iVar5" identifier = identifier) ;) (goto_statement "goto LAB_001f4d13;" goto statement_identifier ;) })) (labeled_statement "LAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);" statement_identifier : (expression_statement "iVar5 = FUN_001ec770(iVar5);" (assignment_expression "iVar5 = FUN_001ec770(iVar5)" identifier = (call_expression "FUN_001ec770(iVar5)" identifier (argument_list "(iVar5)" ( identifier )))) ;)) }))) (expression_statement "pbVar13 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar13 = *(byte **)(param_1 + 0xc)" identifier = (pointer_expression "*(byte **)(param_1 + 0xc)" * (cast_expression "(byte **)(param_1 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "bVar10 = *pbVar13;" (assignment_expression "bVar10 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) (expression_statement "pbVar12 = pbVar13;" (assignment_expression "pbVar12 = pbVar13" identifier = identifier) ;) (if_statement "if (cVar14 == 'S') goto LAB_001f4d92;" if (parenthesized_expression "(cVar14 == 'S')" ( (binary_expression "cVar14 == 'S'" identifier == (char_literal "'S'" ' character ')) )) (goto_statement "goto LAB_001f4d92;" goto statement_identifier ;)) (labeled_statement "LAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;" statement_identifier : (if_statement "if (bVar10 != 0x45) goto code_r0x001f4d77;" if (parenthesized_expression "(bVar10 != 0x45)" ( (binary_expression "bVar10 != 0x45" identifier != number_literal) )) (goto_statement "goto code_r0x001f4d77;" goto statement_identifier ;))) (expression_statement "uVar8 = 0x45;" (assignment_expression "uVar8 = 0x45" identifier = number_literal) ;) (expression_statement "iVar3 = iVar5;" (assignment_expression "iVar3 = iVar5" identifier = identifier) ;) (goto_statement "goto LAB_001f4d24;" goto statement_identifier ;) }))) (labeled_statement "LAB_001f4da0:\n        *piVar1 = 0;" statement_identifier : (expression_statement "*piVar1 = 0;" (assignment_expression "*piVar1 = 0" (pointer_expression "*piVar1" * identifier) = number_literal) ;)) })) }) (else_clause "else {\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }" else (compound_statement "{\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }" { (if_statement "if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }" if (parenthesized_expression "(cVar14 == 'U')" ( (binary_expression "cVar14 == 'U'" identifier == (char_literal "'U'" ' character ')) )) (compound_statement "{\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }" { (expression_statement "iVar3 = FUN_001f46f0();" (assignment_expression "iVar3 = FUN_001f46f0()" identifier = (call_expression "FUN_001f46f0()" identifier (argument_list "()" ( )))) ;) (return_statement "return iVar3;" return identifier ;) })) (if_statement "if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }" if (parenthesized_expression "(cVar14 == 'Z')" ( (binary_expression "cVar14 == 'Z'" identifier == (char_literal "'Z'" ' character ')) )) (compound_statement "{\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }" { (expression_statement "*(char **)(param_1 + 0xc) = pcVar6 + 1;" (assignment_expression "*(char **)(param_1 + 0xc) = pcVar6 + 1" (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "piVar1 = (int *)FUN_001f5180();" (assignment_expression "piVar1 = (int *)FUN_001f5180()" identifier = (cast_expression "(int *)FUN_001f5180()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001f5180()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }" if (parenthesized_expression "((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E'))" ( (binary_expression "(piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')" (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')" ( (comma_expression "pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E'" (assignment_expression "pcVar6 = *(char **)(param_1 + 0xc)" identifier = (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) , (binary_expression "*pcVar6 == 'E'" (pointer_expression "*pcVar6" * identifier) == (char_literal "'E'" ' character '))) ))) )) (compound_statement "{\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }" { (expression_statement "*(char **)(param_1 + 0xc) = pcVar6 + 1;" (assignment_expression "*(char **)(param_1 + 0xc) = pcVar6 + 1" (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (if_statement "if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }" if (parenthesized_expression "(pcVar6[1] == 's')" ( (binary_expression "pcVar6[1] == 's'" (subscript_expression "pcVar6[1]" identifier [ number_literal ]) == (char_literal "'s'" ' character ')) )) (compound_statement "{\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }" { (expression_statement "*(char **)(param_1 + 0xc) = pcVar6 + 2;" (assignment_expression "*(char **)(param_1 + 0xc) = pcVar6 + 2" (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar6 + 2" identifier + number_literal)) ;) (expression_statement "iVar3 = FUN_001ecfa0();" (assignment_expression "iVar3 = FUN_001ecfa0()" identifier = (call_expression "FUN_001ecfa0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }" { (expression_statement "iVar3 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x14)" identifier = (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }" if (parenthesized_expression "(iVar3 < *(int *)(param_1 + 0x18))" ( (binary_expression "iVar3 < *(int *)(param_1 + 0x18)" identifier < (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }" { (expression_statement "*(int *)(param_1 + 0x14) = iVar3 + 1;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar3 + 1" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));" (assignment_expression "puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" identifier = (cast_expression "(uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" ( (binary_expression "iVar3 * 0x10 + *(int *)(param_1 + 0x10)" (binary_expression "iVar3 * 0x10" identifier * number_literal) + (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) )))) ;) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (expression_statement "puVar2[2] = (uint)"string literal";" (assignment_expression "puVar2[2] = (uint)"string literal"" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = (cast_expression "(uint)"string literal"" ( (type_descriptor "uint" type_identifier) ) (string_literal ""string literal"" " string_content "))) ;) (expression_statement "puVar2[3] = 0xe;" (assignment_expression "puVar2[3] = 0xe" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_001f4ca4;" goto statement_identifier ;) })) (labeled_statement "LAB_001f514b:\n              puVar2 = (uint *)0x0;" statement_identifier : (expression_statement "puVar2 = (uint *)0x0;" (assignment_expression "puVar2 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (labeled_statement "LAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }" statement_identifier : (if_statement "if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }" if (parenthesized_expression "((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29))" ( (binary_expression "(*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)" (parenthesized_expression "(*piVar1 == 3)" ( (binary_expression "*piVar1 == 3" (pointer_expression "*piVar1" * identifier) == number_literal) )) && (parenthesized_expression "(*(int *)piVar1[3] == 0x29)" ( (binary_expression "*(int *)piVar1[3] == 0x29" (pointer_expression "*(int *)piVar1[3]" * (cast_expression "(int *)piVar1[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar1[3]" identifier [ number_literal ]))) == number_literal) ))) )) (compound_statement "{\n                ((int *)piVar1[3])[2] = 0;\n              }" { (expression_statement "((int *)piVar1[3])[2] = 0;" (assignment_expression "((int *)piVar1[3])[2] = 0" (subscript_expression "((int *)piVar1[3])[2]" (parenthesized_expression "((int *)piVar1[3])" ( (cast_expression "(int *)piVar1[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar1[3]" identifier [ number_literal ])) )) [ number_literal ]) = number_literal) ;) }))) (expression_statement "iVar3 = FUN_001ec770(puVar2);" (assignment_expression "iVar3 = FUN_001ec770(puVar2)" identifier = (call_expression "FUN_001ec770(puVar2)" identifier (argument_list "(puVar2)" ( identifier )))) ;) (return_statement "return iVar3;" return identifier ;) })) }) (else_clause "else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }" else (if_statement "if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }" if (parenthesized_expression "(pcVar6[1] == 'd')" ( (binary_expression "pcVar6[1] == 'd'" (subscript_expression "pcVar6[1]" identifier [ number_literal ]) == (char_literal "'d'" ' character ')) )) (compound_statement "{\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }" { (expression_statement "*(char **)(param_1 + 0xc) = pcVar6 + 2;" (assignment_expression "*(char **)(param_1 + 0xc) = pcVar6 + 2" (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar6 + 2" identifier + number_literal)) ;) (expression_statement "uVar8 = FUN_001eca60();" (assignment_expression "uVar8 = FUN_001eca60()" identifier = (call_expression "FUN_001eca60()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }" if (parenthesized_expression "((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0))))" ( (binary_expression "(-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))" (parenthesized_expression "(-1 < (int)uVar8)" ( (binary_expression "-1 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))" ( (parenthesized_expression "((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0))" ( (binary_expression "(puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)" (parenthesized_expression "(puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45))" ( (comma_expression "puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)" (assignment_expression "puVar9 = (uint *)FUN_001f4c10()" identifier = (cast_expression "(uint *)FUN_001f4c10()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001f4c10()" identifier (argument_list "()" ( ))))) , (binary_expression "puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)" (binary_expression "puVar9 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "((*puVar9 & 0xfffffffd) == 0x45)" ( (binary_expression "(*puVar9 & 0xfffffffd) == 0x45" (parenthesized_expression "(*puVar9 & 0xfffffffd)" ( (binary_expression "*puVar9 & 0xfffffffd" (pointer_expression "*puVar9" * identifier) & number_literal) )) == number_literal) )))) )) || (parenthesized_expression "(iVar3 = FUN_001ecfa0(), iVar3 != 0)" ( (comma_expression "iVar3 = FUN_001ecfa0(), iVar3 != 0" (assignment_expression "iVar3 = FUN_001ecfa0()" identifier = (call_expression "FUN_001ecfa0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }" { (expression_statement "iVar3 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x14)" identifier = (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }" if (parenthesized_expression "(iVar3 < *(int *)(param_1 + 0x18))" ( (binary_expression "iVar3 < *(int *)(param_1 + 0x18)" identifier < (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }" { (expression_statement "puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));" (assignment_expression "puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" identifier = (cast_expression "(uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" ( (binary_expression "iVar3 * 0x10 + *(int *)(param_1 + 0x10)" (binary_expression "iVar3 * 0x10" identifier * number_literal) + (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) )))) ;) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x14) = iVar3 + 1;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar3 + 1" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "*puVar2 = 0x46;" (assignment_expression "*puVar2 = 0x46" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (expression_statement "puVar2[3] = uVar8;" (assignment_expression "puVar2[3] = uVar8" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[2] = (uint)puVar9;" (assignment_expression "puVar2[2] = (uint)puVar9" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_001f4ca4;" goto statement_identifier ;) })) (goto_statement "goto LAB_001f514b;" goto statement_identifier ;) })) }) (else_clause "else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }" else (compound_statement "{\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }" { (expression_statement "puVar2 = (uint *)FUN_001f4c10();" (assignment_expression "puVar2 = (uint *)FUN_001f4c10()" identifier = (cast_expression "(uint *)FUN_001f4c10()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001f4c10()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;" if (parenthesized_expression "(((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0))" ( (binary_expression "((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)" (parenthesized_expression "((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45))" ( (binary_expression "(puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)" (parenthesized_expression "(puVar2 == (uint *)0x0)" ( (binary_expression "puVar2 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((*puVar2 & 0xfffffffd) == 0x45)" ( (binary_expression "(*puVar2 & 0xfffffffd) == 0x45" (parenthesized_expression "(*puVar2 & 0xfffffffd)" ( (binary_expression "*puVar2 & 0xfffffffd" (pointer_expression "*puVar2" * identifier) & number_literal) )) == number_literal) ))) )) || (parenthesized_expression "(iVar3 = FUN_001ecfa0(), iVar3 != 0)" ( (comma_expression "iVar3 = FUN_001ecfa0(), iVar3 != 0" (assignment_expression "iVar3 = FUN_001ecfa0()" identifier = (call_expression "FUN_001ecfa0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_001f4ca4;" goto statement_identifier ;)) }))))) })) }) (else_clause "else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }" else (compound_statement "{\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }" { (labeled_statement "LAB_001f4e00:\n        iVar3 = FUN_001f46f0();" statement_identifier : (expression_statement "iVar3 = FUN_001f46f0();" (assignment_expression "iVar3 = FUN_001f46f0()" identifier = (call_expression "FUN_001f46f0()" identifier (argument_list "()" ( )))) ;)) (expression_statement "pcVar6 = *(char **)(param_1 + 0xc);" (assignment_expression "pcVar6 = *(char **)(param_1 + 0xc)" identifier = (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar6 != 'I') {\n          return iVar3;\n        }" if (parenthesized_expression "(*pcVar6 != 'I')" ( (binary_expression "*pcVar6 != 'I'" (pointer_expression "*pcVar6" * identifier) != (char_literal "'I'" ' character ')) )) (compound_statement "{\n          return iVar3;\n        }" { (return_statement "return iVar3;" return identifier ;) })) (if_statement "if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }" if (parenthesized_expression "((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24)))" ( (binary_expression "(iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))" ( (comma_expression "iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24)" (assignment_expression "iVar4 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) , (binary_expression "iVar4 < *(int *)(param_1 + 0x24)" identifier < (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))))) ))) )) (compound_statement "{\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }" { (expression_statement "*(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;" (assignment_expression "*(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3" (pointer_expression "*(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4)" * (cast_expression "(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x1c) + iVar4 * 4)" ( (binary_expression "*(int *)(param_1 + 0x1c) + iVar4 * 4" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x20) = iVar4 + 1;" (assignment_expression "*(int *)(param_1 + 0x20) = iVar4 + 1" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (if_statement "if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }" if (parenthesized_expression "((byte)(*pcVar6 + 0xb7U) < 2)" ( (binary_expression "(byte)(*pcVar6 + 0xb7U) < 2" (call_expression "(byte)(*pcVar6 + 0xb7U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pcVar6 + 0xb7U)" ( (binary_expression "*pcVar6 + 0xb7U" (pointer_expression "*pcVar6" * identifier) + number_literal) ))) < number_literal) )) (compound_statement "{\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }" { (expression_statement "*(char **)(param_1 + 0xc) = pcVar6 + 1;" (assignment_expression "*(char **)(param_1 + 0xc) = pcVar6 + 1" (pointer_expression "*(char **)(param_1 + 0xc)" * (cast_expression "(char **)(param_1 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "uVar7 = FUN_001f5c00();" (assignment_expression "uVar7 = FUN_001f5c00()" identifier = (call_expression "FUN_001f5c00()" identifier (argument_list "()" ( )))) ;) })) (goto_statement "goto LAB_001f4de2;" goto statement_identifier ;) })) }))) }))) (labeled_statement "LAB_001f4da6:\n    iVar3 = 0;" statement_identifier : (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;)) }))) (return_statement "return iVar3;" return identifier ;) (labeled_statement "code_r0x001f4d77:\n  if ((iVar5 == 0) || (iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3))\n  goto LAB_001f4da0;" statement_identifier : (if_statement "if ((iVar5 == 0) || (iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3))\n  goto LAB_001f4da0;" if (parenthesized_expression "((iVar5 == 0) || (iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3))" ( (binary_expression "(iVar5 == 0) || (iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3)" ( (comma_expression "iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3" (assignment_expression "iVar3 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) , (binary_expression "*(int *)(param_1 + 0x24) <= iVar3" (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) <= identifier)) ))) )) (goto_statement "goto LAB_001f4da0;" goto statement_identifier ;))) (expression_statement "*(int *)(*(int *)(param_1 + 0x1c) + iVar3 * 4) = iVar5;" (assignment_expression "*(int *)(*(int *)(param_1 + 0x1c) + iVar3 * 4) = iVar5" (pointer_expression "*(int *)(*(int *)(param_1 + 0x1c) + iVar3 * 4)" * (cast_expression "(int *)(*(int *)(param_1 + 0x1c) + iVar3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x1c) + iVar3 * 4)" ( (binary_expression "*(int *)(param_1 + 0x1c) + iVar3 * 4" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + (binary_expression "iVar3 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x20) = iVar3 + 1;" (assignment_expression "*(int *)(param_1 + 0x20) = iVar3 + 1" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "bVar10 = *pbVar13;" (assignment_expression "bVar10 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) (expression_statement "pbVar12 = pbVar13;" (assignment_expression "pbVar12 = pbVar13" identifier = identifier) ;) (labeled_statement "LAB_001f4d92:\n  uVar8 = (uint)bVar10;" statement_identifier : (expression_statement "uVar8 = (uint)bVar10;" (assignment_expression "uVar8 = (uint)bVar10" identifier = (cast_expression "(uint)bVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "iVar3 = iVar5;" (assignment_expression "iVar3 = iVar5" identifier = identifier) ;) (goto_statement "goto LAB_001f4d13;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE 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) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (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)) ;) (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 (pointer_expression * IDENT) != (char_literal ' character ')) )) (compound_statement { (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (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) )))) <= IDENT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) + LIT) ))) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 (pointer_expression * IDENT) != (char_literal ' character ')) )) (compound_statement { (return_statement return IDENT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT >> (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) ))) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_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 { (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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (return_statement return IDENT ;) })) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (pointer_expression * IDENT) == (char_literal ' character '))) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )) [ LIT ]) = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (return_statement return IDENT ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) , (binary_expression (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT != LIT)) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) }))))) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (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 (pointer_expression * IDENT) != (char_literal ' character ')) )) (compound_statement { (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) + LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) (goto_statement goto statement_identifier ;) })) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }))) (return_statement return IDENT ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (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) )))) <= IDENT)) ))) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "int __regparm3 FUN_001f4c10(int param_1)\n\n{\n  int *piVar1;\n  uint *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  uint *puVar9;\n  byte bVar10;\n  undefined4 *puVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  char cVar14;\n  int local_20;\n  \n  pcVar6 = *(char **)(param_1 + 0xc);\n  cVar14 = *pcVar6;\n  if (cVar14 == 'S') {\n    if (pcVar6[1] == 't') {\n      *(char **)(param_1 + 0xc) = pcVar6 + 2;\n      uVar7 = FUN_001f46f0();\n      iVar3 = *(int *)(param_1 + 0x14);\n      if (iVar3 < *(int *)(param_1 + 0x18)) {\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }\n      iVar3 = FUN_001ec770(uVar7);\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3;\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\n      if ((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))\n      goto LAB_001f4da6;\n      *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n      *(int *)(param_1 + 0x20) = iVar4 + 1;\n      if ((byte)(*pcVar6 + 0xb7U) < 2) goto LAB_001f4dd5;\n      uVar7 = 0;\n    }\n    else {\n      iVar3 = FUN_001eccd0();\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\nLAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      uVar7 = FUN_001f5c00();\n    }\nLAB_001f4de2:\n    iVar3 = FUN_001ec770(uVar7);\n  }\n  else {\n    if (cVar14 < 'T') {\n      if (cVar14 != 'N') goto LAB_001f4e00;\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      piVar1 = (int *)FUN_001f6430();\n      if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }\n    }\n    else {\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }\nLAB_001f4da6:\n    iVar3 = 0;\n  }\n  return iVar3;\ncode_r0x001f4d77:\n  if ((iVar5 == 0) || (iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3))\n  goto LAB_001f4da0;\n  *(int *)(*(int *)(param_1 + 0x1c) + iVar3 * 4) = iVar5;\n  *(int *)(param_1 + 0x20) = iVar3 + 1;\n  bVar10 = *pbVar13;\n  pbVar12 = pbVar13;\nLAB_001f4d92:\n  uVar8 = (uint)bVar10;\n  iVar3 = iVar5;\n  goto LAB_001f4d13;\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_001f4c10(int param_1)" (identifier "FUN_001f4c10") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  int *piVar1;\n  uint *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  uint *puVar9;\n  byte bVar10;\n  undefined4 *puVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  char cVar14;\n  int local_20;\n  \n  pcVar6 = *(char **)(param_1 + 0xc);\n  cVar14 = *pcVar6;\n  if (cVar14 == 'S') {\n    if (pcVar6[1] == 't') {\n      *(char **)(param_1 + 0xc) = pcVar6 + 2;\n      uVar7 = FUN_001f46f0();\n      iVar3 = *(int *)(param_1 + 0x14);\n      if (iVar3 < *(int *)(param_1 + 0x18)) {\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }\n      iVar3 = FUN_001ec770(uVar7);\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3;\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\n      if ((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))\n      goto LAB_001f4da6;\n      *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n      *(int *)(param_1 + 0x20) = iVar4 + 1;\n      if ((byte)(*pcVar6 + 0xb7U) < 2) goto LAB_001f4dd5;\n      uVar7 = 0;\n    }\n    else {\n      iVar3 = FUN_001eccd0();\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\nLAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      uVar7 = FUN_001f5c00();\n    }\nLAB_001f4de2:\n    iVar3 = FUN_001ec770(uVar7);\n  }\n  else {\n    if (cVar14 < 'T') {\n      if (cVar14 != 'N') goto LAB_001f4e00;\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      piVar1 = (int *)FUN_001f6430();\n      if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }\n    }\n    else {\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }\nLAB_001f4da6:\n    iVar3 = 0;\n  }\n  return iVar3;\ncode_r0x001f4d77:\n  if ((iVar5 == 0) || (iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3))\n  goto LAB_001f4da0;\n  *(int *)(*(int *)(param_1 + 0x1c) + iVar3 * 4) = iVar5;\n  *(int *)(param_1 + 0x20) = iVar3 + 1;\n  bVar10 = *pbVar13;\n  pbVar12 = pbVar13;\nLAB_001f4d92:\n  uVar8 = (uint)bVar10;\n  iVar3 = iVar5;\n  goto LAB_001f4d13;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "uint *puVar2;" (type_identifier "uint") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "uint *puVar9;" (type_identifier "uint") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "byte bVar10;" (type_identifier "byte") (identifier "bVar10") (; ";")) (declaration "undefined4 *puVar11;" (type_identifier "undefined4") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "byte *pbVar12;" (type_identifier "byte") (pointer_declarator "*pbVar12" (* "*") (identifier "pbVar12")) (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "char cVar14;" (primitive_type "char") (identifier "cVar14") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "pcVar6 = *(char **)(param_1 + 0xc);" (assignment_expression "pcVar6 = *(char **)(param_1 + 0xc)" (identifier "pcVar6") (= "=") (pointer_expression "*(char **)(param_1 + 0xc)" (* "*") (cast_expression "(char **)(param_1 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "cVar14 = *pcVar6;" (assignment_expression "cVar14 = *pcVar6" (identifier "cVar14") (= "=") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6"))) (; ";")) (if_statement "if (cVar14 == 'S') {\n    if (pcVar6[1] == 't') {\n      *(char **)(param_1 + 0xc) = pcVar6 + 2;\n      uVar7 = FUN_001f46f0();\n      iVar3 = *(int *)(param_1 + 0x14);\n      if (iVar3 < *(int *)(param_1 + 0x18)) {\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }\n      iVar3 = FUN_001ec770(uVar7);\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3;\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\n      if ((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))\n      goto LAB_001f4da6;\n      *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n      *(int *)(param_1 + 0x20) = iVar4 + 1;\n      if ((byte)(*pcVar6 + 0xb7U) < 2) goto LAB_001f4dd5;\n      uVar7 = 0;\n    }\n    else {\n      iVar3 = FUN_001eccd0();\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\nLAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      uVar7 = FUN_001f5c00();\n    }\nLAB_001f4de2:\n    iVar3 = FUN_001ec770(uVar7);\n  }\n  else {\n    if (cVar14 < 'T') {\n      if (cVar14 != 'N') goto LAB_001f4e00;\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      piVar1 = (int *)FUN_001f6430();\n      if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }\n    }\n    else {\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }\nLAB_001f4da6:\n    iVar3 = 0;\n  }" (if "if") (parenthesized_expression "(cVar14 == 'S')" (( "(") (binary_expression "cVar14 == 'S'" (identifier "cVar14") (== "==") (char_literal "'S'" (' "'") (character "S") (' "'"))) () ")")) (compound_statement "{\n    if (pcVar6[1] == 't') {\n      *(char **)(param_1 + 0xc) = pcVar6 + 2;\n      uVar7 = FUN_001f46f0();\n      iVar3 = *(int *)(param_1 + 0x14);\n      if (iVar3 < *(int *)(param_1 + 0x18)) {\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }\n      iVar3 = FUN_001ec770(uVar7);\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3;\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\n      if ((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))\n      goto LAB_001f4da6;\n      *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n      *(int *)(param_1 + 0x20) = iVar4 + 1;\n      if ((byte)(*pcVar6 + 0xb7U) < 2) goto LAB_001f4dd5;\n      uVar7 = 0;\n    }\n    else {\n      iVar3 = FUN_001eccd0();\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\nLAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      uVar7 = FUN_001f5c00();\n    }\nLAB_001f4de2:\n    iVar3 = FUN_001ec770(uVar7);\n  }" ({ "{") (if_statement "if (pcVar6[1] == 't') {\n      *(char **)(param_1 + 0xc) = pcVar6 + 2;\n      uVar7 = FUN_001f46f0();\n      iVar3 = *(int *)(param_1 + 0x14);\n      if (iVar3 < *(int *)(param_1 + 0x18)) {\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }\n      iVar3 = FUN_001ec770(uVar7);\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3;\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\n      if ((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))\n      goto LAB_001f4da6;\n      *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n      *(int *)(param_1 + 0x20) = iVar4 + 1;\n      if ((byte)(*pcVar6 + 0xb7U) < 2) goto LAB_001f4dd5;\n      uVar7 = 0;\n    }\n    else {\n      iVar3 = FUN_001eccd0();\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\nLAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      uVar7 = FUN_001f5c00();\n    }" (if "if") (parenthesized_expression "(pcVar6[1] == 't')" (( "(") (binary_expression "pcVar6[1] == 't'" (subscript_expression "pcVar6[1]" (identifier "pcVar6") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'t'" (' "'") (character "t") (' "'"))) () ")")) (compound_statement "{\n      *(char **)(param_1 + 0xc) = pcVar6 + 2;\n      uVar7 = FUN_001f46f0();\n      iVar3 = *(int *)(param_1 + 0x14);\n      if (iVar3 < *(int *)(param_1 + 0x18)) {\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }\n      iVar3 = FUN_001ec770(uVar7);\n      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3;\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\n      if ((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))\n      goto LAB_001f4da6;\n      *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n      *(int *)(param_1 + 0x20) = iVar4 + 1;\n      if ((byte)(*pcVar6 + 0xb7U) < 2) goto LAB_001f4dd5;\n      uVar7 = 0;\n    }" ({ "{") (expression_statement "*(char **)(param_1 + 0xc) = pcVar6 + 2;" (assignment_expression "*(char **)(param_1 + 0xc) = pcVar6 + 2" (pointer_expression "*(char **)(param_1 + 0xc)" (* "*") (cast_expression "(char **)(param_1 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pcVar6 + 2" (identifier "pcVar6") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar7 = FUN_001f46f0();" (assignment_expression "uVar7 = FUN_001f46f0()" (identifier "uVar7") (= "=") (call_expression "FUN_001f46f0()" (identifier "FUN_001f46f0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar3 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x14)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (iVar3 < *(int *)(param_1 + 0x18)) {\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }" (if "if") (parenthesized_expression "(iVar3 < *(int *)(param_1 + 0x18))" (( "(") (binary_expression "iVar3 < *(int *)(param_1 + 0x18)" (identifier "iVar3") (< "<") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (compound_statement "{\n        *(int *)(param_1 + 0x14) = iVar3 + 1;\n        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n        puVar11[1] = 0;\n        *puVar11 = 0;\n        puVar11[2] = &DAT_002bdf00;\n        puVar11[3] = 3;\n      }" ({ "{") (expression_statement "*(int *)(param_1 + 0x14) = iVar3 + 1;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar3 + 1" (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));" (assignment_expression "puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" (identifier "puVar11") (= "=") (cast_expression "(undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" (( "(") (binary_expression "iVar3 * 0x10 + *(int *)(param_1 + 0x10)" (binary_expression "iVar3 * 0x10" (identifier "iVar3") (* "*") (number_literal "0x10")) (+ "+") (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) () ")")))) (; ";")) (expression_statement "puVar11[1] = 0;" (assignment_expression "puVar11[1] = 0" (subscript_expression "puVar11[1]" (identifier "puVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar11 = 0;" (assignment_expression "*puVar11 = 0" (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar11[2] = &DAT_002bdf00;" (assignment_expression "puVar11[2] = &DAT_002bdf00" (subscript_expression "puVar11[2]" (identifier "puVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "&DAT_002bdf00" (& "&") (identifier "DAT_002bdf00"))) (; ";")) (expression_statement "puVar11[3] = 3;" (assignment_expression "puVar11[3] = 3" (subscript_expression "puVar11[3]" (identifier "puVar11") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "3")) (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_001ec770(uVar7);" (assignment_expression "iVar3 = FUN_001ec770(uVar7)" (identifier "iVar3") (= "=") (call_expression "FUN_001ec770(uVar7)" (identifier "FUN_001ec770") (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")")))) (; ";")) (expression_statement "*(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3;" (assignment_expression "*(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3" (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x2c) + 3" (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (+ "+") (number_literal "3"))) (; ";")) (expression_statement "pcVar6 = *(char **)(param_1 + 0xc);" (assignment_expression "pcVar6 = *(char **)(param_1 + 0xc)" (identifier "pcVar6") (= "=") (pointer_expression "*(char **)(param_1 + 0xc)" (* "*") (cast_expression "(char **)(param_1 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (*pcVar6 != 'I') {\n        return iVar3;\n      }" (if "if") (parenthesized_expression "(*pcVar6 != 'I')" (( "(") (binary_expression "*pcVar6 != 'I'" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (!= "!=") (char_literal "'I'" (' "'") (character "I") (' "'"))) () ")")) (compound_statement "{\n        return iVar3;\n      }" ({ "{") (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (if_statement "if ((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))\n      goto LAB_001f4da6;" (if "if") (parenthesized_expression "((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))" (( "(") (binary_expression "(iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4)" (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4)" (( "(") (comma_expression "iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4" (assignment_expression "iVar4 = *(int *)(param_1 + 0x20)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (, ",") (binary_expression "*(int *)(param_1 + 0x24) <= iVar4" (pointer_expression "*(int *)(param_1 + 0x24)" (* "*") (cast_expression "(int *)(param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (<= "<=") (identifier "iVar4"))) () ")"))) () ")")) (goto_statement "goto LAB_001f4da6;" (goto "goto") (statement_identifier "LAB_001f4da6") (; ";"))) (expression_statement "*(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;" (assignment_expression "*(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3" (pointer_expression "*(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x1c) + iVar4 * 4)" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) + iVar4 * 4" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (binary_expression "iVar4 * 4" (identifier "iVar4") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "*(int *)(param_1 + 0x20) = iVar4 + 1;" (assignment_expression "*(int *)(param_1 + 0x20) = iVar4 + 1" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((byte)(*pcVar6 + 0xb7U) < 2) goto LAB_001f4dd5;" (if "if") (parenthesized_expression "((byte)(*pcVar6 + 0xb7U) < 2)" (( "(") (binary_expression "(byte)(*pcVar6 + 0xb7U) < 2" (call_expression "(byte)(*pcVar6 + 0xb7U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(*pcVar6 + 0xb7U)" (( "(") (binary_expression "*pcVar6 + 0xb7U" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (+ "+") (number_literal "0xb7U")) () ")"))) (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_001f4dd5;" (goto "goto") (statement_identifier "LAB_001f4dd5") (; ";"))) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      iVar3 = FUN_001eccd0();\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\nLAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      uVar7 = FUN_001f5c00();\n    }" (else "else") (compound_statement "{\n      iVar3 = FUN_001eccd0();\n      pcVar6 = *(char **)(param_1 + 0xc);\n      if (*pcVar6 != 'I') {\n        return iVar3;\n      }\nLAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      uVar7 = FUN_001f5c00();\n    }" ({ "{") (expression_statement "iVar3 = FUN_001eccd0();" (assignment_expression "iVar3 = FUN_001eccd0()" (identifier "iVar3") (= "=") (call_expression "FUN_001eccd0()" (identifier "FUN_001eccd0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar6 = *(char **)(param_1 + 0xc);" (assignment_expression "pcVar6 = *(char **)(param_1 + 0xc)" (identifier "pcVar6") (= "=") (pointer_expression "*(char **)(param_1 + 0xc)" (* "*") (cast_expression "(char **)(param_1 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (*pcVar6 != 'I') {\n        return iVar3;\n      }" (if "if") (parenthesized_expression "(*pcVar6 != 'I')" (( "(") (binary_expression "*pcVar6 != 'I'" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (!= "!=") (char_literal "'I'" (' "'") (character "I") (' "'"))) () ")")) (compound_statement "{\n        return iVar3;\n      }" ({ "{") (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (labeled_statement "LAB_001f4dd5:\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;" (statement_identifier "LAB_001f4dd5") (: ":") (expression_statement "*(char **)(param_1 + 0xc) = pcVar6 + 1;" (assignment_expression "*(char **)(param_1 + 0xc) = pcVar6 + 1" (pointer_expression "*(char **)(param_1 + 0xc)" (* "*") (cast_expression "(char **)(param_1 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pcVar6 + 1" (identifier "pcVar6") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "uVar7 = FUN_001f5c00();" (assignment_expression "uVar7 = FUN_001f5c00()" (identifier "uVar7") (= "=") (call_expression "FUN_001f5c00()" (identifier "FUN_001f5c00") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (labeled_statement "LAB_001f4de2:\n    iVar3 = FUN_001ec770(uVar7);" (statement_identifier "LAB_001f4de2") (: ":") (expression_statement "iVar3 = FUN_001ec770(uVar7);" (assignment_expression "iVar3 = FUN_001ec770(uVar7)" (identifier "iVar3") (= "=") (call_expression "FUN_001ec770(uVar7)" (identifier "FUN_001ec770") (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")")))) (; ";"))) (} "}")) (else_clause "else {\n    if (cVar14 < 'T') {\n      if (cVar14 != 'N') goto LAB_001f4e00;\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      piVar1 = (int *)FUN_001f6430();\n      if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }\n    }\n    else {\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }\nLAB_001f4da6:\n    iVar3 = 0;\n  }" (else "else") (compound_statement "{\n    if (cVar14 < 'T') {\n      if (cVar14 != 'N') goto LAB_001f4e00;\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      piVar1 = (int *)FUN_001f6430();\n      if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }\n    }\n    else {\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }\nLAB_001f4da6:\n    iVar3 = 0;\n  }" ({ "{") (if_statement "if (cVar14 < 'T') {\n      if (cVar14 != 'N') goto LAB_001f4e00;\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      piVar1 = (int *)FUN_001f6430();\n      if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }\n    }\n    else {\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(cVar14 < 'T')" (( "(") (binary_expression "cVar14 < 'T'" (identifier "cVar14") (< "<") (char_literal "'T'" (' "'") (character "T") (' "'"))) () ")")) (compound_statement "{\n      if (cVar14 != 'N') goto LAB_001f4e00;\n      *(char **)(param_1 + 0xc) = pcVar6 + 1;\n      piVar1 = (int *)FUN_001f6430();\n      if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }\n    }" ({ "{") (if_statement "if (cVar14 != 'N') goto LAB_001f4e00;" (if "if") (parenthesized_expression "(cVar14 != 'N')" (( "(") (binary_expression "cVar14 != 'N'" (identifier "cVar14") (!= "!=") (char_literal "'N'" (' "'") (character "N") (' "'"))) () ")")) (goto_statement "goto LAB_001f4e00;" (goto "goto") (statement_identifier "LAB_001f4e00") (; ";"))) (expression_statement "*(char **)(param_1 + 0xc) = pcVar6 + 1;" (assignment_expression "*(char **)(param_1 + 0xc) = pcVar6 + 1" (pointer_expression "*(char **)(param_1 + 0xc)" (* "*") (cast_expression "(char **)(param_1 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pcVar6 + 1" (identifier "pcVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar1 = (int *)FUN_001f6430();" (assignment_expression "piVar1 = (int *)FUN_001f6430()" (identifier "piVar1") (= "=") (cast_expression "(int *)FUN_001f6430()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001f6430()" (identifier "FUN_001f6430") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (piVar1 != (int *)0x0) {\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }" (if "if") (parenthesized_expression "(piVar1 != (int *)0x0)" (( "(") (binary_expression "piVar1 != (int *)0x0" (identifier "piVar1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        iVar4 = FUN_001ec7e0();\n        pbVar12 = *(byte **)(param_1 + 0xc);\n        uVar8 = (uint)*pbVar12;\n        iVar3 = 0;\nLAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }\nLAB_001f4da0:\n        *piVar1 = 0;\n      }" ({ "{") (expression_statement "iVar4 = FUN_001ec7e0();" (assignment_expression "iVar4 = FUN_001ec7e0()" (identifier "iVar4") (= "=") (call_expression "FUN_001ec7e0()" (identifier "FUN_001ec7e0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pbVar12 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar12 = *(byte **)(param_1 + 0xc)" (identifier "pbVar12") (= "=") (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "uVar8 = (uint)*pbVar12;" (assignment_expression "uVar8 = (uint)*pbVar12" (identifier "uVar8") (= "=") (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar12"))) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_001f4d13:\n        if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }" (statement_identifier "LAB_001f4d13") (: ":") (if_statement "if ((char)uVar8 != '\0') {\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }" (if "if") (parenthesized_expression "((char)uVar8 != '\0')" (( "(") (binary_expression "(char)uVar8 != '\0'" (cast_expression "(char)uVar8" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar8")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          pbVar13 = pbVar12;\n          if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }\nLAB_001f4d24:\n          cVar14 = (char)uVar8;\n          if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }\n          if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }\n          pbVar13 = *(byte **)(param_1 + 0xc);\n          bVar10 = *pbVar13;\n          pbVar12 = pbVar13;\n          if (cVar14 == 'S') goto LAB_001f4d92;\nLAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;\n          uVar8 = 0x45;\n          iVar3 = iVar5;\n          goto LAB_001f4d24;\n        }" ({ "{") (expression_statement "pbVar13 = pbVar12;" (assignment_expression "pbVar13 = pbVar12" (identifier "pbVar13") (= "=") (identifier "pbVar12")) (; ";")) (if_statement "if ((char)uVar8 == 'D') {\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }" (if "if") (parenthesized_expression "((char)uVar8 == 'D')" (( "(") (binary_expression "(char)uVar8 == 'D'" (cast_expression "(char)uVar8" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar8")) (== "==") (char_literal "'D'" (' "'") (character "D") (' "'"))) () ")")) (compound_statement "{\n            cVar14 = 'D';\n            if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }\n            iVar5 = FUN_001f46f0();\n            goto LAB_001f4f17;\n          }" ({ "{") (expression_statement "cVar14 = 'D';" (assignment_expression "cVar14 = 'D'" (identifier "cVar14") (= "=") (char_literal "'D'" (' "'") (character "D") (' "'"))) (; ";")) (if_statement "if ((pbVar12[1] & 0xdf) == 0x54) {\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }" (if "if") (parenthesized_expression "((pbVar12[1] & 0xdf) == 0x54)" (( "(") (binary_expression "(pbVar12[1] & 0xdf) == 0x54" (parenthesized_expression "(pbVar12[1] & 0xdf)" (( "(") (binary_expression "pbVar12[1] & 0xdf" (subscript_expression "pbVar12[1]" (identifier "pbVar12") ([ "[") (number_literal "1") (] "]")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x54")) () ")")) (compound_statement "{\n              iVar5 = FUN_001f3b10(param_1);\n              goto LAB_001f4f17;\n            }" ({ "{") (expression_statement "iVar5 = FUN_001f3b10(param_1);" (assignment_expression "iVar5 = FUN_001f3b10(param_1)" (identifier "iVar5") (= "=") (call_expression "FUN_001f3b10(param_1)" (identifier "FUN_001f3b10") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (goto_statement "goto LAB_001f4f17;" (goto "goto") (statement_identifier "LAB_001f4f17") (; ";")) (} "}"))) (expression_statement "iVar5 = FUN_001f46f0();" (assignment_expression "iVar5 = FUN_001f46f0()" (identifier "iVar5") (= "=") (call_expression "FUN_001f46f0()" (identifier "FUN_001f46f0") (argument_list "()" (( "(") () ")")))) (; ";")) (goto_statement "goto LAB_001f4f17;" (goto "goto") (statement_identifier "LAB_001f4f17") (; ";")) (} "}"))) (labeled_statement "LAB_001f4d24:\n          cVar14 = (char)uVar8;" (statement_identifier "LAB_001f4d24") (: ":") (expression_statement "cVar14 = (char)uVar8;" (assignment_expression "cVar14 = (char)uVar8" (identifier "cVar14") (= "=") (cast_expression "(char)uVar8" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar8"))) (; ";"))) (if_statement "if ((byte)(uVar8 - 0x30) < 0x1d) {\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }" (if "if") (parenthesized_expression "((byte)(uVar8 - 0x30) < 0x1d)" (( "(") (binary_expression "(byte)(uVar8 - 0x30) < 0x1d" (call_expression "(byte)(uVar8 - 0x30)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar8 - 0x30)" (( "(") (binary_expression "uVar8 - 0x30" (identifier "uVar8") (- "-") (number_literal "0x30")) () ")"))) (< "<") (number_literal "0x1d")) () ")")) (compound_statement "{\n            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;\nLAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }\n            if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }\n            iVar5 = FUN_001ecaa0();\nLAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;\nLAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);\n            bVar10 = *pbVar13;\n            goto LAB_001f4d6e;\n          }" ({ "{") (if_statement "if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;" (if "if") (parenthesized_expression "((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0)" (( "(") (binary_expression "(0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0" (parenthesized_expression "(0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1)" (( "(") (binary_expression "0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1" (binary_expression "0x100803ffU >> (uVar8 - 0x30 & 0x1f)" (number_literal "0x100803ffU") (>> ">>") (parenthesized_expression "(uVar8 - 0x30 & 0x1f)" (( "(") (binary_expression "uVar8 - 0x30 & 0x1f" (binary_expression "uVar8 - 0x30" (identifier "uVar8") (- "-") (number_literal "0x30")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001f4d3d;" (goto "goto") (statement_identifier "LAB_001f4d3d") (; ";"))) (labeled_statement "LAB_001f5000:\n            if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }" (statement_identifier "LAB_001f5000") (: ":") (if_statement "if (cVar14 == 'I') {\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }" (if "if") (parenthesized_expression "(cVar14 == 'I')" (( "(") (binary_expression "cVar14 == 'I'" (identifier "cVar14") (== "==") (char_literal "'I'" (' "'") (character "I") (' "'"))) () ")")) (compound_statement "{\n              if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }\n              goto LAB_001f4da0;\n            }" ({ "{") (if_statement "if (iVar3 != 0) {\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                iVar5 = FUN_001f5c00();\n                goto LAB_001f4d51;\n              }" ({ "{") (expression_statement "*(byte **)(param_1 + 0xc) = pbVar13 + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar13 + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pbVar13 + 1" (identifier "pbVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar5 = FUN_001f5c00();" (assignment_expression "iVar5 = FUN_001f5c00()" (identifier "iVar5") (= "=") (call_expression "FUN_001f5c00()" (identifier "FUN_001f5c00") (argument_list "()" (( "(") () ")")))) (; ";")) (goto_statement "goto LAB_001f4d51;" (goto "goto") (statement_identifier "LAB_001f4d51") (; ";")) (} "}"))) (goto_statement "goto LAB_001f4da0;" (goto "goto") (statement_identifier "LAB_001f4da0") (; ";")) (} "}")))) (if_statement "if (cVar14 != 'T') {\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }" (if "if") (parenthesized_expression "(cVar14 != 'T')" (( "(") (binary_expression "cVar14 != 'T'" (identifier "cVar14") (!= "!=") (char_literal "'T'" (' "'") (character "T") (' "'"))) () ")")) (compound_statement "{\n              if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }\n              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;\n              pbVar12 = pbVar13 + 1;\n              *(byte **)(param_1 + 0xc) = pbVar12;\n              uVar8 = (uint)pbVar13[1];\n              goto LAB_001f4d13;\n            }" ({ "{") (if_statement "if (cVar14 == 'E') {\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }" (if "if") (parenthesized_expression "(cVar14 == 'E')" (( "(") (binary_expression "cVar14 == 'E'" (identifier "cVar14") (== "==") (char_literal "'E'" (' "'") (character "E") (' "'"))) () ")")) (compound_statement "{\n                *piVar1 = iVar3;\n                if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }\n                goto LAB_001f4da6;\n              }" ({ "{") (expression_statement "*piVar1 = iVar3;" (assignment_expression "*piVar1 = iVar3" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (iVar3 != 0) {\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }\n                  if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }\n                }" ({ "{") (if_statement "if (iVar4 != 0) {\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    *(int *)(iVar4 + 8) = local_20;\n                    local_20 = iVar4;\n                  }" ({ "{") (expression_statement "*(int *)(iVar4 + 8) = local_20;" (assignment_expression "*(int *)(iVar4 + 8) = local_20" (pointer_expression "*(int *)(iVar4 + 8)" (* "*") (cast_expression "(int *)(iVar4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "local_20")) (; ";")) (expression_statement "local_20 = iVar4;" (assignment_expression "local_20 = iVar4" (identifier "local_20") (= "=") (identifier "iVar4")) (; ";")) (} "}"))) (if_statement "if (*pbVar13 == 0x45) {\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }" (if "if") (parenthesized_expression "(*pbVar13 == 0x45)" (( "(") (binary_expression "*pbVar13 == 0x45" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (number_literal "0x45")) () ")")) (compound_statement "{\n                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;\n                    return local_20;\n                  }" ({ "{") (expression_statement "*(byte **)(param_1 + 0xc) = pbVar13 + 1;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar13 + 1" (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pbVar13 + 1" (identifier "pbVar13") (+ "+") (number_literal "1"))) (; ";")) (return_statement "return local_20;" (return "return") (identifier "local_20") (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_001f4da6;" (goto "goto") (statement_identifier "LAB_001f4da6") (; ";")) (} "}"))) (if_statement "if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;" (if "if") (parenthesized_expression "((iVar3 == 0) || (cVar14 != 'M'))" (( "(") (binary_expression "(iVar3 == 0) || (cVar14 != 'M')" (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(cVar14 != 'M')" (( "(") (binary_expression "cVar14 != 'M'" (identifier "cVar14") (!= "!=") (char_literal "'M'" (' "'") (character "M") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_001f4da0;" (goto "goto") (statement_identifier "LAB_001f4da0") (; ";"))) (expression_statement "pbVar12 = pbVar13 + 1;" (assignment_expression "pbVar12 = pbVar13 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar13 + 1" (identifier "pbVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(byte **)(param_1 + 0xc) = pbVar12;" (assignment_expression "*(byte **)(param_1 + 0xc) = pbVar12" (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "pbVar12")) (; ";")) (expression_statement "uVar8 = (uint)pbVar13[1];" (assignment_expression "uVar8 = (uint)pbVar13[1]" (identifier "uVar8") (= "=") (cast_expression "(uint)pbVar13[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar13[1]" (identifier "pbVar13") ([ "[") (number_literal "1") (] "]")))) (; ";")) (goto_statement "goto LAB_001f4d13;" (goto "goto") (statement_identifier "LAB_001f4d13") (; ";")) (} "}"))) (expression_statement "iVar5 = FUN_001ecaa0();" (assignment_expression "iVar5 = FUN_001ecaa0()" (identifier "iVar5") (= "=") (call_expression "FUN_001ecaa0()" (identifier "FUN_001ecaa0") (argument_list "()" (( "(") () ")")))) (; ";")) (labeled_statement "LAB_001f4f17:\n            if (iVar3 != 0) goto LAB_001f4d51;" (statement_identifier "LAB_001f4f17") (: ":") (if_statement "if (iVar3 != 0) goto LAB_001f4d51;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001f4d51;" (goto "goto") (statement_identifier "LAB_001f4d51") (; ";")))) (labeled_statement "LAB_001f4f24:\n            pbVar13 = *(byte **)(param_1 + 0xc);" (statement_identifier "LAB_001f4f24") (: ":") (expression_statement "pbVar13 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar13 = *(byte **)(param_1 + 0xc)" (identifier "pbVar13") (= "=") (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";"))) (expression_statement "bVar10 = *pbVar13;" (assignment_expression "bVar10 = *pbVar13" (identifier "bVar10") (= "=") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13"))) (; ";")) (goto_statement "goto LAB_001f4d6e;" (goto "goto") (statement_identifier "LAB_001f4d6e") (; ";")) (} "}"))) (if_statement "if ((byte)(cVar14 + 0x9fU) < 0x1a) {\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }\n          else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }" (if "if") (parenthesized_expression "((byte)(cVar14 + 0x9fU) < 0x1a)" (( "(") (binary_expression "(byte)(cVar14 + 0x9fU) < 0x1a" (call_expression "(byte)(cVar14 + 0x9fU)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(cVar14 + 0x9fU)" (( "(") (binary_expression "cVar14 + 0x9fU" (identifier "cVar14") (+ "+") (number_literal "0x9fU")) () ")"))) (< "<") (number_literal "0x1a")) () ")")) (compound_statement "{\nLAB_001f4d3d:\n            iVar5 = FUN_001f46f0();\n            if (iVar3 != 0) goto LAB_001f4d51;\n          }" ({ "{") (labeled_statement "LAB_001f4d3d:\n            iVar5 = FUN_001f46f0();" (statement_identifier "LAB_001f4d3d") (: ":") (expression_statement "iVar5 = FUN_001f46f0();" (assignment_expression "iVar5 = FUN_001f46f0()" (identifier "iVar5") (= "=") (call_expression "FUN_001f46f0()" (identifier "FUN_001f46f0") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (iVar3 != 0) goto LAB_001f4d51;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001f4d51;" (goto "goto") (statement_identifier "LAB_001f4d51") (; ";"))) (} "}")) (else_clause "else {\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }" (else "else") (compound_statement "{\n            if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }\n            if (cVar14 != 'S') goto LAB_001f5000;\n            iVar5 = FUN_001eccd0();\n            if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }\nLAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);\n          }" ({ "{") (if_statement "if (cVar14 == 'U') {\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }" (if "if") (parenthesized_expression "(cVar14 == 'U')" (( "(") (binary_expression "cVar14 == 'U'" (identifier "cVar14") (== "==") (char_literal "'U'" (' "'") (character "U") (' "'"))) () ")")) (compound_statement "{\n              iVar5 = FUN_001f46f0();\n              if (iVar3 == 0) goto LAB_001f4f24;\n              goto LAB_001f4d51;\n            }" ({ "{") (expression_statement "iVar5 = FUN_001f46f0();" (assignment_expression "iVar5 = FUN_001f46f0()" (identifier "iVar5") (= "=") (call_expression "FUN_001f46f0()" (identifier "FUN_001f46f0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_001f4f24;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001f4f24;" (goto "goto") (statement_identifier "LAB_001f4f24") (; ";"))) (goto_statement "goto LAB_001f4d51;" (goto "goto") (statement_identifier "LAB_001f4d51") (; ";")) (} "}"))) (if_statement "if (cVar14 != 'S') goto LAB_001f5000;" (if "if") (parenthesized_expression "(cVar14 != 'S')" (( "(") (binary_expression "cVar14 != 'S'" (identifier "cVar14") (!= "!=") (char_literal "'S'" (' "'") (character "S") (' "'"))) () ")")) (goto_statement "goto LAB_001f5000;" (goto "goto") (statement_identifier "LAB_001f5000") (; ";"))) (expression_statement "iVar5 = FUN_001eccd0();" (assignment_expression "iVar5 = FUN_001eccd0()" (identifier "iVar5") (= "=") (call_expression "FUN_001eccd0()" (identifier "FUN_001eccd0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              pbVar12 = *(byte **)(param_1 + 0xc);\n              uVar8 = (uint)*pbVar12;\n              iVar3 = iVar5;\n              goto LAB_001f4d13;\n            }" ({ "{") (expression_statement "pbVar12 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar12 = *(byte **)(param_1 + 0xc)" (identifier "pbVar12") (= "=") (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "uVar8 = (uint)*pbVar12;" (assignment_expression "uVar8 = (uint)*pbVar12" (identifier "uVar8") (= "=") (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar12"))) (; ";")) (expression_statement "iVar3 = iVar5;" (assignment_expression "iVar3 = iVar5" (identifier "iVar3") (= "=") (identifier "iVar5")) (; ";")) (goto_statement "goto LAB_001f4d13;" (goto "goto") (statement_identifier "LAB_001f4d13") (; ";")) (} "}"))) (labeled_statement "LAB_001f4d51:\n            iVar5 = FUN_001ec770(iVar5);" (statement_identifier "LAB_001f4d51") (: ":") (expression_statement "iVar5 = FUN_001ec770(iVar5);" (assignment_expression "iVar5 = FUN_001ec770(iVar5)" (identifier "iVar5") (= "=") (call_expression "FUN_001ec770(iVar5)" (identifier "FUN_001ec770") (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")")))) (; ";"))) (} "}")))) (expression_statement "pbVar13 = *(byte **)(param_1 + 0xc);" (assignment_expression "pbVar13 = *(byte **)(param_1 + 0xc)" (identifier "pbVar13") (= "=") (pointer_expression "*(byte **)(param_1 + 0xc)" (* "*") (cast_expression "(byte **)(param_1 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "bVar10 = *pbVar13;" (assignment_expression "bVar10 = *pbVar13" (identifier "bVar10") (= "=") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13"))) (; ";")) (expression_statement "pbVar12 = pbVar13;" (assignment_expression "pbVar12 = pbVar13" (identifier "pbVar12") (= "=") (identifier "pbVar13")) (; ";")) (if_statement "if (cVar14 == 'S') goto LAB_001f4d92;" (if "if") (parenthesized_expression "(cVar14 == 'S')" (( "(") (binary_expression "cVar14 == 'S'" (identifier "cVar14") (== "==") (char_literal "'S'" (' "'") (character "S") (' "'"))) () ")")) (goto_statement "goto LAB_001f4d92;" (goto "goto") (statement_identifier "LAB_001f4d92") (; ";"))) (labeled_statement "LAB_001f4d6e:\n          if (bVar10 != 0x45) goto code_r0x001f4d77;" (statement_identifier "LAB_001f4d6e") (: ":") (if_statement "if (bVar10 != 0x45) goto code_r0x001f4d77;" (if "if") (parenthesized_expression "(bVar10 != 0x45)" (( "(") (binary_expression "bVar10 != 0x45" (identifier "bVar10") (!= "!=") (number_literal "0x45")) () ")")) (goto_statement "goto code_r0x001f4d77;" (goto "goto") (statement_identifier "code_r0x001f4d77") (; ";")))) (expression_statement "uVar8 = 0x45;" (assignment_expression "uVar8 = 0x45" (identifier "uVar8") (= "=") (number_literal "0x45")) (; ";")) (expression_statement "iVar3 = iVar5;" (assignment_expression "iVar3 = iVar5" (identifier "iVar3") (= "=") (identifier "iVar5")) (; ";")) (goto_statement "goto LAB_001f4d24;" (goto "goto") (statement_identifier "LAB_001f4d24") (; ";")) (} "}")))) (labeled_statement "LAB_001f4da0:\n        *piVar1 = 0;" (statement_identifier "LAB_001f4da0") (: ":") (expression_statement "*piVar1 = 0;" (assignment_expression "*piVar1 = 0" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (number_literal "0")) (; ";"))) (} "}"))) (} "}")) (else_clause "else {\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }" (else "else") (compound_statement "{\n      if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }\n      if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }\n    }" ({ "{") (if_statement "if (cVar14 == 'U') {\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }" (if "if") (parenthesized_expression "(cVar14 == 'U')" (( "(") (binary_expression "cVar14 == 'U'" (identifier "cVar14") (== "==") (char_literal "'U'" (' "'") (character "U") (' "'"))) () ")")) (compound_statement "{\n        iVar3 = FUN_001f46f0();\n        return iVar3;\n      }" ({ "{") (expression_statement "iVar3 = FUN_001f46f0();" (assignment_expression "iVar3 = FUN_001f46f0()" (identifier "iVar3") (= "=") (call_expression "FUN_001f46f0()" (identifier "FUN_001f46f0") (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (if_statement "if (cVar14 == 'Z') {\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }\n      else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }" (if "if") (parenthesized_expression "(cVar14 == 'Z')" (( "(") (binary_expression "cVar14 == 'Z'" (identifier "cVar14") (== "==") (char_literal "'Z'" (' "'") (character "Z") (' "'"))) () ")")) (compound_statement "{\n        *(char **)(param_1 + 0xc) = pcVar6 + 1;\n        piVar1 = (int *)FUN_001f5180();\n        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }\n      }" ({ "{") (expression_statement "*(char **)(param_1 + 0xc) = pcVar6 + 1;" (assignment_expression "*(char **)(param_1 + 0xc) = pcVar6 + 1" (pointer_expression "*(char **)(param_1 + 0xc)" (* "*") (cast_expression "(char **)(param_1 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pcVar6 + 1" (identifier "pcVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar1 = (int *)FUN_001f5180();" (assignment_expression "piVar1 = (int *)FUN_001f5180()" (identifier "piVar1") (= "=") (cast_expression "(int *)FUN_001f5180()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001f5180()" (identifier "FUN_001f5180") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }" (if "if") (parenthesized_expression "((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E'))" (( "(") (binary_expression "(piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')" (parenthesized_expression "(piVar1 != (int *)0x0)" (( "(") (binary_expression "piVar1 != (int *)0x0" (identifier "piVar1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')" (( "(") (comma_expression "pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E'" (assignment_expression "pcVar6 = *(char **)(param_1 + 0xc)" (identifier "pcVar6") (= "=") (pointer_expression "*(char **)(param_1 + 0xc)" (* "*") (cast_expression "(char **)(param_1 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (, ",") (binary_expression "*pcVar6 == 'E'" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (== "==") (char_literal "'E'" (' "'") (character "E") (' "'")))) () ")"))) () ")")) (compound_statement "{\n          *(char **)(param_1 + 0xc) = pcVar6 + 1;\n          if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }\n        }" ({ "{") (expression_statement "*(char **)(param_1 + 0xc) = pcVar6 + 1;" (assignment_expression "*(char **)(param_1 + 0xc) = pcVar6 + 1" (pointer_expression "*(char **)(param_1 + 0xc)" (* "*") (cast_expression "(char **)(param_1 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pcVar6 + 1" (identifier "pcVar6") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (pcVar6[1] == 's') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }\n          else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }" (if "if") (parenthesized_expression "(pcVar6[1] == 's')" (( "(") (binary_expression "pcVar6[1] == 's'" (subscript_expression "pcVar6[1]" (identifier "pcVar6") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'s'" (' "'") (character "s") (' "'"))) () ")")) (compound_statement "{\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            iVar3 = FUN_001ecfa0();\n            if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }\n          }" ({ "{") (expression_statement "*(char **)(param_1 + 0xc) = pcVar6 + 2;" (assignment_expression "*(char **)(param_1 + 0xc) = pcVar6 + 2" (pointer_expression "*(char **)(param_1 + 0xc)" (* "*") (cast_expression "(char **)(param_1 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pcVar6 + 2" (identifier "pcVar6") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar3 = FUN_001ecfa0();" (assignment_expression "iVar3 = FUN_001ecfa0()" (identifier "iVar3") (= "=") (call_expression "FUN_001ecfa0()" (identifier "FUN_001ecfa0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }\nLAB_001f514b:\n              puVar2 = (uint *)0x0;\nLAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }\n              iVar3 = FUN_001ec770(puVar2);\n              return iVar3;\n            }" ({ "{") (expression_statement "iVar3 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x14)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (iVar3 < *(int *)(param_1 + 0x18)) {\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }" (if "if") (parenthesized_expression "(iVar3 < *(int *)(param_1 + 0x18))" (( "(") (binary_expression "iVar3 < *(int *)(param_1 + 0x18)" (identifier "iVar3") (< "<") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (compound_statement "{\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *puVar2 = 0;\n                puVar2[2] = (uint)"string literal";\n                puVar2[3] = 0xe;\n                goto LAB_001f4ca4;\n              }" ({ "{") (expression_statement "*(int *)(param_1 + 0x14) = iVar3 + 1;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar3 + 1" (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));" (assignment_expression "puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" (identifier "puVar2") (= "=") (cast_expression "(uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" (( "(") (binary_expression "iVar3 * 0x10 + *(int *)(param_1 + 0x10)" (binary_expression "iVar3 * 0x10" (identifier "iVar3") (* "*") (number_literal "0x10")) (+ "+") (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) () ")")))) (; ";")) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[2] = (uint)"string literal";" (assignment_expression "puVar2[2] = (uint)"string literal"" (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(uint)"string literal"" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (string_literal ""string literal"" (" """) (string_content "string literal") (" """)))) (; ";")) (expression_statement "puVar2[3] = 0xe;" (assignment_expression "puVar2[3] = 0xe" (subscript_expression "puVar2[3]" (identifier "puVar2") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0xe")) (; ";")) (goto_statement "goto LAB_001f4ca4;" (goto "goto") (statement_identifier "LAB_001f4ca4") (; ";")) (} "}"))) (labeled_statement "LAB_001f514b:\n              puVar2 = (uint *)0x0;" (statement_identifier "LAB_001f514b") (: ":") (expression_statement "puVar2 = (uint *)0x0;" (assignment_expression "puVar2 = (uint *)0x0" (identifier "puVar2") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (labeled_statement "LAB_001f4ca4:\n              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }" (statement_identifier "LAB_001f4ca4") (: ":") (if_statement "if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {\n                ((int *)piVar1[3])[2] = 0;\n              }" (if "if") (parenthesized_expression "((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29))" (( "(") (binary_expression "(*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)" (parenthesized_expression "(*piVar1 == 3)" (( "(") (binary_expression "*piVar1 == 3" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (== "==") (number_literal "3")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)piVar1[3] == 0x29)" (( "(") (binary_expression "*(int *)piVar1[3] == 0x29" (pointer_expression "*(int *)piVar1[3]" (* "*") (cast_expression "(int *)piVar1[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar1[3]" (identifier "piVar1") ([ "[") (number_literal "3") (] "]")))) (== "==") (number_literal "0x29")) () ")"))) () ")")) (compound_statement "{\n                ((int *)piVar1[3])[2] = 0;\n              }" ({ "{") (expression_statement "((int *)piVar1[3])[2] = 0;" (assignment_expression "((int *)piVar1[3])[2] = 0" (subscript_expression "((int *)piVar1[3])[2]" (parenthesized_expression "((int *)piVar1[3])" (( "(") (cast_expression "(int *)piVar1[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar1[3]" (identifier "piVar1") ([ "[") (number_literal "3") (] "]"))) () ")")) ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "iVar3 = FUN_001ec770(puVar2);" (assignment_expression "iVar3 = FUN_001ec770(puVar2)" (identifier "iVar3") (= "=") (call_expression "FUN_001ec770(puVar2)" (identifier "FUN_001ec770") (argument_list "(puVar2)" (( "(") (identifier "puVar2") () ")")))) (; ";")) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (} "}")) (else_clause "else if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }" (else "else") (if_statement "if (pcVar6[1] == 'd') {\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }\n          else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }" (if "if") (parenthesized_expression "(pcVar6[1] == 'd')" (( "(") (binary_expression "pcVar6[1] == 'd'" (subscript_expression "pcVar6[1]" (identifier "pcVar6") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'d'" (' "'") (character "d") (' "'"))) () ")")) (compound_statement "{\n            *(char **)(param_1 + 0xc) = pcVar6 + 2;\n            uVar8 = FUN_001eca60();\n            if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }\n          }" ({ "{") (expression_statement "*(char **)(param_1 + 0xc) = pcVar6 + 2;" (assignment_expression "*(char **)(param_1 + 0xc) = pcVar6 + 2" (pointer_expression "*(char **)(param_1 + 0xc)" (* "*") (cast_expression "(char **)(param_1 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pcVar6 + 2" (identifier "pcVar6") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar8 = FUN_001eca60();" (assignment_expression "uVar8 = FUN_001eca60()" (identifier "uVar8") (= "=") (call_expression "FUN_001eca60()" (identifier "FUN_001eca60") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }" (if "if") (parenthesized_expression "((-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0))))" (( "(") (binary_expression "(-1 < (int)uVar8) &&\n               (((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))" (parenthesized_expression "(-1 < (int)uVar8)" (( "(") (binary_expression "-1 < (int)uVar8" (number_literal "-1") (< "<") (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8"))) () ")")) (&& "&&") (parenthesized_expression "(((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))" (( "(") (parenthesized_expression "((puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0))" (( "(") (binary_expression "(puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)" (parenthesized_expression "(puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45))" (( "(") (comma_expression "puVar9 = (uint *)FUN_001f4c10(), puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)" (assignment_expression "puVar9 = (uint *)FUN_001f4c10()" (identifier "puVar9") (= "=") (cast_expression "(uint *)FUN_001f4c10()" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001f4c10()" (identifier "FUN_001f4c10") (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "puVar9 == (uint *)0x0 ||\n                 ((*puVar9 & 0xfffffffd) == 0x45)" (binary_expression "puVar9 == (uint *)0x0" (identifier "puVar9") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (parenthesized_expression "((*puVar9 & 0xfffffffd) == 0x45)" (( "(") (binary_expression "(*puVar9 & 0xfffffffd) == 0x45" (parenthesized_expression "(*puVar9 & 0xfffffffd)" (( "(") (binary_expression "*puVar9 & 0xfffffffd" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (& "&") (number_literal "0xfffffffd")) () ")")) (== "==") (number_literal "0x45")) () ")")))) () ")")) (|| "||") (parenthesized_expression "(iVar3 = FUN_001ecfa0(), iVar3 != 0)" (( "(") (comma_expression "iVar3 = FUN_001ecfa0(), iVar3 != 0" (assignment_expression "iVar3 = FUN_001ecfa0()" (identifier "iVar3") (= "=") (call_expression "FUN_001ecfa0()" (identifier "FUN_001ecfa0") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n              iVar3 = *(int *)(param_1 + 0x14);\n              if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }\n              goto LAB_001f514b;\n            }" ({ "{") (expression_statement "iVar3 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x14)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (iVar3 < *(int *)(param_1 + 0x18)) {\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }" (if "if") (parenthesized_expression "(iVar3 < *(int *)(param_1 + 0x18))" (( "(") (binary_expression "iVar3 < *(int *)(param_1 + 0x18)" (identifier "iVar3") (< "<") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (compound_statement "{\n                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));\n                puVar2[1] = 0;\n                *(int *)(param_1 + 0x14) = iVar3 + 1;\n                *puVar2 = 0x46;\n                puVar2[3] = uVar8;\n                puVar2[2] = (uint)puVar9;\n                goto LAB_001f4ca4;\n              }" ({ "{") (expression_statement "puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));" (assignment_expression "puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" (identifier "puVar2") (= "=") (cast_expression "(uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 * 0x10 + *(int *)(param_1 + 0x10))" (( "(") (binary_expression "iVar3 * 0x10 + *(int *)(param_1 + 0x10)" (binary_expression "iVar3 * 0x10" (identifier "iVar3") (* "*") (number_literal "0x10")) (+ "+") (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) () ")")))) (; ";")) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(param_1 + 0x14) = iVar3 + 1;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar3 + 1" (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar2 = 0x46;" (assignment_expression "*puVar2 = 0x46" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (number_literal "0x46")) (; ";")) (expression_statement "puVar2[3] = uVar8;" (assignment_expression "puVar2[3] = uVar8" (subscript_expression "puVar2[3]" (identifier "puVar2") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar2[2] = (uint)puVar9;" (assignment_expression "puVar2[2] = (uint)puVar9" (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(uint)puVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar9"))) (; ";")) (goto_statement "goto LAB_001f4ca4;" (goto "goto") (statement_identifier "LAB_001f4ca4") (; ";")) (} "}"))) (goto_statement "goto LAB_001f514b;" (goto "goto") (statement_identifier "LAB_001f514b") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }" (else "else") (compound_statement "{\n            puVar2 = (uint *)FUN_001f4c10();\n            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;\n          }" ({ "{") (expression_statement "puVar2 = (uint *)FUN_001f4c10();" (assignment_expression "puVar2 = (uint *)FUN_001f4c10()" (identifier "puVar2") (= "=") (cast_expression "(uint *)FUN_001f4c10()" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001f4c10()" (identifier "FUN_001f4c10") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;" (if "if") (parenthesized_expression "(((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0))" (( "(") (binary_expression "((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||\n               (iVar3 = FUN_001ecfa0(), iVar3 != 0)" (parenthesized_expression "((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45))" (( "(") (binary_expression "(puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)" (parenthesized_expression "(puVar2 == (uint *)0x0)" (( "(") (binary_expression "puVar2 == (uint *)0x0" (identifier "puVar2") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "((*puVar2 & 0xfffffffd) == 0x45)" (( "(") (binary_expression "(*puVar2 & 0xfffffffd) == 0x45" (parenthesized_expression "(*puVar2 & 0xfffffffd)" (( "(") (binary_expression "*puVar2 & 0xfffffffd" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (& "&") (number_literal "0xfffffffd")) () ")")) (== "==") (number_literal "0x45")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar3 = FUN_001ecfa0(), iVar3 != 0)" (( "(") (comma_expression "iVar3 = FUN_001ecfa0(), iVar3 != 0" (assignment_expression "iVar3 = FUN_001ecfa0()" (identifier "iVar3") (= "=") (call_expression "FUN_001ecfa0()" (identifier "FUN_001ecfa0") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_001f4ca4;" (goto "goto") (statement_identifier "LAB_001f4ca4") (; ";"))) (} "}")))))) (} "}"))) (} "}")) (else_clause "else {\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }" (else "else") (compound_statement "{\nLAB_001f4e00:\n        iVar3 = FUN_001f46f0();\n        pcVar6 = *(char **)(param_1 + 0xc);\n        if (*pcVar6 != 'I') {\n          return iVar3;\n        }\n        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }\n      }" ({ "{") (labeled_statement "LAB_001f4e00:\n        iVar3 = FUN_001f46f0();" (statement_identifier "LAB_001f4e00") (: ":") (expression_statement "iVar3 = FUN_001f46f0();" (assignment_expression "iVar3 = FUN_001f46f0()" (identifier "iVar3") (= "=") (call_expression "FUN_001f46f0()" (identifier "FUN_001f46f0") (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "pcVar6 = *(char **)(param_1 + 0xc);" (assignment_expression "pcVar6 = *(char **)(param_1 + 0xc)" (identifier "pcVar6") (= "=") (pointer_expression "*(char **)(param_1 + 0xc)" (* "*") (cast_expression "(char **)(param_1 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (*pcVar6 != 'I') {\n          return iVar3;\n        }" (if "if") (parenthesized_expression "(*pcVar6 != 'I')" (( "(") (binary_expression "*pcVar6 != 'I'" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (!= "!=") (char_literal "'I'" (' "'") (character "I") (' "'"))) () ")")) (compound_statement "{\n          return iVar3;\n        }" ({ "{") (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (if_statement "if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }" (if "if") (parenthesized_expression "((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24)))" (( "(") (binary_expression "(iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))" (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))" (( "(") (comma_expression "iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24)" (assignment_expression "iVar4 = *(int *)(param_1 + 0x20)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (, ",") (binary_expression "iVar4 < *(int *)(param_1 + 0x24)" (identifier "iVar4") (< "<") (pointer_expression "*(int *)(param_1 + 0x24)" (* "*") (cast_expression "(int *)(param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))))) () ")"))) () ")")) (compound_statement "{\n          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;\n          *(int *)(param_1 + 0x20) = iVar4 + 1;\n          uVar7 = 0;\n          if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }\n          goto LAB_001f4de2;\n        }" ({ "{") (expression_statement "*(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;" (assignment_expression "*(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3" (pointer_expression "*(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x1c) + iVar4 * 4)" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) + iVar4 * 4" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (binary_expression "iVar4 * 4" (identifier "iVar4") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "*(int *)(param_1 + 0x20) = iVar4 + 1;" (assignment_expression "*(int *)(param_1 + 0x20) = iVar4 + 1" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((byte)(*pcVar6 + 0xb7U) < 2) {\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }" (if "if") (parenthesized_expression "((byte)(*pcVar6 + 0xb7U) < 2)" (( "(") (binary_expression "(byte)(*pcVar6 + 0xb7U) < 2" (call_expression "(byte)(*pcVar6 + 0xb7U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(*pcVar6 + 0xb7U)" (( "(") (binary_expression "*pcVar6 + 0xb7U" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (+ "+") (number_literal "0xb7U")) () ")"))) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n            *(char **)(param_1 + 0xc) = pcVar6 + 1;\n            uVar7 = FUN_001f5c00();\n          }" ({ "{") (expression_statement "*(char **)(param_1 + 0xc) = pcVar6 + 1;" (assignment_expression "*(char **)(param_1 + 0xc) = pcVar6 + 1" (pointer_expression "*(char **)(param_1 + 0xc)" (* "*") (cast_expression "(char **)(param_1 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pcVar6 + 1" (identifier "pcVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar7 = FUN_001f5c00();" (assignment_expression "uVar7 = FUN_001f5c00()" (identifier "uVar7") (= "=") (call_expression "FUN_001f5c00()" (identifier "FUN_001f5c00") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (goto_statement "goto LAB_001f4de2;" (goto "goto") (statement_identifier "LAB_001f4de2") (; ";")) (} "}"))) (} "}")))) (} "}")))) (labeled_statement "LAB_001f4da6:\n    iVar3 = 0;" (statement_identifier "LAB_001f4da6") (: ":") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";"))) (} "}")))) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (labeled_statement "code_r0x001f4d77:\n  if ((iVar5 == 0) || (iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3))\n  goto LAB_001f4da0;" (statement_identifier "code_r0x001f4d77") (: ":") (if_statement "if ((iVar5 == 0) || (iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3))\n  goto LAB_001f4da0;" (if "if") (parenthesized_expression "((iVar5 == 0) || (iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3))" (( "(") (binary_expression "(iVar5 == 0) || (iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3)" (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3)" (( "(") (comma_expression "iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3" (assignment_expression "iVar3 = *(int *)(param_1 + 0x20)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (, ",") (binary_expression "*(int *)(param_1 + 0x24) <= iVar3" (pointer_expression "*(int *)(param_1 + 0x24)" (* "*") (cast_expression "(int *)(param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (<= "<=") (identifier "iVar3"))) () ")"))) () ")")) (goto_statement "goto LAB_001f4da0;" (goto "goto") (statement_identifier "LAB_001f4da0") (; ";")))) (expression_statement "*(int *)(*(int *)(param_1 + 0x1c) + iVar3 * 4) = iVar5;" (assignment_expression "*(int *)(*(int *)(param_1 + 0x1c) + iVar3 * 4) = iVar5" (pointer_expression "*(int *)(*(int *)(param_1 + 0x1c) + iVar3 * 4)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x1c) + iVar3 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x1c) + iVar3 * 4)" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) + iVar3 * 4" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (binary_expression "iVar3 * 4" (identifier "iVar3") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(int *)(param_1 + 0x20) = iVar3 + 1;" (assignment_expression "*(int *)(param_1 + 0x20) = iVar3 + 1" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar10 = *pbVar13;" (assignment_expression "bVar10 = *pbVar13" (identifier "bVar10") (= "=") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13"))) (; ";")) (expression_statement "pbVar12 = pbVar13;" (assignment_expression "pbVar12 = pbVar13" (identifier "pbVar12") (= "=") (identifier "pbVar13")) (; ";")) (labeled_statement "LAB_001f4d92:\n  uVar8 = (uint)bVar10;" (statement_identifier "LAB_001f4d92") (: ":") (expression_statement "uVar8 = (uint)bVar10;" (assignment_expression "uVar8 = (uint)bVar10" (identifier "uVar8") (= "=") (cast_expression "(uint)bVar10" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar10"))) (; ";"))) (expression_statement "iVar3 = iVar5;" (assignment_expression "iVar3 = iVar5" (identifier "iVar3") (= "=") (identifier "iVar5")) (; ";")) (goto_statement "goto LAB_001f4d13;" (goto "goto") (statement_identifier "LAB_001f4d13") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

type_1 * __regparm3 var_24(type_5 *di)

{
  type_1 *var_6;
  type_1 *var_16;
  type_1 **var_10;
  char *var_2;
  type_1 *var_25;
  int var_4;
  int var_27;
  type_2 var_18;
  type_2 *var_12;
  type_3 type;
  type_2 *var_15;
  char var_1;
  type_4 var_14;
  type_5 *in_stack_ffffffc4;
  type_1 *ret;
  
  var_2 = di->n;
  var_1 = *var_2;
  if (var_1 == 'S') {
    if (var_2[1] == 't') {
      di->n = var_2 + 2;
      var_6 = var_3(in_stack_ffffffc4);
      var_4 = di->next_comp;
      if (var_4 < di->num_comps) {
        di->next_comp = var_4 + 1;
        var_16 = di->comps + var_4;
        var_16->d_printing = 0;
        var_16->type = DEMANGLE_COMPONENT_NAME;
        (var_16->u).s_name.s = "std";
        (var_16->u).s_name.len = 3;
      }
      else {
        var_16 = (type_1 *)0x0;
      }
      var_6 = var_5(di,DEMANGLE_COMPONENT_QUAL_NAME,var_16,var_6);
      di->expansion = di->expansion + 3;
      var_2 = di->n;
      if (*var_2 != 'I') {
        return var_6;
      }
      if ((var_6 == (type_1 *)0x0) || (var_4 = di->next_sub, di->num_subs <= var_4))
      goto LAB_001f4da6;
      di->subs[var_4] = var_6;
      di->next_sub = var_4 + 1;
      if ((type_2)(*var_2 + 0xb7U) < 2) goto LAB_001f4dd5;
      var_16 = (type_1 *)0x0;
    }
    else {
      var_6 = var_7(di,0);
      var_2 = di->n;
      if (*var_2 != 'I') {
        return var_6;
      }
LAB_001f4dd5:
      di->n = var_2 + 1;
      var_16 = var_8(di);
    }
LAB_001f4de2:
    var_6 = var_5(di,DEMANGLE_COMPONENT_TEMPLATE,var_6,var_16);
  }
  else {
    if (var_1 < 'T') {
      if (var_1 != 'N') goto LAB_001f4e00;
      di->n = var_2 + 1;
      var_10 = var_9(di,&ret,1);
      if (var_10 != (type_1 **)0x0) {
        var_16 = var_11(di,(type_1 *)0x0);
        var_12 = (type_2 *)di->n;
        var_14 = (type_4)*var_12;
        var_6 = (type_1 *)0x0;
LAB_001f4d13:
        if ((char)var_14 != '\0') {
          var_15 = var_12;
          if ((char)var_14 == 'D') {
            var_1 = 'D';
            if ((var_12[1] & 0xdf) == 0x54) {
              var_25 = var_13(di);
              goto LAB_001f4f17;
            }
            var_25 = var_3(in_stack_ffffffc4);
            goto LAB_001f4f17;
          }
          do {
            var_1 = (char)var_14;
            if ((type_2)(var_14 - 0x30) < 0x1d) {
              if ((0x100803ffU >> (var_14 - 0x30 & 0x1f) & 1) == 0) {
LAB_001f5000:
                if (var_1 == 'I') {
                  if (var_6 == (type_1 *)0x0) break;
                  di->n = (char *)(var_15 + 1);
                  var_25 = var_8(di);
                  type = DEMANGLE_COMPONENT_TEMPLATE;
                }
                else {
                  if (var_1 != 'T') {
                    if (var_1 == 'E') {
                      *var_10 = var_6;
                      if (var_6 != (type_1 *)0x0) {
                        if (var_16 != (type_1 *)0x0) {
                          (var_16->u).s_fixed.length = ret;
                          ret = var_16;
                        }
                        if (*var_15 == 0x45) {
                          di->n = (char *)(var_15 + 1);
                          return ret;
                        }
                      }
                      goto LAB_001f4da6;
                    }
                    if ((var_6 == (type_1 *)0x0) || (var_1 != 'M')) break;
                    var_12 = var_15 + 1;
                    di->n = (char *)var_12;
                    var_14 = (type_4)var_15[1];
                    goto LAB_001f4d13;
                  }
                  var_25 = var_17(di);
LAB_001f4f17:
                  type = DEMANGLE_COMPONENT_QUAL_NAME;
                  if (var_6 == (type_1 *)0x0) goto LAB_001f4f24;
                }
LAB_001f4d51:
                var_25 = var_5(di,type,var_6,var_25);
              }
              else {
LAB_001f4d3d:
                var_25 = var_3(in_stack_ffffffc4);
                if (var_6 != (type_1 *)0x0) goto LAB_001f4d4c;
              }
              var_15 = (type_2 *)di->n;
              var_18 = *var_15;
              var_12 = var_15;
              if (var_1 == 'S') goto LAB_001f4d92;
            }
            else {
              if ((type_2)(var_1 + 0x9fU) < 0x1a) goto LAB_001f4d3d;
              if (var_1 != 'U') {
                if (var_1 != 'S') goto LAB_001f5000;
                var_25 = var_7(di,1);
                if (var_6 != (type_1 *)0x0) {
LAB_001f4d4c:
                  type = DEMANGLE_COMPONENT_QUAL_NAME;
                  goto LAB_001f4d51;
                }
                var_12 = (type_2 *)di->n;
                var_14 = (type_4)*var_12;
                var_6 = var_25;
                goto LAB_001f4d13;
              }
              var_25 = var_3(in_stack_ffffffc4);
              if (var_6 != (type_1 *)0x0) goto LAB_001f4d4c;
LAB_001f4f24:
              var_15 = (type_2 *)di->n;
              var_18 = *var_15;
            }
            if (var_18 != 0x45) goto code_r0x001f4d77;
            var_14 = 0x45;
            var_6 = var_25;
          } while( true );
        }
        goto LAB_001f4da0;
      }
    }
    else {
      if (var_1 == 'U') {
        var_6 = var_3(in_stack_ffffffc4);
        return var_6;
      }
      if (var_1 == 'Z') {
        di->n = var_2 + 1;
        var_6 = var_19(di,0);
        if ((var_6 != (type_1 *)0x0) && (var_2 = di->n, *var_2 == 'E')) {
          di->n = var_2 + 1;
          if (var_2[1] == 's') {
            di->n = var_2 + 2;
            var_4 = var_20(di);
            if (var_4 != 0) {
              var_4 = di->next_comp;
              if (var_4 < di->num_comps) {
                di->next_comp = var_4 + 1;
                var_16 = di->comps + var_4;
                var_16->d_printing = 0;
                var_16->type = DEMANGLE_COMPONENT_NAME;
                (var_16->u).s_name.s = "string literal";
                (var_16->u).s_name.len = 0xe;
                goto LAB_001f4ca4;
              }
LAB_001f514b:
              var_16 = (type_1 *)0x0;
LAB_001f4ca4:
              if ((var_6->type == var_21) &&
                 (var_25 = (var_6->u).s_extended_operator.name,
                 var_25->type == var_22)) {
                (var_25->u).s_name.s = (char *)0x0;
              }
              var_6 = var_5(di,DEMANGLE_COMPONENT_LOCAL_NAME,var_6,var_16);
              return var_6;
            }
          }
          else if (var_2[1] == 'd') {
            di->n = var_2 + 2;
            var_4 = var_23(di);
            if ((-1 < var_4) &&
               (((var_25 = var_24(di), var_25 == (type_1 *)0x0 ||
                 ((var_25->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == var_26)) ||
                (var_27 = var_20(di), var_27 != 0)))) {
              var_27 = di->next_comp;
              if (var_27 < di->num_comps) {
                var_16 = di->comps + var_27;
                var_16->d_printing = 0;
                di->next_comp = var_27 + 1;
                var_16->type = DEMANGLE_COMPONENT_DEFAULT_ARG;
                (var_16->u).s_name.len = var_4;
                (var_16->u).s_fixed.length = var_25;
                goto LAB_001f4ca4;
              }
              goto LAB_001f514b;
            }
          }
          else {
            var_16 = var_24(di);
            if (((var_16 == (type_1 *)0x0) ||
                ((var_16->type & ~DEMANGLE_COMPONENT_LOCAL_NAME) == var_26)) ||
               (var_4 = var_20(di), var_4 != 0)) goto LAB_001f4ca4;
          }
        }
      }
      else {
LAB_001f4e00:
        var_6 = var_3(in_stack_ffffffc4);
        var_2 = di->n;
        if (*var_2 != 'I') {
          return var_6;
        }
        if ((var_6 != (type_1 *)0x0) && (var_4 = di->next_sub, var_4 < di->num_subs)) {
          di->subs[var_4] = var_6;
          di->next_sub = var_4 + 1;
          var_16 = (type_1 *)0x0;
          if ((type_2)(*var_2 + 0xb7U) < 2) {
            di->n = var_2 + 1;
            var_16 = var_8(di);
          }
          goto LAB_001f4de2;
        }
      }
    }
LAB_001f4da6:
    var_6 = (type_1 *)0x0;
  }
  return var_6;
code_r0x001f4d77:
  if ((var_25 == (type_1 *)0x0) || (var_4 = di->next_sub, di->num_subs <= var_4))
  goto LAB_001f4da0;
  di->subs[var_4] = var_25;
  di->next_sub = var_4 + 1;
  var_18 = *var_15;
  var_12 = var_15;
LAB_001f4d92:
  var_14 = (type_4)var_18;
  var_6 = var_25;
  goto LAB_001f4d13;
LAB_001f4da0:
  *var_10 = (type_1 *)0x0;
  goto LAB_001f4da6;
}


(translation_unit (function_definition type: (primitive_type) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) 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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator 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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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))))))) consequence: (compound_statement (expression_statement (assignment_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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (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)))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (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: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_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: (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)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) 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: (pointer_expression argument: (identifier)) right: (char_literal (character)))) consequence: (compound_statement (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (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: (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: (identifier)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier))) (expression_statement (assignment_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: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) 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: (pointer_expression argument: (identifier)) right: (char_literal (character)))) consequence: (compound_statement (return_statement (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (call_expression function: (identifier) arguments: (argument_list))))) (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 (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (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))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (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 (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (char_literal (character)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) 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: (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))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (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 (expression_statement (assignment_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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (return_statement (identifier)))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_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)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (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)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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))))))) consequence: (compound_statement (expression_statement (assignment_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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (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)))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (string_literal (string_content))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) index: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (return_statement (identifier))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list)))) right: (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))) right: (binary_expression left: (identifier) right: (number_literal))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (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)))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_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: (binary_expression left: (identifier) right: (number_literal)))) (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: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))))))))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) 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: (pointer_expression argument: (identifier)) right: (char_literal (character)))) consequence: (compound_statement (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (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: (binary_expression left: (identifier) right: (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)))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier))) (expression_statement (assignment_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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))))) (goto_statement label: (statement_identifier)))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) (return_statement (identifier)) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (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: (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: (identifier)))))) consequence: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier))) (expression_statement (assignment_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: (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: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))))

/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

int __regparm3 MASKED(int param_1)

{
  int *piVar1;
  uint *puVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  char *pcVar6;
  undefined4 uVar7;
  uint uVar8;
  uint *puVar9;
  byte bVar10;
  undefined4 *puVar11;
  byte *pbVar12;
  byte *pbVar13;
  char cVar14;
  int local_20;
  
  pcVar6 = *(char **)(param_1 + 0xc);
  cVar14 = *pcVar6;
  if (cVar14 == 'S') {
    if (pcVar6[1] == 't') {
      *(char **)(param_1 + 0xc) = pcVar6 + 2;
      uVar7 = FUN_001f46f0();
      iVar3 = *(int *)(param_1 + 0x14);
      if (iVar3 < *(int *)(param_1 + 0x18)) {
        *(int *)(param_1 + 0x14) = iVar3 + 1;
        puVar11 = (undefined4 *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));
        puVar11[1] = 0;
        *puVar11 = 0;
        puVar11[2] = &DAT_002bdf00;
        puVar11[3] = 3;
      }
      iVar3 = FUN_001ec770(uVar7);
      *(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x2c) + 3;
      pcVar6 = *(char **)(param_1 + 0xc);
      if (*pcVar6 != 'I') {
        return iVar3;
      }
      if ((iVar3 == 0) || (iVar4 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar4))
      goto LAB_001f4da6;
      *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;
      *(int *)(param_1 + 0x20) = iVar4 + 1;
      if ((byte)(*pcVar6 + 0xb7U) < 2) goto LAB_001f4dd5;
      uVar7 = 0;
    }
    else {
      iVar3 = FUN_001eccd0();
      pcVar6 = *(char **)(param_1 + 0xc);
      if (*pcVar6 != 'I') {
        return iVar3;
      }
LAB_001f4dd5:
      *(char **)(param_1 + 0xc) = pcVar6 + 1;
      uVar7 = FUN_001f5c00();
    }
LAB_001f4de2:
    iVar3 = FUN_001ec770(uVar7);
  }
  else {
    if (cVar14 < 'T') {
      if (cVar14 != 'N') goto LAB_001f4e00;
      *(char **)(param_1 + 0xc) = pcVar6 + 1;
      piVar1 = (int *)FUN_001f6430();
      if (piVar1 != (int *)0x0) {
        iVar4 = FUN_001ec7e0();
        pbVar12 = *(byte **)(param_1 + 0xc);
        uVar8 = (uint)*pbVar12;
        iVar3 = 0;
LAB_001f4d13:
        if ((char)uVar8 != '\0') {
          pbVar13 = pbVar12;
          if ((char)uVar8 == 'D') {
            cVar14 = 'D';
            if ((pbVar12[1] & 0xdf) == 0x54) {
              iVar5 = FUN_001f3b10(param_1);
              goto LAB_001f4f17;
            }
            iVar5 = FUN_001f46f0();
            goto LAB_001f4f17;
          }
LAB_001f4d24:
          cVar14 = (char)uVar8;
          if ((byte)(uVar8 - 0x30) < 0x1d) {
            if ((0x100803ffU >> (uVar8 - 0x30 & 0x1f) & 1) != 0) goto LAB_001f4d3d;
LAB_001f5000:
            if (cVar14 == 'I') {
              if (iVar3 != 0) {
                *(byte **)(param_1 + 0xc) = pbVar13 + 1;
                iVar5 = FUN_001f5c00();
                goto LAB_001f4d51;
              }
              goto LAB_001f4da0;
            }
            if (cVar14 != 'T') {
              if (cVar14 == 'E') {
                *piVar1 = iVar3;
                if (iVar3 != 0) {
                  if (iVar4 != 0) {
                    *(int *)(iVar4 + 8) = local_20;
                    local_20 = iVar4;
                  }
                  if (*pbVar13 == 0x45) {
                    *(byte **)(param_1 + 0xc) = pbVar13 + 1;
                    return local_20;
                  }
                }
                goto LAB_001f4da6;
              }
              if ((iVar3 == 0) || (cVar14 != 'M')) goto LAB_001f4da0;
              pbVar12 = pbVar13 + 1;
              *(byte **)(param_1 + 0xc) = pbVar12;
              uVar8 = (uint)pbVar13[1];
              goto LAB_001f4d13;
            }
            iVar5 = FUN_001ecaa0();
LAB_001f4f17:
            if (iVar3 != 0) goto LAB_001f4d51;
LAB_001f4f24:
            pbVar13 = *(byte **)(param_1 + 0xc);
            bVar10 = *pbVar13;
            goto LAB_001f4d6e;
          }
          if ((byte)(cVar14 + 0x9fU) < 0x1a) {
LAB_001f4d3d:
            iVar5 = FUN_001f46f0();
            if (iVar3 != 0) goto LAB_001f4d51;
          }
          else {
            if (cVar14 == 'U') {
              iVar5 = FUN_001f46f0();
              if (iVar3 == 0) goto LAB_001f4f24;
              goto LAB_001f4d51;
            }
            if (cVar14 != 'S') goto LAB_001f5000;
            iVar5 = FUN_001eccd0();
            if (iVar3 == 0) {
              pbVar12 = *(byte **)(param_1 + 0xc);
              uVar8 = (uint)*pbVar12;
              iVar3 = iVar5;
              goto LAB_001f4d13;
            }
LAB_001f4d51:
            iVar5 = FUN_001ec770(iVar5);
          }
          pbVar13 = *(byte **)(param_1 + 0xc);
          bVar10 = *pbVar13;
          pbVar12 = pbVar13;
          if (cVar14 == 'S') goto LAB_001f4d92;
LAB_001f4d6e:
          if (bVar10 != 0x45) goto code_r0x001f4d77;
          uVar8 = 0x45;
          iVar3 = iVar5;
          goto LAB_001f4d24;
        }
LAB_001f4da0:
        *piVar1 = 0;
      }
    }
    else {
      if (cVar14 == 'U') {
        iVar3 = FUN_001f46f0();
        return iVar3;
      }
      if (cVar14 == 'Z') {
        *(char **)(param_1 + 0xc) = pcVar6 + 1;
        piVar1 = (int *)FUN_001f5180();
        if ((piVar1 != (int *)0x0) && (pcVar6 = *(char **)(param_1 + 0xc), *pcVar6 == 'E')) {
          *(char **)(param_1 + 0xc) = pcVar6 + 1;
          if (pcVar6[1] == 's') {
            *(char **)(param_1 + 0xc) = pcVar6 + 2;
            iVar3 = FUN_001ecfa0();
            if (iVar3 != 0) {
              iVar3 = *(int *)(param_1 + 0x14);
              if (iVar3 < *(int *)(param_1 + 0x18)) {
                *(int *)(param_1 + 0x14) = iVar3 + 1;
                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));
                puVar2[1] = 0;
                *puVar2 = 0;
                puVar2[2] = (uint)"string literal";
                puVar2[3] = 0xe;
                goto LAB_001f4ca4;
              }
LAB_001f514b:
              puVar2 = (uint *)0x0;
LAB_001f4ca4:
              if ((*piVar1 == 3) && (*(int *)piVar1[3] == 0x29)) {
                ((int *)piVar1[3])[2] = 0;
              }
              iVar3 = FUN_001ec770(puVar2);
              return iVar3;
            }
          }
          else if (pcVar6[1] == 'd') {
            *(char **)(param_1 + 0xc) = pcVar6 + 2;
            uVar8 = FUN_001eca60();
            if ((-1 < (int)uVar8) &&
               (((puVar9 = (uint *)MASKED(), puVar9 == (uint *)0x0 ||
                 ((*puVar9 & 0xfffffffd) == 0x45)) || (iVar3 = FUN_001ecfa0(), iVar3 != 0)))) {
              iVar3 = *(int *)(param_1 + 0x14);
              if (iVar3 < *(int *)(param_1 + 0x18)) {
                puVar2 = (uint *)(iVar3 * 0x10 + *(int *)(param_1 + 0x10));
                puVar2[1] = 0;
                *(int *)(param_1 + 0x14) = iVar3 + 1;
                *puVar2 = 0x46;
                puVar2[3] = uVar8;
                puVar2[2] = (uint)puVar9;
                goto LAB_001f4ca4;
              }
              goto LAB_001f514b;
            }
          }
          else {
            puVar2 = (uint *)MASKED();
            if (((puVar2 == (uint *)0x0) || ((*puVar2 & 0xfffffffd) == 0x45)) ||
               (iVar3 = FUN_001ecfa0(), iVar3 != 0)) goto LAB_001f4ca4;
          }
        }
      }
      else {
LAB_001f4e00:
        iVar3 = FUN_001f46f0();
        pcVar6 = *(char **)(param_1 + 0xc);
        if (*pcVar6 != 'I') {
          return iVar3;
        }
        if ((iVar3 != 0) && (iVar4 = *(int *)(param_1 + 0x20), iVar4 < *(int *)(param_1 + 0x24))) {
          *(int *)(*(int *)(param_1 + 0x1c) + iVar4 * 4) = iVar3;
          *(int *)(param_1 + 0x20) = iVar4 + 1;
          uVar7 = 0;
          if ((byte)(*pcVar6 + 0xb7U) < 2) {
            *(char **)(param_1 + 0xc) = pcVar6 + 1;
            uVar7 = FUN_001f5c00();
          }
          goto LAB_001f4de2;
        }
      }
    }
LAB_001f4da6:
    iVar3 = 0;
  }
  return iVar3;
code_r0x001f4d77:
  if ((iVar5 == 0) || (iVar3 = *(int *)(param_1 + 0x20), *(int *)(param_1 + 0x24) <= iVar3))
  goto LAB_001f4da0;
  *(int *)(*(int *)(param_1 + 0x1c) + iVar3 * 4) = iVar5;
  *(int *)(param_1 + 0x20) = iVar3 + 1;
  bVar10 = *pbVar13;
  pbVar12 = pbVar13;
LAB_001f4d92:
  uVar8 = (uint)bVar10;
  iVar3 = iVar5;
  goto LAB_001f4d13;
}

