
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

int __regparm3 do_type(work_stuff *work,char **mangled,string *result)

{
  int *piVar1;
  byte bVar2;
  bool bVar3;
  bool bVar4;
  char cVar5;
  int iVar6;
  char *pcVar7;
  size_t sVar8;
  int *piVar9;
  char *pcVar10;
  int iVar11;
  int iVar12;
  int local_78;
  int local_70;
  int n;
  char *remembered_type;
  uint dec;
  string decl;
  string temp;
  
  iVar12 = 1;
  result->e = (char *)0x0;
  decl.e = (char *)0x0;
  decl.p = (char *)0x0;
  decl.b = (char *)0x0;
  result->p = (char *)0x0;
  result->b = (char *)0x0;
  local_70 = 0;
  bVar4 = false;
  iVar11 = local_70;
LAB_001cf820:
  local_70 = iVar11;
  pcVar7 = decl.b;
  bVar3 = false;
_L731:
  if ((bVar3) || (iVar12 == 0)) {
    if (iVar12 == 0) goto _L589;
    pcVar7 = *mangled;
    iVar11 = local_70;
    switch(*pcVar7) {
    case 'B':
      *mangled = pcVar7 + 1;
      iVar6 = get_count(mangled,&n);
      if (((iVar6 == 0) || (n < 0)) || (work->numb <= n)) goto _L589;
      pcVar7 = work->btypevec[n];
      break;
    default:
      dec = 0;
      goto LAB_001d0082;
    case 'K':
    case 'Q':
      iVar12 = demangle_qualified(work,mangled,result,0,1);
      if (iVar12 == 0) goto _L589;
      goto LAB_001cfebc;
    case 'X':
    case 'Y':
      *mangled = pcVar7 + 1;
      iVar6 = consume_count_with_underscores(mangled);
      if ((iVar6 == -1) ||
         (((work->tmpl_argvec != (char **)0x0 && (work->ntmpl_args <= iVar6)) ||
          (iVar12 = consume_count_with_underscores(mangled), iVar12 == -1)))) goto _L589;
      if (work->tmpl_argvec == (char **)0x0) {
        iVar12 = 1;
        string_append_template_idx(result,iVar6);
        goto LAB_001cfebc;
      }
      pcVar7 = work->tmpl_argvec[iVar6];
      iVar12 = 1;
    }
    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {
      string_append(result,pcVar7);
    }
    goto LAB_001cfebc;
  }
  pcVar10 = *mangled;
  bVar3 = true;
  iVar6 = (int)*pcVar10;
  iVar11 = local_70;
  switch(iVar6 - 0x41U & 0xff) {
  case 0:
    goto _L530;
  default:
    goto _L731;
  case 2:
  case 0x15:
  case 0x34:
    if ((work->options & 2) != 0) {
      if (decl.b != decl.p) {
        string_prepend(&decl," ");
        pcVar10 = *mangled;
        iVar6 = (int)*pcVar10;
      }
      pcVar7 = demangle_qualifier(iVar6);
      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {
        string_prepend(&decl,pcVar7);
        pcVar10 = *mangled;
      }
    }
    *mangled = pcVar10 + 1;
    goto LAB_001cf820;
  case 5:
    *mangled = pcVar10 + 1;
    if ((pcVar7 != decl.p) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {
      string_prepend(&decl,"(");
      string_append(&decl,")");
    }
    iVar6 = demangle_nested_args(work,mangled,&decl);
    if (iVar6 != 0) {
      cVar5 = **mangled;
      if ((cVar5 == '_') || (cVar5 == '\0')) {
        if (cVar5 == '_') {
          *mangled = *mangled + 1;
        }
        goto LAB_001cf820;
      }
    }
    break;
  case 6:
    *mangled = pcVar10 + 1;
    goto LAB_001cf820;
  case 0xc:
    *mangled = pcVar10 + 1;
    string_append(&decl,")");
    if (**mangled == 'Q') {
      if (((byte)_sch_istable[0x51] & 4) != 0) goto LAB_001cfb41;
LAB_001cfa0d:
      iVar12 = demangle_qualified(work,mangled,&decl,0,0);
      if (iVar12 == 0) goto LAB_001cf820;
    }
    else {
      pcVar7 = "::";
      if ((work->options & 4) != 0) {
        pcVar7 = ".";
      }
      string_prepend(&decl,pcVar7);
      bVar2 = **mangled;
      if ((_sch_istable[bVar2] & 4) != 0) {
LAB_001cfb41:
        iVar6 = consume_count(mangled);
        n = iVar6;
        if (iVar6 != -1) {
          pcVar7 = *mangled;
          sVar8 = strlen(pcVar7);
          if (iVar6 <= (int)sVar8) {
            if (iVar6 != 0) {
              string_prependn(&decl,pcVar7,iVar6);
              pcVar7 = *mangled;
              iVar6 = n;
            }
            *mangled = pcVar7 + iVar6;
            goto LAB_001cfb87;
          }
        }
        break;
      }
      if ((byte)(bVar2 + 0xa8) < 2) {
        do_type(work,mangled,&temp);
        pcVar7 = temp.p;
        if (temp.b != temp.p) {
          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);
          pcVar7 = temp.b;
        }
        if (pcVar7 != (char *)0x0) {
          free(pcVar7);
        }
      }
      else {
        if (bVar2 != 0x74) {
          if (bVar2 == 0x51) goto LAB_001cfa0d;
          break;
        }
        temp.e = (char *)0x0;
        temp.p = (char *)0x0;
        temp.b = (char *)0x0;
        iVar12 = demangle_template(work,mangled,&temp,(string *)0x0,1,1);
        if (iVar12 == 0) {
          if (temp.b != (char *)0x0) {
            free(temp.b);
          }
          goto LAB_001cf820;
        }
        if ((int)temp.p - (int)temp.b != 0) {
          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);
        }
        if (temp.b != (char *)0x0) {
          free(temp.b);
        }
      }
    }
LAB_001cfb87:
    string_prepend(&decl,"(");
    pcVar7 = *mangled;
    cVar5 = *pcVar7;
    if (cVar5 == 'V') {
      local_78 = 2;
LAB_001d0040:
      pcVar10 = pcVar7 + 1;
      *mangled = pcVar10;
      cVar5 = pcVar7[1];
    }
    else {
      if (cVar5 == 'u') {
        local_78 = 4;
        goto LAB_001d0040;
      }
      if (cVar5 == 'C') {
        local_78 = 1;
        goto LAB_001d0040;
      }
      local_78 = 0;
      pcVar10 = pcVar7;
    }
    if (cVar5 == 'F') {
      *mangled = pcVar10 + 1;
      iVar6 = demangle_nested_args(work,mangled,&decl);
      if ((iVar6 != 0) && (**mangled == '_')) {
        *mangled = *mangled + 1;
        if (((work->options & 2) != 0) && (local_78 != 0)) {
          if (decl.b != decl.p) {
            string_append(&decl," ");
          }
          pcVar7 = qualifier_string(local_78);
          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {
            string_append(&decl,pcVar7);
          }
        }
        goto LAB_001cf820;
      }
    }
    break;
  case 0xe:
    *mangled = pcVar10 + 1;
    string_prepend(&decl,"&&");
    iVar11 = 3;
    if (local_70 != 0) {
      iVar11 = local_70;
    }
    goto LAB_001cf820;
  case 0xf:
  case 0x2f:
    *mangled = pcVar10 + 1;
    if ((work->options & 4) == 0) {
      string_prepend(&decl,"*");
    }
    iVar11 = 1;
    if (local_70 != 0) {
      iVar11 = local_70;
    }
    goto LAB_001cf820;
  case 0x11:
    *mangled = pcVar10 + 1;
    string_prepend(&decl,"&");
    iVar11 = 2;
    if (local_70 != 0) {
      iVar11 = local_70;
    }
    goto LAB_001cf820;
  case 0x13:
    *mangled = pcVar10 + 1;
    iVar6 = get_count(mangled,&n);
    if (((iVar6 == 0) || (n < 0)) || (work->ntypes <= n)) break;
    if (work->nproctypes < 1) goto LAB_001cfe64;
    piVar9 = work->proctypevec;
    piVar1 = piVar9 + work->nproctypes;
    do {
      if (n == *piVar9) {
        iVar12 = 0;
      }
      piVar9 = piVar9 + 1;
    } while (piVar1 != piVar9);
    if (iVar12 != 0) {
LAB_001cfe64:
      push_processed_type(work,n);
      bVar4 = true;
      mangled = &remembered_type;
      remembered_type = work->typevec[n];
    }
    goto LAB_001cf820;
  }
  iVar12 = 0;
  goto LAB_001cf820;
LAB_001d0082:
  do {
    cVar5 = *pcVar7;
    switch(cVar5 + -0x43) {
    case '\0':
    case '\x13':
    case '2':
      if ((work->options & 2) != 0) {
        if (result->b != result->p) {
          string_prepend(result," ");
          pcVar7 = *mangled;
          cVar5 = *pcVar7;
        }
        pcVar10 = demangle_qualifier((int)cVar5);
        if ((pcVar10 != (char *)0x0) && (*pcVar10 != '\0')) {
          string_prepend(result,pcVar10);
          pcVar7 = *mangled;
        }
      }
      pcVar7 = pcVar7 + 1;
      *mangled = pcVar7;
      break;
    default:
      goto code_r0x001d0176;
    case '\a':
      *mangled = pcVar7 + 1;
      if (result->b != result->p) {
        string_append(result," ");
      }
      string_append(result,"__complex");
      pcVar7 = *mangled;
      break;
    case '\x10':
      *mangled = pcVar7 + 1;
      if (result->b != result->p) {
        string_append(result," ");
      }
      string_append(result,"signed");
      pcVar7 = *mangled;
      break;
    case '\x12':
      *mangled = pcVar7 + 1;
      if (result->b != result->p) {
        string_append(result," ");
      }
      string_append(result,"unsigned");
      pcVar7 = *mangled;
    }
  } while( true );
_L530:
  *mangled = pcVar10 + 1;
  if ((pcVar7 != decl.p) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {
    string_prepend(&decl,"(");
    string_append(&decl,")");
  }
  string_append(&decl,"[");
  pcVar7 = *mangled;
  if (*pcVar7 != '_') {
    iVar12 = demangle_template_value_parm(work,mangled,&decl,tk_integral);
    pcVar7 = *mangled;
    if (*pcVar7 != '_') goto LAB_001cfa7a;
  }
  *mangled = pcVar7 + 1;
LAB_001cfa7a:
  string_append(&decl,"]");
  goto LAB_001cf820;
code_r0x001d0176:
  pcVar10 = pcVar7;
  switch(cVar5) {
  case '\0':
  case '_':
    goto _L656;
  default:
    goto _L589;
  case '0':
  case '1':
  case '2':
  case '3':
  case '4':
  case '5':
  case '6':
  case '7':
  case '8':
  case '9':
    iVar11 = register_Btype(work);
    temp.e = (char *)0x0;
    temp.p = (char *)0x0;
    temp.b = (char *)0x0;
    iVar12 = demangle_class_name(work,mangled,&temp);
    if (iVar12 != 0) {
      iVar12 = (int)temp.p - (int)temp.b;
      if (temp.b == temp.p) {
        iVar12 = 0;
      }
      remember_Btype((work_stuff *)&work->btypevec,temp.b,iVar12,iVar11);
      if (result->b != result->p) {
        string_append(result," ");
      }
      iVar12 = 1;
      string_appends(result,&temp,(string *)temp.p);
    }
    goto joined_r0x001d0375;
  case 'G':
    pcVar10 = pcVar7 + 1;
    *mangled = pcVar10;
    if ((_sch_istable[(byte)pcVar7[1]] & 4) != 0) goto _L586;
    goto _L589;
  case 'I':
_L586:
    pcVar7 = pcVar10 + 1;
    *mangled = pcVar7;
    if (pcVar10[1] == '_') {
      iVar12 = 0;
      *mangled = pcVar10 + 2;
      pcVar7 = pcVar10 + 2;
      do {
        pcVar10 = pcVar7;
        cVar5 = *pcVar10;
        pcVar7 = pcVar10;
        if ((cVar5 == '_') || (cVar5 == '\0')) goto LAB_001d0200;
        *(char *)((int)&temp.b + iVar12) = cVar5;
        pcVar7 = pcVar10 + 1;
        iVar12 = iVar12 + 1;
        *mangled = pcVar7;
      } while (iVar12 != 0x24);
      cVar5 = pcVar10[1];
LAB_001d0200:
      if (cVar5 != '_') goto _L589;
      *(undefined1 *)((int)&temp.b + iVar12) = 0;
      *mangled = pcVar7 + 1;
    }
    else {
      strncpy((char *)&temp,pcVar7,2);
      temp.b._0_3_ = CONCAT12(0,(ushort)temp.b);
      sVar8 = strlen(pcVar7);
      if (1 < sVar8) {
        sVar8 = 2;
      }
      *mangled = pcVar7 + sVar8;
    }
    sscanf((char *)&temp,"%x",&dec);
    sprintf((char *)&temp,"int%u_t",dec);
    if (result->b != result->p) {
      string_append(result," ");
    }
    if ((char)temp.b == '\0') goto _L656;
    iVar12 = 4;
    string_append(result,(char *)&temp);
    iVar11 = 4;
    break;
  case 'b':
    *mangled = pcVar7 + 1;
    if (result->b != result->p) {
      string_append(result," ");
    }
    iVar12 = 5;
    string_append(result,"bool");
    iVar11 = 5;
    break;
  case 'c':
    *mangled = pcVar7 + 1;
    if (result->b != result->p) {
      string_append(result," ");
    }
    iVar12 = 6;
    string_append(result,"char");
    iVar11 = 6;
    break;
  case 'd':
    *mangled = pcVar7 + 1;
    if (result->b != result->p) {
      string_append(result," ");
    }
    iVar12 = 7;
    string_append(result,"double");
    iVar11 = 7;
    break;
  case 'f':
    *mangled = pcVar7 + 1;
    if (result->b != result->p) {
      string_append(result," ");
    }
    iVar12 = 7;
    string_append(result,"float");
    iVar11 = 7;
    break;
  case 'i':
    *mangled = pcVar7 + 1;
    if (result->b != result->p) {
      string_append(result," ");
    }
    iVar12 = 4;
    string_append(result,"int");
    iVar11 = 4;
    break;
  case 'l':
    *mangled = pcVar7 + 1;
    if (result->b != result->p) {
      string_append(result," ");
    }
    iVar12 = 4;
    string_append(result,"long");
    iVar11 = 4;
    break;
  case 'r':
    *mangled = pcVar7 + 1;
    if (result->b != result->p) {
      string_append(result," ");
    }
    iVar12 = 7;
    string_append(result,"long double");
    iVar11 = 7;
    break;
  case 's':
    *mangled = pcVar7 + 1;
    if (result->b != result->p) {
      string_append(result," ");
    }
    iVar12 = 4;
    string_append(result,"short");
    iVar11 = 4;
    break;
  case 't':
    temp.e = (char *)0x0;
    temp.p = (char *)0x0;
    temp.b = (char *)0x0;
    iVar12 = demangle_template(work,mangled,&temp,(string *)0x0,1,1);
    string_appends(result,&temp,(string *)temp.p);
joined_r0x001d0375:
    if (temp.b != (char *)0x0) {
      free(temp.b);
    }
    if (iVar12 != 0) {
_L656:
      iVar12 = 4;
      iVar11 = 4;
      break;
    }
_L589:
    if (result->b == (char *)0x0) {
      iVar12 = 0;
      pcVar7 = decl.b;
    }
    else {
      iVar12 = 0;
      free(result->b);
      result->p = (char *)0x0;
      result->e = (char *)0x0;
      result->b = (char *)0x0;
      pcVar7 = decl.b;
    }
    goto LAB_001cfdb8;
  case 'v':
    *mangled = pcVar7 + 1;
    if (result->b != result->p) {
      string_append(result," ");
    }
    iVar12 = 4;
    string_append(result,"void");
    iVar11 = 4;
    break;
  case 'w':
    *mangled = pcVar7 + 1;
    if (result->b != result->p) {
      string_append(result," ");
    }
    iVar12 = 6;
    string_append(result,"wchar_t");
    iVar11 = 6;
    break;
  case 'x':
    *mangled = pcVar7 + 1;
    if (result->b != result->p) {
      string_append(result," ");
    }
    iVar12 = 4;
    string_append(result,"long long");
    iVar11 = 4;
  }
  if (local_70 != 0) {
    iVar11 = local_70;
  }
LAB_001cfebc:
  local_70 = iVar11;
  pcVar7 = decl.p;
  if (decl.b != decl.p) {
    string_append(result," ");
    string_appends(result,&decl,(string *)decl.p);
    pcVar7 = decl.b;
  }
LAB_001cfdb8:
  if (pcVar7 != (char *)0x0) {
    free(pcVar7);
  }
  if (bVar4) {
    work->nproctypes = work->nproctypes + -1;
  }
  if ((iVar12 != 0) && (iVar12 = local_70, local_70 == 0)) {
    iVar12 = 4;
  }
  return iVar12;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

int __regparm3 FUN_001cf7b0(byte *param_1,int *param_2,int *param_3)

{
  int *piVar1;
  byte bVar2;
  bool bVar3;
  bool bVar4;
  char cVar5;
  int iVar6;
  char *pcVar7;
  size_t sVar8;
  undefined4 uVar9;
  int *piVar10;
  char *pcVar11;
  int iVar12;
  void *__ptr;
  int iVar13;
  undefined1 *puVar14;
  int local_78;
  int local_70;
  int iStack_5c;
  int iStack_58;
  undefined4 local_54;
  char *local_50;
  char *local_4c;
  undefined4 local_48;
  void *pvStack_44;
  void *pvStack_40;
  undefined4 uStack_3c;
  undefined4 uStack_14;
  
  iVar13 = 1;
  uStack_14 = 0x1cf7c0;
  param_3[2] = 0;
  local_48 = 0;
  local_4c = (char *)0x0;
  local_50 = (char *)0x0;
  param_3[1] = 0;
  *param_3 = 0;
  local_70 = 0;
  bVar4 = false;
  iVar12 = local_70;
code_r0x001cf820:
  local_70 = iVar12;
  pcVar7 = local_50;
  bVar3 = false;
LAB_001cf82d:
  if ((bVar3) || (iVar13 == 0)) {
    if (iVar13 == 0) goto LAB_001cfd80;
    pcVar7 = (char *)*param_2;
    iVar12 = local_70;
    switch(*pcVar7) {
    case 'B':
      *param_2 = (int)(pcVar7 + 1);
      iVar6 = FUN_001cd940();
      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))
      goto LAB_001cfd80;
      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);
      break;
    default:
      local_54 = 0;
      goto code_r0x001d0082;
    case 'K':
    case 'Q':
      iVar13 = FUN_001d1b50(0,1);
      if (iVar13 == 0) goto LAB_001cfd80;
      goto code_r0x001cfebc;
    case 'X':
    case 'Y':
      *param_2 = (int)(pcVar7 + 1);
      iVar13 = FUN_001cde90();
      if ((iVar13 == -1) ||
         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||
          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;
      if (*(int *)(param_1 + 0x40) == 0) {
        iVar13 = 1;
        FUN_001ce280();
        goto code_r0x001cfebc;
      }
      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);
      iVar13 = 1;
    }
    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {
      FUN_001ce230();
    }
    goto code_r0x001cfebc;
  }
  puVar14 = (undefined1 *)*param_2;
  bVar3 = true;
  iVar12 = local_70;
  switch(*puVar14) {
  case 0x41:
    goto code_r0x001cfa38;
  default:
    goto LAB_001cf82d;
  case 0x43:
  case 0x56:
  case 0x75:
    if ((*param_1 & 2) != 0) {
      if (local_50 != local_4c) {
        FUN_001ce1f0();
        puVar14 = (undefined1 *)*param_2;
      }
      pcVar7 = (char *)FUN_001cdd80();
      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {
        FUN_001ce1f0();
        puVar14 = (undefined1 *)*param_2;
      }
    }
    *param_2 = (int)(puVar14 + 1);
    goto code_r0x001cf820;
  case 0x46:
    *param_2 = (int)(puVar14 + 1);
    if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {
      FUN_001ce1f0();
      FUN_001ce230();
    }
    iVar6 = FUN_001d24a0();
    if (iVar6 != 0) {
      cVar5 = *(char *)*param_2;
      if ((cVar5 == '_') || (cVar5 == '\0')) {
        if (cVar5 == '_') {
          *param_2 = (int)((char *)*param_2 + 1);
        }
        goto code_r0x001cf820;
      }
    }
    break;
  case 0x47:
    *param_2 = (int)(puVar14 + 1);
    goto code_r0x001cf820;
  case 0x4d:
    *param_2 = (int)(puVar14 + 1);
    FUN_001ce230();
    if (*(char *)*param_2 == 'Q') {
      if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;
code_r0x001cfa0d:
      iVar13 = FUN_001d1b50(0,0);
      if (iVar13 == 0) goto code_r0x001cf820;
    }
    else {
      FUN_001ce1f0();
      bVar2 = *(byte *)*param_2;
      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {
code_r0x001cfb41:
        iStack_5c = FUN_001cdde0();
        if (iStack_5c != -1) {
          pcVar7 = (char *)*param_2;
          sVar8 = strlen(pcVar7);
          if (iStack_5c <= (int)sVar8) {
            if (iStack_5c != 0) {
              FUN_001ce190();
              pcVar7 = (char *)*param_2;
            }
            *param_2 = (int)(pcVar7 + iStack_5c);
            goto code_r0x001cfb87;
          }
        }
        break;
      }
      if ((byte)(bVar2 + 0xa8) < 2) {
        FUN_001cf7b0();
        __ptr = pvStack_40;
        if (pvStack_44 != pvStack_40) {
          FUN_001ce190();
          __ptr = pvStack_44;
        }
        if (__ptr != (void *)0x0) {
          free(__ptr);
        }
      }
      else {
        if (bVar2 != 0x74) {
          if (bVar2 == 0x51) goto code_r0x001cfa0d;
          break;
        }
        uStack_3c = 0;
        pvStack_40 = (void *)0x0;
        pvStack_44 = (void *)0x0;
        iVar13 = FUN_001d1450(0,1,1);
        if (iVar13 == 0) {
          if (pvStack_44 != (void *)0x0) {
            free(pvStack_44);
          }
          goto code_r0x001cf820;
        }
        if (pvStack_40 != pvStack_44) {
          FUN_001ce190();
        }
        if (pvStack_44 != (void *)0x0) {
          free(pvStack_44);
        }
      }
    }
code_r0x001cfb87:
    FUN_001ce1f0();
    pcVar7 = (char *)*param_2;
    cVar5 = *pcVar7;
    if (cVar5 == 'V') {
      local_78 = 2;
code_r0x001d0040:
      pcVar11 = pcVar7 + 1;
      *param_2 = (int)pcVar11;
      cVar5 = pcVar7[1];
    }
    else {
      if (cVar5 == 'u') {
        local_78 = 4;
        goto code_r0x001d0040;
      }
      if (cVar5 == 'C') {
        local_78 = 1;
        goto code_r0x001d0040;
      }
      local_78 = 0;
      pcVar11 = pcVar7;
    }
    if (cVar5 == 'F') {
      *param_2 = (int)(pcVar11 + 1);
      iVar6 = FUN_001d24a0();
      if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {
        *param_2 = (int)((char *)*param_2 + 1);
        if (((*param_1 & 2) != 0) && (local_78 != 0)) {
          if (local_50 != local_4c) {
            FUN_001ce230();
          }
          pcVar7 = (char *)FUN_001cdcd0();
          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {
            FUN_001ce230();
          }
        }
        goto code_r0x001cf820;
      }
    }
    break;
  case 0x4f:
    *param_2 = (int)(puVar14 + 1);
    FUN_001ce1f0();
    iVar12 = 3;
    if (local_70 != 0) {
      iVar12 = local_70;
    }
    goto code_r0x001cf820;
  case 0x50:
  case 0x70:
    *param_2 = (int)(puVar14 + 1);
    if ((*param_1 & 4) == 0) {
      FUN_001ce1f0();
    }
    iVar12 = 1;
    if (local_70 != 0) {
      iVar12 = local_70;
    }
    goto code_r0x001cf820;
  case 0x52:
    *param_2 = (int)(puVar14 + 1);
    FUN_001ce1f0();
    iVar12 = 2;
    if (local_70 != 0) {
      iVar12 = local_70;
    }
    goto code_r0x001cf820;
  case 0x54:
    *param_2 = (int)(puVar14 + 1);
    iVar6 = FUN_001cd940();
    if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c)) break;
    if (*(int *)(param_1 + 0x5c) < 1) goto code_r0x001cfe64;
    piVar10 = *(int **)(param_1 + 0x54);
    piVar1 = piVar10 + *(int *)(param_1 + 0x5c);
    do {
      if (iStack_5c == *piVar10) {
        iVar13 = 0;
      }
      piVar10 = piVar10 + 1;
    } while (piVar1 != piVar10);
    if (iVar13 != 0) {
code_r0x001cfe64:
      FUN_001cdac0();
      bVar4 = true;
      param_2 = &iStack_58;
      iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);
    }
    goto code_r0x001cf820;
  }
  iVar13 = 0;
  goto code_r0x001cf820;
code_r0x001d0082:
  do {
    switch(*pcVar7 + -0x43) {
    case '\0':
    case '\x13':
    case '2':
      if ((*param_1 & 2) != 0) {
        if (*param_3 != param_3[1]) {
          FUN_001ce1f0();
          pcVar7 = (char *)*param_2;
        }
        pcVar11 = (char *)FUN_001cdd80();
        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {
          FUN_001ce1f0();
          pcVar7 = (char *)*param_2;
        }
      }
      pcVar7 = pcVar7 + 1;
      *param_2 = (int)pcVar7;
      break;
    default:
      goto code_r0x001d0176;
    case '\a':
      *param_2 = (int)(pcVar7 + 1);
      if (*param_3 != param_3[1]) {
        FUN_001ce230();
      }
      FUN_001ce230();
      pcVar7 = (char *)*param_2;
      break;
    case '\x10':
      *param_2 = (int)(pcVar7 + 1);
      if (*param_3 != param_3[1]) {
        FUN_001ce230();
      }
      FUN_001ce230();
      pcVar7 = (char *)*param_2;
      break;
    case '\x12':
      *param_2 = (int)(pcVar7 + 1);
      if (*param_3 != param_3[1]) {
        FUN_001ce230();
      }
      FUN_001ce230();
      pcVar7 = (char *)*param_2;
    }
  } while( true );
code_r0x001cfa38:
  *param_2 = (int)(puVar14 + 1);
  if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {
    FUN_001ce1f0();
    FUN_001ce230();
  }
  FUN_001ce230();
  pcVar7 = (char *)*param_2;
  if (*pcVar7 != '_') {
    iVar13 = FUN_001cf0a0(4);
    pcVar7 = (char *)*param_2;
    if (*pcVar7 != '_') goto code_r0x001cfa7a;
  }
  *param_2 = (int)(pcVar7 + 1);
code_r0x001cfa7a:
  FUN_001ce230();
  goto code_r0x001cf820;
code_r0x001d0176:
  pcVar11 = pcVar7;
  switch(*pcVar7) {
  case '\0':
  case '_':
    goto code_r0x001d018e;
  default:
    goto LAB_001cfd80;
  case '0':
  case '1':
  case '2':
  case '3':
  case '4':
  case '5':
  case '6':
  case '7':
  case '8':
  case '9':
    uVar9 = FUN_001cdb80();
    uStack_3c = 0;
    pvStack_40 = (void *)0x0;
    pvStack_44 = (void *)0x0;
    iVar13 = FUN_001d0dd0();
    if (iVar13 != 0) {
      FUN_001ce060(uVar9);
      if (*param_3 != param_3[1]) {
        FUN_001ce230();
      }
      iVar13 = 1;
      FUN_001ce380();
    }
    goto joined_r0x001d0375;
  case 'G':
    pcVar11 = pcVar7 + 1;
    *param_2 = (int)pcVar11;
    if (((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0) goto code_r0x001d01c5;
    goto LAB_001cfd80;
  case 'I':
code_r0x001d01c5:
    pcVar7 = pcVar11 + 1;
    *param_2 = (int)pcVar7;
    if (pcVar11[1] == '_') {
      iVar13 = 0;
      *param_2 = (int)(pcVar11 + 2);
      pcVar7 = pcVar11 + 2;
      do {
        pcVar11 = pcVar7;
        cVar5 = *pcVar11;
        pcVar7 = pcVar11;
        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;
        *(char *)((int)&pvStack_44 + iVar13) = cVar5;
        pcVar7 = pcVar11 + 1;
        iVar13 = iVar13 + 1;
        *param_2 = (int)pcVar7;
      } while (iVar13 != 0x24);
      cVar5 = pcVar11[1];
code_r0x001d0200:
      if (cVar5 != '_') goto LAB_001cfd80;
      *(undefined1 *)((int)&pvStack_44 + iVar13) = 0;
      *param_2 = (int)(pcVar7 + 1);
    }
    else {
      strncpy((char *)&pvStack_44,pcVar7,2);
      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;
      sVar8 = strlen(pcVar7);
      if (1 < sVar8) {
        sVar8 = 2;
      }
      *param_2 = (int)(pcVar7 + sVar8);
    }
    sscanf((char *)&pvStack_44,"%x",&local_54);
    sprintf((char *)&pvStack_44,"int%u_t",local_54);
    if (*param_3 != param_3[1]) {
      FUN_001ce230();
    }
    if ((char)pvStack_44 == '\0') goto code_r0x001d018e;
    iVar13 = 4;
    FUN_001ce230();
    iVar12 = 4;
    break;
  case 'b':
    *param_2 = (int)(pcVar7 + 1);
    if (*param_3 != param_3[1]) {
      FUN_001ce230();
    }
    iVar13 = 5;
    FUN_001ce230();
    iVar12 = 5;
    break;
  case 'c':
    *param_2 = (int)(pcVar7 + 1);
    if (*param_3 != param_3[1]) {
      FUN_001ce230();
    }
    iVar13 = 6;
    FUN_001ce230();
    iVar12 = 6;
    break;
  case 'd':
    *param_2 = (int)(pcVar7 + 1);
    if (*param_3 != param_3[1]) {
      FUN_001ce230();
    }
    iVar13 = 7;
    FUN_001ce230();
    iVar12 = 7;
    break;
  case 'f':
    *param_2 = (int)(pcVar7 + 1);
    if (*param_3 != param_3[1]) {
      FUN_001ce230();
    }
    iVar13 = 7;
    FUN_001ce230();
    iVar12 = 7;
    break;
  case 'i':
    *param_2 = (int)(pcVar7 + 1);
    if (*param_3 != param_3[1]) {
      FUN_001ce230();
    }
    iVar13 = 4;
    FUN_001ce230();
    iVar12 = 4;
    break;
  case 'l':
    *param_2 = (int)(pcVar7 + 1);
    if (*param_3 != param_3[1]) {
      FUN_001ce230();
    }
    iVar13 = 4;
    FUN_001ce230();
    iVar12 = 4;
    break;
  case 'r':
    *param_2 = (int)(pcVar7 + 1);
    if (*param_3 != param_3[1]) {
      FUN_001ce230();
    }
    iVar13 = 7;
    FUN_001ce230();
    iVar12 = 7;
    break;
  case 's':
    *param_2 = (int)(pcVar7 + 1);
    if (*param_3 != param_3[1]) {
      FUN_001ce230();
    }
    iVar13 = 4;
    FUN_001ce230();
    iVar12 = 4;
    break;
  case 't':
    uStack_3c = 0;
    pvStack_40 = (void *)0x0;
    pvStack_44 = (void *)0x0;
    iVar13 = FUN_001d1450(0,1,1);
    FUN_001ce380();
joined_r0x001d0375:
    if (pvStack_44 != (void *)0x0) {
      free(pvStack_44);
    }
    if (iVar13 != 0) {
code_r0x001d018e:
      iVar13 = 4;
      iVar12 = 4;
      break;
    }
LAB_001cfd80:
    if ((void *)*param_3 == (void *)0x0) {
      iVar13 = 0;
      pcVar7 = local_50;
    }
    else {
      iVar13 = 0;
      free((void *)*param_3);
      param_3[1] = 0;
      param_3[2] = 0;
      *param_3 = 0;
      pcVar7 = local_50;
    }
    goto LAB_001cfdb8;
  case 'v':
    *param_2 = (int)(pcVar7 + 1);
    if (*param_3 != param_3[1]) {
      FUN_001ce230();
    }
    iVar13 = 4;
    FUN_001ce230();
    iVar12 = 4;
    break;
  case 'w':
    *param_2 = (int)(pcVar7 + 1);
    if (*param_3 != param_3[1]) {
      FUN_001ce230();
    }
    iVar13 = 6;
    FUN_001ce230();
    iVar12 = 6;
    break;
  case 'x':
    *param_2 = (int)(pcVar7 + 1);
    if (*param_3 != param_3[1]) {
      FUN_001ce230();
    }
    iVar13 = 4;
    FUN_001ce230();
    iVar12 = 4;
  }
  if (local_70 != 0) {
    iVar12 = local_70;
  }
code_r0x001cfebc:
  local_70 = iVar12;
  pcVar7 = local_4c;
  if (local_50 != local_4c) {
    FUN_001ce230();
    FUN_001ce380();
    pcVar7 = local_50;
  }
LAB_001cfdb8:
  if (pcVar7 != (char *)0x0) {
    free(pcVar7);
  }
  if (bVar4) {
    *(int *)(param_1 + 0x5c) = *(int *)(param_1 + 0x5c) + -1;
  }
  if ((iVar13 != 0) && (iVar13 = local_70, local_70 == 0)) {
    iVar13 = 4;
  }
  return iVar13;
}


PUSH EBP
MOV EBP,0x1
PUSH EDI
MOV EDI,EDX
PUSH ESI
PUSH EBX
CALL 0x00035840
ADD EBX,0x1bf840
SUB ESP,0x6c
MOV dword ptr [ECX + 0x8],0x0
MOV dword ptr [ESP + 0x10],EAX
MOV dword ptr [ESP + 0x14],ECX
MOV dword ptr [ESP + 0x34],0x0
LEA EAX,[EBX + 0xfff14620]
MOV dword ptr [ESP + 0x30],0x0
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ECX + 0x4],0x0
MOV dword ptr [ECX],0x0
MOV dword ptr [ESP + 0xc],0x0
MOV dword ptr [ESP + 0x1c],0x0
MOV dword ptr [ESP + 0x18],EAX
LEA ESI,[ESI]
NOP
MOV dword ptr [ESP + 0x8],EBP
TEST EBP,EBP
SETNZ byte ptr [ESP + 0x4]
XOR ECX,ECX
TEST ECX,ECX
JNZ 0x001cfca0
CMP byte ptr [ESP + 0x4],0x0
JZ 0x001cfca0
MOV ESI,dword ptr [EDI]
MOV ECX,0x1
MOVSX EAX,byte ptr [ESI]
LEA EDX,[EAX + -0x41]
CMP DL,0x34
JA 0x001cf82d
MOVZX EDX,DL
MOV EBP,dword ptr [EBX + EDX*0x4 + 0xfff12024]
ADD EBP,EBX
JMP EBP
MOV EBP,dword ptr [ESP + 0x8]
TEST EBP,EBP
JZ 0x001cfd80
MOV ECX,dword ptr [EDI]
MOVZX EAX,byte ptr [ECX]
SUB EAX,0x42
CMP AL,0x17
JA 0x001d006a
MOVZX EAX,AL
MOV ESI,dword ptr [EBX + EAX*0x4 + 0xfff120f8]
ADD ESI,EBX
JMP ESI
MOV EAX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JZ 0x001cfe8e
SUB ESP,0xc
XOR EBP,EBP
PUSH EAX
CALL 0x00029410
MOV EAX,dword ptr [ESP + 0x24]
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x8],0x0
MOV dword ptr [EAX],0x0
MOV EAX,dword ptr [ESP + 0x3c]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x001cfdc8
SUB ESP,0xc
PUSH EAX
CALL 0x00029410
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x1c]
TEST EAX,EAX
JZ 0x001cfdd8
MOV EAX,dword ptr [ESP + 0x10]
SUB dword ptr [EAX + 0x5c],0x1
TEST EBP,EBP
JZ 0x001cfdec
MOV EBX,dword ptr [ESP + 0xc]
MOV EAX,0x4
TEST EBX,EBX
CMOVZ EBX,EAX
MOV EBP,EBX
ADD ESP,0x6c
MOV EAX,EBP
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESP + 0x2c]
XOR EBP,EBP
JMP 0x001cfdb8
LEA EBP,[EBX + 0xfff11b41]
MOV dword ptr [ESP + 0x28],0x0
LEA ESI,[EBX + 0xfff091af]
MOV dword ptr [ESP + 0x4],EBP
MOVZX EDX,byte ptr [ECX]
LEA EAX,[EDX + -0x43]
CMP AL,0x32
JA 0x001d016d
MOVZX EAX,AL
MOV EBP,dword ptr [EBX + EAX*0x4 + 0xfff12158]
ADD EBP,EBX
JMP EBP
CMP DL,0x78
JA 0x001cfd80
MOV EAX,dword ptr [EBX + EDX*0x4 + 0xfff12224]
ADD EAX,EBX
JMP EAX
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 FUN_001cf7b0(byte *param_1,int *param_2,int *param_3)\n\n{\n  int *piVar1;\n  byte bVar2;\n  bool bVar3;\n  bool bVar4;\n  char cVar5;\n  int iVar6;\n  char *pcVar7;\n  size_t sVar8;\n  undefined4 uVar9;\n  int *piVar10;\n  char *pcVar11;\n  int iVar12;\n  void *__ptr;\n  int iVar13;\n  undefined1 *puVar14;\n  int local_78;\n  int local_70;\n  int iStack_5c;\n  int iStack_58;\n  undefined4 local_54;\n  char *local_50;\n  char *local_4c;\n  undefined4 local_48;\n  void *pvStack_44;\n  void *pvStack_40;\n  undefined4 uStack_3c;\n  undefined4 uStack_14;\n  \n  iVar13 = 1;\n  uStack_14 = 0x1cf7c0;\n  param_3[2] = 0;\n  local_48 = 0;\n  local_4c = (char *)0x0;\n  local_50 = (char *)0x0;\n  param_3[1] = 0;\n  *param_3 = 0;\n  local_70 = 0;\n  bVar4 = false;\n  iVar12 = local_70;\ncode_r0x001cf820:\n  local_70 = iVar12;\n  pcVar7 = local_50;\n  bVar3 = false;\nLAB_001cf82d:\n  if ((bVar3) || (iVar13 == 0)) {\n    if (iVar13 == 0) goto LAB_001cfd80;\n    pcVar7 = (char *)*param_2;\n    iVar12 = local_70;\n    switch(*pcVar7) {\n    case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;\n    default:\n      local_54 = 0;\n      goto code_r0x001d0082;\n    case 'K':\n    case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;\n    case 'X':\n    case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;\n    }\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      FUN_001ce230();\n    }\n    goto code_r0x001cfebc;\n  }\n  puVar14 = (undefined1 *)*param_2;\n  bVar3 = true;\n  iVar12 = local_70;\n  switch(*puVar14) {\n  case 0x41:\n    goto code_r0x001cfa38;\n  default:\n    goto LAB_001cf82d;\n  case 0x43:\n  case 0x56:\n  case 0x75:\n    if ((*param_1 & 2) != 0) {\n      if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n      pcVar7 = (char *)FUN_001cdd80();\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n    }\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x46:\n    *param_2 = (int)(puVar14 + 1);\n    if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      FUN_001ce1f0();\n      FUN_001ce230();\n    }\n    iVar6 = FUN_001d24a0();\n    if (iVar6 != 0) {\n      cVar5 = *(char *)*param_2;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x47:\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x4d:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce230();\n    if (*(char *)*param_2 == 'Q') {\n      if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;\ncode_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);\n      if (iVar13 == 0) goto code_r0x001cf820;\n    }\n    else {\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }\ncode_r0x001cfb87:\n    FUN_001ce1f0();\n    pcVar7 = (char *)*param_2;\n    cVar5 = *pcVar7;\n    if (cVar5 == 'V') {\n      local_78 = 2;\ncode_r0x001d0040:\n      pcVar11 = pcVar7 + 1;\n      *param_2 = (int)pcVar11;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }\n    if (cVar5 == 'F') {\n      *param_2 = (int)(pcVar11 + 1);\n      iVar6 = FUN_001d24a0();\n      if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x4f:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 3;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x50:\n  case 0x70:\n    *param_2 = (int)(puVar14 + 1);\n    if ((*param_1 & 4) == 0) {\n      FUN_001ce1f0();\n    }\n    iVar12 = 1;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x52:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 2;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x54:\n    *param_2 = (int)(puVar14 + 1);\n    iVar6 = FUN_001cd940();\n    if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c)) break;\n    if (*(int *)(param_1 + 0x5c) < 1) goto code_r0x001cfe64;\n    piVar10 = *(int **)(param_1 + 0x54);\n    piVar1 = piVar10 + *(int *)(param_1 + 0x5c);\n    do {\n      if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }\n      piVar10 = piVar10 + 1;\n    } while (piVar1 != piVar10);\n    if (iVar13 != 0) {\ncode_r0x001cfe64:\n      FUN_001cdac0();\n      bVar4 = true;\n      param_2 = &iStack_58;\n      iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);\n    }\n    goto code_r0x001cf820;\n  }\n  iVar13 = 0;\n  goto code_r0x001cf820;\ncode_r0x001d0082:\n  do {\n    switch(*pcVar7 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n    }\n  } while( true );\ncode_r0x001cfa38:\n  *param_2 = (int)(puVar14 + 1);\n  if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n    FUN_001ce1f0();\n    FUN_001ce230();\n  }\n  FUN_001ce230();\n  pcVar7 = (char *)*param_2;\n  if (*pcVar7 != '_') {\n    iVar13 = FUN_001cf0a0(4);\n    pcVar7 = (char *)*param_2;\n    if (*pcVar7 != '_') goto code_r0x001cfa7a;\n  }\n  *param_2 = (int)(pcVar7 + 1);\ncode_r0x001cfa7a:\n  FUN_001ce230();\n  goto code_r0x001cf820;\ncode_r0x001d0176:\n  pcVar11 = pcVar7;\n  switch(*pcVar7) {\n  case '\0':\n  case '_':\n    goto code_r0x001d018e;\n  default:\n    goto LAB_001cfd80;\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    uVar9 = FUN_001cdb80();\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d0dd0();\n    if (iVar13 != 0) {\n      FUN_001ce060(uVar9);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      iVar13 = 1;\n      FUN_001ce380();\n    }\n    goto joined_r0x001d0375;\n  case 'G':\n    pcVar11 = pcVar7 + 1;\n    *param_2 = (int)pcVar11;\n    if (((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0) goto code_r0x001d01c5;\n    goto LAB_001cfd80;\n  case 'I':\ncode_r0x001d01c5:\n    pcVar7 = pcVar11 + 1;\n    *param_2 = (int)pcVar7;\n    if (pcVar11[1] == '_') {\n      iVar13 = 0;\n      *param_2 = (int)(pcVar11 + 2);\n      pcVar7 = pcVar11 + 2;\n      do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);\n      cVar5 = pcVar11[1];\ncode_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;\n      *(undefined1 *)((int)&pvStack_44 + iVar13) = 0;\n      *param_2 = (int)(pcVar7 + 1);\n    }\n    else {\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }\n    sscanf((char *)&pvStack_44,"%x",&local_54);\n    sprintf((char *)&pvStack_44,"int%u_t",local_54);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    if ((char)pvStack_44 == '\0') goto code_r0x001d018e;\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'b':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 5;\n    FUN_001ce230();\n    iVar12 = 5;\n    break;\n  case 'c':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'd':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'f':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'i':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'l':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'r':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 's':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 't':\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d1450(0,1,1);\n    FUN_001ce380();\njoined_r0x001d0375:\n    if (pvStack_44 != (void *)0x0) {\n      free(pvStack_44);\n    }\n    if (iVar13 != 0) {\ncode_r0x001d018e:\n      iVar13 = 4;\n      iVar12 = 4;\n      break;\n    }\nLAB_001cfd80:\n    if ((void *)*param_3 == (void *)0x0) {\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }\n    else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }\n    goto LAB_001cfdb8;\n  case 'v':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'w':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'x':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n  }\n  if (local_70 != 0) {\n    iVar12 = local_70;\n  }\ncode_r0x001cfebc:\n  local_70 = iVar12;\n  pcVar7 = local_4c;\n  if (local_50 != local_4c) {\n    FUN_001ce230();\n    FUN_001ce380();\n    pcVar7 = local_50;\n  }\nLAB_001cfdb8:\n  if (pcVar7 != (char *)0x0) {\n    free(pcVar7);\n  }\n  if (bVar4) {\n    *(int *)(param_1 + 0x5c) = *(int *)(param_1 + 0x5c) + -1;\n  }\n  if ((iVar13 != 0) && (iVar13 = local_70, local_70 == 0)) {\n    iVar13 = 4;\n  }\n  return iVar13;\n}\n\n" comment (function_definition "int __regparm3 FUN_001cf7b0(byte *param_1,int *param_2,int *param_3)\n\n{\n  int *piVar1;\n  byte bVar2;\n  bool bVar3;\n  bool bVar4;\n  char cVar5;\n  int iVar6;\n  char *pcVar7;\n  size_t sVar8;\n  undefined4 uVar9;\n  int *piVar10;\n  char *pcVar11;\n  int iVar12;\n  void *__ptr;\n  int iVar13;\n  undefined1 *puVar14;\n  int local_78;\n  int local_70;\n  int iStack_5c;\n  int iStack_58;\n  undefined4 local_54;\n  char *local_50;\n  char *local_4c;\n  undefined4 local_48;\n  void *pvStack_44;\n  void *pvStack_40;\n  undefined4 uStack_3c;\n  undefined4 uStack_14;\n  \n  iVar13 = 1;\n  uStack_14 = 0x1cf7c0;\n  param_3[2] = 0;\n  local_48 = 0;\n  local_4c = (char *)0x0;\n  local_50 = (char *)0x0;\n  param_3[1] = 0;\n  *param_3 = 0;\n  local_70 = 0;\n  bVar4 = false;\n  iVar12 = local_70;\ncode_r0x001cf820:\n  local_70 = iVar12;\n  pcVar7 = local_50;\n  bVar3 = false;\nLAB_001cf82d:\n  if ((bVar3) || (iVar13 == 0)) {\n    if (iVar13 == 0) goto LAB_001cfd80;\n    pcVar7 = (char *)*param_2;\n    iVar12 = local_70;\n    switch(*pcVar7) {\n    case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;\n    default:\n      local_54 = 0;\n      goto code_r0x001d0082;\n    case 'K':\n    case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;\n    case 'X':\n    case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;\n    }\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      FUN_001ce230();\n    }\n    goto code_r0x001cfebc;\n  }\n  puVar14 = (undefined1 *)*param_2;\n  bVar3 = true;\n  iVar12 = local_70;\n  switch(*puVar14) {\n  case 0x41:\n    goto code_r0x001cfa38;\n  default:\n    goto LAB_001cf82d;\n  case 0x43:\n  case 0x56:\n  case 0x75:\n    if ((*param_1 & 2) != 0) {\n      if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n      pcVar7 = (char *)FUN_001cdd80();\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n    }\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x46:\n    *param_2 = (int)(puVar14 + 1);\n    if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      FUN_001ce1f0();\n      FUN_001ce230();\n    }\n    iVar6 = FUN_001d24a0();\n    if (iVar6 != 0) {\n      cVar5 = *(char *)*param_2;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x47:\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x4d:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce230();\n    if (*(char *)*param_2 == 'Q') {\n      if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;\ncode_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);\n      if (iVar13 == 0) goto code_r0x001cf820;\n    }\n    else {\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }\ncode_r0x001cfb87:\n    FUN_001ce1f0();\n    pcVar7 = (char *)*param_2;\n    cVar5 = *pcVar7;\n    if (cVar5 == 'V') {\n      local_78 = 2;\ncode_r0x001d0040:\n      pcVar11 = pcVar7 + 1;\n      *param_2 = (int)pcVar11;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }\n    if (cVar5 == 'F') {\n      *param_2 = (int)(pcVar11 + 1);\n      iVar6 = FUN_001d24a0();\n      if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x4f:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 3;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x50:\n  case 0x70:\n    *param_2 = (int)(puVar14 + 1);\n    if ((*param_1 & 4) == 0) {\n      FUN_001ce1f0();\n    }\n    iVar12 = 1;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x52:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 2;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x54:\n    *param_2 = (int)(puVar14 + 1);\n    iVar6 = FUN_001cd940();\n    if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c)) break;\n    if (*(int *)(param_1 + 0x5c) < 1) goto code_r0x001cfe64;\n    piVar10 = *(int **)(param_1 + 0x54);\n    piVar1 = piVar10 + *(int *)(param_1 + 0x5c);\n    do {\n      if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }\n      piVar10 = piVar10 + 1;\n    } while (piVar1 != piVar10);\n    if (iVar13 != 0) {\ncode_r0x001cfe64:\n      FUN_001cdac0();\n      bVar4 = true;\n      param_2 = &iStack_58;\n      iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);\n    }\n    goto code_r0x001cf820;\n  }\n  iVar13 = 0;\n  goto code_r0x001cf820;\ncode_r0x001d0082:\n  do {\n    switch(*pcVar7 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n    }\n  } while( true );\ncode_r0x001cfa38:\n  *param_2 = (int)(puVar14 + 1);\n  if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n    FUN_001ce1f0();\n    FUN_001ce230();\n  }\n  FUN_001ce230();\n  pcVar7 = (char *)*param_2;\n  if (*pcVar7 != '_') {\n    iVar13 = FUN_001cf0a0(4);\n    pcVar7 = (char *)*param_2;\n    if (*pcVar7 != '_') goto code_r0x001cfa7a;\n  }\n  *param_2 = (int)(pcVar7 + 1);\ncode_r0x001cfa7a:\n  FUN_001ce230();\n  goto code_r0x001cf820;\ncode_r0x001d0176:\n  pcVar11 = pcVar7;\n  switch(*pcVar7) {\n  case '\0':\n  case '_':\n    goto code_r0x001d018e;\n  default:\n    goto LAB_001cfd80;\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    uVar9 = FUN_001cdb80();\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d0dd0();\n    if (iVar13 != 0) {\n      FUN_001ce060(uVar9);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      iVar13 = 1;\n      FUN_001ce380();\n    }\n    goto joined_r0x001d0375;\n  case 'G':\n    pcVar11 = pcVar7 + 1;\n    *param_2 = (int)pcVar11;\n    if (((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0) goto code_r0x001d01c5;\n    goto LAB_001cfd80;\n  case 'I':\ncode_r0x001d01c5:\n    pcVar7 = pcVar11 + 1;\n    *param_2 = (int)pcVar7;\n    if (pcVar11[1] == '_') {\n      iVar13 = 0;\n      *param_2 = (int)(pcVar11 + 2);\n      pcVar7 = pcVar11 + 2;\n      do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);\n      cVar5 = pcVar11[1];\ncode_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;\n      *(undefined1 *)((int)&pvStack_44 + iVar13) = 0;\n      *param_2 = (int)(pcVar7 + 1);\n    }\n    else {\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }\n    sscanf((char *)&pvStack_44,"%x",&local_54);\n    sprintf((char *)&pvStack_44,"int%u_t",local_54);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    if ((char)pvStack_44 == '\0') goto code_r0x001d018e;\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'b':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 5;\n    FUN_001ce230();\n    iVar12 = 5;\n    break;\n  case 'c':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'd':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'f':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'i':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'l':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'r':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 's':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 't':\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d1450(0,1,1);\n    FUN_001ce380();\njoined_r0x001d0375:\n    if (pvStack_44 != (void *)0x0) {\n      free(pvStack_44);\n    }\n    if (iVar13 != 0) {\ncode_r0x001d018e:\n      iVar13 = 4;\n      iVar12 = 4;\n      break;\n    }\nLAB_001cfd80:\n    if ((void *)*param_3 == (void *)0x0) {\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }\n    else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }\n    goto LAB_001cfdb8;\n  case 'v':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'w':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'x':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n  }\n  if (local_70 != 0) {\n    iVar12 = local_70;\n  }\ncode_r0x001cfebc:\n  local_70 = iVar12;\n  pcVar7 = local_4c;\n  if (local_50 != local_4c) {\n    FUN_001ce230();\n    FUN_001ce380();\n    pcVar7 = local_50;\n  }\nLAB_001cfdb8:\n  if (pcVar7 != (char *)0x0) {\n    free(pcVar7);\n  }\n  if (bVar4) {\n    *(int *)(param_1 + 0x5c) = *(int *)(param_1 + 0x5c) + -1;\n  }\n  if ((iVar13 != 0) && (iVar13 = local_70, local_70 == 0)) {\n    iVar13 = 4;\n  }\n  return iVar13;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_001cf7b0(byte *param_1,int *param_2,int *param_3)" identifier (parameter_list "(byte *param_1,int *param_2,int *param_3)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  byte bVar2;\n  bool bVar3;\n  bool bVar4;\n  char cVar5;\n  int iVar6;\n  char *pcVar7;\n  size_t sVar8;\n  undefined4 uVar9;\n  int *piVar10;\n  char *pcVar11;\n  int iVar12;\n  void *__ptr;\n  int iVar13;\n  undefined1 *puVar14;\n  int local_78;\n  int local_70;\n  int iStack_5c;\n  int iStack_58;\n  undefined4 local_54;\n  char *local_50;\n  char *local_4c;\n  undefined4 local_48;\n  void *pvStack_44;\n  void *pvStack_40;\n  undefined4 uStack_3c;\n  undefined4 uStack_14;\n  \n  iVar13 = 1;\n  uStack_14 = 0x1cf7c0;\n  param_3[2] = 0;\n  local_48 = 0;\n  local_4c = (char *)0x0;\n  local_50 = (char *)0x0;\n  param_3[1] = 0;\n  *param_3 = 0;\n  local_70 = 0;\n  bVar4 = false;\n  iVar12 = local_70;\ncode_r0x001cf820:\n  local_70 = iVar12;\n  pcVar7 = local_50;\n  bVar3 = false;\nLAB_001cf82d:\n  if ((bVar3) || (iVar13 == 0)) {\n    if (iVar13 == 0) goto LAB_001cfd80;\n    pcVar7 = (char *)*param_2;\n    iVar12 = local_70;\n    switch(*pcVar7) {\n    case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;\n    default:\n      local_54 = 0;\n      goto code_r0x001d0082;\n    case 'K':\n    case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;\n    case 'X':\n    case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;\n    }\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      FUN_001ce230();\n    }\n    goto code_r0x001cfebc;\n  }\n  puVar14 = (undefined1 *)*param_2;\n  bVar3 = true;\n  iVar12 = local_70;\n  switch(*puVar14) {\n  case 0x41:\n    goto code_r0x001cfa38;\n  default:\n    goto LAB_001cf82d;\n  case 0x43:\n  case 0x56:\n  case 0x75:\n    if ((*param_1 & 2) != 0) {\n      if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n      pcVar7 = (char *)FUN_001cdd80();\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n    }\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x46:\n    *param_2 = (int)(puVar14 + 1);\n    if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      FUN_001ce1f0();\n      FUN_001ce230();\n    }\n    iVar6 = FUN_001d24a0();\n    if (iVar6 != 0) {\n      cVar5 = *(char *)*param_2;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x47:\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x4d:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce230();\n    if (*(char *)*param_2 == 'Q') {\n      if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;\ncode_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);\n      if (iVar13 == 0) goto code_r0x001cf820;\n    }\n    else {\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }\ncode_r0x001cfb87:\n    FUN_001ce1f0();\n    pcVar7 = (char *)*param_2;\n    cVar5 = *pcVar7;\n    if (cVar5 == 'V') {\n      local_78 = 2;\ncode_r0x001d0040:\n      pcVar11 = pcVar7 + 1;\n      *param_2 = (int)pcVar11;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }\n    if (cVar5 == 'F') {\n      *param_2 = (int)(pcVar11 + 1);\n      iVar6 = FUN_001d24a0();\n      if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x4f:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 3;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x50:\n  case 0x70:\n    *param_2 = (int)(puVar14 + 1);\n    if ((*param_1 & 4) == 0) {\n      FUN_001ce1f0();\n    }\n    iVar12 = 1;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x52:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 2;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x54:\n    *param_2 = (int)(puVar14 + 1);\n    iVar6 = FUN_001cd940();\n    if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c)) break;\n    if (*(int *)(param_1 + 0x5c) < 1) goto code_r0x001cfe64;\n    piVar10 = *(int **)(param_1 + 0x54);\n    piVar1 = piVar10 + *(int *)(param_1 + 0x5c);\n    do {\n      if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }\n      piVar10 = piVar10 + 1;\n    } while (piVar1 != piVar10);\n    if (iVar13 != 0) {\ncode_r0x001cfe64:\n      FUN_001cdac0();\n      bVar4 = true;\n      param_2 = &iStack_58;\n      iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);\n    }\n    goto code_r0x001cf820;\n  }\n  iVar13 = 0;\n  goto code_r0x001cf820;\ncode_r0x001d0082:\n  do {\n    switch(*pcVar7 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n    }\n  } while( true );\ncode_r0x001cfa38:\n  *param_2 = (int)(puVar14 + 1);\n  if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n    FUN_001ce1f0();\n    FUN_001ce230();\n  }\n  FUN_001ce230();\n  pcVar7 = (char *)*param_2;\n  if (*pcVar7 != '_') {\n    iVar13 = FUN_001cf0a0(4);\n    pcVar7 = (char *)*param_2;\n    if (*pcVar7 != '_') goto code_r0x001cfa7a;\n  }\n  *param_2 = (int)(pcVar7 + 1);\ncode_r0x001cfa7a:\n  FUN_001ce230();\n  goto code_r0x001cf820;\ncode_r0x001d0176:\n  pcVar11 = pcVar7;\n  switch(*pcVar7) {\n  case '\0':\n  case '_':\n    goto code_r0x001d018e;\n  default:\n    goto LAB_001cfd80;\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    uVar9 = FUN_001cdb80();\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d0dd0();\n    if (iVar13 != 0) {\n      FUN_001ce060(uVar9);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      iVar13 = 1;\n      FUN_001ce380();\n    }\n    goto joined_r0x001d0375;\n  case 'G':\n    pcVar11 = pcVar7 + 1;\n    *param_2 = (int)pcVar11;\n    if (((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0) goto code_r0x001d01c5;\n    goto LAB_001cfd80;\n  case 'I':\ncode_r0x001d01c5:\n    pcVar7 = pcVar11 + 1;\n    *param_2 = (int)pcVar7;\n    if (pcVar11[1] == '_') {\n      iVar13 = 0;\n      *param_2 = (int)(pcVar11 + 2);\n      pcVar7 = pcVar11 + 2;\n      do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);\n      cVar5 = pcVar11[1];\ncode_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;\n      *(undefined1 *)((int)&pvStack_44 + iVar13) = 0;\n      *param_2 = (int)(pcVar7 + 1);\n    }\n    else {\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }\n    sscanf((char *)&pvStack_44,"%x",&local_54);\n    sprintf((char *)&pvStack_44,"int%u_t",local_54);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    if ((char)pvStack_44 == '\0') goto code_r0x001d018e;\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'b':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 5;\n    FUN_001ce230();\n    iVar12 = 5;\n    break;\n  case 'c':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'd':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'f':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'i':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'l':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'r':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 's':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 't':\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d1450(0,1,1);\n    FUN_001ce380();\njoined_r0x001d0375:\n    if (pvStack_44 != (void *)0x0) {\n      free(pvStack_44);\n    }\n    if (iVar13 != 0) {\ncode_r0x001d018e:\n      iVar13 = 4;\n      iVar12 = 4;\n      break;\n    }\nLAB_001cfd80:\n    if ((void *)*param_3 == (void *)0x0) {\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }\n    else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }\n    goto LAB_001cfdb8;\n  case 'v':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'w':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'x':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n  }\n  if (local_70 != 0) {\n    iVar12 = local_70;\n  }\ncode_r0x001cfebc:\n  local_70 = iVar12;\n  pcVar7 = local_4c;\n  if (local_50 != local_4c) {\n    FUN_001ce230();\n    FUN_001ce380();\n    pcVar7 = local_50;\n  }\nLAB_001cfdb8:\n  if (pcVar7 != (char *)0x0) {\n    free(pcVar7);\n  }\n  if (bVar4) {\n    *(int *)(param_1 + 0x5c) = *(int *)(param_1 + 0x5c) + -1;\n  }\n  if ((iVar13 != 0) && (iVar13 = local_70, local_70 == 0)) {\n    iVar13 = 4;\n  }\n  return iVar13;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined1 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int local_78;" primitive_type identifier ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "int iStack_5c;" primitive_type identifier ;) (declaration "int iStack_58;" primitive_type identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "char *local_50;" primitive_type (pointer_declarator "*local_50" * identifier) ;) (declaration "char *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "void *pvStack_44;" primitive_type (pointer_declarator "*pvStack_44" * identifier) ;) (declaration "void *pvStack_40;" primitive_type (pointer_declarator "*pvStack_40" * identifier) ;) (declaration "undefined4 uStack_3c;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x1cf7c0;" (assignment_expression "uStack_14 = 0x1cf7c0" identifier = number_literal) ;) (expression_statement "param_3[2] = 0;" (assignment_expression "param_3[2] = 0" (subscript_expression "param_3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_4c = (char *)0x0;" (assignment_expression "local_4c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50 = (char *)0x0;" (assignment_expression "local_50 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_3[1] = 0;" (assignment_expression "param_3[1] = 0" (subscript_expression "param_3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (expression_statement "iVar12 = local_70;" (assignment_expression "iVar12 = local_70" identifier = identifier) ;) (labeled_statement "code_r0x001cf820:\n  local_70 = iVar12;" statement_identifier : (expression_statement "local_70 = iVar12;" (assignment_expression "local_70 = iVar12" identifier = identifier) ;)) (expression_statement "pcVar7 = local_50;" (assignment_expression "pcVar7 = local_50" identifier = identifier) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (labeled_statement "LAB_001cf82d:\n  if ((bVar3) || (iVar13 == 0)) {\n    if (iVar13 == 0) goto LAB_001cfd80;\n    pcVar7 = (char *)*param_2;\n    iVar12 = local_70;\n    switch(*pcVar7) {\n    case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;\n    default:\n      local_54 = 0;\n      goto code_r0x001d0082;\n    case 'K':\n    case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;\n    case 'X':\n    case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;\n    }\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      FUN_001ce230();\n    }\n    goto code_r0x001cfebc;\n  }" statement_identifier : (if_statement "if ((bVar3) || (iVar13 == 0)) {\n    if (iVar13 == 0) goto LAB_001cfd80;\n    pcVar7 = (char *)*param_2;\n    iVar12 = local_70;\n    switch(*pcVar7) {\n    case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;\n    default:\n      local_54 = 0;\n      goto code_r0x001d0082;\n    case 'K':\n    case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;\n    case 'X':\n    case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;\n    }\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      FUN_001ce230();\n    }\n    goto code_r0x001cfebc;\n  }" if (parenthesized_expression "((bVar3) || (iVar13 == 0))" ( (binary_expression "(bVar3) || (iVar13 == 0)" (parenthesized_expression "(bVar3)" ( identifier )) || (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    if (iVar13 == 0) goto LAB_001cfd80;\n    pcVar7 = (char *)*param_2;\n    iVar12 = local_70;\n    switch(*pcVar7) {\n    case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;\n    default:\n      local_54 = 0;\n      goto code_r0x001d0082;\n    case 'K':\n    case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;\n    case 'X':\n    case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;\n    }\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      FUN_001ce230();\n    }\n    goto code_r0x001cfebc;\n  }" { (if_statement "if (iVar13 == 0) goto LAB_001cfd80;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001cfd80;" goto statement_identifier ;)) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "iVar12 = local_70;" (assignment_expression "iVar12 = local_70" identifier = identifier) ;) (switch_statement "switch(*pcVar7) {\n    case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;\n    default:\n      local_54 = 0;\n      goto code_r0x001d0082;\n    case 'K':\n    case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;\n    case 'X':\n    case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;\n    }" switch (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (compound_statement "{\n    case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;\n    default:\n      local_54 = 0;\n      goto code_r0x001d0082;\n    case 'K':\n    case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;\n    case 'X':\n    case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;\n    }" { (case_statement "case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;" case (char_literal "'B'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar6 = FUN_001cd940();" (assignment_expression "iVar6 = FUN_001cd940()" identifier = (call_expression "FUN_001cd940()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;" if (parenthesized_expression "(((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))" ( (binary_expression "((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c)" (parenthesized_expression "((iVar6 == 0) || (iStack_5c < 0))" ( (binary_expression "(iVar6 == 0) || (iStack_5c < 0)" (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) || (parenthesized_expression "(iStack_5c < 0)" ( (binary_expression "iStack_5c < 0" identifier < number_literal) ))) )) || (parenthesized_expression "(*(int *)(param_1 + 0x14) <= iStack_5c)" ( (binary_expression "*(int *)(param_1 + 0x14) <= iStack_5c" (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) )))) <= identifier) ))) )) (goto_statement "goto LAB_001cfd80;" goto statement_identifier ;)) (expression_statement "pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);" (assignment_expression "pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4)" identifier = (pointer_expression "*(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4)" * (cast_expression "(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_1 + 0xc) + iStack_5c * 4)" ( (binary_expression "*(int *)(param_1 + 0xc) + iStack_5c * 4" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) + (binary_expression "iStack_5c * 4" identifier * number_literal)) ))))) ;) (break_statement "break;" break ;)) (case_statement "default:\n      local_54 = 0;\n      goto code_r0x001d0082;" default : (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (goto_statement "goto code_r0x001d0082;" goto statement_identifier ;)) (case_statement "case 'K':" case (char_literal "'K'" ' character ') :) (case_statement "case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;" case (char_literal "'Q'" ' character ') : (expression_statement "iVar13 = FUN_001d1b50(0,1);" (assignment_expression "iVar13 = FUN_001d1b50(0,1)" identifier = (call_expression "FUN_001d1b50(0,1)" identifier (argument_list "(0,1)" ( number_literal , number_literal )))) ;) (if_statement "if (iVar13 == 0) goto LAB_001cfd80;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001cfd80;" goto statement_identifier ;)) (goto_statement "goto code_r0x001cfebc;" goto statement_identifier ;)) (case_statement "case 'X':" case (char_literal "'X'" ' character ') :) (case_statement "case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;" case (char_literal "'Y'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar13 = FUN_001cde90();" (assignment_expression "iVar13 = FUN_001cde90()" identifier = (call_expression "FUN_001cde90()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;" if (parenthesized_expression "((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1))))" ( (binary_expression "(iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))" (parenthesized_expression "(iVar13 == -1)" ( (binary_expression "iVar13 == -1" identifier == number_literal) )) || (parenthesized_expression "(((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))" ( (parenthesized_expression "((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1))" ( (binary_expression "(*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)" (parenthesized_expression "(*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13))" ( (binary_expression "*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)" (binary_expression "*(int *)(param_1 + 0x40) != 0" (pointer_expression "*(int *)(param_1 + 0x40)" * (cast_expression "(int *)(param_1 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) != number_literal) && (parenthesized_expression "(*(int *)(param_1 + 0x44) <= iVar13)" ( (binary_expression "*(int *)(param_1 + 0x44) <= iVar13" (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) <= identifier) ))) )) || (parenthesized_expression "(iVar6 = FUN_001cde90(), iVar6 == -1)" ( (comma_expression "iVar6 = FUN_001cde90(), iVar6 == -1" (assignment_expression "iVar6 = FUN_001cde90()" identifier = (call_expression "FUN_001cde90()" identifier (argument_list "()" ( )))) , (binary_expression "iVar6 == -1" identifier == number_literal)) ))) )) ))) )) (goto_statement "goto LAB_001cfd80;" goto statement_identifier ;)) (if_statement "if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x40) == 0)" ( (binary_expression "*(int *)(param_1 + 0x40) == 0" (pointer_expression "*(int *)(param_1 + 0x40)" * (cast_expression "(int *)(param_1 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }" { (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" identifier = number_literal) ;) (expression_statement "FUN_001ce280();" (call_expression "FUN_001ce280()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x001cfebc;" goto statement_identifier ;) })) (expression_statement "pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);" (assignment_expression "pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4)" identifier = (pointer_expression "*(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4)" * (cast_expression "(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_1 + 0x40) + iVar13 * 4)" ( (binary_expression "*(int *)(param_1 + 0x40) + iVar13 * 4" (pointer_expression "*(int *)(param_1 + 0x40)" * (cast_expression "(int *)(param_1 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) + (binary_expression "iVar13 * 4" identifier * number_literal)) ))))) ;) (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" identifier = number_literal) ;)) })) (if_statement "if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "((pcVar7 != (char *)0x0) && (*pcVar7 != '\0'))" ( (binary_expression "(pcVar7 != (char *)0x0) && (*pcVar7 != '\0')" (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*pcVar7 != '\0')" ( (binary_expression "*pcVar7 != '\0'" (pointer_expression "*pcVar7" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto code_r0x001cfebc;" goto statement_identifier ;) }))) (expression_statement "puVar14 = (undefined1 *)*param_2;" (assignment_expression "puVar14 = (undefined1 *)*param_2" identifier = (cast_expression "(undefined1 *)*param_2" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (expression_statement "iVar12 = local_70;" (assignment_expression "iVar12 = local_70" identifier = identifier) ;) (switch_statement "switch(*puVar14) {\n  case 0x41:\n    goto code_r0x001cfa38;\n  default:\n    goto LAB_001cf82d;\n  case 0x43:\n  case 0x56:\n  case 0x75:\n    if ((*param_1 & 2) != 0) {\n      if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n      pcVar7 = (char *)FUN_001cdd80();\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n    }\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x46:\n    *param_2 = (int)(puVar14 + 1);\n    if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      FUN_001ce1f0();\n      FUN_001ce230();\n    }\n    iVar6 = FUN_001d24a0();\n    if (iVar6 != 0) {\n      cVar5 = *(char *)*param_2;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x47:\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x4d:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce230();\n    if (*(char *)*param_2 == 'Q') {\n      if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;\ncode_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);\n      if (iVar13 == 0) goto code_r0x001cf820;\n    }\n    else {\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }\ncode_r0x001cfb87:\n    FUN_001ce1f0();\n    pcVar7 = (char *)*param_2;\n    cVar5 = *pcVar7;\n    if (cVar5 == 'V') {\n      local_78 = 2;\ncode_r0x001d0040:\n      pcVar11 = pcVar7 + 1;\n      *param_2 = (int)pcVar11;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }\n    if (cVar5 == 'F') {\n      *param_2 = (int)(pcVar11 + 1);\n      iVar6 = FUN_001d24a0();\n      if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x4f:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 3;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x50:\n  case 0x70:\n    *param_2 = (int)(puVar14 + 1);\n    if ((*param_1 & 4) == 0) {\n      FUN_001ce1f0();\n    }\n    iVar12 = 1;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x52:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 2;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x54:\n    *param_2 = (int)(puVar14 + 1);\n    iVar6 = FUN_001cd940();\n    if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c)) break;\n    if (*(int *)(param_1 + 0x5c) < 1) goto code_r0x001cfe64;\n    piVar10 = *(int **)(param_1 + 0x54);\n    piVar1 = piVar10 + *(int *)(param_1 + 0x5c);\n    do {\n      if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }\n      piVar10 = piVar10 + 1;\n    } while (piVar1 != piVar10);\n    if (iVar13 != 0) {\ncode_r0x001cfe64:\n      FUN_001cdac0();\n      bVar4 = true;\n      param_2 = &iStack_58;\n      iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);\n    }\n    goto code_r0x001cf820;\n  }" switch (parenthesized_expression "(*puVar14)" ( (pointer_expression "*puVar14" * identifier) )) (compound_statement "{\n  case 0x41:\n    goto code_r0x001cfa38;\n  default:\n    goto LAB_001cf82d;\n  case 0x43:\n  case 0x56:\n  case 0x75:\n    if ((*param_1 & 2) != 0) {\n      if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n      pcVar7 = (char *)FUN_001cdd80();\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n    }\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x46:\n    *param_2 = (int)(puVar14 + 1);\n    if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      FUN_001ce1f0();\n      FUN_001ce230();\n    }\n    iVar6 = FUN_001d24a0();\n    if (iVar6 != 0) {\n      cVar5 = *(char *)*param_2;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x47:\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x4d:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce230();\n    if (*(char *)*param_2 == 'Q') {\n      if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;\ncode_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);\n      if (iVar13 == 0) goto code_r0x001cf820;\n    }\n    else {\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }\ncode_r0x001cfb87:\n    FUN_001ce1f0();\n    pcVar7 = (char *)*param_2;\n    cVar5 = *pcVar7;\n    if (cVar5 == 'V') {\n      local_78 = 2;\ncode_r0x001d0040:\n      pcVar11 = pcVar7 + 1;\n      *param_2 = (int)pcVar11;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }\n    if (cVar5 == 'F') {\n      *param_2 = (int)(pcVar11 + 1);\n      iVar6 = FUN_001d24a0();\n      if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x4f:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 3;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x50:\n  case 0x70:\n    *param_2 = (int)(puVar14 + 1);\n    if ((*param_1 & 4) == 0) {\n      FUN_001ce1f0();\n    }\n    iVar12 = 1;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x52:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 2;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x54:\n    *param_2 = (int)(puVar14 + 1);\n    iVar6 = FUN_001cd940();\n    if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c)) break;\n    if (*(int *)(param_1 + 0x5c) < 1) goto code_r0x001cfe64;\n    piVar10 = *(int **)(param_1 + 0x54);\n    piVar1 = piVar10 + *(int *)(param_1 + 0x5c);\n    do {\n      if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }\n      piVar10 = piVar10 + 1;\n    } while (piVar1 != piVar10);\n    if (iVar13 != 0) {\ncode_r0x001cfe64:\n      FUN_001cdac0();\n      bVar4 = true;\n      param_2 = &iStack_58;\n      iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);\n    }\n    goto code_r0x001cf820;\n  }" { (case_statement "case 0x41:\n    goto code_r0x001cfa38;" case number_literal : (goto_statement "goto code_r0x001cfa38;" goto statement_identifier ;)) (case_statement "default:\n    goto LAB_001cf82d;" default : (goto_statement "goto LAB_001cf82d;" goto statement_identifier ;)) (case_statement "case 0x43:" case number_literal :) (case_statement "case 0x56:" case number_literal :) (case_statement "case 0x75:\n    if ((*param_1 & 2) != 0) {\n      if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n      pcVar7 = (char *)FUN_001cdd80();\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n    }\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;" case number_literal : (if_statement "if ((*param_1 & 2) != 0) {\n      if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n      pcVar7 = (char *)FUN_001cdd80();\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n    }" if (parenthesized_expression "((*param_1 & 2) != 0)" ( (binary_expression "(*param_1 & 2) != 0" (parenthesized_expression "(*param_1 & 2)" ( (binary_expression "*param_1 & 2" (pointer_expression "*param_1" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n      pcVar7 = (char *)FUN_001cdd80();\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n    }" { (if_statement "if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }" if (parenthesized_expression "(local_50 != local_4c)" ( (binary_expression "local_50 != local_4c" identifier != identifier) )) (compound_statement "{\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }" { (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar14 = (undefined1 *)*param_2;" (assignment_expression "puVar14 = (undefined1 *)*param_2" identifier = (cast_expression "(undefined1 *)*param_2" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) })) (expression_statement "pcVar7 = (char *)FUN_001cdd80();" (assignment_expression "pcVar7 = (char *)FUN_001cdd80()" identifier = (cast_expression "(char *)FUN_001cdd80()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001cdd80()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }" if (parenthesized_expression "((pcVar7 != (char *)0x0) && (*pcVar7 != '\0'))" ( (binary_expression "(pcVar7 != (char *)0x0) && (*pcVar7 != '\0')" (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*pcVar7 != '\0')" ( (binary_expression "*pcVar7 != '\0'" (pointer_expression "*pcVar7" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }" { (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar14 = (undefined1 *)*param_2;" (assignment_expression "puVar14 = (undefined1 *)*param_2" identifier = (cast_expression "(undefined1 *)*param_2" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) })) })) (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(puVar14 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar14 + 1)" ( (binary_expression "puVar14 + 1" identifier + number_literal) )))) ;) (goto_statement "goto code_r0x001cf820;" goto statement_identifier ;)) (case_statement "case 0x46:\n    *param_2 = (int)(puVar14 + 1);\n    if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      FUN_001ce1f0();\n      FUN_001ce230();\n    }\n    iVar6 = FUN_001d24a0();\n    if (iVar6 != 0) {\n      cVar5 = *(char *)*param_2;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;" case number_literal : (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(puVar14 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar14 + 1)" ( (binary_expression "puVar14 + 1" identifier + number_literal) )))) ;) (if_statement "if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      FUN_001ce1f0();\n      FUN_001ce230();\n    }" if (parenthesized_expression "((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0))" ( (binary_expression "(pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)" (parenthesized_expression "(pcVar7 != local_4c)" ( (binary_expression "pcVar7 != local_4c" identifier != identifier) )) && (parenthesized_expression "((*pcVar7 - 0x26U & 0xfb) == 0)" ( (binary_expression "(*pcVar7 - 0x26U & 0xfb) == 0" (parenthesized_expression "(*pcVar7 - 0x26U & 0xfb)" ( (binary_expression "*pcVar7 - 0x26U & 0xfb" (binary_expression "*pcVar7 - 0x26U" (pointer_expression "*pcVar7" * identifier) - number_literal) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      FUN_001ce1f0();\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar6 = FUN_001d24a0();" (assignment_expression "iVar6 = FUN_001d24a0()" identifier = (call_expression "FUN_001d24a0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 != 0) {\n      cVar5 = *(char *)*param_2;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }\n    }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      cVar5 = *(char *)*param_2;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }\n    }" { (expression_statement "cVar5 = *(char *)*param_2;" (assignment_expression "cVar5 = *(char *)*param_2" identifier = (pointer_expression "*(char *)*param_2" * (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)))) ;) (if_statement "if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }" if (parenthesized_expression "((cVar5 == '_') || (cVar5 == '\0'))" ( (binary_expression "(cVar5 == '_') || (cVar5 == '\0')" (parenthesized_expression "(cVar5 == '_')" ( (binary_expression "cVar5 == '_'" identifier == (char_literal "'_'" ' character ')) )) || (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }" { (if_statement "if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }" if (parenthesized_expression "(cVar5 == '_')" ( (binary_expression "cVar5 == '_'" identifier == (char_literal "'_'" ' character ')) )) (compound_statement "{\n          *param_2 = (int)((char *)*param_2 + 1);\n        }" { (expression_statement "*param_2 = (int)((char *)*param_2 + 1);" (assignment_expression "*param_2 = (int)((char *)*param_2 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)((char *)*param_2 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((char *)*param_2 + 1)" ( (binary_expression "(char *)*param_2 + 1" (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)) + number_literal) )))) ;) })) (goto_statement "goto code_r0x001cf820;" goto statement_identifier ;) })) })) (break_statement "break;" break ;)) (case_statement "case 0x47:\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;" case number_literal : (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(puVar14 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar14 + 1)" ( (binary_expression "puVar14 + 1" identifier + number_literal) )))) ;) (goto_statement "goto code_r0x001cf820;" goto statement_identifier ;)) (case_statement "case 0x4d:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce230();\n    if (*(char *)*param_2 == 'Q') {\n      if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;\ncode_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);\n      if (iVar13 == 0) goto code_r0x001cf820;\n    }\n    else {\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }\ncode_r0x001cfb87:\n    FUN_001ce1f0();\n    pcVar7 = (char *)*param_2;\n    cVar5 = *pcVar7;\n    if (cVar5 == 'V') {\n      local_78 = 2;\ncode_r0x001d0040:\n      pcVar11 = pcVar7 + 1;\n      *param_2 = (int)pcVar11;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }\n    if (cVar5 == 'F') {\n      *param_2 = (int)(pcVar11 + 1);\n      iVar6 = FUN_001d24a0();\n      if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;" case number_literal : (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(puVar14 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar14 + 1)" ( (binary_expression "puVar14 + 1" identifier + number_literal) )))) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(char *)*param_2 == 'Q') {\n      if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;\ncode_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);\n      if (iVar13 == 0) goto code_r0x001cf820;\n    }\n    else {\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }" if (parenthesized_expression "(*(char *)*param_2 == 'Q')" ( (binary_expression "*(char *)*param_2 == 'Q'" (pointer_expression "*(char *)*param_2" * (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) == (char_literal "'Q'" ' character ')) )) (compound_statement "{\n      if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;\ncode_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);\n      if (iVar13 == 0) goto code_r0x001cf820;\n    }" { (if_statement "if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;" if (parenthesized_expression "((UNK_002a36c2 & 4) != 0)" ( (binary_expression "(UNK_002a36c2 & 4) != 0" (parenthesized_expression "(UNK_002a36c2 & 4)" ( (binary_expression "UNK_002a36c2 & 4" identifier & number_literal) )) != number_literal) )) (goto_statement "goto code_r0x001cfb41;" goto statement_identifier ;)) (labeled_statement "code_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);" statement_identifier : (expression_statement "iVar13 = FUN_001d1b50(0,0);" (assignment_expression "iVar13 = FUN_001d1b50(0,0)" identifier = (call_expression "FUN_001d1b50(0,0)" identifier (argument_list "(0,0)" ( number_literal , number_literal )))) ;)) (if_statement "if (iVar13 == 0) goto code_r0x001cf820;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x001cf820;" goto statement_identifier ;)) }) (else_clause "else {\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }" else (compound_statement "{\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }" { (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar2 = *(byte *)*param_2;" (assignment_expression "bVar2 = *(byte *)*param_2" identifier = (pointer_expression "*(byte *)*param_2" * (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)))) ;) (if_statement "if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }" if (parenthesized_expression "(((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0)" ( (binary_expression "((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0" (parenthesized_expression "((&DAT_002a3620)[(uint)bVar2 * 2] & 4)" ( (binary_expression "(&DAT_002a3620)[(uint)bVar2 * 2] & 4" (subscript_expression "(&DAT_002a3620)[(uint)bVar2 * 2]" (parenthesized_expression "(&DAT_002a3620)" ( (pointer_expression "&DAT_002a3620" & identifier) )) [ (binary_expression "(uint)bVar2 * 2" (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }" { (labeled_statement "code_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();" statement_identifier : (expression_statement "iStack_5c = FUN_001cdde0();" (assignment_expression "iStack_5c = FUN_001cdde0()" identifier = (call_expression "FUN_001cdde0()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }" if (parenthesized_expression "(iStack_5c != -1)" ( (binary_expression "iStack_5c != -1" identifier != number_literal) )) (compound_statement "{\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }" { (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "sVar8 = strlen(pcVar7);" (assignment_expression "sVar8 = strlen(pcVar7)" identifier = (call_expression "strlen(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) (if_statement "if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }" if (parenthesized_expression "(iStack_5c <= (int)sVar8)" ( (binary_expression "iStack_5c <= (int)sVar8" identifier <= (cast_expression "(int)sVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }" { (if_statement "if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }" if (parenthesized_expression "(iStack_5c != 0)" ( (binary_expression "iStack_5c != 0" identifier != number_literal) )) (compound_statement "{\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }" { (expression_statement "FUN_001ce190();" (call_expression "FUN_001ce190()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) })) (expression_statement "*param_2 = (int)(pcVar7 + iStack_5c);" (assignment_expression "*param_2 = (int)(pcVar7 + iStack_5c)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + iStack_5c)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + iStack_5c)" ( (binary_expression "pcVar7 + iStack_5c" identifier + identifier) )))) ;) (goto_statement "goto code_r0x001cfb87;" goto statement_identifier ;) })) })) (break_statement "break;" break ;) })) (if_statement "if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }" if (parenthesized_expression "((byte)(bVar2 + 0xa8) < 2)" ( (binary_expression "(byte)(bVar2 + 0xa8) < 2" (call_expression "(byte)(bVar2 + 0xa8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar2 + 0xa8)" ( (binary_expression "bVar2 + 0xa8" identifier + number_literal) ))) < number_literal) )) (compound_statement "{\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }" { (expression_statement "FUN_001cf7b0();" (call_expression "FUN_001cf7b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "__ptr = pvStack_40;" (assignment_expression "__ptr = pvStack_40" identifier = identifier) ;) (if_statement "if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }" if (parenthesized_expression "(pvStack_44 != pvStack_40)" ( (binary_expression "pvStack_44 != pvStack_40" identifier != identifier) )) (compound_statement "{\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }" { (expression_statement "FUN_001ce190();" (call_expression "FUN_001ce190()" identifier (argument_list "()" ( ))) ;) (expression_statement "__ptr = pvStack_44;" (assignment_expression "__ptr = pvStack_44" identifier = identifier) ;) })) (if_statement "if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }" if (parenthesized_expression "(__ptr != (void *)0x0)" ( (binary_expression "__ptr != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          free(__ptr);\n        }" { (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) })) }) (else_clause "else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }" else (compound_statement "{\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }" { (if_statement "if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }" if (parenthesized_expression "(bVar2 != 0x74)" ( (binary_expression "bVar2 != 0x74" identifier != number_literal) )) (compound_statement "{\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }" { (if_statement "if (bVar2 == 0x51) goto code_r0x001cfa0d;" if (parenthesized_expression "(bVar2 == 0x51)" ( (binary_expression "bVar2 == 0x51" identifier == number_literal) )) (goto_statement "goto code_r0x001cfa0d;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "uStack_3c = 0;" (assignment_expression "uStack_3c = 0" identifier = number_literal) ;) (expression_statement "pvStack_40 = (void *)0x0;" (assignment_expression "pvStack_40 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pvStack_44 = (void *)0x0;" (assignment_expression "pvStack_44 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar13 = FUN_001d1450(0,1,1);" (assignment_expression "iVar13 = FUN_001d1450(0,1,1)" identifier = (call_expression "FUN_001d1450(0,1,1)" identifier (argument_list "(0,1,1)" ( number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }" { (if_statement "if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }" if (parenthesized_expression "(pvStack_44 != (void *)0x0)" ( (binary_expression "pvStack_44 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            free(pvStack_44);\n          }" { (expression_statement "free(pvStack_44);" (call_expression "free(pvStack_44)" identifier (argument_list "(pvStack_44)" ( identifier ))) ;) })) (goto_statement "goto code_r0x001cf820;" goto statement_identifier ;) })) (if_statement "if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }" if (parenthesized_expression "(pvStack_40 != pvStack_44)" ( (binary_expression "pvStack_40 != pvStack_44" identifier != identifier) )) (compound_statement "{\n          FUN_001ce190();\n        }" { (expression_statement "FUN_001ce190();" (call_expression "FUN_001ce190()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }" if (parenthesized_expression "(pvStack_44 != (void *)0x0)" ( (binary_expression "pvStack_44 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          free(pvStack_44);\n        }" { (expression_statement "free(pvStack_44);" (call_expression "free(pvStack_44)" identifier (argument_list "(pvStack_44)" ( identifier ))) ;) })) }))) }))) (labeled_statement "code_r0x001cfb87:\n    FUN_001ce1f0();" statement_identifier : (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "cVar5 = *pcVar7;" (assignment_expression "cVar5 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (if_statement "if (cVar5 == 'V') {\n      local_78 = 2;\ncode_r0x001d0040:\n      pcVar11 = pcVar7 + 1;\n      *param_2 = (int)pcVar11;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }" if (parenthesized_expression "(cVar5 == 'V')" ( (binary_expression "cVar5 == 'V'" identifier == (char_literal "'V'" ' character ')) )) (compound_statement "{\n      local_78 = 2;\ncode_r0x001d0040:\n      pcVar11 = pcVar7 + 1;\n      *param_2 = (int)pcVar11;\n      cVar5 = pcVar7[1];\n    }" { (expression_statement "local_78 = 2;" (assignment_expression "local_78 = 2" identifier = number_literal) ;) (labeled_statement "code_r0x001d0040:\n      pcVar11 = pcVar7 + 1;" statement_identifier : (expression_statement "pcVar11 = pcVar7 + 1;" (assignment_expression "pcVar11 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;)) (expression_statement "*param_2 = (int)pcVar11;" (assignment_expression "*param_2 = (int)pcVar11" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "cVar5 = pcVar7[1];" (assignment_expression "cVar5 = pcVar7[1]" identifier = (subscript_expression "pcVar7[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }" else (compound_statement "{\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }" { (if_statement "if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }" if (parenthesized_expression "(cVar5 == 'u')" ( (binary_expression "cVar5 == 'u'" identifier == (char_literal "'u'" ' character ')) )) (compound_statement "{\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }" { (expression_statement "local_78 = 4;" (assignment_expression "local_78 = 4" identifier = number_literal) ;) (goto_statement "goto code_r0x001d0040;" goto statement_identifier ;) })) (if_statement "if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }" if (parenthesized_expression "(cVar5 == 'C')" ( (binary_expression "cVar5 == 'C'" identifier == (char_literal "'C'" ' character ')) )) (compound_statement "{\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }" { (expression_statement "local_78 = 1;" (assignment_expression "local_78 = 1" identifier = number_literal) ;) (goto_statement "goto code_r0x001d0040;" goto statement_identifier ;) })) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" identifier = number_literal) ;) (expression_statement "pcVar11 = pcVar7;" (assignment_expression "pcVar11 = pcVar7" identifier = identifier) ;) }))) (if_statement "if (cVar5 == 'F') {\n      *param_2 = (int)(pcVar11 + 1);\n      iVar6 = FUN_001d24a0();\n      if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }\n    }" if (parenthesized_expression "(cVar5 == 'F')" ( (binary_expression "cVar5 == 'F'" identifier == (char_literal "'F'" ' character ')) )) (compound_statement "{\n      *param_2 = (int)(pcVar11 + 1);\n      iVar6 = FUN_001d24a0();\n      if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }\n    }" { (expression_statement "*param_2 = (int)(pcVar11 + 1);" (assignment_expression "*param_2 = (int)(pcVar11 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar11 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar11 + 1)" ( (binary_expression "pcVar11 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar6 = FUN_001d24a0();" (assignment_expression "iVar6 = FUN_001d24a0()" identifier = (call_expression "FUN_001d24a0()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }" if (parenthesized_expression "((iVar6 != 0) && (*(char *)*param_2 == '_'))" ( (binary_expression "(iVar6 != 0) && (*(char *)*param_2 == '_')" (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(char *)*param_2 == '_')" ( (binary_expression "*(char *)*param_2 == '_'" (pointer_expression "*(char *)*param_2" * (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) == (char_literal "'_'" ' character ')) ))) )) (compound_statement "{\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }" { (expression_statement "*param_2 = (int)((char *)*param_2 + 1);" (assignment_expression "*param_2 = (int)((char *)*param_2 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)((char *)*param_2 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((char *)*param_2 + 1)" ( (binary_expression "(char *)*param_2 + 1" (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)) + number_literal) )))) ;) (if_statement "if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }" if (parenthesized_expression "(((*param_1 & 2) != 0) && (local_78 != 0))" ( (binary_expression "((*param_1 & 2) != 0) && (local_78 != 0)" (parenthesized_expression "((*param_1 & 2) != 0)" ( (binary_expression "(*param_1 & 2) != 0" (parenthesized_expression "(*param_1 & 2)" ( (binary_expression "*param_1 & 2" (pointer_expression "*param_1" * identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(local_78 != 0)" ( (binary_expression "local_78 != 0" identifier != number_literal) ))) )) (compound_statement "{\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }" { (if_statement "if (local_50 != local_4c) {\n            FUN_001ce230();\n          }" if (parenthesized_expression "(local_50 != local_4c)" ( (binary_expression "local_50 != local_4c" identifier != identifier) )) (compound_statement "{\n            FUN_001ce230();\n          }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "pcVar7 = (char *)FUN_001cdcd0();" (assignment_expression "pcVar7 = (char *)FUN_001cdcd0()" identifier = (cast_expression "(char *)FUN_001cdcd0()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001cdcd0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }" if (parenthesized_expression "((pcVar7 != (char *)0x0) && (*pcVar7 != '\0'))" ( (binary_expression "(pcVar7 != (char *)0x0) && (*pcVar7 != '\0')" (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*pcVar7 != '\0')" ( (binary_expression "*pcVar7 != '\0'" (pointer_expression "*pcVar7" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            FUN_001ce230();\n          }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) })) (goto_statement "goto code_r0x001cf820;" goto statement_identifier ;) })) })) (break_statement "break;" break ;)) (case_statement "case 0x4f:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 3;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;" case number_literal : (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(puVar14 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar14 + 1)" ( (binary_expression "puVar14 + 1" identifier + number_literal) )))) ;) (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 3;" (assignment_expression "iVar12 = 3" identifier = number_literal) ;) (if_statement "if (local_70 != 0) {\n      iVar12 = local_70;\n    }" if (parenthesized_expression "(local_70 != 0)" ( (binary_expression "local_70 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar12 = local_70;\n    }" { (expression_statement "iVar12 = local_70;" (assignment_expression "iVar12 = local_70" identifier = identifier) ;) })) (goto_statement "goto code_r0x001cf820;" goto statement_identifier ;)) (case_statement "case 0x50:" case number_literal :) (case_statement "case 0x70:\n    *param_2 = (int)(puVar14 + 1);\n    if ((*param_1 & 4) == 0) {\n      FUN_001ce1f0();\n    }\n    iVar12 = 1;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;" case number_literal : (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(puVar14 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar14 + 1)" ( (binary_expression "puVar14 + 1" identifier + number_literal) )))) ;) (if_statement "if ((*param_1 & 4) == 0) {\n      FUN_001ce1f0();\n    }" if (parenthesized_expression "((*param_1 & 4) == 0)" ( (binary_expression "(*param_1 & 4) == 0" (parenthesized_expression "(*param_1 & 4)" ( (binary_expression "*param_1 & 4" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      FUN_001ce1f0();\n    }" { (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (if_statement "if (local_70 != 0) {\n      iVar12 = local_70;\n    }" if (parenthesized_expression "(local_70 != 0)" ( (binary_expression "local_70 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar12 = local_70;\n    }" { (expression_statement "iVar12 = local_70;" (assignment_expression "iVar12 = local_70" identifier = identifier) ;) })) (goto_statement "goto code_r0x001cf820;" goto statement_identifier ;)) (case_statement "case 0x52:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 2;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;" case number_literal : (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(puVar14 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar14 + 1)" ( (binary_expression "puVar14 + 1" identifier + number_literal) )))) ;) (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 2;" (assignment_expression "iVar12 = 2" identifier = number_literal) ;) (if_statement "if (local_70 != 0) {\n      iVar12 = local_70;\n    }" if (parenthesized_expression "(local_70 != 0)" ( (binary_expression "local_70 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar12 = local_70;\n    }" { (expression_statement "iVar12 = local_70;" (assignment_expression "iVar12 = local_70" identifier = identifier) ;) })) (goto_statement "goto code_r0x001cf820;" goto statement_identifier ;)) (case_statement "case 0x54:\n    *param_2 = (int)(puVar14 + 1);\n    iVar6 = FUN_001cd940();\n    if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c)) break;\n    if (*(int *)(param_1 + 0x5c) < 1) goto code_r0x001cfe64;\n    piVar10 = *(int **)(param_1 + 0x54);\n    piVar1 = piVar10 + *(int *)(param_1 + 0x5c);\n    do {\n      if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }\n      piVar10 = piVar10 + 1;\n    } while (piVar1 != piVar10);\n    if (iVar13 != 0) {\ncode_r0x001cfe64:\n      FUN_001cdac0();\n      bVar4 = true;\n      param_2 = &iStack_58;\n      iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);\n    }\n    goto code_r0x001cf820;" case number_literal : (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(puVar14 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar14 + 1)" ( (binary_expression "puVar14 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar6 = FUN_001cd940();" (assignment_expression "iVar6 = FUN_001cd940()" identifier = (call_expression "FUN_001cd940()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c)) break;" if (parenthesized_expression "(((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c))" ( (binary_expression "((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c)" (parenthesized_expression "((iVar6 == 0) || (iStack_5c < 0))" ( (binary_expression "(iVar6 == 0) || (iStack_5c < 0)" (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) || (parenthesized_expression "(iStack_5c < 0)" ( (binary_expression "iStack_5c < 0" identifier < number_literal) ))) )) || (parenthesized_expression "(*(int *)(param_1 + 0x20) <= iStack_5c)" ( (binary_expression "*(int *)(param_1 + 0x20) <= iStack_5c" (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) )))) <= identifier) ))) )) (break_statement "break;" break ;)) (if_statement "if (*(int *)(param_1 + 0x5c) < 1) goto code_r0x001cfe64;" if (parenthesized_expression "(*(int *)(param_1 + 0x5c) < 1)" ( (binary_expression "*(int *)(param_1 + 0x5c) < 1" (pointer_expression "*(int *)(param_1 + 0x5c)" * (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))) < number_literal) )) (goto_statement "goto code_r0x001cfe64;" goto statement_identifier ;)) (expression_statement "piVar10 = *(int **)(param_1 + 0x54);" (assignment_expression "piVar10 = *(int **)(param_1 + 0x54)" identifier = (pointer_expression "*(int **)(param_1 + 0x54)" * (cast_expression "(int **)(param_1 + 0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "piVar1 = piVar10 + *(int *)(param_1 + 0x5c);" (assignment_expression "piVar1 = piVar10 + *(int *)(param_1 + 0x5c)" identifier = (binary_expression "piVar10 + *(int *)(param_1 + 0x5c)" identifier + (pointer_expression "*(int *)(param_1 + 0x5c)" * (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))))) ;) (do_statement "do {\n      if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }\n      piVar10 = piVar10 + 1;\n    } while (piVar1 != piVar10);" do (compound_statement "{\n      if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }\n      piVar10 = piVar10 + 1;\n    }" { (if_statement "if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }" if (parenthesized_expression "(iStack_5c == *piVar10)" ( (binary_expression "iStack_5c == *piVar10" identifier == (pointer_expression "*piVar10" * identifier)) )) (compound_statement "{\n        iVar13 = 0;\n      }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) })) (expression_statement "piVar10 = piVar10 + 1;" (assignment_expression "piVar10 = piVar10 + 1" identifier = (binary_expression "piVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar1 != piVar10)" ( (binary_expression "piVar1 != piVar10" identifier != identifier) )) ;) (if_statement "if (iVar13 != 0) {\ncode_r0x001cfe64:\n      FUN_001cdac0();\n      bVar4 = true;\n      param_2 = &iStack_58;\n      iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);\n    }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\ncode_r0x001cfe64:\n      FUN_001cdac0();\n      bVar4 = true;\n      param_2 = &iStack_58;\n      iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);\n    }" { (labeled_statement "code_r0x001cfe64:\n      FUN_001cdac0();" statement_identifier : (expression_statement "FUN_001cdac0();" (call_expression "FUN_001cdac0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) (expression_statement "param_2 = &iStack_58;" (assignment_expression "param_2 = &iStack_58" identifier = (pointer_expression "&iStack_58" & identifier)) ;) (expression_statement "iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);" (assignment_expression "iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 4) + iStack_5c * 4)" * (cast_expression "(int *)(*(int *)(param_1 + 4) + iStack_5c * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + iStack_5c * 4)" ( (binary_expression "*(int *)(param_1 + 4) + iStack_5c * 4" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + (binary_expression "iStack_5c * 4" identifier * number_literal)) ))))) ;) })) (goto_statement "goto code_r0x001cf820;" goto statement_identifier ;)) })) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (goto_statement "goto code_r0x001cf820;" goto statement_identifier ;) (labeled_statement "code_r0x001d0082:\n  do {\n    switch(*pcVar7 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    switch(*pcVar7 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n    }\n  } while( true );" do (compound_statement "{\n    switch(*pcVar7 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n    }\n  }" { (switch_statement "switch(*pcVar7 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n    }" switch (parenthesized_expression "(*pcVar7 + -0x43)" ( (binary_expression "*pcVar7 + -0x43" (pointer_expression "*pcVar7" * identifier) + number_literal) )) (compound_statement "{\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n    }" { (case_statement "case '\0':" case (char_literal "'\0'" ' escape_sequence ') :) (case_statement "case '\x13':" case (char_literal "'\x13'" ' escape_sequence ') :) (case_statement "case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;" case (char_literal "'2'" ' character ') : (if_statement "if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }" if (parenthesized_expression "((*param_1 & 2) != 0)" ( (binary_expression "(*param_1 & 2) != 0" (parenthesized_expression "(*param_1 & 2)" ( (binary_expression "*param_1 & 2" (pointer_expression "*param_1" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }" { (if_statement "if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }" { (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) })) (expression_statement "pcVar11 = (char *)FUN_001cdd80();" (assignment_expression "pcVar11 = (char *)FUN_001cdd80()" identifier = (cast_expression "(char *)FUN_001cdd80()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001cdd80()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }" if (parenthesized_expression "((pcVar11 != (char *)0x0) && (*pcVar11 != '\0'))" ( (binary_expression "(pcVar11 != (char *)0x0) && (*pcVar11 != '\0')" (parenthesized_expression "(pcVar11 != (char *)0x0)" ( (binary_expression "pcVar11 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*pcVar11 != '\0')" ( (binary_expression "*pcVar11 != '\0'" (pointer_expression "*pcVar11" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }" { (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) })) })) (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "*param_2 = (int)pcVar7;" (assignment_expression "*param_2 = (int)pcVar7" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "default:\n      goto code_r0x001d0176;" default : (goto_statement "goto code_r0x001d0176;" goto statement_identifier ;)) (case_statement "case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;" case (char_literal "'\a'" ' escape_sequence ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n        FUN_001ce230();\n      }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (break_statement "break;" break ;)) (case_statement "case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;" case (char_literal "'\x10'" ' escape_sequence ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n        FUN_001ce230();\n      }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (break_statement "break;" break ;)) (case_statement "case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;" case (char_literal "'\x12'" ' escape_sequence ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n        FUN_001ce230();\n      }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;)) })) }) while (parenthesized_expression "( true )" ( true )) ;)) (labeled_statement "code_r0x001cfa38:\n  *param_2 = (int)(puVar14 + 1);" statement_identifier : (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(puVar14 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar14 + 1)" ( (binary_expression "puVar14 + 1" identifier + number_literal) )))) ;)) (if_statement "if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n    FUN_001ce1f0();\n    FUN_001ce230();\n  }" if (parenthesized_expression "((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0))" ( (binary_expression "(pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)" (parenthesized_expression "(pcVar7 != local_4c)" ( (binary_expression "pcVar7 != local_4c" identifier != identifier) )) && (parenthesized_expression "((*pcVar7 - 0x26U & 0xfb) == 0)" ( (binary_expression "(*pcVar7 - 0x26U & 0xfb) == 0" (parenthesized_expression "(*pcVar7 - 0x26U & 0xfb)" ( (binary_expression "*pcVar7 - 0x26U & 0xfb" (binary_expression "*pcVar7 - 0x26U" (pointer_expression "*pcVar7" * identifier) - number_literal) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    FUN_001ce1f0();\n    FUN_001ce230();\n  }" { (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (if_statement "if (*pcVar7 != '_') {\n    iVar13 = FUN_001cf0a0(4);\n    pcVar7 = (char *)*param_2;\n    if (*pcVar7 != '_') goto code_r0x001cfa7a;\n  }" if (parenthesized_expression "(*pcVar7 != '_')" ( (binary_expression "*pcVar7 != '_'" (pointer_expression "*pcVar7" * identifier) != (char_literal "'_'" ' character ')) )) (compound_statement "{\n    iVar13 = FUN_001cf0a0(4);\n    pcVar7 = (char *)*param_2;\n    if (*pcVar7 != '_') goto code_r0x001cfa7a;\n  }" { (expression_statement "iVar13 = FUN_001cf0a0(4);" (assignment_expression "iVar13 = FUN_001cf0a0(4)" identifier = (call_expression "FUN_001cf0a0(4)" identifier (argument_list "(4)" ( number_literal )))) ;) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (if_statement "if (*pcVar7 != '_') goto code_r0x001cfa7a;" if (parenthesized_expression "(*pcVar7 != '_')" ( (binary_expression "*pcVar7 != '_'" (pointer_expression "*pcVar7" * identifier) != (char_literal "'_'" ' character ')) )) (goto_statement "goto code_r0x001cfa7a;" goto statement_identifier ;)) })) (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (labeled_statement "code_r0x001cfa7a:\n  FUN_001ce230();" statement_identifier : (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;)) (goto_statement "goto code_r0x001cf820;" goto statement_identifier ;) (labeled_statement "code_r0x001d0176:\n  pcVar11 = pcVar7;" statement_identifier : (expression_statement "pcVar11 = pcVar7;" (assignment_expression "pcVar11 = pcVar7" identifier = identifier) ;)) (switch_statement "switch(*pcVar7) {\n  case '\0':\n  case '_':\n    goto code_r0x001d018e;\n  default:\n    goto LAB_001cfd80;\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    uVar9 = FUN_001cdb80();\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d0dd0();\n    if (iVar13 != 0) {\n      FUN_001ce060(uVar9);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      iVar13 = 1;\n      FUN_001ce380();\n    }\n    goto joined_r0x001d0375;\n  case 'G':\n    pcVar11 = pcVar7 + 1;\n    *param_2 = (int)pcVar11;\n    if (((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0) goto code_r0x001d01c5;\n    goto LAB_001cfd80;\n  case 'I':\ncode_r0x001d01c5:\n    pcVar7 = pcVar11 + 1;\n    *param_2 = (int)pcVar7;\n    if (pcVar11[1] == '_') {\n      iVar13 = 0;\n      *param_2 = (int)(pcVar11 + 2);\n      pcVar7 = pcVar11 + 2;\n      do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);\n      cVar5 = pcVar11[1];\ncode_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;\n      *(undefined1 *)((int)&pvStack_44 + iVar13) = 0;\n      *param_2 = (int)(pcVar7 + 1);\n    }\n    else {\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }\n    sscanf((char *)&pvStack_44,"%x",&local_54);\n    sprintf((char *)&pvStack_44,"int%u_t",local_54);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    if ((char)pvStack_44 == '\0') goto code_r0x001d018e;\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'b':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 5;\n    FUN_001ce230();\n    iVar12 = 5;\n    break;\n  case 'c':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'd':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'f':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'i':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'l':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'r':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 's':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 't':\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d1450(0,1,1);\n    FUN_001ce380();\njoined_r0x001d0375:\n    if (pvStack_44 != (void *)0x0) {\n      free(pvStack_44);\n    }\n    if (iVar13 != 0) {\ncode_r0x001d018e:\n      iVar13 = 4;\n      iVar12 = 4;\n      break;\n    }\nLAB_001cfd80:\n    if ((void *)*param_3 == (void *)0x0) {\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }\n    else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }\n    goto LAB_001cfdb8;\n  case 'v':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'w':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'x':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n  }" switch (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (compound_statement "{\n  case '\0':\n  case '_':\n    goto code_r0x001d018e;\n  default:\n    goto LAB_001cfd80;\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    uVar9 = FUN_001cdb80();\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d0dd0();\n    if (iVar13 != 0) {\n      FUN_001ce060(uVar9);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      iVar13 = 1;\n      FUN_001ce380();\n    }\n    goto joined_r0x001d0375;\n  case 'G':\n    pcVar11 = pcVar7 + 1;\n    *param_2 = (int)pcVar11;\n    if (((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0) goto code_r0x001d01c5;\n    goto LAB_001cfd80;\n  case 'I':\ncode_r0x001d01c5:\n    pcVar7 = pcVar11 + 1;\n    *param_2 = (int)pcVar7;\n    if (pcVar11[1] == '_') {\n      iVar13 = 0;\n      *param_2 = (int)(pcVar11 + 2);\n      pcVar7 = pcVar11 + 2;\n      do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);\n      cVar5 = pcVar11[1];\ncode_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;\n      *(undefined1 *)((int)&pvStack_44 + iVar13) = 0;\n      *param_2 = (int)(pcVar7 + 1);\n    }\n    else {\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }\n    sscanf((char *)&pvStack_44,"%x",&local_54);\n    sprintf((char *)&pvStack_44,"int%u_t",local_54);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    if ((char)pvStack_44 == '\0') goto code_r0x001d018e;\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'b':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 5;\n    FUN_001ce230();\n    iVar12 = 5;\n    break;\n  case 'c':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'd':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'f':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'i':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'l':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'r':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 's':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 't':\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d1450(0,1,1);\n    FUN_001ce380();\njoined_r0x001d0375:\n    if (pvStack_44 != (void *)0x0) {\n      free(pvStack_44);\n    }\n    if (iVar13 != 0) {\ncode_r0x001d018e:\n      iVar13 = 4;\n      iVar12 = 4;\n      break;\n    }\nLAB_001cfd80:\n    if ((void *)*param_3 == (void *)0x0) {\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }\n    else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }\n    goto LAB_001cfdb8;\n  case 'v':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'w':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'x':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n  }" { (case_statement "case '\0':" case (char_literal "'\0'" ' escape_sequence ') :) (case_statement "case '_':\n    goto code_r0x001d018e;" case (char_literal "'_'" ' character ') : (goto_statement "goto code_r0x001d018e;" goto statement_identifier ;)) (case_statement "default:\n    goto LAB_001cfd80;" default : (goto_statement "goto LAB_001cfd80;" goto statement_identifier ;)) (case_statement "case '0':" case (char_literal "'0'" ' character ') :) (case_statement "case '1':" case (char_literal "'1'" ' character ') :) (case_statement "case '2':" case (char_literal "'2'" ' character ') :) (case_statement "case '3':" case (char_literal "'3'" ' character ') :) (case_statement "case '4':" case (char_literal "'4'" ' character ') :) (case_statement "case '5':" case (char_literal "'5'" ' character ') :) (case_statement "case '6':" case (char_literal "'6'" ' character ') :) (case_statement "case '7':" case (char_literal "'7'" ' character ') :) (case_statement "case '8':" case (char_literal "'8'" ' character ') :) (case_statement "case '9':\n    uVar9 = FUN_001cdb80();\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d0dd0();\n    if (iVar13 != 0) {\n      FUN_001ce060(uVar9);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      iVar13 = 1;\n      FUN_001ce380();\n    }\n    goto joined_r0x001d0375;" case (char_literal "'9'" ' character ') : (expression_statement "uVar9 = FUN_001cdb80();" (assignment_expression "uVar9 = FUN_001cdb80()" identifier = (call_expression "FUN_001cdb80()" identifier (argument_list "()" ( )))) ;) (expression_statement "uStack_3c = 0;" (assignment_expression "uStack_3c = 0" identifier = number_literal) ;) (expression_statement "pvStack_40 = (void *)0x0;" (assignment_expression "pvStack_40 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pvStack_44 = (void *)0x0;" (assignment_expression "pvStack_44 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar13 = FUN_001d0dd0();" (assignment_expression "iVar13 = FUN_001d0dd0()" identifier = (call_expression "FUN_001d0dd0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar13 != 0) {\n      FUN_001ce060(uVar9);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      iVar13 = 1;\n      FUN_001ce380();\n    }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001ce060(uVar9);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      iVar13 = 1;\n      FUN_001ce380();\n    }" { (expression_statement "FUN_001ce060(uVar9);" (call_expression "FUN_001ce060(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) (if_statement "if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n        FUN_001ce230();\n      }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" identifier = number_literal) ;) (expression_statement "FUN_001ce380();" (call_expression "FUN_001ce380()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto joined_r0x001d0375;" goto statement_identifier ;)) (case_statement "case 'G':\n    pcVar11 = pcVar7 + 1;\n    *param_2 = (int)pcVar11;\n    if (((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0) goto code_r0x001d01c5;\n    goto LAB_001cfd80;" case (char_literal "'G'" ' character ') : (expression_statement "pcVar11 = pcVar7 + 1;" (assignment_expression "pcVar11 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "*param_2 = (int)pcVar11;" (assignment_expression "*param_2 = (int)pcVar11" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0) goto code_r0x001d01c5;" if (parenthesized_expression "(((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0)" ( (binary_expression "((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0" (parenthesized_expression "((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4)" ( (binary_expression "(&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4" (subscript_expression "(&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2]" (parenthesized_expression "(&DAT_002a3620)" ( (pointer_expression "&DAT_002a3620" & identifier) )) [ (binary_expression "(uint)(byte)pcVar7[1] * 2" (cast_expression "(uint)(byte)pcVar7[1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar7[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar7[1]" identifier [ number_literal ]))) * number_literal) ]) & number_literal) )) != number_literal) )) (goto_statement "goto code_r0x001d01c5;" goto statement_identifier ;)) (goto_statement "goto LAB_001cfd80;" goto statement_identifier ;)) (case_statement "case 'I':\ncode_r0x001d01c5:\n    pcVar7 = pcVar11 + 1;\n    *param_2 = (int)pcVar7;\n    if (pcVar11[1] == '_') {\n      iVar13 = 0;\n      *param_2 = (int)(pcVar11 + 2);\n      pcVar7 = pcVar11 + 2;\n      do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);\n      cVar5 = pcVar11[1];\ncode_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;\n      *(undefined1 *)((int)&pvStack_44 + iVar13) = 0;\n      *param_2 = (int)(pcVar7 + 1);\n    }\n    else {\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }\n    sscanf((char *)&pvStack_44,"%x",&local_54);\n    sprintf((char *)&pvStack_44,"int%u_t",local_54);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    if ((char)pvStack_44 == '\0') goto code_r0x001d018e;\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;" case (char_literal "'I'" ' character ') : (labeled_statement "code_r0x001d01c5:\n    pcVar7 = pcVar11 + 1;" statement_identifier : (expression_statement "pcVar7 = pcVar11 + 1;" (assignment_expression "pcVar7 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;)) (expression_statement "*param_2 = (int)pcVar7;" (assignment_expression "*param_2 = (int)pcVar7" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (pcVar11[1] == '_') {\n      iVar13 = 0;\n      *param_2 = (int)(pcVar11 + 2);\n      pcVar7 = pcVar11 + 2;\n      do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);\n      cVar5 = pcVar11[1];\ncode_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;\n      *(undefined1 *)((int)&pvStack_44 + iVar13) = 0;\n      *param_2 = (int)(pcVar7 + 1);\n    }\n    else {\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }" if (parenthesized_expression "(pcVar11[1] == '_')" ( (binary_expression "pcVar11[1] == '_'" (subscript_expression "pcVar11[1]" identifier [ number_literal ]) == (char_literal "'_'" ' character ')) )) (compound_statement "{\n      iVar13 = 0;\n      *param_2 = (int)(pcVar11 + 2);\n      pcVar7 = pcVar11 + 2;\n      do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);\n      cVar5 = pcVar11[1];\ncode_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;\n      *(undefined1 *)((int)&pvStack_44 + iVar13) = 0;\n      *param_2 = (int)(pcVar7 + 1);\n    }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "*param_2 = (int)(pcVar11 + 2);" (assignment_expression "*param_2 = (int)(pcVar11 + 2)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar11 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar11 + 2)" ( (binary_expression "pcVar11 + 2" identifier + number_literal) )))) ;) (expression_statement "pcVar7 = pcVar11 + 2;" (assignment_expression "pcVar7 = pcVar11 + 2" identifier = (binary_expression "pcVar11 + 2" identifier + number_literal)) ;) (do_statement "do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);" do (compound_statement "{\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      }" { (expression_statement "pcVar11 = pcVar7;" (assignment_expression "pcVar11 = pcVar7" identifier = identifier) ;) (expression_statement "cVar5 = *pcVar11;" (assignment_expression "cVar5 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (expression_statement "pcVar7 = pcVar11;" (assignment_expression "pcVar7 = pcVar11" identifier = identifier) ;) (if_statement "if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;" if (parenthesized_expression "((cVar5 == '_') || (cVar5 == '\0'))" ( (binary_expression "(cVar5 == '_') || (cVar5 == '\0')" (parenthesized_expression "(cVar5 == '_')" ( (binary_expression "cVar5 == '_'" identifier == (char_literal "'_'" ' character ')) )) || (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto code_r0x001d0200;" goto statement_identifier ;)) (expression_statement "*(char *)((int)&pvStack_44 + iVar13) = cVar5;" (assignment_expression "*(char *)((int)&pvStack_44 + iVar13) = cVar5" (pointer_expression "*(char *)((int)&pvStack_44 + iVar13)" * (cast_expression "(char *)((int)&pvStack_44 + iVar13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pvStack_44 + iVar13)" ( (binary_expression "(int)&pvStack_44 + iVar13" (cast_expression "(int)&pvStack_44" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pvStack_44" & identifier)) + identifier) )))) = identifier) ;) (expression_statement "pcVar7 = pcVar11 + 1;" (assignment_expression "pcVar7 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "*param_2 = (int)pcVar7;" (assignment_expression "*param_2 = (int)pcVar7" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) while (parenthesized_expression "(iVar13 != 0x24)" ( (binary_expression "iVar13 != 0x24" identifier != number_literal) )) ;) (expression_statement "cVar5 = pcVar11[1];" (assignment_expression "cVar5 = pcVar11[1]" identifier = (subscript_expression "pcVar11[1]" identifier [ number_literal ])) ;) (labeled_statement "code_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;" statement_identifier : (if_statement "if (cVar5 != '_') goto LAB_001cfd80;" if (parenthesized_expression "(cVar5 != '_')" ( (binary_expression "cVar5 != '_'" identifier != (char_literal "'_'" ' character ')) )) (goto_statement "goto LAB_001cfd80;" goto statement_identifier ;))) (expression_statement "*(undefined1 *)((int)&pvStack_44 + iVar13) = 0;" (assignment_expression "*(undefined1 *)((int)&pvStack_44 + iVar13) = 0" (pointer_expression "*(undefined1 *)((int)&pvStack_44 + iVar13)" * (cast_expression "(undefined1 *)((int)&pvStack_44 + iVar13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pvStack_44 + iVar13)" ( (binary_expression "(int)&pvStack_44 + iVar13" (cast_expression "(int)&pvStack_44" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pvStack_44" & identifier)) + identifier) )))) = number_literal) ;) (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) }) (else_clause "else {\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }" else (compound_statement "{\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }" { (expression_statement "strncpy((char *)&pvStack_44,pcVar7,2);" (call_expression "strncpy((char *)&pvStack_44,pcVar7,2)" identifier (argument_list "((char *)&pvStack_44,pcVar7,2)" ( (cast_expression "(char *)&pvStack_44" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pvStack_44" & identifier)) , identifier , number_literal ))) ;) (expression_statement "pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;" (assignment_expression "pvStack_44._0_3_ = (uint3)(ushort)pvStack_44" (field_expression "pvStack_44._0_3_" identifier . field_identifier) = (cast_expression "(uint3)(ushort)pvStack_44" ( (type_descriptor "uint3" type_identifier) ) (cast_expression "(ushort)pvStack_44" ( (type_descriptor "ushort" type_identifier) ) identifier))) ;) (expression_statement "sVar8 = strlen(pcVar7);" (assignment_expression "sVar8 = strlen(pcVar7)" identifier = (call_expression "strlen(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) (if_statement "if (1 < sVar8) {\n        sVar8 = 2;\n      }" if (parenthesized_expression "(1 < sVar8)" ( (binary_expression "1 < sVar8" number_literal < identifier) )) (compound_statement "{\n        sVar8 = 2;\n      }" { (expression_statement "sVar8 = 2;" (assignment_expression "sVar8 = 2" identifier = number_literal) ;) })) (expression_statement "*param_2 = (int)(pcVar7 + sVar8);" (assignment_expression "*param_2 = (int)(pcVar7 + sVar8)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + sVar8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + sVar8)" ( (binary_expression "pcVar7 + sVar8" identifier + identifier) )))) ;) }))) (expression_statement "sscanf((char *)&pvStack_44,"%x",&local_54);" (call_expression "sscanf((char *)&pvStack_44,"%x",&local_54)" identifier (argument_list "((char *)&pvStack_44,"%x",&local_54)" ( (cast_expression "(char *)&pvStack_44" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pvStack_44" & identifier)) , (string_literal ""%x"" " string_content ") , (pointer_expression "&local_54" & identifier) ))) ;) (expression_statement "sprintf((char *)&pvStack_44,"int%u_t",local_54);" (call_expression "sprintf((char *)&pvStack_44,"int%u_t",local_54)" identifier (argument_list "((char *)&pvStack_44,"int%u_t",local_54)" ( (cast_expression "(char *)&pvStack_44" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pvStack_44" & identifier)) , (string_literal ""int%u_t"" " string_content ") , identifier ))) ;) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((char)pvStack_44 == '\0') goto code_r0x001d018e;" if (parenthesized_expression "((char)pvStack_44 == '\0')" ( (binary_expression "(char)pvStack_44 == '\0'" (cast_expression "(char)pvStack_44" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x001d018e;" goto statement_identifier ;)) (expression_statement "iVar13 = 4;" (assignment_expression "iVar13 = 4" identifier = number_literal) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'b':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 5;\n    FUN_001ce230();\n    iVar12 = 5;\n    break;" case (char_literal "'b'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = 5;" (assignment_expression "iVar13 = 5" identifier = number_literal) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 5;" (assignment_expression "iVar12 = 5" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'c':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;" case (char_literal "'c'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = 6;" (assignment_expression "iVar13 = 6" identifier = number_literal) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 6;" (assignment_expression "iVar12 = 6" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'd':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;" case (char_literal "'d'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = 7;" (assignment_expression "iVar13 = 7" identifier = number_literal) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'f':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;" case (char_literal "'f'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = 7;" (assignment_expression "iVar13 = 7" identifier = number_literal) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'i':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;" case (char_literal "'i'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = 4;" (assignment_expression "iVar13 = 4" identifier = number_literal) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'l':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;" case (char_literal "'l'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = 4;" (assignment_expression "iVar13 = 4" identifier = number_literal) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'r':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;" case (char_literal "'r'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = 7;" (assignment_expression "iVar13 = 7" identifier = number_literal) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 's':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;" case (char_literal "'s'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = 4;" (assignment_expression "iVar13 = 4" identifier = number_literal) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 't':\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d1450(0,1,1);\n    FUN_001ce380();\njoined_r0x001d0375:\n    if (pvStack_44 != (void *)0x0) {\n      free(pvStack_44);\n    }\n    if (iVar13 != 0) {\ncode_r0x001d018e:\n      iVar13 = 4;\n      iVar12 = 4;\n      break;\n    }\nLAB_001cfd80:\n    if ((void *)*param_3 == (void *)0x0) {\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }\n    else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }\n    goto LAB_001cfdb8;" case (char_literal "'t'" ' character ') : (expression_statement "uStack_3c = 0;" (assignment_expression "uStack_3c = 0" identifier = number_literal) ;) (expression_statement "pvStack_40 = (void *)0x0;" (assignment_expression "pvStack_40 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pvStack_44 = (void *)0x0;" (assignment_expression "pvStack_44 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar13 = FUN_001d1450(0,1,1);" (assignment_expression "iVar13 = FUN_001d1450(0,1,1)" identifier = (call_expression "FUN_001d1450(0,1,1)" identifier (argument_list "(0,1,1)" ( number_literal , number_literal , number_literal )))) ;) (expression_statement "FUN_001ce380();" (call_expression "FUN_001ce380()" identifier (argument_list "()" ( ))) ;) (labeled_statement "joined_r0x001d0375:\n    if (pvStack_44 != (void *)0x0) {\n      free(pvStack_44);\n    }" statement_identifier : (if_statement "if (pvStack_44 != (void *)0x0) {\n      free(pvStack_44);\n    }" if (parenthesized_expression "(pvStack_44 != (void *)0x0)" ( (binary_expression "pvStack_44 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(pvStack_44);\n    }" { (expression_statement "free(pvStack_44);" (call_expression "free(pvStack_44)" identifier (argument_list "(pvStack_44)" ( identifier ))) ;) }))) (if_statement "if (iVar13 != 0) {\ncode_r0x001d018e:\n      iVar13 = 4;\n      iVar12 = 4;\n      break;\n    }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\ncode_r0x001d018e:\n      iVar13 = 4;\n      iVar12 = 4;\n      break;\n    }" { (labeled_statement "code_r0x001d018e:\n      iVar13 = 4;" statement_identifier : (expression_statement "iVar13 = 4;" (assignment_expression "iVar13 = 4" identifier = number_literal) ;)) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;) (break_statement "break;" break ;) })) (labeled_statement "LAB_001cfd80:\n    if ((void *)*param_3 == (void *)0x0) {\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }\n    else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }" statement_identifier : (if_statement "if ((void *)*param_3 == (void *)0x0) {\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }\n    else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }" if (parenthesized_expression "((void *)*param_3 == (void *)0x0)" ( (binary_expression "(void *)*param_3 == (void *)0x0" (cast_expression "(void *)*param_3" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier)) == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "pcVar7 = local_50;" (assignment_expression "pcVar7 = local_50" identifier = identifier) ;) }) (else_clause "else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }" else (compound_statement "{\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "free((void *)*param_3);" (call_expression "free((void *)*param_3)" identifier (argument_list "((void *)*param_3)" ( (cast_expression "(void *)*param_3" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier)) ))) ;) (expression_statement "param_3[1] = 0;" (assignment_expression "param_3[1] = 0" (subscript_expression "param_3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_3[2] = 0;" (assignment_expression "param_3[2] = 0" (subscript_expression "param_3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "pcVar7 = local_50;" (assignment_expression "pcVar7 = local_50" identifier = identifier) ;) })))) (goto_statement "goto LAB_001cfdb8;" goto statement_identifier ;)) (case_statement "case 'v':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;" case (char_literal "'v'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = 4;" (assignment_expression "iVar13 = 4" identifier = number_literal) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'w':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;" case (char_literal "'w'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = 6;" (assignment_expression "iVar13 = 6" identifier = number_literal) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 6;" (assignment_expression "iVar12 = 6" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'x':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;" case (char_literal "'x'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = 4;" (assignment_expression "iVar13 = 4" identifier = number_literal) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;)) })) (if_statement "if (local_70 != 0) {\n    iVar12 = local_70;\n  }" if (parenthesized_expression "(local_70 != 0)" ( (binary_expression "local_70 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar12 = local_70;\n  }" { (expression_statement "iVar12 = local_70;" (assignment_expression "iVar12 = local_70" identifier = identifier) ;) })) (labeled_statement "code_r0x001cfebc:\n  local_70 = iVar12;" statement_identifier : (expression_statement "local_70 = iVar12;" (assignment_expression "local_70 = iVar12" identifier = identifier) ;)) (expression_statement "pcVar7 = local_4c;" (assignment_expression "pcVar7 = local_4c" identifier = identifier) ;) (if_statement "if (local_50 != local_4c) {\n    FUN_001ce230();\n    FUN_001ce380();\n    pcVar7 = local_50;\n  }" if (parenthesized_expression "(local_50 != local_4c)" ( (binary_expression "local_50 != local_4c" identifier != identifier) )) (compound_statement "{\n    FUN_001ce230();\n    FUN_001ce380();\n    pcVar7 = local_50;\n  }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_001ce380();" (call_expression "FUN_001ce380()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar7 = local_50;" (assignment_expression "pcVar7 = local_50" identifier = identifier) ;) })) (labeled_statement "LAB_001cfdb8:\n  if (pcVar7 != (char *)0x0) {\n    free(pcVar7);\n  }" statement_identifier : (if_statement "if (pcVar7 != (char *)0x0) {\n    free(pcVar7);\n  }" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(pcVar7);\n  }" { (expression_statement "free(pcVar7);" (call_expression "free(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) }))) (if_statement "if (bVar4) {\n    *(int *)(param_1 + 0x5c) = *(int *)(param_1 + 0x5c) + -1;\n  }" if (parenthesized_expression "(bVar4)" ( identifier )) (compound_statement "{\n    *(int *)(param_1 + 0x5c) = *(int *)(param_1 + 0x5c) + -1;\n  }" { (expression_statement "*(int *)(param_1 + 0x5c) = *(int *)(param_1 + 0x5c) + -1;" (assignment_expression "*(int *)(param_1 + 0x5c) = *(int *)(param_1 + 0x5c) + -1" (pointer_expression "*(int *)(param_1 + 0x5c)" * (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x5c) + -1" (pointer_expression "*(int *)(param_1 + 0x5c)" * (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iVar13 != 0) && (iVar13 = local_70, local_70 == 0)) {\n    iVar13 = 4;\n  }" if (parenthesized_expression "((iVar13 != 0) && (iVar13 = local_70, local_70 == 0))" ( (binary_expression "(iVar13 != 0) && (iVar13 = local_70, local_70 == 0)" (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar13 = local_70, local_70 == 0)" ( (comma_expression "iVar13 = local_70, local_70 == 0" (assignment_expression "iVar13 = local_70" identifier = identifier) , (binary_expression "local_70 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    iVar13 = 4;\n  }" { (expression_statement "iVar13 = 4;" (assignment_expression "iVar13 = 4" identifier = number_literal) ;) })) (return_statement "return iVar13;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 do_type(work_stuff *work,char **mangled,string *result)\n\n{\n  int *piVar1;\n  byte bVar2;\n  bool bVar3;\n  bool bVar4;\n  char cVar5;\n  int iVar6;\n  char *pcVar7;\n  size_t sVar8;\n  int *piVar9;\n  char *pcVar10;\n  int iVar11;\n  int iVar12;\n  int local_78;\n  int local_70;\n  int n;\n  char *remembered_type;\n  uint dec;\n  string decl;\n  string temp;\n  \n  iVar12 = 1;\n  result->e = (char *)0x0;\n  decl.e = (char *)0x0;\n  decl.p = (char *)0x0;\n  decl.b = (char *)0x0;\n  result->p = (char *)0x0;\n  result->b = (char *)0x0;\n  local_70 = 0;\n  bVar4 = false;\n  iVar11 = local_70;\nLAB_001cf820:\n  local_70 = iVar11;\n  pcVar7 = decl.b;\n  bVar3 = false;\n_L731:\n  if ((bVar3) || (iVar12 == 0)) {\n    if (iVar12 == 0) goto _L589;\n    pcVar7 = *mangled;\n    iVar11 = local_70;\n    switch(*pcVar7) {\n    case 'B':\n      *mangled = pcVar7 + 1;\n      iVar6 = get_count(mangled,&n);\n      if (((iVar6 == 0) || (n < 0)) || (work->numb <= n)) goto _L589;\n      pcVar7 = work->btypevec[n];\n      break;\n    default:\n      dec = 0;\n      goto LAB_001d0082;\n    case 'K':\n    case 'Q':\n      iVar12 = demangle_qualified(work,mangled,result,0,1);\n      if (iVar12 == 0) goto _L589;\n      goto LAB_001cfebc;\n    case 'X':\n    case 'Y':\n      *mangled = pcVar7 + 1;\n      iVar6 = consume_count_with_underscores(mangled);\n      if ((iVar6 == -1) ||\n         (((work->tmpl_argvec != (char **)0x0 && (work->ntmpl_args <= iVar6)) ||\n          (iVar12 = consume_count_with_underscores(mangled), iVar12 == -1)))) goto _L589;\n      if (work->tmpl_argvec == (char **)0x0) {\n        iVar12 = 1;\n        string_append_template_idx(result,iVar6);\n        goto LAB_001cfebc;\n      }\n      pcVar7 = work->tmpl_argvec[iVar6];\n      iVar12 = 1;\n    }\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      string_append(result,pcVar7);\n    }\n    goto LAB_001cfebc;\n  }\n  pcVar10 = *mangled;\n  bVar3 = true;\n  iVar6 = (int)*pcVar10;\n  iVar11 = local_70;\n  switch(iVar6 - 0x41U & 0xff) {\n  case 0:\n    goto _L530;\n  default:\n    goto _L731;\n  case 2:\n  case 0x15:\n  case 0x34:\n    if ((work->options & 2) != 0) {\n      if (decl.b != decl.p) {\n        string_prepend(&decl," ");\n        pcVar10 = *mangled;\n        iVar6 = (int)*pcVar10;\n      }\n      pcVar7 = demangle_qualifier(iVar6);\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        string_prepend(&decl,pcVar7);\n        pcVar10 = *mangled;\n      }\n    }\n    *mangled = pcVar10 + 1;\n    goto LAB_001cf820;\n  case 5:\n    *mangled = pcVar10 + 1;\n    if ((pcVar7 != decl.p) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      string_prepend(&decl,"(");\n      string_append(&decl,")");\n    }\n    iVar6 = demangle_nested_args(work,mangled,&decl);\n    if (iVar6 != 0) {\n      cVar5 = **mangled;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *mangled = *mangled + 1;\n        }\n        goto LAB_001cf820;\n      }\n    }\n    break;\n  case 6:\n    *mangled = pcVar10 + 1;\n    goto LAB_001cf820;\n  case 0xc:\n    *mangled = pcVar10 + 1;\n    string_append(&decl,")");\n    if (**mangled == 'Q') {\n      if (((byte)_sch_istable[0x51] & 4) != 0) goto LAB_001cfb41;\nLAB_001cfa0d:\n      iVar12 = demangle_qualified(work,mangled,&decl,0,0);\n      if (iVar12 == 0) goto LAB_001cf820;\n    }\n    else {\n      pcVar7 = "::";\n      if ((work->options & 4) != 0) {\n        pcVar7 = ".";\n      }\n      string_prepend(&decl,pcVar7);\n      bVar2 = **mangled;\n      if ((_sch_istable[bVar2] & 4) != 0) {\nLAB_001cfb41:\n        iVar6 = consume_count(mangled);\n        n = iVar6;\n        if (iVar6 != -1) {\n          pcVar7 = *mangled;\n          sVar8 = strlen(pcVar7);\n          if (iVar6 <= (int)sVar8) {\n            if (iVar6 != 0) {\n              string_prependn(&decl,pcVar7,iVar6);\n              pcVar7 = *mangled;\n              iVar6 = n;\n            }\n            *mangled = pcVar7 + iVar6;\n            goto LAB_001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        do_type(work,mangled,&temp);\n        pcVar7 = temp.p;\n        if (temp.b != temp.p) {\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n          pcVar7 = temp.b;\n        }\n        if (pcVar7 != (char *)0x0) {\n          free(pcVar7);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto LAB_001cfa0d;\n          break;\n        }\n        temp.e = (char *)0x0;\n        temp.p = (char *)0x0;\n        temp.b = (char *)0x0;\n        iVar12 = demangle_template(work,mangled,&temp,(string *)0x0,1,1);\n        if (iVar12 == 0) {\n          if (temp.b != (char *)0x0) {\n            free(temp.b);\n          }\n          goto LAB_001cf820;\n        }\n        if ((int)temp.p - (int)temp.b != 0) {\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n        }\n        if (temp.b != (char *)0x0) {\n          free(temp.b);\n        }\n      }\n    }\nLAB_001cfb87:\n    string_prepend(&decl,"(");\n    pcVar7 = *mangled;\n    cVar5 = *pcVar7;\n    if (cVar5 == 'V') {\n      local_78 = 2;\nLAB_001d0040:\n      pcVar10 = pcVar7 + 1;\n      *mangled = pcVar10;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto LAB_001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto LAB_001d0040;\n      }\n      local_78 = 0;\n      pcVar10 = pcVar7;\n    }\n    if (cVar5 == 'F') {\n      *mangled = pcVar10 + 1;\n      iVar6 = demangle_nested_args(work,mangled,&decl);\n      if ((iVar6 != 0) && (**mangled == '_')) {\n        *mangled = *mangled + 1;\n        if (((work->options & 2) != 0) && (local_78 != 0)) {\n          if (decl.b != decl.p) {\n            string_append(&decl," ");\n          }\n          pcVar7 = qualifier_string(local_78);\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            string_append(&decl,pcVar7);\n          }\n        }\n        goto LAB_001cf820;\n      }\n    }\n    break;\n  case 0xe:\n    *mangled = pcVar10 + 1;\n    string_prepend(&decl,"&&");\n    iVar11 = 3;\n    if (local_70 != 0) {\n      iVar11 = local_70;\n    }\n    goto LAB_001cf820;\n  case 0xf:\n  case 0x2f:\n    *mangled = pcVar10 + 1;\n    if ((work->options & 4) == 0) {\n      string_prepend(&decl,"*");\n    }\n    iVar11 = 1;\n    if (local_70 != 0) {\n      iVar11 = local_70;\n    }\n    goto LAB_001cf820;\n  case 0x11:\n    *mangled = pcVar10 + 1;\n    string_prepend(&decl,"&");\n    iVar11 = 2;\n    if (local_70 != 0) {\n      iVar11 = local_70;\n    }\n    goto LAB_001cf820;\n  case 0x13:\n    *mangled = pcVar10 + 1;\n    iVar6 = get_count(mangled,&n);\n    if (((iVar6 == 0) || (n < 0)) || (work->ntypes <= n)) break;\n    if (work->nproctypes < 1) goto LAB_001cfe64;\n    piVar9 = work->proctypevec;\n    piVar1 = piVar9 + work->nproctypes;\n    do {\n      if (n == *piVar9) {\n        iVar12 = 0;\n      }\n      piVar9 = piVar9 + 1;\n    } while (piVar1 != piVar9);\n    if (iVar12 != 0) {\nLAB_001cfe64:\n      push_processed_type(work,n);\n      bVar4 = true;\n      mangled = &remembered_type;\n      remembered_type = work->typevec[n];\n    }\n    goto LAB_001cf820;\n  }\n  iVar12 = 0;\n  goto LAB_001cf820;\nLAB_001d0082:\n  do {\n    cVar5 = *pcVar7;\n    switch(cVar5 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((work->options & 2) != 0) {\n        if (result->b != result->p) {\n          string_prepend(result," ");\n          pcVar7 = *mangled;\n          cVar5 = *pcVar7;\n        }\n        pcVar10 = demangle_qualifier((int)cVar5);\n        if ((pcVar10 != (char *)0x0) && (*pcVar10 != '\0')) {\n          string_prepend(result,pcVar10);\n          pcVar7 = *mangled;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *mangled = pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"__complex");\n      pcVar7 = *mangled;\n      break;\n    case '\x10':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"signed");\n      pcVar7 = *mangled;\n      break;\n    case '\x12':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"unsigned");\n      pcVar7 = *mangled;\n    }\n  } while( true );\n_L530:\n  *mangled = pcVar10 + 1;\n  if ((pcVar7 != decl.p) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n    string_prepend(&decl,"(");\n    string_append(&decl,")");\n  }\n  string_append(&decl,"[");\n  pcVar7 = *mangled;\n  if (*pcVar7 != '_') {\n    iVar12 = demangle_template_value_parm(work,mangled,&decl,tk_integral);\n    pcVar7 = *mangled;\n    if (*pcVar7 != '_') goto LAB_001cfa7a;\n  }\n  *mangled = pcVar7 + 1;\nLAB_001cfa7a:\n  string_append(&decl,"]");\n  goto LAB_001cf820;\ncode_r0x001d0176:\n  pcVar10 = pcVar7;\n  switch(cVar5) {\n  case '\0':\n  case '_':\n    goto _L656;\n  default:\n    goto _L589;\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    iVar11 = register_Btype(work);\n    temp.e = (char *)0x0;\n    temp.p = (char *)0x0;\n    temp.b = (char *)0x0;\n    iVar12 = demangle_class_name(work,mangled,&temp);\n    if (iVar12 != 0) {\n      iVar12 = (int)temp.p - (int)temp.b;\n      if (temp.b == temp.p) {\n        iVar12 = 0;\n      }\n      remember_Btype((work_stuff *)&work->btypevec,temp.b,iVar12,iVar11);\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      iVar12 = 1;\n      string_appends(result,&temp,(string *)temp.p);\n    }\n    goto joined_r0x001d0375;\n  case 'G':\n    pcVar10 = pcVar7 + 1;\n    *mangled = pcVar10;\n    if ((_sch_istable[(byte)pcVar7[1]] & 4) != 0) goto _L586;\n    goto _L589;\n  case 'I':\n_L586:\n    pcVar7 = pcVar10 + 1;\n    *mangled = pcVar7;\n    if (pcVar10[1] == '_') {\n      iVar12 = 0;\n      *mangled = pcVar10 + 2;\n      pcVar7 = pcVar10 + 2;\n      do {\n        pcVar10 = pcVar7;\n        cVar5 = *pcVar10;\n        pcVar7 = pcVar10;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto LAB_001d0200;\n        *(char *)((int)&temp.b + iVar12) = cVar5;\n        pcVar7 = pcVar10 + 1;\n        iVar12 = iVar12 + 1;\n        *mangled = pcVar7;\n      } while (iVar12 != 0x24);\n      cVar5 = pcVar10[1];\nLAB_001d0200:\n      if (cVar5 != '_') goto _L589;\n      *(undefined1 *)((int)&temp.b + iVar12) = 0;\n      *mangled = pcVar7 + 1;\n    }\n    else {\n      strncpy((char *)&temp,pcVar7,2);\n      temp.b._0_3_ = CONCAT12(0,(ushort)temp.b);\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *mangled = pcVar7 + sVar8;\n    }\n    sscanf((char *)&temp,"%x",&dec);\n    sprintf((char *)&temp,"int%u_t",dec);\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    if ((char)temp.b == '\0') goto _L656;\n    iVar12 = 4;\n    string_append(result,(char *)&temp);\n    iVar11 = 4;\n    break;\n  case 'b':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 5;\n    string_append(result,"bool");\n    iVar11 = 5;\n    break;\n  case 'c':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 6;\n    string_append(result,"char");\n    iVar11 = 6;\n    break;\n  case 'd':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 7;\n    string_append(result,"double");\n    iVar11 = 7;\n    break;\n  case 'f':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 7;\n    string_append(result,"float");\n    iVar11 = 7;\n    break;\n  case 'i':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"int");\n    iVar11 = 4;\n    break;\n  case 'l':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"long");\n    iVar11 = 4;\n    break;\n  case 'r':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 7;\n    string_append(result,"long double");\n    iVar11 = 7;\n    break;\n  case 's':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"short");\n    iVar11 = 4;\n    break;\n  case 't':\n    temp.e = (char *)0x0;\n    temp.p = (char *)0x0;\n    temp.b = (char *)0x0;\n    iVar12 = demangle_template(work,mangled,&temp,(string *)0x0,1,1);\n    string_appends(result,&temp,(string *)temp.p);\njoined_r0x001d0375:\n    if (temp.b != (char *)0x0) {\n      free(temp.b);\n    }\n    if (iVar12 != 0) {\n_L656:\n      iVar12 = 4;\n      iVar11 = 4;\n      break;\n    }\n_L589:\n    if (result->b == (char *)0x0) {\n      iVar12 = 0;\n      pcVar7 = decl.b;\n    }\n    else {\n      iVar12 = 0;\n      free(result->b);\n      result->p = (char *)0x0;\n      result->e = (char *)0x0;\n      result->b = (char *)0x0;\n      pcVar7 = decl.b;\n    }\n    goto LAB_001cfdb8;\n  case 'v':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"void");\n    iVar11 = 4;\n    break;\n  case 'w':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 6;\n    string_append(result,"wchar_t");\n    iVar11 = 6;\n    break;\n  case 'x':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"long long");\n    iVar11 = 4;\n  }\n  if (local_70 != 0) {\n    iVar11 = local_70;\n  }\nLAB_001cfebc:\n  local_70 = iVar11;\n  pcVar7 = decl.p;\n  if (decl.b != decl.p) {\n    string_append(result," ");\n    string_appends(result,&decl,(string *)decl.p);\n    pcVar7 = decl.b;\n  }\nLAB_001cfdb8:\n  if (pcVar7 != (char *)0x0) {\n    free(pcVar7);\n  }\n  if (bVar4) {\n    work->nproctypes = work->nproctypes + -1;\n  }\n  if ((iVar12 != 0) && (iVar12 = local_70, local_70 == 0)) {\n    iVar12 = 4;\n  }\n  return iVar12;\n}\n\n" comment (function_definition "int __regparm3 do_type(work_stuff *work,char **mangled,string *result)\n\n{\n  int *piVar1;\n  byte bVar2;\n  bool bVar3;\n  bool bVar4;\n  char cVar5;\n  int iVar6;\n  char *pcVar7;\n  size_t sVar8;\n  int *piVar9;\n  char *pcVar10;\n  int iVar11;\n  int iVar12;\n  int local_78;\n  int local_70;\n  int n;\n  char *remembered_type;\n  uint dec;\n  string decl;\n  string temp;\n  \n  iVar12 = 1;\n  result->e = (char *)0x0;\n  decl.e = (char *)0x0;\n  decl.p = (char *)0x0;\n  decl.b = (char *)0x0;\n  result->p = (char *)0x0;\n  result->b = (char *)0x0;\n  local_70 = 0;\n  bVar4 = false;\n  iVar11 = local_70;\nLAB_001cf820:\n  local_70 = iVar11;\n  pcVar7 = decl.b;\n  bVar3 = false;\n_L731:\n  if ((bVar3) || (iVar12 == 0)) {\n    if (iVar12 == 0) goto _L589;\n    pcVar7 = *mangled;\n    iVar11 = local_70;\n    switch(*pcVar7) {\n    case 'B':\n      *mangled = pcVar7 + 1;\n      iVar6 = get_count(mangled,&n);\n      if (((iVar6 == 0) || (n < 0)) || (work->numb <= n)) goto _L589;\n      pcVar7 = work->btypevec[n];\n      break;\n    default:\n      dec = 0;\n      goto LAB_001d0082;\n    case 'K':\n    case 'Q':\n      iVar12 = demangle_qualified(work,mangled,result,0,1);\n      if (iVar12 == 0) goto _L589;\n      goto LAB_001cfebc;\n    case 'X':\n    case 'Y':\n      *mangled = pcVar7 + 1;\n      iVar6 = consume_count_with_underscores(mangled);\n      if ((iVar6 == -1) ||\n         (((work->tmpl_argvec != (char **)0x0 && (work->ntmpl_args <= iVar6)) ||\n          (iVar12 = consume_count_with_underscores(mangled), iVar12 == -1)))) goto _L589;\n      if (work->tmpl_argvec == (char **)0x0) {\n        iVar12 = 1;\n        string_append_template_idx(result,iVar6);\n        goto LAB_001cfebc;\n      }\n      pcVar7 = work->tmpl_argvec[iVar6];\n      iVar12 = 1;\n    }\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      string_append(result,pcVar7);\n    }\n    goto LAB_001cfebc;\n  }\n  pcVar10 = *mangled;\n  bVar3 = true;\n  iVar6 = (int)*pcVar10;\n  iVar11 = local_70;\n  switch(iVar6 - 0x41U & 0xff) {\n  case 0:\n    goto _L530;\n  default:\n    goto _L731;\n  case 2:\n  case 0x15:\n  case 0x34:\n    if ((work->options & 2) != 0) {\n      if (decl.b != decl.p) {\n        string_prepend(&decl," ");\n        pcVar10 = *mangled;\n        iVar6 = (int)*pcVar10;\n      }\n      pcVar7 = demangle_qualifier(iVar6);\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        string_prepend(&decl,pcVar7);\n        pcVar10 = *mangled;\n      }\n    }\n    *mangled = pcVar10 + 1;\n    goto LAB_001cf820;\n  case 5:\n    *mangled = pcVar10 + 1;\n    if ((pcVar7 != decl.p) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      string_prepend(&decl,"(");\n      string_append(&decl,")");\n    }\n    iVar6 = demangle_nested_args(work,mangled,&decl);\n    if (iVar6 != 0) {\n      cVar5 = **mangled;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *mangled = *mangled + 1;\n        }\n        goto LAB_001cf820;\n      }\n    }\n    break;\n  case 6:\n    *mangled = pcVar10 + 1;\n    goto LAB_001cf820;\n  case 0xc:\n    *mangled = pcVar10 + 1;\n    string_append(&decl,")");\n    if (**mangled == 'Q') {\n      if (((byte)_sch_istable[0x51] & 4) != 0) goto LAB_001cfb41;\nLAB_001cfa0d:\n      iVar12 = demangle_qualified(work,mangled,&decl,0,0);\n      if (iVar12 == 0) goto LAB_001cf820;\n    }\n    else {\n      pcVar7 = "::";\n      if ((work->options & 4) != 0) {\n        pcVar7 = ".";\n      }\n      string_prepend(&decl,pcVar7);\n      bVar2 = **mangled;\n      if ((_sch_istable[bVar2] & 4) != 0) {\nLAB_001cfb41:\n        iVar6 = consume_count(mangled);\n        n = iVar6;\n        if (iVar6 != -1) {\n          pcVar7 = *mangled;\n          sVar8 = strlen(pcVar7);\n          if (iVar6 <= (int)sVar8) {\n            if (iVar6 != 0) {\n              string_prependn(&decl,pcVar7,iVar6);\n              pcVar7 = *mangled;\n              iVar6 = n;\n            }\n            *mangled = pcVar7 + iVar6;\n            goto LAB_001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        do_type(work,mangled,&temp);\n        pcVar7 = temp.p;\n        if (temp.b != temp.p) {\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n          pcVar7 = temp.b;\n        }\n        if (pcVar7 != (char *)0x0) {\n          free(pcVar7);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto LAB_001cfa0d;\n          break;\n        }\n        temp.e = (char *)0x0;\n        temp.p = (char *)0x0;\n        temp.b = (char *)0x0;\n        iVar12 = demangle_template(work,mangled,&temp,(string *)0x0,1,1);\n        if (iVar12 == 0) {\n          if (temp.b != (char *)0x0) {\n            free(temp.b);\n          }\n          goto LAB_001cf820;\n        }\n        if ((int)temp.p - (int)temp.b != 0) {\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n        }\n        if (temp.b != (char *)0x0) {\n          free(temp.b);\n        }\n      }\n    }\nLAB_001cfb87:\n    string_prepend(&decl,"(");\n    pcVar7 = *mangled;\n    cVar5 = *pcVar7;\n    if (cVar5 == 'V') {\n      local_78 = 2;\nLAB_001d0040:\n      pcVar10 = pcVar7 + 1;\n      *mangled = pcVar10;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto LAB_001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto LAB_001d0040;\n      }\n      local_78 = 0;\n      pcVar10 = pcVar7;\n    }\n    if (cVar5 == 'F') {\n      *mangled = pcVar10 + 1;\n      iVar6 = demangle_nested_args(work,mangled,&decl);\n      if ((iVar6 != 0) && (**mangled == '_')) {\n        *mangled = *mangled + 1;\n        if (((work->options & 2) != 0) && (local_78 != 0)) {\n          if (decl.b != decl.p) {\n            string_append(&decl," ");\n          }\n          pcVar7 = qualifier_string(local_78);\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            string_append(&decl,pcVar7);\n          }\n        }\n        goto LAB_001cf820;\n      }\n    }\n    break;\n  case 0xe:\n    *mangled = pcVar10 + 1;\n    string_prepend(&decl,"&&");\n    iVar11 = 3;\n    if (local_70 != 0) {\n      iVar11 = local_70;\n    }\n    goto LAB_001cf820;\n  case 0xf:\n  case 0x2f:\n    *mangled = pcVar10 + 1;\n    if ((work->options & 4) == 0) {\n      string_prepend(&decl,"*");\n    }\n    iVar11 = 1;\n    if (local_70 != 0) {\n      iVar11 = local_70;\n    }\n    goto LAB_001cf820;\n  case 0x11:\n    *mangled = pcVar10 + 1;\n    string_prepend(&decl,"&");\n    iVar11 = 2;\n    if (local_70 != 0) {\n      iVar11 = local_70;\n    }\n    goto LAB_001cf820;\n  case 0x13:\n    *mangled = pcVar10 + 1;\n    iVar6 = get_count(mangled,&n);\n    if (((iVar6 == 0) || (n < 0)) || (work->ntypes <= n)) break;\n    if (work->nproctypes < 1) goto LAB_001cfe64;\n    piVar9 = work->proctypevec;\n    piVar1 = piVar9 + work->nproctypes;\n    do {\n      if (n == *piVar9) {\n        iVar12 = 0;\n      }\n      piVar9 = piVar9 + 1;\n    } while (piVar1 != piVar9);\n    if (iVar12 != 0) {\nLAB_001cfe64:\n      push_processed_type(work,n);\n      bVar4 = true;\n      mangled = &remembered_type;\n      remembered_type = work->typevec[n];\n    }\n    goto LAB_001cf820;\n  }\n  iVar12 = 0;\n  goto LAB_001cf820;\nLAB_001d0082:\n  do {\n    cVar5 = *pcVar7;\n    switch(cVar5 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((work->options & 2) != 0) {\n        if (result->b != result->p) {\n          string_prepend(result," ");\n          pcVar7 = *mangled;\n          cVar5 = *pcVar7;\n        }\n        pcVar10 = demangle_qualifier((int)cVar5);\n        if ((pcVar10 != (char *)0x0) && (*pcVar10 != '\0')) {\n          string_prepend(result,pcVar10);\n          pcVar7 = *mangled;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *mangled = pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"__complex");\n      pcVar7 = *mangled;\n      break;\n    case '\x10':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"signed");\n      pcVar7 = *mangled;\n      break;\n    case '\x12':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"unsigned");\n      pcVar7 = *mangled;\n    }\n  } while( true );\n_L530:\n  *mangled = pcVar10 + 1;\n  if ((pcVar7 != decl.p) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n    string_prepend(&decl,"(");\n    string_append(&decl,")");\n  }\n  string_append(&decl,"[");\n  pcVar7 = *mangled;\n  if (*pcVar7 != '_') {\n    iVar12 = demangle_template_value_parm(work,mangled,&decl,tk_integral);\n    pcVar7 = *mangled;\n    if (*pcVar7 != '_') goto LAB_001cfa7a;\n  }\n  *mangled = pcVar7 + 1;\nLAB_001cfa7a:\n  string_append(&decl,"]");\n  goto LAB_001cf820;\ncode_r0x001d0176:\n  pcVar10 = pcVar7;\n  switch(cVar5) {\n  case '\0':\n  case '_':\n    goto _L656;\n  default:\n    goto _L589;\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    iVar11 = register_Btype(work);\n    temp.e = (char *)0x0;\n    temp.p = (char *)0x0;\n    temp.b = (char *)0x0;\n    iVar12 = demangle_class_name(work,mangled,&temp);\n    if (iVar12 != 0) {\n      iVar12 = (int)temp.p - (int)temp.b;\n      if (temp.b == temp.p) {\n        iVar12 = 0;\n      }\n      remember_Btype((work_stuff *)&work->btypevec,temp.b,iVar12,iVar11);\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      iVar12 = 1;\n      string_appends(result,&temp,(string *)temp.p);\n    }\n    goto joined_r0x001d0375;\n  case 'G':\n    pcVar10 = pcVar7 + 1;\n    *mangled = pcVar10;\n    if ((_sch_istable[(byte)pcVar7[1]] & 4) != 0) goto _L586;\n    goto _L589;\n  case 'I':\n_L586:\n    pcVar7 = pcVar10 + 1;\n    *mangled = pcVar7;\n    if (pcVar10[1] == '_') {\n      iVar12 = 0;\n      *mangled = pcVar10 + 2;\n      pcVar7 = pcVar10 + 2;\n      do {\n        pcVar10 = pcVar7;\n        cVar5 = *pcVar10;\n        pcVar7 = pcVar10;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto LAB_001d0200;\n        *(char *)((int)&temp.b + iVar12) = cVar5;\n        pcVar7 = pcVar10 + 1;\n        iVar12 = iVar12 + 1;\n        *mangled = pcVar7;\n      } while (iVar12 != 0x24);\n      cVar5 = pcVar10[1];\nLAB_001d0200:\n      if (cVar5 != '_') goto _L589;\n      *(undefined1 *)((int)&temp.b + iVar12) = 0;\n      *mangled = pcVar7 + 1;\n    }\n    else {\n      strncpy((char *)&temp,pcVar7,2);\n      temp.b._0_3_ = CONCAT12(0,(ushort)temp.b);\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *mangled = pcVar7 + sVar8;\n    }\n    sscanf((char *)&temp,"%x",&dec);\n    sprintf((char *)&temp,"int%u_t",dec);\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    if ((char)temp.b == '\0') goto _L656;\n    iVar12 = 4;\n    string_append(result,(char *)&temp);\n    iVar11 = 4;\n    break;\n  case 'b':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 5;\n    string_append(result,"bool");\n    iVar11 = 5;\n    break;\n  case 'c':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 6;\n    string_append(result,"char");\n    iVar11 = 6;\n    break;\n  case 'd':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 7;\n    string_append(result,"double");\n    iVar11 = 7;\n    break;\n  case 'f':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 7;\n    string_append(result,"float");\n    iVar11 = 7;\n    break;\n  case 'i':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"int");\n    iVar11 = 4;\n    break;\n  case 'l':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"long");\n    iVar11 = 4;\n    break;\n  case 'r':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 7;\n    string_append(result,"long double");\n    iVar11 = 7;\n    break;\n  case 's':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"short");\n    iVar11 = 4;\n    break;\n  case 't':\n    temp.e = (char *)0x0;\n    temp.p = (char *)0x0;\n    temp.b = (char *)0x0;\n    iVar12 = demangle_template(work,mangled,&temp,(string *)0x0,1,1);\n    string_appends(result,&temp,(string *)temp.p);\njoined_r0x001d0375:\n    if (temp.b != (char *)0x0) {\n      free(temp.b);\n    }\n    if (iVar12 != 0) {\n_L656:\n      iVar12 = 4;\n      iVar11 = 4;\n      break;\n    }\n_L589:\n    if (result->b == (char *)0x0) {\n      iVar12 = 0;\n      pcVar7 = decl.b;\n    }\n    else {\n      iVar12 = 0;\n      free(result->b);\n      result->p = (char *)0x0;\n      result->e = (char *)0x0;\n      result->b = (char *)0x0;\n      pcVar7 = decl.b;\n    }\n    goto LAB_001cfdb8;\n  case 'v':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"void");\n    iVar11 = 4;\n    break;\n  case 'w':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 6;\n    string_append(result,"wchar_t");\n    iVar11 = 6;\n    break;\n  case 'x':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"long long");\n    iVar11 = 4;\n  }\n  if (local_70 != 0) {\n    iVar11 = local_70;\n  }\nLAB_001cfebc:\n  local_70 = iVar11;\n  pcVar7 = decl.p;\n  if (decl.b != decl.p) {\n    string_append(result," ");\n    string_appends(result,&decl,(string *)decl.p);\n    pcVar7 = decl.b;\n  }\nLAB_001cfdb8:\n  if (pcVar7 != (char *)0x0) {\n    free(pcVar7);\n  }\n  if (bVar4) {\n    work->nproctypes = work->nproctypes + -1;\n  }\n  if ((iVar12 != 0) && (iVar12 = local_70, local_70 == 0)) {\n    iVar12 = 4;\n  }\n  return iVar12;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "do_type(work_stuff *work,char **mangled,string *result)" identifier (parameter_list "(work_stuff *work,char **mangled,string *result)" ( (parameter_declaration "work_stuff *work" type_identifier (pointer_declarator "*work" * identifier)) , (parameter_declaration "char **mangled" primitive_type (pointer_declarator "**mangled" * (pointer_declarator "*mangled" * identifier))) , (parameter_declaration "string *result" type_identifier (pointer_declarator "*result" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  byte bVar2;\n  bool bVar3;\n  bool bVar4;\n  char cVar5;\n  int iVar6;\n  char *pcVar7;\n  size_t sVar8;\n  int *piVar9;\n  char *pcVar10;\n  int iVar11;\n  int iVar12;\n  int local_78;\n  int local_70;\n  int n;\n  char *remembered_type;\n  uint dec;\n  string decl;\n  string temp;\n  \n  iVar12 = 1;\n  result->e = (char *)0x0;\n  decl.e = (char *)0x0;\n  decl.p = (char *)0x0;\n  decl.b = (char *)0x0;\n  result->p = (char *)0x0;\n  result->b = (char *)0x0;\n  local_70 = 0;\n  bVar4 = false;\n  iVar11 = local_70;\nLAB_001cf820:\n  local_70 = iVar11;\n  pcVar7 = decl.b;\n  bVar3 = false;\n_L731:\n  if ((bVar3) || (iVar12 == 0)) {\n    if (iVar12 == 0) goto _L589;\n    pcVar7 = *mangled;\n    iVar11 = local_70;\n    switch(*pcVar7) {\n    case 'B':\n      *mangled = pcVar7 + 1;\n      iVar6 = get_count(mangled,&n);\n      if (((iVar6 == 0) || (n < 0)) || (work->numb <= n)) goto _L589;\n      pcVar7 = work->btypevec[n];\n      break;\n    default:\n      dec = 0;\n      goto LAB_001d0082;\n    case 'K':\n    case 'Q':\n      iVar12 = demangle_qualified(work,mangled,result,0,1);\n      if (iVar12 == 0) goto _L589;\n      goto LAB_001cfebc;\n    case 'X':\n    case 'Y':\n      *mangled = pcVar7 + 1;\n      iVar6 = consume_count_with_underscores(mangled);\n      if ((iVar6 == -1) ||\n         (((work->tmpl_argvec != (char **)0x0 && (work->ntmpl_args <= iVar6)) ||\n          (iVar12 = consume_count_with_underscores(mangled), iVar12 == -1)))) goto _L589;\n      if (work->tmpl_argvec == (char **)0x0) {\n        iVar12 = 1;\n        string_append_template_idx(result,iVar6);\n        goto LAB_001cfebc;\n      }\n      pcVar7 = work->tmpl_argvec[iVar6];\n      iVar12 = 1;\n    }\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      string_append(result,pcVar7);\n    }\n    goto LAB_001cfebc;\n  }\n  pcVar10 = *mangled;\n  bVar3 = true;\n  iVar6 = (int)*pcVar10;\n  iVar11 = local_70;\n  switch(iVar6 - 0x41U & 0xff) {\n  case 0:\n    goto _L530;\n  default:\n    goto _L731;\n  case 2:\n  case 0x15:\n  case 0x34:\n    if ((work->options & 2) != 0) {\n      if (decl.b != decl.p) {\n        string_prepend(&decl," ");\n        pcVar10 = *mangled;\n        iVar6 = (int)*pcVar10;\n      }\n      pcVar7 = demangle_qualifier(iVar6);\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        string_prepend(&decl,pcVar7);\n        pcVar10 = *mangled;\n      }\n    }\n    *mangled = pcVar10 + 1;\n    goto LAB_001cf820;\n  case 5:\n    *mangled = pcVar10 + 1;\n    if ((pcVar7 != decl.p) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      string_prepend(&decl,"(");\n      string_append(&decl,")");\n    }\n    iVar6 = demangle_nested_args(work,mangled,&decl);\n    if (iVar6 != 0) {\n      cVar5 = **mangled;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *mangled = *mangled + 1;\n        }\n        goto LAB_001cf820;\n      }\n    }\n    break;\n  case 6:\n    *mangled = pcVar10 + 1;\n    goto LAB_001cf820;\n  case 0xc:\n    *mangled = pcVar10 + 1;\n    string_append(&decl,")");\n    if (**mangled == 'Q') {\n      if (((byte)_sch_istable[0x51] & 4) != 0) goto LAB_001cfb41;\nLAB_001cfa0d:\n      iVar12 = demangle_qualified(work,mangled,&decl,0,0);\n      if (iVar12 == 0) goto LAB_001cf820;\n    }\n    else {\n      pcVar7 = "::";\n      if ((work->options & 4) != 0) {\n        pcVar7 = ".";\n      }\n      string_prepend(&decl,pcVar7);\n      bVar2 = **mangled;\n      if ((_sch_istable[bVar2] & 4) != 0) {\nLAB_001cfb41:\n        iVar6 = consume_count(mangled);\n        n = iVar6;\n        if (iVar6 != -1) {\n          pcVar7 = *mangled;\n          sVar8 = strlen(pcVar7);\n          if (iVar6 <= (int)sVar8) {\n            if (iVar6 != 0) {\n              string_prependn(&decl,pcVar7,iVar6);\n              pcVar7 = *mangled;\n              iVar6 = n;\n            }\n            *mangled = pcVar7 + iVar6;\n            goto LAB_001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        do_type(work,mangled,&temp);\n        pcVar7 = temp.p;\n        if (temp.b != temp.p) {\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n          pcVar7 = temp.b;\n        }\n        if (pcVar7 != (char *)0x0) {\n          free(pcVar7);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto LAB_001cfa0d;\n          break;\n        }\n        temp.e = (char *)0x0;\n        temp.p = (char *)0x0;\n        temp.b = (char *)0x0;\n        iVar12 = demangle_template(work,mangled,&temp,(string *)0x0,1,1);\n        if (iVar12 == 0) {\n          if (temp.b != (char *)0x0) {\n            free(temp.b);\n          }\n          goto LAB_001cf820;\n        }\n        if ((int)temp.p - (int)temp.b != 0) {\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n        }\n        if (temp.b != (char *)0x0) {\n          free(temp.b);\n        }\n      }\n    }\nLAB_001cfb87:\n    string_prepend(&decl,"(");\n    pcVar7 = *mangled;\n    cVar5 = *pcVar7;\n    if (cVar5 == 'V') {\n      local_78 = 2;\nLAB_001d0040:\n      pcVar10 = pcVar7 + 1;\n      *mangled = pcVar10;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto LAB_001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto LAB_001d0040;\n      }\n      local_78 = 0;\n      pcVar10 = pcVar7;\n    }\n    if (cVar5 == 'F') {\n      *mangled = pcVar10 + 1;\n      iVar6 = demangle_nested_args(work,mangled,&decl);\n      if ((iVar6 != 0) && (**mangled == '_')) {\n        *mangled = *mangled + 1;\n        if (((work->options & 2) != 0) && (local_78 != 0)) {\n          if (decl.b != decl.p) {\n            string_append(&decl," ");\n          }\n          pcVar7 = qualifier_string(local_78);\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            string_append(&decl,pcVar7);\n          }\n        }\n        goto LAB_001cf820;\n      }\n    }\n    break;\n  case 0xe:\n    *mangled = pcVar10 + 1;\n    string_prepend(&decl,"&&");\n    iVar11 = 3;\n    if (local_70 != 0) {\n      iVar11 = local_70;\n    }\n    goto LAB_001cf820;\n  case 0xf:\n  case 0x2f:\n    *mangled = pcVar10 + 1;\n    if ((work->options & 4) == 0) {\n      string_prepend(&decl,"*");\n    }\n    iVar11 = 1;\n    if (local_70 != 0) {\n      iVar11 = local_70;\n    }\n    goto LAB_001cf820;\n  case 0x11:\n    *mangled = pcVar10 + 1;\n    string_prepend(&decl,"&");\n    iVar11 = 2;\n    if (local_70 != 0) {\n      iVar11 = local_70;\n    }\n    goto LAB_001cf820;\n  case 0x13:\n    *mangled = pcVar10 + 1;\n    iVar6 = get_count(mangled,&n);\n    if (((iVar6 == 0) || (n < 0)) || (work->ntypes <= n)) break;\n    if (work->nproctypes < 1) goto LAB_001cfe64;\n    piVar9 = work->proctypevec;\n    piVar1 = piVar9 + work->nproctypes;\n    do {\n      if (n == *piVar9) {\n        iVar12 = 0;\n      }\n      piVar9 = piVar9 + 1;\n    } while (piVar1 != piVar9);\n    if (iVar12 != 0) {\nLAB_001cfe64:\n      push_processed_type(work,n);\n      bVar4 = true;\n      mangled = &remembered_type;\n      remembered_type = work->typevec[n];\n    }\n    goto LAB_001cf820;\n  }\n  iVar12 = 0;\n  goto LAB_001cf820;\nLAB_001d0082:\n  do {\n    cVar5 = *pcVar7;\n    switch(cVar5 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((work->options & 2) != 0) {\n        if (result->b != result->p) {\n          string_prepend(result," ");\n          pcVar7 = *mangled;\n          cVar5 = *pcVar7;\n        }\n        pcVar10 = demangle_qualifier((int)cVar5);\n        if ((pcVar10 != (char *)0x0) && (*pcVar10 != '\0')) {\n          string_prepend(result,pcVar10);\n          pcVar7 = *mangled;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *mangled = pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"__complex");\n      pcVar7 = *mangled;\n      break;\n    case '\x10':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"signed");\n      pcVar7 = *mangled;\n      break;\n    case '\x12':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"unsigned");\n      pcVar7 = *mangled;\n    }\n  } while( true );\n_L530:\n  *mangled = pcVar10 + 1;\n  if ((pcVar7 != decl.p) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n    string_prepend(&decl,"(");\n    string_append(&decl,")");\n  }\n  string_append(&decl,"[");\n  pcVar7 = *mangled;\n  if (*pcVar7 != '_') {\n    iVar12 = demangle_template_value_parm(work,mangled,&decl,tk_integral);\n    pcVar7 = *mangled;\n    if (*pcVar7 != '_') goto LAB_001cfa7a;\n  }\n  *mangled = pcVar7 + 1;\nLAB_001cfa7a:\n  string_append(&decl,"]");\n  goto LAB_001cf820;\ncode_r0x001d0176:\n  pcVar10 = pcVar7;\n  switch(cVar5) {\n  case '\0':\n  case '_':\n    goto _L656;\n  default:\n    goto _L589;\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    iVar11 = register_Btype(work);\n    temp.e = (char *)0x0;\n    temp.p = (char *)0x0;\n    temp.b = (char *)0x0;\n    iVar12 = demangle_class_name(work,mangled,&temp);\n    if (iVar12 != 0) {\n      iVar12 = (int)temp.p - (int)temp.b;\n      if (temp.b == temp.p) {\n        iVar12 = 0;\n      }\n      remember_Btype((work_stuff *)&work->btypevec,temp.b,iVar12,iVar11);\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      iVar12 = 1;\n      string_appends(result,&temp,(string *)temp.p);\n    }\n    goto joined_r0x001d0375;\n  case 'G':\n    pcVar10 = pcVar7 + 1;\n    *mangled = pcVar10;\n    if ((_sch_istable[(byte)pcVar7[1]] & 4) != 0) goto _L586;\n    goto _L589;\n  case 'I':\n_L586:\n    pcVar7 = pcVar10 + 1;\n    *mangled = pcVar7;\n    if (pcVar10[1] == '_') {\n      iVar12 = 0;\n      *mangled = pcVar10 + 2;\n      pcVar7 = pcVar10 + 2;\n      do {\n        pcVar10 = pcVar7;\n        cVar5 = *pcVar10;\n        pcVar7 = pcVar10;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto LAB_001d0200;\n        *(char *)((int)&temp.b + iVar12) = cVar5;\n        pcVar7 = pcVar10 + 1;\n        iVar12 = iVar12 + 1;\n        *mangled = pcVar7;\n      } while (iVar12 != 0x24);\n      cVar5 = pcVar10[1];\nLAB_001d0200:\n      if (cVar5 != '_') goto _L589;\n      *(undefined1 *)((int)&temp.b + iVar12) = 0;\n      *mangled = pcVar7 + 1;\n    }\n    else {\n      strncpy((char *)&temp,pcVar7,2);\n      temp.b._0_3_ = CONCAT12(0,(ushort)temp.b);\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *mangled = pcVar7 + sVar8;\n    }\n    sscanf((char *)&temp,"%x",&dec);\n    sprintf((char *)&temp,"int%u_t",dec);\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    if ((char)temp.b == '\0') goto _L656;\n    iVar12 = 4;\n    string_append(result,(char *)&temp);\n    iVar11 = 4;\n    break;\n  case 'b':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 5;\n    string_append(result,"bool");\n    iVar11 = 5;\n    break;\n  case 'c':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 6;\n    string_append(result,"char");\n    iVar11 = 6;\n    break;\n  case 'd':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 7;\n    string_append(result,"double");\n    iVar11 = 7;\n    break;\n  case 'f':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 7;\n    string_append(result,"float");\n    iVar11 = 7;\n    break;\n  case 'i':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"int");\n    iVar11 = 4;\n    break;\n  case 'l':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"long");\n    iVar11 = 4;\n    break;\n  case 'r':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 7;\n    string_append(result,"long double");\n    iVar11 = 7;\n    break;\n  case 's':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"short");\n    iVar11 = 4;\n    break;\n  case 't':\n    temp.e = (char *)0x0;\n    temp.p = (char *)0x0;\n    temp.b = (char *)0x0;\n    iVar12 = demangle_template(work,mangled,&temp,(string *)0x0,1,1);\n    string_appends(result,&temp,(string *)temp.p);\njoined_r0x001d0375:\n    if (temp.b != (char *)0x0) {\n      free(temp.b);\n    }\n    if (iVar12 != 0) {\n_L656:\n      iVar12 = 4;\n      iVar11 = 4;\n      break;\n    }\n_L589:\n    if (result->b == (char *)0x0) {\n      iVar12 = 0;\n      pcVar7 = decl.b;\n    }\n    else {\n      iVar12 = 0;\n      free(result->b);\n      result->p = (char *)0x0;\n      result->e = (char *)0x0;\n      result->b = (char *)0x0;\n      pcVar7 = decl.b;\n    }\n    goto LAB_001cfdb8;\n  case 'v':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"void");\n    iVar11 = 4;\n    break;\n  case 'w':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 6;\n    string_append(result,"wchar_t");\n    iVar11 = 6;\n    break;\n  case 'x':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"long long");\n    iVar11 = 4;\n  }\n  if (local_70 != 0) {\n    iVar11 = local_70;\n  }\nLAB_001cfebc:\n  local_70 = iVar11;\n  pcVar7 = decl.p;\n  if (decl.b != decl.p) {\n    string_append(result," ");\n    string_appends(result,&decl,(string *)decl.p);\n    pcVar7 = decl.b;\n  }\nLAB_001cfdb8:\n  if (pcVar7 != (char *)0x0) {\n    free(pcVar7);\n  }\n  if (bVar4) {\n    work->nproctypes = work->nproctypes + -1;\n  }\n  if ((iVar12 != 0) && (iVar12 = local_70, local_70 == 0)) {\n    iVar12 = 4;\n  }\n  return iVar12;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int local_78;" primitive_type identifier ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "int n;" primitive_type identifier ;) (declaration "char *remembered_type;" primitive_type (pointer_declarator "*remembered_type" * identifier) ;) (declaration "uint dec;" type_identifier identifier ;) (declaration "string decl;" type_identifier identifier ;) (declaration "string temp;" type_identifier identifier ;) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (expression_statement "result->e = (char *)0x0;" (assignment_expression "result->e = (char *)0x0" (field_expression "result->e" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "decl.e = (char *)0x0;" (assignment_expression "decl.e = (char *)0x0" (field_expression "decl.e" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "decl.p = (char *)0x0;" (assignment_expression "decl.p = (char *)0x0" (field_expression "decl.p" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "decl.b = (char *)0x0;" (assignment_expression "decl.b = (char *)0x0" (field_expression "decl.b" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "result->p = (char *)0x0;" (assignment_expression "result->p = (char *)0x0" (field_expression "result->p" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "result->b = (char *)0x0;" (assignment_expression "result->b = (char *)0x0" (field_expression "result->b" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (expression_statement "iVar11 = local_70;" (assignment_expression "iVar11 = local_70" identifier = identifier) ;) (labeled_statement "LAB_001cf820:\n  local_70 = iVar11;" statement_identifier : (expression_statement "local_70 = iVar11;" (assignment_expression "local_70 = iVar11" identifier = identifier) ;)) (expression_statement "pcVar7 = decl.b;" (assignment_expression "pcVar7 = decl.b" identifier = (field_expression "decl.b" identifier . field_identifier)) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (labeled_statement "_L731:\n  if ((bVar3) || (iVar12 == 0)) {\n    if (iVar12 == 0) goto _L589;\n    pcVar7 = *mangled;\n    iVar11 = local_70;\n    switch(*pcVar7) {\n    case 'B':\n      *mangled = pcVar7 + 1;\n      iVar6 = get_count(mangled,&n);\n      if (((iVar6 == 0) || (n < 0)) || (work->numb <= n)) goto _L589;\n      pcVar7 = work->btypevec[n];\n      break;\n    default:\n      dec = 0;\n      goto LAB_001d0082;\n    case 'K':\n    case 'Q':\n      iVar12 = demangle_qualified(work,mangled,result,0,1);\n      if (iVar12 == 0) goto _L589;\n      goto LAB_001cfebc;\n    case 'X':\n    case 'Y':\n      *mangled = pcVar7 + 1;\n      iVar6 = consume_count_with_underscores(mangled);\n      if ((iVar6 == -1) ||\n         (((work->tmpl_argvec != (char **)0x0 && (work->ntmpl_args <= iVar6)) ||\n          (iVar12 = consume_count_with_underscores(mangled), iVar12 == -1)))) goto _L589;\n      if (work->tmpl_argvec == (char **)0x0) {\n        iVar12 = 1;\n        string_append_template_idx(result,iVar6);\n        goto LAB_001cfebc;\n      }\n      pcVar7 = work->tmpl_argvec[iVar6];\n      iVar12 = 1;\n    }\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      string_append(result,pcVar7);\n    }\n    goto LAB_001cfebc;\n  }" statement_identifier : (if_statement "if ((bVar3) || (iVar12 == 0)) {\n    if (iVar12 == 0) goto _L589;\n    pcVar7 = *mangled;\n    iVar11 = local_70;\n    switch(*pcVar7) {\n    case 'B':\n      *mangled = pcVar7 + 1;\n      iVar6 = get_count(mangled,&n);\n      if (((iVar6 == 0) || (n < 0)) || (work->numb <= n)) goto _L589;\n      pcVar7 = work->btypevec[n];\n      break;\n    default:\n      dec = 0;\n      goto LAB_001d0082;\n    case 'K':\n    case 'Q':\n      iVar12 = demangle_qualified(work,mangled,result,0,1);\n      if (iVar12 == 0) goto _L589;\n      goto LAB_001cfebc;\n    case 'X':\n    case 'Y':\n      *mangled = pcVar7 + 1;\n      iVar6 = consume_count_with_underscores(mangled);\n      if ((iVar6 == -1) ||\n         (((work->tmpl_argvec != (char **)0x0 && (work->ntmpl_args <= iVar6)) ||\n          (iVar12 = consume_count_with_underscores(mangled), iVar12 == -1)))) goto _L589;\n      if (work->tmpl_argvec == (char **)0x0) {\n        iVar12 = 1;\n        string_append_template_idx(result,iVar6);\n        goto LAB_001cfebc;\n      }\n      pcVar7 = work->tmpl_argvec[iVar6];\n      iVar12 = 1;\n    }\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      string_append(result,pcVar7);\n    }\n    goto LAB_001cfebc;\n  }" if (parenthesized_expression "((bVar3) || (iVar12 == 0))" ( (binary_expression "(bVar3) || (iVar12 == 0)" (parenthesized_expression "(bVar3)" ( identifier )) || (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    if (iVar12 == 0) goto _L589;\n    pcVar7 = *mangled;\n    iVar11 = local_70;\n    switch(*pcVar7) {\n    case 'B':\n      *mangled = pcVar7 + 1;\n      iVar6 = get_count(mangled,&n);\n      if (((iVar6 == 0) || (n < 0)) || (work->numb <= n)) goto _L589;\n      pcVar7 = work->btypevec[n];\n      break;\n    default:\n      dec = 0;\n      goto LAB_001d0082;\n    case 'K':\n    case 'Q':\n      iVar12 = demangle_qualified(work,mangled,result,0,1);\n      if (iVar12 == 0) goto _L589;\n      goto LAB_001cfebc;\n    case 'X':\n    case 'Y':\n      *mangled = pcVar7 + 1;\n      iVar6 = consume_count_with_underscores(mangled);\n      if ((iVar6 == -1) ||\n         (((work->tmpl_argvec != (char **)0x0 && (work->ntmpl_args <= iVar6)) ||\n          (iVar12 = consume_count_with_underscores(mangled), iVar12 == -1)))) goto _L589;\n      if (work->tmpl_argvec == (char **)0x0) {\n        iVar12 = 1;\n        string_append_template_idx(result,iVar6);\n        goto LAB_001cfebc;\n      }\n      pcVar7 = work->tmpl_argvec[iVar6];\n      iVar12 = 1;\n    }\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      string_append(result,pcVar7);\n    }\n    goto LAB_001cfebc;\n  }" { (if_statement "if (iVar12 == 0) goto _L589;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto _L589;" goto statement_identifier ;)) (expression_statement "pcVar7 = *mangled;" (assignment_expression "pcVar7 = *mangled" identifier = (pointer_expression "*mangled" * identifier)) ;) (expression_statement "iVar11 = local_70;" (assignment_expression "iVar11 = local_70" identifier = identifier) ;) (switch_statement "switch(*pcVar7) {\n    case 'B':\n      *mangled = pcVar7 + 1;\n      iVar6 = get_count(mangled,&n);\n      if (((iVar6 == 0) || (n < 0)) || (work->numb <= n)) goto _L589;\n      pcVar7 = work->btypevec[n];\n      break;\n    default:\n      dec = 0;\n      goto LAB_001d0082;\n    case 'K':\n    case 'Q':\n      iVar12 = demangle_qualified(work,mangled,result,0,1);\n      if (iVar12 == 0) goto _L589;\n      goto LAB_001cfebc;\n    case 'X':\n    case 'Y':\n      *mangled = pcVar7 + 1;\n      iVar6 = consume_count_with_underscores(mangled);\n      if ((iVar6 == -1) ||\n         (((work->tmpl_argvec != (char **)0x0 && (work->ntmpl_args <= iVar6)) ||\n          (iVar12 = consume_count_with_underscores(mangled), iVar12 == -1)))) goto _L589;\n      if (work->tmpl_argvec == (char **)0x0) {\n        iVar12 = 1;\n        string_append_template_idx(result,iVar6);\n        goto LAB_001cfebc;\n      }\n      pcVar7 = work->tmpl_argvec[iVar6];\n      iVar12 = 1;\n    }" switch (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (compound_statement "{\n    case 'B':\n      *mangled = pcVar7 + 1;\n      iVar6 = get_count(mangled,&n);\n      if (((iVar6 == 0) || (n < 0)) || (work->numb <= n)) goto _L589;\n      pcVar7 = work->btypevec[n];\n      break;\n    default:\n      dec = 0;\n      goto LAB_001d0082;\n    case 'K':\n    case 'Q':\n      iVar12 = demangle_qualified(work,mangled,result,0,1);\n      if (iVar12 == 0) goto _L589;\n      goto LAB_001cfebc;\n    case 'X':\n    case 'Y':\n      *mangled = pcVar7 + 1;\n      iVar6 = consume_count_with_underscores(mangled);\n      if ((iVar6 == -1) ||\n         (((work->tmpl_argvec != (char **)0x0 && (work->ntmpl_args <= iVar6)) ||\n          (iVar12 = consume_count_with_underscores(mangled), iVar12 == -1)))) goto _L589;\n      if (work->tmpl_argvec == (char **)0x0) {\n        iVar12 = 1;\n        string_append_template_idx(result,iVar6);\n        goto LAB_001cfebc;\n      }\n      pcVar7 = work->tmpl_argvec[iVar6];\n      iVar12 = 1;\n    }" { (case_statement "case 'B':\n      *mangled = pcVar7 + 1;\n      iVar6 = get_count(mangled,&n);\n      if (((iVar6 == 0) || (n < 0)) || (work->numb <= n)) goto _L589;\n      pcVar7 = work->btypevec[n];\n      break;" case (char_literal "'B'" ' character ') : (expression_statement "*mangled = pcVar7 + 1;" (assignment_expression "*mangled = pcVar7 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "iVar6 = get_count(mangled,&n);" (assignment_expression "iVar6 = get_count(mangled,&n)" identifier = (call_expression "get_count(mangled,&n)" identifier (argument_list "(mangled,&n)" ( identifier , (pointer_expression "&n" & identifier) )))) ;) (if_statement "if (((iVar6 == 0) || (n < 0)) || (work->numb <= n)) goto _L589;" if (parenthesized_expression "(((iVar6 == 0) || (n < 0)) || (work->numb <= n))" ( (binary_expression "((iVar6 == 0) || (n < 0)) || (work->numb <= n)" (parenthesized_expression "((iVar6 == 0) || (n < 0))" ( (binary_expression "(iVar6 == 0) || (n < 0)" (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) || (parenthesized_expression "(n < 0)" ( (binary_expression "n < 0" identifier < number_literal) ))) )) || (parenthesized_expression "(work->numb <= n)" ( (binary_expression "work->numb <= n" (field_expression "work->numb" identifier -> field_identifier) <= identifier) ))) )) (goto_statement "goto _L589;" goto statement_identifier ;)) (expression_statement "pcVar7 = work->btypevec[n];" (assignment_expression "pcVar7 = work->btypevec[n]" identifier = (subscript_expression "work->btypevec[n]" (field_expression "work->btypevec" identifier -> field_identifier) [ identifier ])) ;) (break_statement "break;" break ;)) (case_statement "default:\n      dec = 0;\n      goto LAB_001d0082;" default : (expression_statement "dec = 0;" (assignment_expression "dec = 0" identifier = number_literal) ;) (goto_statement "goto LAB_001d0082;" goto statement_identifier ;)) (case_statement "case 'K':" case (char_literal "'K'" ' character ') :) (case_statement "case 'Q':\n      iVar12 = demangle_qualified(work,mangled,result,0,1);\n      if (iVar12 == 0) goto _L589;\n      goto LAB_001cfebc;" case (char_literal "'Q'" ' character ') : (expression_statement "iVar12 = demangle_qualified(work,mangled,result,0,1);" (assignment_expression "iVar12 = demangle_qualified(work,mangled,result,0,1)" identifier = (call_expression "demangle_qualified(work,mangled,result,0,1)" identifier (argument_list "(work,mangled,result,0,1)" ( identifier , identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar12 == 0) goto _L589;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto _L589;" goto statement_identifier ;)) (goto_statement "goto LAB_001cfebc;" goto statement_identifier ;)) (case_statement "case 'X':" case (char_literal "'X'" ' character ') :) (case_statement "case 'Y':\n      *mangled = pcVar7 + 1;\n      iVar6 = consume_count_with_underscores(mangled);\n      if ((iVar6 == -1) ||\n         (((work->tmpl_argvec != (char **)0x0 && (work->ntmpl_args <= iVar6)) ||\n          (iVar12 = consume_count_with_underscores(mangled), iVar12 == -1)))) goto _L589;\n      if (work->tmpl_argvec == (char **)0x0) {\n        iVar12 = 1;\n        string_append_template_idx(result,iVar6);\n        goto LAB_001cfebc;\n      }\n      pcVar7 = work->tmpl_argvec[iVar6];\n      iVar12 = 1;" case (char_literal "'Y'" ' character ') : (expression_statement "*mangled = pcVar7 + 1;" (assignment_expression "*mangled = pcVar7 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "iVar6 = consume_count_with_underscores(mangled);" (assignment_expression "iVar6 = consume_count_with_underscores(mangled)" identifier = (call_expression "consume_count_with_underscores(mangled)" identifier (argument_list "(mangled)" ( identifier )))) ;) (if_statement "if ((iVar6 == -1) ||\n         (((work->tmpl_argvec != (char **)0x0 && (work->ntmpl_args <= iVar6)) ||\n          (iVar12 = consume_count_with_underscores(mangled), iVar12 == -1)))) goto _L589;" if (parenthesized_expression "((iVar6 == -1) ||\n         (((work->tmpl_argvec != (char **)0x0 && (work->ntmpl_args <= iVar6)) ||\n          (iVar12 = consume_count_with_underscores(mangled), iVar12 == -1))))" ( (binary_expression "(iVar6 == -1) ||\n         (((work->tmpl_argvec != (char **)0x0 && (work->ntmpl_args <= iVar6)) ||\n          (iVar12 = consume_count_with_underscores(mangled), iVar12 == -1)))" (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) || (parenthesized_expression "(((work->tmpl_argvec != (char **)0x0 && (work->ntmpl_args <= iVar6)) ||\n          (iVar12 = consume_count_with_underscores(mangled), iVar12 == -1)))" ( (parenthesized_expression "((work->tmpl_argvec != (char **)0x0 && (work->ntmpl_args <= iVar6)) ||\n          (iVar12 = consume_count_with_underscores(mangled), iVar12 == -1))" ( (binary_expression "(work->tmpl_argvec != (char **)0x0 && (work->ntmpl_args <= iVar6)) ||\n          (iVar12 = consume_count_with_underscores(mangled), iVar12 == -1)" (parenthesized_expression "(work->tmpl_argvec != (char **)0x0 && (work->ntmpl_args <= iVar6))" ( (binary_expression "work->tmpl_argvec != (char **)0x0 && (work->ntmpl_args <= iVar6)" (binary_expression "work->tmpl_argvec != (char **)0x0" (field_expression "work->tmpl_argvec" identifier -> field_identifier) != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) && (parenthesized_expression "(work->ntmpl_args <= iVar6)" ( (binary_expression "work->ntmpl_args <= iVar6" (field_expression "work->ntmpl_args" identifier -> field_identifier) <= identifier) ))) )) || (parenthesized_expression "(iVar12 = consume_count_with_underscores(mangled), iVar12 == -1)" ( (comma_expression "iVar12 = consume_count_with_underscores(mangled), iVar12 == -1" (assignment_expression "iVar12 = consume_count_with_underscores(mangled)" identifier = (call_expression "consume_count_with_underscores(mangled)" identifier (argument_list "(mangled)" ( identifier )))) , (binary_expression "iVar12 == -1" identifier == number_literal)) ))) )) ))) )) (goto_statement "goto _L589;" goto statement_identifier ;)) (if_statement "if (work->tmpl_argvec == (char **)0x0) {\n        iVar12 = 1;\n        string_append_template_idx(result,iVar6);\n        goto LAB_001cfebc;\n      }" if (parenthesized_expression "(work->tmpl_argvec == (char **)0x0)" ( (binary_expression "work->tmpl_argvec == (char **)0x0" (field_expression "work->tmpl_argvec" identifier -> field_identifier) == (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n        iVar12 = 1;\n        string_append_template_idx(result,iVar6);\n        goto LAB_001cfebc;\n      }" { (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (expression_statement "string_append_template_idx(result,iVar6);" (call_expression "string_append_template_idx(result,iVar6)" identifier (argument_list "(result,iVar6)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_001cfebc;" goto statement_identifier ;) })) (expression_statement "pcVar7 = work->tmpl_argvec[iVar6];" (assignment_expression "pcVar7 = work->tmpl_argvec[iVar6]" identifier = (subscript_expression "work->tmpl_argvec[iVar6]" (field_expression "work->tmpl_argvec" identifier -> field_identifier) [ identifier ])) ;) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;)) })) (if_statement "if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      string_append(result,pcVar7);\n    }" if (parenthesized_expression "((pcVar7 != (char *)0x0) && (*pcVar7 != '\0'))" ( (binary_expression "(pcVar7 != (char *)0x0) && (*pcVar7 != '\0')" (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*pcVar7 != '\0')" ( (binary_expression "*pcVar7 != '\0'" (pointer_expression "*pcVar7" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      string_append(result,pcVar7);\n    }" { (expression_statement "string_append(result,pcVar7);" (call_expression "string_append(result,pcVar7)" identifier (argument_list "(result,pcVar7)" ( identifier , identifier ))) ;) })) (goto_statement "goto LAB_001cfebc;" goto statement_identifier ;) }))) (expression_statement "pcVar10 = *mangled;" (assignment_expression "pcVar10 = *mangled" identifier = (pointer_expression "*mangled" * identifier)) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (expression_statement "iVar6 = (int)*pcVar10;" (assignment_expression "iVar6 = (int)*pcVar10" identifier = (cast_expression "(int)*pcVar10" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar10" * identifier))) ;) (expression_statement "iVar11 = local_70;" (assignment_expression "iVar11 = local_70" identifier = identifier) ;) (switch_statement "switch(iVar6 - 0x41U & 0xff) {\n  case 0:\n    goto _L530;\n  default:\n    goto _L731;\n  case 2:\n  case 0x15:\n  case 0x34:\n    if ((work->options & 2) != 0) {\n      if (decl.b != decl.p) {\n        string_prepend(&decl," ");\n        pcVar10 = *mangled;\n        iVar6 = (int)*pcVar10;\n      }\n      pcVar7 = demangle_qualifier(iVar6);\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        string_prepend(&decl,pcVar7);\n        pcVar10 = *mangled;\n      }\n    }\n    *mangled = pcVar10 + 1;\n    goto LAB_001cf820;\n  case 5:\n    *mangled = pcVar10 + 1;\n    if ((pcVar7 != decl.p) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      string_prepend(&decl,"(");\n      string_append(&decl,")");\n    }\n    iVar6 = demangle_nested_args(work,mangled,&decl);\n    if (iVar6 != 0) {\n      cVar5 = **mangled;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *mangled = *mangled + 1;\n        }\n        goto LAB_001cf820;\n      }\n    }\n    break;\n  case 6:\n    *mangled = pcVar10 + 1;\n    goto LAB_001cf820;\n  case 0xc:\n    *mangled = pcVar10 + 1;\n    string_append(&decl,")");\n    if (**mangled == 'Q') {\n      if (((byte)_sch_istable[0x51] & 4) != 0) goto LAB_001cfb41;\nLAB_001cfa0d:\n      iVar12 = demangle_qualified(work,mangled,&decl,0,0);\n      if (iVar12 == 0) goto LAB_001cf820;\n    }\n    else {\n      pcVar7 = "::";\n      if ((work->options & 4) != 0) {\n        pcVar7 = ".";\n      }\n      string_prepend(&decl,pcVar7);\n      bVar2 = **mangled;\n      if ((_sch_istable[bVar2] & 4) != 0) {\nLAB_001cfb41:\n        iVar6 = consume_count(mangled);\n        n = iVar6;\n        if (iVar6 != -1) {\n          pcVar7 = *mangled;\n          sVar8 = strlen(pcVar7);\n          if (iVar6 <= (int)sVar8) {\n            if (iVar6 != 0) {\n              string_prependn(&decl,pcVar7,iVar6);\n              pcVar7 = *mangled;\n              iVar6 = n;\n            }\n            *mangled = pcVar7 + iVar6;\n            goto LAB_001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        do_type(work,mangled,&temp);\n        pcVar7 = temp.p;\n        if (temp.b != temp.p) {\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n          pcVar7 = temp.b;\n        }\n        if (pcVar7 != (char *)0x0) {\n          free(pcVar7);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto LAB_001cfa0d;\n          break;\n        }\n        temp.e = (char *)0x0;\n        temp.p = (char *)0x0;\n        temp.b = (char *)0x0;\n        iVar12 = demangle_template(work,mangled,&temp,(string *)0x0,1,1);\n        if (iVar12 == 0) {\n          if (temp.b != (char *)0x0) {\n            free(temp.b);\n          }\n          goto LAB_001cf820;\n        }\n        if ((int)temp.p - (int)temp.b != 0) {\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n        }\n        if (temp.b != (char *)0x0) {\n          free(temp.b);\n        }\n      }\n    }\nLAB_001cfb87:\n    string_prepend(&decl,"(");\n    pcVar7 = *mangled;\n    cVar5 = *pcVar7;\n    if (cVar5 == 'V') {\n      local_78 = 2;\nLAB_001d0040:\n      pcVar10 = pcVar7 + 1;\n      *mangled = pcVar10;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto LAB_001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto LAB_001d0040;\n      }\n      local_78 = 0;\n      pcVar10 = pcVar7;\n    }\n    if (cVar5 == 'F') {\n      *mangled = pcVar10 + 1;\n      iVar6 = demangle_nested_args(work,mangled,&decl);\n      if ((iVar6 != 0) && (**mangled == '_')) {\n        *mangled = *mangled + 1;\n        if (((work->options & 2) != 0) && (local_78 != 0)) {\n          if (decl.b != decl.p) {\n            string_append(&decl," ");\n          }\n          pcVar7 = qualifier_string(local_78);\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            string_append(&decl,pcVar7);\n          }\n        }\n        goto LAB_001cf820;\n      }\n    }\n    break;\n  case 0xe:\n    *mangled = pcVar10 + 1;\n    string_prepend(&decl,"&&");\n    iVar11 = 3;\n    if (local_70 != 0) {\n      iVar11 = local_70;\n    }\n    goto LAB_001cf820;\n  case 0xf:\n  case 0x2f:\n    *mangled = pcVar10 + 1;\n    if ((work->options & 4) == 0) {\n      string_prepend(&decl,"*");\n    }\n    iVar11 = 1;\n    if (local_70 != 0) {\n      iVar11 = local_70;\n    }\n    goto LAB_001cf820;\n  case 0x11:\n    *mangled = pcVar10 + 1;\n    string_prepend(&decl,"&");\n    iVar11 = 2;\n    if (local_70 != 0) {\n      iVar11 = local_70;\n    }\n    goto LAB_001cf820;\n  case 0x13:\n    *mangled = pcVar10 + 1;\n    iVar6 = get_count(mangled,&n);\n    if (((iVar6 == 0) || (n < 0)) || (work->ntypes <= n)) break;\n    if (work->nproctypes < 1) goto LAB_001cfe64;\n    piVar9 = work->proctypevec;\n    piVar1 = piVar9 + work->nproctypes;\n    do {\n      if (n == *piVar9) {\n        iVar12 = 0;\n      }\n      piVar9 = piVar9 + 1;\n    } while (piVar1 != piVar9);\n    if (iVar12 != 0) {\nLAB_001cfe64:\n      push_processed_type(work,n);\n      bVar4 = true;\n      mangled = &remembered_type;\n      remembered_type = work->typevec[n];\n    }\n    goto LAB_001cf820;\n  }" switch (parenthesized_expression "(iVar6 - 0x41U & 0xff)" ( (binary_expression "iVar6 - 0x41U & 0xff" (binary_expression "iVar6 - 0x41U" identifier - number_literal) & number_literal) )) (compound_statement "{\n  case 0:\n    goto _L530;\n  default:\n    goto _L731;\n  case 2:\n  case 0x15:\n  case 0x34:\n    if ((work->options & 2) != 0) {\n      if (decl.b != decl.p) {\n        string_prepend(&decl," ");\n        pcVar10 = *mangled;\n        iVar6 = (int)*pcVar10;\n      }\n      pcVar7 = demangle_qualifier(iVar6);\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        string_prepend(&decl,pcVar7);\n        pcVar10 = *mangled;\n      }\n    }\n    *mangled = pcVar10 + 1;\n    goto LAB_001cf820;\n  case 5:\n    *mangled = pcVar10 + 1;\n    if ((pcVar7 != decl.p) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      string_prepend(&decl,"(");\n      string_append(&decl,")");\n    }\n    iVar6 = demangle_nested_args(work,mangled,&decl);\n    if (iVar6 != 0) {\n      cVar5 = **mangled;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *mangled = *mangled + 1;\n        }\n        goto LAB_001cf820;\n      }\n    }\n    break;\n  case 6:\n    *mangled = pcVar10 + 1;\n    goto LAB_001cf820;\n  case 0xc:\n    *mangled = pcVar10 + 1;\n    string_append(&decl,")");\n    if (**mangled == 'Q') {\n      if (((byte)_sch_istable[0x51] & 4) != 0) goto LAB_001cfb41;\nLAB_001cfa0d:\n      iVar12 = demangle_qualified(work,mangled,&decl,0,0);\n      if (iVar12 == 0) goto LAB_001cf820;\n    }\n    else {\n      pcVar7 = "::";\n      if ((work->options & 4) != 0) {\n        pcVar7 = ".";\n      }\n      string_prepend(&decl,pcVar7);\n      bVar2 = **mangled;\n      if ((_sch_istable[bVar2] & 4) != 0) {\nLAB_001cfb41:\n        iVar6 = consume_count(mangled);\n        n = iVar6;\n        if (iVar6 != -1) {\n          pcVar7 = *mangled;\n          sVar8 = strlen(pcVar7);\n          if (iVar6 <= (int)sVar8) {\n            if (iVar6 != 0) {\n              string_prependn(&decl,pcVar7,iVar6);\n              pcVar7 = *mangled;\n              iVar6 = n;\n            }\n            *mangled = pcVar7 + iVar6;\n            goto LAB_001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        do_type(work,mangled,&temp);\n        pcVar7 = temp.p;\n        if (temp.b != temp.p) {\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n          pcVar7 = temp.b;\n        }\n        if (pcVar7 != (char *)0x0) {\n          free(pcVar7);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto LAB_001cfa0d;\n          break;\n        }\n        temp.e = (char *)0x0;\n        temp.p = (char *)0x0;\n        temp.b = (char *)0x0;\n        iVar12 = demangle_template(work,mangled,&temp,(string *)0x0,1,1);\n        if (iVar12 == 0) {\n          if (temp.b != (char *)0x0) {\n            free(temp.b);\n          }\n          goto LAB_001cf820;\n        }\n        if ((int)temp.p - (int)temp.b != 0) {\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n        }\n        if (temp.b != (char *)0x0) {\n          free(temp.b);\n        }\n      }\n    }\nLAB_001cfb87:\n    string_prepend(&decl,"(");\n    pcVar7 = *mangled;\n    cVar5 = *pcVar7;\n    if (cVar5 == 'V') {\n      local_78 = 2;\nLAB_001d0040:\n      pcVar10 = pcVar7 + 1;\n      *mangled = pcVar10;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto LAB_001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto LAB_001d0040;\n      }\n      local_78 = 0;\n      pcVar10 = pcVar7;\n    }\n    if (cVar5 == 'F') {\n      *mangled = pcVar10 + 1;\n      iVar6 = demangle_nested_args(work,mangled,&decl);\n      if ((iVar6 != 0) && (**mangled == '_')) {\n        *mangled = *mangled + 1;\n        if (((work->options & 2) != 0) && (local_78 != 0)) {\n          if (decl.b != decl.p) {\n            string_append(&decl," ");\n          }\n          pcVar7 = qualifier_string(local_78);\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            string_append(&decl,pcVar7);\n          }\n        }\n        goto LAB_001cf820;\n      }\n    }\n    break;\n  case 0xe:\n    *mangled = pcVar10 + 1;\n    string_prepend(&decl,"&&");\n    iVar11 = 3;\n    if (local_70 != 0) {\n      iVar11 = local_70;\n    }\n    goto LAB_001cf820;\n  case 0xf:\n  case 0x2f:\n    *mangled = pcVar10 + 1;\n    if ((work->options & 4) == 0) {\n      string_prepend(&decl,"*");\n    }\n    iVar11 = 1;\n    if (local_70 != 0) {\n      iVar11 = local_70;\n    }\n    goto LAB_001cf820;\n  case 0x11:\n    *mangled = pcVar10 + 1;\n    string_prepend(&decl,"&");\n    iVar11 = 2;\n    if (local_70 != 0) {\n      iVar11 = local_70;\n    }\n    goto LAB_001cf820;\n  case 0x13:\n    *mangled = pcVar10 + 1;\n    iVar6 = get_count(mangled,&n);\n    if (((iVar6 == 0) || (n < 0)) || (work->ntypes <= n)) break;\n    if (work->nproctypes < 1) goto LAB_001cfe64;\n    piVar9 = work->proctypevec;\n    piVar1 = piVar9 + work->nproctypes;\n    do {\n      if (n == *piVar9) {\n        iVar12 = 0;\n      }\n      piVar9 = piVar9 + 1;\n    } while (piVar1 != piVar9);\n    if (iVar12 != 0) {\nLAB_001cfe64:\n      push_processed_type(work,n);\n      bVar4 = true;\n      mangled = &remembered_type;\n      remembered_type = work->typevec[n];\n    }\n    goto LAB_001cf820;\n  }" { (case_statement "case 0:\n    goto _L530;" case number_literal : (goto_statement "goto _L530;" goto statement_identifier ;)) (case_statement "default:\n    goto _L731;" default : (goto_statement "goto _L731;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 0x15:" case number_literal :) (case_statement "case 0x34:\n    if ((work->options & 2) != 0) {\n      if (decl.b != decl.p) {\n        string_prepend(&decl," ");\n        pcVar10 = *mangled;\n        iVar6 = (int)*pcVar10;\n      }\n      pcVar7 = demangle_qualifier(iVar6);\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        string_prepend(&decl,pcVar7);\n        pcVar10 = *mangled;\n      }\n    }\n    *mangled = pcVar10 + 1;\n    goto LAB_001cf820;" case number_literal : (if_statement "if ((work->options & 2) != 0) {\n      if (decl.b != decl.p) {\n        string_prepend(&decl," ");\n        pcVar10 = *mangled;\n        iVar6 = (int)*pcVar10;\n      }\n      pcVar7 = demangle_qualifier(iVar6);\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        string_prepend(&decl,pcVar7);\n        pcVar10 = *mangled;\n      }\n    }" if (parenthesized_expression "((work->options & 2) != 0)" ( (binary_expression "(work->options & 2) != 0" (parenthesized_expression "(work->options & 2)" ( (binary_expression "work->options & 2" (field_expression "work->options" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      if (decl.b != decl.p) {\n        string_prepend(&decl," ");\n        pcVar10 = *mangled;\n        iVar6 = (int)*pcVar10;\n      }\n      pcVar7 = demangle_qualifier(iVar6);\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        string_prepend(&decl,pcVar7);\n        pcVar10 = *mangled;\n      }\n    }" { (if_statement "if (decl.b != decl.p) {\n        string_prepend(&decl," ");\n        pcVar10 = *mangled;\n        iVar6 = (int)*pcVar10;\n      }" if (parenthesized_expression "(decl.b != decl.p)" ( (binary_expression "decl.b != decl.p" (field_expression "decl.b" identifier . field_identifier) != (field_expression "decl.p" identifier . field_identifier)) )) (compound_statement "{\n        string_prepend(&decl," ");\n        pcVar10 = *mangled;\n        iVar6 = (int)*pcVar10;\n      }" { (expression_statement "string_prepend(&decl," ");" (call_expression "string_prepend(&decl," ")" identifier (argument_list "(&decl," ")" ( (pointer_expression "&decl" & identifier) , (string_literal "" "" " string_content ") ))) ;) (expression_statement "pcVar10 = *mangled;" (assignment_expression "pcVar10 = *mangled" identifier = (pointer_expression "*mangled" * identifier)) ;) (expression_statement "iVar6 = (int)*pcVar10;" (assignment_expression "iVar6 = (int)*pcVar10" identifier = (cast_expression "(int)*pcVar10" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar10" * identifier))) ;) })) (expression_statement "pcVar7 = demangle_qualifier(iVar6);" (assignment_expression "pcVar7 = demangle_qualifier(iVar6)" identifier = (call_expression "demangle_qualifier(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (if_statement "if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        string_prepend(&decl,pcVar7);\n        pcVar10 = *mangled;\n      }" if (parenthesized_expression "((pcVar7 != (char *)0x0) && (*pcVar7 != '\0'))" ( (binary_expression "(pcVar7 != (char *)0x0) && (*pcVar7 != '\0')" (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*pcVar7 != '\0')" ( (binary_expression "*pcVar7 != '\0'" (pointer_expression "*pcVar7" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        string_prepend(&decl,pcVar7);\n        pcVar10 = *mangled;\n      }" { (expression_statement "string_prepend(&decl,pcVar7);" (call_expression "string_prepend(&decl,pcVar7)" identifier (argument_list "(&decl,pcVar7)" ( (pointer_expression "&decl" & identifier) , identifier ))) ;) (expression_statement "pcVar10 = *mangled;" (assignment_expression "pcVar10 = *mangled" identifier = (pointer_expression "*mangled" * identifier)) ;) })) })) (expression_statement "*mangled = pcVar10 + 1;" (assignment_expression "*mangled = pcVar10 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar10 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_001cf820;" goto statement_identifier ;)) (case_statement "case 5:\n    *mangled = pcVar10 + 1;\n    if ((pcVar7 != decl.p) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      string_prepend(&decl,"(");\n      string_append(&decl,")");\n    }\n    iVar6 = demangle_nested_args(work,mangled,&decl);\n    if (iVar6 != 0) {\n      cVar5 = **mangled;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *mangled = *mangled + 1;\n        }\n        goto LAB_001cf820;\n      }\n    }\n    break;" case number_literal : (expression_statement "*mangled = pcVar10 + 1;" (assignment_expression "*mangled = pcVar10 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar10 + 1" identifier + number_literal)) ;) (if_statement "if ((pcVar7 != decl.p) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      string_prepend(&decl,"(");\n      string_append(&decl,")");\n    }" if (parenthesized_expression "((pcVar7 != decl.p) && ((*pcVar7 - 0x26U & 0xfb) == 0))" ( (binary_expression "(pcVar7 != decl.p) && ((*pcVar7 - 0x26U & 0xfb) == 0)" (parenthesized_expression "(pcVar7 != decl.p)" ( (binary_expression "pcVar7 != decl.p" identifier != (field_expression "decl.p" identifier . field_identifier)) )) && (parenthesized_expression "((*pcVar7 - 0x26U & 0xfb) == 0)" ( (binary_expression "(*pcVar7 - 0x26U & 0xfb) == 0" (parenthesized_expression "(*pcVar7 - 0x26U & 0xfb)" ( (binary_expression "*pcVar7 - 0x26U & 0xfb" (binary_expression "*pcVar7 - 0x26U" (pointer_expression "*pcVar7" * identifier) - number_literal) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      string_prepend(&decl,"(");\n      string_append(&decl,")");\n    }" { (expression_statement "string_prepend(&decl,"(");" (call_expression "string_prepend(&decl,"(")" identifier (argument_list "(&decl,"(")" ( (pointer_expression "&decl" & identifier) , (string_literal ""("" " string_content ") ))) ;) (expression_statement "string_append(&decl,")");" (call_expression "string_append(&decl,")")" identifier (argument_list "(&decl,")")" ( (pointer_expression "&decl" & identifier) , (string_literal "")"" " string_content ") ))) ;) })) (expression_statement "iVar6 = demangle_nested_args(work,mangled,&decl);" (assignment_expression "iVar6 = demangle_nested_args(work,mangled,&decl)" identifier = (call_expression "demangle_nested_args(work,mangled,&decl)" identifier (argument_list "(work,mangled,&decl)" ( identifier , identifier , (pointer_expression "&decl" & identifier) )))) ;) (if_statement "if (iVar6 != 0) {\n      cVar5 = **mangled;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *mangled = *mangled + 1;\n        }\n        goto LAB_001cf820;\n      }\n    }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      cVar5 = **mangled;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *mangled = *mangled + 1;\n        }\n        goto LAB_001cf820;\n      }\n    }" { (expression_statement "cVar5 = **mangled;" (assignment_expression "cVar5 = **mangled" identifier = (pointer_expression "**mangled" * (pointer_expression "*mangled" * identifier))) ;) (if_statement "if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *mangled = *mangled + 1;\n        }\n        goto LAB_001cf820;\n      }" if (parenthesized_expression "((cVar5 == '_') || (cVar5 == '\0'))" ( (binary_expression "(cVar5 == '_') || (cVar5 == '\0')" (parenthesized_expression "(cVar5 == '_')" ( (binary_expression "cVar5 == '_'" identifier == (char_literal "'_'" ' character ')) )) || (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        if (cVar5 == '_') {\n          *mangled = *mangled + 1;\n        }\n        goto LAB_001cf820;\n      }" { (if_statement "if (cVar5 == '_') {\n          *mangled = *mangled + 1;\n        }" if (parenthesized_expression "(cVar5 == '_')" ( (binary_expression "cVar5 == '_'" identifier == (char_literal "'_'" ' character ')) )) (compound_statement "{\n          *mangled = *mangled + 1;\n        }" { (expression_statement "*mangled = *mangled + 1;" (assignment_expression "*mangled = *mangled + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "*mangled + 1" (pointer_expression "*mangled" * identifier) + number_literal)) ;) })) (goto_statement "goto LAB_001cf820;" goto statement_identifier ;) })) })) (break_statement "break;" break ;)) (case_statement "case 6:\n    *mangled = pcVar10 + 1;\n    goto LAB_001cf820;" case number_literal : (expression_statement "*mangled = pcVar10 + 1;" (assignment_expression "*mangled = pcVar10 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar10 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_001cf820;" goto statement_identifier ;)) (case_statement "case 0xc:\n    *mangled = pcVar10 + 1;\n    string_append(&decl,")");\n    if (**mangled == 'Q') {\n      if (((byte)_sch_istable[0x51] & 4) != 0) goto LAB_001cfb41;\nLAB_001cfa0d:\n      iVar12 = demangle_qualified(work,mangled,&decl,0,0);\n      if (iVar12 == 0) goto LAB_001cf820;\n    }\n    else {\n      pcVar7 = "::";\n      if ((work->options & 4) != 0) {\n        pcVar7 = ".";\n      }\n      string_prepend(&decl,pcVar7);\n      bVar2 = **mangled;\n      if ((_sch_istable[bVar2] & 4) != 0) {\nLAB_001cfb41:\n        iVar6 = consume_count(mangled);\n        n = iVar6;\n        if (iVar6 != -1) {\n          pcVar7 = *mangled;\n          sVar8 = strlen(pcVar7);\n          if (iVar6 <= (int)sVar8) {\n            if (iVar6 != 0) {\n              string_prependn(&decl,pcVar7,iVar6);\n              pcVar7 = *mangled;\n              iVar6 = n;\n            }\n            *mangled = pcVar7 + iVar6;\n            goto LAB_001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        do_type(work,mangled,&temp);\n        pcVar7 = temp.p;\n        if (temp.b != temp.p) {\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n          pcVar7 = temp.b;\n        }\n        if (pcVar7 != (char *)0x0) {\n          free(pcVar7);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto LAB_001cfa0d;\n          break;\n        }\n        temp.e = (char *)0x0;\n        temp.p = (char *)0x0;\n        temp.b = (char *)0x0;\n        iVar12 = demangle_template(work,mangled,&temp,(string *)0x0,1,1);\n        if (iVar12 == 0) {\n          if (temp.b != (char *)0x0) {\n            free(temp.b);\n          }\n          goto LAB_001cf820;\n        }\n        if ((int)temp.p - (int)temp.b != 0) {\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n        }\n        if (temp.b != (char *)0x0) {\n          free(temp.b);\n        }\n      }\n    }\nLAB_001cfb87:\n    string_prepend(&decl,"(");\n    pcVar7 = *mangled;\n    cVar5 = *pcVar7;\n    if (cVar5 == 'V') {\n      local_78 = 2;\nLAB_001d0040:\n      pcVar10 = pcVar7 + 1;\n      *mangled = pcVar10;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto LAB_001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto LAB_001d0040;\n      }\n      local_78 = 0;\n      pcVar10 = pcVar7;\n    }\n    if (cVar5 == 'F') {\n      *mangled = pcVar10 + 1;\n      iVar6 = demangle_nested_args(work,mangled,&decl);\n      if ((iVar6 != 0) && (**mangled == '_')) {\n        *mangled = *mangled + 1;\n        if (((work->options & 2) != 0) && (local_78 != 0)) {\n          if (decl.b != decl.p) {\n            string_append(&decl," ");\n          }\n          pcVar7 = qualifier_string(local_78);\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            string_append(&decl,pcVar7);\n          }\n        }\n        goto LAB_001cf820;\n      }\n    }\n    break;" case number_literal : (expression_statement "*mangled = pcVar10 + 1;" (assignment_expression "*mangled = pcVar10 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar10 + 1" identifier + number_literal)) ;) (expression_statement "string_append(&decl,")");" (call_expression "string_append(&decl,")")" identifier (argument_list "(&decl,")")" ( (pointer_expression "&decl" & identifier) , (string_literal "")"" " string_content ") ))) ;) (if_statement "if (**mangled == 'Q') {\n      if (((byte)_sch_istable[0x51] & 4) != 0) goto LAB_001cfb41;\nLAB_001cfa0d:\n      iVar12 = demangle_qualified(work,mangled,&decl,0,0);\n      if (iVar12 == 0) goto LAB_001cf820;\n    }\n    else {\n      pcVar7 = "::";\n      if ((work->options & 4) != 0) {\n        pcVar7 = ".";\n      }\n      string_prepend(&decl,pcVar7);\n      bVar2 = **mangled;\n      if ((_sch_istable[bVar2] & 4) != 0) {\nLAB_001cfb41:\n        iVar6 = consume_count(mangled);\n        n = iVar6;\n        if (iVar6 != -1) {\n          pcVar7 = *mangled;\n          sVar8 = strlen(pcVar7);\n          if (iVar6 <= (int)sVar8) {\n            if (iVar6 != 0) {\n              string_prependn(&decl,pcVar7,iVar6);\n              pcVar7 = *mangled;\n              iVar6 = n;\n            }\n            *mangled = pcVar7 + iVar6;\n            goto LAB_001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        do_type(work,mangled,&temp);\n        pcVar7 = temp.p;\n        if (temp.b != temp.p) {\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n          pcVar7 = temp.b;\n        }\n        if (pcVar7 != (char *)0x0) {\n          free(pcVar7);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto LAB_001cfa0d;\n          break;\n        }\n        temp.e = (char *)0x0;\n        temp.p = (char *)0x0;\n        temp.b = (char *)0x0;\n        iVar12 = demangle_template(work,mangled,&temp,(string *)0x0,1,1);\n        if (iVar12 == 0) {\n          if (temp.b != (char *)0x0) {\n            free(temp.b);\n          }\n          goto LAB_001cf820;\n        }\n        if ((int)temp.p - (int)temp.b != 0) {\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n        }\n        if (temp.b != (char *)0x0) {\n          free(temp.b);\n        }\n      }\n    }" if (parenthesized_expression "(**mangled == 'Q')" ( (binary_expression "**mangled == 'Q'" (pointer_expression "**mangled" * (pointer_expression "*mangled" * identifier)) == (char_literal "'Q'" ' character ')) )) (compound_statement "{\n      if (((byte)_sch_istable[0x51] & 4) != 0) goto LAB_001cfb41;\nLAB_001cfa0d:\n      iVar12 = demangle_qualified(work,mangled,&decl,0,0);\n      if (iVar12 == 0) goto LAB_001cf820;\n    }" { (if_statement "if (((byte)_sch_istable[0x51] & 4) != 0) goto LAB_001cfb41;" if (parenthesized_expression "(((byte)_sch_istable[0x51] & 4) != 0)" ( (binary_expression "((byte)_sch_istable[0x51] & 4) != 0" (parenthesized_expression "((byte)_sch_istable[0x51] & 4)" ( (binary_expression "(byte)_sch_istable[0x51] & 4" (cast_expression "(byte)_sch_istable[0x51]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "_sch_istable[0x51]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_001cfb41;" goto statement_identifier ;)) (labeled_statement "LAB_001cfa0d:\n      iVar12 = demangle_qualified(work,mangled,&decl,0,0);" statement_identifier : (expression_statement "iVar12 = demangle_qualified(work,mangled,&decl,0,0);" (assignment_expression "iVar12 = demangle_qualified(work,mangled,&decl,0,0)" identifier = (call_expression "demangle_qualified(work,mangled,&decl,0,0)" identifier (argument_list "(work,mangled,&decl,0,0)" ( identifier , identifier , (pointer_expression "&decl" & identifier) , number_literal , number_literal )))) ;)) (if_statement "if (iVar12 == 0) goto LAB_001cf820;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001cf820;" goto statement_identifier ;)) }) (else_clause "else {\n      pcVar7 = "::";\n      if ((work->options & 4) != 0) {\n        pcVar7 = ".";\n      }\n      string_prepend(&decl,pcVar7);\n      bVar2 = **mangled;\n      if ((_sch_istable[bVar2] & 4) != 0) {\nLAB_001cfb41:\n        iVar6 = consume_count(mangled);\n        n = iVar6;\n        if (iVar6 != -1) {\n          pcVar7 = *mangled;\n          sVar8 = strlen(pcVar7);\n          if (iVar6 <= (int)sVar8) {\n            if (iVar6 != 0) {\n              string_prependn(&decl,pcVar7,iVar6);\n              pcVar7 = *mangled;\n              iVar6 = n;\n            }\n            *mangled = pcVar7 + iVar6;\n            goto LAB_001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        do_type(work,mangled,&temp);\n        pcVar7 = temp.p;\n        if (temp.b != temp.p) {\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n          pcVar7 = temp.b;\n        }\n        if (pcVar7 != (char *)0x0) {\n          free(pcVar7);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto LAB_001cfa0d;\n          break;\n        }\n        temp.e = (char *)0x0;\n        temp.p = (char *)0x0;\n        temp.b = (char *)0x0;\n        iVar12 = demangle_template(work,mangled,&temp,(string *)0x0,1,1);\n        if (iVar12 == 0) {\n          if (temp.b != (char *)0x0) {\n            free(temp.b);\n          }\n          goto LAB_001cf820;\n        }\n        if ((int)temp.p - (int)temp.b != 0) {\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n        }\n        if (temp.b != (char *)0x0) {\n          free(temp.b);\n        }\n      }\n    }" else (compound_statement "{\n      pcVar7 = "::";\n      if ((work->options & 4) != 0) {\n        pcVar7 = ".";\n      }\n      string_prepend(&decl,pcVar7);\n      bVar2 = **mangled;\n      if ((_sch_istable[bVar2] & 4) != 0) {\nLAB_001cfb41:\n        iVar6 = consume_count(mangled);\n        n = iVar6;\n        if (iVar6 != -1) {\n          pcVar7 = *mangled;\n          sVar8 = strlen(pcVar7);\n          if (iVar6 <= (int)sVar8) {\n            if (iVar6 != 0) {\n              string_prependn(&decl,pcVar7,iVar6);\n              pcVar7 = *mangled;\n              iVar6 = n;\n            }\n            *mangled = pcVar7 + iVar6;\n            goto LAB_001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        do_type(work,mangled,&temp);\n        pcVar7 = temp.p;\n        if (temp.b != temp.p) {\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n          pcVar7 = temp.b;\n        }\n        if (pcVar7 != (char *)0x0) {\n          free(pcVar7);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto LAB_001cfa0d;\n          break;\n        }\n        temp.e = (char *)0x0;\n        temp.p = (char *)0x0;\n        temp.b = (char *)0x0;\n        iVar12 = demangle_template(work,mangled,&temp,(string *)0x0,1,1);\n        if (iVar12 == 0) {\n          if (temp.b != (char *)0x0) {\n            free(temp.b);\n          }\n          goto LAB_001cf820;\n        }\n        if ((int)temp.p - (int)temp.b != 0) {\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n        }\n        if (temp.b != (char *)0x0) {\n          free(temp.b);\n        }\n      }\n    }" { (expression_statement "pcVar7 = "::";" (assignment_expression "pcVar7 = "::"" identifier = (string_literal ""::"" " string_content ")) ;) (if_statement "if ((work->options & 4) != 0) {\n        pcVar7 = ".";\n      }" if (parenthesized_expression "((work->options & 4) != 0)" ( (binary_expression "(work->options & 4) != 0" (parenthesized_expression "(work->options & 4)" ( (binary_expression "work->options & 4" (field_expression "work->options" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n        pcVar7 = ".";\n      }" { (expression_statement "pcVar7 = ".";" (assignment_expression "pcVar7 = "."" identifier = (string_literal ""."" " string_content ")) ;) })) (expression_statement "string_prepend(&decl,pcVar7);" (call_expression "string_prepend(&decl,pcVar7)" identifier (argument_list "(&decl,pcVar7)" ( (pointer_expression "&decl" & identifier) , identifier ))) ;) (expression_statement "bVar2 = **mangled;" (assignment_expression "bVar2 = **mangled" identifier = (pointer_expression "**mangled" * (pointer_expression "*mangled" * identifier))) ;) (if_statement "if ((_sch_istable[bVar2] & 4) != 0) {\nLAB_001cfb41:\n        iVar6 = consume_count(mangled);\n        n = iVar6;\n        if (iVar6 != -1) {\n          pcVar7 = *mangled;\n          sVar8 = strlen(pcVar7);\n          if (iVar6 <= (int)sVar8) {\n            if (iVar6 != 0) {\n              string_prependn(&decl,pcVar7,iVar6);\n              pcVar7 = *mangled;\n              iVar6 = n;\n            }\n            *mangled = pcVar7 + iVar6;\n            goto LAB_001cfb87;\n          }\n        }\n        break;\n      }" if (parenthesized_expression "((_sch_istable[bVar2] & 4) != 0)" ( (binary_expression "(_sch_istable[bVar2] & 4) != 0" (parenthesized_expression "(_sch_istable[bVar2] & 4)" ( (binary_expression "_sch_istable[bVar2] & 4" (subscript_expression "_sch_istable[bVar2]" identifier [ identifier ]) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_001cfb41:\n        iVar6 = consume_count(mangled);\n        n = iVar6;\n        if (iVar6 != -1) {\n          pcVar7 = *mangled;\n          sVar8 = strlen(pcVar7);\n          if (iVar6 <= (int)sVar8) {\n            if (iVar6 != 0) {\n              string_prependn(&decl,pcVar7,iVar6);\n              pcVar7 = *mangled;\n              iVar6 = n;\n            }\n            *mangled = pcVar7 + iVar6;\n            goto LAB_001cfb87;\n          }\n        }\n        break;\n      }" { (labeled_statement "LAB_001cfb41:\n        iVar6 = consume_count(mangled);" statement_identifier : (expression_statement "iVar6 = consume_count(mangled);" (assignment_expression "iVar6 = consume_count(mangled)" identifier = (call_expression "consume_count(mangled)" identifier (argument_list "(mangled)" ( identifier )))) ;)) (expression_statement "n = iVar6;" (assignment_expression "n = iVar6" identifier = identifier) ;) (if_statement "if (iVar6 != -1) {\n          pcVar7 = *mangled;\n          sVar8 = strlen(pcVar7);\n          if (iVar6 <= (int)sVar8) {\n            if (iVar6 != 0) {\n              string_prependn(&decl,pcVar7,iVar6);\n              pcVar7 = *mangled;\n              iVar6 = n;\n            }\n            *mangled = pcVar7 + iVar6;\n            goto LAB_001cfb87;\n          }\n        }" if (parenthesized_expression "(iVar6 != -1)" ( (binary_expression "iVar6 != -1" identifier != number_literal) )) (compound_statement "{\n          pcVar7 = *mangled;\n          sVar8 = strlen(pcVar7);\n          if (iVar6 <= (int)sVar8) {\n            if (iVar6 != 0) {\n              string_prependn(&decl,pcVar7,iVar6);\n              pcVar7 = *mangled;\n              iVar6 = n;\n            }\n            *mangled = pcVar7 + iVar6;\n            goto LAB_001cfb87;\n          }\n        }" { (expression_statement "pcVar7 = *mangled;" (assignment_expression "pcVar7 = *mangled" identifier = (pointer_expression "*mangled" * identifier)) ;) (expression_statement "sVar8 = strlen(pcVar7);" (assignment_expression "sVar8 = strlen(pcVar7)" identifier = (call_expression "strlen(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) (if_statement "if (iVar6 <= (int)sVar8) {\n            if (iVar6 != 0) {\n              string_prependn(&decl,pcVar7,iVar6);\n              pcVar7 = *mangled;\n              iVar6 = n;\n            }\n            *mangled = pcVar7 + iVar6;\n            goto LAB_001cfb87;\n          }" if (parenthesized_expression "(iVar6 <= (int)sVar8)" ( (binary_expression "iVar6 <= (int)sVar8" identifier <= (cast_expression "(int)sVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            if (iVar6 != 0) {\n              string_prependn(&decl,pcVar7,iVar6);\n              pcVar7 = *mangled;\n              iVar6 = n;\n            }\n            *mangled = pcVar7 + iVar6;\n            goto LAB_001cfb87;\n          }" { (if_statement "if (iVar6 != 0) {\n              string_prependn(&decl,pcVar7,iVar6);\n              pcVar7 = *mangled;\n              iVar6 = n;\n            }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n              string_prependn(&decl,pcVar7,iVar6);\n              pcVar7 = *mangled;\n              iVar6 = n;\n            }" { (expression_statement "string_prependn(&decl,pcVar7,iVar6);" (call_expression "string_prependn(&decl,pcVar7,iVar6)" identifier (argument_list "(&decl,pcVar7,iVar6)" ( (pointer_expression "&decl" & identifier) , identifier , identifier ))) ;) (expression_statement "pcVar7 = *mangled;" (assignment_expression "pcVar7 = *mangled" identifier = (pointer_expression "*mangled" * identifier)) ;) (expression_statement "iVar6 = n;" (assignment_expression "iVar6 = n" identifier = identifier) ;) })) (expression_statement "*mangled = pcVar7 + iVar6;" (assignment_expression "*mangled = pcVar7 + iVar6" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar7 + iVar6" identifier + identifier)) ;) (goto_statement "goto LAB_001cfb87;" goto statement_identifier ;) })) })) (break_statement "break;" break ;) })) (if_statement "if ((byte)(bVar2 + 0xa8) < 2) {\n        do_type(work,mangled,&temp);\n        pcVar7 = temp.p;\n        if (temp.b != temp.p) {\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n          pcVar7 = temp.b;\n        }\n        if (pcVar7 != (char *)0x0) {\n          free(pcVar7);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto LAB_001cfa0d;\n          break;\n        }\n        temp.e = (char *)0x0;\n        temp.p = (char *)0x0;\n        temp.b = (char *)0x0;\n        iVar12 = demangle_template(work,mangled,&temp,(string *)0x0,1,1);\n        if (iVar12 == 0) {\n          if (temp.b != (char *)0x0) {\n            free(temp.b);\n          }\n          goto LAB_001cf820;\n        }\n        if ((int)temp.p - (int)temp.b != 0) {\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n        }\n        if (temp.b != (char *)0x0) {\n          free(temp.b);\n        }\n      }" if (parenthesized_expression "((byte)(bVar2 + 0xa8) < 2)" ( (binary_expression "(byte)(bVar2 + 0xa8) < 2" (call_expression "(byte)(bVar2 + 0xa8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar2 + 0xa8)" ( (binary_expression "bVar2 + 0xa8" identifier + number_literal) ))) < number_literal) )) (compound_statement "{\n        do_type(work,mangled,&temp);\n        pcVar7 = temp.p;\n        if (temp.b != temp.p) {\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n          pcVar7 = temp.b;\n        }\n        if (pcVar7 != (char *)0x0) {\n          free(pcVar7);\n        }\n      }" { (expression_statement "do_type(work,mangled,&temp);" (call_expression "do_type(work,mangled,&temp)" identifier (argument_list "(work,mangled,&temp)" ( identifier , identifier , (pointer_expression "&temp" & identifier) ))) ;) (expression_statement "pcVar7 = temp.p;" (assignment_expression "pcVar7 = temp.p" identifier = (field_expression "temp.p" identifier . field_identifier)) ;) (if_statement "if (temp.b != temp.p) {\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n          pcVar7 = temp.b;\n        }" if (parenthesized_expression "(temp.b != temp.p)" ( (binary_expression "temp.b != temp.p" (field_expression "temp.b" identifier . field_identifier) != (field_expression "temp.p" identifier . field_identifier)) )) (compound_statement "{\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n          pcVar7 = temp.b;\n        }" { (expression_statement "string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);" (call_expression "string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b)" identifier (argument_list "(&decl,temp.b,(int)temp.p - (int)temp.b)" ( (pointer_expression "&decl" & identifier) , (field_expression "temp.b" identifier . field_identifier) , (binary_expression "(int)temp.p - (int)temp.b" (cast_expression "(int)temp.p" ( (type_descriptor "int" primitive_type) ) (field_expression "temp.p" identifier . field_identifier)) - (cast_expression "(int)temp.b" ( (type_descriptor "int" primitive_type) ) (field_expression "temp.b" identifier . field_identifier))) ))) ;) (expression_statement "pcVar7 = temp.b;" (assignment_expression "pcVar7 = temp.b" identifier = (field_expression "temp.b" identifier . field_identifier)) ;) })) (if_statement "if (pcVar7 != (char *)0x0) {\n          free(pcVar7);\n        }" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          free(pcVar7);\n        }" { (expression_statement "free(pcVar7);" (call_expression "free(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) })) }) (else_clause "else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto LAB_001cfa0d;\n          break;\n        }\n        temp.e = (char *)0x0;\n        temp.p = (char *)0x0;\n        temp.b = (char *)0x0;\n        iVar12 = demangle_template(work,mangled,&temp,(string *)0x0,1,1);\n        if (iVar12 == 0) {\n          if (temp.b != (char *)0x0) {\n            free(temp.b);\n          }\n          goto LAB_001cf820;\n        }\n        if ((int)temp.p - (int)temp.b != 0) {\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n        }\n        if (temp.b != (char *)0x0) {\n          free(temp.b);\n        }\n      }" else (compound_statement "{\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto LAB_001cfa0d;\n          break;\n        }\n        temp.e = (char *)0x0;\n        temp.p = (char *)0x0;\n        temp.b = (char *)0x0;\n        iVar12 = demangle_template(work,mangled,&temp,(string *)0x0,1,1);\n        if (iVar12 == 0) {\n          if (temp.b != (char *)0x0) {\n            free(temp.b);\n          }\n          goto LAB_001cf820;\n        }\n        if ((int)temp.p - (int)temp.b != 0) {\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n        }\n        if (temp.b != (char *)0x0) {\n          free(temp.b);\n        }\n      }" { (if_statement "if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto LAB_001cfa0d;\n          break;\n        }" if (parenthesized_expression "(bVar2 != 0x74)" ( (binary_expression "bVar2 != 0x74" identifier != number_literal) )) (compound_statement "{\n          if (bVar2 == 0x51) goto LAB_001cfa0d;\n          break;\n        }" { (if_statement "if (bVar2 == 0x51) goto LAB_001cfa0d;" if (parenthesized_expression "(bVar2 == 0x51)" ( (binary_expression "bVar2 == 0x51" identifier == number_literal) )) (goto_statement "goto LAB_001cfa0d;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "temp.e = (char *)0x0;" (assignment_expression "temp.e = (char *)0x0" (field_expression "temp.e" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "temp.p = (char *)0x0;" (assignment_expression "temp.p = (char *)0x0" (field_expression "temp.p" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "temp.b = (char *)0x0;" (assignment_expression "temp.b = (char *)0x0" (field_expression "temp.b" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar12 = demangle_template(work,mangled,&temp,(string *)0x0,1,1);" (assignment_expression "iVar12 = demangle_template(work,mangled,&temp,(string *)0x0,1,1)" identifier = (call_expression "demangle_template(work,mangled,&temp,(string *)0x0,1,1)" identifier (argument_list "(work,mangled,&temp,(string *)0x0,1,1)" ( identifier , identifier , (pointer_expression "&temp" & identifier) , (cast_expression "(string *)0x0" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , number_literal )))) ;) (if_statement "if (iVar12 == 0) {\n          if (temp.b != (char *)0x0) {\n            free(temp.b);\n          }\n          goto LAB_001cf820;\n        }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n          if (temp.b != (char *)0x0) {\n            free(temp.b);\n          }\n          goto LAB_001cf820;\n        }" { (if_statement "if (temp.b != (char *)0x0) {\n            free(temp.b);\n          }" if (parenthesized_expression "(temp.b != (char *)0x0)" ( (binary_expression "temp.b != (char *)0x0" (field_expression "temp.b" identifier . field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            free(temp.b);\n          }" { (expression_statement "free(temp.b);" (call_expression "free(temp.b)" identifier (argument_list "(temp.b)" ( (field_expression "temp.b" identifier . field_identifier) ))) ;) })) (goto_statement "goto LAB_001cf820;" goto statement_identifier ;) })) (if_statement "if ((int)temp.p - (int)temp.b != 0) {\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n        }" if (parenthesized_expression "((int)temp.p - (int)temp.b != 0)" ( (binary_expression "(int)temp.p - (int)temp.b != 0" (binary_expression "(int)temp.p - (int)temp.b" (cast_expression "(int)temp.p" ( (type_descriptor "int" primitive_type) ) (field_expression "temp.p" identifier . field_identifier)) - (cast_expression "(int)temp.b" ( (type_descriptor "int" primitive_type) ) (field_expression "temp.b" identifier . field_identifier))) != number_literal) )) (compound_statement "{\n          string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);\n        }" { (expression_statement "string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b);" (call_expression "string_prependn(&decl,temp.b,(int)temp.p - (int)temp.b)" identifier (argument_list "(&decl,temp.b,(int)temp.p - (int)temp.b)" ( (pointer_expression "&decl" & identifier) , (field_expression "temp.b" identifier . field_identifier) , (binary_expression "(int)temp.p - (int)temp.b" (cast_expression "(int)temp.p" ( (type_descriptor "int" primitive_type) ) (field_expression "temp.p" identifier . field_identifier)) - (cast_expression "(int)temp.b" ( (type_descriptor "int" primitive_type) ) (field_expression "temp.b" identifier . field_identifier))) ))) ;) })) (if_statement "if (temp.b != (char *)0x0) {\n          free(temp.b);\n        }" if (parenthesized_expression "(temp.b != (char *)0x0)" ( (binary_expression "temp.b != (char *)0x0" (field_expression "temp.b" identifier . field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          free(temp.b);\n        }" { (expression_statement "free(temp.b);" (call_expression "free(temp.b)" identifier (argument_list "(temp.b)" ( (field_expression "temp.b" identifier . field_identifier) ))) ;) })) }))) }))) (labeled_statement "LAB_001cfb87:\n    string_prepend(&decl,"(");" statement_identifier : (expression_statement "string_prepend(&decl,"(");" (call_expression "string_prepend(&decl,"(")" identifier (argument_list "(&decl,"(")" ( (pointer_expression "&decl" & identifier) , (string_literal ""("" " string_content ") ))) ;)) (expression_statement "pcVar7 = *mangled;" (assignment_expression "pcVar7 = *mangled" identifier = (pointer_expression "*mangled" * identifier)) ;) (expression_statement "cVar5 = *pcVar7;" (assignment_expression "cVar5 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (if_statement "if (cVar5 == 'V') {\n      local_78 = 2;\nLAB_001d0040:\n      pcVar10 = pcVar7 + 1;\n      *mangled = pcVar10;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto LAB_001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto LAB_001d0040;\n      }\n      local_78 = 0;\n      pcVar10 = pcVar7;\n    }" if (parenthesized_expression "(cVar5 == 'V')" ( (binary_expression "cVar5 == 'V'" identifier == (char_literal "'V'" ' character ')) )) (compound_statement "{\n      local_78 = 2;\nLAB_001d0040:\n      pcVar10 = pcVar7 + 1;\n      *mangled = pcVar10;\n      cVar5 = pcVar7[1];\n    }" { (expression_statement "local_78 = 2;" (assignment_expression "local_78 = 2" identifier = number_literal) ;) (labeled_statement "LAB_001d0040:\n      pcVar10 = pcVar7 + 1;" statement_identifier : (expression_statement "pcVar10 = pcVar7 + 1;" (assignment_expression "pcVar10 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;)) (expression_statement "*mangled = pcVar10;" (assignment_expression "*mangled = pcVar10" (pointer_expression "*mangled" * identifier) = identifier) ;) (expression_statement "cVar5 = pcVar7[1];" (assignment_expression "cVar5 = pcVar7[1]" identifier = (subscript_expression "pcVar7[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto LAB_001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto LAB_001d0040;\n      }\n      local_78 = 0;\n      pcVar10 = pcVar7;\n    }" else (compound_statement "{\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto LAB_001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto LAB_001d0040;\n      }\n      local_78 = 0;\n      pcVar10 = pcVar7;\n    }" { (if_statement "if (cVar5 == 'u') {\n        local_78 = 4;\n        goto LAB_001d0040;\n      }" if (parenthesized_expression "(cVar5 == 'u')" ( (binary_expression "cVar5 == 'u'" identifier == (char_literal "'u'" ' character ')) )) (compound_statement "{\n        local_78 = 4;\n        goto LAB_001d0040;\n      }" { (expression_statement "local_78 = 4;" (assignment_expression "local_78 = 4" identifier = number_literal) ;) (goto_statement "goto LAB_001d0040;" goto statement_identifier ;) })) (if_statement "if (cVar5 == 'C') {\n        local_78 = 1;\n        goto LAB_001d0040;\n      }" if (parenthesized_expression "(cVar5 == 'C')" ( (binary_expression "cVar5 == 'C'" identifier == (char_literal "'C'" ' character ')) )) (compound_statement "{\n        local_78 = 1;\n        goto LAB_001d0040;\n      }" { (expression_statement "local_78 = 1;" (assignment_expression "local_78 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_001d0040;" goto statement_identifier ;) })) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" identifier = number_literal) ;) (expression_statement "pcVar10 = pcVar7;" (assignment_expression "pcVar10 = pcVar7" identifier = identifier) ;) }))) (if_statement "if (cVar5 == 'F') {\n      *mangled = pcVar10 + 1;\n      iVar6 = demangle_nested_args(work,mangled,&decl);\n      if ((iVar6 != 0) && (**mangled == '_')) {\n        *mangled = *mangled + 1;\n        if (((work->options & 2) != 0) && (local_78 != 0)) {\n          if (decl.b != decl.p) {\n            string_append(&decl," ");\n          }\n          pcVar7 = qualifier_string(local_78);\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            string_append(&decl,pcVar7);\n          }\n        }\n        goto LAB_001cf820;\n      }\n    }" if (parenthesized_expression "(cVar5 == 'F')" ( (binary_expression "cVar5 == 'F'" identifier == (char_literal "'F'" ' character ')) )) (compound_statement "{\n      *mangled = pcVar10 + 1;\n      iVar6 = demangle_nested_args(work,mangled,&decl);\n      if ((iVar6 != 0) && (**mangled == '_')) {\n        *mangled = *mangled + 1;\n        if (((work->options & 2) != 0) && (local_78 != 0)) {\n          if (decl.b != decl.p) {\n            string_append(&decl," ");\n          }\n          pcVar7 = qualifier_string(local_78);\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            string_append(&decl,pcVar7);\n          }\n        }\n        goto LAB_001cf820;\n      }\n    }" { (expression_statement "*mangled = pcVar10 + 1;" (assignment_expression "*mangled = pcVar10 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar10 + 1" identifier + number_literal)) ;) (expression_statement "iVar6 = demangle_nested_args(work,mangled,&decl);" (assignment_expression "iVar6 = demangle_nested_args(work,mangled,&decl)" identifier = (call_expression "demangle_nested_args(work,mangled,&decl)" identifier (argument_list "(work,mangled,&decl)" ( identifier , identifier , (pointer_expression "&decl" & identifier) )))) ;) (if_statement "if ((iVar6 != 0) && (**mangled == '_')) {\n        *mangled = *mangled + 1;\n        if (((work->options & 2) != 0) && (local_78 != 0)) {\n          if (decl.b != decl.p) {\n            string_append(&decl," ");\n          }\n          pcVar7 = qualifier_string(local_78);\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            string_append(&decl,pcVar7);\n          }\n        }\n        goto LAB_001cf820;\n      }" if (parenthesized_expression "((iVar6 != 0) && (**mangled == '_'))" ( (binary_expression "(iVar6 != 0) && (**mangled == '_')" (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) && (parenthesized_expression "(**mangled == '_')" ( (binary_expression "**mangled == '_'" (pointer_expression "**mangled" * (pointer_expression "*mangled" * identifier)) == (char_literal "'_'" ' character ')) ))) )) (compound_statement "{\n        *mangled = *mangled + 1;\n        if (((work->options & 2) != 0) && (local_78 != 0)) {\n          if (decl.b != decl.p) {\n            string_append(&decl," ");\n          }\n          pcVar7 = qualifier_string(local_78);\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            string_append(&decl,pcVar7);\n          }\n        }\n        goto LAB_001cf820;\n      }" { (expression_statement "*mangled = *mangled + 1;" (assignment_expression "*mangled = *mangled + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "*mangled + 1" (pointer_expression "*mangled" * identifier) + number_literal)) ;) (if_statement "if (((work->options & 2) != 0) && (local_78 != 0)) {\n          if (decl.b != decl.p) {\n            string_append(&decl," ");\n          }\n          pcVar7 = qualifier_string(local_78);\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            string_append(&decl,pcVar7);\n          }\n        }" if (parenthesized_expression "(((work->options & 2) != 0) && (local_78 != 0))" ( (binary_expression "((work->options & 2) != 0) && (local_78 != 0)" (parenthesized_expression "((work->options & 2) != 0)" ( (binary_expression "(work->options & 2) != 0" (parenthesized_expression "(work->options & 2)" ( (binary_expression "work->options & 2" (field_expression "work->options" identifier -> field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(local_78 != 0)" ( (binary_expression "local_78 != 0" identifier != number_literal) ))) )) (compound_statement "{\n          if (decl.b != decl.p) {\n            string_append(&decl," ");\n          }\n          pcVar7 = qualifier_string(local_78);\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            string_append(&decl,pcVar7);\n          }\n        }" { (if_statement "if (decl.b != decl.p) {\n            string_append(&decl," ");\n          }" if (parenthesized_expression "(decl.b != decl.p)" ( (binary_expression "decl.b != decl.p" (field_expression "decl.b" identifier . field_identifier) != (field_expression "decl.p" identifier . field_identifier)) )) (compound_statement "{\n            string_append(&decl," ");\n          }" { (expression_statement "string_append(&decl," ");" (call_expression "string_append(&decl," ")" identifier (argument_list "(&decl," ")" ( (pointer_expression "&decl" & identifier) , (string_literal "" "" " string_content ") ))) ;) })) (expression_statement "pcVar7 = qualifier_string(local_78);" (assignment_expression "pcVar7 = qualifier_string(local_78)" identifier = (call_expression "qualifier_string(local_78)" identifier (argument_list "(local_78)" ( identifier )))) ;) (if_statement "if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            string_append(&decl,pcVar7);\n          }" if (parenthesized_expression "((pcVar7 != (char *)0x0) && (*pcVar7 != '\0'))" ( (binary_expression "(pcVar7 != (char *)0x0) && (*pcVar7 != '\0')" (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*pcVar7 != '\0')" ( (binary_expression "*pcVar7 != '\0'" (pointer_expression "*pcVar7" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            string_append(&decl,pcVar7);\n          }" { (expression_statement "string_append(&decl,pcVar7);" (call_expression "string_append(&decl,pcVar7)" identifier (argument_list "(&decl,pcVar7)" ( (pointer_expression "&decl" & identifier) , identifier ))) ;) })) })) (goto_statement "goto LAB_001cf820;" goto statement_identifier ;) })) })) (break_statement "break;" break ;)) (case_statement "case 0xe:\n    *mangled = pcVar10 + 1;\n    string_prepend(&decl,"&&");\n    iVar11 = 3;\n    if (local_70 != 0) {\n      iVar11 = local_70;\n    }\n    goto LAB_001cf820;" case number_literal : (expression_statement "*mangled = pcVar10 + 1;" (assignment_expression "*mangled = pcVar10 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar10 + 1" identifier + number_literal)) ;) (expression_statement "string_prepend(&decl,"&&");" (call_expression "string_prepend(&decl,"&&")" identifier (argument_list "(&decl,"&&")" ( (pointer_expression "&decl" & identifier) , (string_literal ""&&"" " string_content ") ))) ;) (expression_statement "iVar11 = 3;" (assignment_expression "iVar11 = 3" identifier = number_literal) ;) (if_statement "if (local_70 != 0) {\n      iVar11 = local_70;\n    }" if (parenthesized_expression "(local_70 != 0)" ( (binary_expression "local_70 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar11 = local_70;\n    }" { (expression_statement "iVar11 = local_70;" (assignment_expression "iVar11 = local_70" identifier = identifier) ;) })) (goto_statement "goto LAB_001cf820;" goto statement_identifier ;)) (case_statement "case 0xf:" case number_literal :) (case_statement "case 0x2f:\n    *mangled = pcVar10 + 1;\n    if ((work->options & 4) == 0) {\n      string_prepend(&decl,"*");\n    }\n    iVar11 = 1;\n    if (local_70 != 0) {\n      iVar11 = local_70;\n    }\n    goto LAB_001cf820;" case number_literal : (expression_statement "*mangled = pcVar10 + 1;" (assignment_expression "*mangled = pcVar10 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar10 + 1" identifier + number_literal)) ;) (if_statement "if ((work->options & 4) == 0) {\n      string_prepend(&decl,"*");\n    }" if (parenthesized_expression "((work->options & 4) == 0)" ( (binary_expression "(work->options & 4) == 0" (parenthesized_expression "(work->options & 4)" ( (binary_expression "work->options & 4" (field_expression "work->options" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      string_prepend(&decl,"*");\n    }" { (expression_statement "string_prepend(&decl,"*");" (call_expression "string_prepend(&decl,"*")" identifier (argument_list "(&decl,"*")" ( (pointer_expression "&decl" & identifier) , (string_literal ""*"" " string_content ") ))) ;) })) (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) (if_statement "if (local_70 != 0) {\n      iVar11 = local_70;\n    }" if (parenthesized_expression "(local_70 != 0)" ( (binary_expression "local_70 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar11 = local_70;\n    }" { (expression_statement "iVar11 = local_70;" (assignment_expression "iVar11 = local_70" identifier = identifier) ;) })) (goto_statement "goto LAB_001cf820;" goto statement_identifier ;)) (case_statement "case 0x11:\n    *mangled = pcVar10 + 1;\n    string_prepend(&decl,"&");\n    iVar11 = 2;\n    if (local_70 != 0) {\n      iVar11 = local_70;\n    }\n    goto LAB_001cf820;" case number_literal : (expression_statement "*mangled = pcVar10 + 1;" (assignment_expression "*mangled = pcVar10 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar10 + 1" identifier + number_literal)) ;) (expression_statement "string_prepend(&decl,"&");" (call_expression "string_prepend(&decl,"&")" identifier (argument_list "(&decl,"&")" ( (pointer_expression "&decl" & identifier) , (string_literal ""&"" " string_content ") ))) ;) (expression_statement "iVar11 = 2;" (assignment_expression "iVar11 = 2" identifier = number_literal) ;) (if_statement "if (local_70 != 0) {\n      iVar11 = local_70;\n    }" if (parenthesized_expression "(local_70 != 0)" ( (binary_expression "local_70 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar11 = local_70;\n    }" { (expression_statement "iVar11 = local_70;" (assignment_expression "iVar11 = local_70" identifier = identifier) ;) })) (goto_statement "goto LAB_001cf820;" goto statement_identifier ;)) (case_statement "case 0x13:\n    *mangled = pcVar10 + 1;\n    iVar6 = get_count(mangled,&n);\n    if (((iVar6 == 0) || (n < 0)) || (work->ntypes <= n)) break;\n    if (work->nproctypes < 1) goto LAB_001cfe64;\n    piVar9 = work->proctypevec;\n    piVar1 = piVar9 + work->nproctypes;\n    do {\n      if (n == *piVar9) {\n        iVar12 = 0;\n      }\n      piVar9 = piVar9 + 1;\n    } while (piVar1 != piVar9);\n    if (iVar12 != 0) {\nLAB_001cfe64:\n      push_processed_type(work,n);\n      bVar4 = true;\n      mangled = &remembered_type;\n      remembered_type = work->typevec[n];\n    }\n    goto LAB_001cf820;" case number_literal : (expression_statement "*mangled = pcVar10 + 1;" (assignment_expression "*mangled = pcVar10 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar10 + 1" identifier + number_literal)) ;) (expression_statement "iVar6 = get_count(mangled,&n);" (assignment_expression "iVar6 = get_count(mangled,&n)" identifier = (call_expression "get_count(mangled,&n)" identifier (argument_list "(mangled,&n)" ( identifier , (pointer_expression "&n" & identifier) )))) ;) (if_statement "if (((iVar6 == 0) || (n < 0)) || (work->ntypes <= n)) break;" if (parenthesized_expression "(((iVar6 == 0) || (n < 0)) || (work->ntypes <= n))" ( (binary_expression "((iVar6 == 0) || (n < 0)) || (work->ntypes <= n)" (parenthesized_expression "((iVar6 == 0) || (n < 0))" ( (binary_expression "(iVar6 == 0) || (n < 0)" (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) || (parenthesized_expression "(n < 0)" ( (binary_expression "n < 0" identifier < number_literal) ))) )) || (parenthesized_expression "(work->ntypes <= n)" ( (binary_expression "work->ntypes <= n" (field_expression "work->ntypes" identifier -> field_identifier) <= identifier) ))) )) (break_statement "break;" break ;)) (if_statement "if (work->nproctypes < 1) goto LAB_001cfe64;" if (parenthesized_expression "(work->nproctypes < 1)" ( (binary_expression "work->nproctypes < 1" (field_expression "work->nproctypes" identifier -> field_identifier) < number_literal) )) (goto_statement "goto LAB_001cfe64;" goto statement_identifier ;)) (expression_statement "piVar9 = work->proctypevec;" (assignment_expression "piVar9 = work->proctypevec" identifier = (field_expression "work->proctypevec" identifier -> field_identifier)) ;) (expression_statement "piVar1 = piVar9 + work->nproctypes;" (assignment_expression "piVar1 = piVar9 + work->nproctypes" identifier = (binary_expression "piVar9 + work->nproctypes" identifier + (field_expression "work->nproctypes" identifier -> field_identifier))) ;) (do_statement "do {\n      if (n == *piVar9) {\n        iVar12 = 0;\n      }\n      piVar9 = piVar9 + 1;\n    } while (piVar1 != piVar9);" do (compound_statement "{\n      if (n == *piVar9) {\n        iVar12 = 0;\n      }\n      piVar9 = piVar9 + 1;\n    }" { (if_statement "if (n == *piVar9) {\n        iVar12 = 0;\n      }" if (parenthesized_expression "(n == *piVar9)" ( (binary_expression "n == *piVar9" identifier == (pointer_expression "*piVar9" * identifier)) )) (compound_statement "{\n        iVar12 = 0;\n      }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) })) (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" identifier = (binary_expression "piVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar1 != piVar9)" ( (binary_expression "piVar1 != piVar9" identifier != identifier) )) ;) (if_statement "if (iVar12 != 0) {\nLAB_001cfe64:\n      push_processed_type(work,n);\n      bVar4 = true;\n      mangled = &remembered_type;\n      remembered_type = work->typevec[n];\n    }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_001cfe64:\n      push_processed_type(work,n);\n      bVar4 = true;\n      mangled = &remembered_type;\n      remembered_type = work->typevec[n];\n    }" { (labeled_statement "LAB_001cfe64:\n      push_processed_type(work,n);" statement_identifier : (expression_statement "push_processed_type(work,n);" (call_expression "push_processed_type(work,n)" identifier (argument_list "(work,n)" ( identifier , identifier ))) ;)) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) (expression_statement "mangled = &remembered_type;" (assignment_expression "mangled = &remembered_type" identifier = (pointer_expression "&remembered_type" & identifier)) ;) (expression_statement "remembered_type = work->typevec[n];" (assignment_expression "remembered_type = work->typevec[n]" identifier = (subscript_expression "work->typevec[n]" (field_expression "work->typevec" identifier -> field_identifier) [ identifier ])) ;) })) (goto_statement "goto LAB_001cf820;" goto statement_identifier ;)) })) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_001cf820;" goto statement_identifier ;) (labeled_statement "LAB_001d0082:\n  do {\n    cVar5 = *pcVar7;\n    switch(cVar5 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((work->options & 2) != 0) {\n        if (result->b != result->p) {\n          string_prepend(result," ");\n          pcVar7 = *mangled;\n          cVar5 = *pcVar7;\n        }\n        pcVar10 = demangle_qualifier((int)cVar5);\n        if ((pcVar10 != (char *)0x0) && (*pcVar10 != '\0')) {\n          string_prepend(result,pcVar10);\n          pcVar7 = *mangled;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *mangled = pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"__complex");\n      pcVar7 = *mangled;\n      break;\n    case '\x10':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"signed");\n      pcVar7 = *mangled;\n      break;\n    case '\x12':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"unsigned");\n      pcVar7 = *mangled;\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    cVar5 = *pcVar7;\n    switch(cVar5 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((work->options & 2) != 0) {\n        if (result->b != result->p) {\n          string_prepend(result," ");\n          pcVar7 = *mangled;\n          cVar5 = *pcVar7;\n        }\n        pcVar10 = demangle_qualifier((int)cVar5);\n        if ((pcVar10 != (char *)0x0) && (*pcVar10 != '\0')) {\n          string_prepend(result,pcVar10);\n          pcVar7 = *mangled;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *mangled = pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"__complex");\n      pcVar7 = *mangled;\n      break;\n    case '\x10':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"signed");\n      pcVar7 = *mangled;\n      break;\n    case '\x12':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"unsigned");\n      pcVar7 = *mangled;\n    }\n  } while( true );" do (compound_statement "{\n    cVar5 = *pcVar7;\n    switch(cVar5 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((work->options & 2) != 0) {\n        if (result->b != result->p) {\n          string_prepend(result," ");\n          pcVar7 = *mangled;\n          cVar5 = *pcVar7;\n        }\n        pcVar10 = demangle_qualifier((int)cVar5);\n        if ((pcVar10 != (char *)0x0) && (*pcVar10 != '\0')) {\n          string_prepend(result,pcVar10);\n          pcVar7 = *mangled;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *mangled = pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"__complex");\n      pcVar7 = *mangled;\n      break;\n    case '\x10':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"signed");\n      pcVar7 = *mangled;\n      break;\n    case '\x12':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"unsigned");\n      pcVar7 = *mangled;\n    }\n  }" { (expression_statement "cVar5 = *pcVar7;" (assignment_expression "cVar5 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (switch_statement "switch(cVar5 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((work->options & 2) != 0) {\n        if (result->b != result->p) {\n          string_prepend(result," ");\n          pcVar7 = *mangled;\n          cVar5 = *pcVar7;\n        }\n        pcVar10 = demangle_qualifier((int)cVar5);\n        if ((pcVar10 != (char *)0x0) && (*pcVar10 != '\0')) {\n          string_prepend(result,pcVar10);\n          pcVar7 = *mangled;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *mangled = pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"__complex");\n      pcVar7 = *mangled;\n      break;\n    case '\x10':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"signed");\n      pcVar7 = *mangled;\n      break;\n    case '\x12':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"unsigned");\n      pcVar7 = *mangled;\n    }" switch (parenthesized_expression "(cVar5 + -0x43)" ( (binary_expression "cVar5 + -0x43" identifier + number_literal) )) (compound_statement "{\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((work->options & 2) != 0) {\n        if (result->b != result->p) {\n          string_prepend(result," ");\n          pcVar7 = *mangled;\n          cVar5 = *pcVar7;\n        }\n        pcVar10 = demangle_qualifier((int)cVar5);\n        if ((pcVar10 != (char *)0x0) && (*pcVar10 != '\0')) {\n          string_prepend(result,pcVar10);\n          pcVar7 = *mangled;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *mangled = pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"__complex");\n      pcVar7 = *mangled;\n      break;\n    case '\x10':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"signed");\n      pcVar7 = *mangled;\n      break;\n    case '\x12':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"unsigned");\n      pcVar7 = *mangled;\n    }" { (case_statement "case '\0':" case (char_literal "'\0'" ' escape_sequence ') :) (case_statement "case '\x13':" case (char_literal "'\x13'" ' escape_sequence ') :) (case_statement "case '2':\n      if ((work->options & 2) != 0) {\n        if (result->b != result->p) {\n          string_prepend(result," ");\n          pcVar7 = *mangled;\n          cVar5 = *pcVar7;\n        }\n        pcVar10 = demangle_qualifier((int)cVar5);\n        if ((pcVar10 != (char *)0x0) && (*pcVar10 != '\0')) {\n          string_prepend(result,pcVar10);\n          pcVar7 = *mangled;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *mangled = pcVar7;\n      break;" case (char_literal "'2'" ' character ') : (if_statement "if ((work->options & 2) != 0) {\n        if (result->b != result->p) {\n          string_prepend(result," ");\n          pcVar7 = *mangled;\n          cVar5 = *pcVar7;\n        }\n        pcVar10 = demangle_qualifier((int)cVar5);\n        if ((pcVar10 != (char *)0x0) && (*pcVar10 != '\0')) {\n          string_prepend(result,pcVar10);\n          pcVar7 = *mangled;\n        }\n      }" if (parenthesized_expression "((work->options & 2) != 0)" ( (binary_expression "(work->options & 2) != 0" (parenthesized_expression "(work->options & 2)" ( (binary_expression "work->options & 2" (field_expression "work->options" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n        if (result->b != result->p) {\n          string_prepend(result," ");\n          pcVar7 = *mangled;\n          cVar5 = *pcVar7;\n        }\n        pcVar10 = demangle_qualifier((int)cVar5);\n        if ((pcVar10 != (char *)0x0) && (*pcVar10 != '\0')) {\n          string_prepend(result,pcVar10);\n          pcVar7 = *mangled;\n        }\n      }" { (if_statement "if (result->b != result->p) {\n          string_prepend(result," ");\n          pcVar7 = *mangled;\n          cVar5 = *pcVar7;\n        }" if (parenthesized_expression "(result->b != result->p)" ( (binary_expression "result->b != result->p" (field_expression "result->b" identifier -> field_identifier) != (field_expression "result->p" identifier -> field_identifier)) )) (compound_statement "{\n          string_prepend(result," ");\n          pcVar7 = *mangled;\n          cVar5 = *pcVar7;\n        }" { (expression_statement "string_prepend(result," ");" (call_expression "string_prepend(result," ")" identifier (argument_list "(result," ")" ( identifier , (string_literal "" "" " string_content ") ))) ;) (expression_statement "pcVar7 = *mangled;" (assignment_expression "pcVar7 = *mangled" identifier = (pointer_expression "*mangled" * identifier)) ;) (expression_statement "cVar5 = *pcVar7;" (assignment_expression "cVar5 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) })) (expression_statement "pcVar10 = demangle_qualifier((int)cVar5);" (assignment_expression "pcVar10 = demangle_qualifier((int)cVar5)" identifier = (call_expression "demangle_qualifier((int)cVar5)" identifier (argument_list "((int)cVar5)" ( (cast_expression "(int)cVar5" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (if_statement "if ((pcVar10 != (char *)0x0) && (*pcVar10 != '\0')) {\n          string_prepend(result,pcVar10);\n          pcVar7 = *mangled;\n        }" if (parenthesized_expression "((pcVar10 != (char *)0x0) && (*pcVar10 != '\0'))" ( (binary_expression "(pcVar10 != (char *)0x0) && (*pcVar10 != '\0')" (parenthesized_expression "(pcVar10 != (char *)0x0)" ( (binary_expression "pcVar10 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*pcVar10 != '\0')" ( (binary_expression "*pcVar10 != '\0'" (pointer_expression "*pcVar10" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          string_prepend(result,pcVar10);\n          pcVar7 = *mangled;\n        }" { (expression_statement "string_prepend(result,pcVar10);" (call_expression "string_prepend(result,pcVar10)" identifier (argument_list "(result,pcVar10)" ( identifier , identifier ))) ;) (expression_statement "pcVar7 = *mangled;" (assignment_expression "pcVar7 = *mangled" identifier = (pointer_expression "*mangled" * identifier)) ;) })) })) (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "*mangled = pcVar7;" (assignment_expression "*mangled = pcVar7" (pointer_expression "*mangled" * identifier) = identifier) ;) (break_statement "break;" break ;)) (case_statement "default:\n      goto code_r0x001d0176;" default : (goto_statement "goto code_r0x001d0176;" goto statement_identifier ;)) (case_statement "case '\a':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"__complex");\n      pcVar7 = *mangled;\n      break;" case (char_literal "'\a'" ' escape_sequence ') : (expression_statement "*mangled = pcVar7 + 1;" (assignment_expression "*mangled = pcVar7 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (if_statement "if (result->b != result->p) {\n        string_append(result," ");\n      }" if (parenthesized_expression "(result->b != result->p)" ( (binary_expression "result->b != result->p" (field_expression "result->b" identifier -> field_identifier) != (field_expression "result->p" identifier -> field_identifier)) )) (compound_statement "{\n        string_append(result," ");\n      }" { (expression_statement "string_append(result," ");" (call_expression "string_append(result," ")" identifier (argument_list "(result," ")" ( identifier , (string_literal "" "" " string_content ") ))) ;) })) (expression_statement "string_append(result,"__complex");" (call_expression "string_append(result,"__complex")" identifier (argument_list "(result,"__complex")" ( identifier , (string_literal ""__complex"" " string_content ") ))) ;) (expression_statement "pcVar7 = *mangled;" (assignment_expression "pcVar7 = *mangled" identifier = (pointer_expression "*mangled" * identifier)) ;) (break_statement "break;" break ;)) (case_statement "case '\x10':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"signed");\n      pcVar7 = *mangled;\n      break;" case (char_literal "'\x10'" ' escape_sequence ') : (expression_statement "*mangled = pcVar7 + 1;" (assignment_expression "*mangled = pcVar7 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (if_statement "if (result->b != result->p) {\n        string_append(result," ");\n      }" if (parenthesized_expression "(result->b != result->p)" ( (binary_expression "result->b != result->p" (field_expression "result->b" identifier -> field_identifier) != (field_expression "result->p" identifier -> field_identifier)) )) (compound_statement "{\n        string_append(result," ");\n      }" { (expression_statement "string_append(result," ");" (call_expression "string_append(result," ")" identifier (argument_list "(result," ")" ( identifier , (string_literal "" "" " string_content ") ))) ;) })) (expression_statement "string_append(result,"signed");" (call_expression "string_append(result,"signed")" identifier (argument_list "(result,"signed")" ( identifier , (string_literal ""signed"" " string_content ") ))) ;) (expression_statement "pcVar7 = *mangled;" (assignment_expression "pcVar7 = *mangled" identifier = (pointer_expression "*mangled" * identifier)) ;) (break_statement "break;" break ;)) (case_statement "case '\x12':\n      *mangled = pcVar7 + 1;\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      string_append(result,"unsigned");\n      pcVar7 = *mangled;" case (char_literal "'\x12'" ' escape_sequence ') : (expression_statement "*mangled = pcVar7 + 1;" (assignment_expression "*mangled = pcVar7 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (if_statement "if (result->b != result->p) {\n        string_append(result," ");\n      }" if (parenthesized_expression "(result->b != result->p)" ( (binary_expression "result->b != result->p" (field_expression "result->b" identifier -> field_identifier) != (field_expression "result->p" identifier -> field_identifier)) )) (compound_statement "{\n        string_append(result," ");\n      }" { (expression_statement "string_append(result," ");" (call_expression "string_append(result," ")" identifier (argument_list "(result," ")" ( identifier , (string_literal "" "" " string_content ") ))) ;) })) (expression_statement "string_append(result,"unsigned");" (call_expression "string_append(result,"unsigned")" identifier (argument_list "(result,"unsigned")" ( identifier , (string_literal ""unsigned"" " string_content ") ))) ;) (expression_statement "pcVar7 = *mangled;" (assignment_expression "pcVar7 = *mangled" identifier = (pointer_expression "*mangled" * identifier)) ;)) })) }) while (parenthesized_expression "( true )" ( true )) ;)) (labeled_statement "_L530:\n  *mangled = pcVar10 + 1;" statement_identifier : (expression_statement "*mangled = pcVar10 + 1;" (assignment_expression "*mangled = pcVar10 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar10 + 1" identifier + number_literal)) ;)) (if_statement "if ((pcVar7 != decl.p) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n    string_prepend(&decl,"(");\n    string_append(&decl,")");\n  }" if (parenthesized_expression "((pcVar7 != decl.p) && ((*pcVar7 - 0x26U & 0xfb) == 0))" ( (binary_expression "(pcVar7 != decl.p) && ((*pcVar7 - 0x26U & 0xfb) == 0)" (parenthesized_expression "(pcVar7 != decl.p)" ( (binary_expression "pcVar7 != decl.p" identifier != (field_expression "decl.p" identifier . field_identifier)) )) && (parenthesized_expression "((*pcVar7 - 0x26U & 0xfb) == 0)" ( (binary_expression "(*pcVar7 - 0x26U & 0xfb) == 0" (parenthesized_expression "(*pcVar7 - 0x26U & 0xfb)" ( (binary_expression "*pcVar7 - 0x26U & 0xfb" (binary_expression "*pcVar7 - 0x26U" (pointer_expression "*pcVar7" * identifier) - number_literal) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    string_prepend(&decl,"(");\n    string_append(&decl,")");\n  }" { (expression_statement "string_prepend(&decl,"(");" (call_expression "string_prepend(&decl,"(")" identifier (argument_list "(&decl,"(")" ( (pointer_expression "&decl" & identifier) , (string_literal ""("" " string_content ") ))) ;) (expression_statement "string_append(&decl,")");" (call_expression "string_append(&decl,")")" identifier (argument_list "(&decl,")")" ( (pointer_expression "&decl" & identifier) , (string_literal "")"" " string_content ") ))) ;) })) (expression_statement "string_append(&decl,"[");" (call_expression "string_append(&decl,"[")" identifier (argument_list "(&decl,"[")" ( (pointer_expression "&decl" & identifier) , (string_literal ""["" " string_content ") ))) ;) (expression_statement "pcVar7 = *mangled;" (assignment_expression "pcVar7 = *mangled" identifier = (pointer_expression "*mangled" * identifier)) ;) (if_statement "if (*pcVar7 != '_') {\n    iVar12 = demangle_template_value_parm(work,mangled,&decl,tk_integral);\n    pcVar7 = *mangled;\n    if (*pcVar7 != '_') goto LAB_001cfa7a;\n  }" if (parenthesized_expression "(*pcVar7 != '_')" ( (binary_expression "*pcVar7 != '_'" (pointer_expression "*pcVar7" * identifier) != (char_literal "'_'" ' character ')) )) (compound_statement "{\n    iVar12 = demangle_template_value_parm(work,mangled,&decl,tk_integral);\n    pcVar7 = *mangled;\n    if (*pcVar7 != '_') goto LAB_001cfa7a;\n  }" { (expression_statement "iVar12 = demangle_template_value_parm(work,mangled,&decl,tk_integral);" (assignment_expression "iVar12 = demangle_template_value_parm(work,mangled,&decl,tk_integral)" identifier = (call_expression "demangle_template_value_parm(work,mangled,&decl,tk_integral)" identifier (argument_list "(work,mangled,&decl,tk_integral)" ( identifier , identifier , (pointer_expression "&decl" & identifier) , identifier )))) ;) (expression_statement "pcVar7 = *mangled;" (assignment_expression "pcVar7 = *mangled" identifier = (pointer_expression "*mangled" * identifier)) ;) (if_statement "if (*pcVar7 != '_') goto LAB_001cfa7a;" if (parenthesized_expression "(*pcVar7 != '_')" ( (binary_expression "*pcVar7 != '_'" (pointer_expression "*pcVar7" * identifier) != (char_literal "'_'" ' character ')) )) (goto_statement "goto LAB_001cfa7a;" goto statement_identifier ;)) })) (expression_statement "*mangled = pcVar7 + 1;" (assignment_expression "*mangled = pcVar7 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_001cfa7a:\n  string_append(&decl,"]");" statement_identifier : (expression_statement "string_append(&decl,"]");" (call_expression "string_append(&decl,"]")" identifier (argument_list "(&decl,"]")" ( (pointer_expression "&decl" & identifier) , (string_literal ""]"" " string_content ") ))) ;)) (goto_statement "goto LAB_001cf820;" goto statement_identifier ;) (labeled_statement "code_r0x001d0176:\n  pcVar10 = pcVar7;" statement_identifier : (expression_statement "pcVar10 = pcVar7;" (assignment_expression "pcVar10 = pcVar7" identifier = identifier) ;)) (switch_statement "switch(cVar5) {\n  case '\0':\n  case '_':\n    goto _L656;\n  default:\n    goto _L589;\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    iVar11 = register_Btype(work);\n    temp.e = (char *)0x0;\n    temp.p = (char *)0x0;\n    temp.b = (char *)0x0;\n    iVar12 = demangle_class_name(work,mangled,&temp);\n    if (iVar12 != 0) {\n      iVar12 = (int)temp.p - (int)temp.b;\n      if (temp.b == temp.p) {\n        iVar12 = 0;\n      }\n      remember_Btype((work_stuff *)&work->btypevec,temp.b,iVar12,iVar11);\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      iVar12 = 1;\n      string_appends(result,&temp,(string *)temp.p);\n    }\n    goto joined_r0x001d0375;\n  case 'G':\n    pcVar10 = pcVar7 + 1;\n    *mangled = pcVar10;\n    if ((_sch_istable[(byte)pcVar7[1]] & 4) != 0) goto _L586;\n    goto _L589;\n  case 'I':\n_L586:\n    pcVar7 = pcVar10 + 1;\n    *mangled = pcVar7;\n    if (pcVar10[1] == '_') {\n      iVar12 = 0;\n      *mangled = pcVar10 + 2;\n      pcVar7 = pcVar10 + 2;\n      do {\n        pcVar10 = pcVar7;\n        cVar5 = *pcVar10;\n        pcVar7 = pcVar10;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto LAB_001d0200;\n        *(char *)((int)&temp.b + iVar12) = cVar5;\n        pcVar7 = pcVar10 + 1;\n        iVar12 = iVar12 + 1;\n        *mangled = pcVar7;\n      } while (iVar12 != 0x24);\n      cVar5 = pcVar10[1];\nLAB_001d0200:\n      if (cVar5 != '_') goto _L589;\n      *(undefined1 *)((int)&temp.b + iVar12) = 0;\n      *mangled = pcVar7 + 1;\n    }\n    else {\n      strncpy((char *)&temp,pcVar7,2);\n      temp.b._0_3_ = CONCAT12(0,(ushort)temp.b);\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *mangled = pcVar7 + sVar8;\n    }\n    sscanf((char *)&temp,"%x",&dec);\n    sprintf((char *)&temp,"int%u_t",dec);\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    if ((char)temp.b == '\0') goto _L656;\n    iVar12 = 4;\n    string_append(result,(char *)&temp);\n    iVar11 = 4;\n    break;\n  case 'b':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 5;\n    string_append(result,"bool");\n    iVar11 = 5;\n    break;\n  case 'c':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 6;\n    string_append(result,"char");\n    iVar11 = 6;\n    break;\n  case 'd':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 7;\n    string_append(result,"double");\n    iVar11 = 7;\n    break;\n  case 'f':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 7;\n    string_append(result,"float");\n    iVar11 = 7;\n    break;\n  case 'i':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"int");\n    iVar11 = 4;\n    break;\n  case 'l':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"long");\n    iVar11 = 4;\n    break;\n  case 'r':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 7;\n    string_append(result,"long double");\n    iVar11 = 7;\n    break;\n  case 's':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"short");\n    iVar11 = 4;\n    break;\n  case 't':\n    temp.e = (char *)0x0;\n    temp.p = (char *)0x0;\n    temp.b = (char *)0x0;\n    iVar12 = demangle_template(work,mangled,&temp,(string *)0x0,1,1);\n    string_appends(result,&temp,(string *)temp.p);\njoined_r0x001d0375:\n    if (temp.b != (char *)0x0) {\n      free(temp.b);\n    }\n    if (iVar12 != 0) {\n_L656:\n      iVar12 = 4;\n      iVar11 = 4;\n      break;\n    }\n_L589:\n    if (result->b == (char *)0x0) {\n      iVar12 = 0;\n      pcVar7 = decl.b;\n    }\n    else {\n      iVar12 = 0;\n      free(result->b);\n      result->p = (char *)0x0;\n      result->e = (char *)0x0;\n      result->b = (char *)0x0;\n      pcVar7 = decl.b;\n    }\n    goto LAB_001cfdb8;\n  case 'v':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"void");\n    iVar11 = 4;\n    break;\n  case 'w':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 6;\n    string_append(result,"wchar_t");\n    iVar11 = 6;\n    break;\n  case 'x':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"long long");\n    iVar11 = 4;\n  }" switch (parenthesized_expression "(cVar5)" ( identifier )) (compound_statement "{\n  case '\0':\n  case '_':\n    goto _L656;\n  default:\n    goto _L589;\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    iVar11 = register_Btype(work);\n    temp.e = (char *)0x0;\n    temp.p = (char *)0x0;\n    temp.b = (char *)0x0;\n    iVar12 = demangle_class_name(work,mangled,&temp);\n    if (iVar12 != 0) {\n      iVar12 = (int)temp.p - (int)temp.b;\n      if (temp.b == temp.p) {\n        iVar12 = 0;\n      }\n      remember_Btype((work_stuff *)&work->btypevec,temp.b,iVar12,iVar11);\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      iVar12 = 1;\n      string_appends(result,&temp,(string *)temp.p);\n    }\n    goto joined_r0x001d0375;\n  case 'G':\n    pcVar10 = pcVar7 + 1;\n    *mangled = pcVar10;\n    if ((_sch_istable[(byte)pcVar7[1]] & 4) != 0) goto _L586;\n    goto _L589;\n  case 'I':\n_L586:\n    pcVar7 = pcVar10 + 1;\n    *mangled = pcVar7;\n    if (pcVar10[1] == '_') {\n      iVar12 = 0;\n      *mangled = pcVar10 + 2;\n      pcVar7 = pcVar10 + 2;\n      do {\n        pcVar10 = pcVar7;\n        cVar5 = *pcVar10;\n        pcVar7 = pcVar10;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto LAB_001d0200;\n        *(char *)((int)&temp.b + iVar12) = cVar5;\n        pcVar7 = pcVar10 + 1;\n        iVar12 = iVar12 + 1;\n        *mangled = pcVar7;\n      } while (iVar12 != 0x24);\n      cVar5 = pcVar10[1];\nLAB_001d0200:\n      if (cVar5 != '_') goto _L589;\n      *(undefined1 *)((int)&temp.b + iVar12) = 0;\n      *mangled = pcVar7 + 1;\n    }\n    else {\n      strncpy((char *)&temp,pcVar7,2);\n      temp.b._0_3_ = CONCAT12(0,(ushort)temp.b);\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *mangled = pcVar7 + sVar8;\n    }\n    sscanf((char *)&temp,"%x",&dec);\n    sprintf((char *)&temp,"int%u_t",dec);\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    if ((char)temp.b == '\0') goto _L656;\n    iVar12 = 4;\n    string_append(result,(char *)&temp);\n    iVar11 = 4;\n    break;\n  case 'b':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 5;\n    string_append(result,"bool");\n    iVar11 = 5;\n    break;\n  case 'c':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 6;\n    string_append(result,"char");\n    iVar11 = 6;\n    break;\n  case 'd':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 7;\n    string_append(result,"double");\n    iVar11 = 7;\n    break;\n  case 'f':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 7;\n    string_append(result,"float");\n    iVar11 = 7;\n    break;\n  case 'i':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"int");\n    iVar11 = 4;\n    break;\n  case 'l':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"long");\n    iVar11 = 4;\n    break;\n  case 'r':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 7;\n    string_append(result,"long double");\n    iVar11 = 7;\n    break;\n  case 's':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"short");\n    iVar11 = 4;\n    break;\n  case 't':\n    temp.e = (char *)0x0;\n    temp.p = (char *)0x0;\n    temp.b = (char *)0x0;\n    iVar12 = demangle_template(work,mangled,&temp,(string *)0x0,1,1);\n    string_appends(result,&temp,(string *)temp.p);\njoined_r0x001d0375:\n    if (temp.b != (char *)0x0) {\n      free(temp.b);\n    }\n    if (iVar12 != 0) {\n_L656:\n      iVar12 = 4;\n      iVar11 = 4;\n      break;\n    }\n_L589:\n    if (result->b == (char *)0x0) {\n      iVar12 = 0;\n      pcVar7 = decl.b;\n    }\n    else {\n      iVar12 = 0;\n      free(result->b);\n      result->p = (char *)0x0;\n      result->e = (char *)0x0;\n      result->b = (char *)0x0;\n      pcVar7 = decl.b;\n    }\n    goto LAB_001cfdb8;\n  case 'v':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"void");\n    iVar11 = 4;\n    break;\n  case 'w':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 6;\n    string_append(result,"wchar_t");\n    iVar11 = 6;\n    break;\n  case 'x':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"long long");\n    iVar11 = 4;\n  }" { (case_statement "case '\0':" case (char_literal "'\0'" ' escape_sequence ') :) (case_statement "case '_':\n    goto _L656;" case (char_literal "'_'" ' character ') : (goto_statement "goto _L656;" goto statement_identifier ;)) (case_statement "default:\n    goto _L589;" default : (goto_statement "goto _L589;" goto statement_identifier ;)) (case_statement "case '0':" case (char_literal "'0'" ' character ') :) (case_statement "case '1':" case (char_literal "'1'" ' character ') :) (case_statement "case '2':" case (char_literal "'2'" ' character ') :) (case_statement "case '3':" case (char_literal "'3'" ' character ') :) (case_statement "case '4':" case (char_literal "'4'" ' character ') :) (case_statement "case '5':" case (char_literal "'5'" ' character ') :) (case_statement "case '6':" case (char_literal "'6'" ' character ') :) (case_statement "case '7':" case (char_literal "'7'" ' character ') :) (case_statement "case '8':" case (char_literal "'8'" ' character ') :) (case_statement "case '9':\n    iVar11 = register_Btype(work);\n    temp.e = (char *)0x0;\n    temp.p = (char *)0x0;\n    temp.b = (char *)0x0;\n    iVar12 = demangle_class_name(work,mangled,&temp);\n    if (iVar12 != 0) {\n      iVar12 = (int)temp.p - (int)temp.b;\n      if (temp.b == temp.p) {\n        iVar12 = 0;\n      }\n      remember_Btype((work_stuff *)&work->btypevec,temp.b,iVar12,iVar11);\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      iVar12 = 1;\n      string_appends(result,&temp,(string *)temp.p);\n    }\n    goto joined_r0x001d0375;" case (char_literal "'9'" ' character ') : (expression_statement "iVar11 = register_Btype(work);" (assignment_expression "iVar11 = register_Btype(work)" identifier = (call_expression "register_Btype(work)" identifier (argument_list "(work)" ( identifier )))) ;) (expression_statement "temp.e = (char *)0x0;" (assignment_expression "temp.e = (char *)0x0" (field_expression "temp.e" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "temp.p = (char *)0x0;" (assignment_expression "temp.p = (char *)0x0" (field_expression "temp.p" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "temp.b = (char *)0x0;" (assignment_expression "temp.b = (char *)0x0" (field_expression "temp.b" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar12 = demangle_class_name(work,mangled,&temp);" (assignment_expression "iVar12 = demangle_class_name(work,mangled,&temp)" identifier = (call_expression "demangle_class_name(work,mangled,&temp)" identifier (argument_list "(work,mangled,&temp)" ( identifier , identifier , (pointer_expression "&temp" & identifier) )))) ;) (if_statement "if (iVar12 != 0) {\n      iVar12 = (int)temp.p - (int)temp.b;\n      if (temp.b == temp.p) {\n        iVar12 = 0;\n      }\n      remember_Btype((work_stuff *)&work->btypevec,temp.b,iVar12,iVar11);\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      iVar12 = 1;\n      string_appends(result,&temp,(string *)temp.p);\n    }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar12 = (int)temp.p - (int)temp.b;\n      if (temp.b == temp.p) {\n        iVar12 = 0;\n      }\n      remember_Btype((work_stuff *)&work->btypevec,temp.b,iVar12,iVar11);\n      if (result->b != result->p) {\n        string_append(result," ");\n      }\n      iVar12 = 1;\n      string_appends(result,&temp,(string *)temp.p);\n    }" { (expression_statement "iVar12 = (int)temp.p - (int)temp.b;" (assignment_expression "iVar12 = (int)temp.p - (int)temp.b" identifier = (binary_expression "(int)temp.p - (int)temp.b" (cast_expression "(int)temp.p" ( (type_descriptor "int" primitive_type) ) (field_expression "temp.p" identifier . field_identifier)) - (cast_expression "(int)temp.b" ( (type_descriptor "int" primitive_type) ) (field_expression "temp.b" identifier . field_identifier)))) ;) (if_statement "if (temp.b == temp.p) {\n        iVar12 = 0;\n      }" if (parenthesized_expression "(temp.b == temp.p)" ( (binary_expression "temp.b == temp.p" (field_expression "temp.b" identifier . field_identifier) == (field_expression "temp.p" identifier . field_identifier)) )) (compound_statement "{\n        iVar12 = 0;\n      }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) })) (expression_statement "remember_Btype((work_stuff *)&work->btypevec,temp.b,iVar12,iVar11);" (call_expression "remember_Btype((work_stuff *)&work->btypevec,temp.b,iVar12,iVar11)" identifier (argument_list "((work_stuff *)&work->btypevec,temp.b,iVar12,iVar11)" ( (cast_expression "(work_stuff *)&work->btypevec" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&work->btypevec" & (field_expression "work->btypevec" identifier -> field_identifier))) , (field_expression "temp.b" identifier . field_identifier) , identifier , identifier ))) ;) (if_statement "if (result->b != result->p) {\n        string_append(result," ");\n      }" if (parenthesized_expression "(result->b != result->p)" ( (binary_expression "result->b != result->p" (field_expression "result->b" identifier -> field_identifier) != (field_expression "result->p" identifier -> field_identifier)) )) (compound_statement "{\n        string_append(result," ");\n      }" { (expression_statement "string_append(result," ");" (call_expression "string_append(result," ")" identifier (argument_list "(result," ")" ( identifier , (string_literal "" "" " string_content ") ))) ;) })) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (expression_statement "string_appends(result,&temp,(string *)temp.p);" (call_expression "string_appends(result,&temp,(string *)temp.p)" identifier (argument_list "(result,&temp,(string *)temp.p)" ( identifier , (pointer_expression "&temp" & identifier) , (cast_expression "(string *)temp.p" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "temp.p" identifier . field_identifier)) ))) ;) })) (goto_statement "goto joined_r0x001d0375;" goto statement_identifier ;)) (case_statement "case 'G':\n    pcVar10 = pcVar7 + 1;\n    *mangled = pcVar10;\n    if ((_sch_istable[(byte)pcVar7[1]] & 4) != 0) goto _L586;\n    goto _L589;" case (char_literal "'G'" ' character ') : (expression_statement "pcVar10 = pcVar7 + 1;" (assignment_expression "pcVar10 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "*mangled = pcVar10;" (assignment_expression "*mangled = pcVar10" (pointer_expression "*mangled" * identifier) = identifier) ;) (if_statement "if ((_sch_istable[(byte)pcVar7[1]] & 4) != 0) goto _L586;" if (parenthesized_expression "((_sch_istable[(byte)pcVar7[1]] & 4) != 0)" ( (binary_expression "(_sch_istable[(byte)pcVar7[1]] & 4) != 0" (parenthesized_expression "(_sch_istable[(byte)pcVar7[1]] & 4)" ( (binary_expression "_sch_istable[(byte)pcVar7[1]] & 4" (subscript_expression "_sch_istable[(byte)pcVar7[1]]" identifier [ (cast_expression "(byte)pcVar7[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar7[1]" identifier [ number_literal ])) ]) & number_literal) )) != number_literal) )) (goto_statement "goto _L586;" goto statement_identifier ;)) (goto_statement "goto _L589;" goto statement_identifier ;)) (case_statement "case 'I':\n_L586:\n    pcVar7 = pcVar10 + 1;\n    *mangled = pcVar7;\n    if (pcVar10[1] == '_') {\n      iVar12 = 0;\n      *mangled = pcVar10 + 2;\n      pcVar7 = pcVar10 + 2;\n      do {\n        pcVar10 = pcVar7;\n        cVar5 = *pcVar10;\n        pcVar7 = pcVar10;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto LAB_001d0200;\n        *(char *)((int)&temp.b + iVar12) = cVar5;\n        pcVar7 = pcVar10 + 1;\n        iVar12 = iVar12 + 1;\n        *mangled = pcVar7;\n      } while (iVar12 != 0x24);\n      cVar5 = pcVar10[1];\nLAB_001d0200:\n      if (cVar5 != '_') goto _L589;\n      *(undefined1 *)((int)&temp.b + iVar12) = 0;\n      *mangled = pcVar7 + 1;\n    }\n    else {\n      strncpy((char *)&temp,pcVar7,2);\n      temp.b._0_3_ = CONCAT12(0,(ushort)temp.b);\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *mangled = pcVar7 + sVar8;\n    }\n    sscanf((char *)&temp,"%x",&dec);\n    sprintf((char *)&temp,"int%u_t",dec);\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    if ((char)temp.b == '\0') goto _L656;\n    iVar12 = 4;\n    string_append(result,(char *)&temp);\n    iVar11 = 4;\n    break;" case (char_literal "'I'" ' character ') : (labeled_statement "_L586:\n    pcVar7 = pcVar10 + 1;" statement_identifier : (expression_statement "pcVar7 = pcVar10 + 1;" (assignment_expression "pcVar7 = pcVar10 + 1" identifier = (binary_expression "pcVar10 + 1" identifier + number_literal)) ;)) (expression_statement "*mangled = pcVar7;" (assignment_expression "*mangled = pcVar7" (pointer_expression "*mangled" * identifier) = identifier) ;) (if_statement "if (pcVar10[1] == '_') {\n      iVar12 = 0;\n      *mangled = pcVar10 + 2;\n      pcVar7 = pcVar10 + 2;\n      do {\n        pcVar10 = pcVar7;\n        cVar5 = *pcVar10;\n        pcVar7 = pcVar10;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto LAB_001d0200;\n        *(char *)((int)&temp.b + iVar12) = cVar5;\n        pcVar7 = pcVar10 + 1;\n        iVar12 = iVar12 + 1;\n        *mangled = pcVar7;\n      } while (iVar12 != 0x24);\n      cVar5 = pcVar10[1];\nLAB_001d0200:\n      if (cVar5 != '_') goto _L589;\n      *(undefined1 *)((int)&temp.b + iVar12) = 0;\n      *mangled = pcVar7 + 1;\n    }\n    else {\n      strncpy((char *)&temp,pcVar7,2);\n      temp.b._0_3_ = CONCAT12(0,(ushort)temp.b);\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *mangled = pcVar7 + sVar8;\n    }" if (parenthesized_expression "(pcVar10[1] == '_')" ( (binary_expression "pcVar10[1] == '_'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) == (char_literal "'_'" ' character ')) )) (compound_statement "{\n      iVar12 = 0;\n      *mangled = pcVar10 + 2;\n      pcVar7 = pcVar10 + 2;\n      do {\n        pcVar10 = pcVar7;\n        cVar5 = *pcVar10;\n        pcVar7 = pcVar10;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto LAB_001d0200;\n        *(char *)((int)&temp.b + iVar12) = cVar5;\n        pcVar7 = pcVar10 + 1;\n        iVar12 = iVar12 + 1;\n        *mangled = pcVar7;\n      } while (iVar12 != 0x24);\n      cVar5 = pcVar10[1];\nLAB_001d0200:\n      if (cVar5 != '_') goto _L589;\n      *(undefined1 *)((int)&temp.b + iVar12) = 0;\n      *mangled = pcVar7 + 1;\n    }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "*mangled = pcVar10 + 2;" (assignment_expression "*mangled = pcVar10 + 2" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar10 + 2" identifier + number_literal)) ;) (expression_statement "pcVar7 = pcVar10 + 2;" (assignment_expression "pcVar7 = pcVar10 + 2" identifier = (binary_expression "pcVar10 + 2" identifier + number_literal)) ;) (do_statement "do {\n        pcVar10 = pcVar7;\n        cVar5 = *pcVar10;\n        pcVar7 = pcVar10;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto LAB_001d0200;\n        *(char *)((int)&temp.b + iVar12) = cVar5;\n        pcVar7 = pcVar10 + 1;\n        iVar12 = iVar12 + 1;\n        *mangled = pcVar7;\n      } while (iVar12 != 0x24);" do (compound_statement "{\n        pcVar10 = pcVar7;\n        cVar5 = *pcVar10;\n        pcVar7 = pcVar10;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto LAB_001d0200;\n        *(char *)((int)&temp.b + iVar12) = cVar5;\n        pcVar7 = pcVar10 + 1;\n        iVar12 = iVar12 + 1;\n        *mangled = pcVar7;\n      }" { (expression_statement "pcVar10 = pcVar7;" (assignment_expression "pcVar10 = pcVar7" identifier = identifier) ;) (expression_statement "cVar5 = *pcVar10;" (assignment_expression "cVar5 = *pcVar10" identifier = (pointer_expression "*pcVar10" * identifier)) ;) (expression_statement "pcVar7 = pcVar10;" (assignment_expression "pcVar7 = pcVar10" identifier = identifier) ;) (if_statement "if ((cVar5 == '_') || (cVar5 == '\0')) goto LAB_001d0200;" if (parenthesized_expression "((cVar5 == '_') || (cVar5 == '\0'))" ( (binary_expression "(cVar5 == '_') || (cVar5 == '\0')" (parenthesized_expression "(cVar5 == '_')" ( (binary_expression "cVar5 == '_'" identifier == (char_literal "'_'" ' character ')) )) || (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_001d0200;" goto statement_identifier ;)) (expression_statement "*(char *)((int)&temp.b + iVar12) = cVar5;" (assignment_expression "*(char *)((int)&temp.b + iVar12) = cVar5" (pointer_expression "*(char *)((int)&temp.b + iVar12)" * (cast_expression "(char *)((int)&temp.b + iVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&temp.b + iVar12)" ( (binary_expression "(int)&temp.b + iVar12" (cast_expression "(int)&temp.b" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&temp.b" & (field_expression "temp.b" identifier . field_identifier))) + identifier) )))) = identifier) ;) (expression_statement "pcVar7 = pcVar10 + 1;" (assignment_expression "pcVar7 = pcVar10 + 1" identifier = (binary_expression "pcVar10 + 1" identifier + number_literal)) ;) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "*mangled = pcVar7;" (assignment_expression "*mangled = pcVar7" (pointer_expression "*mangled" * identifier) = identifier) ;) }) while (parenthesized_expression "(iVar12 != 0x24)" ( (binary_expression "iVar12 != 0x24" identifier != number_literal) )) ;) (expression_statement "cVar5 = pcVar10[1];" (assignment_expression "cVar5 = pcVar10[1]" identifier = (subscript_expression "pcVar10[1]" identifier [ number_literal ])) ;) (labeled_statement "LAB_001d0200:\n      if (cVar5 != '_') goto _L589;" statement_identifier : (if_statement "if (cVar5 != '_') goto _L589;" if (parenthesized_expression "(cVar5 != '_')" ( (binary_expression "cVar5 != '_'" identifier != (char_literal "'_'" ' character ')) )) (goto_statement "goto _L589;" goto statement_identifier ;))) (expression_statement "*(undefined1 *)((int)&temp.b + iVar12) = 0;" (assignment_expression "*(undefined1 *)((int)&temp.b + iVar12) = 0" (pointer_expression "*(undefined1 *)((int)&temp.b + iVar12)" * (cast_expression "(undefined1 *)((int)&temp.b + iVar12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&temp.b + iVar12)" ( (binary_expression "(int)&temp.b + iVar12" (cast_expression "(int)&temp.b" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&temp.b" & (field_expression "temp.b" identifier . field_identifier))) + identifier) )))) = number_literal) ;) (expression_statement "*mangled = pcVar7 + 1;" (assignment_expression "*mangled = pcVar7 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n      strncpy((char *)&temp,pcVar7,2);\n      temp.b._0_3_ = CONCAT12(0,(ushort)temp.b);\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *mangled = pcVar7 + sVar8;\n    }" else (compound_statement "{\n      strncpy((char *)&temp,pcVar7,2);\n      temp.b._0_3_ = CONCAT12(0,(ushort)temp.b);\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *mangled = pcVar7 + sVar8;\n    }" { (expression_statement "strncpy((char *)&temp,pcVar7,2);" (call_expression "strncpy((char *)&temp,pcVar7,2)" identifier (argument_list "((char *)&temp,pcVar7,2)" ( (cast_expression "(char *)&temp" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&temp" & identifier)) , identifier , number_literal ))) ;) (expression_statement "temp.b._0_3_ = CONCAT12(0,(ushort)temp.b);" (assignment_expression "temp.b._0_3_ = CONCAT12(0,(ushort)temp.b)" (field_expression "temp.b._0_3_" (field_expression "temp.b" identifier . field_identifier) . field_identifier) = (call_expression "CONCAT12(0,(ushort)temp.b)" identifier (argument_list "(0,(ushort)temp.b)" ( number_literal , (cast_expression "(ushort)temp.b" ( (type_descriptor "ushort" type_identifier) ) (field_expression "temp.b" identifier . field_identifier)) )))) ;) (expression_statement "sVar8 = strlen(pcVar7);" (assignment_expression "sVar8 = strlen(pcVar7)" identifier = (call_expression "strlen(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) (if_statement "if (1 < sVar8) {\n        sVar8 = 2;\n      }" if (parenthesized_expression "(1 < sVar8)" ( (binary_expression "1 < sVar8" number_literal < identifier) )) (compound_statement "{\n        sVar8 = 2;\n      }" { (expression_statement "sVar8 = 2;" (assignment_expression "sVar8 = 2" identifier = number_literal) ;) })) (expression_statement "*mangled = pcVar7 + sVar8;" (assignment_expression "*mangled = pcVar7 + sVar8" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar7 + sVar8" identifier + identifier)) ;) }))) (expression_statement "sscanf((char *)&temp,"%x",&dec);" (call_expression "sscanf((char *)&temp,"%x",&dec)" identifier (argument_list "((char *)&temp,"%x",&dec)" ( (cast_expression "(char *)&temp" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&temp" & identifier)) , (string_literal ""%x"" " string_content ") , (pointer_expression "&dec" & identifier) ))) ;) (expression_statement "sprintf((char *)&temp,"int%u_t",dec);" (call_expression "sprintf((char *)&temp,"int%u_t",dec)" identifier (argument_list "((char *)&temp,"int%u_t",dec)" ( (cast_expression "(char *)&temp" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&temp" & identifier)) , (string_literal ""int%u_t"" " string_content ") , identifier ))) ;) (if_statement "if (result->b != result->p) {\n      string_append(result," ");\n    }" if (parenthesized_expression "(result->b != result->p)" ( (binary_expression "result->b != result->p" (field_expression "result->b" identifier -> field_identifier) != (field_expression "result->p" identifier -> field_identifier)) )) (compound_statement "{\n      string_append(result," ");\n    }" { (expression_statement "string_append(result," ");" (call_expression "string_append(result," ")" identifier (argument_list "(result," ")" ( identifier , (string_literal "" "" " string_content ") ))) ;) })) (if_statement "if ((char)temp.b == '\0') goto _L656;" if (parenthesized_expression "((char)temp.b == '\0')" ( (binary_expression "(char)temp.b == '\0'" (cast_expression "(char)temp.b" ( (type_descriptor "char" primitive_type) ) (field_expression "temp.b" identifier . field_identifier)) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto _L656;" goto statement_identifier ;)) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;) (expression_statement "string_append(result,(char *)&temp);" (call_expression "string_append(result,(char *)&temp)" identifier (argument_list "(result,(char *)&temp)" ( identifier , (cast_expression "(char *)&temp" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&temp" & identifier)) ))) ;) (expression_statement "iVar11 = 4;" (assignment_expression "iVar11 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'b':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 5;\n    string_append(result,"bool");\n    iVar11 = 5;\n    break;" case (char_literal "'b'" ' character ') : (expression_statement "*mangled = pcVar7 + 1;" (assignment_expression "*mangled = pcVar7 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (if_statement "if (result->b != result->p) {\n      string_append(result," ");\n    }" if (parenthesized_expression "(result->b != result->p)" ( (binary_expression "result->b != result->p" (field_expression "result->b" identifier -> field_identifier) != (field_expression "result->p" identifier -> field_identifier)) )) (compound_statement "{\n      string_append(result," ");\n    }" { (expression_statement "string_append(result," ");" (call_expression "string_append(result," ")" identifier (argument_list "(result," ")" ( identifier , (string_literal "" "" " string_content ") ))) ;) })) (expression_statement "iVar12 = 5;" (assignment_expression "iVar12 = 5" identifier = number_literal) ;) (expression_statement "string_append(result,"bool");" (call_expression "string_append(result,"bool")" identifier (argument_list "(result,"bool")" ( identifier , (string_literal ""bool"" " string_content ") ))) ;) (expression_statement "iVar11 = 5;" (assignment_expression "iVar11 = 5" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'c':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 6;\n    string_append(result,"char");\n    iVar11 = 6;\n    break;" case (char_literal "'c'" ' character ') : (expression_statement "*mangled = pcVar7 + 1;" (assignment_expression "*mangled = pcVar7 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (if_statement "if (result->b != result->p) {\n      string_append(result," ");\n    }" if (parenthesized_expression "(result->b != result->p)" ( (binary_expression "result->b != result->p" (field_expression "result->b" identifier -> field_identifier) != (field_expression "result->p" identifier -> field_identifier)) )) (compound_statement "{\n      string_append(result," ");\n    }" { (expression_statement "string_append(result," ");" (call_expression "string_append(result," ")" identifier (argument_list "(result," ")" ( identifier , (string_literal "" "" " string_content ") ))) ;) })) (expression_statement "iVar12 = 6;" (assignment_expression "iVar12 = 6" identifier = number_literal) ;) (expression_statement "string_append(result,"char");" (call_expression "string_append(result,"char")" identifier (argument_list "(result,"char")" ( identifier , (string_literal ""char"" " string_content ") ))) ;) (expression_statement "iVar11 = 6;" (assignment_expression "iVar11 = 6" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'd':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 7;\n    string_append(result,"double");\n    iVar11 = 7;\n    break;" case (char_literal "'d'" ' character ') : (expression_statement "*mangled = pcVar7 + 1;" (assignment_expression "*mangled = pcVar7 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (if_statement "if (result->b != result->p) {\n      string_append(result," ");\n    }" if (parenthesized_expression "(result->b != result->p)" ( (binary_expression "result->b != result->p" (field_expression "result->b" identifier -> field_identifier) != (field_expression "result->p" identifier -> field_identifier)) )) (compound_statement "{\n      string_append(result," ");\n    }" { (expression_statement "string_append(result," ");" (call_expression "string_append(result," ")" identifier (argument_list "(result," ")" ( identifier , (string_literal "" "" " string_content ") ))) ;) })) (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" identifier = number_literal) ;) (expression_statement "string_append(result,"double");" (call_expression "string_append(result,"double")" identifier (argument_list "(result,"double")" ( identifier , (string_literal ""double"" " string_content ") ))) ;) (expression_statement "iVar11 = 7;" (assignment_expression "iVar11 = 7" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'f':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 7;\n    string_append(result,"float");\n    iVar11 = 7;\n    break;" case (char_literal "'f'" ' character ') : (expression_statement "*mangled = pcVar7 + 1;" (assignment_expression "*mangled = pcVar7 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (if_statement "if (result->b != result->p) {\n      string_append(result," ");\n    }" if (parenthesized_expression "(result->b != result->p)" ( (binary_expression "result->b != result->p" (field_expression "result->b" identifier -> field_identifier) != (field_expression "result->p" identifier -> field_identifier)) )) (compound_statement "{\n      string_append(result," ");\n    }" { (expression_statement "string_append(result," ");" (call_expression "string_append(result," ")" identifier (argument_list "(result," ")" ( identifier , (string_literal "" "" " string_content ") ))) ;) })) (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" identifier = number_literal) ;) (expression_statement "string_append(result,"float");" (call_expression "string_append(result,"float")" identifier (argument_list "(result,"float")" ( identifier , (string_literal ""float"" " string_content ") ))) ;) (expression_statement "iVar11 = 7;" (assignment_expression "iVar11 = 7" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'i':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"int");\n    iVar11 = 4;\n    break;" case (char_literal "'i'" ' character ') : (expression_statement "*mangled = pcVar7 + 1;" (assignment_expression "*mangled = pcVar7 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (if_statement "if (result->b != result->p) {\n      string_append(result," ");\n    }" if (parenthesized_expression "(result->b != result->p)" ( (binary_expression "result->b != result->p" (field_expression "result->b" identifier -> field_identifier) != (field_expression "result->p" identifier -> field_identifier)) )) (compound_statement "{\n      string_append(result," ");\n    }" { (expression_statement "string_append(result," ");" (call_expression "string_append(result," ")" identifier (argument_list "(result," ")" ( identifier , (string_literal "" "" " string_content ") ))) ;) })) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;) (expression_statement "string_append(result,"int");" (call_expression "string_append(result,"int")" identifier (argument_list "(result,"int")" ( identifier , (string_literal ""int"" " string_content ") ))) ;) (expression_statement "iVar11 = 4;" (assignment_expression "iVar11 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'l':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"long");\n    iVar11 = 4;\n    break;" case (char_literal "'l'" ' character ') : (expression_statement "*mangled = pcVar7 + 1;" (assignment_expression "*mangled = pcVar7 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (if_statement "if (result->b != result->p) {\n      string_append(result," ");\n    }" if (parenthesized_expression "(result->b != result->p)" ( (binary_expression "result->b != result->p" (field_expression "result->b" identifier -> field_identifier) != (field_expression "result->p" identifier -> field_identifier)) )) (compound_statement "{\n      string_append(result," ");\n    }" { (expression_statement "string_append(result," ");" (call_expression "string_append(result," ")" identifier (argument_list "(result," ")" ( identifier , (string_literal "" "" " string_content ") ))) ;) })) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;) (expression_statement "string_append(result,"long");" (call_expression "string_append(result,"long")" identifier (argument_list "(result,"long")" ( identifier , (string_literal ""long"" " string_content ") ))) ;) (expression_statement "iVar11 = 4;" (assignment_expression "iVar11 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'r':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 7;\n    string_append(result,"long double");\n    iVar11 = 7;\n    break;" case (char_literal "'r'" ' character ') : (expression_statement "*mangled = pcVar7 + 1;" (assignment_expression "*mangled = pcVar7 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (if_statement "if (result->b != result->p) {\n      string_append(result," ");\n    }" if (parenthesized_expression "(result->b != result->p)" ( (binary_expression "result->b != result->p" (field_expression "result->b" identifier -> field_identifier) != (field_expression "result->p" identifier -> field_identifier)) )) (compound_statement "{\n      string_append(result," ");\n    }" { (expression_statement "string_append(result," ");" (call_expression "string_append(result," ")" identifier (argument_list "(result," ")" ( identifier , (string_literal "" "" " string_content ") ))) ;) })) (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" identifier = number_literal) ;) (expression_statement "string_append(result,"long double");" (call_expression "string_append(result,"long double")" identifier (argument_list "(result,"long double")" ( identifier , (string_literal ""long double"" " string_content ") ))) ;) (expression_statement "iVar11 = 7;" (assignment_expression "iVar11 = 7" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 's':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"short");\n    iVar11 = 4;\n    break;" case (char_literal "'s'" ' character ') : (expression_statement "*mangled = pcVar7 + 1;" (assignment_expression "*mangled = pcVar7 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (if_statement "if (result->b != result->p) {\n      string_append(result," ");\n    }" if (parenthesized_expression "(result->b != result->p)" ( (binary_expression "result->b != result->p" (field_expression "result->b" identifier -> field_identifier) != (field_expression "result->p" identifier -> field_identifier)) )) (compound_statement "{\n      string_append(result," ");\n    }" { (expression_statement "string_append(result," ");" (call_expression "string_append(result," ")" identifier (argument_list "(result," ")" ( identifier , (string_literal "" "" " string_content ") ))) ;) })) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;) (expression_statement "string_append(result,"short");" (call_expression "string_append(result,"short")" identifier (argument_list "(result,"short")" ( identifier , (string_literal ""short"" " string_content ") ))) ;) (expression_statement "iVar11 = 4;" (assignment_expression "iVar11 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 't':\n    temp.e = (char *)0x0;\n    temp.p = (char *)0x0;\n    temp.b = (char *)0x0;\n    iVar12 = demangle_template(work,mangled,&temp,(string *)0x0,1,1);\n    string_appends(result,&temp,(string *)temp.p);\njoined_r0x001d0375:\n    if (temp.b != (char *)0x0) {\n      free(temp.b);\n    }\n    if (iVar12 != 0) {\n_L656:\n      iVar12 = 4;\n      iVar11 = 4;\n      break;\n    }\n_L589:\n    if (result->b == (char *)0x0) {\n      iVar12 = 0;\n      pcVar7 = decl.b;\n    }\n    else {\n      iVar12 = 0;\n      free(result->b);\n      result->p = (char *)0x0;\n      result->e = (char *)0x0;\n      result->b = (char *)0x0;\n      pcVar7 = decl.b;\n    }\n    goto LAB_001cfdb8;" case (char_literal "'t'" ' character ') : (expression_statement "temp.e = (char *)0x0;" (assignment_expression "temp.e = (char *)0x0" (field_expression "temp.e" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "temp.p = (char *)0x0;" (assignment_expression "temp.p = (char *)0x0" (field_expression "temp.p" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "temp.b = (char *)0x0;" (assignment_expression "temp.b = (char *)0x0" (field_expression "temp.b" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar12 = demangle_template(work,mangled,&temp,(string *)0x0,1,1);" (assignment_expression "iVar12 = demangle_template(work,mangled,&temp,(string *)0x0,1,1)" identifier = (call_expression "demangle_template(work,mangled,&temp,(string *)0x0,1,1)" identifier (argument_list "(work,mangled,&temp,(string *)0x0,1,1)" ( identifier , identifier , (pointer_expression "&temp" & identifier) , (cast_expression "(string *)0x0" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , number_literal )))) ;) (expression_statement "string_appends(result,&temp,(string *)temp.p);" (call_expression "string_appends(result,&temp,(string *)temp.p)" identifier (argument_list "(result,&temp,(string *)temp.p)" ( identifier , (pointer_expression "&temp" & identifier) , (cast_expression "(string *)temp.p" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "temp.p" identifier . field_identifier)) ))) ;) (labeled_statement "joined_r0x001d0375:\n    if (temp.b != (char *)0x0) {\n      free(temp.b);\n    }" statement_identifier : (if_statement "if (temp.b != (char *)0x0) {\n      free(temp.b);\n    }" if (parenthesized_expression "(temp.b != (char *)0x0)" ( (binary_expression "temp.b != (char *)0x0" (field_expression "temp.b" identifier . field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(temp.b);\n    }" { (expression_statement "free(temp.b);" (call_expression "free(temp.b)" identifier (argument_list "(temp.b)" ( (field_expression "temp.b" identifier . field_identifier) ))) ;) }))) (if_statement "if (iVar12 != 0) {\n_L656:\n      iVar12 = 4;\n      iVar11 = 4;\n      break;\n    }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n_L656:\n      iVar12 = 4;\n      iVar11 = 4;\n      break;\n    }" { (labeled_statement "_L656:\n      iVar12 = 4;" statement_identifier : (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;)) (expression_statement "iVar11 = 4;" (assignment_expression "iVar11 = 4" identifier = number_literal) ;) (break_statement "break;" break ;) })) (labeled_statement "_L589:\n    if (result->b == (char *)0x0) {\n      iVar12 = 0;\n      pcVar7 = decl.b;\n    }\n    else {\n      iVar12 = 0;\n      free(result->b);\n      result->p = (char *)0x0;\n      result->e = (char *)0x0;\n      result->b = (char *)0x0;\n      pcVar7 = decl.b;\n    }" statement_identifier : (if_statement "if (result->b == (char *)0x0) {\n      iVar12 = 0;\n      pcVar7 = decl.b;\n    }\n    else {\n      iVar12 = 0;\n      free(result->b);\n      result->p = (char *)0x0;\n      result->e = (char *)0x0;\n      result->b = (char *)0x0;\n      pcVar7 = decl.b;\n    }" if (parenthesized_expression "(result->b == (char *)0x0)" ( (binary_expression "result->b == (char *)0x0" (field_expression "result->b" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar12 = 0;\n      pcVar7 = decl.b;\n    }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "pcVar7 = decl.b;" (assignment_expression "pcVar7 = decl.b" identifier = (field_expression "decl.b" identifier . field_identifier)) ;) }) (else_clause "else {\n      iVar12 = 0;\n      free(result->b);\n      result->p = (char *)0x0;\n      result->e = (char *)0x0;\n      result->b = (char *)0x0;\n      pcVar7 = decl.b;\n    }" else (compound_statement "{\n      iVar12 = 0;\n      free(result->b);\n      result->p = (char *)0x0;\n      result->e = (char *)0x0;\n      result->b = (char *)0x0;\n      pcVar7 = decl.b;\n    }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "free(result->b);" (call_expression "free(result->b)" identifier (argument_list "(result->b)" ( (field_expression "result->b" identifier -> field_identifier) ))) ;) (expression_statement "result->p = (char *)0x0;" (assignment_expression "result->p = (char *)0x0" (field_expression "result->p" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "result->e = (char *)0x0;" (assignment_expression "result->e = (char *)0x0" (field_expression "result->e" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "result->b = (char *)0x0;" (assignment_expression "result->b = (char *)0x0" (field_expression "result->b" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar7 = decl.b;" (assignment_expression "pcVar7 = decl.b" identifier = (field_expression "decl.b" identifier . field_identifier)) ;) })))) (goto_statement "goto LAB_001cfdb8;" goto statement_identifier ;)) (case_statement "case 'v':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"void");\n    iVar11 = 4;\n    break;" case (char_literal "'v'" ' character ') : (expression_statement "*mangled = pcVar7 + 1;" (assignment_expression "*mangled = pcVar7 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (if_statement "if (result->b != result->p) {\n      string_append(result," ");\n    }" if (parenthesized_expression "(result->b != result->p)" ( (binary_expression "result->b != result->p" (field_expression "result->b" identifier -> field_identifier) != (field_expression "result->p" identifier -> field_identifier)) )) (compound_statement "{\n      string_append(result," ");\n    }" { (expression_statement "string_append(result," ");" (call_expression "string_append(result," ")" identifier (argument_list "(result," ")" ( identifier , (string_literal "" "" " string_content ") ))) ;) })) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;) (expression_statement "string_append(result,"void");" (call_expression "string_append(result,"void")" identifier (argument_list "(result,"void")" ( identifier , (string_literal ""void"" " string_content ") ))) ;) (expression_statement "iVar11 = 4;" (assignment_expression "iVar11 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'w':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 6;\n    string_append(result,"wchar_t");\n    iVar11 = 6;\n    break;" case (char_literal "'w'" ' character ') : (expression_statement "*mangled = pcVar7 + 1;" (assignment_expression "*mangled = pcVar7 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (if_statement "if (result->b != result->p) {\n      string_append(result," ");\n    }" if (parenthesized_expression "(result->b != result->p)" ( (binary_expression "result->b != result->p" (field_expression "result->b" identifier -> field_identifier) != (field_expression "result->p" identifier -> field_identifier)) )) (compound_statement "{\n      string_append(result," ");\n    }" { (expression_statement "string_append(result," ");" (call_expression "string_append(result," ")" identifier (argument_list "(result," ")" ( identifier , (string_literal "" "" " string_content ") ))) ;) })) (expression_statement "iVar12 = 6;" (assignment_expression "iVar12 = 6" identifier = number_literal) ;) (expression_statement "string_append(result,"wchar_t");" (call_expression "string_append(result,"wchar_t")" identifier (argument_list "(result,"wchar_t")" ( identifier , (string_literal ""wchar_t"" " string_content ") ))) ;) (expression_statement "iVar11 = 6;" (assignment_expression "iVar11 = 6" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'x':\n    *mangled = pcVar7 + 1;\n    if (result->b != result->p) {\n      string_append(result," ");\n    }\n    iVar12 = 4;\n    string_append(result,"long long");\n    iVar11 = 4;" case (char_literal "'x'" ' character ') : (expression_statement "*mangled = pcVar7 + 1;" (assignment_expression "*mangled = pcVar7 + 1" (pointer_expression "*mangled" * identifier) = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (if_statement "if (result->b != result->p) {\n      string_append(result," ");\n    }" if (parenthesized_expression "(result->b != result->p)" ( (binary_expression "result->b != result->p" (field_expression "result->b" identifier -> field_identifier) != (field_expression "result->p" identifier -> field_identifier)) )) (compound_statement "{\n      string_append(result," ");\n    }" { (expression_statement "string_append(result," ");" (call_expression "string_append(result," ")" identifier (argument_list "(result," ")" ( identifier , (string_literal "" "" " string_content ") ))) ;) })) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;) (expression_statement "string_append(result,"long long");" (call_expression "string_append(result,"long long")" identifier (argument_list "(result,"long long")" ( identifier , (string_literal ""long long"" " string_content ") ))) ;) (expression_statement "iVar11 = 4;" (assignment_expression "iVar11 = 4" identifier = number_literal) ;)) })) (if_statement "if (local_70 != 0) {\n    iVar11 = local_70;\n  }" if (parenthesized_expression "(local_70 != 0)" ( (binary_expression "local_70 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar11 = local_70;\n  }" { (expression_statement "iVar11 = local_70;" (assignment_expression "iVar11 = local_70" identifier = identifier) ;) })) (labeled_statement "LAB_001cfebc:\n  local_70 = iVar11;" statement_identifier : (expression_statement "local_70 = iVar11;" (assignment_expression "local_70 = iVar11" identifier = identifier) ;)) (expression_statement "pcVar7 = decl.p;" (assignment_expression "pcVar7 = decl.p" identifier = (field_expression "decl.p" identifier . field_identifier)) ;) (if_statement "if (decl.b != decl.p) {\n    string_append(result," ");\n    string_appends(result,&decl,(string *)decl.p);\n    pcVar7 = decl.b;\n  }" if (parenthesized_expression "(decl.b != decl.p)" ( (binary_expression "decl.b != decl.p" (field_expression "decl.b" identifier . field_identifier) != (field_expression "decl.p" identifier . field_identifier)) )) (compound_statement "{\n    string_append(result," ");\n    string_appends(result,&decl,(string *)decl.p);\n    pcVar7 = decl.b;\n  }" { (expression_statement "string_append(result," ");" (call_expression "string_append(result," ")" identifier (argument_list "(result," ")" ( identifier , (string_literal "" "" " string_content ") ))) ;) (expression_statement "string_appends(result,&decl,(string *)decl.p);" (call_expression "string_appends(result,&decl,(string *)decl.p)" identifier (argument_list "(result,&decl,(string *)decl.p)" ( identifier , (pointer_expression "&decl" & identifier) , (cast_expression "(string *)decl.p" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "decl.p" identifier . field_identifier)) ))) ;) (expression_statement "pcVar7 = decl.b;" (assignment_expression "pcVar7 = decl.b" identifier = (field_expression "decl.b" identifier . field_identifier)) ;) })) (labeled_statement "LAB_001cfdb8:\n  if (pcVar7 != (char *)0x0) {\n    free(pcVar7);\n  }" statement_identifier : (if_statement "if (pcVar7 != (char *)0x0) {\n    free(pcVar7);\n  }" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(pcVar7);\n  }" { (expression_statement "free(pcVar7);" (call_expression "free(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) }))) (if_statement "if (bVar4) {\n    work->nproctypes = work->nproctypes + -1;\n  }" if (parenthesized_expression "(bVar4)" ( identifier )) (compound_statement "{\n    work->nproctypes = work->nproctypes + -1;\n  }" { (expression_statement "work->nproctypes = work->nproctypes + -1;" (assignment_expression "work->nproctypes = work->nproctypes + -1" (field_expression "work->nproctypes" identifier -> field_identifier) = (binary_expression "work->nproctypes + -1" (field_expression "work->nproctypes" identifier -> field_identifier) + number_literal)) ;) })) (if_statement "if ((iVar12 != 0) && (iVar12 = local_70, local_70 == 0)) {\n    iVar12 = 4;\n  }" if (parenthesized_expression "((iVar12 != 0) && (iVar12 = local_70, local_70 == 0))" ( (binary_expression "(iVar12 != 0) && (iVar12 = local_70, local_70 == 0)" (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar12 = local_70, local_70 == 0)" ( (comma_expression "iVar12 = local_70, local_70 == 0" (assignment_expression "iVar12 = local_70" identifier = identifier) , (binary_expression "local_70 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    iVar12 = 4;\n  }" { (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;) })) (return_statement "return iVar12;" return identifier ;) })))
(translation_unit "int __regparm3 FUN_001cf7b0(byte *param_1,int *param_2,int *param_3)\n\n{\n  int *piVar1;\n  byte bVar2;\n  bool bVar3;\n  bool bVar4;\n  char cVar5;\n  int iVar6;\n  char *pcVar7;\n  size_t sVar8;\n  undefined4 uVar9;\n  int *piVar10;\n  char *pcVar11;\n  int iVar12;\n  void *__ptr;\n  int iVar13;\n  undefined1 *puVar14;\n  int local_78;\n  int local_70;\n  int iStack_5c;\n  int iStack_58;\n  undefined4 local_54;\n  char *local_50;\n  char *local_4c;\n  undefined4 local_48;\n  void *pvStack_44;\n  void *pvStack_40;\n  undefined4 uStack_3c;\n  undefined4 uStack_14;\n  \n  iVar13 = 1;\n  uStack_14 = 0x1cf7c0;\n  param_3[2] = 0;\n  local_48 = 0;\n  local_4c = (char *)0x0;\n  local_50 = (char *)0x0;\n  param_3[1] = 0;\n  *param_3 = 0;\n  local_70 = 0;\n  bVar4 = false;\n  iVar12 = local_70;\ncode_r0x001cf820:\n  local_70 = iVar12;\n  pcVar7 = local_50;\n  bVar3 = false;\nLAB_001cf82d:\n  if ((bVar3) || (iVar13 == 0)) {\n    if (iVar13 == 0) goto LAB_001cfd80;\n    pcVar7 = (char *)*param_2;\n    iVar12 = local_70;\n    switch(*pcVar7) {\n    case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;\n    default:\n      local_54 = 0;\n      goto code_r0x001d0082;\n    case 'K':\n    case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;\n    case 'X':\n    case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;\n    }\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      FUN_001ce230();\n    }\n    goto code_r0x001cfebc;\n  }\n  puVar14 = (undefined1 *)*param_2;\n  bVar3 = true;\n  iVar12 = local_70;\n  switch(*puVar14) {\n  case 0x41:\n    goto code_r0x001cfa38;\n  default:\n    goto LAB_001cf82d;\n  case 0x43:\n  case 0x56:\n  case 0x75:\n    if ((*param_1 & 2) != 0) {\n      if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n      pcVar7 = (char *)FUN_001cdd80();\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n    }\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x46:\n    *param_2 = (int)(puVar14 + 1);\n    if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      FUN_001ce1f0();\n      FUN_001ce230();\n    }\n    iVar6 = FUN_001d24a0();\n    if (iVar6 != 0) {\n      cVar5 = *(char *)*param_2;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x47:\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x4d:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce230();\n    if (*(char *)*param_2 == 'Q') {\n      if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;\ncode_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);\n      if (iVar13 == 0) goto code_r0x001cf820;\n    }\n    else {\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }\ncode_r0x001cfb87:\n    FUN_001ce1f0();\n    pcVar7 = (char *)*param_2;\n    cVar5 = *pcVar7;\n    if (cVar5 == 'V') {\n      local_78 = 2;\ncode_r0x001d0040:\n      pcVar11 = pcVar7 + 1;\n      *param_2 = (int)pcVar11;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }\n    if (cVar5 == 'F') {\n      *param_2 = (int)(pcVar11 + 1);\n      iVar6 = FUN_001d24a0();\n      if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x4f:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 3;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x50:\n  case 0x70:\n    *param_2 = (int)(puVar14 + 1);\n    if ((*param_1 & 4) == 0) {\n      FUN_001ce1f0();\n    }\n    iVar12 = 1;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x52:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 2;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x54:\n    *param_2 = (int)(puVar14 + 1);\n    iVar6 = FUN_001cd940();\n    if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c)) break;\n    if (*(int *)(param_1 + 0x5c) < 1) goto code_r0x001cfe64;\n    piVar10 = *(int **)(param_1 + 0x54);\n    piVar1 = piVar10 + *(int *)(param_1 + 0x5c);\n    do {\n      if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }\n      piVar10 = piVar10 + 1;\n    } while (piVar1 != piVar10);\n    if (iVar13 != 0) {\ncode_r0x001cfe64:\n      FUN_001cdac0();\n      bVar4 = true;\n      param_2 = &iStack_58;\n      iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);\n    }\n    goto code_r0x001cf820;\n  }\n  iVar13 = 0;\n  goto code_r0x001cf820;\ncode_r0x001d0082:\n  do {\n    switch(*pcVar7 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n    }\n  } while( true );\ncode_r0x001cfa38:\n  *param_2 = (int)(puVar14 + 1);\n  if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n    FUN_001ce1f0();\n    FUN_001ce230();\n  }\n  FUN_001ce230();\n  pcVar7 = (char *)*param_2;\n  if (*pcVar7 != '_') {\n    iVar13 = FUN_001cf0a0(4);\n    pcVar7 = (char *)*param_2;\n    if (*pcVar7 != '_') goto code_r0x001cfa7a;\n  }\n  *param_2 = (int)(pcVar7 + 1);\ncode_r0x001cfa7a:\n  FUN_001ce230();\n  goto code_r0x001cf820;\ncode_r0x001d0176:\n  pcVar11 = pcVar7;\n  switch(*pcVar7) {\n  case '\0':\n  case '_':\n    goto code_r0x001d018e;\n  default:\n    goto LAB_001cfd80;\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    uVar9 = FUN_001cdb80();\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d0dd0();\n    if (iVar13 != 0) {\n      FUN_001ce060(uVar9);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      iVar13 = 1;\n      FUN_001ce380();\n    }\n    goto joined_r0x001d0375;\n  case 'G':\n    pcVar11 = pcVar7 + 1;\n    *param_2 = (int)pcVar11;\n    if (((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0) goto code_r0x001d01c5;\n    goto LAB_001cfd80;\n  case 'I':\ncode_r0x001d01c5:\n    pcVar7 = pcVar11 + 1;\n    *param_2 = (int)pcVar7;\n    if (pcVar11[1] == '_') {\n      iVar13 = 0;\n      *param_2 = (int)(pcVar11 + 2);\n      pcVar7 = pcVar11 + 2;\n      do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);\n      cVar5 = pcVar11[1];\ncode_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;\n      *(undefined1 *)((int)&pvStack_44 + iVar13) = 0;\n      *param_2 = (int)(pcVar7 + 1);\n    }\n    else {\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }\n    sscanf((char *)&pvStack_44,"%x",&local_54);\n    sprintf((char *)&pvStack_44,"int%u_t",local_54);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    if ((char)pvStack_44 == '\0') goto code_r0x001d018e;\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'b':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 5;\n    FUN_001ce230();\n    iVar12 = 5;\n    break;\n  case 'c':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'd':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'f':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'i':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'l':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'r':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 's':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 't':\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d1450(0,1,1);\n    FUN_001ce380();\njoined_r0x001d0375:\n    if (pvStack_44 != (void *)0x0) {\n      free(pvStack_44);\n    }\n    if (iVar13 != 0) {\ncode_r0x001d018e:\n      iVar13 = 4;\n      iVar12 = 4;\n      break;\n    }\nLAB_001cfd80:\n    if ((void *)*param_3 == (void *)0x0) {\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }\n    else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }\n    goto LAB_001cfdb8;\n  case 'v':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'w':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'x':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n  }\n  if (local_70 != 0) {\n    iVar12 = local_70;\n  }\ncode_r0x001cfebc:\n  local_70 = iVar12;\n  pcVar7 = local_4c;\n  if (local_50 != local_4c) {\n    FUN_001ce230();\n    FUN_001ce380();\n    pcVar7 = local_50;\n  }\nLAB_001cfdb8:\n  if (pcVar7 != (char *)0x0) {\n    free(pcVar7);\n  }\n  if (bVar4) {\n    *(int *)(param_1 + 0x5c) = *(int *)(param_1 + 0x5c) + -1;\n  }\n  if ((iVar13 != 0) && (iVar13 = local_70, local_70 == 0)) {\n    iVar13 = 4;\n  }\n  return iVar13;\n}\n\n" (function_definition "int __regparm3 FUN_001cf7b0(byte *param_1,int *param_2,int *param_3)\n\n{\n  int *piVar1;\n  byte bVar2;\n  bool bVar3;\n  bool bVar4;\n  char cVar5;\n  int iVar6;\n  char *pcVar7;\n  size_t sVar8;\n  undefined4 uVar9;\n  int *piVar10;\n  char *pcVar11;\n  int iVar12;\n  void *__ptr;\n  int iVar13;\n  undefined1 *puVar14;\n  int local_78;\n  int local_70;\n  int iStack_5c;\n  int iStack_58;\n  undefined4 local_54;\n  char *local_50;\n  char *local_4c;\n  undefined4 local_48;\n  void *pvStack_44;\n  void *pvStack_40;\n  undefined4 uStack_3c;\n  undefined4 uStack_14;\n  \n  iVar13 = 1;\n  uStack_14 = 0x1cf7c0;\n  param_3[2] = 0;\n  local_48 = 0;\n  local_4c = (char *)0x0;\n  local_50 = (char *)0x0;\n  param_3[1] = 0;\n  *param_3 = 0;\n  local_70 = 0;\n  bVar4 = false;\n  iVar12 = local_70;\ncode_r0x001cf820:\n  local_70 = iVar12;\n  pcVar7 = local_50;\n  bVar3 = false;\nLAB_001cf82d:\n  if ((bVar3) || (iVar13 == 0)) {\n    if (iVar13 == 0) goto LAB_001cfd80;\n    pcVar7 = (char *)*param_2;\n    iVar12 = local_70;\n    switch(*pcVar7) {\n    case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;\n    default:\n      local_54 = 0;\n      goto code_r0x001d0082;\n    case 'K':\n    case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;\n    case 'X':\n    case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;\n    }\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      FUN_001ce230();\n    }\n    goto code_r0x001cfebc;\n  }\n  puVar14 = (undefined1 *)*param_2;\n  bVar3 = true;\n  iVar12 = local_70;\n  switch(*puVar14) {\n  case 0x41:\n    goto code_r0x001cfa38;\n  default:\n    goto LAB_001cf82d;\n  case 0x43:\n  case 0x56:\n  case 0x75:\n    if ((*param_1 & 2) != 0) {\n      if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n      pcVar7 = (char *)FUN_001cdd80();\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n    }\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x46:\n    *param_2 = (int)(puVar14 + 1);\n    if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      FUN_001ce1f0();\n      FUN_001ce230();\n    }\n    iVar6 = FUN_001d24a0();\n    if (iVar6 != 0) {\n      cVar5 = *(char *)*param_2;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x47:\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x4d:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce230();\n    if (*(char *)*param_2 == 'Q') {\n      if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;\ncode_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);\n      if (iVar13 == 0) goto code_r0x001cf820;\n    }\n    else {\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }\ncode_r0x001cfb87:\n    FUN_001ce1f0();\n    pcVar7 = (char *)*param_2;\n    cVar5 = *pcVar7;\n    if (cVar5 == 'V') {\n      local_78 = 2;\ncode_r0x001d0040:\n      pcVar11 = pcVar7 + 1;\n      *param_2 = (int)pcVar11;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }\n    if (cVar5 == 'F') {\n      *param_2 = (int)(pcVar11 + 1);\n      iVar6 = FUN_001d24a0();\n      if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x4f:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 3;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x50:\n  case 0x70:\n    *param_2 = (int)(puVar14 + 1);\n    if ((*param_1 & 4) == 0) {\n      FUN_001ce1f0();\n    }\n    iVar12 = 1;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x52:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 2;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x54:\n    *param_2 = (int)(puVar14 + 1);\n    iVar6 = FUN_001cd940();\n    if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c)) break;\n    if (*(int *)(param_1 + 0x5c) < 1) goto code_r0x001cfe64;\n    piVar10 = *(int **)(param_1 + 0x54);\n    piVar1 = piVar10 + *(int *)(param_1 + 0x5c);\n    do {\n      if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }\n      piVar10 = piVar10 + 1;\n    } while (piVar1 != piVar10);\n    if (iVar13 != 0) {\ncode_r0x001cfe64:\n      FUN_001cdac0();\n      bVar4 = true;\n      param_2 = &iStack_58;\n      iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);\n    }\n    goto code_r0x001cf820;\n  }\n  iVar13 = 0;\n  goto code_r0x001cf820;\ncode_r0x001d0082:\n  do {\n    switch(*pcVar7 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n    }\n  } while( true );\ncode_r0x001cfa38:\n  *param_2 = (int)(puVar14 + 1);\n  if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n    FUN_001ce1f0();\n    FUN_001ce230();\n  }\n  FUN_001ce230();\n  pcVar7 = (char *)*param_2;\n  if (*pcVar7 != '_') {\n    iVar13 = FUN_001cf0a0(4);\n    pcVar7 = (char *)*param_2;\n    if (*pcVar7 != '_') goto code_r0x001cfa7a;\n  }\n  *param_2 = (int)(pcVar7 + 1);\ncode_r0x001cfa7a:\n  FUN_001ce230();\n  goto code_r0x001cf820;\ncode_r0x001d0176:\n  pcVar11 = pcVar7;\n  switch(*pcVar7) {\n  case '\0':\n  case '_':\n    goto code_r0x001d018e;\n  default:\n    goto LAB_001cfd80;\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    uVar9 = FUN_001cdb80();\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d0dd0();\n    if (iVar13 != 0) {\n      FUN_001ce060(uVar9);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      iVar13 = 1;\n      FUN_001ce380();\n    }\n    goto joined_r0x001d0375;\n  case 'G':\n    pcVar11 = pcVar7 + 1;\n    *param_2 = (int)pcVar11;\n    if (((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0) goto code_r0x001d01c5;\n    goto LAB_001cfd80;\n  case 'I':\ncode_r0x001d01c5:\n    pcVar7 = pcVar11 + 1;\n    *param_2 = (int)pcVar7;\n    if (pcVar11[1] == '_') {\n      iVar13 = 0;\n      *param_2 = (int)(pcVar11 + 2);\n      pcVar7 = pcVar11 + 2;\n      do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);\n      cVar5 = pcVar11[1];\ncode_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;\n      *(undefined1 *)((int)&pvStack_44 + iVar13) = 0;\n      *param_2 = (int)(pcVar7 + 1);\n    }\n    else {\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }\n    sscanf((char *)&pvStack_44,"%x",&local_54);\n    sprintf((char *)&pvStack_44,"int%u_t",local_54);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    if ((char)pvStack_44 == '\0') goto code_r0x001d018e;\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'b':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 5;\n    FUN_001ce230();\n    iVar12 = 5;\n    break;\n  case 'c':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'd':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'f':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'i':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'l':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'r':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 's':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 't':\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d1450(0,1,1);\n    FUN_001ce380();\njoined_r0x001d0375:\n    if (pvStack_44 != (void *)0x0) {\n      free(pvStack_44);\n    }\n    if (iVar13 != 0) {\ncode_r0x001d018e:\n      iVar13 = 4;\n      iVar12 = 4;\n      break;\n    }\nLAB_001cfd80:\n    if ((void *)*param_3 == (void *)0x0) {\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }\n    else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }\n    goto LAB_001cfdb8;\n  case 'v':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'w':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'x':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n  }\n  if (local_70 != 0) {\n    iVar12 = local_70;\n  }\ncode_r0x001cfebc:\n  local_70 = iVar12;\n  pcVar7 = local_4c;\n  if (local_50 != local_4c) {\n    FUN_001ce230();\n    FUN_001ce380();\n    pcVar7 = local_50;\n  }\nLAB_001cfdb8:\n  if (pcVar7 != (char *)0x0) {\n    free(pcVar7);\n  }\n  if (bVar4) {\n    *(int *)(param_1 + 0x5c) = *(int *)(param_1 + 0x5c) + -1;\n  }\n  if ((iVar13 != 0) && (iVar13 = local_70, local_70 == 0)) {\n    iVar13 = 4;\n  }\n  return iVar13;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_001cf7b0(byte *param_1,int *param_2,int *param_3)" identifier (parameter_list "(byte *param_1,int *param_2,int *param_3)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  byte bVar2;\n  bool bVar3;\n  bool bVar4;\n  char cVar5;\n  int iVar6;\n  char *pcVar7;\n  size_t sVar8;\n  undefined4 uVar9;\n  int *piVar10;\n  char *pcVar11;\n  int iVar12;\n  void *__ptr;\n  int iVar13;\n  undefined1 *puVar14;\n  int local_78;\n  int local_70;\n  int iStack_5c;\n  int iStack_58;\n  undefined4 local_54;\n  char *local_50;\n  char *local_4c;\n  undefined4 local_48;\n  void *pvStack_44;\n  void *pvStack_40;\n  undefined4 uStack_3c;\n  undefined4 uStack_14;\n  \n  iVar13 = 1;\n  uStack_14 = 0x1cf7c0;\n  param_3[2] = 0;\n  local_48 = 0;\n  local_4c = (char *)0x0;\n  local_50 = (char *)0x0;\n  param_3[1] = 0;\n  *param_3 = 0;\n  local_70 = 0;\n  bVar4 = false;\n  iVar12 = local_70;\ncode_r0x001cf820:\n  local_70 = iVar12;\n  pcVar7 = local_50;\n  bVar3 = false;\nLAB_001cf82d:\n  if ((bVar3) || (iVar13 == 0)) {\n    if (iVar13 == 0) goto LAB_001cfd80;\n    pcVar7 = (char *)*param_2;\n    iVar12 = local_70;\n    switch(*pcVar7) {\n    case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;\n    default:\n      local_54 = 0;\n      goto code_r0x001d0082;\n    case 'K':\n    case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;\n    case 'X':\n    case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;\n    }\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      FUN_001ce230();\n    }\n    goto code_r0x001cfebc;\n  }\n  puVar14 = (undefined1 *)*param_2;\n  bVar3 = true;\n  iVar12 = local_70;\n  switch(*puVar14) {\n  case 0x41:\n    goto code_r0x001cfa38;\n  default:\n    goto LAB_001cf82d;\n  case 0x43:\n  case 0x56:\n  case 0x75:\n    if ((*param_1 & 2) != 0) {\n      if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n      pcVar7 = (char *)FUN_001cdd80();\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n    }\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x46:\n    *param_2 = (int)(puVar14 + 1);\n    if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      FUN_001ce1f0();\n      FUN_001ce230();\n    }\n    iVar6 = FUN_001d24a0();\n    if (iVar6 != 0) {\n      cVar5 = *(char *)*param_2;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x47:\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x4d:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce230();\n    if (*(char *)*param_2 == 'Q') {\n      if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;\ncode_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);\n      if (iVar13 == 0) goto code_r0x001cf820;\n    }\n    else {\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }\ncode_r0x001cfb87:\n    FUN_001ce1f0();\n    pcVar7 = (char *)*param_2;\n    cVar5 = *pcVar7;\n    if (cVar5 == 'V') {\n      local_78 = 2;\ncode_r0x001d0040:\n      pcVar11 = pcVar7 + 1;\n      *param_2 = (int)pcVar11;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }\n    if (cVar5 == 'F') {\n      *param_2 = (int)(pcVar11 + 1);\n      iVar6 = FUN_001d24a0();\n      if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x4f:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 3;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x50:\n  case 0x70:\n    *param_2 = (int)(puVar14 + 1);\n    if ((*param_1 & 4) == 0) {\n      FUN_001ce1f0();\n    }\n    iVar12 = 1;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x52:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 2;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x54:\n    *param_2 = (int)(puVar14 + 1);\n    iVar6 = FUN_001cd940();\n    if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c)) break;\n    if (*(int *)(param_1 + 0x5c) < 1) goto code_r0x001cfe64;\n    piVar10 = *(int **)(param_1 + 0x54);\n    piVar1 = piVar10 + *(int *)(param_1 + 0x5c);\n    do {\n      if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }\n      piVar10 = piVar10 + 1;\n    } while (piVar1 != piVar10);\n    if (iVar13 != 0) {\ncode_r0x001cfe64:\n      FUN_001cdac0();\n      bVar4 = true;\n      param_2 = &iStack_58;\n      iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);\n    }\n    goto code_r0x001cf820;\n  }\n  iVar13 = 0;\n  goto code_r0x001cf820;\ncode_r0x001d0082:\n  do {\n    switch(*pcVar7 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n    }\n  } while( true );\ncode_r0x001cfa38:\n  *param_2 = (int)(puVar14 + 1);\n  if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n    FUN_001ce1f0();\n    FUN_001ce230();\n  }\n  FUN_001ce230();\n  pcVar7 = (char *)*param_2;\n  if (*pcVar7 != '_') {\n    iVar13 = FUN_001cf0a0(4);\n    pcVar7 = (char *)*param_2;\n    if (*pcVar7 != '_') goto code_r0x001cfa7a;\n  }\n  *param_2 = (int)(pcVar7 + 1);\ncode_r0x001cfa7a:\n  FUN_001ce230();\n  goto code_r0x001cf820;\ncode_r0x001d0176:\n  pcVar11 = pcVar7;\n  switch(*pcVar7) {\n  case '\0':\n  case '_':\n    goto code_r0x001d018e;\n  default:\n    goto LAB_001cfd80;\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    uVar9 = FUN_001cdb80();\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d0dd0();\n    if (iVar13 != 0) {\n      FUN_001ce060(uVar9);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      iVar13 = 1;\n      FUN_001ce380();\n    }\n    goto joined_r0x001d0375;\n  case 'G':\n    pcVar11 = pcVar7 + 1;\n    *param_2 = (int)pcVar11;\n    if (((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0) goto code_r0x001d01c5;\n    goto LAB_001cfd80;\n  case 'I':\ncode_r0x001d01c5:\n    pcVar7 = pcVar11 + 1;\n    *param_2 = (int)pcVar7;\n    if (pcVar11[1] == '_') {\n      iVar13 = 0;\n      *param_2 = (int)(pcVar11 + 2);\n      pcVar7 = pcVar11 + 2;\n      do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);\n      cVar5 = pcVar11[1];\ncode_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;\n      *(undefined1 *)((int)&pvStack_44 + iVar13) = 0;\n      *param_2 = (int)(pcVar7 + 1);\n    }\n    else {\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }\n    sscanf((char *)&pvStack_44,"%x",&local_54);\n    sprintf((char *)&pvStack_44,"int%u_t",local_54);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    if ((char)pvStack_44 == '\0') goto code_r0x001d018e;\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'b':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 5;\n    FUN_001ce230();\n    iVar12 = 5;\n    break;\n  case 'c':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'd':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'f':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'i':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'l':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'r':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 's':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 't':\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d1450(0,1,1);\n    FUN_001ce380();\njoined_r0x001d0375:\n    if (pvStack_44 != (void *)0x0) {\n      free(pvStack_44);\n    }\n    if (iVar13 != 0) {\ncode_r0x001d018e:\n      iVar13 = 4;\n      iVar12 = 4;\n      break;\n    }\nLAB_001cfd80:\n    if ((void *)*param_3 == (void *)0x0) {\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }\n    else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }\n    goto LAB_001cfdb8;\n  case 'v':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'w':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'x':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n  }\n  if (local_70 != 0) {\n    iVar12 = local_70;\n  }\ncode_r0x001cfebc:\n  local_70 = iVar12;\n  pcVar7 = local_4c;\n  if (local_50 != local_4c) {\n    FUN_001ce230();\n    FUN_001ce380();\n    pcVar7 = local_50;\n  }\nLAB_001cfdb8:\n  if (pcVar7 != (char *)0x0) {\n    free(pcVar7);\n  }\n  if (bVar4) {\n    *(int *)(param_1 + 0x5c) = *(int *)(param_1 + 0x5c) + -1;\n  }\n  if ((iVar13 != 0) && (iVar13 = local_70, local_70 == 0)) {\n    iVar13 = 4;\n  }\n  return iVar13;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined1 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int local_78;" primitive_type identifier ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "int iStack_5c;" primitive_type identifier ;) (declaration "int iStack_58;" primitive_type identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "char *local_50;" primitive_type (pointer_declarator "*local_50" * identifier) ;) (declaration "char *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "void *pvStack_44;" primitive_type (pointer_declarator "*pvStack_44" * identifier) ;) (declaration "void *pvStack_40;" primitive_type (pointer_declarator "*pvStack_40" * identifier) ;) (declaration "undefined4 uStack_3c;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x1cf7c0;" (assignment_expression "uStack_14 = 0x1cf7c0" identifier = number_literal) ;) (expression_statement "param_3[2] = 0;" (assignment_expression "param_3[2] = 0" (subscript_expression "param_3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_4c = (char *)0x0;" (assignment_expression "local_4c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50 = (char *)0x0;" (assignment_expression "local_50 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_3[1] = 0;" (assignment_expression "param_3[1] = 0" (subscript_expression "param_3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (expression_statement "iVar12 = local_70;" (assignment_expression "iVar12 = local_70" identifier = identifier) ;) (labeled_statement "code_r0x001cf820:\n  local_70 = iVar12;" statement_identifier : (expression_statement "local_70 = iVar12;" (assignment_expression "local_70 = iVar12" identifier = identifier) ;)) (expression_statement "pcVar7 = local_50;" (assignment_expression "pcVar7 = local_50" identifier = identifier) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (labeled_statement "LAB_001cf82d:\n  if ((bVar3) || (iVar13 == 0)) {\n    if (iVar13 == 0) goto LAB_001cfd80;\n    pcVar7 = (char *)*param_2;\n    iVar12 = local_70;\n    switch(*pcVar7) {\n    case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;\n    default:\n      local_54 = 0;\n      goto code_r0x001d0082;\n    case 'K':\n    case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;\n    case 'X':\n    case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;\n    }\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      FUN_001ce230();\n    }\n    goto code_r0x001cfebc;\n  }" statement_identifier : (if_statement "if ((bVar3) || (iVar13 == 0)) {\n    if (iVar13 == 0) goto LAB_001cfd80;\n    pcVar7 = (char *)*param_2;\n    iVar12 = local_70;\n    switch(*pcVar7) {\n    case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;\n    default:\n      local_54 = 0;\n      goto code_r0x001d0082;\n    case 'K':\n    case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;\n    case 'X':\n    case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;\n    }\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      FUN_001ce230();\n    }\n    goto code_r0x001cfebc;\n  }" if (parenthesized_expression "((bVar3) || (iVar13 == 0))" ( (binary_expression "(bVar3) || (iVar13 == 0)" (parenthesized_expression "(bVar3)" ( identifier )) || (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    if (iVar13 == 0) goto LAB_001cfd80;\n    pcVar7 = (char *)*param_2;\n    iVar12 = local_70;\n    switch(*pcVar7) {\n    case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;\n    default:\n      local_54 = 0;\n      goto code_r0x001d0082;\n    case 'K':\n    case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;\n    case 'X':\n    case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;\n    }\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      FUN_001ce230();\n    }\n    goto code_r0x001cfebc;\n  }" { (if_statement "if (iVar13 == 0) goto LAB_001cfd80;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001cfd80;" goto statement_identifier ;)) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "iVar12 = local_70;" (assignment_expression "iVar12 = local_70" identifier = identifier) ;) (switch_statement "switch(*pcVar7) {\n    case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;\n    default:\n      local_54 = 0;\n      goto code_r0x001d0082;\n    case 'K':\n    case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;\n    case 'X':\n    case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;\n    }" switch (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (compound_statement "{\n    case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;\n    default:\n      local_54 = 0;\n      goto code_r0x001d0082;\n    case 'K':\n    case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;\n    case 'X':\n    case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;\n    }" { (case_statement "case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;" case (char_literal "'B'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar6 = FUN_001cd940();" (assignment_expression "iVar6 = FUN_001cd940()" identifier = (call_expression "FUN_001cd940()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;" if (parenthesized_expression "(((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))" ( (binary_expression "((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c)" (parenthesized_expression "((iVar6 == 0) || (iStack_5c < 0))" ( (binary_expression "(iVar6 == 0) || (iStack_5c < 0)" (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) || (parenthesized_expression "(iStack_5c < 0)" ( (binary_expression "iStack_5c < 0" identifier < number_literal) ))) )) || (parenthesized_expression "(*(int *)(param_1 + 0x14) <= iStack_5c)" ( (binary_expression "*(int *)(param_1 + 0x14) <= iStack_5c" (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) )))) <= identifier) ))) )) (goto_statement "goto LAB_001cfd80;" goto statement_identifier ;)) (expression_statement "pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);" (assignment_expression "pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4)" identifier = (pointer_expression "*(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4)" * (cast_expression "(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_1 + 0xc) + iStack_5c * 4)" ( (binary_expression "*(int *)(param_1 + 0xc) + iStack_5c * 4" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) + (binary_expression "iStack_5c * 4" identifier * number_literal)) ))))) ;) (break_statement "break;" break ;)) (case_statement "default:\n      local_54 = 0;\n      goto code_r0x001d0082;" default : (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (goto_statement "goto code_r0x001d0082;" goto statement_identifier ;)) (case_statement "case 'K':" case (char_literal "'K'" ' character ') :) (case_statement "case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;" case (char_literal "'Q'" ' character ') : (expression_statement "iVar13 = FUN_001d1b50(0,1);" (assignment_expression "iVar13 = FUN_001d1b50(0,1)" identifier = (call_expression "FUN_001d1b50(0,1)" identifier (argument_list "(0,1)" ( number_literal , number_literal )))) ;) (if_statement "if (iVar13 == 0) goto LAB_001cfd80;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001cfd80;" goto statement_identifier ;)) (goto_statement "goto code_r0x001cfebc;" goto statement_identifier ;)) (case_statement "case 'X':" case (char_literal "'X'" ' character ') :) (case_statement "case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;" case (char_literal "'Y'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar13 = FUN_001cde90();" (assignment_expression "iVar13 = FUN_001cde90()" identifier = (call_expression "FUN_001cde90()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;" if (parenthesized_expression "((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1))))" ( (binary_expression "(iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))" (parenthesized_expression "(iVar13 == -1)" ( (binary_expression "iVar13 == -1" identifier == number_literal) )) || (parenthesized_expression "(((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))" ( (parenthesized_expression "((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1))" ( (binary_expression "(*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)" (parenthesized_expression "(*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13))" ( (binary_expression "*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)" (binary_expression "*(int *)(param_1 + 0x40) != 0" (pointer_expression "*(int *)(param_1 + 0x40)" * (cast_expression "(int *)(param_1 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) != number_literal) && (parenthesized_expression "(*(int *)(param_1 + 0x44) <= iVar13)" ( (binary_expression "*(int *)(param_1 + 0x44) <= iVar13" (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) <= identifier) ))) )) || (parenthesized_expression "(iVar6 = FUN_001cde90(), iVar6 == -1)" ( (comma_expression "iVar6 = FUN_001cde90(), iVar6 == -1" (assignment_expression "iVar6 = FUN_001cde90()" identifier = (call_expression "FUN_001cde90()" identifier (argument_list "()" ( )))) , (binary_expression "iVar6 == -1" identifier == number_literal)) ))) )) ))) )) (goto_statement "goto LAB_001cfd80;" goto statement_identifier ;)) (if_statement "if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x40) == 0)" ( (binary_expression "*(int *)(param_1 + 0x40) == 0" (pointer_expression "*(int *)(param_1 + 0x40)" * (cast_expression "(int *)(param_1 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }" { (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" identifier = number_literal) ;) (expression_statement "FUN_001ce280();" (call_expression "FUN_001ce280()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x001cfebc;" goto statement_identifier ;) })) (expression_statement "pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);" (assignment_expression "pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4)" identifier = (pointer_expression "*(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4)" * (cast_expression "(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_1 + 0x40) + iVar13 * 4)" ( (binary_expression "*(int *)(param_1 + 0x40) + iVar13 * 4" (pointer_expression "*(int *)(param_1 + 0x40)" * (cast_expression "(int *)(param_1 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) + (binary_expression "iVar13 * 4" identifier * number_literal)) ))))) ;) (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" identifier = number_literal) ;)) })) (if_statement "if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "((pcVar7 != (char *)0x0) && (*pcVar7 != '\0'))" ( (binary_expression "(pcVar7 != (char *)0x0) && (*pcVar7 != '\0')" (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*pcVar7 != '\0')" ( (binary_expression "*pcVar7 != '\0'" (pointer_expression "*pcVar7" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto code_r0x001cfebc;" goto statement_identifier ;) }))) (expression_statement "puVar14 = (undefined1 *)*param_2;" (assignment_expression "puVar14 = (undefined1 *)*param_2" identifier = (cast_expression "(undefined1 *)*param_2" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (expression_statement "iVar12 = local_70;" (assignment_expression "iVar12 = local_70" identifier = identifier) ;) (switch_statement "switch(*puVar14) {\n  case 0x41:\n    goto code_r0x001cfa38;\n  default:\n    goto LAB_001cf82d;\n  case 0x43:\n  case 0x56:\n  case 0x75:\n    if ((*param_1 & 2) != 0) {\n      if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n      pcVar7 = (char *)FUN_001cdd80();\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n    }\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x46:\n    *param_2 = (int)(puVar14 + 1);\n    if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      FUN_001ce1f0();\n      FUN_001ce230();\n    }\n    iVar6 = FUN_001d24a0();\n    if (iVar6 != 0) {\n      cVar5 = *(char *)*param_2;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x47:\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x4d:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce230();\n    if (*(char *)*param_2 == 'Q') {\n      if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;\ncode_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);\n      if (iVar13 == 0) goto code_r0x001cf820;\n    }\n    else {\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }\ncode_r0x001cfb87:\n    FUN_001ce1f0();\n    pcVar7 = (char *)*param_2;\n    cVar5 = *pcVar7;\n    if (cVar5 == 'V') {\n      local_78 = 2;\ncode_r0x001d0040:\n      pcVar11 = pcVar7 + 1;\n      *param_2 = (int)pcVar11;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }\n    if (cVar5 == 'F') {\n      *param_2 = (int)(pcVar11 + 1);\n      iVar6 = FUN_001d24a0();\n      if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x4f:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 3;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x50:\n  case 0x70:\n    *param_2 = (int)(puVar14 + 1);\n    if ((*param_1 & 4) == 0) {\n      FUN_001ce1f0();\n    }\n    iVar12 = 1;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x52:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 2;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x54:\n    *param_2 = (int)(puVar14 + 1);\n    iVar6 = FUN_001cd940();\n    if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c)) break;\n    if (*(int *)(param_1 + 0x5c) < 1) goto code_r0x001cfe64;\n    piVar10 = *(int **)(param_1 + 0x54);\n    piVar1 = piVar10 + *(int *)(param_1 + 0x5c);\n    do {\n      if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }\n      piVar10 = piVar10 + 1;\n    } while (piVar1 != piVar10);\n    if (iVar13 != 0) {\ncode_r0x001cfe64:\n      FUN_001cdac0();\n      bVar4 = true;\n      param_2 = &iStack_58;\n      iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);\n    }\n    goto code_r0x001cf820;\n  }" switch (parenthesized_expression "(*puVar14)" ( (pointer_expression "*puVar14" * identifier) )) (compound_statement "{\n  case 0x41:\n    goto code_r0x001cfa38;\n  default:\n    goto LAB_001cf82d;\n  case 0x43:\n  case 0x56:\n  case 0x75:\n    if ((*param_1 & 2) != 0) {\n      if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n      pcVar7 = (char *)FUN_001cdd80();\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n    }\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x46:\n    *param_2 = (int)(puVar14 + 1);\n    if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      FUN_001ce1f0();\n      FUN_001ce230();\n    }\n    iVar6 = FUN_001d24a0();\n    if (iVar6 != 0) {\n      cVar5 = *(char *)*param_2;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x47:\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x4d:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce230();\n    if (*(char *)*param_2 == 'Q') {\n      if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;\ncode_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);\n      if (iVar13 == 0) goto code_r0x001cf820;\n    }\n    else {\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }\ncode_r0x001cfb87:\n    FUN_001ce1f0();\n    pcVar7 = (char *)*param_2;\n    cVar5 = *pcVar7;\n    if (cVar5 == 'V') {\n      local_78 = 2;\ncode_r0x001d0040:\n      pcVar11 = pcVar7 + 1;\n      *param_2 = (int)pcVar11;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }\n    if (cVar5 == 'F') {\n      *param_2 = (int)(pcVar11 + 1);\n      iVar6 = FUN_001d24a0();\n      if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x4f:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 3;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x50:\n  case 0x70:\n    *param_2 = (int)(puVar14 + 1);\n    if ((*param_1 & 4) == 0) {\n      FUN_001ce1f0();\n    }\n    iVar12 = 1;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x52:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 2;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x54:\n    *param_2 = (int)(puVar14 + 1);\n    iVar6 = FUN_001cd940();\n    if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c)) break;\n    if (*(int *)(param_1 + 0x5c) < 1) goto code_r0x001cfe64;\n    piVar10 = *(int **)(param_1 + 0x54);\n    piVar1 = piVar10 + *(int *)(param_1 + 0x5c);\n    do {\n      if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }\n      piVar10 = piVar10 + 1;\n    } while (piVar1 != piVar10);\n    if (iVar13 != 0) {\ncode_r0x001cfe64:\n      FUN_001cdac0();\n      bVar4 = true;\n      param_2 = &iStack_58;\n      iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);\n    }\n    goto code_r0x001cf820;\n  }" { (case_statement "case 0x41:\n    goto code_r0x001cfa38;" case number_literal : (goto_statement "goto code_r0x001cfa38;" goto statement_identifier ;)) (case_statement "default:\n    goto LAB_001cf82d;" default : (goto_statement "goto LAB_001cf82d;" goto statement_identifier ;)) (case_statement "case 0x43:" case number_literal :) (case_statement "case 0x56:" case number_literal :) (case_statement "case 0x75:\n    if ((*param_1 & 2) != 0) {\n      if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n      pcVar7 = (char *)FUN_001cdd80();\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n    }\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;" case number_literal : (if_statement "if ((*param_1 & 2) != 0) {\n      if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n      pcVar7 = (char *)FUN_001cdd80();\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n    }" if (parenthesized_expression "((*param_1 & 2) != 0)" ( (binary_expression "(*param_1 & 2) != 0" (parenthesized_expression "(*param_1 & 2)" ( (binary_expression "*param_1 & 2" (pointer_expression "*param_1" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n      pcVar7 = (char *)FUN_001cdd80();\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n    }" { (if_statement "if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }" if (parenthesized_expression "(local_50 != local_4c)" ( (binary_expression "local_50 != local_4c" identifier != identifier) )) (compound_statement "{\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }" { (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar14 = (undefined1 *)*param_2;" (assignment_expression "puVar14 = (undefined1 *)*param_2" identifier = (cast_expression "(undefined1 *)*param_2" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) })) (expression_statement "pcVar7 = (char *)FUN_001cdd80();" (assignment_expression "pcVar7 = (char *)FUN_001cdd80()" identifier = (cast_expression "(char *)FUN_001cdd80()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001cdd80()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }" if (parenthesized_expression "((pcVar7 != (char *)0x0) && (*pcVar7 != '\0'))" ( (binary_expression "(pcVar7 != (char *)0x0) && (*pcVar7 != '\0')" (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*pcVar7 != '\0')" ( (binary_expression "*pcVar7 != '\0'" (pointer_expression "*pcVar7" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }" { (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar14 = (undefined1 *)*param_2;" (assignment_expression "puVar14 = (undefined1 *)*param_2" identifier = (cast_expression "(undefined1 *)*param_2" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) })) })) (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(puVar14 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar14 + 1)" ( (binary_expression "puVar14 + 1" identifier + number_literal) )))) ;) (goto_statement "goto code_r0x001cf820;" goto statement_identifier ;)) (case_statement "case 0x46:\n    *param_2 = (int)(puVar14 + 1);\n    if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      FUN_001ce1f0();\n      FUN_001ce230();\n    }\n    iVar6 = FUN_001d24a0();\n    if (iVar6 != 0) {\n      cVar5 = *(char *)*param_2;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;" case number_literal : (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(puVar14 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar14 + 1)" ( (binary_expression "puVar14 + 1" identifier + number_literal) )))) ;) (if_statement "if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      FUN_001ce1f0();\n      FUN_001ce230();\n    }" if (parenthesized_expression "((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0))" ( (binary_expression "(pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)" (parenthesized_expression "(pcVar7 != local_4c)" ( (binary_expression "pcVar7 != local_4c" identifier != identifier) )) && (parenthesized_expression "((*pcVar7 - 0x26U & 0xfb) == 0)" ( (binary_expression "(*pcVar7 - 0x26U & 0xfb) == 0" (parenthesized_expression "(*pcVar7 - 0x26U & 0xfb)" ( (binary_expression "*pcVar7 - 0x26U & 0xfb" (binary_expression "*pcVar7 - 0x26U" (pointer_expression "*pcVar7" * identifier) - number_literal) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      FUN_001ce1f0();\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar6 = FUN_001d24a0();" (assignment_expression "iVar6 = FUN_001d24a0()" identifier = (call_expression "FUN_001d24a0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 != 0) {\n      cVar5 = *(char *)*param_2;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }\n    }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      cVar5 = *(char *)*param_2;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }\n    }" { (expression_statement "cVar5 = *(char *)*param_2;" (assignment_expression "cVar5 = *(char *)*param_2" identifier = (pointer_expression "*(char *)*param_2" * (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)))) ;) (if_statement "if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }" if (parenthesized_expression "((cVar5 == '_') || (cVar5 == '\0'))" ( (binary_expression "(cVar5 == '_') || (cVar5 == '\0')" (parenthesized_expression "(cVar5 == '_')" ( (binary_expression "cVar5 == '_'" identifier == (char_literal "'_'" ' character ')) )) || (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }" { (if_statement "if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }" if (parenthesized_expression "(cVar5 == '_')" ( (binary_expression "cVar5 == '_'" identifier == (char_literal "'_'" ' character ')) )) (compound_statement "{\n          *param_2 = (int)((char *)*param_2 + 1);\n        }" { (expression_statement "*param_2 = (int)((char *)*param_2 + 1);" (assignment_expression "*param_2 = (int)((char *)*param_2 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)((char *)*param_2 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((char *)*param_2 + 1)" ( (binary_expression "(char *)*param_2 + 1" (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)) + number_literal) )))) ;) })) (goto_statement "goto code_r0x001cf820;" goto statement_identifier ;) })) })) (break_statement "break;" break ;)) (case_statement "case 0x47:\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;" case number_literal : (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(puVar14 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar14 + 1)" ( (binary_expression "puVar14 + 1" identifier + number_literal) )))) ;) (goto_statement "goto code_r0x001cf820;" goto statement_identifier ;)) (case_statement "case 0x4d:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce230();\n    if (*(char *)*param_2 == 'Q') {\n      if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;\ncode_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);\n      if (iVar13 == 0) goto code_r0x001cf820;\n    }\n    else {\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }\ncode_r0x001cfb87:\n    FUN_001ce1f0();\n    pcVar7 = (char *)*param_2;\n    cVar5 = *pcVar7;\n    if (cVar5 == 'V') {\n      local_78 = 2;\ncode_r0x001d0040:\n      pcVar11 = pcVar7 + 1;\n      *param_2 = (int)pcVar11;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }\n    if (cVar5 == 'F') {\n      *param_2 = (int)(pcVar11 + 1);\n      iVar6 = FUN_001d24a0();\n      if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;" case number_literal : (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(puVar14 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar14 + 1)" ( (binary_expression "puVar14 + 1" identifier + number_literal) )))) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(char *)*param_2 == 'Q') {\n      if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;\ncode_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);\n      if (iVar13 == 0) goto code_r0x001cf820;\n    }\n    else {\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }" if (parenthesized_expression "(*(char *)*param_2 == 'Q')" ( (binary_expression "*(char *)*param_2 == 'Q'" (pointer_expression "*(char *)*param_2" * (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) == (char_literal "'Q'" ' character ')) )) (compound_statement "{\n      if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;\ncode_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);\n      if (iVar13 == 0) goto code_r0x001cf820;\n    }" { (if_statement "if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;" if (parenthesized_expression "((UNK_002a36c2 & 4) != 0)" ( (binary_expression "(UNK_002a36c2 & 4) != 0" (parenthesized_expression "(UNK_002a36c2 & 4)" ( (binary_expression "UNK_002a36c2 & 4" identifier & number_literal) )) != number_literal) )) (goto_statement "goto code_r0x001cfb41;" goto statement_identifier ;)) (labeled_statement "code_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);" statement_identifier : (expression_statement "iVar13 = FUN_001d1b50(0,0);" (assignment_expression "iVar13 = FUN_001d1b50(0,0)" identifier = (call_expression "FUN_001d1b50(0,0)" identifier (argument_list "(0,0)" ( number_literal , number_literal )))) ;)) (if_statement "if (iVar13 == 0) goto code_r0x001cf820;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x001cf820;" goto statement_identifier ;)) }) (else_clause "else {\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }" else (compound_statement "{\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }" { (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar2 = *(byte *)*param_2;" (assignment_expression "bVar2 = *(byte *)*param_2" identifier = (pointer_expression "*(byte *)*param_2" * (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)))) ;) (if_statement "if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }" if (parenthesized_expression "(((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0)" ( (binary_expression "((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0" (parenthesized_expression "((&DAT_002a3620)[(uint)bVar2 * 2] & 4)" ( (binary_expression "(&DAT_002a3620)[(uint)bVar2 * 2] & 4" (subscript_expression "(&DAT_002a3620)[(uint)bVar2 * 2]" (parenthesized_expression "(&DAT_002a3620)" ( (pointer_expression "&DAT_002a3620" & identifier) )) [ (binary_expression "(uint)bVar2 * 2" (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }" { (labeled_statement "code_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();" statement_identifier : (expression_statement "iStack_5c = FUN_001cdde0();" (assignment_expression "iStack_5c = FUN_001cdde0()" identifier = (call_expression "FUN_001cdde0()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }" if (parenthesized_expression "(iStack_5c != -1)" ( (binary_expression "iStack_5c != -1" identifier != number_literal) )) (compound_statement "{\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }" { (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "sVar8 = strlen(pcVar7);" (assignment_expression "sVar8 = strlen(pcVar7)" identifier = (call_expression "strlen(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) (if_statement "if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }" if (parenthesized_expression "(iStack_5c <= (int)sVar8)" ( (binary_expression "iStack_5c <= (int)sVar8" identifier <= (cast_expression "(int)sVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }" { (if_statement "if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }" if (parenthesized_expression "(iStack_5c != 0)" ( (binary_expression "iStack_5c != 0" identifier != number_literal) )) (compound_statement "{\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }" { (expression_statement "FUN_001ce190();" (call_expression "FUN_001ce190()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) })) (expression_statement "*param_2 = (int)(pcVar7 + iStack_5c);" (assignment_expression "*param_2 = (int)(pcVar7 + iStack_5c)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + iStack_5c)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + iStack_5c)" ( (binary_expression "pcVar7 + iStack_5c" identifier + identifier) )))) ;) (goto_statement "goto code_r0x001cfb87;" goto statement_identifier ;) })) })) (break_statement "break;" break ;) })) (if_statement "if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }" if (parenthesized_expression "((byte)(bVar2 + 0xa8) < 2)" ( (binary_expression "(byte)(bVar2 + 0xa8) < 2" (call_expression "(byte)(bVar2 + 0xa8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar2 + 0xa8)" ( (binary_expression "bVar2 + 0xa8" identifier + number_literal) ))) < number_literal) )) (compound_statement "{\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }" { (expression_statement "FUN_001cf7b0();" (call_expression "FUN_001cf7b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "__ptr = pvStack_40;" (assignment_expression "__ptr = pvStack_40" identifier = identifier) ;) (if_statement "if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }" if (parenthesized_expression "(pvStack_44 != pvStack_40)" ( (binary_expression "pvStack_44 != pvStack_40" identifier != identifier) )) (compound_statement "{\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }" { (expression_statement "FUN_001ce190();" (call_expression "FUN_001ce190()" identifier (argument_list "()" ( ))) ;) (expression_statement "__ptr = pvStack_44;" (assignment_expression "__ptr = pvStack_44" identifier = identifier) ;) })) (if_statement "if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }" if (parenthesized_expression "(__ptr != (void *)0x0)" ( (binary_expression "__ptr != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          free(__ptr);\n        }" { (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) })) }) (else_clause "else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }" else (compound_statement "{\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }" { (if_statement "if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }" if (parenthesized_expression "(bVar2 != 0x74)" ( (binary_expression "bVar2 != 0x74" identifier != number_literal) )) (compound_statement "{\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }" { (if_statement "if (bVar2 == 0x51) goto code_r0x001cfa0d;" if (parenthesized_expression "(bVar2 == 0x51)" ( (binary_expression "bVar2 == 0x51" identifier == number_literal) )) (goto_statement "goto code_r0x001cfa0d;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "uStack_3c = 0;" (assignment_expression "uStack_3c = 0" identifier = number_literal) ;) (expression_statement "pvStack_40 = (void *)0x0;" (assignment_expression "pvStack_40 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pvStack_44 = (void *)0x0;" (assignment_expression "pvStack_44 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar13 = FUN_001d1450(0,1,1);" (assignment_expression "iVar13 = FUN_001d1450(0,1,1)" identifier = (call_expression "FUN_001d1450(0,1,1)" identifier (argument_list "(0,1,1)" ( number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }" { (if_statement "if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }" if (parenthesized_expression "(pvStack_44 != (void *)0x0)" ( (binary_expression "pvStack_44 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            free(pvStack_44);\n          }" { (expression_statement "free(pvStack_44);" (call_expression "free(pvStack_44)" identifier (argument_list "(pvStack_44)" ( identifier ))) ;) })) (goto_statement "goto code_r0x001cf820;" goto statement_identifier ;) })) (if_statement "if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }" if (parenthesized_expression "(pvStack_40 != pvStack_44)" ( (binary_expression "pvStack_40 != pvStack_44" identifier != identifier) )) (compound_statement "{\n          FUN_001ce190();\n        }" { (expression_statement "FUN_001ce190();" (call_expression "FUN_001ce190()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }" if (parenthesized_expression "(pvStack_44 != (void *)0x0)" ( (binary_expression "pvStack_44 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          free(pvStack_44);\n        }" { (expression_statement "free(pvStack_44);" (call_expression "free(pvStack_44)" identifier (argument_list "(pvStack_44)" ( identifier ))) ;) })) }))) }))) (labeled_statement "code_r0x001cfb87:\n    FUN_001ce1f0();" statement_identifier : (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "cVar5 = *pcVar7;" (assignment_expression "cVar5 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (if_statement "if (cVar5 == 'V') {\n      local_78 = 2;\ncode_r0x001d0040:\n      pcVar11 = pcVar7 + 1;\n      *param_2 = (int)pcVar11;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }" if (parenthesized_expression "(cVar5 == 'V')" ( (binary_expression "cVar5 == 'V'" identifier == (char_literal "'V'" ' character ')) )) (compound_statement "{\n      local_78 = 2;\ncode_r0x001d0040:\n      pcVar11 = pcVar7 + 1;\n      *param_2 = (int)pcVar11;\n      cVar5 = pcVar7[1];\n    }" { (expression_statement "local_78 = 2;" (assignment_expression "local_78 = 2" identifier = number_literal) ;) (labeled_statement "code_r0x001d0040:\n      pcVar11 = pcVar7 + 1;" statement_identifier : (expression_statement "pcVar11 = pcVar7 + 1;" (assignment_expression "pcVar11 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;)) (expression_statement "*param_2 = (int)pcVar11;" (assignment_expression "*param_2 = (int)pcVar11" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "cVar5 = pcVar7[1];" (assignment_expression "cVar5 = pcVar7[1]" identifier = (subscript_expression "pcVar7[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }" else (compound_statement "{\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }" { (if_statement "if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }" if (parenthesized_expression "(cVar5 == 'u')" ( (binary_expression "cVar5 == 'u'" identifier == (char_literal "'u'" ' character ')) )) (compound_statement "{\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }" { (expression_statement "local_78 = 4;" (assignment_expression "local_78 = 4" identifier = number_literal) ;) (goto_statement "goto code_r0x001d0040;" goto statement_identifier ;) })) (if_statement "if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }" if (parenthesized_expression "(cVar5 == 'C')" ( (binary_expression "cVar5 == 'C'" identifier == (char_literal "'C'" ' character ')) )) (compound_statement "{\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }" { (expression_statement "local_78 = 1;" (assignment_expression "local_78 = 1" identifier = number_literal) ;) (goto_statement "goto code_r0x001d0040;" goto statement_identifier ;) })) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" identifier = number_literal) ;) (expression_statement "pcVar11 = pcVar7;" (assignment_expression "pcVar11 = pcVar7" identifier = identifier) ;) }))) (if_statement "if (cVar5 == 'F') {\n      *param_2 = (int)(pcVar11 + 1);\n      iVar6 = FUN_001d24a0();\n      if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }\n    }" if (parenthesized_expression "(cVar5 == 'F')" ( (binary_expression "cVar5 == 'F'" identifier == (char_literal "'F'" ' character ')) )) (compound_statement "{\n      *param_2 = (int)(pcVar11 + 1);\n      iVar6 = FUN_001d24a0();\n      if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }\n    }" { (expression_statement "*param_2 = (int)(pcVar11 + 1);" (assignment_expression "*param_2 = (int)(pcVar11 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar11 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar11 + 1)" ( (binary_expression "pcVar11 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar6 = FUN_001d24a0();" (assignment_expression "iVar6 = FUN_001d24a0()" identifier = (call_expression "FUN_001d24a0()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }" if (parenthesized_expression "((iVar6 != 0) && (*(char *)*param_2 == '_'))" ( (binary_expression "(iVar6 != 0) && (*(char *)*param_2 == '_')" (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(char *)*param_2 == '_')" ( (binary_expression "*(char *)*param_2 == '_'" (pointer_expression "*(char *)*param_2" * (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) == (char_literal "'_'" ' character ')) ))) )) (compound_statement "{\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }" { (expression_statement "*param_2 = (int)((char *)*param_2 + 1);" (assignment_expression "*param_2 = (int)((char *)*param_2 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)((char *)*param_2 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((char *)*param_2 + 1)" ( (binary_expression "(char *)*param_2 + 1" (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)) + number_literal) )))) ;) (if_statement "if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }" if (parenthesized_expression "(((*param_1 & 2) != 0) && (local_78 != 0))" ( (binary_expression "((*param_1 & 2) != 0) && (local_78 != 0)" (parenthesized_expression "((*param_1 & 2) != 0)" ( (binary_expression "(*param_1 & 2) != 0" (parenthesized_expression "(*param_1 & 2)" ( (binary_expression "*param_1 & 2" (pointer_expression "*param_1" * identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(local_78 != 0)" ( (binary_expression "local_78 != 0" identifier != number_literal) ))) )) (compound_statement "{\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }" { (if_statement "if (local_50 != local_4c) {\n            FUN_001ce230();\n          }" if (parenthesized_expression "(local_50 != local_4c)" ( (binary_expression "local_50 != local_4c" identifier != identifier) )) (compound_statement "{\n            FUN_001ce230();\n          }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "pcVar7 = (char *)FUN_001cdcd0();" (assignment_expression "pcVar7 = (char *)FUN_001cdcd0()" identifier = (cast_expression "(char *)FUN_001cdcd0()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001cdcd0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }" if (parenthesized_expression "((pcVar7 != (char *)0x0) && (*pcVar7 != '\0'))" ( (binary_expression "(pcVar7 != (char *)0x0) && (*pcVar7 != '\0')" (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*pcVar7 != '\0')" ( (binary_expression "*pcVar7 != '\0'" (pointer_expression "*pcVar7" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            FUN_001ce230();\n          }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) })) (goto_statement "goto code_r0x001cf820;" goto statement_identifier ;) })) })) (break_statement "break;" break ;)) (case_statement "case 0x4f:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 3;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;" case number_literal : (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(puVar14 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar14 + 1)" ( (binary_expression "puVar14 + 1" identifier + number_literal) )))) ;) (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 3;" (assignment_expression "iVar12 = 3" identifier = number_literal) ;) (if_statement "if (local_70 != 0) {\n      iVar12 = local_70;\n    }" if (parenthesized_expression "(local_70 != 0)" ( (binary_expression "local_70 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar12 = local_70;\n    }" { (expression_statement "iVar12 = local_70;" (assignment_expression "iVar12 = local_70" identifier = identifier) ;) })) (goto_statement "goto code_r0x001cf820;" goto statement_identifier ;)) (case_statement "case 0x50:" case number_literal :) (case_statement "case 0x70:\n    *param_2 = (int)(puVar14 + 1);\n    if ((*param_1 & 4) == 0) {\n      FUN_001ce1f0();\n    }\n    iVar12 = 1;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;" case number_literal : (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(puVar14 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar14 + 1)" ( (binary_expression "puVar14 + 1" identifier + number_literal) )))) ;) (if_statement "if ((*param_1 & 4) == 0) {\n      FUN_001ce1f0();\n    }" if (parenthesized_expression "((*param_1 & 4) == 0)" ( (binary_expression "(*param_1 & 4) == 0" (parenthesized_expression "(*param_1 & 4)" ( (binary_expression "*param_1 & 4" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      FUN_001ce1f0();\n    }" { (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (if_statement "if (local_70 != 0) {\n      iVar12 = local_70;\n    }" if (parenthesized_expression "(local_70 != 0)" ( (binary_expression "local_70 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar12 = local_70;\n    }" { (expression_statement "iVar12 = local_70;" (assignment_expression "iVar12 = local_70" identifier = identifier) ;) })) (goto_statement "goto code_r0x001cf820;" goto statement_identifier ;)) (case_statement "case 0x52:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 2;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;" case number_literal : (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(puVar14 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar14 + 1)" ( (binary_expression "puVar14 + 1" identifier + number_literal) )))) ;) (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 2;" (assignment_expression "iVar12 = 2" identifier = number_literal) ;) (if_statement "if (local_70 != 0) {\n      iVar12 = local_70;\n    }" if (parenthesized_expression "(local_70 != 0)" ( (binary_expression "local_70 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar12 = local_70;\n    }" { (expression_statement "iVar12 = local_70;" (assignment_expression "iVar12 = local_70" identifier = identifier) ;) })) (goto_statement "goto code_r0x001cf820;" goto statement_identifier ;)) (case_statement "case 0x54:\n    *param_2 = (int)(puVar14 + 1);\n    iVar6 = FUN_001cd940();\n    if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c)) break;\n    if (*(int *)(param_1 + 0x5c) < 1) goto code_r0x001cfe64;\n    piVar10 = *(int **)(param_1 + 0x54);\n    piVar1 = piVar10 + *(int *)(param_1 + 0x5c);\n    do {\n      if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }\n      piVar10 = piVar10 + 1;\n    } while (piVar1 != piVar10);\n    if (iVar13 != 0) {\ncode_r0x001cfe64:\n      FUN_001cdac0();\n      bVar4 = true;\n      param_2 = &iStack_58;\n      iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);\n    }\n    goto code_r0x001cf820;" case number_literal : (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(puVar14 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar14 + 1)" ( (binary_expression "puVar14 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar6 = FUN_001cd940();" (assignment_expression "iVar6 = FUN_001cd940()" identifier = (call_expression "FUN_001cd940()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c)) break;" if (parenthesized_expression "(((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c))" ( (binary_expression "((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c)" (parenthesized_expression "((iVar6 == 0) || (iStack_5c < 0))" ( (binary_expression "(iVar6 == 0) || (iStack_5c < 0)" (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) || (parenthesized_expression "(iStack_5c < 0)" ( (binary_expression "iStack_5c < 0" identifier < number_literal) ))) )) || (parenthesized_expression "(*(int *)(param_1 + 0x20) <= iStack_5c)" ( (binary_expression "*(int *)(param_1 + 0x20) <= iStack_5c" (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) )))) <= identifier) ))) )) (break_statement "break;" break ;)) (if_statement "if (*(int *)(param_1 + 0x5c) < 1) goto code_r0x001cfe64;" if (parenthesized_expression "(*(int *)(param_1 + 0x5c) < 1)" ( (binary_expression "*(int *)(param_1 + 0x5c) < 1" (pointer_expression "*(int *)(param_1 + 0x5c)" * (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))) < number_literal) )) (goto_statement "goto code_r0x001cfe64;" goto statement_identifier ;)) (expression_statement "piVar10 = *(int **)(param_1 + 0x54);" (assignment_expression "piVar10 = *(int **)(param_1 + 0x54)" identifier = (pointer_expression "*(int **)(param_1 + 0x54)" * (cast_expression "(int **)(param_1 + 0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "piVar1 = piVar10 + *(int *)(param_1 + 0x5c);" (assignment_expression "piVar1 = piVar10 + *(int *)(param_1 + 0x5c)" identifier = (binary_expression "piVar10 + *(int *)(param_1 + 0x5c)" identifier + (pointer_expression "*(int *)(param_1 + 0x5c)" * (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))))) ;) (do_statement "do {\n      if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }\n      piVar10 = piVar10 + 1;\n    } while (piVar1 != piVar10);" do (compound_statement "{\n      if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }\n      piVar10 = piVar10 + 1;\n    }" { (if_statement "if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }" if (parenthesized_expression "(iStack_5c == *piVar10)" ( (binary_expression "iStack_5c == *piVar10" identifier == (pointer_expression "*piVar10" * identifier)) )) (compound_statement "{\n        iVar13 = 0;\n      }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) })) (expression_statement "piVar10 = piVar10 + 1;" (assignment_expression "piVar10 = piVar10 + 1" identifier = (binary_expression "piVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar1 != piVar10)" ( (binary_expression "piVar1 != piVar10" identifier != identifier) )) ;) (if_statement "if (iVar13 != 0) {\ncode_r0x001cfe64:\n      FUN_001cdac0();\n      bVar4 = true;\n      param_2 = &iStack_58;\n      iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);\n    }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\ncode_r0x001cfe64:\n      FUN_001cdac0();\n      bVar4 = true;\n      param_2 = &iStack_58;\n      iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);\n    }" { (labeled_statement "code_r0x001cfe64:\n      FUN_001cdac0();" statement_identifier : (expression_statement "FUN_001cdac0();" (call_expression "FUN_001cdac0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) (expression_statement "param_2 = &iStack_58;" (assignment_expression "param_2 = &iStack_58" identifier = (pointer_expression "&iStack_58" & identifier)) ;) (expression_statement "iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);" (assignment_expression "iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 4) + iStack_5c * 4)" * (cast_expression "(int *)(*(int *)(param_1 + 4) + iStack_5c * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + iStack_5c * 4)" ( (binary_expression "*(int *)(param_1 + 4) + iStack_5c * 4" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + (binary_expression "iStack_5c * 4" identifier * number_literal)) ))))) ;) })) (goto_statement "goto code_r0x001cf820;" goto statement_identifier ;)) })) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (goto_statement "goto code_r0x001cf820;" goto statement_identifier ;) (labeled_statement "code_r0x001d0082:\n  do {\n    switch(*pcVar7 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    switch(*pcVar7 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n    }\n  } while( true );" do (compound_statement "{\n    switch(*pcVar7 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n    }\n  }" { (switch_statement "switch(*pcVar7 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n    }" switch (parenthesized_expression "(*pcVar7 + -0x43)" ( (binary_expression "*pcVar7 + -0x43" (pointer_expression "*pcVar7" * identifier) + number_literal) )) (compound_statement "{\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n    }" { (case_statement "case '\0':" case (char_literal "'\0'" ' escape_sequence ') :) (case_statement "case '\x13':" case (char_literal "'\x13'" ' escape_sequence ') :) (case_statement "case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;" case (char_literal "'2'" ' character ') : (if_statement "if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }" if (parenthesized_expression "((*param_1 & 2) != 0)" ( (binary_expression "(*param_1 & 2) != 0" (parenthesized_expression "(*param_1 & 2)" ( (binary_expression "*param_1 & 2" (pointer_expression "*param_1" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }" { (if_statement "if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }" { (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) })) (expression_statement "pcVar11 = (char *)FUN_001cdd80();" (assignment_expression "pcVar11 = (char *)FUN_001cdd80()" identifier = (cast_expression "(char *)FUN_001cdd80()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001cdd80()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }" if (parenthesized_expression "((pcVar11 != (char *)0x0) && (*pcVar11 != '\0'))" ( (binary_expression "(pcVar11 != (char *)0x0) && (*pcVar11 != '\0')" (parenthesized_expression "(pcVar11 != (char *)0x0)" ( (binary_expression "pcVar11 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*pcVar11 != '\0')" ( (binary_expression "*pcVar11 != '\0'" (pointer_expression "*pcVar11" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }" { (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) })) })) (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "*param_2 = (int)pcVar7;" (assignment_expression "*param_2 = (int)pcVar7" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "default:\n      goto code_r0x001d0176;" default : (goto_statement "goto code_r0x001d0176;" goto statement_identifier ;)) (case_statement "case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;" case (char_literal "'\a'" ' escape_sequence ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n        FUN_001ce230();\n      }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (break_statement "break;" break ;)) (case_statement "case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;" case (char_literal "'\x10'" ' escape_sequence ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n        FUN_001ce230();\n      }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (break_statement "break;" break ;)) (case_statement "case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;" case (char_literal "'\x12'" ' escape_sequence ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n        FUN_001ce230();\n      }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;)) })) }) while (parenthesized_expression "( true )" ( true )) ;)) (labeled_statement "code_r0x001cfa38:\n  *param_2 = (int)(puVar14 + 1);" statement_identifier : (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(puVar14 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar14 + 1)" ( (binary_expression "puVar14 + 1" identifier + number_literal) )))) ;)) (if_statement "if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n    FUN_001ce1f0();\n    FUN_001ce230();\n  }" if (parenthesized_expression "((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0))" ( (binary_expression "(pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)" (parenthesized_expression "(pcVar7 != local_4c)" ( (binary_expression "pcVar7 != local_4c" identifier != identifier) )) && (parenthesized_expression "((*pcVar7 - 0x26U & 0xfb) == 0)" ( (binary_expression "(*pcVar7 - 0x26U & 0xfb) == 0" (parenthesized_expression "(*pcVar7 - 0x26U & 0xfb)" ( (binary_expression "*pcVar7 - 0x26U & 0xfb" (binary_expression "*pcVar7 - 0x26U" (pointer_expression "*pcVar7" * identifier) - number_literal) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    FUN_001ce1f0();\n    FUN_001ce230();\n  }" { (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (if_statement "if (*pcVar7 != '_') {\n    iVar13 = FUN_001cf0a0(4);\n    pcVar7 = (char *)*param_2;\n    if (*pcVar7 != '_') goto code_r0x001cfa7a;\n  }" if (parenthesized_expression "(*pcVar7 != '_')" ( (binary_expression "*pcVar7 != '_'" (pointer_expression "*pcVar7" * identifier) != (char_literal "'_'" ' character ')) )) (compound_statement "{\n    iVar13 = FUN_001cf0a0(4);\n    pcVar7 = (char *)*param_2;\n    if (*pcVar7 != '_') goto code_r0x001cfa7a;\n  }" { (expression_statement "iVar13 = FUN_001cf0a0(4);" (assignment_expression "iVar13 = FUN_001cf0a0(4)" identifier = (call_expression "FUN_001cf0a0(4)" identifier (argument_list "(4)" ( number_literal )))) ;) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (if_statement "if (*pcVar7 != '_') goto code_r0x001cfa7a;" if (parenthesized_expression "(*pcVar7 != '_')" ( (binary_expression "*pcVar7 != '_'" (pointer_expression "*pcVar7" * identifier) != (char_literal "'_'" ' character ')) )) (goto_statement "goto code_r0x001cfa7a;" goto statement_identifier ;)) })) (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (labeled_statement "code_r0x001cfa7a:\n  FUN_001ce230();" statement_identifier : (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;)) (goto_statement "goto code_r0x001cf820;" goto statement_identifier ;) (labeled_statement "code_r0x001d0176:\n  pcVar11 = pcVar7;" statement_identifier : (expression_statement "pcVar11 = pcVar7;" (assignment_expression "pcVar11 = pcVar7" identifier = identifier) ;)) (switch_statement "switch(*pcVar7) {\n  case '\0':\n  case '_':\n    goto code_r0x001d018e;\n  default:\n    goto LAB_001cfd80;\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    uVar9 = FUN_001cdb80();\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d0dd0();\n    if (iVar13 != 0) {\n      FUN_001ce060(uVar9);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      iVar13 = 1;\n      FUN_001ce380();\n    }\n    goto joined_r0x001d0375;\n  case 'G':\n    pcVar11 = pcVar7 + 1;\n    *param_2 = (int)pcVar11;\n    if (((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0) goto code_r0x001d01c5;\n    goto LAB_001cfd80;\n  case 'I':\ncode_r0x001d01c5:\n    pcVar7 = pcVar11 + 1;\n    *param_2 = (int)pcVar7;\n    if (pcVar11[1] == '_') {\n      iVar13 = 0;\n      *param_2 = (int)(pcVar11 + 2);\n      pcVar7 = pcVar11 + 2;\n      do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);\n      cVar5 = pcVar11[1];\ncode_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;\n      *(undefined1 *)((int)&pvStack_44 + iVar13) = 0;\n      *param_2 = (int)(pcVar7 + 1);\n    }\n    else {\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }\n    sscanf((char *)&pvStack_44,"%x",&local_54);\n    sprintf((char *)&pvStack_44,"int%u_t",local_54);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    if ((char)pvStack_44 == '\0') goto code_r0x001d018e;\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'b':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 5;\n    FUN_001ce230();\n    iVar12 = 5;\n    break;\n  case 'c':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'd':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'f':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'i':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'l':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'r':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 's':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 't':\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d1450(0,1,1);\n    FUN_001ce380();\njoined_r0x001d0375:\n    if (pvStack_44 != (void *)0x0) {\n      free(pvStack_44);\n    }\n    if (iVar13 != 0) {\ncode_r0x001d018e:\n      iVar13 = 4;\n      iVar12 = 4;\n      break;\n    }\nLAB_001cfd80:\n    if ((void *)*param_3 == (void *)0x0) {\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }\n    else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }\n    goto LAB_001cfdb8;\n  case 'v':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'w':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'x':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n  }" switch (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (compound_statement "{\n  case '\0':\n  case '_':\n    goto code_r0x001d018e;\n  default:\n    goto LAB_001cfd80;\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    uVar9 = FUN_001cdb80();\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d0dd0();\n    if (iVar13 != 0) {\n      FUN_001ce060(uVar9);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      iVar13 = 1;\n      FUN_001ce380();\n    }\n    goto joined_r0x001d0375;\n  case 'G':\n    pcVar11 = pcVar7 + 1;\n    *param_2 = (int)pcVar11;\n    if (((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0) goto code_r0x001d01c5;\n    goto LAB_001cfd80;\n  case 'I':\ncode_r0x001d01c5:\n    pcVar7 = pcVar11 + 1;\n    *param_2 = (int)pcVar7;\n    if (pcVar11[1] == '_') {\n      iVar13 = 0;\n      *param_2 = (int)(pcVar11 + 2);\n      pcVar7 = pcVar11 + 2;\n      do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);\n      cVar5 = pcVar11[1];\ncode_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;\n      *(undefined1 *)((int)&pvStack_44 + iVar13) = 0;\n      *param_2 = (int)(pcVar7 + 1);\n    }\n    else {\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }\n    sscanf((char *)&pvStack_44,"%x",&local_54);\n    sprintf((char *)&pvStack_44,"int%u_t",local_54);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    if ((char)pvStack_44 == '\0') goto code_r0x001d018e;\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'b':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 5;\n    FUN_001ce230();\n    iVar12 = 5;\n    break;\n  case 'c':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'd':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'f':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'i':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'l':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'r':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 's':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 't':\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d1450(0,1,1);\n    FUN_001ce380();\njoined_r0x001d0375:\n    if (pvStack_44 != (void *)0x0) {\n      free(pvStack_44);\n    }\n    if (iVar13 != 0) {\ncode_r0x001d018e:\n      iVar13 = 4;\n      iVar12 = 4;\n      break;\n    }\nLAB_001cfd80:\n    if ((void *)*param_3 == (void *)0x0) {\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }\n    else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }\n    goto LAB_001cfdb8;\n  case 'v':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'w':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'x':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n  }" { (case_statement "case '\0':" case (char_literal "'\0'" ' escape_sequence ') :) (case_statement "case '_':\n    goto code_r0x001d018e;" case (char_literal "'_'" ' character ') : (goto_statement "goto code_r0x001d018e;" goto statement_identifier ;)) (case_statement "default:\n    goto LAB_001cfd80;" default : (goto_statement "goto LAB_001cfd80;" goto statement_identifier ;)) (case_statement "case '0':" case (char_literal "'0'" ' character ') :) (case_statement "case '1':" case (char_literal "'1'" ' character ') :) (case_statement "case '2':" case (char_literal "'2'" ' character ') :) (case_statement "case '3':" case (char_literal "'3'" ' character ') :) (case_statement "case '4':" case (char_literal "'4'" ' character ') :) (case_statement "case '5':" case (char_literal "'5'" ' character ') :) (case_statement "case '6':" case (char_literal "'6'" ' character ') :) (case_statement "case '7':" case (char_literal "'7'" ' character ') :) (case_statement "case '8':" case (char_literal "'8'" ' character ') :) (case_statement "case '9':\n    uVar9 = FUN_001cdb80();\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d0dd0();\n    if (iVar13 != 0) {\n      FUN_001ce060(uVar9);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      iVar13 = 1;\n      FUN_001ce380();\n    }\n    goto joined_r0x001d0375;" case (char_literal "'9'" ' character ') : (expression_statement "uVar9 = FUN_001cdb80();" (assignment_expression "uVar9 = FUN_001cdb80()" identifier = (call_expression "FUN_001cdb80()" identifier (argument_list "()" ( )))) ;) (expression_statement "uStack_3c = 0;" (assignment_expression "uStack_3c = 0" identifier = number_literal) ;) (expression_statement "pvStack_40 = (void *)0x0;" (assignment_expression "pvStack_40 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pvStack_44 = (void *)0x0;" (assignment_expression "pvStack_44 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar13 = FUN_001d0dd0();" (assignment_expression "iVar13 = FUN_001d0dd0()" identifier = (call_expression "FUN_001d0dd0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar13 != 0) {\n      FUN_001ce060(uVar9);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      iVar13 = 1;\n      FUN_001ce380();\n    }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001ce060(uVar9);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      iVar13 = 1;\n      FUN_001ce380();\n    }" { (expression_statement "FUN_001ce060(uVar9);" (call_expression "FUN_001ce060(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) (if_statement "if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n        FUN_001ce230();\n      }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" identifier = number_literal) ;) (expression_statement "FUN_001ce380();" (call_expression "FUN_001ce380()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto joined_r0x001d0375;" goto statement_identifier ;)) (case_statement "case 'G':\n    pcVar11 = pcVar7 + 1;\n    *param_2 = (int)pcVar11;\n    if (((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0) goto code_r0x001d01c5;\n    goto LAB_001cfd80;" case (char_literal "'G'" ' character ') : (expression_statement "pcVar11 = pcVar7 + 1;" (assignment_expression "pcVar11 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "*param_2 = (int)pcVar11;" (assignment_expression "*param_2 = (int)pcVar11" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0) goto code_r0x001d01c5;" if (parenthesized_expression "(((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0)" ( (binary_expression "((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0" (parenthesized_expression "((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4)" ( (binary_expression "(&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4" (subscript_expression "(&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2]" (parenthesized_expression "(&DAT_002a3620)" ( (pointer_expression "&DAT_002a3620" & identifier) )) [ (binary_expression "(uint)(byte)pcVar7[1] * 2" (cast_expression "(uint)(byte)pcVar7[1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar7[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar7[1]" identifier [ number_literal ]))) * number_literal) ]) & number_literal) )) != number_literal) )) (goto_statement "goto code_r0x001d01c5;" goto statement_identifier ;)) (goto_statement "goto LAB_001cfd80;" goto statement_identifier ;)) (case_statement "case 'I':\ncode_r0x001d01c5:\n    pcVar7 = pcVar11 + 1;\n    *param_2 = (int)pcVar7;\n    if (pcVar11[1] == '_') {\n      iVar13 = 0;\n      *param_2 = (int)(pcVar11 + 2);\n      pcVar7 = pcVar11 + 2;\n      do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);\n      cVar5 = pcVar11[1];\ncode_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;\n      *(undefined1 *)((int)&pvStack_44 + iVar13) = 0;\n      *param_2 = (int)(pcVar7 + 1);\n    }\n    else {\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }\n    sscanf((char *)&pvStack_44,"%x",&local_54);\n    sprintf((char *)&pvStack_44,"int%u_t",local_54);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    if ((char)pvStack_44 == '\0') goto code_r0x001d018e;\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;" case (char_literal "'I'" ' character ') : (labeled_statement "code_r0x001d01c5:\n    pcVar7 = pcVar11 + 1;" statement_identifier : (expression_statement "pcVar7 = pcVar11 + 1;" (assignment_expression "pcVar7 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;)) (expression_statement "*param_2 = (int)pcVar7;" (assignment_expression "*param_2 = (int)pcVar7" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (pcVar11[1] == '_') {\n      iVar13 = 0;\n      *param_2 = (int)(pcVar11 + 2);\n      pcVar7 = pcVar11 + 2;\n      do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);\n      cVar5 = pcVar11[1];\ncode_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;\n      *(undefined1 *)((int)&pvStack_44 + iVar13) = 0;\n      *param_2 = (int)(pcVar7 + 1);\n    }\n    else {\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }" if (parenthesized_expression "(pcVar11[1] == '_')" ( (binary_expression "pcVar11[1] == '_'" (subscript_expression "pcVar11[1]" identifier [ number_literal ]) == (char_literal "'_'" ' character ')) )) (compound_statement "{\n      iVar13 = 0;\n      *param_2 = (int)(pcVar11 + 2);\n      pcVar7 = pcVar11 + 2;\n      do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);\n      cVar5 = pcVar11[1];\ncode_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;\n      *(undefined1 *)((int)&pvStack_44 + iVar13) = 0;\n      *param_2 = (int)(pcVar7 + 1);\n    }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "*param_2 = (int)(pcVar11 + 2);" (assignment_expression "*param_2 = (int)(pcVar11 + 2)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar11 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar11 + 2)" ( (binary_expression "pcVar11 + 2" identifier + number_literal) )))) ;) (expression_statement "pcVar7 = pcVar11 + 2;" (assignment_expression "pcVar7 = pcVar11 + 2" identifier = (binary_expression "pcVar11 + 2" identifier + number_literal)) ;) (do_statement "do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);" do (compound_statement "{\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      }" { (expression_statement "pcVar11 = pcVar7;" (assignment_expression "pcVar11 = pcVar7" identifier = identifier) ;) (expression_statement "cVar5 = *pcVar11;" (assignment_expression "cVar5 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (expression_statement "pcVar7 = pcVar11;" (assignment_expression "pcVar7 = pcVar11" identifier = identifier) ;) (if_statement "if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;" if (parenthesized_expression "((cVar5 == '_') || (cVar5 == '\0'))" ( (binary_expression "(cVar5 == '_') || (cVar5 == '\0')" (parenthesized_expression "(cVar5 == '_')" ( (binary_expression "cVar5 == '_'" identifier == (char_literal "'_'" ' character ')) )) || (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto code_r0x001d0200;" goto statement_identifier ;)) (expression_statement "*(char *)((int)&pvStack_44 + iVar13) = cVar5;" (assignment_expression "*(char *)((int)&pvStack_44 + iVar13) = cVar5" (pointer_expression "*(char *)((int)&pvStack_44 + iVar13)" * (cast_expression "(char *)((int)&pvStack_44 + iVar13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pvStack_44 + iVar13)" ( (binary_expression "(int)&pvStack_44 + iVar13" (cast_expression "(int)&pvStack_44" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pvStack_44" & identifier)) + identifier) )))) = identifier) ;) (expression_statement "pcVar7 = pcVar11 + 1;" (assignment_expression "pcVar7 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "*param_2 = (int)pcVar7;" (assignment_expression "*param_2 = (int)pcVar7" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) while (parenthesized_expression "(iVar13 != 0x24)" ( (binary_expression "iVar13 != 0x24" identifier != number_literal) )) ;) (expression_statement "cVar5 = pcVar11[1];" (assignment_expression "cVar5 = pcVar11[1]" identifier = (subscript_expression "pcVar11[1]" identifier [ number_literal ])) ;) (labeled_statement "code_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;" statement_identifier : (if_statement "if (cVar5 != '_') goto LAB_001cfd80;" if (parenthesized_expression "(cVar5 != '_')" ( (binary_expression "cVar5 != '_'" identifier != (char_literal "'_'" ' character ')) )) (goto_statement "goto LAB_001cfd80;" goto statement_identifier ;))) (expression_statement "*(undefined1 *)((int)&pvStack_44 + iVar13) = 0;" (assignment_expression "*(undefined1 *)((int)&pvStack_44 + iVar13) = 0" (pointer_expression "*(undefined1 *)((int)&pvStack_44 + iVar13)" * (cast_expression "(undefined1 *)((int)&pvStack_44 + iVar13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pvStack_44 + iVar13)" ( (binary_expression "(int)&pvStack_44 + iVar13" (cast_expression "(int)&pvStack_44" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pvStack_44" & identifier)) + identifier) )))) = number_literal) ;) (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) }) (else_clause "else {\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }" else (compound_statement "{\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }" { (expression_statement "strncpy((char *)&pvStack_44,pcVar7,2);" (call_expression "strncpy((char *)&pvStack_44,pcVar7,2)" identifier (argument_list "((char *)&pvStack_44,pcVar7,2)" ( (cast_expression "(char *)&pvStack_44" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pvStack_44" & identifier)) , identifier , number_literal ))) ;) (expression_statement "pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;" (assignment_expression "pvStack_44._0_3_ = (uint3)(ushort)pvStack_44" (field_expression "pvStack_44._0_3_" identifier . field_identifier) = (cast_expression "(uint3)(ushort)pvStack_44" ( (type_descriptor "uint3" type_identifier) ) (cast_expression "(ushort)pvStack_44" ( (type_descriptor "ushort" type_identifier) ) identifier))) ;) (expression_statement "sVar8 = strlen(pcVar7);" (assignment_expression "sVar8 = strlen(pcVar7)" identifier = (call_expression "strlen(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) (if_statement "if (1 < sVar8) {\n        sVar8 = 2;\n      }" if (parenthesized_expression "(1 < sVar8)" ( (binary_expression "1 < sVar8" number_literal < identifier) )) (compound_statement "{\n        sVar8 = 2;\n      }" { (expression_statement "sVar8 = 2;" (assignment_expression "sVar8 = 2" identifier = number_literal) ;) })) (expression_statement "*param_2 = (int)(pcVar7 + sVar8);" (assignment_expression "*param_2 = (int)(pcVar7 + sVar8)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + sVar8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + sVar8)" ( (binary_expression "pcVar7 + sVar8" identifier + identifier) )))) ;) }))) (expression_statement "sscanf((char *)&pvStack_44,"%x",&local_54);" (call_expression "sscanf((char *)&pvStack_44,"%x",&local_54)" identifier (argument_list "((char *)&pvStack_44,"%x",&local_54)" ( (cast_expression "(char *)&pvStack_44" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pvStack_44" & identifier)) , (string_literal ""%x"" " string_content ") , (pointer_expression "&local_54" & identifier) ))) ;) (expression_statement "sprintf((char *)&pvStack_44,"int%u_t",local_54);" (call_expression "sprintf((char *)&pvStack_44,"int%u_t",local_54)" identifier (argument_list "((char *)&pvStack_44,"int%u_t",local_54)" ( (cast_expression "(char *)&pvStack_44" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pvStack_44" & identifier)) , (string_literal ""int%u_t"" " string_content ") , identifier ))) ;) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((char)pvStack_44 == '\0') goto code_r0x001d018e;" if (parenthesized_expression "((char)pvStack_44 == '\0')" ( (binary_expression "(char)pvStack_44 == '\0'" (cast_expression "(char)pvStack_44" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x001d018e;" goto statement_identifier ;)) (expression_statement "iVar13 = 4;" (assignment_expression "iVar13 = 4" identifier = number_literal) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'b':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 5;\n    FUN_001ce230();\n    iVar12 = 5;\n    break;" case (char_literal "'b'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = 5;" (assignment_expression "iVar13 = 5" identifier = number_literal) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 5;" (assignment_expression "iVar12 = 5" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'c':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;" case (char_literal "'c'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = 6;" (assignment_expression "iVar13 = 6" identifier = number_literal) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 6;" (assignment_expression "iVar12 = 6" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'd':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;" case (char_literal "'d'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = 7;" (assignment_expression "iVar13 = 7" identifier = number_literal) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'f':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;" case (char_literal "'f'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = 7;" (assignment_expression "iVar13 = 7" identifier = number_literal) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'i':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;" case (char_literal "'i'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = 4;" (assignment_expression "iVar13 = 4" identifier = number_literal) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'l':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;" case (char_literal "'l'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = 4;" (assignment_expression "iVar13 = 4" identifier = number_literal) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'r':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;" case (char_literal "'r'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = 7;" (assignment_expression "iVar13 = 7" identifier = number_literal) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 's':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;" case (char_literal "'s'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = 4;" (assignment_expression "iVar13 = 4" identifier = number_literal) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 't':\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d1450(0,1,1);\n    FUN_001ce380();\njoined_r0x001d0375:\n    if (pvStack_44 != (void *)0x0) {\n      free(pvStack_44);\n    }\n    if (iVar13 != 0) {\ncode_r0x001d018e:\n      iVar13 = 4;\n      iVar12 = 4;\n      break;\n    }\nLAB_001cfd80:\n    if ((void *)*param_3 == (void *)0x0) {\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }\n    else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }\n    goto LAB_001cfdb8;" case (char_literal "'t'" ' character ') : (expression_statement "uStack_3c = 0;" (assignment_expression "uStack_3c = 0" identifier = number_literal) ;) (expression_statement "pvStack_40 = (void *)0x0;" (assignment_expression "pvStack_40 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pvStack_44 = (void *)0x0;" (assignment_expression "pvStack_44 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar13 = FUN_001d1450(0,1,1);" (assignment_expression "iVar13 = FUN_001d1450(0,1,1)" identifier = (call_expression "FUN_001d1450(0,1,1)" identifier (argument_list "(0,1,1)" ( number_literal , number_literal , number_literal )))) ;) (expression_statement "FUN_001ce380();" (call_expression "FUN_001ce380()" identifier (argument_list "()" ( ))) ;) (labeled_statement "joined_r0x001d0375:\n    if (pvStack_44 != (void *)0x0) {\n      free(pvStack_44);\n    }" statement_identifier : (if_statement "if (pvStack_44 != (void *)0x0) {\n      free(pvStack_44);\n    }" if (parenthesized_expression "(pvStack_44 != (void *)0x0)" ( (binary_expression "pvStack_44 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(pvStack_44);\n    }" { (expression_statement "free(pvStack_44);" (call_expression "free(pvStack_44)" identifier (argument_list "(pvStack_44)" ( identifier ))) ;) }))) (if_statement "if (iVar13 != 0) {\ncode_r0x001d018e:\n      iVar13 = 4;\n      iVar12 = 4;\n      break;\n    }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\ncode_r0x001d018e:\n      iVar13 = 4;\n      iVar12 = 4;\n      break;\n    }" { (labeled_statement "code_r0x001d018e:\n      iVar13 = 4;" statement_identifier : (expression_statement "iVar13 = 4;" (assignment_expression "iVar13 = 4" identifier = number_literal) ;)) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;) (break_statement "break;" break ;) })) (labeled_statement "LAB_001cfd80:\n    if ((void *)*param_3 == (void *)0x0) {\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }\n    else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }" statement_identifier : (if_statement "if ((void *)*param_3 == (void *)0x0) {\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }\n    else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }" if (parenthesized_expression "((void *)*param_3 == (void *)0x0)" ( (binary_expression "(void *)*param_3 == (void *)0x0" (cast_expression "(void *)*param_3" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier)) == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "pcVar7 = local_50;" (assignment_expression "pcVar7 = local_50" identifier = identifier) ;) }) (else_clause "else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }" else (compound_statement "{\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "free((void *)*param_3);" (call_expression "free((void *)*param_3)" identifier (argument_list "((void *)*param_3)" ( (cast_expression "(void *)*param_3" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier)) ))) ;) (expression_statement "param_3[1] = 0;" (assignment_expression "param_3[1] = 0" (subscript_expression "param_3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_3[2] = 0;" (assignment_expression "param_3[2] = 0" (subscript_expression "param_3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "pcVar7 = local_50;" (assignment_expression "pcVar7 = local_50" identifier = identifier) ;) })))) (goto_statement "goto LAB_001cfdb8;" goto statement_identifier ;)) (case_statement "case 'v':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;" case (char_literal "'v'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = 4;" (assignment_expression "iVar13 = 4" identifier = number_literal) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'w':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;" case (char_literal "'w'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = 6;" (assignment_expression "iVar13 = 6" identifier = number_literal) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 6;" (assignment_expression "iVar12 = 6" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'x':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;" case (char_literal "'x'" ' character ') : (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pcVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" if (parenthesized_expression "(*param_3 != param_3[1])" ( (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" * identifier) != (subscript_expression "param_3[1]" identifier [ number_literal ])) )) (compound_statement "{\n      FUN_001ce230();\n    }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar13 = 4;" (assignment_expression "iVar13 = 4" identifier = number_literal) ;) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;)) })) (if_statement "if (local_70 != 0) {\n    iVar12 = local_70;\n  }" if (parenthesized_expression "(local_70 != 0)" ( (binary_expression "local_70 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar12 = local_70;\n  }" { (expression_statement "iVar12 = local_70;" (assignment_expression "iVar12 = local_70" identifier = identifier) ;) })) (labeled_statement "code_r0x001cfebc:\n  local_70 = iVar12;" statement_identifier : (expression_statement "local_70 = iVar12;" (assignment_expression "local_70 = iVar12" identifier = identifier) ;)) (expression_statement "pcVar7 = local_4c;" (assignment_expression "pcVar7 = local_4c" identifier = identifier) ;) (if_statement "if (local_50 != local_4c) {\n    FUN_001ce230();\n    FUN_001ce380();\n    pcVar7 = local_50;\n  }" if (parenthesized_expression "(local_50 != local_4c)" ( (binary_expression "local_50 != local_4c" identifier != identifier) )) (compound_statement "{\n    FUN_001ce230();\n    FUN_001ce380();\n    pcVar7 = local_50;\n  }" { (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_001ce380();" (call_expression "FUN_001ce380()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar7 = local_50;" (assignment_expression "pcVar7 = local_50" identifier = identifier) ;) })) (labeled_statement "LAB_001cfdb8:\n  if (pcVar7 != (char *)0x0) {\n    free(pcVar7);\n  }" statement_identifier : (if_statement "if (pcVar7 != (char *)0x0) {\n    free(pcVar7);\n  }" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(pcVar7);\n  }" { (expression_statement "free(pcVar7);" (call_expression "free(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) }))) (if_statement "if (bVar4) {\n    *(int *)(param_1 + 0x5c) = *(int *)(param_1 + 0x5c) + -1;\n  }" if (parenthesized_expression "(bVar4)" ( identifier )) (compound_statement "{\n    *(int *)(param_1 + 0x5c) = *(int *)(param_1 + 0x5c) + -1;\n  }" { (expression_statement "*(int *)(param_1 + 0x5c) = *(int *)(param_1 + 0x5c) + -1;" (assignment_expression "*(int *)(param_1 + 0x5c) = *(int *)(param_1 + 0x5c) + -1" (pointer_expression "*(int *)(param_1 + 0x5c)" * (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x5c) + -1" (pointer_expression "*(int *)(param_1 + 0x5c)" * (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((iVar13 != 0) && (iVar13 = local_70, local_70 == 0)) {\n    iVar13 = 4;\n  }" if (parenthesized_expression "((iVar13 != 0) && (iVar13 = local_70, local_70 == 0))" ( (binary_expression "(iVar13 != 0) && (iVar13 = local_70, local_70 == 0)" (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar13 = local_70, local_70 == 0)" ( (comma_expression "iVar13 = local_70, local_70 == 0" (assignment_expression "iVar13 = local_70" identifier = identifier) , (binary_expression "local_70 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    iVar13 = 4;\n  }" { (expression_statement "iVar13 = 4;" (assignment_expression "iVar13 = 4" identifier = number_literal) ;) })) (return_statement "return iVar13;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (switch_statement switch (parenthesized_expression ( (pointer_expression * IDENT) )) (compound_statement { (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (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 (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) || (parenthesized_expression ( (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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)) ))))) ;) (break_statement break ;)) (case_statement default : (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (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 IDENT == LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT == LIT)) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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)) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (switch_statement switch (parenthesized_expression ( (pointer_expression * IDENT) )) (compound_statement { (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (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 ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) - LIT) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (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 *)) ) (pointer_expression * IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT) )))) ;) })) (goto_statement goto statement_identifier ;) })) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]) & 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) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (goto_statement goto statement_identifier ;) })) })) (break_statement break ;) })) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (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 (call_expression IDENT (argument_list ( IDENT ))) ;) })) }))) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_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 = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (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 IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) == (char_literal ' character ')) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (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 ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })) (goto_statement goto statement_identifier ;) })) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (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 (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) ))) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (goto_statement goto 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 = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (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)) ))))) ;) })) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (switch_statement switch (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )) (compound_statement { (case_statement case (char_literal ' escape_sequence ') :) (case_statement case (char_literal ' escape_sequence ') :) (case_statement case (char_literal ' character ') : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (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 ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (break_statement break ;)) (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' escape_sequence ') : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (break_statement break ;)) (case_statement case (char_literal ' escape_sequence ') : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (break_statement break ;)) (case_statement case (char_literal ' escape_sequence ') : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) })) }) while (parenthesized_expression ( BOOL )) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) - LIT) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (switch_statement switch (parenthesized_expression ( (pointer_expression * IDENT) )) (compound_statement { (case_statement case (char_literal ' escape_sequence ') :) (case_statement case (char_literal ' character ') : (goto_statement goto statement_identifier ;)) (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) * LIT) ]) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (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 *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) , IDENT , LIT ))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) , (string_literal " string_content ") , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) , (string_literal " string_content ") , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })))) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (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)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (return_statement return IDENT ;) })))
(function_definition "int __regparm3 FUN_001cf7b0(byte *param_1,int *param_2,int *param_3)\n\n{\n  int *piVar1;\n  byte bVar2;\n  bool bVar3;\n  bool bVar4;\n  char cVar5;\n  int iVar6;\n  char *pcVar7;\n  size_t sVar8;\n  undefined4 uVar9;\n  int *piVar10;\n  char *pcVar11;\n  int iVar12;\n  void *__ptr;\n  int iVar13;\n  undefined1 *puVar14;\n  int local_78;\n  int local_70;\n  int iStack_5c;\n  int iStack_58;\n  undefined4 local_54;\n  char *local_50;\n  char *local_4c;\n  undefined4 local_48;\n  void *pvStack_44;\n  void *pvStack_40;\n  undefined4 uStack_3c;\n  undefined4 uStack_14;\n  \n  iVar13 = 1;\n  uStack_14 = 0x1cf7c0;\n  param_3[2] = 0;\n  local_48 = 0;\n  local_4c = (char *)0x0;\n  local_50 = (char *)0x0;\n  param_3[1] = 0;\n  *param_3 = 0;\n  local_70 = 0;\n  bVar4 = false;\n  iVar12 = local_70;\ncode_r0x001cf820:\n  local_70 = iVar12;\n  pcVar7 = local_50;\n  bVar3 = false;\nLAB_001cf82d:\n  if ((bVar3) || (iVar13 == 0)) {\n    if (iVar13 == 0) goto LAB_001cfd80;\n    pcVar7 = (char *)*param_2;\n    iVar12 = local_70;\n    switch(*pcVar7) {\n    case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;\n    default:\n      local_54 = 0;\n      goto code_r0x001d0082;\n    case 'K':\n    case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;\n    case 'X':\n    case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;\n    }\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      FUN_001ce230();\n    }\n    goto code_r0x001cfebc;\n  }\n  puVar14 = (undefined1 *)*param_2;\n  bVar3 = true;\n  iVar12 = local_70;\n  switch(*puVar14) {\n  case 0x41:\n    goto code_r0x001cfa38;\n  default:\n    goto LAB_001cf82d;\n  case 0x43:\n  case 0x56:\n  case 0x75:\n    if ((*param_1 & 2) != 0) {\n      if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n      pcVar7 = (char *)FUN_001cdd80();\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n    }\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x46:\n    *param_2 = (int)(puVar14 + 1);\n    if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      FUN_001ce1f0();\n      FUN_001ce230();\n    }\n    iVar6 = FUN_001d24a0();\n    if (iVar6 != 0) {\n      cVar5 = *(char *)*param_2;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x47:\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x4d:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce230();\n    if (*(char *)*param_2 == 'Q') {\n      if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;\ncode_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);\n      if (iVar13 == 0) goto code_r0x001cf820;\n    }\n    else {\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }\ncode_r0x001cfb87:\n    FUN_001ce1f0();\n    pcVar7 = (char *)*param_2;\n    cVar5 = *pcVar7;\n    if (cVar5 == 'V') {\n      local_78 = 2;\ncode_r0x001d0040:\n      pcVar11 = pcVar7 + 1;\n      *param_2 = (int)pcVar11;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }\n    if (cVar5 == 'F') {\n      *param_2 = (int)(pcVar11 + 1);\n      iVar6 = FUN_001d24a0();\n      if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x4f:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 3;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x50:\n  case 0x70:\n    *param_2 = (int)(puVar14 + 1);\n    if ((*param_1 & 4) == 0) {\n      FUN_001ce1f0();\n    }\n    iVar12 = 1;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x52:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 2;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x54:\n    *param_2 = (int)(puVar14 + 1);\n    iVar6 = FUN_001cd940();\n    if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c)) break;\n    if (*(int *)(param_1 + 0x5c) < 1) goto code_r0x001cfe64;\n    piVar10 = *(int **)(param_1 + 0x54);\n    piVar1 = piVar10 + *(int *)(param_1 + 0x5c);\n    do {\n      if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }\n      piVar10 = piVar10 + 1;\n    } while (piVar1 != piVar10);\n    if (iVar13 != 0) {\ncode_r0x001cfe64:\n      FUN_001cdac0();\n      bVar4 = true;\n      param_2 = &iStack_58;\n      iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);\n    }\n    goto code_r0x001cf820;\n  }\n  iVar13 = 0;\n  goto code_r0x001cf820;\ncode_r0x001d0082:\n  do {\n    switch(*pcVar7 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n    }\n  } while( true );\ncode_r0x001cfa38:\n  *param_2 = (int)(puVar14 + 1);\n  if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n    FUN_001ce1f0();\n    FUN_001ce230();\n  }\n  FUN_001ce230();\n  pcVar7 = (char *)*param_2;\n  if (*pcVar7 != '_') {\n    iVar13 = FUN_001cf0a0(4);\n    pcVar7 = (char *)*param_2;\n    if (*pcVar7 != '_') goto code_r0x001cfa7a;\n  }\n  *param_2 = (int)(pcVar7 + 1);\ncode_r0x001cfa7a:\n  FUN_001ce230();\n  goto code_r0x001cf820;\ncode_r0x001d0176:\n  pcVar11 = pcVar7;\n  switch(*pcVar7) {\n  case '\0':\n  case '_':\n    goto code_r0x001d018e;\n  default:\n    goto LAB_001cfd80;\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    uVar9 = FUN_001cdb80();\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d0dd0();\n    if (iVar13 != 0) {\n      FUN_001ce060(uVar9);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      iVar13 = 1;\n      FUN_001ce380();\n    }\n    goto joined_r0x001d0375;\n  case 'G':\n    pcVar11 = pcVar7 + 1;\n    *param_2 = (int)pcVar11;\n    if (((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0) goto code_r0x001d01c5;\n    goto LAB_001cfd80;\n  case 'I':\ncode_r0x001d01c5:\n    pcVar7 = pcVar11 + 1;\n    *param_2 = (int)pcVar7;\n    if (pcVar11[1] == '_') {\n      iVar13 = 0;\n      *param_2 = (int)(pcVar11 + 2);\n      pcVar7 = pcVar11 + 2;\n      do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);\n      cVar5 = pcVar11[1];\ncode_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;\n      *(undefined1 *)((int)&pvStack_44 + iVar13) = 0;\n      *param_2 = (int)(pcVar7 + 1);\n    }\n    else {\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }\n    sscanf((char *)&pvStack_44,"%x",&local_54);\n    sprintf((char *)&pvStack_44,"int%u_t",local_54);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    if ((char)pvStack_44 == '\0') goto code_r0x001d018e;\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'b':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 5;\n    FUN_001ce230();\n    iVar12 = 5;\n    break;\n  case 'c':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'd':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'f':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'i':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'l':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'r':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 's':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 't':\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d1450(0,1,1);\n    FUN_001ce380();\njoined_r0x001d0375:\n    if (pvStack_44 != (void *)0x0) {\n      free(pvStack_44);\n    }\n    if (iVar13 != 0) {\ncode_r0x001d018e:\n      iVar13 = 4;\n      iVar12 = 4;\n      break;\n    }\nLAB_001cfd80:\n    if ((void *)*param_3 == (void *)0x0) {\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }\n    else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }\n    goto LAB_001cfdb8;\n  case 'v':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'w':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'x':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n  }\n  if (local_70 != 0) {\n    iVar12 = local_70;\n  }\ncode_r0x001cfebc:\n  local_70 = iVar12;\n  pcVar7 = local_4c;\n  if (local_50 != local_4c) {\n    FUN_001ce230();\n    FUN_001ce380();\n    pcVar7 = local_50;\n  }\nLAB_001cfdb8:\n  if (pcVar7 != (char *)0x0) {\n    free(pcVar7);\n  }\n  if (bVar4) {\n    *(int *)(param_1 + 0x5c) = *(int *)(param_1 + 0x5c) + -1;\n  }\n  if ((iVar13 != 0) && (iVar13 = local_70, local_70 == 0)) {\n    iVar13 = 4;\n  }\n  return iVar13;\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_001cf7b0(byte *param_1,int *param_2,int *param_3)" (identifier "FUN_001cf7b0") (parameter_list "(byte *param_1,int *param_2,int *param_3)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  int *piVar1;\n  byte bVar2;\n  bool bVar3;\n  bool bVar4;\n  char cVar5;\n  int iVar6;\n  char *pcVar7;\n  size_t sVar8;\n  undefined4 uVar9;\n  int *piVar10;\n  char *pcVar11;\n  int iVar12;\n  void *__ptr;\n  int iVar13;\n  undefined1 *puVar14;\n  int local_78;\n  int local_70;\n  int iStack_5c;\n  int iStack_58;\n  undefined4 local_54;\n  char *local_50;\n  char *local_4c;\n  undefined4 local_48;\n  void *pvStack_44;\n  void *pvStack_40;\n  undefined4 uStack_3c;\n  undefined4 uStack_14;\n  \n  iVar13 = 1;\n  uStack_14 = 0x1cf7c0;\n  param_3[2] = 0;\n  local_48 = 0;\n  local_4c = (char *)0x0;\n  local_50 = (char *)0x0;\n  param_3[1] = 0;\n  *param_3 = 0;\n  local_70 = 0;\n  bVar4 = false;\n  iVar12 = local_70;\ncode_r0x001cf820:\n  local_70 = iVar12;\n  pcVar7 = local_50;\n  bVar3 = false;\nLAB_001cf82d:\n  if ((bVar3) || (iVar13 == 0)) {\n    if (iVar13 == 0) goto LAB_001cfd80;\n    pcVar7 = (char *)*param_2;\n    iVar12 = local_70;\n    switch(*pcVar7) {\n    case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;\n    default:\n      local_54 = 0;\n      goto code_r0x001d0082;\n    case 'K':\n    case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;\n    case 'X':\n    case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;\n    }\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      FUN_001ce230();\n    }\n    goto code_r0x001cfebc;\n  }\n  puVar14 = (undefined1 *)*param_2;\n  bVar3 = true;\n  iVar12 = local_70;\n  switch(*puVar14) {\n  case 0x41:\n    goto code_r0x001cfa38;\n  default:\n    goto LAB_001cf82d;\n  case 0x43:\n  case 0x56:\n  case 0x75:\n    if ((*param_1 & 2) != 0) {\n      if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n      pcVar7 = (char *)FUN_001cdd80();\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n    }\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x46:\n    *param_2 = (int)(puVar14 + 1);\n    if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      FUN_001ce1f0();\n      FUN_001ce230();\n    }\n    iVar6 = FUN_001d24a0();\n    if (iVar6 != 0) {\n      cVar5 = *(char *)*param_2;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x47:\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x4d:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce230();\n    if (*(char *)*param_2 == 'Q') {\n      if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;\ncode_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);\n      if (iVar13 == 0) goto code_r0x001cf820;\n    }\n    else {\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }\ncode_r0x001cfb87:\n    FUN_001ce1f0();\n    pcVar7 = (char *)*param_2;\n    cVar5 = *pcVar7;\n    if (cVar5 == 'V') {\n      local_78 = 2;\ncode_r0x001d0040:\n      pcVar11 = pcVar7 + 1;\n      *param_2 = (int)pcVar11;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }\n    if (cVar5 == 'F') {\n      *param_2 = (int)(pcVar11 + 1);\n      iVar6 = FUN_001d24a0();\n      if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x4f:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 3;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x50:\n  case 0x70:\n    *param_2 = (int)(puVar14 + 1);\n    if ((*param_1 & 4) == 0) {\n      FUN_001ce1f0();\n    }\n    iVar12 = 1;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x52:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 2;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x54:\n    *param_2 = (int)(puVar14 + 1);\n    iVar6 = FUN_001cd940();\n    if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c)) break;\n    if (*(int *)(param_1 + 0x5c) < 1) goto code_r0x001cfe64;\n    piVar10 = *(int **)(param_1 + 0x54);\n    piVar1 = piVar10 + *(int *)(param_1 + 0x5c);\n    do {\n      if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }\n      piVar10 = piVar10 + 1;\n    } while (piVar1 != piVar10);\n    if (iVar13 != 0) {\ncode_r0x001cfe64:\n      FUN_001cdac0();\n      bVar4 = true;\n      param_2 = &iStack_58;\n      iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);\n    }\n    goto code_r0x001cf820;\n  }\n  iVar13 = 0;\n  goto code_r0x001cf820;\ncode_r0x001d0082:\n  do {\n    switch(*pcVar7 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n    }\n  } while( true );\ncode_r0x001cfa38:\n  *param_2 = (int)(puVar14 + 1);\n  if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n    FUN_001ce1f0();\n    FUN_001ce230();\n  }\n  FUN_001ce230();\n  pcVar7 = (char *)*param_2;\n  if (*pcVar7 != '_') {\n    iVar13 = FUN_001cf0a0(4);\n    pcVar7 = (char *)*param_2;\n    if (*pcVar7 != '_') goto code_r0x001cfa7a;\n  }\n  *param_2 = (int)(pcVar7 + 1);\ncode_r0x001cfa7a:\n  FUN_001ce230();\n  goto code_r0x001cf820;\ncode_r0x001d0176:\n  pcVar11 = pcVar7;\n  switch(*pcVar7) {\n  case '\0':\n  case '_':\n    goto code_r0x001d018e;\n  default:\n    goto LAB_001cfd80;\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    uVar9 = FUN_001cdb80();\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d0dd0();\n    if (iVar13 != 0) {\n      FUN_001ce060(uVar9);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      iVar13 = 1;\n      FUN_001ce380();\n    }\n    goto joined_r0x001d0375;\n  case 'G':\n    pcVar11 = pcVar7 + 1;\n    *param_2 = (int)pcVar11;\n    if (((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0) goto code_r0x001d01c5;\n    goto LAB_001cfd80;\n  case 'I':\ncode_r0x001d01c5:\n    pcVar7 = pcVar11 + 1;\n    *param_2 = (int)pcVar7;\n    if (pcVar11[1] == '_') {\n      iVar13 = 0;\n      *param_2 = (int)(pcVar11 + 2);\n      pcVar7 = pcVar11 + 2;\n      do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);\n      cVar5 = pcVar11[1];\ncode_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;\n      *(undefined1 *)((int)&pvStack_44 + iVar13) = 0;\n      *param_2 = (int)(pcVar7 + 1);\n    }\n    else {\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }\n    sscanf((char *)&pvStack_44,"%x",&local_54);\n    sprintf((char *)&pvStack_44,"int%u_t",local_54);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    if ((char)pvStack_44 == '\0') goto code_r0x001d018e;\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'b':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 5;\n    FUN_001ce230();\n    iVar12 = 5;\n    break;\n  case 'c':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'd':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'f':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'i':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'l':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'r':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 's':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 't':\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d1450(0,1,1);\n    FUN_001ce380();\njoined_r0x001d0375:\n    if (pvStack_44 != (void *)0x0) {\n      free(pvStack_44);\n    }\n    if (iVar13 != 0) {\ncode_r0x001d018e:\n      iVar13 = 4;\n      iVar12 = 4;\n      break;\n    }\nLAB_001cfd80:\n    if ((void *)*param_3 == (void *)0x0) {\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }\n    else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }\n    goto LAB_001cfdb8;\n  case 'v':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'w':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'x':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n  }\n  if (local_70 != 0) {\n    iVar12 = local_70;\n  }\ncode_r0x001cfebc:\n  local_70 = iVar12;\n  pcVar7 = local_4c;\n  if (local_50 != local_4c) {\n    FUN_001ce230();\n    FUN_001ce380();\n    pcVar7 = local_50;\n  }\nLAB_001cfdb8:\n  if (pcVar7 != (char *)0x0) {\n    free(pcVar7);\n  }\n  if (bVar4) {\n    *(int *)(param_1 + 0x5c) = *(int *)(param_1 + 0x5c) + -1;\n  }\n  if ((iVar13 != 0) && (iVar13 = local_70, local_70 == 0)) {\n    iVar13 = 4;\n  }\n  return iVar13;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "bool bVar3;" (primitive_type "bool") (identifier "bVar3") (; ";")) (declaration "bool bVar4;" (primitive_type "bool") (identifier "bVar4") (; ";")) (declaration "char cVar5;" (primitive_type "char") (identifier "cVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "size_t sVar8;" (primitive_type "size_t") (identifier "sVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "char *pcVar11;" (primitive_type "char") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "undefined1 *puVar14;" (type_identifier "undefined1") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "int local_78;" (primitive_type "int") (identifier "local_78") (; ";")) (declaration "int local_70;" (primitive_type "int") (identifier "local_70") (; ";")) (declaration "int iStack_5c;" (primitive_type "int") (identifier "iStack_5c") (; ";")) (declaration "int iStack_58;" (primitive_type "int") (identifier "iStack_58") (; ";")) (declaration "undefined4 local_54;" (type_identifier "undefined4") (identifier "local_54") (; ";")) (declaration "char *local_50;" (primitive_type "char") (pointer_declarator "*local_50" (* "*") (identifier "local_50")) (; ";")) (declaration "char *local_4c;" (primitive_type "char") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "void *pvStack_44;" (primitive_type "void") (pointer_declarator "*pvStack_44" (* "*") (identifier "pvStack_44")) (; ";")) (declaration "void *pvStack_40;" (primitive_type "void") (pointer_declarator "*pvStack_40" (* "*") (identifier "pvStack_40")) (; ";")) (declaration "undefined4 uStack_3c;" (type_identifier "undefined4") (identifier "uStack_3c") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" (identifier "iVar13") (= "=") (number_literal "1")) (; ";")) (expression_statement "uStack_14 = 0x1cf7c0;" (assignment_expression "uStack_14 = 0x1cf7c0" (identifier "uStack_14") (= "=") (number_literal "0x1cf7c0")) (; ";")) (expression_statement "param_3[2] = 0;" (assignment_expression "param_3[2] = 0" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4c = (char *)0x0;" (assignment_expression "local_4c = (char *)0x0" (identifier "local_4c") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_50 = (char *)0x0;" (assignment_expression "local_50 = (char *)0x0" (identifier "local_50") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "param_3[1] = 0;" (assignment_expression "param_3[1] = 0" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" (identifier "local_70") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" (identifier "bVar4") (= "=") (false "false")) (; ";")) (expression_statement "iVar12 = local_70;" (assignment_expression "iVar12 = local_70" (identifier "iVar12") (= "=") (identifier "local_70")) (; ";")) (labeled_statement "code_r0x001cf820:\n  local_70 = iVar12;" (statement_identifier "code_r0x001cf820") (: ":") (expression_statement "local_70 = iVar12;" (assignment_expression "local_70 = iVar12" (identifier "local_70") (= "=") (identifier "iVar12")) (; ";"))) (expression_statement "pcVar7 = local_50;" (assignment_expression "pcVar7 = local_50" (identifier "pcVar7") (= "=") (identifier "local_50")) (; ";")) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" (identifier "bVar3") (= "=") (false "false")) (; ";")) (labeled_statement "LAB_001cf82d:\n  if ((bVar3) || (iVar13 == 0)) {\n    if (iVar13 == 0) goto LAB_001cfd80;\n    pcVar7 = (char *)*param_2;\n    iVar12 = local_70;\n    switch(*pcVar7) {\n    case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;\n    default:\n      local_54 = 0;\n      goto code_r0x001d0082;\n    case 'K':\n    case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;\n    case 'X':\n    case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;\n    }\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      FUN_001ce230();\n    }\n    goto code_r0x001cfebc;\n  }" (statement_identifier "LAB_001cf82d") (: ":") (if_statement "if ((bVar3) || (iVar13 == 0)) {\n    if (iVar13 == 0) goto LAB_001cfd80;\n    pcVar7 = (char *)*param_2;\n    iVar12 = local_70;\n    switch(*pcVar7) {\n    case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;\n    default:\n      local_54 = 0;\n      goto code_r0x001d0082;\n    case 'K':\n    case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;\n    case 'X':\n    case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;\n    }\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      FUN_001ce230();\n    }\n    goto code_r0x001cfebc;\n  }" (if "if") (parenthesized_expression "((bVar3) || (iVar13 == 0))" (( "(") (binary_expression "(bVar3) || (iVar13 == 0)" (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (|| "||") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    if (iVar13 == 0) goto LAB_001cfd80;\n    pcVar7 = (char *)*param_2;\n    iVar12 = local_70;\n    switch(*pcVar7) {\n    case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;\n    default:\n      local_54 = 0;\n      goto code_r0x001d0082;\n    case 'K':\n    case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;\n    case 'X':\n    case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;\n    }\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      FUN_001ce230();\n    }\n    goto code_r0x001cfebc;\n  }" ({ "{") (if_statement "if (iVar13 == 0) goto LAB_001cfd80;" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001cfd80;" (goto "goto") (statement_identifier "LAB_001cfd80") (; ";"))) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" (identifier "pcVar7") (= "=") (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "iVar12 = local_70;" (assignment_expression "iVar12 = local_70" (identifier "iVar12") (= "=") (identifier "local_70")) (; ";")) (switch_statement "switch(*pcVar7) {\n    case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;\n    default:\n      local_54 = 0;\n      goto code_r0x001d0082;\n    case 'K':\n    case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;\n    case 'X':\n    case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;\n    }" (switch "switch") (parenthesized_expression "(*pcVar7)" (( "(") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) () ")")) (compound_statement "{\n    case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;\n    default:\n      local_54 = 0;\n      goto code_r0x001d0082;\n    case 'K':\n    case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;\n    case 'X':\n    case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;\n    }" ({ "{") (case_statement "case 'B':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar6 = FUN_001cd940();\n      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;\n      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);\n      break;" (case "case") (char_literal "'B'" (' "'") (character "B") (' "'")) (: ":") (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pcVar7 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar7 + 1)" (( "(") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar6 = FUN_001cd940();" (assignment_expression "iVar6 = FUN_001cd940()" (identifier "iVar6") (= "=") (call_expression "FUN_001cd940()" (identifier "FUN_001cd940") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))\n      goto LAB_001cfd80;" (if "if") (parenthesized_expression "(((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))" (( "(") (binary_expression "((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c)" (parenthesized_expression "((iVar6 == 0) || (iStack_5c < 0))" (( "(") (binary_expression "(iVar6 == 0) || (iStack_5c < 0)" (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iStack_5c < 0)" (( "(") (binary_expression "iStack_5c < 0" (identifier "iStack_5c") (< "<") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(param_1 + 0x14) <= iStack_5c)" (( "(") (binary_expression "*(int *)(param_1 + 0x14) <= iStack_5c" (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")) () ")")))) (<= "<=") (identifier "iStack_5c")) () ")"))) () ")")) (goto_statement "goto LAB_001cfd80;" (goto "goto") (statement_identifier "LAB_001cfd80") (; ";"))) (expression_statement "pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);" (assignment_expression "pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4)" (identifier "pcVar7") (= "=") (pointer_expression "*(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4)" (* "*") (cast_expression "(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0xc) + iStack_5c * 4)" (( "(") (binary_expression "*(int *)(param_1 + 0xc) + iStack_5c * 4" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (binary_expression "iStack_5c * 4" (identifier "iStack_5c") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n      local_54 = 0;\n      goto code_r0x001d0082;" (default "default") (: ":") (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" (identifier "local_54") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto code_r0x001d0082;" (goto "goto") (statement_identifier "code_r0x001d0082") (; ";"))) (case_statement "case 'K':" (case "case") (char_literal "'K'" (' "'") (character "K") (' "'")) (: ":")) (case_statement "case 'Q':\n      iVar13 = FUN_001d1b50(0,1);\n      if (iVar13 == 0) goto LAB_001cfd80;\n      goto code_r0x001cfebc;" (case "case") (char_literal "'Q'" (' "'") (character "Q") (' "'")) (: ":") (expression_statement "iVar13 = FUN_001d1b50(0,1);" (assignment_expression "iVar13 = FUN_001d1b50(0,1)" (identifier "iVar13") (= "=") (call_expression "FUN_001d1b50(0,1)" (identifier "FUN_001d1b50") (argument_list "(0,1)" (( "(") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (iVar13 == 0) goto LAB_001cfd80;" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001cfd80;" (goto "goto") (statement_identifier "LAB_001cfd80") (; ";"))) (goto_statement "goto code_r0x001cfebc;" (goto "goto") (statement_identifier "code_r0x001cfebc") (; ";"))) (case_statement "case 'X':" (case "case") (char_literal "'X'" (' "'") (character "X") (' "'")) (: ":")) (case_statement "case 'Y':\n      *param_2 = (int)(pcVar7 + 1);\n      iVar13 = FUN_001cde90();\n      if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;\n      if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }\n      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);\n      iVar13 = 1;" (case "case") (char_literal "'Y'" (' "'") (character "Y") (' "'")) (: ":") (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pcVar7 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar7 + 1)" (( "(") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar13 = FUN_001cde90();" (assignment_expression "iVar13 = FUN_001cde90()" (identifier "iVar13") (= "=") (call_expression "FUN_001cde90()" (identifier "FUN_001cde90") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;" (if "if") (parenthesized_expression "((iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1))))" (( "(") (binary_expression "(iVar13 == -1) ||\n         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))" (parenthesized_expression "(iVar13 == -1)" (( "(") (binary_expression "iVar13 == -1" (identifier "iVar13") (== "==") (number_literal "-1")) () ")")) (|| "||") (parenthesized_expression "(((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)))" (( "(") (parenthesized_expression "((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1))" (( "(") (binary_expression "(*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||\n          (iVar6 = FUN_001cde90(), iVar6 == -1)" (parenthesized_expression "(*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13))" (( "(") (binary_expression "*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)" (binary_expression "*(int *)(param_1 + 0x40) != 0" (pointer_expression "*(int *)(param_1 + 0x40)" (* "*") (cast_expression "(int *)(param_1 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(*(int *)(param_1 + 0x44) <= iVar13)" (( "(") (binary_expression "*(int *)(param_1 + 0x44) <= iVar13" (pointer_expression "*(int *)(param_1 + 0x44)" (* "*") (cast_expression "(int *)(param_1 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (<= "<=") (identifier "iVar13")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar6 = FUN_001cde90(), iVar6 == -1)" (( "(") (comma_expression "iVar6 = FUN_001cde90(), iVar6 == -1" (assignment_expression "iVar6 = FUN_001cde90()" (identifier "iVar6") (= "=") (call_expression "FUN_001cde90()" (identifier "FUN_001cde90") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar6 == -1" (identifier "iVar6") (== "==") (number_literal "-1"))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_001cfd80;" (goto "goto") (statement_identifier "LAB_001cfd80") (; ";"))) (if_statement "if (*(int *)(param_1 + 0x40) == 0) {\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x40) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x40) == 0" (pointer_expression "*(int *)(param_1 + 0x40)" (* "*") (cast_expression "(int *)(param_1 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar13 = 1;\n        FUN_001ce280();\n        goto code_r0x001cfebc;\n      }" ({ "{") (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" (identifier "iVar13") (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_001ce280();" (call_expression "FUN_001ce280()" (identifier "FUN_001ce280") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto code_r0x001cfebc;" (goto "goto") (statement_identifier "code_r0x001cfebc") (; ";")) (} "}"))) (expression_statement "pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);" (assignment_expression "pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4)" (identifier "pcVar7") (= "=") (pointer_expression "*(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4)" (* "*") (cast_expression "(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x40) + iVar13 * 4)" (( "(") (binary_expression "*(int *)(param_1 + 0x40) + iVar13 * 4" (pointer_expression "*(int *)(param_1 + 0x40)" (* "*") (cast_expression "(int *)(param_1 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")")))) (+ "+") (binary_expression "iVar13 * 4" (identifier "iVar13") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" (identifier "iVar13") (= "=") (number_literal "1")) (; ";"))) (} "}"))) (if_statement "if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n      FUN_001ce230();\n    }" (if "if") (parenthesized_expression "((pcVar7 != (char *)0x0) && (*pcVar7 != '\0'))" (( "(") (binary_expression "(pcVar7 != (char *)0x0) && (*pcVar7 != '\0')" (parenthesized_expression "(pcVar7 != (char *)0x0)" (( "(") (binary_expression "pcVar7 != (char *)0x0" (identifier "pcVar7") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(*pcVar7 != '\0')" (( "(") (binary_expression "*pcVar7 != '\0'" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      FUN_001ce230();\n    }" ({ "{") (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (goto_statement "goto code_r0x001cfebc;" (goto "goto") (statement_identifier "code_r0x001cfebc") (; ";")) (} "}")))) (expression_statement "puVar14 = (undefined1 *)*param_2;" (assignment_expression "puVar14 = (undefined1 *)*param_2" (identifier "puVar14") (= "=") (cast_expression "(undefined1 *)*param_2" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" (identifier "bVar3") (= "=") (true "true")) (; ";")) (expression_statement "iVar12 = local_70;" (assignment_expression "iVar12 = local_70" (identifier "iVar12") (= "=") (identifier "local_70")) (; ";")) (switch_statement "switch(*puVar14) {\n  case 0x41:\n    goto code_r0x001cfa38;\n  default:\n    goto LAB_001cf82d;\n  case 0x43:\n  case 0x56:\n  case 0x75:\n    if ((*param_1 & 2) != 0) {\n      if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n      pcVar7 = (char *)FUN_001cdd80();\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n    }\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x46:\n    *param_2 = (int)(puVar14 + 1);\n    if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      FUN_001ce1f0();\n      FUN_001ce230();\n    }\n    iVar6 = FUN_001d24a0();\n    if (iVar6 != 0) {\n      cVar5 = *(char *)*param_2;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x47:\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x4d:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce230();\n    if (*(char *)*param_2 == 'Q') {\n      if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;\ncode_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);\n      if (iVar13 == 0) goto code_r0x001cf820;\n    }\n    else {\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }\ncode_r0x001cfb87:\n    FUN_001ce1f0();\n    pcVar7 = (char *)*param_2;\n    cVar5 = *pcVar7;\n    if (cVar5 == 'V') {\n      local_78 = 2;\ncode_r0x001d0040:\n      pcVar11 = pcVar7 + 1;\n      *param_2 = (int)pcVar11;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }\n    if (cVar5 == 'F') {\n      *param_2 = (int)(pcVar11 + 1);\n      iVar6 = FUN_001d24a0();\n      if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x4f:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 3;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x50:\n  case 0x70:\n    *param_2 = (int)(puVar14 + 1);\n    if ((*param_1 & 4) == 0) {\n      FUN_001ce1f0();\n    }\n    iVar12 = 1;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x52:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 2;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x54:\n    *param_2 = (int)(puVar14 + 1);\n    iVar6 = FUN_001cd940();\n    if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c)) break;\n    if (*(int *)(param_1 + 0x5c) < 1) goto code_r0x001cfe64;\n    piVar10 = *(int **)(param_1 + 0x54);\n    piVar1 = piVar10 + *(int *)(param_1 + 0x5c);\n    do {\n      if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }\n      piVar10 = piVar10 + 1;\n    } while (piVar1 != piVar10);\n    if (iVar13 != 0) {\ncode_r0x001cfe64:\n      FUN_001cdac0();\n      bVar4 = true;\n      param_2 = &iStack_58;\n      iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);\n    }\n    goto code_r0x001cf820;\n  }" (switch "switch") (parenthesized_expression "(*puVar14)" (( "(") (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) () ")")) (compound_statement "{\n  case 0x41:\n    goto code_r0x001cfa38;\n  default:\n    goto LAB_001cf82d;\n  case 0x43:\n  case 0x56:\n  case 0x75:\n    if ((*param_1 & 2) != 0) {\n      if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n      pcVar7 = (char *)FUN_001cdd80();\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n    }\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x46:\n    *param_2 = (int)(puVar14 + 1);\n    if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      FUN_001ce1f0();\n      FUN_001ce230();\n    }\n    iVar6 = FUN_001d24a0();\n    if (iVar6 != 0) {\n      cVar5 = *(char *)*param_2;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x47:\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;\n  case 0x4d:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce230();\n    if (*(char *)*param_2 == 'Q') {\n      if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;\ncode_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);\n      if (iVar13 == 0) goto code_r0x001cf820;\n    }\n    else {\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }\ncode_r0x001cfb87:\n    FUN_001ce1f0();\n    pcVar7 = (char *)*param_2;\n    cVar5 = *pcVar7;\n    if (cVar5 == 'V') {\n      local_78 = 2;\ncode_r0x001d0040:\n      pcVar11 = pcVar7 + 1;\n      *param_2 = (int)pcVar11;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }\n    if (cVar5 == 'F') {\n      *param_2 = (int)(pcVar11 + 1);\n      iVar6 = FUN_001d24a0();\n      if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;\n  case 0x4f:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 3;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x50:\n  case 0x70:\n    *param_2 = (int)(puVar14 + 1);\n    if ((*param_1 & 4) == 0) {\n      FUN_001ce1f0();\n    }\n    iVar12 = 1;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x52:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 2;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;\n  case 0x54:\n    *param_2 = (int)(puVar14 + 1);\n    iVar6 = FUN_001cd940();\n    if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c)) break;\n    if (*(int *)(param_1 + 0x5c) < 1) goto code_r0x001cfe64;\n    piVar10 = *(int **)(param_1 + 0x54);\n    piVar1 = piVar10 + *(int *)(param_1 + 0x5c);\n    do {\n      if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }\n      piVar10 = piVar10 + 1;\n    } while (piVar1 != piVar10);\n    if (iVar13 != 0) {\ncode_r0x001cfe64:\n      FUN_001cdac0();\n      bVar4 = true;\n      param_2 = &iStack_58;\n      iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);\n    }\n    goto code_r0x001cf820;\n  }" ({ "{") (case_statement "case 0x41:\n    goto code_r0x001cfa38;" (case "case") (number_literal "0x41") (: ":") (goto_statement "goto code_r0x001cfa38;" (goto "goto") (statement_identifier "code_r0x001cfa38") (; ";"))) (case_statement "default:\n    goto LAB_001cf82d;" (default "default") (: ":") (goto_statement "goto LAB_001cf82d;" (goto "goto") (statement_identifier "LAB_001cf82d") (; ";"))) (case_statement "case 0x43:" (case "case") (number_literal "0x43") (: ":")) (case_statement "case 0x56:" (case "case") (number_literal "0x56") (: ":")) (case_statement "case 0x75:\n    if ((*param_1 & 2) != 0) {\n      if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n      pcVar7 = (char *)FUN_001cdd80();\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n    }\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;" (case "case") (number_literal "0x75") (: ":") (if_statement "if ((*param_1 & 2) != 0) {\n      if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n      pcVar7 = (char *)FUN_001cdd80();\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n    }" (if "if") (parenthesized_expression "((*param_1 & 2) != 0)" (( "(") (binary_expression "(*param_1 & 2) != 0" (parenthesized_expression "(*param_1 & 2)" (( "(") (binary_expression "*param_1 & 2" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n      pcVar7 = (char *)FUN_001cdd80();\n      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }\n    }" ({ "{") (if_statement "if (local_50 != local_4c) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }" (if "if") (parenthesized_expression "(local_50 != local_4c)" (( "(") (binary_expression "local_50 != local_4c" (identifier "local_50") (!= "!=") (identifier "local_4c")) () ")")) (compound_statement "{\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }" ({ "{") (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" (identifier "FUN_001ce1f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar14 = (undefined1 *)*param_2;" (assignment_expression "puVar14 = (undefined1 *)*param_2" (identifier "puVar14") (= "=") (cast_expression "(undefined1 *)*param_2" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (} "}"))) (expression_statement "pcVar7 = (char *)FUN_001cdd80();" (assignment_expression "pcVar7 = (char *)FUN_001cdd80()" (identifier "pcVar7") (= "=") (cast_expression "(char *)FUN_001cdd80()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001cdd80()" (identifier "FUN_001cdd80") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }" (if "if") (parenthesized_expression "((pcVar7 != (char *)0x0) && (*pcVar7 != '\0'))" (( "(") (binary_expression "(pcVar7 != (char *)0x0) && (*pcVar7 != '\0')" (parenthesized_expression "(pcVar7 != (char *)0x0)" (( "(") (binary_expression "pcVar7 != (char *)0x0" (identifier "pcVar7") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(*pcVar7 != '\0')" (( "(") (binary_expression "*pcVar7 != '\0'" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        FUN_001ce1f0();\n        puVar14 = (undefined1 *)*param_2;\n      }" ({ "{") (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" (identifier "FUN_001ce1f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar14 = (undefined1 *)*param_2;" (assignment_expression "puVar14 = (undefined1 *)*param_2" (identifier "puVar14") (= "=") (cast_expression "(undefined1 *)*param_2" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (} "}"))) (} "}"))) (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(puVar14 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar14 + 1)" (( "(") (binary_expression "puVar14 + 1" (identifier "puVar14") (+ "+") (number_literal "1")) () ")")))) (; ";")) (goto_statement "goto code_r0x001cf820;" (goto "goto") (statement_identifier "code_r0x001cf820") (; ";"))) (case_statement "case 0x46:\n    *param_2 = (int)(puVar14 + 1);\n    if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      FUN_001ce1f0();\n      FUN_001ce230();\n    }\n    iVar6 = FUN_001d24a0();\n    if (iVar6 != 0) {\n      cVar5 = *(char *)*param_2;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;" (case "case") (number_literal "0x46") (: ":") (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(puVar14 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar14 + 1)" (( "(") (binary_expression "puVar14 + 1" (identifier "puVar14") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n      FUN_001ce1f0();\n      FUN_001ce230();\n    }" (if "if") (parenthesized_expression "((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0))" (( "(") (binary_expression "(pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)" (parenthesized_expression "(pcVar7 != local_4c)" (( "(") (binary_expression "pcVar7 != local_4c" (identifier "pcVar7") (!= "!=") (identifier "local_4c")) () ")")) (&& "&&") (parenthesized_expression "((*pcVar7 - 0x26U & 0xfb) == 0)" (( "(") (binary_expression "(*pcVar7 - 0x26U & 0xfb) == 0" (parenthesized_expression "(*pcVar7 - 0x26U & 0xfb)" (( "(") (binary_expression "*pcVar7 - 0x26U & 0xfb" (binary_expression "*pcVar7 - 0x26U" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (- "-") (number_literal "0x26U")) (& "&") (number_literal "0xfb")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      FUN_001ce1f0();\n      FUN_001ce230();\n    }" ({ "{") (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" (identifier "FUN_001ce1f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar6 = FUN_001d24a0();" (assignment_expression "iVar6 = FUN_001d24a0()" (identifier "iVar6") (= "=") (call_expression "FUN_001d24a0()" (identifier "FUN_001d24a0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar6 != 0) {\n      cVar5 = *(char *)*param_2;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }\n    }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      cVar5 = *(char *)*param_2;\n      if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }\n    }" ({ "{") (expression_statement "cVar5 = *(char *)*param_2;" (assignment_expression "cVar5 = *(char *)*param_2" (identifier "cVar5") (= "=") (pointer_expression "*(char *)*param_2" (* "*") (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2"))))) (; ";")) (if_statement "if ((cVar5 == '_') || (cVar5 == '\0')) {\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }" (if "if") (parenthesized_expression "((cVar5 == '_') || (cVar5 == '\0'))" (( "(") (binary_expression "(cVar5 == '_') || (cVar5 == '\0')" (parenthesized_expression "(cVar5 == '_')" (( "(") (binary_expression "cVar5 == '_'" (identifier "cVar5") (== "==") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(cVar5 == '\0')" (( "(") (binary_expression "cVar5 == '\0'" (identifier "cVar5") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }\n        goto code_r0x001cf820;\n      }" ({ "{") (if_statement "if (cVar5 == '_') {\n          *param_2 = (int)((char *)*param_2 + 1);\n        }" (if "if") (parenthesized_expression "(cVar5 == '_')" (( "(") (binary_expression "cVar5 == '_'" (identifier "cVar5") (== "==") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")")) (compound_statement "{\n          *param_2 = (int)((char *)*param_2 + 1);\n        }" ({ "{") (expression_statement "*param_2 = (int)((char *)*param_2 + 1);" (assignment_expression "*param_2 = (int)((char *)*param_2 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)((char *)*param_2 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((char *)*param_2 + 1)" (( "(") (binary_expression "(char *)*param_2 + 1" (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (goto_statement "goto code_r0x001cf820;" (goto "goto") (statement_identifier "code_r0x001cf820") (; ";")) (} "}"))) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x47:\n    *param_2 = (int)(puVar14 + 1);\n    goto code_r0x001cf820;" (case "case") (number_literal "0x47") (: ":") (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(puVar14 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar14 + 1)" (( "(") (binary_expression "puVar14 + 1" (identifier "puVar14") (+ "+") (number_literal "1")) () ")")))) (; ";")) (goto_statement "goto code_r0x001cf820;" (goto "goto") (statement_identifier "code_r0x001cf820") (; ";"))) (case_statement "case 0x4d:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce230();\n    if (*(char *)*param_2 == 'Q') {\n      if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;\ncode_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);\n      if (iVar13 == 0) goto code_r0x001cf820;\n    }\n    else {\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }\ncode_r0x001cfb87:\n    FUN_001ce1f0();\n    pcVar7 = (char *)*param_2;\n    cVar5 = *pcVar7;\n    if (cVar5 == 'V') {\n      local_78 = 2;\ncode_r0x001d0040:\n      pcVar11 = pcVar7 + 1;\n      *param_2 = (int)pcVar11;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }\n    if (cVar5 == 'F') {\n      *param_2 = (int)(pcVar11 + 1);\n      iVar6 = FUN_001d24a0();\n      if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }\n    }\n    break;" (case "case") (number_literal "0x4d") (: ":") (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(puVar14 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar14 + 1)" (( "(") (binary_expression "puVar14 + 1" (identifier "puVar14") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*(char *)*param_2 == 'Q') {\n      if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;\ncode_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);\n      if (iVar13 == 0) goto code_r0x001cf820;\n    }\n    else {\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }" (if "if") (parenthesized_expression "(*(char *)*param_2 == 'Q')" (( "(") (binary_expression "*(char *)*param_2 == 'Q'" (pointer_expression "*(char *)*param_2" (* "*") (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (== "==") (char_literal "'Q'" (' "'") (character "Q") (' "'"))) () ")")) (compound_statement "{\n      if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;\ncode_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);\n      if (iVar13 == 0) goto code_r0x001cf820;\n    }" ({ "{") (if_statement "if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;" (if "if") (parenthesized_expression "((UNK_002a36c2 & 4) != 0)" (( "(") (binary_expression "(UNK_002a36c2 & 4) != 0" (parenthesized_expression "(UNK_002a36c2 & 4)" (( "(") (binary_expression "UNK_002a36c2 & 4" (identifier "UNK_002a36c2") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x001cfb41;" (goto "goto") (statement_identifier "code_r0x001cfb41") (; ";"))) (labeled_statement "code_r0x001cfa0d:\n      iVar13 = FUN_001d1b50(0,0);" (statement_identifier "code_r0x001cfa0d") (: ":") (expression_statement "iVar13 = FUN_001d1b50(0,0);" (assignment_expression "iVar13 = FUN_001d1b50(0,0)" (identifier "iVar13") (= "=") (call_expression "FUN_001d1b50(0,0)" (identifier "FUN_001d1b50") (argument_list "(0,0)" (( "(") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";"))) (if_statement "if (iVar13 == 0) goto code_r0x001cf820;" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x001cf820;" (goto "goto") (statement_identifier "code_r0x001cf820") (; ";"))) (} "}")) (else_clause "else {\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }" (else "else") (compound_statement "{\n      FUN_001ce1f0();\n      bVar2 = *(byte *)*param_2;\n      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }\n      if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }\n    }" ({ "{") (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" (identifier "FUN_001ce1f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar2 = *(byte *)*param_2;" (assignment_expression "bVar2 = *(byte *)*param_2" (identifier "bVar2") (= "=") (pointer_expression "*(byte *)*param_2" (* "*") (cast_expression "(byte *)*param_2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2"))))) (; ";")) (if_statement "if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }" (if "if") (parenthesized_expression "(((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0)" (( "(") (binary_expression "((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0" (parenthesized_expression "((&DAT_002a3620)[(uint)bVar2 * 2] & 4)" (( "(") (binary_expression "(&DAT_002a3620)[(uint)bVar2 * 2] & 4" (subscript_expression "(&DAT_002a3620)[(uint)bVar2 * 2]" (parenthesized_expression "(&DAT_002a3620)" (( "(") (pointer_expression "&DAT_002a3620" (& "&") (identifier "DAT_002a3620")) () ")")) ([ "[") (binary_expression "(uint)bVar2 * 2" (cast_expression "(uint)bVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar2")) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();\n        if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }\n        break;\n      }" ({ "{") (labeled_statement "code_r0x001cfb41:\n        iStack_5c = FUN_001cdde0();" (statement_identifier "code_r0x001cfb41") (: ":") (expression_statement "iStack_5c = FUN_001cdde0();" (assignment_expression "iStack_5c = FUN_001cdde0()" (identifier "iStack_5c") (= "=") (call_expression "FUN_001cdde0()" (identifier "FUN_001cdde0") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (iStack_5c != -1) {\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }" (if "if") (parenthesized_expression "(iStack_5c != -1)" (( "(") (binary_expression "iStack_5c != -1" (identifier "iStack_5c") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n          pcVar7 = (char *)*param_2;\n          sVar8 = strlen(pcVar7);\n          if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }\n        }" ({ "{") (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" (identifier "pcVar7") (= "=") (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "sVar8 = strlen(pcVar7);" (assignment_expression "sVar8 = strlen(pcVar7)" (identifier "sVar8") (= "=") (call_expression "strlen(pcVar7)" (identifier "strlen") (argument_list "(pcVar7)" (( "(") (identifier "pcVar7") () ")")))) (; ";")) (if_statement "if (iStack_5c <= (int)sVar8) {\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }" (if "if") (parenthesized_expression "(iStack_5c <= (int)sVar8)" (( "(") (binary_expression "iStack_5c <= (int)sVar8" (identifier "iStack_5c") (<= "<=") (cast_expression "(int)sVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar8"))) () ")")) (compound_statement "{\n            if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }\n            *param_2 = (int)(pcVar7 + iStack_5c);\n            goto code_r0x001cfb87;\n          }" ({ "{") (if_statement "if (iStack_5c != 0) {\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }" (if "if") (parenthesized_expression "(iStack_5c != 0)" (( "(") (binary_expression "iStack_5c != 0" (identifier "iStack_5c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              FUN_001ce190();\n              pcVar7 = (char *)*param_2;\n            }" ({ "{") (expression_statement "FUN_001ce190();" (call_expression "FUN_001ce190()" (identifier "FUN_001ce190") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" (identifier "pcVar7") (= "=") (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (} "}"))) (expression_statement "*param_2 = (int)(pcVar7 + iStack_5c);" (assignment_expression "*param_2 = (int)(pcVar7 + iStack_5c)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pcVar7 + iStack_5c)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar7 + iStack_5c)" (( "(") (binary_expression "pcVar7 + iStack_5c" (identifier "pcVar7") (+ "+") (identifier "iStack_5c")) () ")")))) (; ";")) (goto_statement "goto code_r0x001cfb87;" (goto "goto") (statement_identifier "code_r0x001cfb87") (; ";")) (} "}"))) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if ((byte)(bVar2 + 0xa8) < 2) {\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }\n      else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }" (if "if") (parenthesized_expression "((byte)(bVar2 + 0xa8) < 2)" (( "(") (binary_expression "(byte)(bVar2 + 0xa8) < 2" (call_expression "(byte)(bVar2 + 0xa8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar2 + 0xa8)" (( "(") (binary_expression "bVar2 + 0xa8" (identifier "bVar2") (+ "+") (number_literal "0xa8")) () ")"))) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n        FUN_001cf7b0();\n        __ptr = pvStack_40;\n        if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }\n        if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }\n      }" ({ "{") (expression_statement "FUN_001cf7b0();" (call_expression "FUN_001cf7b0()" (identifier "FUN_001cf7b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "__ptr = pvStack_40;" (assignment_expression "__ptr = pvStack_40" (identifier "__ptr") (= "=") (identifier "pvStack_40")) (; ";")) (if_statement "if (pvStack_44 != pvStack_40) {\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }" (if "if") (parenthesized_expression "(pvStack_44 != pvStack_40)" (( "(") (binary_expression "pvStack_44 != pvStack_40" (identifier "pvStack_44") (!= "!=") (identifier "pvStack_40")) () ")")) (compound_statement "{\n          FUN_001ce190();\n          __ptr = pvStack_44;\n        }" ({ "{") (expression_statement "FUN_001ce190();" (call_expression "FUN_001ce190()" (identifier "FUN_001ce190") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "__ptr = pvStack_44;" (assignment_expression "__ptr = pvStack_44" (identifier "__ptr") (= "=") (identifier "pvStack_44")) (; ";")) (} "}"))) (if_statement "if (__ptr != (void *)0x0) {\n          free(__ptr);\n        }" (if "if") (parenthesized_expression "(__ptr != (void *)0x0)" (( "(") (binary_expression "__ptr != (void *)0x0" (identifier "__ptr") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          free(__ptr);\n        }" ({ "{") (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }" (else "else") (compound_statement "{\n        if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }\n        uStack_3c = 0;\n        pvStack_40 = (void *)0x0;\n        pvStack_44 = (void *)0x0;\n        iVar13 = FUN_001d1450(0,1,1);\n        if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }\n        if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }\n        if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }\n      }" ({ "{") (if_statement "if (bVar2 != 0x74) {\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }" (if "if") (parenthesized_expression "(bVar2 != 0x74)" (( "(") (binary_expression "bVar2 != 0x74" (identifier "bVar2") (!= "!=") (number_literal "0x74")) () ")")) (compound_statement "{\n          if (bVar2 == 0x51) goto code_r0x001cfa0d;\n          break;\n        }" ({ "{") (if_statement "if (bVar2 == 0x51) goto code_r0x001cfa0d;" (if "if") (parenthesized_expression "(bVar2 == 0x51)" (( "(") (binary_expression "bVar2 == 0x51" (identifier "bVar2") (== "==") (number_literal "0x51")) () ")")) (goto_statement "goto code_r0x001cfa0d;" (goto "goto") (statement_identifier "code_r0x001cfa0d") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "uStack_3c = 0;" (assignment_expression "uStack_3c = 0" (identifier "uStack_3c") (= "=") (number_literal "0")) (; ";")) (expression_statement "pvStack_40 = (void *)0x0;" (assignment_expression "pvStack_40 = (void *)0x0" (identifier "pvStack_40") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pvStack_44 = (void *)0x0;" (assignment_expression "pvStack_44 = (void *)0x0" (identifier "pvStack_44") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar13 = FUN_001d1450(0,1,1);" (assignment_expression "iVar13 = FUN_001d1450(0,1,1)" (identifier "iVar13") (= "=") (call_expression "FUN_001d1450(0,1,1)" (identifier "FUN_001d1450") (argument_list "(0,1,1)" (( "(") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (iVar13 == 0) {\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }\n          goto code_r0x001cf820;\n        }" ({ "{") (if_statement "if (pvStack_44 != (void *)0x0) {\n            free(pvStack_44);\n          }" (if "if") (parenthesized_expression "(pvStack_44 != (void *)0x0)" (( "(") (binary_expression "pvStack_44 != (void *)0x0" (identifier "pvStack_44") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            free(pvStack_44);\n          }" ({ "{") (expression_statement "free(pvStack_44);" (call_expression "free(pvStack_44)" (identifier "free") (argument_list "(pvStack_44)" (( "(") (identifier "pvStack_44") () ")"))) (; ";")) (} "}"))) (goto_statement "goto code_r0x001cf820;" (goto "goto") (statement_identifier "code_r0x001cf820") (; ";")) (} "}"))) (if_statement "if (pvStack_40 != pvStack_44) {\n          FUN_001ce190();\n        }" (if "if") (parenthesized_expression "(pvStack_40 != pvStack_44)" (( "(") (binary_expression "pvStack_40 != pvStack_44" (identifier "pvStack_40") (!= "!=") (identifier "pvStack_44")) () ")")) (compound_statement "{\n          FUN_001ce190();\n        }" ({ "{") (expression_statement "FUN_001ce190();" (call_expression "FUN_001ce190()" (identifier "FUN_001ce190") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (pvStack_44 != (void *)0x0) {\n          free(pvStack_44);\n        }" (if "if") (parenthesized_expression "(pvStack_44 != (void *)0x0)" (( "(") (binary_expression "pvStack_44 != (void *)0x0" (identifier "pvStack_44") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          free(pvStack_44);\n        }" ({ "{") (expression_statement "free(pvStack_44);" (call_expression "free(pvStack_44)" (identifier "free") (argument_list "(pvStack_44)" (( "(") (identifier "pvStack_44") () ")"))) (; ";")) (} "}"))) (} "}")))) (} "}")))) (labeled_statement "code_r0x001cfb87:\n    FUN_001ce1f0();" (statement_identifier "code_r0x001cfb87") (: ":") (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" (identifier "FUN_001ce1f0") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" (identifier "pcVar7") (= "=") (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "cVar5 = *pcVar7;" (assignment_expression "cVar5 = *pcVar7" (identifier "cVar5") (= "=") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7"))) (; ";")) (if_statement "if (cVar5 == 'V') {\n      local_78 = 2;\ncode_r0x001d0040:\n      pcVar11 = pcVar7 + 1;\n      *param_2 = (int)pcVar11;\n      cVar5 = pcVar7[1];\n    }\n    else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }" (if "if") (parenthesized_expression "(cVar5 == 'V')" (( "(") (binary_expression "cVar5 == 'V'" (identifier "cVar5") (== "==") (char_literal "'V'" (' "'") (character "V") (' "'"))) () ")")) (compound_statement "{\n      local_78 = 2;\ncode_r0x001d0040:\n      pcVar11 = pcVar7 + 1;\n      *param_2 = (int)pcVar11;\n      cVar5 = pcVar7[1];\n    }" ({ "{") (expression_statement "local_78 = 2;" (assignment_expression "local_78 = 2" (identifier "local_78") (= "=") (number_literal "2")) (; ";")) (labeled_statement "code_r0x001d0040:\n      pcVar11 = pcVar7 + 1;" (statement_identifier "code_r0x001d0040") (: ":") (expression_statement "pcVar11 = pcVar7 + 1;" (assignment_expression "pcVar11 = pcVar7 + 1" (identifier "pcVar11") (= "=") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "*param_2 = (int)pcVar11;" (assignment_expression "*param_2 = (int)pcVar11" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)pcVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar11"))) (; ";")) (expression_statement "cVar5 = pcVar7[1];" (assignment_expression "cVar5 = pcVar7[1]" (identifier "cVar5") (= "=") (subscript_expression "pcVar7[1]" (identifier "pcVar7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }" (else "else") (compound_statement "{\n      if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }\n      if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }\n      local_78 = 0;\n      pcVar11 = pcVar7;\n    }" ({ "{") (if_statement "if (cVar5 == 'u') {\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }" (if "if") (parenthesized_expression "(cVar5 == 'u')" (( "(") (binary_expression "cVar5 == 'u'" (identifier "cVar5") (== "==") (char_literal "'u'" (' "'") (character "u") (' "'"))) () ")")) (compound_statement "{\n        local_78 = 4;\n        goto code_r0x001d0040;\n      }" ({ "{") (expression_statement "local_78 = 4;" (assignment_expression "local_78 = 4" (identifier "local_78") (= "=") (number_literal "4")) (; ";")) (goto_statement "goto code_r0x001d0040;" (goto "goto") (statement_identifier "code_r0x001d0040") (; ";")) (} "}"))) (if_statement "if (cVar5 == 'C') {\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }" (if "if") (parenthesized_expression "(cVar5 == 'C')" (( "(") (binary_expression "cVar5 == 'C'" (identifier "cVar5") (== "==") (char_literal "'C'" (' "'") (character "C") (' "'"))) () ")")) (compound_statement "{\n        local_78 = 1;\n        goto code_r0x001d0040;\n      }" ({ "{") (expression_statement "local_78 = 1;" (assignment_expression "local_78 = 1" (identifier "local_78") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto code_r0x001d0040;" (goto "goto") (statement_identifier "code_r0x001d0040") (; ";")) (} "}"))) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" (identifier "local_78") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar11 = pcVar7;" (assignment_expression "pcVar11 = pcVar7" (identifier "pcVar11") (= "=") (identifier "pcVar7")) (; ";")) (} "}")))) (if_statement "if (cVar5 == 'F') {\n      *param_2 = (int)(pcVar11 + 1);\n      iVar6 = FUN_001d24a0();\n      if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }\n    }" (if "if") (parenthesized_expression "(cVar5 == 'F')" (( "(") (binary_expression "cVar5 == 'F'" (identifier "cVar5") (== "==") (char_literal "'F'" (' "'") (character "F") (' "'"))) () ")")) (compound_statement "{\n      *param_2 = (int)(pcVar11 + 1);\n      iVar6 = FUN_001d24a0();\n      if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }\n    }" ({ "{") (expression_statement "*param_2 = (int)(pcVar11 + 1);" (assignment_expression "*param_2 = (int)(pcVar11 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pcVar11 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar11 + 1)" (( "(") (binary_expression "pcVar11 + 1" (identifier "pcVar11") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar6 = FUN_001d24a0();" (assignment_expression "iVar6 = FUN_001d24a0()" (identifier "iVar6") (= "=") (call_expression "FUN_001d24a0()" (identifier "FUN_001d24a0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }" (if "if") (parenthesized_expression "((iVar6 != 0) && (*(char *)*param_2 == '_'))" (( "(") (binary_expression "(iVar6 != 0) && (*(char *)*param_2 == '_')" (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)*param_2 == '_')" (( "(") (binary_expression "*(char *)*param_2 == '_'" (pointer_expression "*(char *)*param_2" (* "*") (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (== "==") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        *param_2 = (int)((char *)*param_2 + 1);\n        if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }\n        goto code_r0x001cf820;\n      }" ({ "{") (expression_statement "*param_2 = (int)((char *)*param_2 + 1);" (assignment_expression "*param_2 = (int)((char *)*param_2 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)((char *)*param_2 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((char *)*param_2 + 1)" (( "(") (binary_expression "(char *)*param_2 + 1" (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (((*param_1 & 2) != 0) && (local_78 != 0)) {\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }" (if "if") (parenthesized_expression "(((*param_1 & 2) != 0) && (local_78 != 0))" (( "(") (binary_expression "((*param_1 & 2) != 0) && (local_78 != 0)" (parenthesized_expression "((*param_1 & 2) != 0)" (( "(") (binary_expression "(*param_1 & 2) != 0" (parenthesized_expression "(*param_1 & 2)" (( "(") (binary_expression "*param_1 & 2" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_78 != 0)" (( "(") (binary_expression "local_78 != 0" (identifier "local_78") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          if (local_50 != local_4c) {\n            FUN_001ce230();\n          }\n          pcVar7 = (char *)FUN_001cdcd0();\n          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }\n        }" ({ "{") (if_statement "if (local_50 != local_4c) {\n            FUN_001ce230();\n          }" (if "if") (parenthesized_expression "(local_50 != local_4c)" (( "(") (binary_expression "local_50 != local_4c" (identifier "local_50") (!= "!=") (identifier "local_4c")) () ")")) (compound_statement "{\n            FUN_001ce230();\n          }" ({ "{") (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar7 = (char *)FUN_001cdcd0();" (assignment_expression "pcVar7 = (char *)FUN_001cdcd0()" (identifier "pcVar7") (= "=") (cast_expression "(char *)FUN_001cdcd0()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001cdcd0()" (identifier "FUN_001cdcd0") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {\n            FUN_001ce230();\n          }" (if "if") (parenthesized_expression "((pcVar7 != (char *)0x0) && (*pcVar7 != '\0'))" (( "(") (binary_expression "(pcVar7 != (char *)0x0) && (*pcVar7 != '\0')" (parenthesized_expression "(pcVar7 != (char *)0x0)" (( "(") (binary_expression "pcVar7 != (char *)0x0" (identifier "pcVar7") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(*pcVar7 != '\0')" (( "(") (binary_expression "*pcVar7 != '\0'" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n            FUN_001ce230();\n          }" ({ "{") (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto code_r0x001cf820;" (goto "goto") (statement_identifier "code_r0x001cf820") (; ";")) (} "}"))) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x4f:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 3;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;" (case "case") (number_literal "0x4f") (: ":") (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(puVar14 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar14 + 1)" (( "(") (binary_expression "puVar14 + 1" (identifier "puVar14") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" (identifier "FUN_001ce1f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar12 = 3;" (assignment_expression "iVar12 = 3" (identifier "iVar12") (= "=") (number_literal "3")) (; ";")) (if_statement "if (local_70 != 0) {\n      iVar12 = local_70;\n    }" (if "if") (parenthesized_expression "(local_70 != 0)" (( "(") (binary_expression "local_70 != 0" (identifier "local_70") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar12 = local_70;\n    }" ({ "{") (expression_statement "iVar12 = local_70;" (assignment_expression "iVar12 = local_70" (identifier "iVar12") (= "=") (identifier "local_70")) (; ";")) (} "}"))) (goto_statement "goto code_r0x001cf820;" (goto "goto") (statement_identifier "code_r0x001cf820") (; ";"))) (case_statement "case 0x50:" (case "case") (number_literal "0x50") (: ":")) (case_statement "case 0x70:\n    *param_2 = (int)(puVar14 + 1);\n    if ((*param_1 & 4) == 0) {\n      FUN_001ce1f0();\n    }\n    iVar12 = 1;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;" (case "case") (number_literal "0x70") (: ":") (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(puVar14 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar14 + 1)" (( "(") (binary_expression "puVar14 + 1" (identifier "puVar14") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((*param_1 & 4) == 0) {\n      FUN_001ce1f0();\n    }" (if "if") (parenthesized_expression "((*param_1 & 4) == 0)" (( "(") (binary_expression "(*param_1 & 4) == 0" (parenthesized_expression "(*param_1 & 4)" (( "(") (binary_expression "*param_1 & 4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_001ce1f0();\n    }" ({ "{") (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" (identifier "FUN_001ce1f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" (identifier "iVar12") (= "=") (number_literal "1")) (; ";")) (if_statement "if (local_70 != 0) {\n      iVar12 = local_70;\n    }" (if "if") (parenthesized_expression "(local_70 != 0)" (( "(") (binary_expression "local_70 != 0" (identifier "local_70") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar12 = local_70;\n    }" ({ "{") (expression_statement "iVar12 = local_70;" (assignment_expression "iVar12 = local_70" (identifier "iVar12") (= "=") (identifier "local_70")) (; ";")) (} "}"))) (goto_statement "goto code_r0x001cf820;" (goto "goto") (statement_identifier "code_r0x001cf820") (; ";"))) (case_statement "case 0x52:\n    *param_2 = (int)(puVar14 + 1);\n    FUN_001ce1f0();\n    iVar12 = 2;\n    if (local_70 != 0) {\n      iVar12 = local_70;\n    }\n    goto code_r0x001cf820;" (case "case") (number_literal "0x52") (: ":") (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(puVar14 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar14 + 1)" (( "(") (binary_expression "puVar14 + 1" (identifier "puVar14") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" (identifier "FUN_001ce1f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar12 = 2;" (assignment_expression "iVar12 = 2" (identifier "iVar12") (= "=") (number_literal "2")) (; ";")) (if_statement "if (local_70 != 0) {\n      iVar12 = local_70;\n    }" (if "if") (parenthesized_expression "(local_70 != 0)" (( "(") (binary_expression "local_70 != 0" (identifier "local_70") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar12 = local_70;\n    }" ({ "{") (expression_statement "iVar12 = local_70;" (assignment_expression "iVar12 = local_70" (identifier "iVar12") (= "=") (identifier "local_70")) (; ";")) (} "}"))) (goto_statement "goto code_r0x001cf820;" (goto "goto") (statement_identifier "code_r0x001cf820") (; ";"))) (case_statement "case 0x54:\n    *param_2 = (int)(puVar14 + 1);\n    iVar6 = FUN_001cd940();\n    if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c)) break;\n    if (*(int *)(param_1 + 0x5c) < 1) goto code_r0x001cfe64;\n    piVar10 = *(int **)(param_1 + 0x54);\n    piVar1 = piVar10 + *(int *)(param_1 + 0x5c);\n    do {\n      if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }\n      piVar10 = piVar10 + 1;\n    } while (piVar1 != piVar10);\n    if (iVar13 != 0) {\ncode_r0x001cfe64:\n      FUN_001cdac0();\n      bVar4 = true;\n      param_2 = &iStack_58;\n      iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);\n    }\n    goto code_r0x001cf820;" (case "case") (number_literal "0x54") (: ":") (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(puVar14 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar14 + 1)" (( "(") (binary_expression "puVar14 + 1" (identifier "puVar14") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar6 = FUN_001cd940();" (assignment_expression "iVar6 = FUN_001cd940()" (identifier "iVar6") (= "=") (call_expression "FUN_001cd940()" (identifier "FUN_001cd940") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c)) break;" (if "if") (parenthesized_expression "(((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c))" (( "(") (binary_expression "((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c)" (parenthesized_expression "((iVar6 == 0) || (iStack_5c < 0))" (( "(") (binary_expression "(iVar6 == 0) || (iStack_5c < 0)" (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iStack_5c < 0)" (( "(") (binary_expression "iStack_5c < 0" (identifier "iStack_5c") (< "<") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(param_1 + 0x20) <= iStack_5c)" (( "(") (binary_expression "*(int *)(param_1 + 0x20) <= iStack_5c" (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")) () ")")))) (<= "<=") (identifier "iStack_5c")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (*(int *)(param_1 + 0x5c) < 1) goto code_r0x001cfe64;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x5c) < 1)" (( "(") (binary_expression "*(int *)(param_1 + 0x5c) < 1" (pointer_expression "*(int *)(param_1 + 0x5c)" (* "*") (cast_expression "(int *)(param_1 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")")))) (< "<") (number_literal "1")) () ")")) (goto_statement "goto code_r0x001cfe64;" (goto "goto") (statement_identifier "code_r0x001cfe64") (; ";"))) (expression_statement "piVar10 = *(int **)(param_1 + 0x54);" (assignment_expression "piVar10 = *(int **)(param_1 + 0x54)" (identifier "piVar10") (= "=") (pointer_expression "*(int **)(param_1 + 0x54)" (* "*") (cast_expression "(int **)(param_1 + 0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (expression_statement "piVar1 = piVar10 + *(int *)(param_1 + 0x5c);" (assignment_expression "piVar1 = piVar10 + *(int *)(param_1 + 0x5c)" (identifier "piVar1") (= "=") (binary_expression "piVar10 + *(int *)(param_1 + 0x5c)" (identifier "piVar10") (+ "+") (pointer_expression "*(int *)(param_1 + 0x5c)" (* "*") (cast_expression "(int *)(param_1 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")")))))) (; ";")) (do_statement "do {\n      if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }\n      piVar10 = piVar10 + 1;\n    } while (piVar1 != piVar10);" (do "do") (compound_statement "{\n      if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }\n      piVar10 = piVar10 + 1;\n    }" ({ "{") (if_statement "if (iStack_5c == *piVar10) {\n        iVar13 = 0;\n      }" (if "if") (parenthesized_expression "(iStack_5c == *piVar10)" (( "(") (binary_expression "iStack_5c == *piVar10" (identifier "iStack_5c") (== "==") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) () ")")) (compound_statement "{\n        iVar13 = 0;\n      }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "piVar10 = piVar10 + 1;" (assignment_expression "piVar10 = piVar10 + 1" (identifier "piVar10") (= "=") (binary_expression "piVar10 + 1" (identifier "piVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar1 != piVar10)" (( "(") (binary_expression "piVar1 != piVar10" (identifier "piVar1") (!= "!=") (identifier "piVar10")) () ")")) (; ";")) (if_statement "if (iVar13 != 0) {\ncode_r0x001cfe64:\n      FUN_001cdac0();\n      bVar4 = true;\n      param_2 = &iStack_58;\n      iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);\n    }" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x001cfe64:\n      FUN_001cdac0();\n      bVar4 = true;\n      param_2 = &iStack_58;\n      iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);\n    }" ({ "{") (labeled_statement "code_r0x001cfe64:\n      FUN_001cdac0();" (statement_identifier "code_r0x001cfe64") (: ":") (expression_statement "FUN_001cdac0();" (call_expression "FUN_001cdac0()" (identifier "FUN_001cdac0") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" (identifier "bVar4") (= "=") (true "true")) (; ";")) (expression_statement "param_2 = &iStack_58;" (assignment_expression "param_2 = &iStack_58" (identifier "param_2") (= "=") (pointer_expression "&iStack_58" (& "&") (identifier "iStack_58"))) (; ";")) (expression_statement "iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);" (assignment_expression "iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4)" (identifier "iStack_58") (= "=") (pointer_expression "*(int *)(*(int *)(param_1 + 4) + iStack_5c * 4)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 4) + iStack_5c * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 4) + iStack_5c * 4)" (( "(") (binary_expression "*(int *)(param_1 + 4) + iStack_5c * 4" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (+ "+") (binary_expression "iStack_5c * 4" (identifier "iStack_5c") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (goto_statement "goto code_r0x001cf820;" (goto "goto") (statement_identifier "code_r0x001cf820") (; ";"))) (} "}"))) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto code_r0x001cf820;" (goto "goto") (statement_identifier "code_r0x001cf820") (; ";")) (labeled_statement "code_r0x001d0082:\n  do {\n    switch(*pcVar7 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n    }\n  } while( true );" (statement_identifier "code_r0x001d0082") (: ":") (do_statement "do {\n    switch(*pcVar7 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    switch(*pcVar7 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n    }\n  }" ({ "{") (switch_statement "switch(*pcVar7 + -0x43) {\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n    }" (switch "switch") (parenthesized_expression "(*pcVar7 + -0x43)" (( "(") (binary_expression "*pcVar7 + -0x43" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (+ "+") (number_literal "-0x43")) () ")")) (compound_statement "{\n    case '\0':\n    case '\x13':\n    case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;\n    default:\n      goto code_r0x001d0176;\n    case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;\n    case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n    }" ({ "{") (case_statement "case '\0':" (case "case") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")) (: ":")) (case_statement "case '\x13':" (case "case") (char_literal "'\x13'" (' "'") (escape_sequence "\x13") (' "'")) (: ":")) (case_statement "case '2':\n      if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }\n      pcVar7 = pcVar7 + 1;\n      *param_2 = (int)pcVar7;\n      break;" (case "case") (char_literal "'2'" (' "'") (character "2") (' "'")) (: ":") (if_statement "if ((*param_1 & 2) != 0) {\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }" (if "if") (parenthesized_expression "((*param_1 & 2) != 0)" (( "(") (binary_expression "(*param_1 & 2) != 0" (parenthesized_expression "(*param_1 & 2)" (( "(") (binary_expression "*param_1 & 2" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n        pcVar11 = (char *)FUN_001cdd80();\n        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }\n      }" ({ "{") (if_statement "if (*param_3 != param_3[1]) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }" (if "if") (parenthesized_expression "(*param_3 != param_3[1])" (( "(") (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (!= "!=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }" ({ "{") (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" (identifier "FUN_001ce1f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" (identifier "pcVar7") (= "=") (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (} "}"))) (expression_statement "pcVar11 = (char *)FUN_001cdd80();" (assignment_expression "pcVar11 = (char *)FUN_001cdd80()" (identifier "pcVar11") (= "=") (cast_expression "(char *)FUN_001cdd80()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001cdd80()" (identifier "FUN_001cdd80") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }" (if "if") (parenthesized_expression "((pcVar11 != (char *)0x0) && (*pcVar11 != '\0'))" (( "(") (binary_expression "(pcVar11 != (char *)0x0) && (*pcVar11 != '\0')" (parenthesized_expression "(pcVar11 != (char *)0x0)" (( "(") (binary_expression "pcVar11 != (char *)0x0" (identifier "pcVar11") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(*pcVar11 != '\0')" (( "(") (binary_expression "*pcVar11 != '\0'" (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          FUN_001ce1f0();\n          pcVar7 = (char *)*param_2;\n        }" ({ "{") (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" (identifier "FUN_001ce1f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" (identifier "pcVar7") (= "=") (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (} "}"))) (} "}"))) (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" (identifier "pcVar7") (= "=") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_2 = (int)pcVar7;" (assignment_expression "*param_2 = (int)pcVar7" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)pcVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar7"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n      goto code_r0x001d0176;" (default "default") (: ":") (goto_statement "goto code_r0x001d0176;" (goto "goto") (statement_identifier "code_r0x001d0176") (; ";"))) (case_statement "case '\a':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;" (case "case") (char_literal "'\a'" (' "'") (escape_sequence "\a") (' "'")) (: ":") (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pcVar7 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar7 + 1)" (( "(") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }" (if "if") (parenthesized_expression "(*param_3 != param_3[1])" (( "(") (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (!= "!=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n        FUN_001ce230();\n      }" ({ "{") (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" (identifier "pcVar7") (= "=") (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case '\x10':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;\n      break;" (case "case") (char_literal "'\x10'" (' "'") (escape_sequence "\x10") (' "'")) (: ":") (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pcVar7 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar7 + 1)" (( "(") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }" (if "if") (parenthesized_expression "(*param_3 != param_3[1])" (( "(") (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (!= "!=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n        FUN_001ce230();\n      }" ({ "{") (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" (identifier "pcVar7") (= "=") (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case '\x12':\n      *param_2 = (int)(pcVar7 + 1);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      FUN_001ce230();\n      pcVar7 = (char *)*param_2;" (case "case") (char_literal "'\x12'" (' "'") (escape_sequence "\x12") (' "'")) (: ":") (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pcVar7 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar7 + 1)" (( "(") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }" (if "if") (parenthesized_expression "(*param_3 != param_3[1])" (( "(") (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (!= "!=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n        FUN_001ce230();\n      }" ({ "{") (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" (identifier "pcVar7") (= "=") (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";"))) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (labeled_statement "code_r0x001cfa38:\n  *param_2 = (int)(puVar14 + 1);" (statement_identifier "code_r0x001cfa38") (: ":") (expression_statement "*param_2 = (int)(puVar14 + 1);" (assignment_expression "*param_2 = (int)(puVar14 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(puVar14 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar14 + 1)" (( "(") (binary_expression "puVar14 + 1" (identifier "puVar14") (+ "+") (number_literal "1")) () ")")))) (; ";"))) (if_statement "if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {\n    FUN_001ce1f0();\n    FUN_001ce230();\n  }" (if "if") (parenthesized_expression "((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0))" (( "(") (binary_expression "(pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)" (parenthesized_expression "(pcVar7 != local_4c)" (( "(") (binary_expression "pcVar7 != local_4c" (identifier "pcVar7") (!= "!=") (identifier "local_4c")) () ")")) (&& "&&") (parenthesized_expression "((*pcVar7 - 0x26U & 0xfb) == 0)" (( "(") (binary_expression "(*pcVar7 - 0x26U & 0xfb) == 0" (parenthesized_expression "(*pcVar7 - 0x26U & 0xfb)" (( "(") (binary_expression "*pcVar7 - 0x26U & 0xfb" (binary_expression "*pcVar7 - 0x26U" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (- "-") (number_literal "0x26U")) (& "&") (number_literal "0xfb")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    FUN_001ce1f0();\n    FUN_001ce230();\n  }" ({ "{") (expression_statement "FUN_001ce1f0();" (call_expression "FUN_001ce1f0()" (identifier "FUN_001ce1f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" (identifier "pcVar7") (= "=") (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (if_statement "if (*pcVar7 != '_') {\n    iVar13 = FUN_001cf0a0(4);\n    pcVar7 = (char *)*param_2;\n    if (*pcVar7 != '_') goto code_r0x001cfa7a;\n  }" (if "if") (parenthesized_expression "(*pcVar7 != '_')" (( "(") (binary_expression "*pcVar7 != '_'" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (!= "!=") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")")) (compound_statement "{\n    iVar13 = FUN_001cf0a0(4);\n    pcVar7 = (char *)*param_2;\n    if (*pcVar7 != '_') goto code_r0x001cfa7a;\n  }" ({ "{") (expression_statement "iVar13 = FUN_001cf0a0(4);" (assignment_expression "iVar13 = FUN_001cf0a0(4)" (identifier "iVar13") (= "=") (call_expression "FUN_001cf0a0(4)" (identifier "FUN_001cf0a0") (argument_list "(4)" (( "(") (number_literal "4") () ")")))) (; ";")) (expression_statement "pcVar7 = (char *)*param_2;" (assignment_expression "pcVar7 = (char *)*param_2" (identifier "pcVar7") (= "=") (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (if_statement "if (*pcVar7 != '_') goto code_r0x001cfa7a;" (if "if") (parenthesized_expression "(*pcVar7 != '_')" (( "(") (binary_expression "*pcVar7 != '_'" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (!= "!=") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")")) (goto_statement "goto code_r0x001cfa7a;" (goto "goto") (statement_identifier "code_r0x001cfa7a") (; ";"))) (} "}"))) (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pcVar7 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar7 + 1)" (( "(") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (labeled_statement "code_r0x001cfa7a:\n  FUN_001ce230();" (statement_identifier "code_r0x001cfa7a") (: ":") (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";"))) (goto_statement "goto code_r0x001cf820;" (goto "goto") (statement_identifier "code_r0x001cf820") (; ";")) (labeled_statement "code_r0x001d0176:\n  pcVar11 = pcVar7;" (statement_identifier "code_r0x001d0176") (: ":") (expression_statement "pcVar11 = pcVar7;" (assignment_expression "pcVar11 = pcVar7" (identifier "pcVar11") (= "=") (identifier "pcVar7")) (; ";"))) (switch_statement "switch(*pcVar7) {\n  case '\0':\n  case '_':\n    goto code_r0x001d018e;\n  default:\n    goto LAB_001cfd80;\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    uVar9 = FUN_001cdb80();\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d0dd0();\n    if (iVar13 != 0) {\n      FUN_001ce060(uVar9);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      iVar13 = 1;\n      FUN_001ce380();\n    }\n    goto joined_r0x001d0375;\n  case 'G':\n    pcVar11 = pcVar7 + 1;\n    *param_2 = (int)pcVar11;\n    if (((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0) goto code_r0x001d01c5;\n    goto LAB_001cfd80;\n  case 'I':\ncode_r0x001d01c5:\n    pcVar7 = pcVar11 + 1;\n    *param_2 = (int)pcVar7;\n    if (pcVar11[1] == '_') {\n      iVar13 = 0;\n      *param_2 = (int)(pcVar11 + 2);\n      pcVar7 = pcVar11 + 2;\n      do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);\n      cVar5 = pcVar11[1];\ncode_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;\n      *(undefined1 *)((int)&pvStack_44 + iVar13) = 0;\n      *param_2 = (int)(pcVar7 + 1);\n    }\n    else {\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }\n    sscanf((char *)&pvStack_44,"%x",&local_54);\n    sprintf((char *)&pvStack_44,"int%u_t",local_54);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    if ((char)pvStack_44 == '\0') goto code_r0x001d018e;\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'b':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 5;\n    FUN_001ce230();\n    iVar12 = 5;\n    break;\n  case 'c':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'd':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'f':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'i':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'l':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'r':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 's':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 't':\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d1450(0,1,1);\n    FUN_001ce380();\njoined_r0x001d0375:\n    if (pvStack_44 != (void *)0x0) {\n      free(pvStack_44);\n    }\n    if (iVar13 != 0) {\ncode_r0x001d018e:\n      iVar13 = 4;\n      iVar12 = 4;\n      break;\n    }\nLAB_001cfd80:\n    if ((void *)*param_3 == (void *)0x0) {\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }\n    else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }\n    goto LAB_001cfdb8;\n  case 'v':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'w':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'x':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n  }" (switch "switch") (parenthesized_expression "(*pcVar7)" (( "(") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) () ")")) (compound_statement "{\n  case '\0':\n  case '_':\n    goto code_r0x001d018e;\n  default:\n    goto LAB_001cfd80;\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    uVar9 = FUN_001cdb80();\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d0dd0();\n    if (iVar13 != 0) {\n      FUN_001ce060(uVar9);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      iVar13 = 1;\n      FUN_001ce380();\n    }\n    goto joined_r0x001d0375;\n  case 'G':\n    pcVar11 = pcVar7 + 1;\n    *param_2 = (int)pcVar11;\n    if (((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0) goto code_r0x001d01c5;\n    goto LAB_001cfd80;\n  case 'I':\ncode_r0x001d01c5:\n    pcVar7 = pcVar11 + 1;\n    *param_2 = (int)pcVar7;\n    if (pcVar11[1] == '_') {\n      iVar13 = 0;\n      *param_2 = (int)(pcVar11 + 2);\n      pcVar7 = pcVar11 + 2;\n      do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);\n      cVar5 = pcVar11[1];\ncode_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;\n      *(undefined1 *)((int)&pvStack_44 + iVar13) = 0;\n      *param_2 = (int)(pcVar7 + 1);\n    }\n    else {\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }\n    sscanf((char *)&pvStack_44,"%x",&local_54);\n    sprintf((char *)&pvStack_44,"int%u_t",local_54);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    if ((char)pvStack_44 == '\0') goto code_r0x001d018e;\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'b':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 5;\n    FUN_001ce230();\n    iVar12 = 5;\n    break;\n  case 'c':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'd':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'f':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 'i':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'l':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'r':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;\n  case 's':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 't':\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d1450(0,1,1);\n    FUN_001ce380();\njoined_r0x001d0375:\n    if (pvStack_44 != (void *)0x0) {\n      free(pvStack_44);\n    }\n    if (iVar13 != 0) {\ncode_r0x001d018e:\n      iVar13 = 4;\n      iVar12 = 4;\n      break;\n    }\nLAB_001cfd80:\n    if ((void *)*param_3 == (void *)0x0) {\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }\n    else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }\n    goto LAB_001cfdb8;\n  case 'v':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;\n  case 'w':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;\n  case 'x':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n  }" ({ "{") (case_statement "case '\0':" (case "case") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")) (: ":")) (case_statement "case '_':\n    goto code_r0x001d018e;" (case "case") (char_literal "'_'" (' "'") (character "_") (' "'")) (: ":") (goto_statement "goto code_r0x001d018e;" (goto "goto") (statement_identifier "code_r0x001d018e") (; ";"))) (case_statement "default:\n    goto LAB_001cfd80;" (default "default") (: ":") (goto_statement "goto LAB_001cfd80;" (goto "goto") (statement_identifier "LAB_001cfd80") (; ";"))) (case_statement "case '0':" (case "case") (char_literal "'0'" (' "'") (character "0") (' "'")) (: ":")) (case_statement "case '1':" (case "case") (char_literal "'1'" (' "'") (character "1") (' "'")) (: ":")) (case_statement "case '2':" (case "case") (char_literal "'2'" (' "'") (character "2") (' "'")) (: ":")) (case_statement "case '3':" (case "case") (char_literal "'3'" (' "'") (character "3") (' "'")) (: ":")) (case_statement "case '4':" (case "case") (char_literal "'4'" (' "'") (character "4") (' "'")) (: ":")) (case_statement "case '5':" (case "case") (char_literal "'5'" (' "'") (character "5") (' "'")) (: ":")) (case_statement "case '6':" (case "case") (char_literal "'6'" (' "'") (character "6") (' "'")) (: ":")) (case_statement "case '7':" (case "case") (char_literal "'7'" (' "'") (character "7") (' "'")) (: ":")) (case_statement "case '8':" (case "case") (char_literal "'8'" (' "'") (character "8") (' "'")) (: ":")) (case_statement "case '9':\n    uVar9 = FUN_001cdb80();\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d0dd0();\n    if (iVar13 != 0) {\n      FUN_001ce060(uVar9);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      iVar13 = 1;\n      FUN_001ce380();\n    }\n    goto joined_r0x001d0375;" (case "case") (char_literal "'9'" (' "'") (character "9") (' "'")) (: ":") (expression_statement "uVar9 = FUN_001cdb80();" (assignment_expression "uVar9 = FUN_001cdb80()" (identifier "uVar9") (= "=") (call_expression "FUN_001cdb80()" (identifier "FUN_001cdb80") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uStack_3c = 0;" (assignment_expression "uStack_3c = 0" (identifier "uStack_3c") (= "=") (number_literal "0")) (; ";")) (expression_statement "pvStack_40 = (void *)0x0;" (assignment_expression "pvStack_40 = (void *)0x0" (identifier "pvStack_40") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pvStack_44 = (void *)0x0;" (assignment_expression "pvStack_44 = (void *)0x0" (identifier "pvStack_44") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar13 = FUN_001d0dd0();" (assignment_expression "iVar13 = FUN_001d0dd0()" (identifier "iVar13") (= "=") (call_expression "FUN_001d0dd0()" (identifier "FUN_001d0dd0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar13 != 0) {\n      FUN_001ce060(uVar9);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      iVar13 = 1;\n      FUN_001ce380();\n    }" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_001ce060(uVar9);\n      if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }\n      iVar13 = 1;\n      FUN_001ce380();\n    }" ({ "{") (expression_statement "FUN_001ce060(uVar9);" (call_expression "FUN_001ce060(uVar9)" (identifier "FUN_001ce060") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")"))) (; ";")) (if_statement "if (*param_3 != param_3[1]) {\n        FUN_001ce230();\n      }" (if "if") (parenthesized_expression "(*param_3 != param_3[1])" (( "(") (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (!= "!=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n        FUN_001ce230();\n      }" ({ "{") (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" (identifier "iVar13") (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_001ce380();" (call_expression "FUN_001ce380()" (identifier "FUN_001ce380") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (goto_statement "goto joined_r0x001d0375;" (goto "goto") (statement_identifier "joined_r0x001d0375") (; ";"))) (case_statement "case 'G':\n    pcVar11 = pcVar7 + 1;\n    *param_2 = (int)pcVar11;\n    if (((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0) goto code_r0x001d01c5;\n    goto LAB_001cfd80;" (case "case") (char_literal "'G'" (' "'") (character "G") (' "'")) (: ":") (expression_statement "pcVar11 = pcVar7 + 1;" (assignment_expression "pcVar11 = pcVar7 + 1" (identifier "pcVar11") (= "=") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_2 = (int)pcVar11;" (assignment_expression "*param_2 = (int)pcVar11" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)pcVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar11"))) (; ";")) (if_statement "if (((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0) goto code_r0x001d01c5;" (if "if") (parenthesized_expression "(((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0)" (( "(") (binary_expression "((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0" (parenthesized_expression "((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4)" (( "(") (binary_expression "(&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4" (subscript_expression "(&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2]" (parenthesized_expression "(&DAT_002a3620)" (( "(") (pointer_expression "&DAT_002a3620" (& "&") (identifier "DAT_002a3620")) () ")")) ([ "[") (binary_expression "(uint)(byte)pcVar7[1] * 2" (cast_expression "(uint)(byte)pcVar7[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)pcVar7[1]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "pcVar7[1]" (identifier "pcVar7") ([ "[") (number_literal "1") (] "]")))) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x001d01c5;" (goto "goto") (statement_identifier "code_r0x001d01c5") (; ";"))) (goto_statement "goto LAB_001cfd80;" (goto "goto") (statement_identifier "LAB_001cfd80") (; ";"))) (case_statement "case 'I':\ncode_r0x001d01c5:\n    pcVar7 = pcVar11 + 1;\n    *param_2 = (int)pcVar7;\n    if (pcVar11[1] == '_') {\n      iVar13 = 0;\n      *param_2 = (int)(pcVar11 + 2);\n      pcVar7 = pcVar11 + 2;\n      do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);\n      cVar5 = pcVar11[1];\ncode_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;\n      *(undefined1 *)((int)&pvStack_44 + iVar13) = 0;\n      *param_2 = (int)(pcVar7 + 1);\n    }\n    else {\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }\n    sscanf((char *)&pvStack_44,"%x",&local_54);\n    sprintf((char *)&pvStack_44,"int%u_t",local_54);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    if ((char)pvStack_44 == '\0') goto code_r0x001d018e;\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;" (case "case") (char_literal "'I'" (' "'") (character "I") (' "'")) (: ":") (labeled_statement "code_r0x001d01c5:\n    pcVar7 = pcVar11 + 1;" (statement_identifier "code_r0x001d01c5") (: ":") (expression_statement "pcVar7 = pcVar11 + 1;" (assignment_expression "pcVar7 = pcVar11 + 1" (identifier "pcVar7") (= "=") (binary_expression "pcVar11 + 1" (identifier "pcVar11") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "*param_2 = (int)pcVar7;" (assignment_expression "*param_2 = (int)pcVar7" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)pcVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar7"))) (; ";")) (if_statement "if (pcVar11[1] == '_') {\n      iVar13 = 0;\n      *param_2 = (int)(pcVar11 + 2);\n      pcVar7 = pcVar11 + 2;\n      do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);\n      cVar5 = pcVar11[1];\ncode_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;\n      *(undefined1 *)((int)&pvStack_44 + iVar13) = 0;\n      *param_2 = (int)(pcVar7 + 1);\n    }\n    else {\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }" (if "if") (parenthesized_expression "(pcVar11[1] == '_')" (( "(") (binary_expression "pcVar11[1] == '_'" (subscript_expression "pcVar11[1]" (identifier "pcVar11") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")")) (compound_statement "{\n      iVar13 = 0;\n      *param_2 = (int)(pcVar11 + 2);\n      pcVar7 = pcVar11 + 2;\n      do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);\n      cVar5 = pcVar11[1];\ncode_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;\n      *(undefined1 *)((int)&pvStack_44 + iVar13) = 0;\n      *param_2 = (int)(pcVar7 + 1);\n    }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_2 = (int)(pcVar11 + 2);" (assignment_expression "*param_2 = (int)(pcVar11 + 2)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pcVar11 + 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar11 + 2)" (( "(") (binary_expression "pcVar11 + 2" (identifier "pcVar11") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "pcVar7 = pcVar11 + 2;" (assignment_expression "pcVar7 = pcVar11 + 2" (identifier "pcVar7") (= "=") (binary_expression "pcVar11 + 2" (identifier "pcVar11") (+ "+") (number_literal "2"))) (; ";")) (do_statement "do {\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      } while (iVar13 != 0x24);" (do "do") (compound_statement "{\n        pcVar11 = pcVar7;\n        cVar5 = *pcVar11;\n        pcVar7 = pcVar11;\n        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;\n        *(char *)((int)&pvStack_44 + iVar13) = cVar5;\n        pcVar7 = pcVar11 + 1;\n        iVar13 = iVar13 + 1;\n        *param_2 = (int)pcVar7;\n      }" ({ "{") (expression_statement "pcVar11 = pcVar7;" (assignment_expression "pcVar11 = pcVar7" (identifier "pcVar11") (= "=") (identifier "pcVar7")) (; ";")) (expression_statement "cVar5 = *pcVar11;" (assignment_expression "cVar5 = *pcVar11" (identifier "cVar5") (= "=") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11"))) (; ";")) (expression_statement "pcVar7 = pcVar11;" (assignment_expression "pcVar7 = pcVar11" (identifier "pcVar7") (= "=") (identifier "pcVar11")) (; ";")) (if_statement "if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;" (if "if") (parenthesized_expression "((cVar5 == '_') || (cVar5 == '\0'))" (( "(") (binary_expression "(cVar5 == '_') || (cVar5 == '\0')" (parenthesized_expression "(cVar5 == '_')" (( "(") (binary_expression "cVar5 == '_'" (identifier "cVar5") (== "==") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(cVar5 == '\0')" (( "(") (binary_expression "cVar5 == '\0'" (identifier "cVar5") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (goto_statement "goto code_r0x001d0200;" (goto "goto") (statement_identifier "code_r0x001d0200") (; ";"))) (expression_statement "*(char *)((int)&pvStack_44 + iVar13) = cVar5;" (assignment_expression "*(char *)((int)&pvStack_44 + iVar13) = cVar5" (pointer_expression "*(char *)((int)&pvStack_44 + iVar13)" (* "*") (cast_expression "(char *)((int)&pvStack_44 + iVar13)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pvStack_44 + iVar13)" (( "(") (binary_expression "(int)&pvStack_44 + iVar13" (cast_expression "(int)&pvStack_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pvStack_44" (& "&") (identifier "pvStack_44"))) (+ "+") (identifier "iVar13")) () ")")))) (= "=") (identifier "cVar5")) (; ";")) (expression_statement "pcVar7 = pcVar11 + 1;" (assignment_expression "pcVar7 = pcVar11 + 1" (identifier "pcVar7") (= "=") (binary_expression "pcVar11 + 1" (identifier "pcVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_2 = (int)pcVar7;" (assignment_expression "*param_2 = (int)pcVar7" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)pcVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar7"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != 0x24)" (( "(") (binary_expression "iVar13 != 0x24" (identifier "iVar13") (!= "!=") (number_literal "0x24")) () ")")) (; ";")) (expression_statement "cVar5 = pcVar11[1];" (assignment_expression "cVar5 = pcVar11[1]" (identifier "cVar5") (= "=") (subscript_expression "pcVar11[1]" (identifier "pcVar11") ([ "[") (number_literal "1") (] "]"))) (; ";")) (labeled_statement "code_r0x001d0200:\n      if (cVar5 != '_') goto LAB_001cfd80;" (statement_identifier "code_r0x001d0200") (: ":") (if_statement "if (cVar5 != '_') goto LAB_001cfd80;" (if "if") (parenthesized_expression "(cVar5 != '_')" (( "(") (binary_expression "cVar5 != '_'" (identifier "cVar5") (!= "!=") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")")) (goto_statement "goto LAB_001cfd80;" (goto "goto") (statement_identifier "LAB_001cfd80") (; ";")))) (expression_statement "*(undefined1 *)((int)&pvStack_44 + iVar13) = 0;" (assignment_expression "*(undefined1 *)((int)&pvStack_44 + iVar13) = 0" (pointer_expression "*(undefined1 *)((int)&pvStack_44 + iVar13)" (* "*") (cast_expression "(undefined1 *)((int)&pvStack_44 + iVar13)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pvStack_44 + iVar13)" (( "(") (binary_expression "(int)&pvStack_44 + iVar13" (cast_expression "(int)&pvStack_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pvStack_44" (& "&") (identifier "pvStack_44"))) (+ "+") (identifier "iVar13")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pcVar7 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar7 + 1)" (( "(") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }" (else "else") (compound_statement "{\n      strncpy((char *)&pvStack_44,pcVar7,2);\n      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;\n      sVar8 = strlen(pcVar7);\n      if (1 < sVar8) {\n        sVar8 = 2;\n      }\n      *param_2 = (int)(pcVar7 + sVar8);\n    }" ({ "{") (expression_statement "strncpy((char *)&pvStack_44,pcVar7,2);" (call_expression "strncpy((char *)&pvStack_44,pcVar7,2)" (identifier "strncpy") (argument_list "((char *)&pvStack_44,pcVar7,2)" (( "(") (cast_expression "(char *)&pvStack_44" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pvStack_44" (& "&") (identifier "pvStack_44"))) (, ",") (identifier "pcVar7") (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;" (assignment_expression "pvStack_44._0_3_ = (uint3)(ushort)pvStack_44" (field_expression "pvStack_44._0_3_" (identifier "pvStack_44") (. ".") (field_identifier "_0_3_")) (= "=") (cast_expression "(uint3)(ushort)pvStack_44" (( "(") (type_descriptor "uint3" (type_identifier "uint3")) () ")") (cast_expression "(ushort)pvStack_44" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "pvStack_44")))) (; ";")) (expression_statement "sVar8 = strlen(pcVar7);" (assignment_expression "sVar8 = strlen(pcVar7)" (identifier "sVar8") (= "=") (call_expression "strlen(pcVar7)" (identifier "strlen") (argument_list "(pcVar7)" (( "(") (identifier "pcVar7") () ")")))) (; ";")) (if_statement "if (1 < sVar8) {\n        sVar8 = 2;\n      }" (if "if") (parenthesized_expression "(1 < sVar8)" (( "(") (binary_expression "1 < sVar8" (number_literal "1") (< "<") (identifier "sVar8")) () ")")) (compound_statement "{\n        sVar8 = 2;\n      }" ({ "{") (expression_statement "sVar8 = 2;" (assignment_expression "sVar8 = 2" (identifier "sVar8") (= "=") (number_literal "2")) (; ";")) (} "}"))) (expression_statement "*param_2 = (int)(pcVar7 + sVar8);" (assignment_expression "*param_2 = (int)(pcVar7 + sVar8)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pcVar7 + sVar8)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar7 + sVar8)" (( "(") (binary_expression "pcVar7 + sVar8" (identifier "pcVar7") (+ "+") (identifier "sVar8")) () ")")))) (; ";")) (} "}")))) (expression_statement "sscanf((char *)&pvStack_44,"%x",&local_54);" (call_expression "sscanf((char *)&pvStack_44,"%x",&local_54)" (identifier "sscanf") (argument_list "((char *)&pvStack_44,"%x",&local_54)" (( "(") (cast_expression "(char *)&pvStack_44" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pvStack_44" (& "&") (identifier "pvStack_44"))) (, ",") (string_literal ""%x"" (" """) (string_content "%x") (" """)) (, ",") (pointer_expression "&local_54" (& "&") (identifier "local_54")) () ")"))) (; ";")) (expression_statement "sprintf((char *)&pvStack_44,"int%u_t",local_54);" (call_expression "sprintf((char *)&pvStack_44,"int%u_t",local_54)" (identifier "sprintf") (argument_list "((char *)&pvStack_44,"int%u_t",local_54)" (( "(") (cast_expression "(char *)&pvStack_44" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&pvStack_44" (& "&") (identifier "pvStack_44"))) (, ",") (string_literal ""int%u_t"" (" """) (string_content "int%u_t") (" """)) (, ",") (identifier "local_54") () ")"))) (; ";")) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" (if "if") (parenthesized_expression "(*param_3 != param_3[1])" (( "(") (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (!= "!=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n      FUN_001ce230();\n    }" ({ "{") (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((char)pvStack_44 == '\0') goto code_r0x001d018e;" (if "if") (parenthesized_expression "((char)pvStack_44 == '\0')" (( "(") (binary_expression "(char)pvStack_44 == '\0'" (cast_expression "(char)pvStack_44" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "pvStack_44")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x001d018e;" (goto "goto") (statement_identifier "code_r0x001d018e") (; ";"))) (expression_statement "iVar13 = 4;" (assignment_expression "iVar13 = 4" (identifier "iVar13") (= "=") (number_literal "4")) (; ";")) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" (identifier "iVar12") (= "=") (number_literal "4")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'b':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 5;\n    FUN_001ce230();\n    iVar12 = 5;\n    break;" (case "case") (char_literal "'b'" (' "'") (character "b") (' "'")) (: ":") (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pcVar7 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar7 + 1)" (( "(") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" (if "if") (parenthesized_expression "(*param_3 != param_3[1])" (( "(") (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (!= "!=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n      FUN_001ce230();\n    }" ({ "{") (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar13 = 5;" (assignment_expression "iVar13 = 5" (identifier "iVar13") (= "=") (number_literal "5")) (; ";")) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar12 = 5;" (assignment_expression "iVar12 = 5" (identifier "iVar12") (= "=") (number_literal "5")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'c':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;" (case "case") (char_literal "'c'" (' "'") (character "c") (' "'")) (: ":") (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pcVar7 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar7 + 1)" (( "(") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" (if "if") (parenthesized_expression "(*param_3 != param_3[1])" (( "(") (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (!= "!=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n      FUN_001ce230();\n    }" ({ "{") (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar13 = 6;" (assignment_expression "iVar13 = 6" (identifier "iVar13") (= "=") (number_literal "6")) (; ";")) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar12 = 6;" (assignment_expression "iVar12 = 6" (identifier "iVar12") (= "=") (number_literal "6")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'd':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;" (case "case") (char_literal "'d'" (' "'") (character "d") (' "'")) (: ":") (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pcVar7 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar7 + 1)" (( "(") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" (if "if") (parenthesized_expression "(*param_3 != param_3[1])" (( "(") (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (!= "!=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n      FUN_001ce230();\n    }" ({ "{") (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar13 = 7;" (assignment_expression "iVar13 = 7" (identifier "iVar13") (= "=") (number_literal "7")) (; ";")) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" (identifier "iVar12") (= "=") (number_literal "7")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'f':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;" (case "case") (char_literal "'f'" (' "'") (character "f") (' "'")) (: ":") (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pcVar7 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar7 + 1)" (( "(") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" (if "if") (parenthesized_expression "(*param_3 != param_3[1])" (( "(") (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (!= "!=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n      FUN_001ce230();\n    }" ({ "{") (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar13 = 7;" (assignment_expression "iVar13 = 7" (identifier "iVar13") (= "=") (number_literal "7")) (; ";")) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" (identifier "iVar12") (= "=") (number_literal "7")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'i':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;" (case "case") (char_literal "'i'" (' "'") (character "i") (' "'")) (: ":") (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pcVar7 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar7 + 1)" (( "(") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" (if "if") (parenthesized_expression "(*param_3 != param_3[1])" (( "(") (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (!= "!=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n      FUN_001ce230();\n    }" ({ "{") (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar13 = 4;" (assignment_expression "iVar13 = 4" (identifier "iVar13") (= "=") (number_literal "4")) (; ";")) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" (identifier "iVar12") (= "=") (number_literal "4")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'l':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;" (case "case") (char_literal "'l'" (' "'") (character "l") (' "'")) (: ":") (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pcVar7 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar7 + 1)" (( "(") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" (if "if") (parenthesized_expression "(*param_3 != param_3[1])" (( "(") (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (!= "!=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n      FUN_001ce230();\n    }" ({ "{") (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar13 = 4;" (assignment_expression "iVar13 = 4" (identifier "iVar13") (= "=") (number_literal "4")) (; ";")) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" (identifier "iVar12") (= "=") (number_literal "4")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'r':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 7;\n    FUN_001ce230();\n    iVar12 = 7;\n    break;" (case "case") (char_literal "'r'" (' "'") (character "r") (' "'")) (: ":") (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pcVar7 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar7 + 1)" (( "(") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" (if "if") (parenthesized_expression "(*param_3 != param_3[1])" (( "(") (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (!= "!=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n      FUN_001ce230();\n    }" ({ "{") (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar13 = 7;" (assignment_expression "iVar13 = 7" (identifier "iVar13") (= "=") (number_literal "7")) (; ";")) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" (identifier "iVar12") (= "=") (number_literal "7")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 's':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;" (case "case") (char_literal "'s'" (' "'") (character "s") (' "'")) (: ":") (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pcVar7 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar7 + 1)" (( "(") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" (if "if") (parenthesized_expression "(*param_3 != param_3[1])" (( "(") (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (!= "!=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n      FUN_001ce230();\n    }" ({ "{") (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar13 = 4;" (assignment_expression "iVar13 = 4" (identifier "iVar13") (= "=") (number_literal "4")) (; ";")) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" (identifier "iVar12") (= "=") (number_literal "4")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 't':\n    uStack_3c = 0;\n    pvStack_40 = (void *)0x0;\n    pvStack_44 = (void *)0x0;\n    iVar13 = FUN_001d1450(0,1,1);\n    FUN_001ce380();\njoined_r0x001d0375:\n    if (pvStack_44 != (void *)0x0) {\n      free(pvStack_44);\n    }\n    if (iVar13 != 0) {\ncode_r0x001d018e:\n      iVar13 = 4;\n      iVar12 = 4;\n      break;\n    }\nLAB_001cfd80:\n    if ((void *)*param_3 == (void *)0x0) {\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }\n    else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }\n    goto LAB_001cfdb8;" (case "case") (char_literal "'t'" (' "'") (character "t") (' "'")) (: ":") (expression_statement "uStack_3c = 0;" (assignment_expression "uStack_3c = 0" (identifier "uStack_3c") (= "=") (number_literal "0")) (; ";")) (expression_statement "pvStack_40 = (void *)0x0;" (assignment_expression "pvStack_40 = (void *)0x0" (identifier "pvStack_40") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pvStack_44 = (void *)0x0;" (assignment_expression "pvStack_44 = (void *)0x0" (identifier "pvStack_44") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar13 = FUN_001d1450(0,1,1);" (assignment_expression "iVar13 = FUN_001d1450(0,1,1)" (identifier "iVar13") (= "=") (call_expression "FUN_001d1450(0,1,1)" (identifier "FUN_001d1450") (argument_list "(0,1,1)" (( "(") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "FUN_001ce380();" (call_expression "FUN_001ce380()" (identifier "FUN_001ce380") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "joined_r0x001d0375:\n    if (pvStack_44 != (void *)0x0) {\n      free(pvStack_44);\n    }" (statement_identifier "joined_r0x001d0375") (: ":") (if_statement "if (pvStack_44 != (void *)0x0) {\n      free(pvStack_44);\n    }" (if "if") (parenthesized_expression "(pvStack_44 != (void *)0x0)" (( "(") (binary_expression "pvStack_44 != (void *)0x0" (identifier "pvStack_44") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      free(pvStack_44);\n    }" ({ "{") (expression_statement "free(pvStack_44);" (call_expression "free(pvStack_44)" (identifier "free") (argument_list "(pvStack_44)" (( "(") (identifier "pvStack_44") () ")"))) (; ";")) (} "}")))) (if_statement "if (iVar13 != 0) {\ncode_r0x001d018e:\n      iVar13 = 4;\n      iVar12 = 4;\n      break;\n    }" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x001d018e:\n      iVar13 = 4;\n      iVar12 = 4;\n      break;\n    }" ({ "{") (labeled_statement "code_r0x001d018e:\n      iVar13 = 4;" (statement_identifier "code_r0x001d018e") (: ":") (expression_statement "iVar13 = 4;" (assignment_expression "iVar13 = 4" (identifier "iVar13") (= "=") (number_literal "4")) (; ";"))) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" (identifier "iVar12") (= "=") (number_literal "4")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (labeled_statement "LAB_001cfd80:\n    if ((void *)*param_3 == (void *)0x0) {\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }\n    else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }" (statement_identifier "LAB_001cfd80") (: ":") (if_statement "if ((void *)*param_3 == (void *)0x0) {\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }\n    else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }" (if "if") (parenthesized_expression "((void *)*param_3 == (void *)0x0)" (( "(") (binary_expression "(void *)*param_3 == (void *)0x0" (cast_expression "(void *)*param_3" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar13 = 0;\n      pcVar7 = local_50;\n    }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar7 = local_50;" (assignment_expression "pcVar7 = local_50" (identifier "pcVar7") (= "=") (identifier "local_50")) (; ";")) (} "}")) (else_clause "else {\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }" (else "else") (compound_statement "{\n      iVar13 = 0;\n      free((void *)*param_3);\n      param_3[1] = 0;\n      param_3[2] = 0;\n      *param_3 = 0;\n      pcVar7 = local_50;\n    }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "free((void *)*param_3);" (call_expression "free((void *)*param_3)" (identifier "free") (argument_list "((void *)*param_3)" (( "(") (cast_expression "(void *)*param_3" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) () ")"))) (; ";")) (expression_statement "param_3[1] = 0;" (assignment_expression "param_3[1] = 0" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_3[2] = 0;" (assignment_expression "param_3[2] = 0" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar7 = local_50;" (assignment_expression "pcVar7 = local_50" (identifier "pcVar7") (= "=") (identifier "local_50")) (; ";")) (} "}"))))) (goto_statement "goto LAB_001cfdb8;" (goto "goto") (statement_identifier "LAB_001cfdb8") (; ";"))) (case_statement "case 'v':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;\n    break;" (case "case") (char_literal "'v'" (' "'") (character "v") (' "'")) (: ":") (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pcVar7 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar7 + 1)" (( "(") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" (if "if") (parenthesized_expression "(*param_3 != param_3[1])" (( "(") (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (!= "!=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n      FUN_001ce230();\n    }" ({ "{") (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar13 = 4;" (assignment_expression "iVar13 = 4" (identifier "iVar13") (= "=") (number_literal "4")) (; ";")) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" (identifier "iVar12") (= "=") (number_literal "4")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'w':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 6;\n    FUN_001ce230();\n    iVar12 = 6;\n    break;" (case "case") (char_literal "'w'" (' "'") (character "w") (' "'")) (: ":") (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pcVar7 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar7 + 1)" (( "(") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" (if "if") (parenthesized_expression "(*param_3 != param_3[1])" (( "(") (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (!= "!=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n      FUN_001ce230();\n    }" ({ "{") (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar13 = 6;" (assignment_expression "iVar13 = 6" (identifier "iVar13") (= "=") (number_literal "6")) (; ";")) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar12 = 6;" (assignment_expression "iVar12 = 6" (identifier "iVar12") (= "=") (number_literal "6")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'x':\n    *param_2 = (int)(pcVar7 + 1);\n    if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }\n    iVar13 = 4;\n    FUN_001ce230();\n    iVar12 = 4;" (case "case") (char_literal "'x'" (' "'") (character "x") (' "'")) (: ":") (expression_statement "*param_2 = (int)(pcVar7 + 1);" (assignment_expression "*param_2 = (int)(pcVar7 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pcVar7 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar7 + 1)" (( "(") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (*param_3 != param_3[1]) {\n      FUN_001ce230();\n    }" (if "if") (parenthesized_expression "(*param_3 != param_3[1])" (( "(") (binary_expression "*param_3 != param_3[1]" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (!= "!=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n      FUN_001ce230();\n    }" ({ "{") (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar13 = 4;" (assignment_expression "iVar13 = 4" (identifier "iVar13") (= "=") (number_literal "4")) (; ";")) (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" (identifier "iVar12") (= "=") (number_literal "4")) (; ";"))) (} "}"))) (if_statement "if (local_70 != 0) {\n    iVar12 = local_70;\n  }" (if "if") (parenthesized_expression "(local_70 != 0)" (( "(") (binary_expression "local_70 != 0" (identifier "local_70") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar12 = local_70;\n  }" ({ "{") (expression_statement "iVar12 = local_70;" (assignment_expression "iVar12 = local_70" (identifier "iVar12") (= "=") (identifier "local_70")) (; ";")) (} "}"))) (labeled_statement "code_r0x001cfebc:\n  local_70 = iVar12;" (statement_identifier "code_r0x001cfebc") (: ":") (expression_statement "local_70 = iVar12;" (assignment_expression "local_70 = iVar12" (identifier "local_70") (= "=") (identifier "iVar12")) (; ";"))) (expression_statement "pcVar7 = local_4c;" (assignment_expression "pcVar7 = local_4c" (identifier "pcVar7") (= "=") (identifier "local_4c")) (; ";")) (if_statement "if (local_50 != local_4c) {\n    FUN_001ce230();\n    FUN_001ce380();\n    pcVar7 = local_50;\n  }" (if "if") (parenthesized_expression "(local_50 != local_4c)" (( "(") (binary_expression "local_50 != local_4c" (identifier "local_50") (!= "!=") (identifier "local_4c")) () ")")) (compound_statement "{\n    FUN_001ce230();\n    FUN_001ce380();\n    pcVar7 = local_50;\n  }" ({ "{") (expression_statement "FUN_001ce230();" (call_expression "FUN_001ce230()" (identifier "FUN_001ce230") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_001ce380();" (call_expression "FUN_001ce380()" (identifier "FUN_001ce380") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar7 = local_50;" (assignment_expression "pcVar7 = local_50" (identifier "pcVar7") (= "=") (identifier "local_50")) (; ";")) (} "}"))) (labeled_statement "LAB_001cfdb8:\n  if (pcVar7 != (char *)0x0) {\n    free(pcVar7);\n  }" (statement_identifier "LAB_001cfdb8") (: ":") (if_statement "if (pcVar7 != (char *)0x0) {\n    free(pcVar7);\n  }" (if "if") (parenthesized_expression "(pcVar7 != (char *)0x0)" (( "(") (binary_expression "pcVar7 != (char *)0x0" (identifier "pcVar7") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    free(pcVar7);\n  }" ({ "{") (expression_statement "free(pcVar7);" (call_expression "free(pcVar7)" (identifier "free") (argument_list "(pcVar7)" (( "(") (identifier "pcVar7") () ")"))) (; ";")) (} "}")))) (if_statement "if (bVar4) {\n    *(int *)(param_1 + 0x5c) = *(int *)(param_1 + 0x5c) + -1;\n  }" (if "if") (parenthesized_expression "(bVar4)" (( "(") (identifier "bVar4") () ")")) (compound_statement "{\n    *(int *)(param_1 + 0x5c) = *(int *)(param_1 + 0x5c) + -1;\n  }" ({ "{") (expression_statement "*(int *)(param_1 + 0x5c) = *(int *)(param_1 + 0x5c) + -1;" (assignment_expression "*(int *)(param_1 + 0x5c) = *(int *)(param_1 + 0x5c) + -1" (pointer_expression "*(int *)(param_1 + 0x5c)" (* "*") (cast_expression "(int *)(param_1 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x5c) + -1" (pointer_expression "*(int *)(param_1 + 0x5c)" (* "*") (cast_expression "(int *)(param_1 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (if_statement "if ((iVar13 != 0) && (iVar13 = local_70, local_70 == 0)) {\n    iVar13 = 4;\n  }" (if "if") (parenthesized_expression "((iVar13 != 0) && (iVar13 = local_70, local_70 == 0))" (( "(") (binary_expression "(iVar13 != 0) && (iVar13 = local_70, local_70 == 0)" (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar13 = local_70, local_70 == 0)" (( "(") (comma_expression "iVar13 = local_70, local_70 == 0" (assignment_expression "iVar13 = local_70" (identifier "iVar13") (= "=") (identifier "local_70")) (, ",") (binary_expression "local_70 == 0" (identifier "local_70") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    iVar13 = 4;\n  }" ({ "{") (expression_statement "iVar13 = 4;" (assignment_expression "iVar13 = 4" (identifier "iVar13") (= "=") (number_literal "4")) (; ";")) (} "}"))) (return_statement "return iVar13;" (return "return") (identifier "iVar13") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

int __regparm3 function_1(type_1 *work,char **mangled,type_2 *result)

{
  int *var_25;
  type_3 var_18;
  bool bVar3;
  bool bVar4;
  char var_14;
  int var_4;
  char *var_2;
  size_t var_34;
  int *var_24;
  char *var_12;
  int iVar11;
  int var_1;
  int var_21;
  int var_23;
  int var_5;
  char *remembered_type;
  type_4 dec;
  type_2 decl;
  type_2 temp;
  
  var_1 = 1;
  result->e = (char *)0x0;
  decl.e = (char *)0x0;
  decl.p = (char *)0x0;
  decl.b = (char *)0x0;
  result->p = (char *)0x0;
  result->b = (char *)0x0;
  var_23 = 0;
  bVar4 = false;
  iVar11 = var_23;
LAB_001cf820:
  var_23 = iVar11;
  var_2 = decl.b;
  bVar3 = false;
_L731:
  if ((bVar3) || (var_1 == 0)) {
    if (var_1 == 0) goto _L589;
    var_2 = *mangled;
    iVar11 = var_23;
    switch(*var_2) {
    case 'B':
      *mangled = var_2 + 1;
      var_4 = var_3(mangled,&var_5);
      if (((var_4 == 0) || (var_5 < 0)) || (work->numb <= var_5)) goto _L589;
      var_2 = work->btypevec[var_5];
      break;
    default:
      dec = 0;
      goto LAB_001d0082;
    case 'K':
    case 'Q':
      var_1 = var_6(work,mangled,result,0,1);
      if (var_1 == 0) goto _L589;
      goto LAB_001cfebc;
    case 'X':
    case 'Y':
      *mangled = var_2 + 1;
      var_4 = var_7(mangled);
      if ((var_4 == -1) ||
         (((work->tmpl_argvec != (char **)0x0 && (work->ntmpl_args <= var_4)) ||
          (var_1 = var_7(mangled), var_1 == -1)))) goto _L589;
      if (work->tmpl_argvec == (char **)0x0) {
        var_1 = 1;
        var_8(result,var_4);
        goto LAB_001cfebc;
      }
      var_2 = work->tmpl_argvec[var_4];
      var_1 = 1;
    }
    if ((var_2 != (char *)0x0) && (*var_2 != '\0')) {
      var_9(result,var_2);
    }
    goto LAB_001cfebc;
  }
  var_12 = *mangled;
  bVar3 = true;
  var_4 = (int)*var_12;
  iVar11 = var_23;
  switch(var_4 - 0x41U & 0xff) {
  case 0:
    goto _L530;
  default:
    goto _L731;
  case 2:
  case 0x15:
  case 0x34:
    if ((work->options & 2) != 0) {
      if (decl.b != decl.p) {
        var_10(&decl," ");
        var_12 = *mangled;
        var_4 = (int)*var_12;
      }
      var_2 = var_11(var_4);
      if ((var_2 != (char *)0x0) && (*var_2 != '\0')) {
        var_10(&decl,var_2);
        var_12 = *mangled;
      }
    }
    *mangled = var_12 + 1;
    goto LAB_001cf820;
  case 5:
    *mangled = var_12 + 1;
    if ((var_2 != decl.p) && ((*var_2 - 0x26U & 0xfb) == 0)) {
      var_10(&decl,"(");
      var_9(&decl,")");
    }
    var_4 = var_13(work,mangled,&decl);
    if (var_4 != 0) {
      var_14 = **mangled;
      if ((var_14 == '_') || (var_14 == '\0')) {
        if (var_14 == '_') {
          *mangled = *mangled + 1;
        }
        goto LAB_001cf820;
      }
    }
    break;
  case 6:
    *mangled = var_12 + 1;
    goto LAB_001cf820;
  case 0xc:
    *mangled = var_12 + 1;
    var_9(&decl,")");
    if (**mangled == 'Q') {
      if (((type_3)_sch_istable[0x51] & 4) != 0) goto LAB_001cfb41;
LAB_001cfa0d:
      var_1 = var_6(work,mangled,&decl,0,0);
      if (var_1 == 0) goto LAB_001cf820;
    }
    else {
      var_2 = "::";
      if ((work->options & 4) != 0) {
        var_2 = ".";
      }
      var_10(&decl,var_2);
      var_18 = **mangled;
      if ((_sch_istable[var_18] & 4) != 0) {
LAB_001cfb41:
        var_4 = var_15(mangled);
        var_5 = var_4;
        if (var_4 != -1) {
          var_2 = *mangled;
          var_34 = var_16(var_2);
          if (var_4 <= (int)var_34) {
            if (var_4 != 0) {
              var_17(&decl,var_2,var_4);
              var_2 = *mangled;
              var_4 = var_5;
            }
            *mangled = var_2 + var_4;
            goto LAB_001cfb87;
          }
        }
        break;
      }
      if ((type_3)(var_18 + 0xa8) < 2) {
        function_1(work,mangled,&temp);
        var_2 = temp.p;
        if (temp.b != temp.p) {
          var_17(&decl,temp.b,(int)temp.p - (int)temp.b);
          var_2 = temp.b;
        }
        if (var_2 != (char *)0x0) {
          var_19(var_2);
        }
      }
      else {
        if (var_18 != 0x74) {
          if (var_18 == 0x51) goto LAB_001cfa0d;
          break;
        }
        temp.e = (char *)0x0;
        temp.p = (char *)0x0;
        temp.b = (char *)0x0;
        var_1 = var_20(work,mangled,&temp,(type_2 *)0x0,1,1);
        if (var_1 == 0) {
          if (temp.b != (char *)0x0) {
            var_19(temp.b);
          }
          goto LAB_001cf820;
        }
        if ((int)temp.p - (int)temp.b != 0) {
          var_17(&decl,temp.b,(int)temp.p - (int)temp.b);
        }
        if (temp.b != (char *)0x0) {
          var_19(temp.b);
        }
      }
    }
LAB_001cfb87:
    var_10(&decl,"(");
    var_2 = *mangled;
    var_14 = *var_2;
    if (var_14 == 'V') {
      var_21 = 2;
LAB_001d0040:
      var_12 = var_2 + 1;
      *mangled = var_12;
      var_14 = var_2[1];
    }
    else {
      if (var_14 == 'u') {
        var_21 = 4;
        goto LAB_001d0040;
      }
      if (var_14 == 'C') {
        var_21 = 1;
        goto LAB_001d0040;
      }
      var_21 = 0;
      var_12 = var_2;
    }
    if (var_14 == 'F') {
      *mangled = var_12 + 1;
      var_4 = var_13(work,mangled,&decl);
      if ((var_4 != 0) && (**mangled == '_')) {
        *mangled = *mangled + 1;
        if (((work->options & 2) != 0) && (var_21 != 0)) {
          if (decl.b != decl.p) {
            var_9(&decl," ");
          }
          var_2 = var_22(var_21);
          if ((var_2 != (char *)0x0) && (*var_2 != '\0')) {
            var_9(&decl,var_2);
          }
        }
        goto LAB_001cf820;
      }
    }
    break;
  case 0xe:
    *mangled = var_12 + 1;
    var_10(&decl,"&&");
    iVar11 = 3;
    if (var_23 != 0) {
      iVar11 = var_23;
    }
    goto LAB_001cf820;
  case 0xf:
  case 0x2f:
    *mangled = var_12 + 1;
    if ((work->options & 4) == 0) {
      var_10(&decl,"*");
    }
    iVar11 = 1;
    if (var_23 != 0) {
      iVar11 = var_23;
    }
    goto LAB_001cf820;
  case 0x11:
    *mangled = var_12 + 1;
    var_10(&decl,"&");
    iVar11 = 2;
    if (var_23 != 0) {
      iVar11 = var_23;
    }
    goto LAB_001cf820;
  case 0x13:
    *mangled = var_12 + 1;
    var_4 = var_3(mangled,&var_5);
    if (((var_4 == 0) || (var_5 < 0)) || (work->ntypes <= var_5)) break;
    if (work->nproctypes < 1) goto LAB_001cfe64;
    var_24 = work->proctypevec;
    var_25 = var_24 + work->nproctypes;
    do {
      if (var_5 == *var_24) {
        var_1 = 0;
      }
      var_24 = var_24 + 1;
    } while (var_25 != var_24);
    if (var_1 != 0) {
LAB_001cfe64:
      var_26(work,var_5);
      bVar4 = true;
      mangled = &remembered_type;
      remembered_type = work->typevec[var_5];
    }
    goto LAB_001cf820;
  }
  var_1 = 0;
  goto LAB_001cf820;
LAB_001d0082:
  do {
    var_14 = *var_2;
    switch(var_14 + -0x43) {
    case '\0':
    case '\x13':
    case '2':
      if ((work->options & 2) != 0) {
        if (result->b != result->p) {
          var_10(result," ");
          var_2 = *mangled;
          var_14 = *var_2;
        }
        var_12 = var_11((int)var_14);
        if ((var_12 != (char *)0x0) && (*var_12 != '\0')) {
          var_10(result,var_12);
          var_2 = *mangled;
        }
      }
      var_2 = var_2 + 1;
      *mangled = var_2;
      break;
    default:
      goto code_r0x001d0176;
    case '\a':
      *mangled = var_2 + 1;
      if (result->b != result->p) {
        var_9(result," ");
      }
      var_9(result,"__complex");
      var_2 = *mangled;
      break;
    case '\x10':
      *mangled = var_2 + 1;
      if (result->b != result->p) {
        var_9(result," ");
      }
      var_9(result,"signed");
      var_2 = *mangled;
      break;
    case '\x12':
      *mangled = var_2 + 1;
      if (result->b != result->p) {
        var_9(result," ");
      }
      var_9(result,"unsigned");
      var_2 = *mangled;
    }
  } while( true );
_L530:
  *mangled = var_12 + 1;
  if ((var_2 != decl.p) && ((*var_2 - 0x26U & 0xfb) == 0)) {
    var_10(&decl,"(");
    var_9(&decl,")");
  }
  var_9(&decl,"[");
  var_2 = *mangled;
  if (*var_2 != '_') {
    var_1 = var_27(work,mangled,&decl,tk_integral);
    var_2 = *mangled;
    if (*var_2 != '_') goto LAB_001cfa7a;
  }
  *mangled = var_2 + 1;
LAB_001cfa7a:
  var_9(&decl,"]");
  goto LAB_001cf820;
code_r0x001d0176:
  var_12 = var_2;
  switch(var_14) {
  case '\0':
  case '_':
    goto _L656;
  default:
    goto _L589;
  case '0':
  case '1':
  case '2':
  case '3':
  case '4':
  case '5':
  case '6':
  case '7':
  case '8':
  case '9':
    iVar11 = var_28(work);
    temp.e = (char *)0x0;
    temp.p = (char *)0x0;
    temp.b = (char *)0x0;
    var_1 = var_29(work,mangled,&temp);
    if (var_1 != 0) {
      var_1 = (int)temp.p - (int)temp.b;
      if (temp.b == temp.p) {
        var_1 = 0;
      }
      var_30((type_1 *)&work->btypevec,temp.b,var_1,iVar11);
      if (result->b != result->p) {
        var_9(result," ");
      }
      var_1 = 1;
      var_31(result,&temp,(type_2 *)temp.p);
    }
    goto joined_r0x001d0375;
  case 'G':
    var_12 = var_2 + 1;
    *mangled = var_12;
    if ((_sch_istable[(type_3)var_2[1]] & 4) != 0) goto _L586;
    goto _L589;
  case 'I':
_L586:
    var_2 = var_12 + 1;
    *mangled = var_2;
    if (var_12[1] == '_') {
      var_1 = 0;
      *mangled = var_12 + 2;
      var_2 = var_12 + 2;
      do {
        var_12 = var_2;
        var_14 = *var_12;
        var_2 = var_12;
        if ((var_14 == '_') || (var_14 == '\0')) goto LAB_001d0200;
        *(char *)((int)&temp.b + var_1) = var_14;
        var_2 = var_12 + 1;
        var_1 = var_1 + 1;
        *mangled = var_2;
      } while (var_1 != 0x24);
      var_14 = var_12[1];
LAB_001d0200:
      if (var_14 != '_') goto _L589;
      *(type_5 *)((int)&temp.b + var_1) = 0;
      *mangled = var_2 + 1;
    }
    else {
      var_32((char *)&temp,var_2,2);
      temp.b._0_3_ = var_33(0,(type_6)temp.b);
      var_34 = var_16(var_2);
      if (1 < var_34) {
        var_34 = 2;
      }
      *mangled = var_2 + var_34;
    }
    var_35((char *)&temp,"%x",&dec);
    var_36((char *)&temp,"int%u_t",dec);
    if (result->b != result->p) {
      var_9(result," ");
    }
    if ((char)temp.b == '\0') goto _L656;
    var_1 = 4;
    var_9(result,(char *)&temp);
    iVar11 = 4;
    break;
  case 'b':
    *mangled = var_2 + 1;
    if (result->b != result->p) {
      var_9(result," ");
    }
    var_1 = 5;
    var_9(result,"bool");
    iVar11 = 5;
    break;
  case 'c':
    *mangled = var_2 + 1;
    if (result->b != result->p) {
      var_9(result," ");
    }
    var_1 = 6;
    var_9(result,"char");
    iVar11 = 6;
    break;
  case 'd':
    *mangled = var_2 + 1;
    if (result->b != result->p) {
      var_9(result," ");
    }
    var_1 = 7;
    var_9(result,"double");
    iVar11 = 7;
    break;
  case 'f':
    *mangled = var_2 + 1;
    if (result->b != result->p) {
      var_9(result," ");
    }
    var_1 = 7;
    var_9(result,"float");
    iVar11 = 7;
    break;
  case 'i':
    *mangled = var_2 + 1;
    if (result->b != result->p) {
      var_9(result," ");
    }
    var_1 = 4;
    var_9(result,"int");
    iVar11 = 4;
    break;
  case 'l':
    *mangled = var_2 + 1;
    if (result->b != result->p) {
      var_9(result," ");
    }
    var_1 = 4;
    var_9(result,"long");
    iVar11 = 4;
    break;
  case 'r':
    *mangled = var_2 + 1;
    if (result->b != result->p) {
      var_9(result," ");
    }
    var_1 = 7;
    var_9(result,"long double");
    iVar11 = 7;
    break;
  case 's':
    *mangled = var_2 + 1;
    if (result->b != result->p) {
      var_9(result," ");
    }
    var_1 = 4;
    var_9(result,"short");
    iVar11 = 4;
    break;
  case 't':
    temp.e = (char *)0x0;
    temp.p = (char *)0x0;
    temp.b = (char *)0x0;
    var_1 = var_20(work,mangled,&temp,(type_2 *)0x0,1,1);
    var_31(result,&temp,(type_2 *)temp.p);
joined_r0x001d0375:
    if (temp.b != (char *)0x0) {
      var_19(temp.b);
    }
    if (var_1 != 0) {
_L656:
      var_1 = 4;
      iVar11 = 4;
      break;
    }
_L589:
    if (result->b == (char *)0x0) {
      var_1 = 0;
      var_2 = decl.b;
    }
    else {
      var_1 = 0;
      var_19(result->b);
      result->p = (char *)0x0;
      result->e = (char *)0x0;
      result->b = (char *)0x0;
      var_2 = decl.b;
    }
    goto LAB_001cfdb8;
  case 'v':
    *mangled = var_2 + 1;
    if (result->b != result->p) {
      var_9(result," ");
    }
    var_1 = 4;
    var_9(result,"void");
    iVar11 = 4;
    break;
  case 'w':
    *mangled = var_2 + 1;
    if (result->b != result->p) {
      var_9(result," ");
    }
    var_1 = 6;
    var_9(result,"wchar_t");
    iVar11 = 6;
    break;
  case 'x':
    *mangled = var_2 + 1;
    if (result->b != result->p) {
      var_9(result," ");
    }
    var_1 = 4;
    var_9(result,"long long");
    iVar11 = 4;
  }
  if (var_23 != 0) {
    iVar11 = var_23;
  }
LAB_001cfebc:
  var_23 = iVar11;
  var_2 = decl.p;
  if (decl.b != decl.p) {
    var_9(result," ");
    var_31(result,&decl,(type_2 *)decl.p);
    var_2 = decl.b;
  }
LAB_001cfdb8:
  if (var_2 != (char *)0x0) {
    var_19(var_2);
  }
  if (bVar4) {
    work->nproctypes = work->nproctypes + -1;
  }
  if ((var_1 != 0) && (var_1 = var_23, var_23 == 0)) {
    var_1 = 4;
  }
  return var_1;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

int __regparm3 MASKED(byte *param_1,int *param_2,int *param_3)

{
  int *piVar1;
  byte bVar2;
  bool bVar3;
  bool bVar4;
  char cVar5;
  int iVar6;
  char *pcVar7;
  size_t sVar8;
  undefined4 uVar9;
  int *piVar10;
  char *pcVar11;
  int iVar12;
  void *__ptr;
  int iVar13;
  undefined1 *puVar14;
  int local_78;
  int local_70;
  int iStack_5c;
  int iStack_58;
  undefined4 local_54;
  char *local_50;
  char *local_4c;
  undefined4 local_48;
  void *pvStack_44;
  void *pvStack_40;
  undefined4 uStack_3c;
  undefined4 uStack_14;
  
  iVar13 = 1;
  uStack_14 = 0x1cf7c0;
  param_3[2] = 0;
  local_48 = 0;
  local_4c = (char *)0x0;
  local_50 = (char *)0x0;
  param_3[1] = 0;
  *param_3 = 0;
  local_70 = 0;
  bVar4 = false;
  iVar12 = local_70;
code_r0x001cf820:
  local_70 = iVar12;
  pcVar7 = local_50;
  bVar3 = false;
LAB_001cf82d:
  if ((bVar3) || (iVar13 == 0)) {
    if (iVar13 == 0) goto LAB_001cfd80;
    pcVar7 = (char *)*param_2;
    iVar12 = local_70;
    switch(*pcVar7) {
    case 'B':
      *param_2 = (int)(pcVar7 + 1);
      iVar6 = FUN_001cd940();
      if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x14) <= iStack_5c))
      goto LAB_001cfd80;
      pcVar7 = *(char **)(*(int *)(param_1 + 0xc) + iStack_5c * 4);
      break;
    default:
      local_54 = 0;
      goto code_r0x001d0082;
    case 'K':
    case 'Q':
      iVar13 = FUN_001d1b50(0,1);
      if (iVar13 == 0) goto LAB_001cfd80;
      goto code_r0x001cfebc;
    case 'X':
    case 'Y':
      *param_2 = (int)(pcVar7 + 1);
      iVar13 = FUN_001cde90();
      if ((iVar13 == -1) ||
         (((*(int *)(param_1 + 0x40) != 0 && (*(int *)(param_1 + 0x44) <= iVar13)) ||
          (iVar6 = FUN_001cde90(), iVar6 == -1)))) goto LAB_001cfd80;
      if (*(int *)(param_1 + 0x40) == 0) {
        iVar13 = 1;
        FUN_001ce280();
        goto code_r0x001cfebc;
      }
      pcVar7 = *(char **)(*(int *)(param_1 + 0x40) + iVar13 * 4);
      iVar13 = 1;
    }
    if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {
      FUN_001ce230();
    }
    goto code_r0x001cfebc;
  }
  puVar14 = (undefined1 *)*param_2;
  bVar3 = true;
  iVar12 = local_70;
  switch(*puVar14) {
  case 0x41:
    goto code_r0x001cfa38;
  default:
    goto LAB_001cf82d;
  case 0x43:
  case 0x56:
  case 0x75:
    if ((*param_1 & 2) != 0) {
      if (local_50 != local_4c) {
        FUN_001ce1f0();
        puVar14 = (undefined1 *)*param_2;
      }
      pcVar7 = (char *)FUN_001cdd80();
      if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {
        FUN_001ce1f0();
        puVar14 = (undefined1 *)*param_2;
      }
    }
    *param_2 = (int)(puVar14 + 1);
    goto code_r0x001cf820;
  case 0x46:
    *param_2 = (int)(puVar14 + 1);
    if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {
      FUN_001ce1f0();
      FUN_001ce230();
    }
    iVar6 = FUN_001d24a0();
    if (iVar6 != 0) {
      cVar5 = *(char *)*param_2;
      if ((cVar5 == '_') || (cVar5 == '\0')) {
        if (cVar5 == '_') {
          *param_2 = (int)((char *)*param_2 + 1);
        }
        goto code_r0x001cf820;
      }
    }
    break;
  case 0x47:
    *param_2 = (int)(puVar14 + 1);
    goto code_r0x001cf820;
  case 0x4d:
    *param_2 = (int)(puVar14 + 1);
    FUN_001ce230();
    if (*(char *)*param_2 == 'Q') {
      if ((UNK_002a36c2 & 4) != 0) goto code_r0x001cfb41;
code_r0x001cfa0d:
      iVar13 = FUN_001d1b50(0,0);
      if (iVar13 == 0) goto code_r0x001cf820;
    }
    else {
      FUN_001ce1f0();
      bVar2 = *(byte *)*param_2;
      if (((&DAT_002a3620)[(uint)bVar2 * 2] & 4) != 0) {
code_r0x001cfb41:
        iStack_5c = FUN_001cdde0();
        if (iStack_5c != -1) {
          pcVar7 = (char *)*param_2;
          sVar8 = strlen(pcVar7);
          if (iStack_5c <= (int)sVar8) {
            if (iStack_5c != 0) {
              FUN_001ce190();
              pcVar7 = (char *)*param_2;
            }
            *param_2 = (int)(pcVar7 + iStack_5c);
            goto code_r0x001cfb87;
          }
        }
        break;
      }
      if ((byte)(bVar2 + 0xa8) < 2) {
        MASKED();
        __ptr = pvStack_40;
        if (pvStack_44 != pvStack_40) {
          FUN_001ce190();
          __ptr = pvStack_44;
        }
        if (__ptr != (void *)0x0) {
          free(__ptr);
        }
      }
      else {
        if (bVar2 != 0x74) {
          if (bVar2 == 0x51) goto code_r0x001cfa0d;
          break;
        }
        uStack_3c = 0;
        pvStack_40 = (void *)0x0;
        pvStack_44 = (void *)0x0;
        iVar13 = FUN_001d1450(0,1,1);
        if (iVar13 == 0) {
          if (pvStack_44 != (void *)0x0) {
            free(pvStack_44);
          }
          goto code_r0x001cf820;
        }
        if (pvStack_40 != pvStack_44) {
          FUN_001ce190();
        }
        if (pvStack_44 != (void *)0x0) {
          free(pvStack_44);
        }
      }
    }
code_r0x001cfb87:
    FUN_001ce1f0();
    pcVar7 = (char *)*param_2;
    cVar5 = *pcVar7;
    if (cVar5 == 'V') {
      local_78 = 2;
code_r0x001d0040:
      pcVar11 = pcVar7 + 1;
      *param_2 = (int)pcVar11;
      cVar5 = pcVar7[1];
    }
    else {
      if (cVar5 == 'u') {
        local_78 = 4;
        goto code_r0x001d0040;
      }
      if (cVar5 == 'C') {
        local_78 = 1;
        goto code_r0x001d0040;
      }
      local_78 = 0;
      pcVar11 = pcVar7;
    }
    if (cVar5 == 'F') {
      *param_2 = (int)(pcVar11 + 1);
      iVar6 = FUN_001d24a0();
      if ((iVar6 != 0) && (*(char *)*param_2 == '_')) {
        *param_2 = (int)((char *)*param_2 + 1);
        if (((*param_1 & 2) != 0) && (local_78 != 0)) {
          if (local_50 != local_4c) {
            FUN_001ce230();
          }
          pcVar7 = (char *)FUN_001cdcd0();
          if ((pcVar7 != (char *)0x0) && (*pcVar7 != '\0')) {
            FUN_001ce230();
          }
        }
        goto code_r0x001cf820;
      }
    }
    break;
  case 0x4f:
    *param_2 = (int)(puVar14 + 1);
    FUN_001ce1f0();
    iVar12 = 3;
    if (local_70 != 0) {
      iVar12 = local_70;
    }
    goto code_r0x001cf820;
  case 0x50:
  case 0x70:
    *param_2 = (int)(puVar14 + 1);
    if ((*param_1 & 4) == 0) {
      FUN_001ce1f0();
    }
    iVar12 = 1;
    if (local_70 != 0) {
      iVar12 = local_70;
    }
    goto code_r0x001cf820;
  case 0x52:
    *param_2 = (int)(puVar14 + 1);
    FUN_001ce1f0();
    iVar12 = 2;
    if (local_70 != 0) {
      iVar12 = local_70;
    }
    goto code_r0x001cf820;
  case 0x54:
    *param_2 = (int)(puVar14 + 1);
    iVar6 = FUN_001cd940();
    if (((iVar6 == 0) || (iStack_5c < 0)) || (*(int *)(param_1 + 0x20) <= iStack_5c)) break;
    if (*(int *)(param_1 + 0x5c) < 1) goto code_r0x001cfe64;
    piVar10 = *(int **)(param_1 + 0x54);
    piVar1 = piVar10 + *(int *)(param_1 + 0x5c);
    do {
      if (iStack_5c == *piVar10) {
        iVar13 = 0;
      }
      piVar10 = piVar10 + 1;
    } while (piVar1 != piVar10);
    if (iVar13 != 0) {
code_r0x001cfe64:
      FUN_001cdac0();
      bVar4 = true;
      param_2 = &iStack_58;
      iStack_58 = *(int *)(*(int *)(param_1 + 4) + iStack_5c * 4);
    }
    goto code_r0x001cf820;
  }
  iVar13 = 0;
  goto code_r0x001cf820;
code_r0x001d0082:
  do {
    switch(*pcVar7 + -0x43) {
    case '\0':
    case '\x13':
    case '2':
      if ((*param_1 & 2) != 0) {
        if (*param_3 != param_3[1]) {
          FUN_001ce1f0();
          pcVar7 = (char *)*param_2;
        }
        pcVar11 = (char *)FUN_001cdd80();
        if ((pcVar11 != (char *)0x0) && (*pcVar11 != '\0')) {
          FUN_001ce1f0();
          pcVar7 = (char *)*param_2;
        }
      }
      pcVar7 = pcVar7 + 1;
      *param_2 = (int)pcVar7;
      break;
    default:
      goto code_r0x001d0176;
    case '\a':
      *param_2 = (int)(pcVar7 + 1);
      if (*param_3 != param_3[1]) {
        FUN_001ce230();
      }
      FUN_001ce230();
      pcVar7 = (char *)*param_2;
      break;
    case '\x10':
      *param_2 = (int)(pcVar7 + 1);
      if (*param_3 != param_3[1]) {
        FUN_001ce230();
      }
      FUN_001ce230();
      pcVar7 = (char *)*param_2;
      break;
    case '\x12':
      *param_2 = (int)(pcVar7 + 1);
      if (*param_3 != param_3[1]) {
        FUN_001ce230();
      }
      FUN_001ce230();
      pcVar7 = (char *)*param_2;
    }
  } while( true );
code_r0x001cfa38:
  *param_2 = (int)(puVar14 + 1);
  if ((pcVar7 != local_4c) && ((*pcVar7 - 0x26U & 0xfb) == 0)) {
    FUN_001ce1f0();
    FUN_001ce230();
  }
  FUN_001ce230();
  pcVar7 = (char *)*param_2;
  if (*pcVar7 != '_') {
    iVar13 = FUN_001cf0a0(4);
    pcVar7 = (char *)*param_2;
    if (*pcVar7 != '_') goto code_r0x001cfa7a;
  }
  *param_2 = (int)(pcVar7 + 1);
code_r0x001cfa7a:
  FUN_001ce230();
  goto code_r0x001cf820;
code_r0x001d0176:
  pcVar11 = pcVar7;
  switch(*pcVar7) {
  case '\0':
  case '_':
    goto code_r0x001d018e;
  default:
    goto LAB_001cfd80;
  case '0':
  case '1':
  case '2':
  case '3':
  case '4':
  case '5':
  case '6':
  case '7':
  case '8':
  case '9':
    uVar9 = FUN_001cdb80();
    uStack_3c = 0;
    pvStack_40 = (void *)0x0;
    pvStack_44 = (void *)0x0;
    iVar13 = FUN_001d0dd0();
    if (iVar13 != 0) {
      FUN_001ce060(uVar9);
      if (*param_3 != param_3[1]) {
        FUN_001ce230();
      }
      iVar13 = 1;
      FUN_001ce380();
    }
    goto joined_r0x001d0375;
  case 'G':
    pcVar11 = pcVar7 + 1;
    *param_2 = (int)pcVar11;
    if (((&DAT_002a3620)[(uint)(byte)pcVar7[1] * 2] & 4) != 0) goto code_r0x001d01c5;
    goto LAB_001cfd80;
  case 'I':
code_r0x001d01c5:
    pcVar7 = pcVar11 + 1;
    *param_2 = (int)pcVar7;
    if (pcVar11[1] == '_') {
      iVar13 = 0;
      *param_2 = (int)(pcVar11 + 2);
      pcVar7 = pcVar11 + 2;
      do {
        pcVar11 = pcVar7;
        cVar5 = *pcVar11;
        pcVar7 = pcVar11;
        if ((cVar5 == '_') || (cVar5 == '\0')) goto code_r0x001d0200;
        *(char *)((int)&pvStack_44 + iVar13) = cVar5;
        pcVar7 = pcVar11 + 1;
        iVar13 = iVar13 + 1;
        *param_2 = (int)pcVar7;
      } while (iVar13 != 0x24);
      cVar5 = pcVar11[1];
code_r0x001d0200:
      if (cVar5 != '_') goto LAB_001cfd80;
      *(undefined1 *)((int)&pvStack_44 + iVar13) = 0;
      *param_2 = (int)(pcVar7 + 1);
    }
    else {
      strncpy((char *)&pvStack_44,pcVar7,2);
      pvStack_44._0_3_ = (uint3)(ushort)pvStack_44;
      sVar8 = strlen(pcVar7);
      if (1 < sVar8) {
        sVar8 = 2;
      }
      *param_2 = (int)(pcVar7 + sVar8);
    }
    sscanf((char *)&pvStack_44,"%x",&local_54);
    sprintf((char *)&pvStack_44,"int%u_t",local_54);
    if (*param_3 != param_3[1]) {
      FUN_001ce230();
    }
    if ((char)pvStack_44 == '\0') goto code_r0x001d018e;
    iVar13 = 4;
    FUN_001ce230();
    iVar12 = 4;
    break;
  case 'b':
    *param_2 = (int)(pcVar7 + 1);
    if (*param_3 != param_3[1]) {
      FUN_001ce230();
    }
    iVar13 = 5;
    FUN_001ce230();
    iVar12 = 5;
    break;
  case 'c':
    *param_2 = (int)(pcVar7 + 1);
    if (*param_3 != param_3[1]) {
      FUN_001ce230();
    }
    iVar13 = 6;
    FUN_001ce230();
    iVar12 = 6;
    break;
  case 'd':
    *param_2 = (int)(pcVar7 + 1);
    if (*param_3 != param_3[1]) {
      FUN_001ce230();
    }
    iVar13 = 7;
    FUN_001ce230();
    iVar12 = 7;
    break;
  case 'f':
    *param_2 = (int)(pcVar7 + 1);
    if (*param_3 != param_3[1]) {
      FUN_001ce230();
    }
    iVar13 = 7;
    FUN_001ce230();
    iVar12 = 7;
    break;
  case 'i':
    *param_2 = (int)(pcVar7 + 1);
    if (*param_3 != param_3[1]) {
      FUN_001ce230();
    }
    iVar13 = 4;
    FUN_001ce230();
    iVar12 = 4;
    break;
  case 'l':
    *param_2 = (int)(pcVar7 + 1);
    if (*param_3 != param_3[1]) {
      FUN_001ce230();
    }
    iVar13 = 4;
    FUN_001ce230();
    iVar12 = 4;
    break;
  case 'r':
    *param_2 = (int)(pcVar7 + 1);
    if (*param_3 != param_3[1]) {
      FUN_001ce230();
    }
    iVar13 = 7;
    FUN_001ce230();
    iVar12 = 7;
    break;
  case 's':
    *param_2 = (int)(pcVar7 + 1);
    if (*param_3 != param_3[1]) {
      FUN_001ce230();
    }
    iVar13 = 4;
    FUN_001ce230();
    iVar12 = 4;
    break;
  case 't':
    uStack_3c = 0;
    pvStack_40 = (void *)0x0;
    pvStack_44 = (void *)0x0;
    iVar13 = FUN_001d1450(0,1,1);
    FUN_001ce380();
joined_r0x001d0375:
    if (pvStack_44 != (void *)0x0) {
      free(pvStack_44);
    }
    if (iVar13 != 0) {
code_r0x001d018e:
      iVar13 = 4;
      iVar12 = 4;
      break;
    }
LAB_001cfd80:
    if ((void *)*param_3 == (void *)0x0) {
      iVar13 = 0;
      pcVar7 = local_50;
    }
    else {
      iVar13 = 0;
      free((void *)*param_3);
      param_3[1] = 0;
      param_3[2] = 0;
      *param_3 = 0;
      pcVar7 = local_50;
    }
    goto LAB_001cfdb8;
  case 'v':
    *param_2 = (int)(pcVar7 + 1);
    if (*param_3 != param_3[1]) {
      FUN_001ce230();
    }
    iVar13 = 4;
    FUN_001ce230();
    iVar12 = 4;
    break;
  case 'w':
    *param_2 = (int)(pcVar7 + 1);
    if (*param_3 != param_3[1]) {
      FUN_001ce230();
    }
    iVar13 = 6;
    FUN_001ce230();
    iVar12 = 6;
    break;
  case 'x':
    *param_2 = (int)(pcVar7 + 1);
    if (*param_3 != param_3[1]) {
      FUN_001ce230();
    }
    iVar13 = 4;
    FUN_001ce230();
    iVar12 = 4;
  }
  if (local_70 != 0) {
    iVar12 = local_70;
  }
code_r0x001cfebc:
  local_70 = iVar12;
  pcVar7 = local_4c;
  if (local_50 != local_4c) {
    FUN_001ce230();
    FUN_001ce380();
    pcVar7 = local_50;
  }
LAB_001cfdb8:
  if (pcVar7 != (char *)0x0) {
    free(pcVar7);
  }
  if (bVar4) {
    *(int *)(param_1 + 0x5c) = *(int *)(param_1 + 0x5c) + -1;
  }
  if ((iVar13 != 0) && (iVar13 = local_70, local_70 == 0)) {
    iVar13 = 4;
  }
  return iVar13;
}

