
/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */

demangle_component * __regparm3 d_expression_1(d_info *di)

{
  int *piVar1;
  char cVar2;
  byte bVar3;
  demangle_component_type dVar4;
  demangle_component *pdVar5;
  uint uVar6;
  char *pcVar7;
  demangle_component *pdVar8;
  demangle_component *right;
  demangle_component *pdVar9;
  int iVar10;
  char *pcVar11;
  byte *pbVar12;
  byte *pbVar13;
  byte *pbVar14;
  bool bVar15;
  undefined1 uVar16;
  bool bVar17;
  bool bVar18;
  undefined1 uVar19;
  byte bVar20;
  d_info *di_00;
  d_info *in_stack_ffffffd4;
  demangle_component *local_20;
  
  bVar20 = 0;
  pcVar11 = di->n;
  cVar2 = *pcVar11;
  if (cVar2 == 'L') {
    pdVar5 = d_expr_primary(di);
    return pdVar5;
  }
  if (cVar2 == 'T') {
    pdVar5 = d_template_param(di);
    return pdVar5;
  }
  if (cVar2 == 's') {
    if (pcVar11[1] == 'r') {
      di->n = pcVar11 + 2;
      di_00 = di;
      pdVar5 = cplus_demangle_type(di);
      pdVar9 = d_unqualified_name(di_00);
      if (*di->n == 'I') {
        pdVar8 = d_template_args(di);
        pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);
      }
      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_QUAL_NAME,pdVar5,pdVar9);
      return pdVar5;
    }
    if (pcVar11[1] == 'p') {
      di->n = pcVar11 + 2;
      pdVar5 = d_expression_1(di);
      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_PACK_EXPANSION,pdVar5,(demangle_component *)0x0);
      return pdVar5;
    }
  }
  else if (cVar2 == 'f') {
    if (pcVar11[1] == 'p') {
      di->n = pcVar11 + 2;
      if (pcVar11[2] == 'T') {
        pcVar7 = (char *)0x0;
        di->n = pcVar11 + 3;
      }
      else {
        uVar6 = d_compact_number(di);
        pcVar7 = (char *)(uVar6 + 1);
        if ((uVar6 & 0x7fffffff) == 0x7fffffff) {
          return (demangle_component *)0x0;
        }
      }
      iVar10 = di->next_comp;
      if (di->num_comps <= iVar10) {
        return (demangle_component *)0x0;
      }
      pdVar5 = di->comps + iVar10;
      pdVar5->d_printing = 0;
      di->next_comp = iVar10 + 1;
      pdVar5->type = DEMANGLE_COMPONENT_FUNCTION_PARAM;
      (pdVar5->u).s_name.s = pcVar7;
      return pdVar5;
    }
  }
  else {
    if ((byte)(cVar2 - 0x30U) < 10) {
LAB_00177505:
      pdVar5 = d_unqualified_name(in_stack_ffffffd4);
      if (pdVar5 == (demangle_component *)0x0) {
        return (demangle_component *)0x0;
      }
      if (*di->n != 'I') {
        return pdVar5;
      }
      pdVar9 = d_template_args(di);
      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar5,pdVar9);
      return pdVar5;
    }
    if (cVar2 == 'o') {
      if (pcVar11[1] == 'n') {
        di->n = pcVar11 + 2;
        goto LAB_00177505;
      }
    }
    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar11[1] == 'l')) {
      pdVar5 = (demangle_component *)0x0;
      if (cVar2 == 't') {
        pdVar5 = cplus_demangle_type(di);
        pcVar11 = di->n;
        if (pcVar11[1] == '\0') {
          return (demangle_component *)0x0;
        }
      }
      di->n = pcVar11 + 2;
      pdVar9 = d_exprlist(di,'E');
      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_INITIALIZER_LIST,pdVar5,pdVar9);
      return pdVar5;
    }
  }
  pdVar5 = d_operator_name(di);
  if (pdVar5 == (demangle_component *)0x0) {
    return (demangle_component *)0x0;
  }
  dVar4 = pdVar5->type;
  if (dVar4 == DEMANGLE_COMPONENT_OPERATOR) {
    pcVar11 = (pdVar5->u).s_name.s;
    pbVar13 = *(byte **)pcVar11;
    piVar1 = &di->expansion;
    bVar15 = CARRY4(*piVar1,*(int *)(pcVar11 + 8) - 2U);
    *piVar1 = *piVar1 + (*(int *)(pcVar11 + 8) - 2U);
    bVar18 = *piVar1 == 0;
    iVar10 = 3;
    pbVar12 = pbVar13;
    pbVar14 = (byte *)0x238e84;
    do {
      if (iVar10 == 0) break;
      iVar10 = iVar10 + -1;
      bVar15 = *pbVar12 < *pbVar14;
      bVar18 = *pbVar12 == *pbVar14;
      pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;
      pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;
    } while (bVar18);
    if ((!bVar15 && !bVar18) == bVar15) {
      pdVar9 = cplus_demangle_type(di);
      goto LAB_001778fb;
    }
    iVar10 = *(int *)(pcVar11 + 0xc);
    if (iVar10 != 1) {
      if (iVar10 < 2) goto joined_r0x00177952;
      if (iVar10 == 2) {
        if (pbVar13 == (byte *)0x0) {
          return (demangle_component *)0x0;
        }
        if (((*(char **)pcVar11)[1] == 'c') &&
           ((cVar2 = **(char **)pcVar11, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2))))
        {
          local_20 = cplus_demangle_type(di);
          uVar16 = (undefined1 *)0xffffffef < &stack0xffffffc4;
          uVar19 = &stack0x00000000 == (undefined1 *)0x2c;
        }
        else {
          uVar16 = *pbVar13 < 0x66;
          uVar19 = *pbVar13 == 0x66;
          if ((bool)uVar19) {
            local_20 = d_operator_name(di);
          }
          else {
            local_20 = d_expression_1(di);
          }
        }
        iVar10 = 3;
        pbVar12 = pbVar13;
        pbVar14 = &DAT_00237ab8;
        do {
          if (iVar10 == 0) break;
          iVar10 = iVar10 + -1;
          uVar16 = *pbVar12 < *pbVar14;
          uVar19 = *pbVar12 == *pbVar14;
          pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;
          pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;
        } while ((bool)uVar19);
        bVar15 = false;
        bVar18 = (!(bool)uVar16 && !(bool)uVar19) == (bool)uVar16;
        if (bVar18) {
          pdVar9 = d_exprlist(di,'E');
        }
        else {
          iVar10 = 3;
          pbVar12 = pbVar13;
          pbVar14 = &DAT_00237716;
          do {
            if (iVar10 == 0) break;
            iVar10 = iVar10 + -1;
            bVar15 = *pbVar12 < *pbVar14;
            bVar18 = *pbVar12 == *pbVar14;
            pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;
            pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;
          } while (bVar18);
          bVar17 = false;
          bVar15 = (!bVar15 && !bVar18) == bVar15;
          if (!bVar15) {
            iVar10 = 3;
            pbVar12 = (byte *)0x2318e8;
            do {
              if (iVar10 == 0) break;
              iVar10 = iVar10 + -1;
              bVar17 = *pbVar13 < *pbVar12;
              bVar15 = *pbVar13 == *pbVar12;
              pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1;
              pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;
            } while (bVar15);
            if ((!bVar17 && !bVar15) != bVar17) {
              pdVar9 = d_expression_1(di);
              goto LAB_00177a83;
            }
          }
          pdVar9 = d_unqualified_name(in_stack_ffffffd4);
          if (*di->n == 'I') {
            pdVar8 = d_template_args(di);
            pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);
          }
        }
LAB_00177a83:
        pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY_ARGS,local_20,pdVar9);
        pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY,pdVar5,pdVar9);
        return pdVar5;
      }
      if (iVar10 != 3) {
        return (demangle_component *)0x0;
      }
      bVar15 = false;
      bVar18 = pbVar13 == (byte *)0x0;
      if (bVar18) {
        return (demangle_component *)0x0;
      }
      iVar10 = 3;
      pbVar12 = pbVar13;
      pbVar14 = &DAT_00238c45;
      do {
        if (iVar10 == 0) break;
        iVar10 = iVar10 + -1;
        bVar15 = *pbVar12 < *pbVar14;
        bVar18 = *pbVar12 == *pbVar14;
        pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;
        pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;
      } while (bVar18);
      if ((!bVar15 && !bVar18) == bVar15) {
        pdVar9 = d_expression_1(di);
      }
      else {
        if (*pbVar13 != 0x66) {
          if (*pbVar13 != 0x6e) {
            return (demangle_component *)0x0;
          }
          if ((pbVar13[1] != 0x77) && (pbVar13[1] != 0x61)) {
            return (demangle_component *)0x0;
          }
          pdVar9 = d_exprlist(di,'_');
          pdVar8 = cplus_demangle_type(di);
          pcVar11 = di->n;
          cVar2 = *pcVar11;
          if (cVar2 == 'E') {
            di->n = pcVar11 + 1;
            right = (demangle_component *)0x0;
          }
          else if (cVar2 == 'p') {
            if (pcVar11[1] != 'i') {
              return (demangle_component *)0x0;
            }
            di->n = pcVar11 + 2;
            right = d_exprlist(di,'E');
          }
          else {
            if (cVar2 != 'i') {
              return (demangle_component *)0x0;
            }
            if (pcVar11[1] != 'l') {
              return (demangle_component *)0x0;
            }
            right = d_expression_1(di);
          }
          goto LAB_0017779c;
        }
        pdVar9 = d_operator_name(di);
      }
      pdVar8 = d_expression_1(di);
      right = d_expression_1(di);
      if (right == (demangle_component *)0x0) {
        return (demangle_component *)0x0;
      }
LAB_0017779c:
      pdVar8 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY_ARG2,pdVar8,right);
      pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY_ARG1,pdVar9,pdVar8);
      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY,pdVar5,pdVar9);
      return pdVar5;
    }
    bVar3 = *pbVar13;
    if (((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == pbVar13[1])) {
      bVar3 = *di->n;
      bVar18 = bVar3 < 0x5f;
      bVar17 = bVar3 == 0x5f;
      bVar15 = true;
      if (bVar17) {
        di->n = di->n + 1;
        goto LAB_001778af;
      }
    }
    else {
LAB_001778af:
      bVar18 = false;
      bVar15 = false;
      bVar17 = true;
    }
    iVar10 = 3;
    pbVar12 = &DAT_00238c3f;
    do {
      if (iVar10 == 0) break;
      iVar10 = iVar10 + -1;
      bVar18 = *pbVar13 < *pbVar12;
      bVar17 = *pbVar13 == *pbVar12;
      pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1;
      pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;
    } while (bVar17);
    if ((!bVar18 && !bVar17) != bVar18) goto LAB_001778cf;
    pdVar9 = d_template_args_1(di);
  }
  else {
    if (dVar4 == DEMANGLE_COMPONENT_EXTENDED_OPERATOR) {
      iVar10 = (pdVar5->u).s_extended_operator.args;
      if (iVar10 != 1) {
        if (1 < iVar10) {
          return (demangle_component *)0x0;
        }
joined_r0x00177952:
        if (iVar10 == 0) {
          pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_NULLARY,pdVar5,(demangle_component *)0x0);
          return pdVar5;
        }
        return (demangle_component *)0x0;
      }
      pdVar9 = d_expression_1(di);
      goto LAB_001778fb;
    }
    if (dVar4 != DEMANGLE_COMPONENT_CAST) {
      return (demangle_component *)0x0;
    }
    if (*di->n == '_') {
      di->n = di->n + 1;
      pdVar9 = d_exprlist(di,'E');
      goto LAB_001778fb;
    }
    bVar15 = false;
LAB_001778cf:
    pdVar9 = d_expression_1(di);
  }
  if (bVar15) {
    pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY_ARGS,pdVar9,pdVar9);
  }
LAB_001778fb:
  pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_UNARY,pdVar5,pdVar9);
  return pdVar5;
}



undefined4 * FUN_001774c0(void)

{
  uint *puVar1;
  char cVar2;
  byte bVar3;
  int iVar4;
  int iVar5;
  undefined4 *puVar6;
  uint uVar7;
  int iVar8;
  byte *pbVar9;
  int unaff_EBP;
  char *pcVar10;
  byte *pbVar11;
  bool bVar12;
  undefined1 uVar13;
  bool bVar14;
  bool bVar15;
  undefined1 uVar16;
  byte bVar17;
  int local_3c [3];
  undefined4 uStack_30;
  int *local_28;
  byte *local_24;
  undefined4 local_20;
  
  bVar17 = 0;
  iVar5 = FUN_0004fb82();
  pcVar10 = *(char **)(iVar5 + 0xc);
  cVar2 = *pcVar10;
  if (cVar2 == 'L') {
    puVar6 = (undefined4 *)FUN_00177210();
    return puVar6;
  }
  if (cVar2 == 'T') {
    puVar6 = (undefined4 *)FUN_0016e210();
    return puVar6;
  }
  if (cVar2 == 's') {
    if (pcVar10[1] == 'r') {
      *(char **)(iVar5 + 0xc) = pcVar10 + 2;
      local_3c[0] = iVar5;
      FUN_00175280();
      iVar8 = FUN_00175e60();
      if (**(char **)(iVar5 + 0xc) == 'I') {
        uStack_30 = 0x177887;
        local_3c[0] = FUN_00177490();
        iVar8 = FUN_0016dee0();
      }
      local_3c[0] = iVar8;
      puVar6 = (undefined4 *)FUN_0016dee0();
      return puVar6;
    }
    if (pcVar10[1] == 'p') {
      *(char **)(iVar5 + 0xc) = pcVar10 + 2;
      uStack_30 = 0x17759d;
      FUN_001774c0();
      local_3c[0] = 0;
      puVar6 = (undefined4 *)FUN_0016dee0();
      return puVar6;
    }
  }
  else if (cVar2 == 'f') {
    if (pcVar10[1] == 'p') {
      *(char **)(iVar5 + 0xc) = pcVar10 + 2;
      if (pcVar10[2] == 'T') {
        iVar8 = 0;
        *(char **)(iVar5 + 0xc) = pcVar10 + 3;
      }
      else {
        uStack_30 = 0x1775d7;
        uVar7 = FUN_0016e1d0();
        iVar8 = uVar7 + 1;
        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {
          return (undefined4 *)0x0;
        }
      }
      iVar4 = *(int *)(iVar5 + 0x14);
      if (*(int *)(iVar5 + 0x18) <= iVar4) {
        return (undefined4 *)0x0;
      }
      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));
      puVar6[1] = 0;
      *(int *)(iVar5 + 0x14) = iVar4 + 1;
      *puVar6 = 6;
      puVar6[2] = iVar8;
      return puVar6;
    }
  }
  else {
    if ((byte)(cVar2 - 0x30U) < 10) {
LAB_00177505:
      uStack_30 = 0x17750c;
      puVar6 = (undefined4 *)FUN_00175e60();
      if (puVar6 == (undefined4 *)0x0) {
        return (undefined4 *)0x0;
      }
      if (**(char **)(iVar5 + 0xc) != 'I') {
        return puVar6;
      }
      uStack_30 = 0x1777e7;
      local_3c[0] = FUN_00177490();
      puVar6 = (undefined4 *)FUN_0016dee0();
      return puVar6;
    }
    if (cVar2 == 'o') {
      if (pcVar10[1] == 'n') {
        *(char **)(iVar5 + 0xc) = pcVar10 + 2;
        goto LAB_00177505;
      }
    }
    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {
      if (cVar2 == 't') {
        local_3c[0] = iVar5;
        FUN_00175280();
        pcVar10 = *(char **)(iVar5 + 0xc);
        if (pcVar10[1] == '\0') {
          return (undefined4 *)0x0;
        }
      }
      *(char **)(iVar5 + 0xc) = pcVar10 + 2;
      uStack_30 = 0x177862;
      local_3c[0] = FUN_00177dc0();
      puVar6 = (undefined4 *)FUN_0016dee0();
      return puVar6;
    }
  }
  uStack_30 = 0x177541;
  local_28 = (int *)FUN_00175bc0();
  if (local_28 == (int *)0x0) {
    return (undefined4 *)0x0;
  }
  iVar8 = *local_28;
  if (iVar8 == 0x31) {
    puVar6 = (undefined4 *)local_28[2];
    local_24 = (byte *)*puVar6;
    puVar1 = (uint *)(iVar5 + 0x2c);
    bVar12 = CARRY4(*puVar1,puVar6[2] - 2);
    *puVar1 = *puVar1 + (puVar6[2] - 2);
    bVar15 = *puVar1 == 0;
    iVar8 = 3;
    pbVar9 = local_24;
    pbVar11 = (byte *)(unaff_EBP + 0xc19be);
    do {
      if (iVar8 == 0) break;
      iVar8 = iVar8 + -1;
      bVar12 = *pbVar9 < *pbVar11;
      bVar15 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar15);
    if ((!bVar12 && !bVar15) == bVar12) {
      local_3c[0] = iVar5;
      local_3c[0] = FUN_00175280();
      goto LAB_001778fb;
    }
    iVar8 = puVar6[3];
    if (iVar8 != 1) {
      if (iVar8 < 2) goto joined_r0x00177952;
      if (iVar8 == 2) {
        if (local_24 == (byte *)0x0) {
          return (undefined4 *)0x0;
        }
        if ((((char *)*puVar6)[1] == 'c') &&
           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {
          local_3c[0] = iVar5;
          local_20 = FUN_00175280();
          uVar13 = (undefined1 *)0xffffffef < local_3c;
          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;
        }
        else {
          uVar13 = *local_24 < 0x66;
          uVar16 = *local_24 == 0x66;
          if ((bool)uVar16) {
            uStack_30 = 0x177b21;
            local_20 = FUN_00175bc0();
          }
          else {
            uStack_30 = 0x177a14;
            local_20 = FUN_001774c0();
          }
        }
        iVar8 = 3;
        pbVar9 = local_24;
        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);
        do {
          if (iVar8 == 0) break;
          iVar8 = iVar8 + -1;
          uVar13 = *pbVar9 < *pbVar11;
          uVar16 = *pbVar9 == *pbVar11;
          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
        } while ((bool)uVar16);
        bVar12 = false;
        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;
        if (bVar15) {
          uStack_30 = 0x177b13;
          iVar8 = FUN_00177dc0();
        }
        else {
          iVar8 = 3;
          pbVar9 = local_24;
          pbVar11 = (byte *)(unaff_EBP + 0xc0250);
          do {
            if (iVar8 == 0) break;
            iVar8 = iVar8 + -1;
            bVar12 = *pbVar9 < *pbVar11;
            bVar15 = *pbVar9 == *pbVar11;
            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
          } while (bVar15);
          bVar14 = false;
          bVar12 = (!bVar12 && !bVar15) == bVar12;
          if (!bVar12) {
            iVar8 = 3;
            pbVar9 = local_24;
            pbVar11 = (byte *)(unaff_EBP + 0xba422);
            do {
              if (iVar8 == 0) break;
              iVar8 = iVar8 + -1;
              bVar14 = *pbVar9 < *pbVar11;
              bVar12 = *pbVar9 == *pbVar11;
              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
            } while (bVar12);
            if ((!bVar14 && !bVar12) != bVar14) {
              uStack_30 = 0x177b31;
              iVar8 = FUN_001774c0();
              goto LAB_00177a83;
            }
          }
          uStack_30 = 0x177a75;
          iVar8 = FUN_00175e60();
          if (**(char **)(iVar5 + 0xc) == 'I') {
            uStack_30 = 0x177b4b;
            local_3c[0] = FUN_00177490();
            iVar8 = FUN_0016dee0();
          }
        }
LAB_00177a83:
        local_3c[0] = iVar8;
        local_3c[0] = FUN_0016dee0();
        puVar6 = (undefined4 *)FUN_0016dee0();
        return puVar6;
      }
      if (iVar8 != 3) {
        return (undefined4 *)0x0;
      }
      bVar12 = false;
      bVar15 = local_24 == (byte *)0x0;
      if (bVar15) {
        return (undefined4 *)0x0;
      }
      iVar8 = 3;
      pbVar9 = local_24;
      pbVar11 = (byte *)(unaff_EBP + 0xc177f);
      do {
        if (iVar8 == 0) break;
        iVar8 = iVar8 + -1;
        bVar12 = *pbVar9 < *pbVar11;
        bVar15 = *pbVar9 == *pbVar11;
        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
      } while (bVar15);
      if ((!bVar12 && !bVar15) == bVar12) {
        uStack_30 = 0x177abb;
        FUN_001774c0();
      }
      else {
        if (*local_24 != 0x66) {
          if (*local_24 != 0x6e) {
            return (undefined4 *)0x0;
          }
          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {
            return (undefined4 *)0x0;
          }
          uStack_30 = 0x17775a;
          FUN_00177dc0();
          local_3c[0] = iVar5;
          FUN_00175280();
          pcVar10 = *(char **)(iVar5 + 0xc);
          cVar2 = *pcVar10;
          if (cVar2 == 'E') {
            *(char **)(iVar5 + 0xc) = pcVar10 + 1;
            local_3c[0] = 0;
          }
          else if (cVar2 == 'p') {
            if (pcVar10[1] != 'i') {
              return (undefined4 *)0x0;
            }
            *(char **)(iVar5 + 0xc) = pcVar10 + 2;
            uStack_30 = 0x177b83;
            local_3c[0] = FUN_00177dc0();
          }
          else {
            if (cVar2 != 'i') {
              return (undefined4 *)0x0;
            }
            if (pcVar10[1] != 'l') {
              return (undefined4 *)0x0;
            }
            uStack_30 = 0x17779c;
            local_3c[0] = FUN_001774c0();
          }
          goto LAB_0017779c;
        }
        uStack_30 = 0x177b3f;
        FUN_00175bc0();
      }
      uStack_30 = 0x177ac4;
      FUN_001774c0();
      uStack_30 = 0x177acd;
      local_3c[0] = FUN_001774c0();
      if (local_3c[0] == 0) {
        return (undefined4 *)0x0;
      }
LAB_0017779c:
      local_3c[0] = FUN_0016dee0();
      local_3c[0] = FUN_0016dee0();
      puVar6 = (undefined4 *)FUN_0016dee0();
      return puVar6;
    }
    bVar3 = *local_24;
    if (((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == local_24[1])) {
      bVar3 = **(byte **)(iVar5 + 0xc);
      bVar12 = bVar3 < 0x5f;
      bVar15 = bVar3 == 0x5f;
      pbVar9 = (byte *)0x1;
      if (bVar15) {
        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;
        goto LAB_001778af;
      }
    }
    else {
LAB_001778af:
      bVar12 = false;
      pbVar9 = (byte *)0x0;
      bVar15 = true;
    }
    iVar5 = 3;
    pbVar11 = (byte *)(unaff_EBP + 0xc1779);
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar12 = *local_24 < *pbVar11;
      bVar15 = *local_24 == *pbVar11;
      local_24 = local_24 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar15);
    if ((!bVar12 && !bVar15) != bVar12) goto LAB_001778cf;
    uStack_30 = 0x1779bb;
    local_24 = pbVar9;
    local_3c[0] = FUN_00177370();
  }
  else {
    if (iVar8 == 0x32) {
      iVar8 = local_28[2];
      if (iVar8 != 1) {
        if (1 < iVar8) {
          return (undefined4 *)0x0;
        }
joined_r0x00177952:
        if (iVar8 == 0) {
          local_3c[0] = 0;
          puVar6 = (undefined4 *)FUN_0016dee0();
          return puVar6;
        }
        return (undefined4 *)0x0;
      }
      uStack_30 = 0x1779e0;
      local_3c[0] = FUN_001774c0();
      goto LAB_001778fb;
    }
    if (iVar8 != 0x33) {
      return (undefined4 *)0x0;
    }
    if (**(char **)(iVar5 + 0xc) == '_') {
      *(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;
      uStack_30 = 0x177946;
      local_3c[0] = FUN_00177dc0();
      goto LAB_001778fb;
    }
    pbVar9 = (byte *)0x0;
LAB_001778cf:
    uStack_30 = 0x1778da;
    local_24 = pbVar9;
    local_3c[0] = FUN_001774c0();
  }
  if (local_24 != (byte *)0x0) {
    local_3c[0] = FUN_0016dee0();
  }
LAB_001778fb:
  puVar6 = (undefined4 *)FUN_0016dee0();
  return puVar6;
}


PUSH EBP
CALL 0x0004fb82
ADD EBP,0x18ab3a
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x1c
MOV ESI,dword ptr [EAX + 0xc]
MOVZX EDX,byte ptr [ESI]
CMP DL,0x4c
JZ 0x00177668
CMP DL,0x54
JZ 0x00177698
MOV EBX,EAX
CMP DL,0x73
JZ 0x00177580
CMP DL,0x66
JZ 0x00177530
LEA EAX,[EDX + -0x30]
CMP AL,0x9
JA 0x00177678
MOV EAX,EBX
CALL 0x00175e60
MOV ESI,EAX
TEST EAX,EAX
JZ 0x00177658
MOV EAX,dword ptr [EBX + 0xc]
CMP byte ptr [EAX],0x49
JZ 0x001777e0
ADD ESP,0x1c
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP byte ptr [ESI + 0x1],0x70
JZ 0x001775c0
MOV EAX,EBX
CALL 0x00175bc0
MOV dword ptr [ESP + 0x4],EAX
TEST EAX,EAX
JZ 0x00177658
MOV EAX,dword ptr [EAX]
CMP EAX,0x31
JZ 0x001776a8
CMP EAX,0x32
JZ 0x00177980
CMP EAX,0x33
JNZ 0x00177658
MOV EAX,dword ptr [EBX + 0xc]
CMP byte ptr [EAX],0x5f
JZ 0x00177934
XOR EDX,EDX
JMP 0x001778cf
MOVZX EAX,byte ptr [ESI + 0x1]
CMP AL,0x72
JZ 0x00177808
CMP AL,0x70
JNZ 0x0017753a
ADD ESI,0x2
MOV EAX,EBX
MOV dword ptr [EBX + 0xc],ESI
CALL 0x001774c0
SUB ESP,0xc
MOV EDX,0x4a
PUSH 0x0
MOV ECX,EAX
MOV EAX,EBX
CALL 0x0016dee0
ADD ESP,0x10
MOV ESI,EAX
JMP 0x00177522
LEA EAX,[ESI + 0x2]
MOV dword ptr [EBX + 0xc],EAX
CMP byte ptr [ESI + 0x2],0x54
JZ 0x001779a0
MOV EAX,EBX
CALL 0x0016e1d0
MOV EDX,EAX
ADD EAX,0x1
AND EDX,0x7fffffff
CMP EDX,0x7fffffff
JZ 0x00177658
MOV EDX,dword ptr [EBX + 0x14]
CMP EDX,dword ptr [EBX + 0x18]
JGE 0x00177658
MOV ESI,EDX
ADD EDX,0x1
SHL ESI,0x4
ADD ESI,dword ptr [EBX + 0x10]
MOV dword ptr [ESI + 0x4],0x0
MOV dword ptr [EBX + 0x14],EDX
MOV dword ptr [ESI],0x6
MOV dword ptr [ESI + 0x8],EAX
JMP 0x00177522
CMP DL,0x69
JZ 0x00177623
CMP DL,0x74
JNZ 0x0017753a
CMP byte ptr [ESI + 0x1],0x6c
JNZ 0x0017753a
XOR EDI,EDI
CMP DL,0x74
JNZ 0x00177850
SUB ESP,0xc
PUSH EBX
CALL 0x00175280
MOV ESI,dword ptr [EBX + 0xc]
ADD ESP,0x10
MOV EDI,EAX
CMP byte ptr [ESI + 0x1],0x0
JNZ 0x00177850
LEA ESI,[ESI]
NOP
XOR ESI,ESI
ADD ESP,0x1c
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
JMP 0x00177210
CMP DL,0x6f
JNZ 0x00177615
CMP byte ptr [ESI + 0x1],0x6e
JNZ 0x0017753a
ADD ESI,0x2
MOV dword ptr [EBX + 0xc],ESI
JMP 0x00177505
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
JMP 0x0016e210
MOV EAX,dword ptr [ESP + 0x4]
LEA EDI,[EBP + 0xfff36e84]
MOV EAX,dword ptr [EAX + 0x8]
MOV ECX,dword ptr [EAX + 0x8]
MOV ESI,dword ptr [EAX]
LEA EDX,[ECX + -0x2]
ADD dword ptr [EBX + 0x2c],EDX
MOV ECX,0x3
MOV dword ptr [ESP + 0x8],ESI
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x001779c8
MOV EDX,dword ptr [EAX + 0xc]
CMP EDX,0x1
JZ 0x001778a0
JLE 0x00177950
CMP EDX,0x2
JZ 0x001779e8
CMP EDX,0x3
JNZ 0x00177658
MOV ESI,dword ptr [ESP + 0x8]
TEST ESI,ESI
JZ 0x00177658
MOV ECX,0x3
LEA EDI,[EBP + 0xfff36c45]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00177ab4
MOV EAX,dword ptr [ESP + 0x8]
MOVZX EAX,byte ptr [EAX]
CMP AL,0x66
JZ 0x00177b38
CMP AL,0x6e
JNZ 0x00177658
MOV EAX,dword ptr [ESP + 0x8]
MOVZX EAX,byte ptr [EAX + 0x1]
CMP AL,0x77
JZ 0x0017774e
CMP AL,0x61
JNZ 0x00177658
MOV EDX,0x5f
MOV EAX,EBX
CALL 0x00177dc0
SUB ESP,0xc
PUSH EBX
MOV ESI,EAX
CALL 0x00175280
ADD ESP,0x10
MOV EDI,EAX
MOV EAX,dword ptr [EBX + 0xc]
MOVZX EDX,byte ptr [EAX]
CMP DL,0x45
JZ 0x00177b88
CMP DL,0x70
JZ 0x00177b67
CMP DL,0x69
JNZ 0x00177658
CMP byte ptr [EAX + 0x1],0x6c
JNZ 0x00177658
MOV EAX,EBX
CALL 0x001774c0
SUB ESP,0xc
MOV ECX,EDI
MOV EDX,0x3b
PUSH EAX
MOV EAX,EBX
CALL 0x0016dee0
MOV ECX,ESI
MOV EDX,0x3a
MOV dword ptr [ESP],EAX
MOV EAX,EBX
CALL 0x0016dee0
MOV ECX,dword ptr [ESP + 0x14]
MOV EDX,0x39
MOV dword ptr [ESP],EAX
MOV EAX,EBX
CALL 0x0016dee0
ADD ESP,0x10
MOV ESI,EAX
JMP 0x00177522
MOV EAX,EBX
CALL 0x00177490
SUB ESP,0xc
MOV ECX,ESI
MOV EDX,0x4
PUSH EAX
MOV EAX,EBX
CALL 0x0016dee0
ADD ESP,0x10
MOV ESI,EAX
JMP 0x00177522
SUB ESP,0xc
ADD ESI,0x2
MOV dword ptr [EBX + 0xc],ESI
PUSH EBX
CALL 0x00175280
MOV ESI,EAX
MOV EAX,EBX
CALL 0x00175e60
ADD ESP,0x10
MOV EDI,EAX
MOV EAX,dword ptr [EBX + 0xc]
CMP byte ptr [EAX],0x49
JZ 0x00177880
SUB ESP,0xc
PUSH EDI
MOV ECX,ESI
MOV EDX,0x1
MOV EAX,EBX
CALL 0x0016dee0
ADD ESP,0x10
MOV ESI,EAX
JMP 0x00177522
ADD ESI,0x2
MOV EDX,0x45
MOV EAX,EBX
MOV dword ptr [EBX + 0xc],ESI
CALL 0x00177dc0
SUB ESP,0xc
MOV ECX,EDI
MOV EDX,0x30
PUSH EAX
MOV EAX,EBX
CALL 0x0016dee0
ADD ESP,0x10
MOV ESI,EAX
JMP 0x00177522
MOV EAX,EBX
CALL 0x00177490
SUB ESP,0xc
MOV ECX,EDI
MOV EDX,0x4
PUSH EAX
MOV EAX,EBX
CALL 0x0016dee0
MOV dword ptr [ESP],EAX
JMP 0x00177831
MOV EAX,dword ptr [ESP + 0x8]
MOVZX EAX,byte ptr [EAX]
CMP AL,0x70
JZ 0x00177918
CMP AL,0x6d
JZ 0x00177918
XOR EDX,EDX
MOV ESI,dword ptr [ESP + 0x8]
MOV ECX,0x3
LEA EDI,[EBP + 0xfff36c3f]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x001779b0
MOV EAX,EBX
MOV dword ptr [ESP + 0x8],EDX
CALL 0x001774c0
MOV EDX,dword ptr [ESP + 0x8]
TEST EDX,EDX
JZ 0x001778f7
SUB ESP,0xc
MOV ECX,EAX
MOV EDX,0x38
PUSH EAX
MOV EAX,EBX
CALL 0x0016dee0
ADD ESP,0x10
SUB ESP,0xc
PUSH EAX
MOV ECX,dword ptr [ESP + 0x14]
MOV EDX,0x36
MOV EAX,EBX
CALL 0x0016dee0
ADD ESP,0x10
MOV ESI,EAX
JMP 0x00177522
MOV EDI,dword ptr [ESP + 0x8]
CMP AL,byte ptr [EDI + 0x1]
JNZ 0x001778af
MOV EAX,dword ptr [EBX + 0xc]
CMP byte ptr [EAX],0x5f
JNZ 0x001778b1
ADD EAX,0x1
MOV dword ptr [EBX + 0xc],EAX
JMP 0x001778af
ADD EAX,0x1
MOV EDX,0x45
MOV dword ptr [EBX + 0xc],EAX
MOV EAX,EBX
CALL 0x00177dc0
JMP 0x001778f7
TEST EDX,EDX
JNZ 0x00177658
SUB ESP,0xc
MOV EDX,0x35
MOV EAX,EBX
PUSH 0x0
MOV ECX,dword ptr [ESP + 0x14]
CALL 0x0016dee0
ADD ESP,0x10
MOV ESI,EAX
JMP 0x00177522
MOV EAX,dword ptr [ESP + 0x4]
MOV EAX,dword ptr [EAX + 0x8]
CMP EAX,0x1
JZ 0x001779d9
JG 0x00177658
TEST EAX,EAX
JZ 0x00177958
XOR ESI,ESI
JMP 0x0017765a
ADD ESI,0x3
XOR EAX,EAX
MOV dword ptr [EBX + 0xc],ESI
JMP 0x001775ea
MOV EAX,EBX
MOV dword ptr [ESP + 0x8],EDX
CALL 0x00177370
MOV EDX,dword ptr [ESP + 0x8]
JMP 0x001778de
SUB ESP,0xc
PUSH EBX
CALL 0x00175280
MOV dword ptr [ESP],EAX
JMP 0x001778fb
MOV EAX,EBX
CALL 0x001774c0
JMP 0x001778f7
MOV EDX,dword ptr [ESP + 0x8]
TEST EDX,EDX
JZ 0x00177658
MOV EAX,dword ptr [EAX]
CMP byte ptr [EAX + 0x1],0x63
JZ 0x00177adc
MOV EAX,dword ptr [ESP + 0x8]
CMP byte ptr [EAX],0x66
JZ 0x00177b1a
MOV EAX,EBX
CALL 0x001774c0
MOV dword ptr [ESP + 0xc],EAX
MOV ESI,dword ptr [ESP + 0x8]
MOV ECX,0x3
LEA EDI,[EBP + 0xfff35ab8]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00177b07
MOV ESI,dword ptr [ESP + 0x8]
MOV ECX,0x3
LEA EDI,[EBP + 0xfff35716]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00177a6e
MOV ESI,dword ptr [ESP + 0x8]
MOV ECX,0x3
LEA EDI,[EBP + 0xfff2f8e8]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00177b2a
MOV EAX,EBX
CALL 0x00175e60
MOV ESI,EAX
MOV EAX,dword ptr [EBX + 0xc]
CMP byte ptr [EAX],0x49
JZ 0x00177b44
SUB ESP,0xc
MOV EDX,0x38
MOV EAX,EBX
PUSH ESI
MOV ECX,dword ptr [ESP + 0x1c]
CALL 0x0016dee0
MOV ECX,dword ptr [ESP + 0x14]
MOV EDX,0x37
MOV dword ptr [ESP],EAX
MOV EAX,EBX
CALL 0x0016dee0
ADD ESP,0x10
MOV ESI,EAX
JMP 0x00177522
MOV EAX,EBX
CALL 0x001774c0
MOV ESI,EAX
MOV EAX,EBX
CALL 0x001774c0
MOV EDI,EAX
MOV EAX,EBX
CALL 0x001774c0
TEST EAX,EAX
JNZ 0x0017779c
XOR ESI,ESI
JMP 0x0017765a
MOVZX EAX,byte ptr [EAX]
LEA EDX,[EAX + -0x63]
CMP DL,0x1
JBE 0x00177af2
SUB EAX,0x72
CMP AL,0x1
JA 0x00177a00
SUB ESP,0xc
PUSH EBX
CALL 0x00175280
MOV dword ptr [ESP + 0x1c],EAX
ADD ESP,0x10
JMP 0x00177a18
MOV EDX,0x45
MOV EAX,EBX
CALL 0x00177dc0
MOV ESI,EAX
JMP 0x00177a83
MOV EAX,EBX
CALL 0x00175bc0
MOV dword ptr [ESP + 0xc],EAX
JMP 0x00177a18
MOV EAX,EBX
CALL 0x001774c0
MOV ESI,EAX
JMP 0x00177a83
MOV EAX,EBX
CALL 0x00175bc0
JMP 0x00177abb
MOV EAX,EBX
CALL 0x00177490
SUB ESP,0xc
MOV ECX,ESI
MOV EDX,0x4
PUSH EAX
MOV EAX,EBX
CALL 0x0016dee0
ADD ESP,0x10
MOV ESI,EAX
JMP 0x00177a83
CMP byte ptr [EAX + 0x1],0x69
JNZ 0x00177658
ADD EAX,0x2
MOV EDX,0x45
MOV dword ptr [EBX + 0xc],EAX
MOV EAX,EBX
CALL 0x00177dc0
JMP 0x0017779c
ADD EAX,0x1
MOV dword ptr [EBX + 0xc],EAX
XOR EAX,EAX
JMP 0x0017779c
(translation_unit "undefined4 * FUN_001774c0(void)\n\n{\n  uint *puVar1;\n  char cVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  int iVar8;\n  byte *pbVar9;\n  int unaff_EBP;\n  char *pcVar10;\n  byte *pbVar11;\n  bool bVar12;\n  undefined1 uVar13;\n  bool bVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  byte bVar17;\n  int local_3c [3];\n  undefined4 uStack_30;\n  int *local_28;\n  byte *local_24;\n  undefined4 local_20;\n  \n  bVar17 = 0;\n  iVar5 = FUN_0004fb82();\n  pcVar10 = *(char **)(iVar5 + 0xc);\n  cVar2 = *pcVar10;\n  if (cVar2 == 'L') {\n    puVar6 = (undefined4 *)FUN_00177210();\n    return puVar6;\n  }\n  if (cVar2 == 'T') {\n    puVar6 = (undefined4 *)FUN_0016e210();\n    return puVar6;\n  }\n  if (cVar2 == 's') {\n    if (pcVar10[1] == 'r') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      local_3c[0] = iVar5;\n      FUN_00175280();\n      iVar8 = FUN_00175e60();\n      if (**(char **)(iVar5 + 0xc) == 'I') {\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }\n      local_3c[0] = iVar8;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x17759d;\n      FUN_001774c0();\n      local_3c[0] = 0;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }\n  else if (cVar2 == 'f') {\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }\n  }\n  else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }\n  uStack_30 = 0x177541;\n  local_28 = (int *)FUN_00175bc0();\n  if (local_28 == (int *)0x0) {\n    return (undefined4 *)0x0;\n  }\n  iVar8 = *local_28;\n  if (iVar8 == 0x31) {\n    puVar6 = (undefined4 *)local_28[2];\n    local_24 = (byte *)*puVar6;\n    puVar1 = (uint *)(iVar5 + 0x2c);\n    bVar12 = CARRY4(*puVar1,puVar6[2] - 2);\n    *puVar1 = *puVar1 + (puVar6[2] - 2);\n    bVar15 = *puVar1 == 0;\n    iVar8 = 3;\n    pbVar9 = local_24;\n    pbVar11 = (byte *)(unaff_EBP + 0xc19be);\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) == bVar12) {\n      local_3c[0] = iVar5;\n      local_3c[0] = FUN_00175280();\n      goto LAB_001778fb;\n    }\n    iVar8 = puVar6[3];\n    if (iVar8 != 1) {\n      if (iVar8 < 2) goto joined_r0x00177952;\n      if (iVar8 == 2) {\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }\n      if (iVar8 != 3) {\n        return (undefined4 *)0x0;\n      }\n      bVar12 = false;\n      bVar15 = local_24 == (byte *)0x0;\n      if (bVar15) {\n        return (undefined4 *)0x0;\n      }\n      iVar8 = 3;\n      pbVar9 = local_24;\n      pbVar11 = (byte *)(unaff_EBP + 0xc177f);\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar12 && !bVar15) == bVar12) {\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }\n      else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }\n      uStack_30 = 0x177ac4;\n      FUN_001774c0();\n      uStack_30 = 0x177acd;\n      local_3c[0] = FUN_001774c0();\n      if (local_3c[0] == 0) {\n        return (undefined4 *)0x0;\n      }\nLAB_0017779c:\n      local_3c[0] = FUN_0016dee0();\n      local_3c[0] = FUN_0016dee0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    bVar3 = *local_24;\n    if (((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == local_24[1])) {\n      bVar3 = **(byte **)(iVar5 + 0xc);\n      bVar12 = bVar3 < 0x5f;\n      bVar15 = bVar3 == 0x5f;\n      pbVar9 = (byte *)0x1;\n      if (bVar15) {\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }\n    }\n    else {\nLAB_001778af:\n      bVar12 = false;\n      pbVar9 = (byte *)0x0;\n      bVar15 = true;\n    }\n    iVar5 = 3;\n    pbVar11 = (byte *)(unaff_EBP + 0xc1779);\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *local_24 < *pbVar11;\n      bVar15 = *local_24 == *pbVar11;\n      local_24 = local_24 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) != bVar12) goto LAB_001778cf;\n    uStack_30 = 0x1779bb;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_00177370();\n  }\n  else {\n    if (iVar8 == 0x32) {\n      iVar8 = local_28[2];\n      if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }\n      uStack_30 = 0x1779e0;\n      local_3c[0] = FUN_001774c0();\n      goto LAB_001778fb;\n    }\n    if (iVar8 != 0x33) {\n      return (undefined4 *)0x0;\n    }\n    if (**(char **)(iVar5 + 0xc) == '_') {\n      *(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;\n      uStack_30 = 0x177946;\n      local_3c[0] = FUN_00177dc0();\n      goto LAB_001778fb;\n    }\n    pbVar9 = (byte *)0x0;\nLAB_001778cf:\n    uStack_30 = 0x1778da;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_001774c0();\n  }\n  if (local_24 != (byte *)0x0) {\n    local_3c[0] = FUN_0016dee0();\n  }\nLAB_001778fb:\n  puVar6 = (undefined4 *)FUN_0016dee0();\n  return puVar6;\n}\n\n" (function_definition "undefined4 * FUN_001774c0(void)\n\n{\n  uint *puVar1;\n  char cVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  int iVar8;\n  byte *pbVar9;\n  int unaff_EBP;\n  char *pcVar10;\n  byte *pbVar11;\n  bool bVar12;\n  undefined1 uVar13;\n  bool bVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  byte bVar17;\n  int local_3c [3];\n  undefined4 uStack_30;\n  int *local_28;\n  byte *local_24;\n  undefined4 local_20;\n  \n  bVar17 = 0;\n  iVar5 = FUN_0004fb82();\n  pcVar10 = *(char **)(iVar5 + 0xc);\n  cVar2 = *pcVar10;\n  if (cVar2 == 'L') {\n    puVar6 = (undefined4 *)FUN_00177210();\n    return puVar6;\n  }\n  if (cVar2 == 'T') {\n    puVar6 = (undefined4 *)FUN_0016e210();\n    return puVar6;\n  }\n  if (cVar2 == 's') {\n    if (pcVar10[1] == 'r') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      local_3c[0] = iVar5;\n      FUN_00175280();\n      iVar8 = FUN_00175e60();\n      if (**(char **)(iVar5 + 0xc) == 'I') {\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }\n      local_3c[0] = iVar8;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x17759d;\n      FUN_001774c0();\n      local_3c[0] = 0;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }\n  else if (cVar2 == 'f') {\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }\n  }\n  else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }\n  uStack_30 = 0x177541;\n  local_28 = (int *)FUN_00175bc0();\n  if (local_28 == (int *)0x0) {\n    return (undefined4 *)0x0;\n  }\n  iVar8 = *local_28;\n  if (iVar8 == 0x31) {\n    puVar6 = (undefined4 *)local_28[2];\n    local_24 = (byte *)*puVar6;\n    puVar1 = (uint *)(iVar5 + 0x2c);\n    bVar12 = CARRY4(*puVar1,puVar6[2] - 2);\n    *puVar1 = *puVar1 + (puVar6[2] - 2);\n    bVar15 = *puVar1 == 0;\n    iVar8 = 3;\n    pbVar9 = local_24;\n    pbVar11 = (byte *)(unaff_EBP + 0xc19be);\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) == bVar12) {\n      local_3c[0] = iVar5;\n      local_3c[0] = FUN_00175280();\n      goto LAB_001778fb;\n    }\n    iVar8 = puVar6[3];\n    if (iVar8 != 1) {\n      if (iVar8 < 2) goto joined_r0x00177952;\n      if (iVar8 == 2) {\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }\n      if (iVar8 != 3) {\n        return (undefined4 *)0x0;\n      }\n      bVar12 = false;\n      bVar15 = local_24 == (byte *)0x0;\n      if (bVar15) {\n        return (undefined4 *)0x0;\n      }\n      iVar8 = 3;\n      pbVar9 = local_24;\n      pbVar11 = (byte *)(unaff_EBP + 0xc177f);\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar12 && !bVar15) == bVar12) {\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }\n      else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }\n      uStack_30 = 0x177ac4;\n      FUN_001774c0();\n      uStack_30 = 0x177acd;\n      local_3c[0] = FUN_001774c0();\n      if (local_3c[0] == 0) {\n        return (undefined4 *)0x0;\n      }\nLAB_0017779c:\n      local_3c[0] = FUN_0016dee0();\n      local_3c[0] = FUN_0016dee0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    bVar3 = *local_24;\n    if (((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == local_24[1])) {\n      bVar3 = **(byte **)(iVar5 + 0xc);\n      bVar12 = bVar3 < 0x5f;\n      bVar15 = bVar3 == 0x5f;\n      pbVar9 = (byte *)0x1;\n      if (bVar15) {\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }\n    }\n    else {\nLAB_001778af:\n      bVar12 = false;\n      pbVar9 = (byte *)0x0;\n      bVar15 = true;\n    }\n    iVar5 = 3;\n    pbVar11 = (byte *)(unaff_EBP + 0xc1779);\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *local_24 < *pbVar11;\n      bVar15 = *local_24 == *pbVar11;\n      local_24 = local_24 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) != bVar12) goto LAB_001778cf;\n    uStack_30 = 0x1779bb;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_00177370();\n  }\n  else {\n    if (iVar8 == 0x32) {\n      iVar8 = local_28[2];\n      if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }\n      uStack_30 = 0x1779e0;\n      local_3c[0] = FUN_001774c0();\n      goto LAB_001778fb;\n    }\n    if (iVar8 != 0x33) {\n      return (undefined4 *)0x0;\n    }\n    if (**(char **)(iVar5 + 0xc) == '_') {\n      *(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;\n      uStack_30 = 0x177946;\n      local_3c[0] = FUN_00177dc0();\n      goto LAB_001778fb;\n    }\n    pbVar9 = (byte *)0x0;\nLAB_001778cf:\n    uStack_30 = 0x1778da;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_001774c0();\n  }\n  if (local_24 != (byte *)0x0) {\n    local_3c[0] = FUN_0016dee0();\n  }\nLAB_001778fb:\n  puVar6 = (undefined4 *)FUN_0016dee0();\n  return puVar6;\n}" type_identifier (pointer_declarator "* FUN_001774c0(void)" * (function_declarator "FUN_001774c0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n  uint *puVar1;\n  char cVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  int iVar8;\n  byte *pbVar9;\n  int unaff_EBP;\n  char *pcVar10;\n  byte *pbVar11;\n  bool bVar12;\n  undefined1 uVar13;\n  bool bVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  byte bVar17;\n  int local_3c [3];\n  undefined4 uStack_30;\n  int *local_28;\n  byte *local_24;\n  undefined4 local_20;\n  \n  bVar17 = 0;\n  iVar5 = FUN_0004fb82();\n  pcVar10 = *(char **)(iVar5 + 0xc);\n  cVar2 = *pcVar10;\n  if (cVar2 == 'L') {\n    puVar6 = (undefined4 *)FUN_00177210();\n    return puVar6;\n  }\n  if (cVar2 == 'T') {\n    puVar6 = (undefined4 *)FUN_0016e210();\n    return puVar6;\n  }\n  if (cVar2 == 's') {\n    if (pcVar10[1] == 'r') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      local_3c[0] = iVar5;\n      FUN_00175280();\n      iVar8 = FUN_00175e60();\n      if (**(char **)(iVar5 + 0xc) == 'I') {\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }\n      local_3c[0] = iVar8;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x17759d;\n      FUN_001774c0();\n      local_3c[0] = 0;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }\n  else if (cVar2 == 'f') {\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }\n  }\n  else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }\n  uStack_30 = 0x177541;\n  local_28 = (int *)FUN_00175bc0();\n  if (local_28 == (int *)0x0) {\n    return (undefined4 *)0x0;\n  }\n  iVar8 = *local_28;\n  if (iVar8 == 0x31) {\n    puVar6 = (undefined4 *)local_28[2];\n    local_24 = (byte *)*puVar6;\n    puVar1 = (uint *)(iVar5 + 0x2c);\n    bVar12 = CARRY4(*puVar1,puVar6[2] - 2);\n    *puVar1 = *puVar1 + (puVar6[2] - 2);\n    bVar15 = *puVar1 == 0;\n    iVar8 = 3;\n    pbVar9 = local_24;\n    pbVar11 = (byte *)(unaff_EBP + 0xc19be);\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) == bVar12) {\n      local_3c[0] = iVar5;\n      local_3c[0] = FUN_00175280();\n      goto LAB_001778fb;\n    }\n    iVar8 = puVar6[3];\n    if (iVar8 != 1) {\n      if (iVar8 < 2) goto joined_r0x00177952;\n      if (iVar8 == 2) {\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }\n      if (iVar8 != 3) {\n        return (undefined4 *)0x0;\n      }\n      bVar12 = false;\n      bVar15 = local_24 == (byte *)0x0;\n      if (bVar15) {\n        return (undefined4 *)0x0;\n      }\n      iVar8 = 3;\n      pbVar9 = local_24;\n      pbVar11 = (byte *)(unaff_EBP + 0xc177f);\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar12 && !bVar15) == bVar12) {\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }\n      else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }\n      uStack_30 = 0x177ac4;\n      FUN_001774c0();\n      uStack_30 = 0x177acd;\n      local_3c[0] = FUN_001774c0();\n      if (local_3c[0] == 0) {\n        return (undefined4 *)0x0;\n      }\nLAB_0017779c:\n      local_3c[0] = FUN_0016dee0();\n      local_3c[0] = FUN_0016dee0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    bVar3 = *local_24;\n    if (((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == local_24[1])) {\n      bVar3 = **(byte **)(iVar5 + 0xc);\n      bVar12 = bVar3 < 0x5f;\n      bVar15 = bVar3 == 0x5f;\n      pbVar9 = (byte *)0x1;\n      if (bVar15) {\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }\n    }\n    else {\nLAB_001778af:\n      bVar12 = false;\n      pbVar9 = (byte *)0x0;\n      bVar15 = true;\n    }\n    iVar5 = 3;\n    pbVar11 = (byte *)(unaff_EBP + 0xc1779);\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *local_24 < *pbVar11;\n      bVar15 = *local_24 == *pbVar11;\n      local_24 = local_24 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) != bVar12) goto LAB_001778cf;\n    uStack_30 = 0x1779bb;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_00177370();\n  }\n  else {\n    if (iVar8 == 0x32) {\n      iVar8 = local_28[2];\n      if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }\n      uStack_30 = 0x1779e0;\n      local_3c[0] = FUN_001774c0();\n      goto LAB_001778fb;\n    }\n    if (iVar8 != 0x33) {\n      return (undefined4 *)0x0;\n    }\n    if (**(char **)(iVar5 + 0xc) == '_') {\n      *(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;\n      uStack_30 = 0x177946;\n      local_3c[0] = FUN_00177dc0();\n      goto LAB_001778fb;\n    }\n    pbVar9 = (byte *)0x0;\nLAB_001778cf:\n    uStack_30 = 0x1778da;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_001774c0();\n  }\n  if (local_24 != (byte *)0x0) {\n    local_3c[0] = FUN_0016dee0();\n  }\nLAB_001778fb:\n  puVar6 = (undefined4 *)FUN_0016dee0();\n  return puVar6;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "undefined1 uVar13;" type_identifier identifier ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "undefined1 uVar16;" type_identifier identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "int local_3c [3];" primitive_type (array_declarator "local_3c [3]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_30;" type_identifier identifier ;) (declaration "int *local_28;" primitive_type (pointer_declarator "*local_28" * identifier) ;) (declaration "byte *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = FUN_0004fb82();" (assignment_expression "iVar5 = FUN_0004fb82()" identifier = (call_expression "FUN_0004fb82()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar10 = *(char **)(iVar5 + 0xc);" (assignment_expression "pcVar10 = *(char **)(iVar5 + 0xc)" identifier = (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "cVar2 = *pcVar10;" (assignment_expression "cVar2 = *pcVar10" identifier = (pointer_expression "*pcVar10" * identifier)) ;) (if_statement "if (cVar2 == 'L') {\n    puVar6 = (undefined4 *)FUN_00177210();\n    return puVar6;\n  }" if (parenthesized_expression "(cVar2 == 'L')" ( (binary_expression "cVar2 == 'L'" identifier == (char_literal "'L'" ' character ')) )) (compound_statement "{\n    puVar6 = (undefined4 *)FUN_00177210();\n    return puVar6;\n  }" { (expression_statement "puVar6 = (undefined4 *)FUN_00177210();" (assignment_expression "puVar6 = (undefined4 *)FUN_00177210()" identifier = (cast_expression "(undefined4 *)FUN_00177210()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00177210()" identifier (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) })) (if_statement "if (cVar2 == 'T') {\n    puVar6 = (undefined4 *)FUN_0016e210();\n    return puVar6;\n  }" if (parenthesized_expression "(cVar2 == 'T')" ( (binary_expression "cVar2 == 'T'" identifier == (char_literal "'T'" ' character ')) )) (compound_statement "{\n    puVar6 = (undefined4 *)FUN_0016e210();\n    return puVar6;\n  }" { (expression_statement "puVar6 = (undefined4 *)FUN_0016e210();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016e210()" identifier = (cast_expression "(undefined4 *)FUN_0016e210()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0016e210()" identifier (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) })) (if_statement "if (cVar2 == 's') {\n    if (pcVar10[1] == 'r') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      local_3c[0] = iVar5;\n      FUN_00175280();\n      iVar8 = FUN_00175e60();\n      if (**(char **)(iVar5 + 0xc) == 'I') {\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }\n      local_3c[0] = iVar8;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x17759d;\n      FUN_001774c0();\n      local_3c[0] = 0;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }\n  else if (cVar2 == 'f') {\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }\n  }\n  else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }" if (parenthesized_expression "(cVar2 == 's')" ( (binary_expression "cVar2 == 's'" identifier == (char_literal "'s'" ' character ')) )) (compound_statement "{\n    if (pcVar10[1] == 'r') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      local_3c[0] = iVar5;\n      FUN_00175280();\n      iVar8 = FUN_00175e60();\n      if (**(char **)(iVar5 + 0xc) == 'I') {\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }\n      local_3c[0] = iVar8;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x17759d;\n      FUN_001774c0();\n      local_3c[0] = 0;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }" { (if_statement "if (pcVar10[1] == 'r') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      local_3c[0] = iVar5;\n      FUN_00175280();\n      iVar8 = FUN_00175e60();\n      if (**(char **)(iVar5 + 0xc) == 'I') {\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }\n      local_3c[0] = iVar8;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" if (parenthesized_expression "(pcVar10[1] == 'r')" ( (binary_expression "pcVar10[1] == 'r'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) == (char_literal "'r'" ' character ')) )) (compound_statement "{\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      local_3c[0] = iVar5;\n      FUN_00175280();\n      iVar8 = FUN_00175e60();\n      if (**(char **)(iVar5 + 0xc) == 'I') {\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }\n      local_3c[0] = iVar8;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" { (expression_statement "*(char **)(iVar5 + 0xc) = pcVar10 + 2;" (assignment_expression "*(char **)(iVar5 + 0xc) = pcVar10 + 2" (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar10 + 2" identifier + number_literal)) ;) (expression_statement "local_3c[0] = iVar5;" (assignment_expression "local_3c[0] = iVar5" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00175280();" (call_expression "FUN_00175280()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar8 = FUN_00175e60();" (assignment_expression "iVar8 = FUN_00175e60()" identifier = (call_expression "FUN_00175e60()" identifier (argument_list "()" ( )))) ;) (if_statement "if (**(char **)(iVar5 + 0xc) == 'I') {\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }" if (parenthesized_expression "(**(char **)(iVar5 + 0xc) == 'I')" ( (binary_expression "**(char **)(iVar5 + 0xc) == 'I'" (pointer_expression "**(char **)(iVar5 + 0xc)" * (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) == (char_literal "'I'" ' character ')) )) (compound_statement "{\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }" { (expression_statement "uStack_30 = 0x177887;" (assignment_expression "uStack_30 = 0x177887" identifier = number_literal) ;) (expression_statement "local_3c[0] = FUN_00177490();" (assignment_expression "local_3c[0] = FUN_00177490()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_00177490()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar8 = FUN_0016dee0();" (assignment_expression "iVar8 = FUN_0016dee0()" identifier = (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( )))) ;) })) (expression_statement "local_3c[0] = iVar8;" (assignment_expression "local_3c[0] = iVar8" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6 = (undefined4 *)FUN_0016dee0();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016dee0()" identifier = (cast_expression "(undefined4 *)FUN_0016dee0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) })) (if_statement "if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x17759d;\n      FUN_001774c0();\n      local_3c[0] = 0;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" if (parenthesized_expression "(pcVar10[1] == 'p')" ( (binary_expression "pcVar10[1] == 'p'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) == (char_literal "'p'" ' character ')) )) (compound_statement "{\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x17759d;\n      FUN_001774c0();\n      local_3c[0] = 0;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" { (expression_statement "*(char **)(iVar5 + 0xc) = pcVar10 + 2;" (assignment_expression "*(char **)(iVar5 + 0xc) = pcVar10 + 2" (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar10 + 2" identifier + number_literal)) ;) (expression_statement "uStack_30 = 0x17759d;" (assignment_expression "uStack_30 = 0x17759d" identifier = number_literal) ;) (expression_statement "FUN_001774c0();" (call_expression "FUN_001774c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_3c[0] = 0;" (assignment_expression "local_3c[0] = 0" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)FUN_0016dee0();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016dee0()" identifier = (cast_expression "(undefined4 *)FUN_0016dee0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) })) }) (else_clause "else if (cVar2 == 'f') {\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }\n  }\n  else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }" else (if_statement "if (cVar2 == 'f') {\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }\n  }\n  else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }" if (parenthesized_expression "(cVar2 == 'f')" ( (binary_expression "cVar2 == 'f'" identifier == (char_literal "'f'" ' character ')) )) (compound_statement "{\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }\n  }" { (if_statement "if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }" if (parenthesized_expression "(pcVar10[1] == 'p')" ( (binary_expression "pcVar10[1] == 'p'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) == (char_literal "'p'" ' character ')) )) (compound_statement "{\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }" { (expression_statement "*(char **)(iVar5 + 0xc) = pcVar10 + 2;" (assignment_expression "*(char **)(iVar5 + 0xc) = pcVar10 + 2" (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar10 + 2" identifier + number_literal)) ;) (if_statement "if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }" if (parenthesized_expression "(pcVar10[2] == 'T')" ( (binary_expression "pcVar10[2] == 'T'" (subscript_expression "pcVar10[2]" identifier [ number_literal ]) == (char_literal "'T'" ' character ')) )) (compound_statement "{\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "*(char **)(iVar5 + 0xc) = pcVar10 + 3;" (assignment_expression "*(char **)(iVar5 + 0xc) = pcVar10 + 3" (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar10 + 3" identifier + number_literal)) ;) }) (else_clause "else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }" else (compound_statement "{\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }" { (expression_statement "uStack_30 = 0x1775d7;" (assignment_expression "uStack_30 = 0x1775d7" identifier = number_literal) ;) (expression_statement "uVar7 = FUN_0016e1d0();" (assignment_expression "uVar7 = FUN_0016e1d0()" identifier = (call_expression "FUN_0016e1d0()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar8 = uVar7 + 1;" (assignment_expression "iVar8 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }" if (parenthesized_expression "((uVar7 & 0x7fffffff) == 0x7fffffff)" ( (binary_expression "(uVar7 & 0x7fffffff) == 0x7fffffff" (parenthesized_expression "(uVar7 & 0x7fffffff)" ( (binary_expression "uVar7 & 0x7fffffff" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          return (undefined4 *)0x0;\n        }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) }))) (expression_statement "iVar4 = *(int *)(iVar5 + 0x14);" (assignment_expression "iVar4 = *(int *)(iVar5 + 0x14)" identifier = (pointer_expression "*(int *)(iVar5 + 0x14)" * (cast_expression "(int *)(iVar5 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }" if (parenthesized_expression "(*(int *)(iVar5 + 0x18) <= iVar4)" ( (binary_expression "*(int *)(iVar5 + 0x18) <= iVar4" (pointer_expression "*(int *)(iVar5 + 0x18)" * (cast_expression "(int *)(iVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n        return (undefined4 *)0x0;\n      }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));" (assignment_expression "puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10))" identifier = (cast_expression "(undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 * 0x10 + *(int *)(iVar5 + 0x10))" ( (binary_expression "iVar4 * 0x10 + *(int *)(iVar5 + 0x10)" (binary_expression "iVar4 * 0x10" identifier * number_literal) + (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) )))) ;) (expression_statement "puVar6[1] = 0;" (assignment_expression "puVar6[1] = 0" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(iVar5 + 0x14) = iVar4 + 1;" (assignment_expression "*(int *)(iVar5 + 0x14) = iVar4 + 1" (pointer_expression "*(int *)(iVar5 + 0x14)" * (cast_expression "(int *)(iVar5 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "*puVar6 = 6;" (assignment_expression "*puVar6 = 6" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "puVar6[2] = iVar8;" (assignment_expression "puVar6[2] = iVar8" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (return_statement "return puVar6;" return identifier ;) })) }) (else_clause "else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }" else (compound_statement "{\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }" { (if_statement "if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" if (parenthesized_expression "((byte)(cVar2 - 0x30U) < 10)" ( (binary_expression "(byte)(cVar2 - 0x30U) < 10" (call_expression "(byte)(cVar2 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 - 0x30U)" ( (binary_expression "cVar2 - 0x30U" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" { (labeled_statement "LAB_00177505:\n      uStack_30 = 0x17750c;" statement_identifier : (expression_statement "uStack_30 = 0x17750c;" (assignment_expression "uStack_30 = 0x17750c" identifier = number_literal) ;)) (expression_statement "puVar6 = (undefined4 *)FUN_00175e60();" (assignment_expression "puVar6 = (undefined4 *)FUN_00175e60()" identifier = (cast_expression "(undefined4 *)FUN_00175e60()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00175e60()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }" if (parenthesized_expression "(puVar6 == (undefined4 *)0x0)" ( (binary_expression "puVar6 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return (undefined4 *)0x0;\n      }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }" if (parenthesized_expression "(**(char **)(iVar5 + 0xc) != 'I')" ( (binary_expression "**(char **)(iVar5 + 0xc) != 'I'" (pointer_expression "**(char **)(iVar5 + 0xc)" * (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) != (char_literal "'I'" ' character ')) )) (compound_statement "{\n        return puVar6;\n      }" { (return_statement "return puVar6;" return identifier ;) })) (expression_statement "uStack_30 = 0x1777e7;" (assignment_expression "uStack_30 = 0x1777e7" identifier = number_literal) ;) (expression_statement "local_3c[0] = FUN_00177490();" (assignment_expression "local_3c[0] = FUN_00177490()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_00177490()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar6 = (undefined4 *)FUN_0016dee0();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016dee0()" identifier = (cast_expression "(undefined4 *)FUN_0016dee0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) })) (if_statement "if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" if (parenthesized_expression "(cVar2 == 'o')" ( (binary_expression "cVar2 == 'o'" identifier == (char_literal "'o'" ' character ')) )) (compound_statement "{\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }" { (if_statement "if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }" if (parenthesized_expression "(pcVar10[1] == 'n')" ( (binary_expression "pcVar10[1] == 'n'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) == (char_literal "'n'" ' character ')) )) (compound_statement "{\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }" { (expression_statement "*(char **)(iVar5 + 0xc) = pcVar10 + 2;" (assignment_expression "*(char **)(iVar5 + 0xc) = pcVar10 + 2" (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar10 + 2" identifier + number_literal)) ;) (goto_statement "goto LAB_00177505;" goto statement_identifier ;) })) }) (else_clause "else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" else (if_statement "if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" if (parenthesized_expression "(((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l'))" ( (binary_expression "((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')" (parenthesized_expression "((cVar2 == 'i') || (cVar2 == 't'))" ( (binary_expression "(cVar2 == 'i') || (cVar2 == 't')" (parenthesized_expression "(cVar2 == 'i')" ( (binary_expression "cVar2 == 'i'" identifier == (char_literal "'i'" ' character ')) )) || (parenthesized_expression "(cVar2 == 't')" ( (binary_expression "cVar2 == 't'" identifier == (char_literal "'t'" ' character ')) ))) )) && (parenthesized_expression "(pcVar10[1] == 'l')" ( (binary_expression "pcVar10[1] == 'l'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) == (char_literal "'l'" ' character ')) ))) )) (compound_statement "{\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" { (if_statement "if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }" if (parenthesized_expression "(cVar2 == 't')" ( (binary_expression "cVar2 == 't'" identifier == (char_literal "'t'" ' character ')) )) (compound_statement "{\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }" { (expression_statement "local_3c[0] = iVar5;" (assignment_expression "local_3c[0] = iVar5" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00175280();" (call_expression "FUN_00175280()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar10 = *(char **)(iVar5 + 0xc);" (assignment_expression "pcVar10 = *(char **)(iVar5 + 0xc)" identifier = (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }" if (parenthesized_expression "(pcVar10[1] == '\0')" ( (binary_expression "pcVar10[1] == '\0'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          return (undefined4 *)0x0;\n        }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) })) (expression_statement "*(char **)(iVar5 + 0xc) = pcVar10 + 2;" (assignment_expression "*(char **)(iVar5 + 0xc) = pcVar10 + 2" (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar10 + 2" identifier + number_literal)) ;) (expression_statement "uStack_30 = 0x177862;" (assignment_expression "uStack_30 = 0x177862" identifier = number_literal) ;) (expression_statement "local_3c[0] = FUN_00177dc0();" (assignment_expression "local_3c[0] = FUN_00177dc0()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_00177dc0()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar6 = (undefined4 *)FUN_0016dee0();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016dee0()" identifier = (cast_expression "(undefined4 *)FUN_0016dee0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) })))) }))))) (expression_statement "uStack_30 = 0x177541;" (assignment_expression "uStack_30 = 0x177541" identifier = number_literal) ;) (expression_statement "local_28 = (int *)FUN_00175bc0();" (assignment_expression "local_28 = (int *)FUN_00175bc0()" identifier = (cast_expression "(int *)FUN_00175bc0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00175bc0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (local_28 == (int *)0x0) {\n    return (undefined4 *)0x0;\n  }" if (parenthesized_expression "(local_28 == (int *)0x0)" ( (binary_expression "local_28 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return (undefined4 *)0x0;\n  }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "iVar8 = *local_28;" (assignment_expression "iVar8 = *local_28" identifier = (pointer_expression "*local_28" * identifier)) ;) (if_statement "if (iVar8 == 0x31) {\n    puVar6 = (undefined4 *)local_28[2];\n    local_24 = (byte *)*puVar6;\n    puVar1 = (uint *)(iVar5 + 0x2c);\n    bVar12 = CARRY4(*puVar1,puVar6[2] - 2);\n    *puVar1 = *puVar1 + (puVar6[2] - 2);\n    bVar15 = *puVar1 == 0;\n    iVar8 = 3;\n    pbVar9 = local_24;\n    pbVar11 = (byte *)(unaff_EBP + 0xc19be);\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) == bVar12) {\n      local_3c[0] = iVar5;\n      local_3c[0] = FUN_00175280();\n      goto LAB_001778fb;\n    }\n    iVar8 = puVar6[3];\n    if (iVar8 != 1) {\n      if (iVar8 < 2) goto joined_r0x00177952;\n      if (iVar8 == 2) {\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }\n      if (iVar8 != 3) {\n        return (undefined4 *)0x0;\n      }\n      bVar12 = false;\n      bVar15 = local_24 == (byte *)0x0;\n      if (bVar15) {\n        return (undefined4 *)0x0;\n      }\n      iVar8 = 3;\n      pbVar9 = local_24;\n      pbVar11 = (byte *)(unaff_EBP + 0xc177f);\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar12 && !bVar15) == bVar12) {\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }\n      else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }\n      uStack_30 = 0x177ac4;\n      FUN_001774c0();\n      uStack_30 = 0x177acd;\n      local_3c[0] = FUN_001774c0();\n      if (local_3c[0] == 0) {\n        return (undefined4 *)0x0;\n      }\nLAB_0017779c:\n      local_3c[0] = FUN_0016dee0();\n      local_3c[0] = FUN_0016dee0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    bVar3 = *local_24;\n    if (((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == local_24[1])) {\n      bVar3 = **(byte **)(iVar5 + 0xc);\n      bVar12 = bVar3 < 0x5f;\n      bVar15 = bVar3 == 0x5f;\n      pbVar9 = (byte *)0x1;\n      if (bVar15) {\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }\n    }\n    else {\nLAB_001778af:\n      bVar12 = false;\n      pbVar9 = (byte *)0x0;\n      bVar15 = true;\n    }\n    iVar5 = 3;\n    pbVar11 = (byte *)(unaff_EBP + 0xc1779);\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *local_24 < *pbVar11;\n      bVar15 = *local_24 == *pbVar11;\n      local_24 = local_24 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) != bVar12) goto LAB_001778cf;\n    uStack_30 = 0x1779bb;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_00177370();\n  }\n  else {\n    if (iVar8 == 0x32) {\n      iVar8 = local_28[2];\n      if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }\n      uStack_30 = 0x1779e0;\n      local_3c[0] = FUN_001774c0();\n      goto LAB_001778fb;\n    }\n    if (iVar8 != 0x33) {\n      return (undefined4 *)0x0;\n    }\n    if (**(char **)(iVar5 + 0xc) == '_') {\n      *(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;\n      uStack_30 = 0x177946;\n      local_3c[0] = FUN_00177dc0();\n      goto LAB_001778fb;\n    }\n    pbVar9 = (byte *)0x0;\nLAB_001778cf:\n    uStack_30 = 0x1778da;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_001774c0();\n  }" if (parenthesized_expression "(iVar8 == 0x31)" ( (binary_expression "iVar8 == 0x31" identifier == number_literal) )) (compound_statement "{\n    puVar6 = (undefined4 *)local_28[2];\n    local_24 = (byte *)*puVar6;\n    puVar1 = (uint *)(iVar5 + 0x2c);\n    bVar12 = CARRY4(*puVar1,puVar6[2] - 2);\n    *puVar1 = *puVar1 + (puVar6[2] - 2);\n    bVar15 = *puVar1 == 0;\n    iVar8 = 3;\n    pbVar9 = local_24;\n    pbVar11 = (byte *)(unaff_EBP + 0xc19be);\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) == bVar12) {\n      local_3c[0] = iVar5;\n      local_3c[0] = FUN_00175280();\n      goto LAB_001778fb;\n    }\n    iVar8 = puVar6[3];\n    if (iVar8 != 1) {\n      if (iVar8 < 2) goto joined_r0x00177952;\n      if (iVar8 == 2) {\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }\n      if (iVar8 != 3) {\n        return (undefined4 *)0x0;\n      }\n      bVar12 = false;\n      bVar15 = local_24 == (byte *)0x0;\n      if (bVar15) {\n        return (undefined4 *)0x0;\n      }\n      iVar8 = 3;\n      pbVar9 = local_24;\n      pbVar11 = (byte *)(unaff_EBP + 0xc177f);\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar12 && !bVar15) == bVar12) {\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }\n      else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }\n      uStack_30 = 0x177ac4;\n      FUN_001774c0();\n      uStack_30 = 0x177acd;\n      local_3c[0] = FUN_001774c0();\n      if (local_3c[0] == 0) {\n        return (undefined4 *)0x0;\n      }\nLAB_0017779c:\n      local_3c[0] = FUN_0016dee0();\n      local_3c[0] = FUN_0016dee0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    bVar3 = *local_24;\n    if (((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == local_24[1])) {\n      bVar3 = **(byte **)(iVar5 + 0xc);\n      bVar12 = bVar3 < 0x5f;\n      bVar15 = bVar3 == 0x5f;\n      pbVar9 = (byte *)0x1;\n      if (bVar15) {\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }\n    }\n    else {\nLAB_001778af:\n      bVar12 = false;\n      pbVar9 = (byte *)0x0;\n      bVar15 = true;\n    }\n    iVar5 = 3;\n    pbVar11 = (byte *)(unaff_EBP + 0xc1779);\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *local_24 < *pbVar11;\n      bVar15 = *local_24 == *pbVar11;\n      local_24 = local_24 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) != bVar12) goto LAB_001778cf;\n    uStack_30 = 0x1779bb;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_00177370();\n  }" { (expression_statement "puVar6 = (undefined4 *)local_28[2];" (assignment_expression "puVar6 = (undefined4 *)local_28[2]" identifier = (cast_expression "(undefined4 *)local_28[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_28[2]" identifier [ number_literal ]))) ;) (expression_statement "local_24 = (byte *)*puVar6;" (assignment_expression "local_24 = (byte *)*puVar6" identifier = (cast_expression "(byte *)*puVar6" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (expression_statement "puVar1 = (uint *)(iVar5 + 0x2c);" (assignment_expression "puVar1 = (uint *)(iVar5 + 0x2c)" identifier = (cast_expression "(uint *)(iVar5 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c)" ( (binary_expression "iVar5 + 0x2c" identifier + number_literal) )))) ;) (expression_statement "bVar12 = CARRY4(*puVar1,puVar6[2] - 2);" (assignment_expression "bVar12 = CARRY4(*puVar1,puVar6[2] - 2)" identifier = (call_expression "CARRY4(*puVar1,puVar6[2] - 2)" identifier (argument_list "(*puVar1,puVar6[2] - 2)" ( (pointer_expression "*puVar1" * identifier) , (binary_expression "puVar6[2] - 2" (subscript_expression "puVar6[2]" identifier [ number_literal ]) - number_literal) )))) ;) (expression_statement "*puVar1 = *puVar1 + (puVar6[2] - 2);" (assignment_expression "*puVar1 = *puVar1 + (puVar6[2] - 2)" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 + (puVar6[2] - 2)" (pointer_expression "*puVar1" * identifier) + (parenthesized_expression "(puVar6[2] - 2)" ( (binary_expression "puVar6[2] - 2" (subscript_expression "puVar6[2]" identifier [ number_literal ]) - number_literal) )))) ;) (expression_statement "bVar15 = *puVar1 == 0;" (assignment_expression "bVar15 = *puVar1 == 0" identifier = (binary_expression "*puVar1 == 0" (pointer_expression "*puVar1" * identifier) == number_literal)) ;) (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = local_24;" (assignment_expression "pbVar9 = local_24" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)(unaff_EBP + 0xc19be);" (assignment_expression "pbVar11 = (byte *)(unaff_EBP + 0xc19be)" identifier = (cast_expression "(byte *)(unaff_EBP + 0xc19be)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xc19be)" ( (binary_expression "unaff_EBP + 0xc19be" identifier + number_literal) )))) ;) (do_statement "do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar9 < *pbVar11;" (assignment_expression "bVar12 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar9 == *pbVar11;" (assignment_expression "bVar15 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar12 && !bVar15) == bVar12) {\n      local_3c[0] = iVar5;\n      local_3c[0] = FUN_00175280();\n      goto LAB_001778fb;\n    }" if (parenthesized_expression "((!bVar12 && !bVar15) == bVar12)" ( (binary_expression "(!bVar12 && !bVar15) == bVar12" (parenthesized_expression "(!bVar12 && !bVar15)" ( (binary_expression "!bVar12 && !bVar15" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier) )) (compound_statement "{\n      local_3c[0] = iVar5;\n      local_3c[0] = FUN_00175280();\n      goto LAB_001778fb;\n    }" { (expression_statement "local_3c[0] = iVar5;" (assignment_expression "local_3c[0] = iVar5" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_3c[0] = FUN_00175280();" (assignment_expression "local_3c[0] = FUN_00175280()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_00175280()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_001778fb;" goto statement_identifier ;) })) (expression_statement "iVar8 = puVar6[3];" (assignment_expression "iVar8 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (if_statement "if (iVar8 != 1) {\n      if (iVar8 < 2) goto joined_r0x00177952;\n      if (iVar8 == 2) {\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }\n      if (iVar8 != 3) {\n        return (undefined4 *)0x0;\n      }\n      bVar12 = false;\n      bVar15 = local_24 == (byte *)0x0;\n      if (bVar15) {\n        return (undefined4 *)0x0;\n      }\n      iVar8 = 3;\n      pbVar9 = local_24;\n      pbVar11 = (byte *)(unaff_EBP + 0xc177f);\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar12 && !bVar15) == bVar12) {\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }\n      else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }\n      uStack_30 = 0x177ac4;\n      FUN_001774c0();\n      uStack_30 = 0x177acd;\n      local_3c[0] = FUN_001774c0();\n      if (local_3c[0] == 0) {\n        return (undefined4 *)0x0;\n      }\nLAB_0017779c:\n      local_3c[0] = FUN_0016dee0();\n      local_3c[0] = FUN_0016dee0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" if (parenthesized_expression "(iVar8 != 1)" ( (binary_expression "iVar8 != 1" identifier != number_literal) )) (compound_statement "{\n      if (iVar8 < 2) goto joined_r0x00177952;\n      if (iVar8 == 2) {\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }\n      if (iVar8 != 3) {\n        return (undefined4 *)0x0;\n      }\n      bVar12 = false;\n      bVar15 = local_24 == (byte *)0x0;\n      if (bVar15) {\n        return (undefined4 *)0x0;\n      }\n      iVar8 = 3;\n      pbVar9 = local_24;\n      pbVar11 = (byte *)(unaff_EBP + 0xc177f);\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar12 && !bVar15) == bVar12) {\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }\n      else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }\n      uStack_30 = 0x177ac4;\n      FUN_001774c0();\n      uStack_30 = 0x177acd;\n      local_3c[0] = FUN_001774c0();\n      if (local_3c[0] == 0) {\n        return (undefined4 *)0x0;\n      }\nLAB_0017779c:\n      local_3c[0] = FUN_0016dee0();\n      local_3c[0] = FUN_0016dee0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" { (if_statement "if (iVar8 < 2) goto joined_r0x00177952;" if (parenthesized_expression "(iVar8 < 2)" ( (binary_expression "iVar8 < 2" identifier < number_literal) )) (goto_statement "goto joined_r0x00177952;" goto statement_identifier ;)) (if_statement "if (iVar8 == 2) {\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }" if (parenthesized_expression "(iVar8 == 2)" ( (binary_expression "iVar8 == 2" identifier == number_literal) )) (compound_statement "{\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }" { (if_statement "if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }" if (parenthesized_expression "(local_24 == (byte *)0x0)" ( (binary_expression "local_24 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return (undefined4 *)0x0;\n        }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }" if (parenthesized_expression "((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2))))" ( (binary_expression "(((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))" (parenthesized_expression "(((char *)*puVar6)[1] == 'c')" ( (binary_expression "((char *)*puVar6)[1] == 'c'" (subscript_expression "((char *)*puVar6)[1]" (parenthesized_expression "((char *)*puVar6)" ( (cast_expression "(char *)*puVar6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier)) )) [ number_literal ]) == (char_literal "'c'" ' character ')) )) && (parenthesized_expression "((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))" ( (parenthesized_expression "(cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2))" ( (comma_expression "cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)" (assignment_expression "cVar2 = *(char *)*puVar6" identifier = (pointer_expression "*(char *)*puVar6" * (cast_expression "(char *)*puVar6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier)))) , (binary_expression "(byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)" (binary_expression "(byte)(cVar2 + 0x9dU) < 2" (call_expression "(byte)(cVar2 + 0x9dU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 + 0x9dU)" ( (binary_expression "cVar2 + 0x9dU" identifier + number_literal) ))) < number_literal) || (parenthesized_expression "((byte)(cVar2 + 0x8eU) < 2)" ( (binary_expression "(byte)(cVar2 + 0x8eU) < 2" (call_expression "(byte)(cVar2 + 0x8eU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 + 0x8eU)" ( (binary_expression "cVar2 + 0x8eU" identifier + number_literal) ))) < number_literal) )))) )) ))) )) (compound_statement "{\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }" { (expression_statement "local_3c[0] = iVar5;" (assignment_expression "local_3c[0] = iVar5" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_20 = FUN_00175280();" (assignment_expression "local_20 = FUN_00175280()" identifier = (call_expression "FUN_00175280()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar13 = (undefined1 *)0xffffffef < local_3c;" (assignment_expression "uVar13 = (undefined1 *)0xffffffef < local_3c" identifier = (binary_expression "(undefined1 *)0xffffffef < local_3c" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier)) ;) (expression_statement "uVar16 = &stack0x00000000 == (undefined1 *)0x2c;" (assignment_expression "uVar16 = &stack0x00000000 == (undefined1 *)0x2c" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x2c" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x2c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) }) (else_clause "else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }" else (compound_statement "{\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }" { (expression_statement "uVar13 = *local_24 < 0x66;" (assignment_expression "uVar13 = *local_24 < 0x66" identifier = (binary_expression "*local_24 < 0x66" (pointer_expression "*local_24" * identifier) < number_literal)) ;) (expression_statement "uVar16 = *local_24 == 0x66;" (assignment_expression "uVar16 = *local_24 == 0x66" identifier = (binary_expression "*local_24 == 0x66" (pointer_expression "*local_24" * identifier) == number_literal)) ;) (if_statement "if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }" if (parenthesized_expression "((bool)uVar16)" ( (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }" { (expression_statement "uStack_30 = 0x177b21;" (assignment_expression "uStack_30 = 0x177b21" identifier = number_literal) ;) (expression_statement "local_20 = FUN_00175bc0();" (assignment_expression "local_20 = FUN_00175bc0()" identifier = (call_expression "FUN_00175bc0()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }" else (compound_statement "{\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }" { (expression_statement "uStack_30 = 0x177a14;" (assignment_expression "uStack_30 = 0x177a14" identifier = number_literal) ;) (expression_statement "local_20 = FUN_001774c0();" (assignment_expression "local_20 = FUN_001774c0()" identifier = (call_expression "FUN_001774c0()" identifier (argument_list "()" ( )))) ;) }))) }))) (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = local_24;" (assignment_expression "pbVar9 = local_24" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)(unaff_EBP + 0xc05f2);" (assignment_expression "pbVar11 = (byte *)(unaff_EBP + 0xc05f2)" identifier = (cast_expression "(byte *)(unaff_EBP + 0xc05f2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xc05f2)" ( (binary_expression "unaff_EBP + 0xc05f2" identifier + number_literal) )))) ;) (do_statement "do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);" do (compound_statement "{\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "uVar13 = *pbVar9 < *pbVar11;" (assignment_expression "uVar13 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar16)" ( (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;" (assignment_expression "bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13" identifier = (binary_expression "(!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13" (parenthesized_expression "(!(bool)uVar13 && !(bool)uVar16)" ( (binary_expression "!(bool)uVar13 && !(bool)uVar16" (unary_expression "!(bool)uVar13" ! (cast_expression "(bool)uVar13" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar16" ! (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar13" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }" { (expression_statement "uStack_30 = 0x177b13;" (assignment_expression "uStack_30 = 0x177b13" identifier = number_literal) ;) (expression_statement "iVar8 = FUN_00177dc0();" (assignment_expression "iVar8 = FUN_00177dc0()" identifier = (call_expression "FUN_00177dc0()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }" else (compound_statement "{\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }" { (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = local_24;" (assignment_expression "pbVar9 = local_24" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)(unaff_EBP + 0xc0250);" (assignment_expression "pbVar11 = (byte *)(unaff_EBP + 0xc0250)" identifier = (cast_expression "(byte *)(unaff_EBP + 0xc0250)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xc0250)" ( (binary_expression "unaff_EBP + 0xc0250" identifier + number_literal) )))) ;) (do_statement "do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);" do (compound_statement "{\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar9 < *pbVar11;" (assignment_expression "bVar12 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar9 == *pbVar11;" (assignment_expression "bVar15 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (expression_statement "bVar12 = (!bVar12 && !bVar15) == bVar12;" (assignment_expression "bVar12 = (!bVar12 && !bVar15) == bVar12" identifier = (binary_expression "(!bVar12 && !bVar15) == bVar12" (parenthesized_expression "(!bVar12 && !bVar15)" ( (binary_expression "!bVar12 && !bVar15" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (compound_statement "{\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }" { (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = local_24;" (assignment_expression "pbVar9 = local_24" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)(unaff_EBP + 0xba422);" (assignment_expression "pbVar11 = (byte *)(unaff_EBP + 0xba422)" identifier = (cast_expression "(byte *)(unaff_EBP + 0xba422)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xba422)" ( (binary_expression "unaff_EBP + 0xba422" identifier + number_literal) )))) ;) (do_statement "do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);" do (compound_statement "{\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar14 = *pbVar9 < *pbVar11;" (assignment_expression "bVar14 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (if_statement "if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }" if (parenthesized_expression "((!bVar14 && !bVar12) != bVar14)" ( (binary_expression "(!bVar14 && !bVar12) != bVar14" (parenthesized_expression "(!bVar14 && !bVar12)" ( (binary_expression "!bVar14 && !bVar12" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) != identifier) )) (compound_statement "{\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }" { (expression_statement "uStack_30 = 0x177b31;" (assignment_expression "uStack_30 = 0x177b31" identifier = number_literal) ;) (expression_statement "iVar8 = FUN_001774c0();" (assignment_expression "iVar8 = FUN_001774c0()" identifier = (call_expression "FUN_001774c0()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_00177a83;" goto statement_identifier ;) })) })) (expression_statement "uStack_30 = 0x177a75;" (assignment_expression "uStack_30 = 0x177a75" identifier = number_literal) ;) (expression_statement "iVar8 = FUN_00175e60();" (assignment_expression "iVar8 = FUN_00175e60()" identifier = (call_expression "FUN_00175e60()" identifier (argument_list "()" ( )))) ;) (if_statement "if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }" if (parenthesized_expression "(**(char **)(iVar5 + 0xc) == 'I')" ( (binary_expression "**(char **)(iVar5 + 0xc) == 'I'" (pointer_expression "**(char **)(iVar5 + 0xc)" * (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) == (char_literal "'I'" ' character ')) )) (compound_statement "{\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }" { (expression_statement "uStack_30 = 0x177b4b;" (assignment_expression "uStack_30 = 0x177b4b" identifier = number_literal) ;) (expression_statement "local_3c[0] = FUN_00177490();" (assignment_expression "local_3c[0] = FUN_00177490()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_00177490()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar8 = FUN_0016dee0();" (assignment_expression "iVar8 = FUN_0016dee0()" identifier = (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( )))) ;) })) }))) (labeled_statement "LAB_00177a83:\n        local_3c[0] = iVar8;" statement_identifier : (expression_statement "local_3c[0] = iVar8;" (assignment_expression "local_3c[0] = iVar8" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "local_3c[0] = FUN_0016dee0();" (assignment_expression "local_3c[0] = FUN_0016dee0()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar6 = (undefined4 *)FUN_0016dee0();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016dee0()" identifier = (cast_expression "(undefined4 *)FUN_0016dee0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) })) (if_statement "if (iVar8 != 3) {\n        return (undefined4 *)0x0;\n      }" if (parenthesized_expression "(iVar8 != 3)" ( (binary_expression "iVar8 != 3" identifier != number_literal) )) (compound_statement "{\n        return (undefined4 *)0x0;\n      }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar15 = local_24 == (byte *)0x0;" (assignment_expression "bVar15 = local_24 == (byte *)0x0" identifier = (binary_expression "local_24 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar15) {\n        return (undefined4 *)0x0;\n      }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n        return (undefined4 *)0x0;\n      }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = local_24;" (assignment_expression "pbVar9 = local_24" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)(unaff_EBP + 0xc177f);" (assignment_expression "pbVar11 = (byte *)(unaff_EBP + 0xc177f)" identifier = (cast_expression "(byte *)(unaff_EBP + 0xc177f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xc177f)" ( (binary_expression "unaff_EBP + 0xc177f" identifier + number_literal) )))) ;) (do_statement "do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar15);" do (compound_statement "{\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar9 < *pbVar11;" (assignment_expression "bVar12 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar9 == *pbVar11;" (assignment_expression "bVar15 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar12 && !bVar15) == bVar12) {\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }\n      else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }" if (parenthesized_expression "((!bVar12 && !bVar15) == bVar12)" ( (binary_expression "(!bVar12 && !bVar15) == bVar12" (parenthesized_expression "(!bVar12 && !bVar15)" ( (binary_expression "!bVar12 && !bVar15" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier) )) (compound_statement "{\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }" { (expression_statement "uStack_30 = 0x177abb;" (assignment_expression "uStack_30 = 0x177abb" identifier = number_literal) ;) (expression_statement "FUN_001774c0();" (call_expression "FUN_001774c0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }" else (compound_statement "{\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }" { (if_statement "if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }" if (parenthesized_expression "(*local_24 != 0x66)" ( (binary_expression "*local_24 != 0x66" (pointer_expression "*local_24" * identifier) != number_literal) )) (compound_statement "{\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }" { (if_statement "if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }" if (parenthesized_expression "(*local_24 != 0x6e)" ( (binary_expression "*local_24 != 0x6e" (pointer_expression "*local_24" * identifier) != number_literal) )) (compound_statement "{\n            return (undefined4 *)0x0;\n          }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }" if (parenthesized_expression "((local_24[1] != 0x77) && (local_24[1] != 0x61))" ( (binary_expression "(local_24[1] != 0x77) && (local_24[1] != 0x61)" (parenthesized_expression "(local_24[1] != 0x77)" ( (binary_expression "local_24[1] != 0x77" (subscript_expression "local_24[1]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(local_24[1] != 0x61)" ( (binary_expression "local_24[1] != 0x61" (subscript_expression "local_24[1]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n            return (undefined4 *)0x0;\n          }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "uStack_30 = 0x17775a;" (assignment_expression "uStack_30 = 0x17775a" identifier = number_literal) ;) (expression_statement "FUN_00177dc0();" (call_expression "FUN_00177dc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_3c[0] = iVar5;" (assignment_expression "local_3c[0] = iVar5" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00175280();" (call_expression "FUN_00175280()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar10 = *(char **)(iVar5 + 0xc);" (assignment_expression "pcVar10 = *(char **)(iVar5 + 0xc)" identifier = (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "cVar2 = *pcVar10;" (assignment_expression "cVar2 = *pcVar10" identifier = (pointer_expression "*pcVar10" * identifier)) ;) (if_statement "if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }" if (parenthesized_expression "(cVar2 == 'E')" ( (binary_expression "cVar2 == 'E'" identifier == (char_literal "'E'" ' character ')) )) (compound_statement "{\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }" { (expression_statement "*(char **)(iVar5 + 0xc) = pcVar10 + 1;" (assignment_expression "*(char **)(iVar5 + 0xc) = pcVar10 + 1" (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar10 + 1" identifier + number_literal)) ;) (expression_statement "local_3c[0] = 0;" (assignment_expression "local_3c[0] = 0" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }" else (if_statement "if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }" if (parenthesized_expression "(cVar2 == 'p')" ( (binary_expression "cVar2 == 'p'" identifier == (char_literal "'p'" ' character ')) )) (compound_statement "{\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }" { (if_statement "if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }" if (parenthesized_expression "(pcVar10[1] != 'i')" ( (binary_expression "pcVar10[1] != 'i'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) != (char_literal "'i'" ' character ')) )) (compound_statement "{\n              return (undefined4 *)0x0;\n            }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "*(char **)(iVar5 + 0xc) = pcVar10 + 2;" (assignment_expression "*(char **)(iVar5 + 0xc) = pcVar10 + 2" (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar10 + 2" identifier + number_literal)) ;) (expression_statement "uStack_30 = 0x177b83;" (assignment_expression "uStack_30 = 0x177b83" identifier = number_literal) ;) (expression_statement "local_3c[0] = FUN_00177dc0();" (assignment_expression "local_3c[0] = FUN_00177dc0()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_00177dc0()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }" else (compound_statement "{\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }" { (if_statement "if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }" if (parenthesized_expression "(cVar2 != 'i')" ( (binary_expression "cVar2 != 'i'" identifier != (char_literal "'i'" ' character ')) )) (compound_statement "{\n              return (undefined4 *)0x0;\n            }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }" if (parenthesized_expression "(pcVar10[1] != 'l')" ( (binary_expression "pcVar10[1] != 'l'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) != (char_literal "'l'" ' character ')) )) (compound_statement "{\n              return (undefined4 *)0x0;\n            }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "uStack_30 = 0x17779c;" (assignment_expression "uStack_30 = 0x17779c" identifier = number_literal) ;) (expression_statement "local_3c[0] = FUN_001774c0();" (assignment_expression "local_3c[0] = FUN_001774c0()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_001774c0()" identifier (argument_list "()" ( )))) ;) }))))) (goto_statement "goto LAB_0017779c;" goto statement_identifier ;) })) (expression_statement "uStack_30 = 0x177b3f;" (assignment_expression "uStack_30 = 0x177b3f" identifier = number_literal) ;) (expression_statement "FUN_00175bc0();" (call_expression "FUN_00175bc0()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "uStack_30 = 0x177ac4;" (assignment_expression "uStack_30 = 0x177ac4" identifier = number_literal) ;) (expression_statement "FUN_001774c0();" (call_expression "FUN_001774c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uStack_30 = 0x177acd;" (assignment_expression "uStack_30 = 0x177acd" identifier = number_literal) ;) (expression_statement "local_3c[0] = FUN_001774c0();" (assignment_expression "local_3c[0] = FUN_001774c0()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_001774c0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_3c[0] == 0) {\n        return (undefined4 *)0x0;\n      }" if (parenthesized_expression "(local_3c[0] == 0)" ( (binary_expression "local_3c[0] == 0" (subscript_expression "local_3c[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        return (undefined4 *)0x0;\n      }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (labeled_statement "LAB_0017779c:\n      local_3c[0] = FUN_0016dee0();" statement_identifier : (expression_statement "local_3c[0] = FUN_0016dee0();" (assignment_expression "local_3c[0] = FUN_0016dee0()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( )))) ;)) (expression_statement "local_3c[0] = FUN_0016dee0();" (assignment_expression "local_3c[0] = FUN_0016dee0()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar6 = (undefined4 *)FUN_0016dee0();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016dee0()" identifier = (cast_expression "(undefined4 *)FUN_0016dee0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) })) (expression_statement "bVar3 = *local_24;" (assignment_expression "bVar3 = *local_24" identifier = (pointer_expression "*local_24" * identifier)) ;) (if_statement "if (((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == local_24[1])) {\n      bVar3 = **(byte **)(iVar5 + 0xc);\n      bVar12 = bVar3 < 0x5f;\n      bVar15 = bVar3 == 0x5f;\n      pbVar9 = (byte *)0x1;\n      if (bVar15) {\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }\n    }\n    else {\nLAB_001778af:\n      bVar12 = false;\n      pbVar9 = (byte *)0x0;\n      bVar15 = true;\n    }" if (parenthesized_expression "(((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == local_24[1]))" ( (binary_expression "((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == local_24[1])" (parenthesized_expression "((bVar3 == 0x70) || (bVar3 == 0x6d))" ( (binary_expression "(bVar3 == 0x70) || (bVar3 == 0x6d)" (parenthesized_expression "(bVar3 == 0x70)" ( (binary_expression "bVar3 == 0x70" identifier == number_literal) )) || (parenthesized_expression "(bVar3 == 0x6d)" ( (binary_expression "bVar3 == 0x6d" identifier == number_literal) ))) )) && (parenthesized_expression "(bVar3 == local_24[1])" ( (binary_expression "bVar3 == local_24[1]" identifier == (subscript_expression "local_24[1]" identifier [ number_literal ])) ))) )) (compound_statement "{\n      bVar3 = **(byte **)(iVar5 + 0xc);\n      bVar12 = bVar3 < 0x5f;\n      bVar15 = bVar3 == 0x5f;\n      pbVar9 = (byte *)0x1;\n      if (bVar15) {\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }\n    }" { (expression_statement "bVar3 = **(byte **)(iVar5 + 0xc);" (assignment_expression "bVar3 = **(byte **)(iVar5 + 0xc)" identifier = (pointer_expression "**(byte **)(iVar5 + 0xc)" * (pointer_expression "*(byte **)(iVar5 + 0xc)" * (cast_expression "(byte **)(iVar5 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))))) ;) (expression_statement "bVar12 = bVar3 < 0x5f;" (assignment_expression "bVar12 = bVar3 < 0x5f" identifier = (binary_expression "bVar3 < 0x5f" identifier < number_literal)) ;) (expression_statement "bVar15 = bVar3 == 0x5f;" (assignment_expression "bVar15 = bVar3 == 0x5f" identifier = (binary_expression "bVar3 == 0x5f" identifier == number_literal)) ;) (expression_statement "pbVar9 = (byte *)0x1;" (assignment_expression "pbVar9 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (bVar15) {\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }" { (expression_statement "*(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;" (assignment_expression "*(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1" (pointer_expression "*(byte **)(iVar5 + 0xc)" * (cast_expression "(byte **)(iVar5 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = (binary_expression "*(byte **)(iVar5 + 0xc) + 1" (pointer_expression "*(byte **)(iVar5 + 0xc)" * (cast_expression "(byte **)(iVar5 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_001778af;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_001778af:\n      bVar12 = false;\n      pbVar9 = (byte *)0x0;\n      bVar15 = true;\n    }" else (compound_statement "{\nLAB_001778af:\n      bVar12 = false;\n      pbVar9 = (byte *)0x0;\n      bVar15 = true;\n    }" { (labeled_statement "LAB_001778af:\n      bVar12 = false;" statement_identifier : (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;)) (expression_statement "pbVar9 = (byte *)0x0;" (assignment_expression "pbVar9 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) }))) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)(unaff_EBP + 0xc1779);" (assignment_expression "pbVar11 = (byte *)(unaff_EBP + 0xc1779)" identifier = (cast_expression "(byte *)(unaff_EBP + 0xc1779)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xc1779)" ( (binary_expression "unaff_EBP + 0xc1779" identifier + number_literal) )))) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *local_24 < *pbVar11;\n      bVar15 = *local_24 == *pbVar11;\n      local_24 = local_24 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *local_24 < *pbVar11;\n      bVar15 = *local_24 == *pbVar11;\n      local_24 = local_24 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *local_24 < *pbVar11;" (assignment_expression "bVar12 = *local_24 < *pbVar11" identifier = (binary_expression "*local_24 < *pbVar11" (pointer_expression "*local_24" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *local_24 == *pbVar11;" (assignment_expression "bVar15 = *local_24 == *pbVar11" identifier = (binary_expression "*local_24 == *pbVar11" (pointer_expression "*local_24" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "local_24 = local_24 + (uint)bVar17 * -2 + 1;" (assignment_expression "local_24 = local_24 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "local_24 + (uint)bVar17 * -2 + 1" (binary_expression "local_24 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar12 && !bVar15) != bVar12) goto LAB_001778cf;" if (parenthesized_expression "((!bVar12 && !bVar15) != bVar12)" ( (binary_expression "(!bVar12 && !bVar15) != bVar12" (parenthesized_expression "(!bVar12 && !bVar15)" ( (binary_expression "!bVar12 && !bVar15" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_001778cf;" goto statement_identifier ;)) (expression_statement "uStack_30 = 0x1779bb;" (assignment_expression "uStack_30 = 0x1779bb" identifier = number_literal) ;) (expression_statement "local_24 = pbVar9;" (assignment_expression "local_24 = pbVar9" identifier = identifier) ;) (expression_statement "local_3c[0] = FUN_00177370();" (assignment_expression "local_3c[0] = FUN_00177370()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_00177370()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n    if (iVar8 == 0x32) {\n      iVar8 = local_28[2];\n      if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }\n      uStack_30 = 0x1779e0;\n      local_3c[0] = FUN_001774c0();\n      goto LAB_001778fb;\n    }\n    if (iVar8 != 0x33) {\n      return (undefined4 *)0x0;\n    }\n    if (**(char **)(iVar5 + 0xc) == '_') {\n      *(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;\n      uStack_30 = 0x177946;\n      local_3c[0] = FUN_00177dc0();\n      goto LAB_001778fb;\n    }\n    pbVar9 = (byte *)0x0;\nLAB_001778cf:\n    uStack_30 = 0x1778da;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_001774c0();\n  }" else (compound_statement "{\n    if (iVar8 == 0x32) {\n      iVar8 = local_28[2];\n      if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }\n      uStack_30 = 0x1779e0;\n      local_3c[0] = FUN_001774c0();\n      goto LAB_001778fb;\n    }\n    if (iVar8 != 0x33) {\n      return (undefined4 *)0x0;\n    }\n    if (**(char **)(iVar5 + 0xc) == '_') {\n      *(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;\n      uStack_30 = 0x177946;\n      local_3c[0] = FUN_00177dc0();\n      goto LAB_001778fb;\n    }\n    pbVar9 = (byte *)0x0;\nLAB_001778cf:\n    uStack_30 = 0x1778da;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_001774c0();\n  }" { (if_statement "if (iVar8 == 0x32) {\n      iVar8 = local_28[2];\n      if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }\n      uStack_30 = 0x1779e0;\n      local_3c[0] = FUN_001774c0();\n      goto LAB_001778fb;\n    }" if (parenthesized_expression "(iVar8 == 0x32)" ( (binary_expression "iVar8 == 0x32" identifier == number_literal) )) (compound_statement "{\n      iVar8 = local_28[2];\n      if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }\n      uStack_30 = 0x1779e0;\n      local_3c[0] = FUN_001774c0();\n      goto LAB_001778fb;\n    }" { (expression_statement "iVar8 = local_28[2];" (assignment_expression "iVar8 = local_28[2]" identifier = (subscript_expression "local_28[2]" identifier [ number_literal ])) ;) (if_statement "if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }" if (parenthesized_expression "(iVar8 != 1)" ( (binary_expression "iVar8 != 1" identifier != number_literal) )) (compound_statement "{\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }" { (if_statement "if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }" if (parenthesized_expression "(1 < iVar8)" ( (binary_expression "1 < iVar8" number_literal < identifier) )) (compound_statement "{\n          return (undefined4 *)0x0;\n        }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (labeled_statement "joined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }" statement_identifier : (if_statement "if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }" { (expression_statement "local_3c[0] = 0;" (assignment_expression "local_3c[0] = 0" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)FUN_0016dee0();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016dee0()" identifier = (cast_expression "(undefined4 *)FUN_0016dee0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) }))) (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "uStack_30 = 0x1779e0;" (assignment_expression "uStack_30 = 0x1779e0" identifier = number_literal) ;) (expression_statement "local_3c[0] = FUN_001774c0();" (assignment_expression "local_3c[0] = FUN_001774c0()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_001774c0()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_001778fb;" goto statement_identifier ;) })) (if_statement "if (iVar8 != 0x33) {\n      return (undefined4 *)0x0;\n    }" if (parenthesized_expression "(iVar8 != 0x33)" ( (binary_expression "iVar8 != 0x33" identifier != number_literal) )) (compound_statement "{\n      return (undefined4 *)0x0;\n    }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (**(char **)(iVar5 + 0xc) == '_') {\n      *(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;\n      uStack_30 = 0x177946;\n      local_3c[0] = FUN_00177dc0();\n      goto LAB_001778fb;\n    }" if (parenthesized_expression "(**(char **)(iVar5 + 0xc) == '_')" ( (binary_expression "**(char **)(iVar5 + 0xc) == '_'" (pointer_expression "**(char **)(iVar5 + 0xc)" * (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) == (char_literal "'_'" ' character ')) )) (compound_statement "{\n      *(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;\n      uStack_30 = 0x177946;\n      local_3c[0] = FUN_00177dc0();\n      goto LAB_001778fb;\n    }" { (expression_statement "*(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;" (assignment_expression "*(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1" (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = (binary_expression "*(char **)(iVar5 + 0xc) + 1" (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "uStack_30 = 0x177946;" (assignment_expression "uStack_30 = 0x177946" identifier = number_literal) ;) (expression_statement "local_3c[0] = FUN_00177dc0();" (assignment_expression "local_3c[0] = FUN_00177dc0()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_00177dc0()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_001778fb;" goto statement_identifier ;) })) (expression_statement "pbVar9 = (byte *)0x0;" (assignment_expression "pbVar9 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_001778cf:\n    uStack_30 = 0x1778da;" statement_identifier : (expression_statement "uStack_30 = 0x1778da;" (assignment_expression "uStack_30 = 0x1778da" identifier = number_literal) ;)) (expression_statement "local_24 = pbVar9;" (assignment_expression "local_24 = pbVar9" identifier = identifier) ;) (expression_statement "local_3c[0] = FUN_001774c0();" (assignment_expression "local_3c[0] = FUN_001774c0()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_001774c0()" identifier (argument_list "()" ( )))) ;) }))) (if_statement "if (local_24 != (byte *)0x0) {\n    local_3c[0] = FUN_0016dee0();\n  }" if (parenthesized_expression "(local_24 != (byte *)0x0)" ( (binary_expression "local_24 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_3c[0] = FUN_0016dee0();\n  }" { (expression_statement "local_3c[0] = FUN_0016dee0();" (assignment_expression "local_3c[0] = FUN_0016dee0()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( )))) ;) })) (labeled_statement "LAB_001778fb:\n  puVar6 = (undefined4 *)FUN_0016dee0();" statement_identifier : (expression_statement "puVar6 = (undefined4 *)FUN_0016dee0();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016dee0()" identifier = (cast_expression "(undefined4 *)FUN_0016dee0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( ))))) ;)) (return_statement "return puVar6;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */\n\ndemangle_component * __regparm3 d_expression_1(d_info *di)\n\n{\n  int *piVar1;\n  char cVar2;\n  byte bVar3;\n  demangle_component_type dVar4;\n  demangle_component *pdVar5;\n  uint uVar6;\n  char *pcVar7;\n  demangle_component *pdVar8;\n  demangle_component *right;\n  demangle_component *pdVar9;\n  int iVar10;\n  char *pcVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  bool bVar17;\n  bool bVar18;\n  undefined1 uVar19;\n  byte bVar20;\n  d_info *di_00;\n  d_info *in_stack_ffffffd4;\n  demangle_component *local_20;\n  \n  bVar20 = 0;\n  pcVar11 = di->n;\n  cVar2 = *pcVar11;\n  if (cVar2 == 'L') {\n    pdVar5 = d_expr_primary(di);\n    return pdVar5;\n  }\n  if (cVar2 == 'T') {\n    pdVar5 = d_template_param(di);\n    return pdVar5;\n  }\n  if (cVar2 == 's') {\n    if (pcVar11[1] == 'r') {\n      di->n = pcVar11 + 2;\n      di_00 = di;\n      pdVar5 = cplus_demangle_type(di);\n      pdVar9 = d_unqualified_name(di_00);\n      if (*di->n == 'I') {\n        pdVar8 = d_template_args(di);\n        pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);\n      }\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_QUAL_NAME,pdVar5,pdVar9);\n      return pdVar5;\n    }\n    if (pcVar11[1] == 'p') {\n      di->n = pcVar11 + 2;\n      pdVar5 = d_expression_1(di);\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_PACK_EXPANSION,pdVar5,(demangle_component *)0x0);\n      return pdVar5;\n    }\n  }\n  else if (cVar2 == 'f') {\n    if (pcVar11[1] == 'p') {\n      di->n = pcVar11 + 2;\n      if (pcVar11[2] == 'T') {\n        pcVar7 = (char *)0x0;\n        di->n = pcVar11 + 3;\n      }\n      else {\n        uVar6 = d_compact_number(di);\n        pcVar7 = (char *)(uVar6 + 1);\n        if ((uVar6 & 0x7fffffff) == 0x7fffffff) {\n          return (demangle_component *)0x0;\n        }\n      }\n      iVar10 = di->next_comp;\n      if (di->num_comps <= iVar10) {\n        return (demangle_component *)0x0;\n      }\n      pdVar5 = di->comps + iVar10;\n      pdVar5->d_printing = 0;\n      di->next_comp = iVar10 + 1;\n      pdVar5->type = DEMANGLE_COMPONENT_FUNCTION_PARAM;\n      (pdVar5->u).s_name.s = pcVar7;\n      return pdVar5;\n    }\n  }\n  else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      pdVar5 = d_unqualified_name(in_stack_ffffffd4);\n      if (pdVar5 == (demangle_component *)0x0) {\n        return (demangle_component *)0x0;\n      }\n      if (*di->n != 'I') {\n        return pdVar5;\n      }\n      pdVar9 = d_template_args(di);\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar5,pdVar9);\n      return pdVar5;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar11[1] == 'n') {\n        di->n = pcVar11 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar11[1] == 'l')) {\n      pdVar5 = (demangle_component *)0x0;\n      if (cVar2 == 't') {\n        pdVar5 = cplus_demangle_type(di);\n        pcVar11 = di->n;\n        if (pcVar11[1] == '\0') {\n          return (demangle_component *)0x0;\n        }\n      }\n      di->n = pcVar11 + 2;\n      pdVar9 = d_exprlist(di,'E');\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_INITIALIZER_LIST,pdVar5,pdVar9);\n      return pdVar5;\n    }\n  }\n  pdVar5 = d_operator_name(di);\n  if (pdVar5 == (demangle_component *)0x0) {\n    return (demangle_component *)0x0;\n  }\n  dVar4 = pdVar5->type;\n  if (dVar4 == DEMANGLE_COMPONENT_OPERATOR) {\n    pcVar11 = (pdVar5->u).s_name.s;\n    pbVar13 = *(byte **)pcVar11;\n    piVar1 = &di->expansion;\n    bVar15 = CARRY4(*piVar1,*(int *)(pcVar11 + 8) - 2U);\n    *piVar1 = *piVar1 + (*(int *)(pcVar11 + 8) - 2U);\n    bVar18 = *piVar1 == 0;\n    iVar10 = 3;\n    pbVar12 = pbVar13;\n    pbVar14 = (byte *)0x238e84;\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar15 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n    } while (bVar18);\n    if ((!bVar15 && !bVar18) == bVar15) {\n      pdVar9 = cplus_demangle_type(di);\n      goto LAB_001778fb;\n    }\n    iVar10 = *(int *)(pcVar11 + 0xc);\n    if (iVar10 != 1) {\n      if (iVar10 < 2) goto joined_r0x00177952;\n      if (iVar10 == 2) {\n        if (pbVar13 == (byte *)0x0) {\n          return (demangle_component *)0x0;\n        }\n        if (((*(char **)pcVar11)[1] == 'c') &&\n           ((cVar2 = **(char **)pcVar11, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2))))\n        {\n          local_20 = cplus_demangle_type(di);\n          uVar16 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n          uVar19 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar16 = *pbVar13 < 0x66;\n          uVar19 = *pbVar13 == 0x66;\n          if ((bool)uVar19) {\n            local_20 = d_operator_name(di);\n          }\n          else {\n            local_20 = d_expression_1(di);\n          }\n        }\n        iVar10 = 3;\n        pbVar12 = pbVar13;\n        pbVar14 = &DAT_00237ab8;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          uVar16 = *pbVar12 < *pbVar14;\n          uVar19 = *pbVar12 == *pbVar14;\n          pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n        } while ((bool)uVar19);\n        bVar15 = false;\n        bVar18 = (!(bool)uVar16 && !(bool)uVar19) == (bool)uVar16;\n        if (bVar18) {\n          pdVar9 = d_exprlist(di,'E');\n        }\n        else {\n          iVar10 = 3;\n          pbVar12 = pbVar13;\n          pbVar14 = &DAT_00237716;\n          do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar15 = *pbVar12 < *pbVar14;\n            bVar18 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n          } while (bVar18);\n          bVar17 = false;\n          bVar15 = (!bVar15 && !bVar18) == bVar15;\n          if (!bVar15) {\n            iVar10 = 3;\n            pbVar12 = (byte *)0x2318e8;\n            do {\n              if (iVar10 == 0) break;\n              iVar10 = iVar10 + -1;\n              bVar17 = *pbVar13 < *pbVar12;\n              bVar15 = *pbVar13 == *pbVar12;\n              pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar17 && !bVar15) != bVar17) {\n              pdVar9 = d_expression_1(di);\n              goto LAB_00177a83;\n            }\n          }\n          pdVar9 = d_unqualified_name(in_stack_ffffffd4);\n          if (*di->n == 'I') {\n            pdVar8 = d_template_args(di);\n            pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);\n          }\n        }\nLAB_00177a83:\n        pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY_ARGS,local_20,pdVar9);\n        pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY,pdVar5,pdVar9);\n        return pdVar5;\n      }\n      if (iVar10 != 3) {\n        return (demangle_component *)0x0;\n      }\n      bVar15 = false;\n      bVar18 = pbVar13 == (byte *)0x0;\n      if (bVar18) {\n        return (demangle_component *)0x0;\n      }\n      iVar10 = 3;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00238c45;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar15 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar15 && !bVar18) == bVar15) {\n        pdVar9 = d_expression_1(di);\n      }\n      else {\n        if (*pbVar13 != 0x66) {\n          if (*pbVar13 != 0x6e) {\n            return (demangle_component *)0x0;\n          }\n          if ((pbVar13[1] != 0x77) && (pbVar13[1] != 0x61)) {\n            return (demangle_component *)0x0;\n          }\n          pdVar9 = d_exprlist(di,'_');\n          pdVar8 = cplus_demangle_type(di);\n          pcVar11 = di->n;\n          cVar2 = *pcVar11;\n          if (cVar2 == 'E') {\n            di->n = pcVar11 + 1;\n            right = (demangle_component *)0x0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar11[1] != 'i') {\n              return (demangle_component *)0x0;\n            }\n            di->n = pcVar11 + 2;\n            right = d_exprlist(di,'E');\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (demangle_component *)0x0;\n            }\n            if (pcVar11[1] != 'l') {\n              return (demangle_component *)0x0;\n            }\n            right = d_expression_1(di);\n          }\n          goto LAB_0017779c;\n        }\n        pdVar9 = d_operator_name(di);\n      }\n      pdVar8 = d_expression_1(di);\n      right = d_expression_1(di);\n      if (right == (demangle_component *)0x0) {\n        return (demangle_component *)0x0;\n      }\nLAB_0017779c:\n      pdVar8 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY_ARG2,pdVar8,right);\n      pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY_ARG1,pdVar9,pdVar8);\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY,pdVar5,pdVar9);\n      return pdVar5;\n    }\n    bVar3 = *pbVar13;\n    if (((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == pbVar13[1])) {\n      bVar3 = *di->n;\n      bVar18 = bVar3 < 0x5f;\n      bVar17 = bVar3 == 0x5f;\n      bVar15 = true;\n      if (bVar17) {\n        di->n = di->n + 1;\n        goto LAB_001778af;\n      }\n    }\n    else {\nLAB_001778af:\n      bVar18 = false;\n      bVar15 = false;\n      bVar17 = true;\n    }\n    iVar10 = 3;\n    pbVar12 = &DAT_00238c3f;\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar18 = *pbVar13 < *pbVar12;\n      bVar17 = *pbVar13 == *pbVar12;\n      pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) goto LAB_001778cf;\n    pdVar9 = d_template_args_1(di);\n  }\n  else {\n    if (dVar4 == DEMANGLE_COMPONENT_EXTENDED_OPERATOR) {\n      iVar10 = (pdVar5->u).s_extended_operator.args;\n      if (iVar10 != 1) {\n        if (1 < iVar10) {\n          return (demangle_component *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar10 == 0) {\n          pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_NULLARY,pdVar5,(demangle_component *)0x0);\n          return pdVar5;\n        }\n        return (demangle_component *)0x0;\n      }\n      pdVar9 = d_expression_1(di);\n      goto LAB_001778fb;\n    }\n    if (dVar4 != DEMANGLE_COMPONENT_CAST) {\n      return (demangle_component *)0x0;\n    }\n    if (*di->n == '_') {\n      di->n = di->n + 1;\n      pdVar9 = d_exprlist(di,'E');\n      goto LAB_001778fb;\n    }\n    bVar15 = false;\nLAB_001778cf:\n    pdVar9 = d_expression_1(di);\n  }\n  if (bVar15) {\n    pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY_ARGS,pdVar9,pdVar9);\n  }\nLAB_001778fb:\n  pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_UNARY,pdVar5,pdVar9);\n  return pdVar5;\n}\n\n" comment (ERROR "demangle_component * __regparm3 d_expression_1(d_info *di)" (binary_expression "demangle_component * __regparm3 d_expression_1(d_info *di)" identifier * (ERROR "__regparm3" identifier) (call_expression "d_expression_1(d_info *di)" identifier (argument_list "(d_info *di)" ( (binary_expression "d_info *di" identifier * identifier) ))))) (compound_statement "{\n  int *piVar1;\n  char cVar2;\n  byte bVar3;\n  demangle_component_type dVar4;\n  demangle_component *pdVar5;\n  uint uVar6;\n  char *pcVar7;\n  demangle_component *pdVar8;\n  demangle_component *right;\n  demangle_component *pdVar9;\n  int iVar10;\n  char *pcVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  bool bVar17;\n  bool bVar18;\n  undefined1 uVar19;\n  byte bVar20;\n  d_info *di_00;\n  d_info *in_stack_ffffffd4;\n  demangle_component *local_20;\n  \n  bVar20 = 0;\n  pcVar11 = di->n;\n  cVar2 = *pcVar11;\n  if (cVar2 == 'L') {\n    pdVar5 = d_expr_primary(di);\n    return pdVar5;\n  }\n  if (cVar2 == 'T') {\n    pdVar5 = d_template_param(di);\n    return pdVar5;\n  }\n  if (cVar2 == 's') {\n    if (pcVar11[1] == 'r') {\n      di->n = pcVar11 + 2;\n      di_00 = di;\n      pdVar5 = cplus_demangle_type(di);\n      pdVar9 = d_unqualified_name(di_00);\n      if (*di->n == 'I') {\n        pdVar8 = d_template_args(di);\n        pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);\n      }\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_QUAL_NAME,pdVar5,pdVar9);\n      return pdVar5;\n    }\n    if (pcVar11[1] == 'p') {\n      di->n = pcVar11 + 2;\n      pdVar5 = d_expression_1(di);\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_PACK_EXPANSION,pdVar5,(demangle_component *)0x0);\n      return pdVar5;\n    }\n  }\n  else if (cVar2 == 'f') {\n    if (pcVar11[1] == 'p') {\n      di->n = pcVar11 + 2;\n      if (pcVar11[2] == 'T') {\n        pcVar7 = (char *)0x0;\n        di->n = pcVar11 + 3;\n      }\n      else {\n        uVar6 = d_compact_number(di);\n        pcVar7 = (char *)(uVar6 + 1);\n        if ((uVar6 & 0x7fffffff) == 0x7fffffff) {\n          return (demangle_component *)0x0;\n        }\n      }\n      iVar10 = di->next_comp;\n      if (di->num_comps <= iVar10) {\n        return (demangle_component *)0x0;\n      }\n      pdVar5 = di->comps + iVar10;\n      pdVar5->d_printing = 0;\n      di->next_comp = iVar10 + 1;\n      pdVar5->type = DEMANGLE_COMPONENT_FUNCTION_PARAM;\n      (pdVar5->u).s_name.s = pcVar7;\n      return pdVar5;\n    }\n  }\n  else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      pdVar5 = d_unqualified_name(in_stack_ffffffd4);\n      if (pdVar5 == (demangle_component *)0x0) {\n        return (demangle_component *)0x0;\n      }\n      if (*di->n != 'I') {\n        return pdVar5;\n      }\n      pdVar9 = d_template_args(di);\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar5,pdVar9);\n      return pdVar5;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar11[1] == 'n') {\n        di->n = pcVar11 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar11[1] == 'l')) {\n      pdVar5 = (demangle_component *)0x0;\n      if (cVar2 == 't') {\n        pdVar5 = cplus_demangle_type(di);\n        pcVar11 = di->n;\n        if (pcVar11[1] == '\0') {\n          return (demangle_component *)0x0;\n        }\n      }\n      di->n = pcVar11 + 2;\n      pdVar9 = d_exprlist(di,'E');\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_INITIALIZER_LIST,pdVar5,pdVar9);\n      return pdVar5;\n    }\n  }\n  pdVar5 = d_operator_name(di);\n  if (pdVar5 == (demangle_component *)0x0) {\n    return (demangle_component *)0x0;\n  }\n  dVar4 = pdVar5->type;\n  if (dVar4 == DEMANGLE_COMPONENT_OPERATOR) {\n    pcVar11 = (pdVar5->u).s_name.s;\n    pbVar13 = *(byte **)pcVar11;\n    piVar1 = &di->expansion;\n    bVar15 = CARRY4(*piVar1,*(int *)(pcVar11 + 8) - 2U);\n    *piVar1 = *piVar1 + (*(int *)(pcVar11 + 8) - 2U);\n    bVar18 = *piVar1 == 0;\n    iVar10 = 3;\n    pbVar12 = pbVar13;\n    pbVar14 = (byte *)0x238e84;\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar15 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n    } while (bVar18);\n    if ((!bVar15 && !bVar18) == bVar15) {\n      pdVar9 = cplus_demangle_type(di);\n      goto LAB_001778fb;\n    }\n    iVar10 = *(int *)(pcVar11 + 0xc);\n    if (iVar10 != 1) {\n      if (iVar10 < 2) goto joined_r0x00177952;\n      if (iVar10 == 2) {\n        if (pbVar13 == (byte *)0x0) {\n          return (demangle_component *)0x0;\n        }\n        if (((*(char **)pcVar11)[1] == 'c') &&\n           ((cVar2 = **(char **)pcVar11, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2))))\n        {\n          local_20 = cplus_demangle_type(di);\n          uVar16 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n          uVar19 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar16 = *pbVar13 < 0x66;\n          uVar19 = *pbVar13 == 0x66;\n          if ((bool)uVar19) {\n            local_20 = d_operator_name(di);\n          }\n          else {\n            local_20 = d_expression_1(di);\n          }\n        }\n        iVar10 = 3;\n        pbVar12 = pbVar13;\n        pbVar14 = &DAT_00237ab8;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          uVar16 = *pbVar12 < *pbVar14;\n          uVar19 = *pbVar12 == *pbVar14;\n          pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n        } while ((bool)uVar19);\n        bVar15 = false;\n        bVar18 = (!(bool)uVar16 && !(bool)uVar19) == (bool)uVar16;\n        if (bVar18) {\n          pdVar9 = d_exprlist(di,'E');\n        }\n        else {\n          iVar10 = 3;\n          pbVar12 = pbVar13;\n          pbVar14 = &DAT_00237716;\n          do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar15 = *pbVar12 < *pbVar14;\n            bVar18 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n          } while (bVar18);\n          bVar17 = false;\n          bVar15 = (!bVar15 && !bVar18) == bVar15;\n          if (!bVar15) {\n            iVar10 = 3;\n            pbVar12 = (byte *)0x2318e8;\n            do {\n              if (iVar10 == 0) break;\n              iVar10 = iVar10 + -1;\n              bVar17 = *pbVar13 < *pbVar12;\n              bVar15 = *pbVar13 == *pbVar12;\n              pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar17 && !bVar15) != bVar17) {\n              pdVar9 = d_expression_1(di);\n              goto LAB_00177a83;\n            }\n          }\n          pdVar9 = d_unqualified_name(in_stack_ffffffd4);\n          if (*di->n == 'I') {\n            pdVar8 = d_template_args(di);\n            pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);\n          }\n        }\nLAB_00177a83:\n        pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY_ARGS,local_20,pdVar9);\n        pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY,pdVar5,pdVar9);\n        return pdVar5;\n      }\n      if (iVar10 != 3) {\n        return (demangle_component *)0x0;\n      }\n      bVar15 = false;\n      bVar18 = pbVar13 == (byte *)0x0;\n      if (bVar18) {\n        return (demangle_component *)0x0;\n      }\n      iVar10 = 3;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00238c45;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar15 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar15 && !bVar18) == bVar15) {\n        pdVar9 = d_expression_1(di);\n      }\n      else {\n        if (*pbVar13 != 0x66) {\n          if (*pbVar13 != 0x6e) {\n            return (demangle_component *)0x0;\n          }\n          if ((pbVar13[1] != 0x77) && (pbVar13[1] != 0x61)) {\n            return (demangle_component *)0x0;\n          }\n          pdVar9 = d_exprlist(di,'_');\n          pdVar8 = cplus_demangle_type(di);\n          pcVar11 = di->n;\n          cVar2 = *pcVar11;\n          if (cVar2 == 'E') {\n            di->n = pcVar11 + 1;\n            right = (demangle_component *)0x0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar11[1] != 'i') {\n              return (demangle_component *)0x0;\n            }\n            di->n = pcVar11 + 2;\n            right = d_exprlist(di,'E');\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (demangle_component *)0x0;\n            }\n            if (pcVar11[1] != 'l') {\n              return (demangle_component *)0x0;\n            }\n            right = d_expression_1(di);\n          }\n          goto LAB_0017779c;\n        }\n        pdVar9 = d_operator_name(di);\n      }\n      pdVar8 = d_expression_1(di);\n      right = d_expression_1(di);\n      if (right == (demangle_component *)0x0) {\n        return (demangle_component *)0x0;\n      }\nLAB_0017779c:\n      pdVar8 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY_ARG2,pdVar8,right);\n      pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY_ARG1,pdVar9,pdVar8);\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY,pdVar5,pdVar9);\n      return pdVar5;\n    }\n    bVar3 = *pbVar13;\n    if (((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == pbVar13[1])) {\n      bVar3 = *di->n;\n      bVar18 = bVar3 < 0x5f;\n      bVar17 = bVar3 == 0x5f;\n      bVar15 = true;\n      if (bVar17) {\n        di->n = di->n + 1;\n        goto LAB_001778af;\n      }\n    }\n    else {\nLAB_001778af:\n      bVar18 = false;\n      bVar15 = false;\n      bVar17 = true;\n    }\n    iVar10 = 3;\n    pbVar12 = &DAT_00238c3f;\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar18 = *pbVar13 < *pbVar12;\n      bVar17 = *pbVar13 == *pbVar12;\n      pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) goto LAB_001778cf;\n    pdVar9 = d_template_args_1(di);\n  }\n  else {\n    if (dVar4 == DEMANGLE_COMPONENT_EXTENDED_OPERATOR) {\n      iVar10 = (pdVar5->u).s_extended_operator.args;\n      if (iVar10 != 1) {\n        if (1 < iVar10) {\n          return (demangle_component *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar10 == 0) {\n          pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_NULLARY,pdVar5,(demangle_component *)0x0);\n          return pdVar5;\n        }\n        return (demangle_component *)0x0;\n      }\n      pdVar9 = d_expression_1(di);\n      goto LAB_001778fb;\n    }\n    if (dVar4 != DEMANGLE_COMPONENT_CAST) {\n      return (demangle_component *)0x0;\n    }\n    if (*di->n == '_') {\n      di->n = di->n + 1;\n      pdVar9 = d_exprlist(di,'E');\n      goto LAB_001778fb;\n    }\n    bVar15 = false;\nLAB_001778cf:\n    pdVar9 = d_expression_1(di);\n  }\n  if (bVar15) {\n    pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY_ARGS,pdVar9,pdVar9);\n  }\nLAB_001778fb:\n  pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_UNARY,pdVar5,pdVar9);\n  return pdVar5;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "demangle_component_type dVar4;" type_identifier identifier ;) (declaration "demangle_component *pdVar5;" type_identifier (pointer_declarator "*pdVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "demangle_component *pdVar8;" type_identifier (pointer_declarator "*pdVar8" * identifier) ;) (declaration "demangle_component *right;" type_identifier (pointer_declarator "*right" * identifier) ;) (declaration "demangle_component *pdVar9;" type_identifier (pointer_declarator "*pdVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "undefined1 uVar16;" type_identifier identifier ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "undefined1 uVar19;" type_identifier identifier ;) (declaration "byte bVar20;" type_identifier identifier ;) (declaration "d_info *di_00;" type_identifier (pointer_declarator "*di_00" * identifier) ;) (declaration "d_info *in_stack_ffffffd4;" type_identifier (pointer_declarator "*in_stack_ffffffd4" * identifier) ;) (declaration "demangle_component *local_20;" type_identifier (pointer_declarator "*local_20" * identifier) ;) (expression_statement "bVar20 = 0;" (assignment_expression "bVar20 = 0" identifier = number_literal) ;) (expression_statement "pcVar11 = di->n;" (assignment_expression "pcVar11 = di->n" identifier = (field_expression "di->n" identifier -> field_identifier)) ;) (expression_statement "cVar2 = *pcVar11;" (assignment_expression "cVar2 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (if_statement "if (cVar2 == 'L') {\n    pdVar5 = d_expr_primary(di);\n    return pdVar5;\n  }" if (parenthesized_expression "(cVar2 == 'L')" ( (binary_expression "cVar2 == 'L'" identifier == (char_literal "'L'" ' character ')) )) (compound_statement "{\n    pdVar5 = d_expr_primary(di);\n    return pdVar5;\n  }" { (expression_statement "pdVar5 = d_expr_primary(di);" (assignment_expression "pdVar5 = d_expr_primary(di)" identifier = (call_expression "d_expr_primary(di)" identifier (argument_list "(di)" ( identifier )))) ;) (return_statement "return pdVar5;" return identifier ;) })) (if_statement "if (cVar2 == 'T') {\n    pdVar5 = d_template_param(di);\n    return pdVar5;\n  }" if (parenthesized_expression "(cVar2 == 'T')" ( (binary_expression "cVar2 == 'T'" identifier == (char_literal "'T'" ' character ')) )) (compound_statement "{\n    pdVar5 = d_template_param(di);\n    return pdVar5;\n  }" { (expression_statement "pdVar5 = d_template_param(di);" (assignment_expression "pdVar5 = d_template_param(di)" identifier = (call_expression "d_template_param(di)" identifier (argument_list "(di)" ( identifier )))) ;) (return_statement "return pdVar5;" return identifier ;) })) (if_statement "if (cVar2 == 's') {\n    if (pcVar11[1] == 'r') {\n      di->n = pcVar11 + 2;\n      di_00 = di;\n      pdVar5 = cplus_demangle_type(di);\n      pdVar9 = d_unqualified_name(di_00);\n      if (*di->n == 'I') {\n        pdVar8 = d_template_args(di);\n        pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);\n      }\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_QUAL_NAME,pdVar5,pdVar9);\n      return pdVar5;\n    }\n    if (pcVar11[1] == 'p') {\n      di->n = pcVar11 + 2;\n      pdVar5 = d_expression_1(di);\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_PACK_EXPANSION,pdVar5,(demangle_component *)0x0);\n      return pdVar5;\n    }\n  }\n  else if (cVar2 == 'f') {\n    if (pcVar11[1] == 'p') {\n      di->n = pcVar11 + 2;\n      if (pcVar11[2] == 'T') {\n        pcVar7 = (char *)0x0;\n        di->n = pcVar11 + 3;\n      }\n      else {\n        uVar6 = d_compact_number(di);\n        pcVar7 = (char *)(uVar6 + 1);\n        if ((uVar6 & 0x7fffffff) == 0x7fffffff) {\n          return (demangle_component *)0x0;\n        }\n      }\n      iVar10 = di->next_comp;\n      if (di->num_comps <= iVar10) {\n        return (demangle_component *)0x0;\n      }\n      pdVar5 = di->comps + iVar10;\n      pdVar5->d_printing = 0;\n      di->next_comp = iVar10 + 1;\n      pdVar5->type = DEMANGLE_COMPONENT_FUNCTION_PARAM;\n      (pdVar5->u).s_name.s = pcVar7;\n      return pdVar5;\n    }\n  }\n  else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      pdVar5 = d_unqualified_name(in_stack_ffffffd4);\n      if (pdVar5 == (demangle_component *)0x0) {\n        return (demangle_component *)0x0;\n      }\n      if (*di->n != 'I') {\n        return pdVar5;\n      }\n      pdVar9 = d_template_args(di);\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar5,pdVar9);\n      return pdVar5;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar11[1] == 'n') {\n        di->n = pcVar11 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar11[1] == 'l')) {\n      pdVar5 = (demangle_component *)0x0;\n      if (cVar2 == 't') {\n        pdVar5 = cplus_demangle_type(di);\n        pcVar11 = di->n;\n        if (pcVar11[1] == '\0') {\n          return (demangle_component *)0x0;\n        }\n      }\n      di->n = pcVar11 + 2;\n      pdVar9 = d_exprlist(di,'E');\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_INITIALIZER_LIST,pdVar5,pdVar9);\n      return pdVar5;\n    }\n  }" if (parenthesized_expression "(cVar2 == 's')" ( (binary_expression "cVar2 == 's'" identifier == (char_literal "'s'" ' character ')) )) (compound_statement "{\n    if (pcVar11[1] == 'r') {\n      di->n = pcVar11 + 2;\n      di_00 = di;\n      pdVar5 = cplus_demangle_type(di);\n      pdVar9 = d_unqualified_name(di_00);\n      if (*di->n == 'I') {\n        pdVar8 = d_template_args(di);\n        pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);\n      }\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_QUAL_NAME,pdVar5,pdVar9);\n      return pdVar5;\n    }\n    if (pcVar11[1] == 'p') {\n      di->n = pcVar11 + 2;\n      pdVar5 = d_expression_1(di);\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_PACK_EXPANSION,pdVar5,(demangle_component *)0x0);\n      return pdVar5;\n    }\n  }" { (if_statement "if (pcVar11[1] == 'r') {\n      di->n = pcVar11 + 2;\n      di_00 = di;\n      pdVar5 = cplus_demangle_type(di);\n      pdVar9 = d_unqualified_name(di_00);\n      if (*di->n == 'I') {\n        pdVar8 = d_template_args(di);\n        pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);\n      }\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_QUAL_NAME,pdVar5,pdVar9);\n      return pdVar5;\n    }" if (parenthesized_expression "(pcVar11[1] == 'r')" ( (binary_expression "pcVar11[1] == 'r'" (subscript_expression "pcVar11[1]" identifier [ number_literal ]) == (char_literal "'r'" ' character ')) )) (compound_statement "{\n      di->n = pcVar11 + 2;\n      di_00 = di;\n      pdVar5 = cplus_demangle_type(di);\n      pdVar9 = d_unqualified_name(di_00);\n      if (*di->n == 'I') {\n        pdVar8 = d_template_args(di);\n        pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);\n      }\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_QUAL_NAME,pdVar5,pdVar9);\n      return pdVar5;\n    }" { (expression_statement "di->n = pcVar11 + 2;" (assignment_expression "di->n = pcVar11 + 2" (field_expression "di->n" identifier -> field_identifier) = (binary_expression "pcVar11 + 2" identifier + number_literal)) ;) (expression_statement "di_00 = di;" (assignment_expression "di_00 = di" identifier = identifier) ;) (expression_statement "pdVar5 = cplus_demangle_type(di);" (assignment_expression "pdVar5 = cplus_demangle_type(di)" identifier = (call_expression "cplus_demangle_type(di)" identifier (argument_list "(di)" ( identifier )))) ;) (expression_statement "pdVar9 = d_unqualified_name(di_00);" (assignment_expression "pdVar9 = d_unqualified_name(di_00)" identifier = (call_expression "d_unqualified_name(di_00)" identifier (argument_list "(di_00)" ( identifier )))) ;) (if_statement "if (*di->n == 'I') {\n        pdVar8 = d_template_args(di);\n        pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);\n      }" if (parenthesized_expression "(*di->n == 'I')" ( (binary_expression "*di->n == 'I'" (pointer_expression "*di->n" * (field_expression "di->n" identifier -> field_identifier)) == (char_literal "'I'" ' character ')) )) (compound_statement "{\n        pdVar8 = d_template_args(di);\n        pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);\n      }" { (expression_statement "pdVar8 = d_template_args(di);" (assignment_expression "pdVar8 = d_template_args(di)" identifier = (call_expression "d_template_args(di)" identifier (argument_list "(di)" ( identifier )))) ;) (expression_statement "pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);" (assignment_expression "pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8)" identifier = (call_expression "d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8)" identifier (argument_list "(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8)" ( identifier , identifier , identifier , identifier )))) ;) })) (expression_statement "pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_QUAL_NAME,pdVar5,pdVar9);" (assignment_expression "pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_QUAL_NAME,pdVar5,pdVar9)" identifier = (call_expression "d_make_comp(di,DEMANGLE_COMPONENT_QUAL_NAME,pdVar5,pdVar9)" identifier (argument_list "(di,DEMANGLE_COMPONENT_QUAL_NAME,pdVar5,pdVar9)" ( identifier , identifier , identifier , identifier )))) ;) (return_statement "return pdVar5;" return identifier ;) })) (if_statement "if (pcVar11[1] == 'p') {\n      di->n = pcVar11 + 2;\n      pdVar5 = d_expression_1(di);\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_PACK_EXPANSION,pdVar5,(demangle_component *)0x0);\n      return pdVar5;\n    }" if (parenthesized_expression "(pcVar11[1] == 'p')" ( (binary_expression "pcVar11[1] == 'p'" (subscript_expression "pcVar11[1]" identifier [ number_literal ]) == (char_literal "'p'" ' character ')) )) (compound_statement "{\n      di->n = pcVar11 + 2;\n      pdVar5 = d_expression_1(di);\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_PACK_EXPANSION,pdVar5,(demangle_component *)0x0);\n      return pdVar5;\n    }" { (expression_statement "di->n = pcVar11 + 2;" (assignment_expression "di->n = pcVar11 + 2" (field_expression "di->n" identifier -> field_identifier) = (binary_expression "pcVar11 + 2" identifier + number_literal)) ;) (expression_statement "pdVar5 = d_expression_1(di);" (assignment_expression "pdVar5 = d_expression_1(di)" identifier = (call_expression "d_expression_1(di)" identifier (argument_list "(di)" ( identifier )))) ;) (expression_statement "pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_PACK_EXPANSION,pdVar5,(demangle_component *)0x0);" (assignment_expression "pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_PACK_EXPANSION,pdVar5,(demangle_component *)0x0)" identifier = (call_expression "d_make_comp(di,DEMANGLE_COMPONENT_PACK_EXPANSION,pdVar5,(demangle_component *)0x0)" identifier (argument_list "(di,DEMANGLE_COMPONENT_PACK_EXPANSION,pdVar5,(demangle_component *)0x0)" ( identifier , identifier , identifier , (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (return_statement "return pdVar5;" return identifier ;) })) }) (else_clause "else if (cVar2 == 'f') {\n    if (pcVar11[1] == 'p') {\n      di->n = pcVar11 + 2;\n      if (pcVar11[2] == 'T') {\n        pcVar7 = (char *)0x0;\n        di->n = pcVar11 + 3;\n      }\n      else {\n        uVar6 = d_compact_number(di);\n        pcVar7 = (char *)(uVar6 + 1);\n        if ((uVar6 & 0x7fffffff) == 0x7fffffff) {\n          return (demangle_component *)0x0;\n        }\n      }\n      iVar10 = di->next_comp;\n      if (di->num_comps <= iVar10) {\n        return (demangle_component *)0x0;\n      }\n      pdVar5 = di->comps + iVar10;\n      pdVar5->d_printing = 0;\n      di->next_comp = iVar10 + 1;\n      pdVar5->type = DEMANGLE_COMPONENT_FUNCTION_PARAM;\n      (pdVar5->u).s_name.s = pcVar7;\n      return pdVar5;\n    }\n  }\n  else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      pdVar5 = d_unqualified_name(in_stack_ffffffd4);\n      if (pdVar5 == (demangle_component *)0x0) {\n        return (demangle_component *)0x0;\n      }\n      if (*di->n != 'I') {\n        return pdVar5;\n      }\n      pdVar9 = d_template_args(di);\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar5,pdVar9);\n      return pdVar5;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar11[1] == 'n') {\n        di->n = pcVar11 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar11[1] == 'l')) {\n      pdVar5 = (demangle_component *)0x0;\n      if (cVar2 == 't') {\n        pdVar5 = cplus_demangle_type(di);\n        pcVar11 = di->n;\n        if (pcVar11[1] == '\0') {\n          return (demangle_component *)0x0;\n        }\n      }\n      di->n = pcVar11 + 2;\n      pdVar9 = d_exprlist(di,'E');\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_INITIALIZER_LIST,pdVar5,pdVar9);\n      return pdVar5;\n    }\n  }" else (if_statement "if (cVar2 == 'f') {\n    if (pcVar11[1] == 'p') {\n      di->n = pcVar11 + 2;\n      if (pcVar11[2] == 'T') {\n        pcVar7 = (char *)0x0;\n        di->n = pcVar11 + 3;\n      }\n      else {\n        uVar6 = d_compact_number(di);\n        pcVar7 = (char *)(uVar6 + 1);\n        if ((uVar6 & 0x7fffffff) == 0x7fffffff) {\n          return (demangle_component *)0x0;\n        }\n      }\n      iVar10 = di->next_comp;\n      if (di->num_comps <= iVar10) {\n        return (demangle_component *)0x0;\n      }\n      pdVar5 = di->comps + iVar10;\n      pdVar5->d_printing = 0;\n      di->next_comp = iVar10 + 1;\n      pdVar5->type = DEMANGLE_COMPONENT_FUNCTION_PARAM;\n      (pdVar5->u).s_name.s = pcVar7;\n      return pdVar5;\n    }\n  }\n  else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      pdVar5 = d_unqualified_name(in_stack_ffffffd4);\n      if (pdVar5 == (demangle_component *)0x0) {\n        return (demangle_component *)0x0;\n      }\n      if (*di->n != 'I') {\n        return pdVar5;\n      }\n      pdVar9 = d_template_args(di);\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar5,pdVar9);\n      return pdVar5;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar11[1] == 'n') {\n        di->n = pcVar11 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar11[1] == 'l')) {\n      pdVar5 = (demangle_component *)0x0;\n      if (cVar2 == 't') {\n        pdVar5 = cplus_demangle_type(di);\n        pcVar11 = di->n;\n        if (pcVar11[1] == '\0') {\n          return (demangle_component *)0x0;\n        }\n      }\n      di->n = pcVar11 + 2;\n      pdVar9 = d_exprlist(di,'E');\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_INITIALIZER_LIST,pdVar5,pdVar9);\n      return pdVar5;\n    }\n  }" if (parenthesized_expression "(cVar2 == 'f')" ( (binary_expression "cVar2 == 'f'" identifier == (char_literal "'f'" ' character ')) )) (compound_statement "{\n    if (pcVar11[1] == 'p') {\n      di->n = pcVar11 + 2;\n      if (pcVar11[2] == 'T') {\n        pcVar7 = (char *)0x0;\n        di->n = pcVar11 + 3;\n      }\n      else {\n        uVar6 = d_compact_number(di);\n        pcVar7 = (char *)(uVar6 + 1);\n        if ((uVar6 & 0x7fffffff) == 0x7fffffff) {\n          return (demangle_component *)0x0;\n        }\n      }\n      iVar10 = di->next_comp;\n      if (di->num_comps <= iVar10) {\n        return (demangle_component *)0x0;\n      }\n      pdVar5 = di->comps + iVar10;\n      pdVar5->d_printing = 0;\n      di->next_comp = iVar10 + 1;\n      pdVar5->type = DEMANGLE_COMPONENT_FUNCTION_PARAM;\n      (pdVar5->u).s_name.s = pcVar7;\n      return pdVar5;\n    }\n  }" { (if_statement "if (pcVar11[1] == 'p') {\n      di->n = pcVar11 + 2;\n      if (pcVar11[2] == 'T') {\n        pcVar7 = (char *)0x0;\n        di->n = pcVar11 + 3;\n      }\n      else {\n        uVar6 = d_compact_number(di);\n        pcVar7 = (char *)(uVar6 + 1);\n        if ((uVar6 & 0x7fffffff) == 0x7fffffff) {\n          return (demangle_component *)0x0;\n        }\n      }\n      iVar10 = di->next_comp;\n      if (di->num_comps <= iVar10) {\n        return (demangle_component *)0x0;\n      }\n      pdVar5 = di->comps + iVar10;\n      pdVar5->d_printing = 0;\n      di->next_comp = iVar10 + 1;\n      pdVar5->type = DEMANGLE_COMPONENT_FUNCTION_PARAM;\n      (pdVar5->u).s_name.s = pcVar7;\n      return pdVar5;\n    }" if (parenthesized_expression "(pcVar11[1] == 'p')" ( (binary_expression "pcVar11[1] == 'p'" (subscript_expression "pcVar11[1]" identifier [ number_literal ]) == (char_literal "'p'" ' character ')) )) (compound_statement "{\n      di->n = pcVar11 + 2;\n      if (pcVar11[2] == 'T') {\n        pcVar7 = (char *)0x0;\n        di->n = pcVar11 + 3;\n      }\n      else {\n        uVar6 = d_compact_number(di);\n        pcVar7 = (char *)(uVar6 + 1);\n        if ((uVar6 & 0x7fffffff) == 0x7fffffff) {\n          return (demangle_component *)0x0;\n        }\n      }\n      iVar10 = di->next_comp;\n      if (di->num_comps <= iVar10) {\n        return (demangle_component *)0x0;\n      }\n      pdVar5 = di->comps + iVar10;\n      pdVar5->d_printing = 0;\n      di->next_comp = iVar10 + 1;\n      pdVar5->type = DEMANGLE_COMPONENT_FUNCTION_PARAM;\n      (pdVar5->u).s_name.s = pcVar7;\n      return pdVar5;\n    }" { (expression_statement "di->n = pcVar11 + 2;" (assignment_expression "di->n = pcVar11 + 2" (field_expression "di->n" identifier -> field_identifier) = (binary_expression "pcVar11 + 2" identifier + number_literal)) ;) (if_statement "if (pcVar11[2] == 'T') {\n        pcVar7 = (char *)0x0;\n        di->n = pcVar11 + 3;\n      }\n      else {\n        uVar6 = d_compact_number(di);\n        pcVar7 = (char *)(uVar6 + 1);\n        if ((uVar6 & 0x7fffffff) == 0x7fffffff) {\n          return (demangle_component *)0x0;\n        }\n      }" if (parenthesized_expression "(pcVar11[2] == 'T')" ( (binary_expression "pcVar11[2] == 'T'" (subscript_expression "pcVar11[2]" identifier [ number_literal ]) == (char_literal "'T'" ' character ')) )) (compound_statement "{\n        pcVar7 = (char *)0x0;\n        di->n = pcVar11 + 3;\n      }" { (expression_statement "pcVar7 = (char *)0x0;" (assignment_expression "pcVar7 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "di->n = pcVar11 + 3;" (assignment_expression "di->n = pcVar11 + 3" (field_expression "di->n" identifier -> field_identifier) = (binary_expression "pcVar11 + 3" identifier + number_literal)) ;) }) (else_clause "else {\n        uVar6 = d_compact_number(di);\n        pcVar7 = (char *)(uVar6 + 1);\n        if ((uVar6 & 0x7fffffff) == 0x7fffffff) {\n          return (demangle_component *)0x0;\n        }\n      }" else (compound_statement "{\n        uVar6 = d_compact_number(di);\n        pcVar7 = (char *)(uVar6 + 1);\n        if ((uVar6 & 0x7fffffff) == 0x7fffffff) {\n          return (demangle_component *)0x0;\n        }\n      }" { (expression_statement "uVar6 = d_compact_number(di);" (assignment_expression "uVar6 = d_compact_number(di)" identifier = (call_expression "d_compact_number(di)" identifier (argument_list "(di)" ( identifier )))) ;) (expression_statement "pcVar7 = (char *)(uVar6 + 1);" (assignment_expression "pcVar7 = (char *)(uVar6 + 1)" identifier = (cast_expression "(char *)(uVar6 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 + 1)" ( (binary_expression "uVar6 + 1" identifier + number_literal) )))) ;) (if_statement "if ((uVar6 & 0x7fffffff) == 0x7fffffff) {\n          return (demangle_component *)0x0;\n        }" if (parenthesized_expression "((uVar6 & 0x7fffffff) == 0x7fffffff)" ( (binary_expression "(uVar6 & 0x7fffffff) == 0x7fffffff" (parenthesized_expression "(uVar6 & 0x7fffffff)" ( (binary_expression "uVar6 & 0x7fffffff" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          return (demangle_component *)0x0;\n        }" { (return_statement "return (demangle_component *)0x0;" return (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) }))) (expression_statement "iVar10 = di->next_comp;" (assignment_expression "iVar10 = di->next_comp" identifier = (field_expression "di->next_comp" identifier -> field_identifier)) ;) (if_statement "if (di->num_comps <= iVar10) {\n        return (demangle_component *)0x0;\n      }" if (parenthesized_expression "(di->num_comps <= iVar10)" ( (binary_expression "di->num_comps <= iVar10" (field_expression "di->num_comps" identifier -> field_identifier) <= identifier) )) (compound_statement "{\n        return (demangle_component *)0x0;\n      }" { (return_statement "return (demangle_component *)0x0;" return (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "pdVar5 = di->comps + iVar10;" (assignment_expression "pdVar5 = di->comps + iVar10" identifier = (binary_expression "di->comps + iVar10" (field_expression "di->comps" identifier -> field_identifier) + identifier)) ;) (expression_statement "pdVar5->d_printing = 0;" (assignment_expression "pdVar5->d_printing = 0" (field_expression "pdVar5->d_printing" identifier -> field_identifier) = number_literal) ;) (expression_statement "di->next_comp = iVar10 + 1;" (assignment_expression "di->next_comp = iVar10 + 1" (field_expression "di->next_comp" identifier -> field_identifier) = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "pdVar5->type = DEMANGLE_COMPONENT_FUNCTION_PARAM;" (assignment_expression "pdVar5->type = DEMANGLE_COMPONENT_FUNCTION_PARAM" (field_expression "pdVar5->type" identifier -> field_identifier) = identifier) ;) (expression_statement "(pdVar5->u).s_name.s = pcVar7;" (assignment_expression "(pdVar5->u).s_name.s = pcVar7" (field_expression "(pdVar5->u).s_name.s" (field_expression "(pdVar5->u).s_name" (parenthesized_expression "(pdVar5->u)" ( (field_expression "pdVar5->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (return_statement "return pdVar5;" return identifier ;) })) }) (else_clause "else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      pdVar5 = d_unqualified_name(in_stack_ffffffd4);\n      if (pdVar5 == (demangle_component *)0x0) {\n        return (demangle_component *)0x0;\n      }\n      if (*di->n != 'I') {\n        return pdVar5;\n      }\n      pdVar9 = d_template_args(di);\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar5,pdVar9);\n      return pdVar5;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar11[1] == 'n') {\n        di->n = pcVar11 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar11[1] == 'l')) {\n      pdVar5 = (demangle_component *)0x0;\n      if (cVar2 == 't') {\n        pdVar5 = cplus_demangle_type(di);\n        pcVar11 = di->n;\n        if (pcVar11[1] == '\0') {\n          return (demangle_component *)0x0;\n        }\n      }\n      di->n = pcVar11 + 2;\n      pdVar9 = d_exprlist(di,'E');\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_INITIALIZER_LIST,pdVar5,pdVar9);\n      return pdVar5;\n    }\n  }" else (compound_statement "{\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      pdVar5 = d_unqualified_name(in_stack_ffffffd4);\n      if (pdVar5 == (demangle_component *)0x0) {\n        return (demangle_component *)0x0;\n      }\n      if (*di->n != 'I') {\n        return pdVar5;\n      }\n      pdVar9 = d_template_args(di);\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar5,pdVar9);\n      return pdVar5;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar11[1] == 'n') {\n        di->n = pcVar11 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar11[1] == 'l')) {\n      pdVar5 = (demangle_component *)0x0;\n      if (cVar2 == 't') {\n        pdVar5 = cplus_demangle_type(di);\n        pcVar11 = di->n;\n        if (pcVar11[1] == '\0') {\n          return (demangle_component *)0x0;\n        }\n      }\n      di->n = pcVar11 + 2;\n      pdVar9 = d_exprlist(di,'E');\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_INITIALIZER_LIST,pdVar5,pdVar9);\n      return pdVar5;\n    }\n  }" { (if_statement "if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      pdVar5 = d_unqualified_name(in_stack_ffffffd4);\n      if (pdVar5 == (demangle_component *)0x0) {\n        return (demangle_component *)0x0;\n      }\n      if (*di->n != 'I') {\n        return pdVar5;\n      }\n      pdVar9 = d_template_args(di);\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar5,pdVar9);\n      return pdVar5;\n    }" if (parenthesized_expression "((byte)(cVar2 - 0x30U) < 10)" ( (binary_expression "(byte)(cVar2 - 0x30U) < 10" (call_expression "(byte)(cVar2 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 - 0x30U)" ( (binary_expression "cVar2 - 0x30U" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\nLAB_00177505:\n      pdVar5 = d_unqualified_name(in_stack_ffffffd4);\n      if (pdVar5 == (demangle_component *)0x0) {\n        return (demangle_component *)0x0;\n      }\n      if (*di->n != 'I') {\n        return pdVar5;\n      }\n      pdVar9 = d_template_args(di);\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar5,pdVar9);\n      return pdVar5;\n    }" { (labeled_statement "LAB_00177505:\n      pdVar5 = d_unqualified_name(in_stack_ffffffd4);" statement_identifier : (expression_statement "pdVar5 = d_unqualified_name(in_stack_ffffffd4);" (assignment_expression "pdVar5 = d_unqualified_name(in_stack_ffffffd4)" identifier = (call_expression "d_unqualified_name(in_stack_ffffffd4)" identifier (argument_list "(in_stack_ffffffd4)" ( identifier )))) ;)) (if_statement "if (pdVar5 == (demangle_component *)0x0) {\n        return (demangle_component *)0x0;\n      }" if (parenthesized_expression "(pdVar5 == (demangle_component *)0x0)" ( (binary_expression "pdVar5 == (demangle_component *)0x0" identifier == (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return (demangle_component *)0x0;\n      }" { (return_statement "return (demangle_component *)0x0;" return (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (*di->n != 'I') {\n        return pdVar5;\n      }" if (parenthesized_expression "(*di->n != 'I')" ( (binary_expression "*di->n != 'I'" (pointer_expression "*di->n" * (field_expression "di->n" identifier -> field_identifier)) != (char_literal "'I'" ' character ')) )) (compound_statement "{\n        return pdVar5;\n      }" { (return_statement "return pdVar5;" return identifier ;) })) (expression_statement "pdVar9 = d_template_args(di);" (assignment_expression "pdVar9 = d_template_args(di)" identifier = (call_expression "d_template_args(di)" identifier (argument_list "(di)" ( identifier )))) ;) (expression_statement "pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar5,pdVar9);" (assignment_expression "pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar5,pdVar9)" identifier = (call_expression "d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar5,pdVar9)" identifier (argument_list "(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar5,pdVar9)" ( identifier , identifier , identifier , identifier )))) ;) (return_statement "return pdVar5;" return identifier ;) })) (if_statement "if (cVar2 == 'o') {\n      if (pcVar11[1] == 'n') {\n        di->n = pcVar11 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar11[1] == 'l')) {\n      pdVar5 = (demangle_component *)0x0;\n      if (cVar2 == 't') {\n        pdVar5 = cplus_demangle_type(di);\n        pcVar11 = di->n;\n        if (pcVar11[1] == '\0') {\n          return (demangle_component *)0x0;\n        }\n      }\n      di->n = pcVar11 + 2;\n      pdVar9 = d_exprlist(di,'E');\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_INITIALIZER_LIST,pdVar5,pdVar9);\n      return pdVar5;\n    }" if (parenthesized_expression "(cVar2 == 'o')" ( (binary_expression "cVar2 == 'o'" identifier == (char_literal "'o'" ' character ')) )) (compound_statement "{\n      if (pcVar11[1] == 'n') {\n        di->n = pcVar11 + 2;\n        goto LAB_00177505;\n      }\n    }" { (if_statement "if (pcVar11[1] == 'n') {\n        di->n = pcVar11 + 2;\n        goto LAB_00177505;\n      }" if (parenthesized_expression "(pcVar11[1] == 'n')" ( (binary_expression "pcVar11[1] == 'n'" (subscript_expression "pcVar11[1]" identifier [ number_literal ]) == (char_literal "'n'" ' character ')) )) (compound_statement "{\n        di->n = pcVar11 + 2;\n        goto LAB_00177505;\n      }" { (expression_statement "di->n = pcVar11 + 2;" (assignment_expression "di->n = pcVar11 + 2" (field_expression "di->n" identifier -> field_identifier) = (binary_expression "pcVar11 + 2" identifier + number_literal)) ;) (goto_statement "goto LAB_00177505;" goto statement_identifier ;) })) }) (else_clause "else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar11[1] == 'l')) {\n      pdVar5 = (demangle_component *)0x0;\n      if (cVar2 == 't') {\n        pdVar5 = cplus_demangle_type(di);\n        pcVar11 = di->n;\n        if (pcVar11[1] == '\0') {\n          return (demangle_component *)0x0;\n        }\n      }\n      di->n = pcVar11 + 2;\n      pdVar9 = d_exprlist(di,'E');\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_INITIALIZER_LIST,pdVar5,pdVar9);\n      return pdVar5;\n    }" else (if_statement "if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar11[1] == 'l')) {\n      pdVar5 = (demangle_component *)0x0;\n      if (cVar2 == 't') {\n        pdVar5 = cplus_demangle_type(di);\n        pcVar11 = di->n;\n        if (pcVar11[1] == '\0') {\n          return (demangle_component *)0x0;\n        }\n      }\n      di->n = pcVar11 + 2;\n      pdVar9 = d_exprlist(di,'E');\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_INITIALIZER_LIST,pdVar5,pdVar9);\n      return pdVar5;\n    }" if (parenthesized_expression "(((cVar2 == 'i') || (cVar2 == 't')) && (pcVar11[1] == 'l'))" ( (binary_expression "((cVar2 == 'i') || (cVar2 == 't')) && (pcVar11[1] == 'l')" (parenthesized_expression "((cVar2 == 'i') || (cVar2 == 't'))" ( (binary_expression "(cVar2 == 'i') || (cVar2 == 't')" (parenthesized_expression "(cVar2 == 'i')" ( (binary_expression "cVar2 == 'i'" identifier == (char_literal "'i'" ' character ')) )) || (parenthesized_expression "(cVar2 == 't')" ( (binary_expression "cVar2 == 't'" identifier == (char_literal "'t'" ' character ')) ))) )) && (parenthesized_expression "(pcVar11[1] == 'l')" ( (binary_expression "pcVar11[1] == 'l'" (subscript_expression "pcVar11[1]" identifier [ number_literal ]) == (char_literal "'l'" ' character ')) ))) )) (compound_statement "{\n      pdVar5 = (demangle_component *)0x0;\n      if (cVar2 == 't') {\n        pdVar5 = cplus_demangle_type(di);\n        pcVar11 = di->n;\n        if (pcVar11[1] == '\0') {\n          return (demangle_component *)0x0;\n        }\n      }\n      di->n = pcVar11 + 2;\n      pdVar9 = d_exprlist(di,'E');\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_INITIALIZER_LIST,pdVar5,pdVar9);\n      return pdVar5;\n    }" { (expression_statement "pdVar5 = (demangle_component *)0x0;" (assignment_expression "pdVar5 = (demangle_component *)0x0" identifier = (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (cVar2 == 't') {\n        pdVar5 = cplus_demangle_type(di);\n        pcVar11 = di->n;\n        if (pcVar11[1] == '\0') {\n          return (demangle_component *)0x0;\n        }\n      }" if (parenthesized_expression "(cVar2 == 't')" ( (binary_expression "cVar2 == 't'" identifier == (char_literal "'t'" ' character ')) )) (compound_statement "{\n        pdVar5 = cplus_demangle_type(di);\n        pcVar11 = di->n;\n        if (pcVar11[1] == '\0') {\n          return (demangle_component *)0x0;\n        }\n      }" { (expression_statement "pdVar5 = cplus_demangle_type(di);" (assignment_expression "pdVar5 = cplus_demangle_type(di)" identifier = (call_expression "cplus_demangle_type(di)" identifier (argument_list "(di)" ( identifier )))) ;) (expression_statement "pcVar11 = di->n;" (assignment_expression "pcVar11 = di->n" identifier = (field_expression "di->n" identifier -> field_identifier)) ;) (if_statement "if (pcVar11[1] == '\0') {\n          return (demangle_component *)0x0;\n        }" if (parenthesized_expression "(pcVar11[1] == '\0')" ( (binary_expression "pcVar11[1] == '\0'" (subscript_expression "pcVar11[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          return (demangle_component *)0x0;\n        }" { (return_statement "return (demangle_component *)0x0;" return (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) })) (expression_statement "di->n = pcVar11 + 2;" (assignment_expression "di->n = pcVar11 + 2" (field_expression "di->n" identifier -> field_identifier) = (binary_expression "pcVar11 + 2" identifier + number_literal)) ;) (expression_statement "pdVar9 = d_exprlist(di,'E');" (assignment_expression "pdVar9 = d_exprlist(di,'E')" identifier = (call_expression "d_exprlist(di,'E')" identifier (argument_list "(di,'E')" ( identifier , (char_literal "'E'" ' character ') )))) ;) (expression_statement "pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_INITIALIZER_LIST,pdVar5,pdVar9);" (assignment_expression "pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_INITIALIZER_LIST,pdVar5,pdVar9)" identifier = (call_expression "d_make_comp(di,DEMANGLE_COMPONENT_INITIALIZER_LIST,pdVar5,pdVar9)" identifier (argument_list "(di,DEMANGLE_COMPONENT_INITIALIZER_LIST,pdVar5,pdVar9)" ( identifier , identifier , identifier , identifier )))) ;) (return_statement "return pdVar5;" return identifier ;) })))) }))))) (expression_statement "pdVar5 = d_operator_name(di);" (assignment_expression "pdVar5 = d_operator_name(di)" identifier = (call_expression "d_operator_name(di)" identifier (argument_list "(di)" ( identifier )))) ;) (if_statement "if (pdVar5 == (demangle_component *)0x0) {\n    return (demangle_component *)0x0;\n  }" if (parenthesized_expression "(pdVar5 == (demangle_component *)0x0)" ( (binary_expression "pdVar5 == (demangle_component *)0x0" identifier == (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return (demangle_component *)0x0;\n  }" { (return_statement "return (demangle_component *)0x0;" return (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "dVar4 = pdVar5->type;" (assignment_expression "dVar4 = pdVar5->type" identifier = (field_expression "pdVar5->type" identifier -> field_identifier)) ;) (if_statement "if (dVar4 == DEMANGLE_COMPONENT_OPERATOR) {\n    pcVar11 = (pdVar5->u).s_name.s;\n    pbVar13 = *(byte **)pcVar11;\n    piVar1 = &di->expansion;\n    bVar15 = CARRY4(*piVar1,*(int *)(pcVar11 + 8) - 2U);\n    *piVar1 = *piVar1 + (*(int *)(pcVar11 + 8) - 2U);\n    bVar18 = *piVar1 == 0;\n    iVar10 = 3;\n    pbVar12 = pbVar13;\n    pbVar14 = (byte *)0x238e84;\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar15 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n    } while (bVar18);\n    if ((!bVar15 && !bVar18) == bVar15) {\n      pdVar9 = cplus_demangle_type(di);\n      goto LAB_001778fb;\n    }\n    iVar10 = *(int *)(pcVar11 + 0xc);\n    if (iVar10 != 1) {\n      if (iVar10 < 2) goto joined_r0x00177952;\n      if (iVar10 == 2) {\n        if (pbVar13 == (byte *)0x0) {\n          return (demangle_component *)0x0;\n        }\n        if (((*(char **)pcVar11)[1] == 'c') &&\n           ((cVar2 = **(char **)pcVar11, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2))))\n        {\n          local_20 = cplus_demangle_type(di);\n          uVar16 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n          uVar19 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar16 = *pbVar13 < 0x66;\n          uVar19 = *pbVar13 == 0x66;\n          if ((bool)uVar19) {\n            local_20 = d_operator_name(di);\n          }\n          else {\n            local_20 = d_expression_1(di);\n          }\n        }\n        iVar10 = 3;\n        pbVar12 = pbVar13;\n        pbVar14 = &DAT_00237ab8;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          uVar16 = *pbVar12 < *pbVar14;\n          uVar19 = *pbVar12 == *pbVar14;\n          pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n        } while ((bool)uVar19);\n        bVar15 = false;\n        bVar18 = (!(bool)uVar16 && !(bool)uVar19) == (bool)uVar16;\n        if (bVar18) {\n          pdVar9 = d_exprlist(di,'E');\n        }\n        else {\n          iVar10 = 3;\n          pbVar12 = pbVar13;\n          pbVar14 = &DAT_00237716;\n          do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar15 = *pbVar12 < *pbVar14;\n            bVar18 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n          } while (bVar18);\n          bVar17 = false;\n          bVar15 = (!bVar15 && !bVar18) == bVar15;\n          if (!bVar15) {\n            iVar10 = 3;\n            pbVar12 = (byte *)0x2318e8;\n            do {\n              if (iVar10 == 0) break;\n              iVar10 = iVar10 + -1;\n              bVar17 = *pbVar13 < *pbVar12;\n              bVar15 = *pbVar13 == *pbVar12;\n              pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar17 && !bVar15) != bVar17) {\n              pdVar9 = d_expression_1(di);\n              goto LAB_00177a83;\n            }\n          }\n          pdVar9 = d_unqualified_name(in_stack_ffffffd4);\n          if (*di->n == 'I') {\n            pdVar8 = d_template_args(di);\n            pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);\n          }\n        }\nLAB_00177a83:\n        pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY_ARGS,local_20,pdVar9);\n        pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY,pdVar5,pdVar9);\n        return pdVar5;\n      }\n      if (iVar10 != 3) {\n        return (demangle_component *)0x0;\n      }\n      bVar15 = false;\n      bVar18 = pbVar13 == (byte *)0x0;\n      if (bVar18) {\n        return (demangle_component *)0x0;\n      }\n      iVar10 = 3;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00238c45;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar15 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar15 && !bVar18) == bVar15) {\n        pdVar9 = d_expression_1(di);\n      }\n      else {\n        if (*pbVar13 != 0x66) {\n          if (*pbVar13 != 0x6e) {\n            return (demangle_component *)0x0;\n          }\n          if ((pbVar13[1] != 0x77) && (pbVar13[1] != 0x61)) {\n            return (demangle_component *)0x0;\n          }\n          pdVar9 = d_exprlist(di,'_');\n          pdVar8 = cplus_demangle_type(di);\n          pcVar11 = di->n;\n          cVar2 = *pcVar11;\n          if (cVar2 == 'E') {\n            di->n = pcVar11 + 1;\n            right = (demangle_component *)0x0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar11[1] != 'i') {\n              return (demangle_component *)0x0;\n            }\n            di->n = pcVar11 + 2;\n            right = d_exprlist(di,'E');\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (demangle_component *)0x0;\n            }\n            if (pcVar11[1] != 'l') {\n              return (demangle_component *)0x0;\n            }\n            right = d_expression_1(di);\n          }\n          goto LAB_0017779c;\n        }\n        pdVar9 = d_operator_name(di);\n      }\n      pdVar8 = d_expression_1(di);\n      right = d_expression_1(di);\n      if (right == (demangle_component *)0x0) {\n        return (demangle_component *)0x0;\n      }\nLAB_0017779c:\n      pdVar8 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY_ARG2,pdVar8,right);\n      pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY_ARG1,pdVar9,pdVar8);\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY,pdVar5,pdVar9);\n      return pdVar5;\n    }\n    bVar3 = *pbVar13;\n    if (((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == pbVar13[1])) {\n      bVar3 = *di->n;\n      bVar18 = bVar3 < 0x5f;\n      bVar17 = bVar3 == 0x5f;\n      bVar15 = true;\n      if (bVar17) {\n        di->n = di->n + 1;\n        goto LAB_001778af;\n      }\n    }\n    else {\nLAB_001778af:\n      bVar18 = false;\n      bVar15 = false;\n      bVar17 = true;\n    }\n    iVar10 = 3;\n    pbVar12 = &DAT_00238c3f;\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar18 = *pbVar13 < *pbVar12;\n      bVar17 = *pbVar13 == *pbVar12;\n      pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) goto LAB_001778cf;\n    pdVar9 = d_template_args_1(di);\n  }\n  else {\n    if (dVar4 == DEMANGLE_COMPONENT_EXTENDED_OPERATOR) {\n      iVar10 = (pdVar5->u).s_extended_operator.args;\n      if (iVar10 != 1) {\n        if (1 < iVar10) {\n          return (demangle_component *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar10 == 0) {\n          pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_NULLARY,pdVar5,(demangle_component *)0x0);\n          return pdVar5;\n        }\n        return (demangle_component *)0x0;\n      }\n      pdVar9 = d_expression_1(di);\n      goto LAB_001778fb;\n    }\n    if (dVar4 != DEMANGLE_COMPONENT_CAST) {\n      return (demangle_component *)0x0;\n    }\n    if (*di->n == '_') {\n      di->n = di->n + 1;\n      pdVar9 = d_exprlist(di,'E');\n      goto LAB_001778fb;\n    }\n    bVar15 = false;\nLAB_001778cf:\n    pdVar9 = d_expression_1(di);\n  }" if (parenthesized_expression "(dVar4 == DEMANGLE_COMPONENT_OPERATOR)" ( (binary_expression "dVar4 == DEMANGLE_COMPONENT_OPERATOR" identifier == identifier) )) (compound_statement "{\n    pcVar11 = (pdVar5->u).s_name.s;\n    pbVar13 = *(byte **)pcVar11;\n    piVar1 = &di->expansion;\n    bVar15 = CARRY4(*piVar1,*(int *)(pcVar11 + 8) - 2U);\n    *piVar1 = *piVar1 + (*(int *)(pcVar11 + 8) - 2U);\n    bVar18 = *piVar1 == 0;\n    iVar10 = 3;\n    pbVar12 = pbVar13;\n    pbVar14 = (byte *)0x238e84;\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar15 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n    } while (bVar18);\n    if ((!bVar15 && !bVar18) == bVar15) {\n      pdVar9 = cplus_demangle_type(di);\n      goto LAB_001778fb;\n    }\n    iVar10 = *(int *)(pcVar11 + 0xc);\n    if (iVar10 != 1) {\n      if (iVar10 < 2) goto joined_r0x00177952;\n      if (iVar10 == 2) {\n        if (pbVar13 == (byte *)0x0) {\n          return (demangle_component *)0x0;\n        }\n        if (((*(char **)pcVar11)[1] == 'c') &&\n           ((cVar2 = **(char **)pcVar11, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2))))\n        {\n          local_20 = cplus_demangle_type(di);\n          uVar16 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n          uVar19 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar16 = *pbVar13 < 0x66;\n          uVar19 = *pbVar13 == 0x66;\n          if ((bool)uVar19) {\n            local_20 = d_operator_name(di);\n          }\n          else {\n            local_20 = d_expression_1(di);\n          }\n        }\n        iVar10 = 3;\n        pbVar12 = pbVar13;\n        pbVar14 = &DAT_00237ab8;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          uVar16 = *pbVar12 < *pbVar14;\n          uVar19 = *pbVar12 == *pbVar14;\n          pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n        } while ((bool)uVar19);\n        bVar15 = false;\n        bVar18 = (!(bool)uVar16 && !(bool)uVar19) == (bool)uVar16;\n        if (bVar18) {\n          pdVar9 = d_exprlist(di,'E');\n        }\n        else {\n          iVar10 = 3;\n          pbVar12 = pbVar13;\n          pbVar14 = &DAT_00237716;\n          do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar15 = *pbVar12 < *pbVar14;\n            bVar18 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n          } while (bVar18);\n          bVar17 = false;\n          bVar15 = (!bVar15 && !bVar18) == bVar15;\n          if (!bVar15) {\n            iVar10 = 3;\n            pbVar12 = (byte *)0x2318e8;\n            do {\n              if (iVar10 == 0) break;\n              iVar10 = iVar10 + -1;\n              bVar17 = *pbVar13 < *pbVar12;\n              bVar15 = *pbVar13 == *pbVar12;\n              pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar17 && !bVar15) != bVar17) {\n              pdVar9 = d_expression_1(di);\n              goto LAB_00177a83;\n            }\n          }\n          pdVar9 = d_unqualified_name(in_stack_ffffffd4);\n          if (*di->n == 'I') {\n            pdVar8 = d_template_args(di);\n            pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);\n          }\n        }\nLAB_00177a83:\n        pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY_ARGS,local_20,pdVar9);\n        pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY,pdVar5,pdVar9);\n        return pdVar5;\n      }\n      if (iVar10 != 3) {\n        return (demangle_component *)0x0;\n      }\n      bVar15 = false;\n      bVar18 = pbVar13 == (byte *)0x0;\n      if (bVar18) {\n        return (demangle_component *)0x0;\n      }\n      iVar10 = 3;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00238c45;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar15 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar15 && !bVar18) == bVar15) {\n        pdVar9 = d_expression_1(di);\n      }\n      else {\n        if (*pbVar13 != 0x66) {\n          if (*pbVar13 != 0x6e) {\n            return (demangle_component *)0x0;\n          }\n          if ((pbVar13[1] != 0x77) && (pbVar13[1] != 0x61)) {\n            return (demangle_component *)0x0;\n          }\n          pdVar9 = d_exprlist(di,'_');\n          pdVar8 = cplus_demangle_type(di);\n          pcVar11 = di->n;\n          cVar2 = *pcVar11;\n          if (cVar2 == 'E') {\n            di->n = pcVar11 + 1;\n            right = (demangle_component *)0x0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar11[1] != 'i') {\n              return (demangle_component *)0x0;\n            }\n            di->n = pcVar11 + 2;\n            right = d_exprlist(di,'E');\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (demangle_component *)0x0;\n            }\n            if (pcVar11[1] != 'l') {\n              return (demangle_component *)0x0;\n            }\n            right = d_expression_1(di);\n          }\n          goto LAB_0017779c;\n        }\n        pdVar9 = d_operator_name(di);\n      }\n      pdVar8 = d_expression_1(di);\n      right = d_expression_1(di);\n      if (right == (demangle_component *)0x0) {\n        return (demangle_component *)0x0;\n      }\nLAB_0017779c:\n      pdVar8 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY_ARG2,pdVar8,right);\n      pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY_ARG1,pdVar9,pdVar8);\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY,pdVar5,pdVar9);\n      return pdVar5;\n    }\n    bVar3 = *pbVar13;\n    if (((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == pbVar13[1])) {\n      bVar3 = *di->n;\n      bVar18 = bVar3 < 0x5f;\n      bVar17 = bVar3 == 0x5f;\n      bVar15 = true;\n      if (bVar17) {\n        di->n = di->n + 1;\n        goto LAB_001778af;\n      }\n    }\n    else {\nLAB_001778af:\n      bVar18 = false;\n      bVar15 = false;\n      bVar17 = true;\n    }\n    iVar10 = 3;\n    pbVar12 = &DAT_00238c3f;\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar18 = *pbVar13 < *pbVar12;\n      bVar17 = *pbVar13 == *pbVar12;\n      pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);\n    if ((!bVar18 && !bVar17) != bVar18) goto LAB_001778cf;\n    pdVar9 = d_template_args_1(di);\n  }" { (expression_statement "pcVar11 = (pdVar5->u).s_name.s;" (assignment_expression "pcVar11 = (pdVar5->u).s_name.s" identifier = (field_expression "(pdVar5->u).s_name.s" (field_expression "(pdVar5->u).s_name" (parenthesized_expression "(pdVar5->u)" ( (field_expression "pdVar5->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "pbVar13 = *(byte **)pcVar11;" (assignment_expression "pbVar13 = *(byte **)pcVar11" identifier = (pointer_expression "*(byte **)pcVar11" * (cast_expression "(byte **)pcVar11" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "piVar1 = &di->expansion;" (assignment_expression "piVar1 = &di->expansion" identifier = (pointer_expression "&di->expansion" & (field_expression "di->expansion" identifier -> field_identifier))) ;) (expression_statement "bVar15 = CARRY4(*piVar1,*(int *)(pcVar11 + 8) - 2U);" (assignment_expression "bVar15 = CARRY4(*piVar1,*(int *)(pcVar11 + 8) - 2U)" identifier = (call_expression "CARRY4(*piVar1,*(int *)(pcVar11 + 8) - 2U)" identifier (argument_list "(*piVar1,*(int *)(pcVar11 + 8) - 2U)" ( (pointer_expression "*piVar1" * identifier) , (binary_expression "*(int *)(pcVar11 + 8) - 2U" (pointer_expression "*(int *)(pcVar11 + 8)" * (cast_expression "(int *)(pcVar11 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 8)" ( (binary_expression "pcVar11 + 8" identifier + number_literal) )))) - number_literal) )))) ;) (expression_statement "*piVar1 = *piVar1 + (*(int *)(pcVar11 + 8) - 2U);" (assignment_expression "*piVar1 = *piVar1 + (*(int *)(pcVar11 + 8) - 2U)" (pointer_expression "*piVar1" * identifier) = (binary_expression "*piVar1 + (*(int *)(pcVar11 + 8) - 2U)" (pointer_expression "*piVar1" * identifier) + (parenthesized_expression "(*(int *)(pcVar11 + 8) - 2U)" ( (binary_expression "*(int *)(pcVar11 + 8) - 2U" (pointer_expression "*(int *)(pcVar11 + 8)" * (cast_expression "(int *)(pcVar11 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 8)" ( (binary_expression "pcVar11 + 8" identifier + number_literal) )))) - number_literal) )))) ;) (expression_statement "bVar18 = *piVar1 == 0;" (assignment_expression "bVar18 = *piVar1 == 0" identifier = (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" * identifier) == number_literal)) ;) (expression_statement "iVar10 = 3;" (assignment_expression "iVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar12 = pbVar13;" (assignment_expression "pbVar12 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)0x238e84;" (assignment_expression "pbVar14 = (byte *)0x238e84" identifier = (cast_expression "(byte *)0x238e84" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar15 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n    } while (bVar18);" do (compound_statement "{\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar15 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n    }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar12 < *pbVar14;" (assignment_expression "bVar15 = *pbVar12 < *pbVar14" identifier = (binary_expression "*pbVar12 < *pbVar14" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar18 = *pbVar12 == *pbVar14;" (assignment_expression "bVar18 = *pbVar12 == *pbVar14" identifier = (binary_expression "*pbVar12 == *pbVar14" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (if_statement "if ((!bVar15 && !bVar18) == bVar15) {\n      pdVar9 = cplus_demangle_type(di);\n      goto LAB_001778fb;\n    }" if (parenthesized_expression "((!bVar15 && !bVar18) == bVar15)" ( (binary_expression "(!bVar15 && !bVar18) == bVar15" (parenthesized_expression "(!bVar15 && !bVar18)" ( (binary_expression "!bVar15 && !bVar18" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier) )) (compound_statement "{\n      pdVar9 = cplus_demangle_type(di);\n      goto LAB_001778fb;\n    }" { (expression_statement "pdVar9 = cplus_demangle_type(di);" (assignment_expression "pdVar9 = cplus_demangle_type(di)" identifier = (call_expression "cplus_demangle_type(di)" identifier (argument_list "(di)" ( identifier )))) ;) (goto_statement "goto LAB_001778fb;" goto statement_identifier ;) })) (expression_statement "iVar10 = *(int *)(pcVar11 + 0xc);" (assignment_expression "iVar10 = *(int *)(pcVar11 + 0xc)" identifier = (pointer_expression "*(int *)(pcVar11 + 0xc)" * (cast_expression "(int *)(pcVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0xc)" ( (binary_expression "pcVar11 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 != 1) {\n      if (iVar10 < 2) goto joined_r0x00177952;\n      if (iVar10 == 2) {\n        if (pbVar13 == (byte *)0x0) {\n          return (demangle_component *)0x0;\n        }\n        if (((*(char **)pcVar11)[1] == 'c') &&\n           ((cVar2 = **(char **)pcVar11, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2))))\n        {\n          local_20 = cplus_demangle_type(di);\n          uVar16 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n          uVar19 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar16 = *pbVar13 < 0x66;\n          uVar19 = *pbVar13 == 0x66;\n          if ((bool)uVar19) {\n            local_20 = d_operator_name(di);\n          }\n          else {\n            local_20 = d_expression_1(di);\n          }\n        }\n        iVar10 = 3;\n        pbVar12 = pbVar13;\n        pbVar14 = &DAT_00237ab8;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          uVar16 = *pbVar12 < *pbVar14;\n          uVar19 = *pbVar12 == *pbVar14;\n          pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n        } while ((bool)uVar19);\n        bVar15 = false;\n        bVar18 = (!(bool)uVar16 && !(bool)uVar19) == (bool)uVar16;\n        if (bVar18) {\n          pdVar9 = d_exprlist(di,'E');\n        }\n        else {\n          iVar10 = 3;\n          pbVar12 = pbVar13;\n          pbVar14 = &DAT_00237716;\n          do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar15 = *pbVar12 < *pbVar14;\n            bVar18 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n          } while (bVar18);\n          bVar17 = false;\n          bVar15 = (!bVar15 && !bVar18) == bVar15;\n          if (!bVar15) {\n            iVar10 = 3;\n            pbVar12 = (byte *)0x2318e8;\n            do {\n              if (iVar10 == 0) break;\n              iVar10 = iVar10 + -1;\n              bVar17 = *pbVar13 < *pbVar12;\n              bVar15 = *pbVar13 == *pbVar12;\n              pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar17 && !bVar15) != bVar17) {\n              pdVar9 = d_expression_1(di);\n              goto LAB_00177a83;\n            }\n          }\n          pdVar9 = d_unqualified_name(in_stack_ffffffd4);\n          if (*di->n == 'I') {\n            pdVar8 = d_template_args(di);\n            pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);\n          }\n        }\nLAB_00177a83:\n        pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY_ARGS,local_20,pdVar9);\n        pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY,pdVar5,pdVar9);\n        return pdVar5;\n      }\n      if (iVar10 != 3) {\n        return (demangle_component *)0x0;\n      }\n      bVar15 = false;\n      bVar18 = pbVar13 == (byte *)0x0;\n      if (bVar18) {\n        return (demangle_component *)0x0;\n      }\n      iVar10 = 3;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00238c45;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar15 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar15 && !bVar18) == bVar15) {\n        pdVar9 = d_expression_1(di);\n      }\n      else {\n        if (*pbVar13 != 0x66) {\n          if (*pbVar13 != 0x6e) {\n            return (demangle_component *)0x0;\n          }\n          if ((pbVar13[1] != 0x77) && (pbVar13[1] != 0x61)) {\n            return (demangle_component *)0x0;\n          }\n          pdVar9 = d_exprlist(di,'_');\n          pdVar8 = cplus_demangle_type(di);\n          pcVar11 = di->n;\n          cVar2 = *pcVar11;\n          if (cVar2 == 'E') {\n            di->n = pcVar11 + 1;\n            right = (demangle_component *)0x0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar11[1] != 'i') {\n              return (demangle_component *)0x0;\n            }\n            di->n = pcVar11 + 2;\n            right = d_exprlist(di,'E');\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (demangle_component *)0x0;\n            }\n            if (pcVar11[1] != 'l') {\n              return (demangle_component *)0x0;\n            }\n            right = d_expression_1(di);\n          }\n          goto LAB_0017779c;\n        }\n        pdVar9 = d_operator_name(di);\n      }\n      pdVar8 = d_expression_1(di);\n      right = d_expression_1(di);\n      if (right == (demangle_component *)0x0) {\n        return (demangle_component *)0x0;\n      }\nLAB_0017779c:\n      pdVar8 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY_ARG2,pdVar8,right);\n      pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY_ARG1,pdVar9,pdVar8);\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY,pdVar5,pdVar9);\n      return pdVar5;\n    }" if (parenthesized_expression "(iVar10 != 1)" ( (binary_expression "iVar10 != 1" identifier != number_literal) )) (compound_statement "{\n      if (iVar10 < 2) goto joined_r0x00177952;\n      if (iVar10 == 2) {\n        if (pbVar13 == (byte *)0x0) {\n          return (demangle_component *)0x0;\n        }\n        if (((*(char **)pcVar11)[1] == 'c') &&\n           ((cVar2 = **(char **)pcVar11, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2))))\n        {\n          local_20 = cplus_demangle_type(di);\n          uVar16 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n          uVar19 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar16 = *pbVar13 < 0x66;\n          uVar19 = *pbVar13 == 0x66;\n          if ((bool)uVar19) {\n            local_20 = d_operator_name(di);\n          }\n          else {\n            local_20 = d_expression_1(di);\n          }\n        }\n        iVar10 = 3;\n        pbVar12 = pbVar13;\n        pbVar14 = &DAT_00237ab8;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          uVar16 = *pbVar12 < *pbVar14;\n          uVar19 = *pbVar12 == *pbVar14;\n          pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n        } while ((bool)uVar19);\n        bVar15 = false;\n        bVar18 = (!(bool)uVar16 && !(bool)uVar19) == (bool)uVar16;\n        if (bVar18) {\n          pdVar9 = d_exprlist(di,'E');\n        }\n        else {\n          iVar10 = 3;\n          pbVar12 = pbVar13;\n          pbVar14 = &DAT_00237716;\n          do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar15 = *pbVar12 < *pbVar14;\n            bVar18 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n          } while (bVar18);\n          bVar17 = false;\n          bVar15 = (!bVar15 && !bVar18) == bVar15;\n          if (!bVar15) {\n            iVar10 = 3;\n            pbVar12 = (byte *)0x2318e8;\n            do {\n              if (iVar10 == 0) break;\n              iVar10 = iVar10 + -1;\n              bVar17 = *pbVar13 < *pbVar12;\n              bVar15 = *pbVar13 == *pbVar12;\n              pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar17 && !bVar15) != bVar17) {\n              pdVar9 = d_expression_1(di);\n              goto LAB_00177a83;\n            }\n          }\n          pdVar9 = d_unqualified_name(in_stack_ffffffd4);\n          if (*di->n == 'I') {\n            pdVar8 = d_template_args(di);\n            pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);\n          }\n        }\nLAB_00177a83:\n        pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY_ARGS,local_20,pdVar9);\n        pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY,pdVar5,pdVar9);\n        return pdVar5;\n      }\n      if (iVar10 != 3) {\n        return (demangle_component *)0x0;\n      }\n      bVar15 = false;\n      bVar18 = pbVar13 == (byte *)0x0;\n      if (bVar18) {\n        return (demangle_component *)0x0;\n      }\n      iVar10 = 3;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00238c45;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar15 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar15 && !bVar18) == bVar15) {\n        pdVar9 = d_expression_1(di);\n      }\n      else {\n        if (*pbVar13 != 0x66) {\n          if (*pbVar13 != 0x6e) {\n            return (demangle_component *)0x0;\n          }\n          if ((pbVar13[1] != 0x77) && (pbVar13[1] != 0x61)) {\n            return (demangle_component *)0x0;\n          }\n          pdVar9 = d_exprlist(di,'_');\n          pdVar8 = cplus_demangle_type(di);\n          pcVar11 = di->n;\n          cVar2 = *pcVar11;\n          if (cVar2 == 'E') {\n            di->n = pcVar11 + 1;\n            right = (demangle_component *)0x0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar11[1] != 'i') {\n              return (demangle_component *)0x0;\n            }\n            di->n = pcVar11 + 2;\n            right = d_exprlist(di,'E');\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (demangle_component *)0x0;\n            }\n            if (pcVar11[1] != 'l') {\n              return (demangle_component *)0x0;\n            }\n            right = d_expression_1(di);\n          }\n          goto LAB_0017779c;\n        }\n        pdVar9 = d_operator_name(di);\n      }\n      pdVar8 = d_expression_1(di);\n      right = d_expression_1(di);\n      if (right == (demangle_component *)0x0) {\n        return (demangle_component *)0x0;\n      }\nLAB_0017779c:\n      pdVar8 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY_ARG2,pdVar8,right);\n      pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY_ARG1,pdVar9,pdVar8);\n      pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY,pdVar5,pdVar9);\n      return pdVar5;\n    }" { (if_statement "if (iVar10 < 2) goto joined_r0x00177952;" if (parenthesized_expression "(iVar10 < 2)" ( (binary_expression "iVar10 < 2" identifier < number_literal) )) (goto_statement "goto joined_r0x00177952;" goto statement_identifier ;)) (if_statement "if (iVar10 == 2) {\n        if (pbVar13 == (byte *)0x0) {\n          return (demangle_component *)0x0;\n        }\n        if (((*(char **)pcVar11)[1] == 'c') &&\n           ((cVar2 = **(char **)pcVar11, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2))))\n        {\n          local_20 = cplus_demangle_type(di);\n          uVar16 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n          uVar19 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar16 = *pbVar13 < 0x66;\n          uVar19 = *pbVar13 == 0x66;\n          if ((bool)uVar19) {\n            local_20 = d_operator_name(di);\n          }\n          else {\n            local_20 = d_expression_1(di);\n          }\n        }\n        iVar10 = 3;\n        pbVar12 = pbVar13;\n        pbVar14 = &DAT_00237ab8;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          uVar16 = *pbVar12 < *pbVar14;\n          uVar19 = *pbVar12 == *pbVar14;\n          pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n        } while ((bool)uVar19);\n        bVar15 = false;\n        bVar18 = (!(bool)uVar16 && !(bool)uVar19) == (bool)uVar16;\n        if (bVar18) {\n          pdVar9 = d_exprlist(di,'E');\n        }\n        else {\n          iVar10 = 3;\n          pbVar12 = pbVar13;\n          pbVar14 = &DAT_00237716;\n          do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar15 = *pbVar12 < *pbVar14;\n            bVar18 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n          } while (bVar18);\n          bVar17 = false;\n          bVar15 = (!bVar15 && !bVar18) == bVar15;\n          if (!bVar15) {\n            iVar10 = 3;\n            pbVar12 = (byte *)0x2318e8;\n            do {\n              if (iVar10 == 0) break;\n              iVar10 = iVar10 + -1;\n              bVar17 = *pbVar13 < *pbVar12;\n              bVar15 = *pbVar13 == *pbVar12;\n              pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar17 && !bVar15) != bVar17) {\n              pdVar9 = d_expression_1(di);\n              goto LAB_00177a83;\n            }\n          }\n          pdVar9 = d_unqualified_name(in_stack_ffffffd4);\n          if (*di->n == 'I') {\n            pdVar8 = d_template_args(di);\n            pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);\n          }\n        }\nLAB_00177a83:\n        pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY_ARGS,local_20,pdVar9);\n        pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY,pdVar5,pdVar9);\n        return pdVar5;\n      }" if (parenthesized_expression "(iVar10 == 2)" ( (binary_expression "iVar10 == 2" identifier == number_literal) )) (compound_statement "{\n        if (pbVar13 == (byte *)0x0) {\n          return (demangle_component *)0x0;\n        }\n        if (((*(char **)pcVar11)[1] == 'c') &&\n           ((cVar2 = **(char **)pcVar11, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2))))\n        {\n          local_20 = cplus_demangle_type(di);\n          uVar16 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n          uVar19 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar16 = *pbVar13 < 0x66;\n          uVar19 = *pbVar13 == 0x66;\n          if ((bool)uVar19) {\n            local_20 = d_operator_name(di);\n          }\n          else {\n            local_20 = d_expression_1(di);\n          }\n        }\n        iVar10 = 3;\n        pbVar12 = pbVar13;\n        pbVar14 = &DAT_00237ab8;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          uVar16 = *pbVar12 < *pbVar14;\n          uVar19 = *pbVar12 == *pbVar14;\n          pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n        } while ((bool)uVar19);\n        bVar15 = false;\n        bVar18 = (!(bool)uVar16 && !(bool)uVar19) == (bool)uVar16;\n        if (bVar18) {\n          pdVar9 = d_exprlist(di,'E');\n        }\n        else {\n          iVar10 = 3;\n          pbVar12 = pbVar13;\n          pbVar14 = &DAT_00237716;\n          do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar15 = *pbVar12 < *pbVar14;\n            bVar18 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n          } while (bVar18);\n          bVar17 = false;\n          bVar15 = (!bVar15 && !bVar18) == bVar15;\n          if (!bVar15) {\n            iVar10 = 3;\n            pbVar12 = (byte *)0x2318e8;\n            do {\n              if (iVar10 == 0) break;\n              iVar10 = iVar10 + -1;\n              bVar17 = *pbVar13 < *pbVar12;\n              bVar15 = *pbVar13 == *pbVar12;\n              pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar17 && !bVar15) != bVar17) {\n              pdVar9 = d_expression_1(di);\n              goto LAB_00177a83;\n            }\n          }\n          pdVar9 = d_unqualified_name(in_stack_ffffffd4);\n          if (*di->n == 'I') {\n            pdVar8 = d_template_args(di);\n            pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);\n          }\n        }\nLAB_00177a83:\n        pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY_ARGS,local_20,pdVar9);\n        pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY,pdVar5,pdVar9);\n        return pdVar5;\n      }" { (if_statement "if (pbVar13 == (byte *)0x0) {\n          return (demangle_component *)0x0;\n        }" if (parenthesized_expression "(pbVar13 == (byte *)0x0)" ( (binary_expression "pbVar13 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return (demangle_component *)0x0;\n        }" { (return_statement "return (demangle_component *)0x0;" return (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (((*(char **)pcVar11)[1] == 'c') &&\n           ((cVar2 = **(char **)pcVar11, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2))))\n        {\n          local_20 = cplus_demangle_type(di);\n          uVar16 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n          uVar19 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar16 = *pbVar13 < 0x66;\n          uVar19 = *pbVar13 == 0x66;\n          if ((bool)uVar19) {\n            local_20 = d_operator_name(di);\n          }\n          else {\n            local_20 = d_expression_1(di);\n          }\n        }" if (parenthesized_expression "(((*(char **)pcVar11)[1] == 'c') &&\n           ((cVar2 = **(char **)pcVar11, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2))))" ( (binary_expression "((*(char **)pcVar11)[1] == 'c') &&\n           ((cVar2 = **(char **)pcVar11, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))" (parenthesized_expression "((*(char **)pcVar11)[1] == 'c')" ( (binary_expression "(*(char **)pcVar11)[1] == 'c'" (subscript_expression "(*(char **)pcVar11)[1]" (parenthesized_expression "(*(char **)pcVar11)" ( (pointer_expression "*(char **)pcVar11" * (cast_expression "(char **)pcVar11" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) )) [ number_literal ]) == (char_literal "'c'" ' character ')) )) && (parenthesized_expression "((cVar2 = **(char **)pcVar11, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))" ( (parenthesized_expression "(cVar2 = **(char **)pcVar11, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2))" ( (comma_expression "cVar2 = **(char **)pcVar11, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)" (assignment_expression "cVar2 = **(char **)pcVar11" identifier = (pointer_expression "**(char **)pcVar11" * (pointer_expression "*(char **)pcVar11" * (cast_expression "(char **)pcVar11" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)))) , (binary_expression "(byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)" (binary_expression "(byte)(cVar2 + 0x9dU) < 2" (call_expression "(byte)(cVar2 + 0x9dU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 + 0x9dU)" ( (binary_expression "cVar2 + 0x9dU" identifier + number_literal) ))) < number_literal) || (parenthesized_expression "((byte)(cVar2 + 0x8eU) < 2)" ( (binary_expression "(byte)(cVar2 + 0x8eU) < 2" (call_expression "(byte)(cVar2 + 0x8eU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 + 0x8eU)" ( (binary_expression "cVar2 + 0x8eU" identifier + number_literal) ))) < number_literal) )))) )) ))) )) (compound_statement "{\n          local_20 = cplus_demangle_type(di);\n          uVar16 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n          uVar19 = &stack0x00000000 == (undefined1 *)0x2c;\n        }" { (expression_statement "local_20 = cplus_demangle_type(di);" (assignment_expression "local_20 = cplus_demangle_type(di)" identifier = (call_expression "cplus_demangle_type(di)" identifier (argument_list "(di)" ( identifier )))) ;) (expression_statement "uVar16 = (undefined1 *)0xffffffef < &stack0xffffffc4;" (assignment_expression "uVar16 = (undefined1 *)0xffffffef < &stack0xffffffc4" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffffc4" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffffc4" & identifier))) ;) (expression_statement "uVar19 = &stack0x00000000 == (undefined1 *)0x2c;" (assignment_expression "uVar19 = &stack0x00000000 == (undefined1 *)0x2c" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x2c" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x2c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) }) (else_clause "else {\n          uVar16 = *pbVar13 < 0x66;\n          uVar19 = *pbVar13 == 0x66;\n          if ((bool)uVar19) {\n            local_20 = d_operator_name(di);\n          }\n          else {\n            local_20 = d_expression_1(di);\n          }\n        }" else (compound_statement "{\n          uVar16 = *pbVar13 < 0x66;\n          uVar19 = *pbVar13 == 0x66;\n          if ((bool)uVar19) {\n            local_20 = d_operator_name(di);\n          }\n          else {\n            local_20 = d_expression_1(di);\n          }\n        }" { (expression_statement "uVar16 = *pbVar13 < 0x66;" (assignment_expression "uVar16 = *pbVar13 < 0x66" identifier = (binary_expression "*pbVar13 < 0x66" (pointer_expression "*pbVar13" * identifier) < number_literal)) ;) (expression_statement "uVar19 = *pbVar13 == 0x66;" (assignment_expression "uVar19 = *pbVar13 == 0x66" identifier = (binary_expression "*pbVar13 == 0x66" (pointer_expression "*pbVar13" * identifier) == number_literal)) ;) (if_statement "if ((bool)uVar19) {\n            local_20 = d_operator_name(di);\n          }\n          else {\n            local_20 = d_expression_1(di);\n          }" if (parenthesized_expression "((bool)uVar19)" ( (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n            local_20 = d_operator_name(di);\n          }" { (expression_statement "local_20 = d_operator_name(di);" (assignment_expression "local_20 = d_operator_name(di)" identifier = (call_expression "d_operator_name(di)" identifier (argument_list "(di)" ( identifier )))) ;) }) (else_clause "else {\n            local_20 = d_expression_1(di);\n          }" else (compound_statement "{\n            local_20 = d_expression_1(di);\n          }" { (expression_statement "local_20 = d_expression_1(di);" (assignment_expression "local_20 = d_expression_1(di)" identifier = (call_expression "d_expression_1(di)" identifier (argument_list "(di)" ( identifier )))) ;) }))) }))) (expression_statement "iVar10 = 3;" (assignment_expression "iVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar12 = pbVar13;" (assignment_expression "pbVar12 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar14 = &DAT_00237ab8;" (assignment_expression "pbVar14 = &DAT_00237ab8" identifier = (pointer_expression "&DAT_00237ab8" & identifier)) ;) (do_statement "do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          uVar16 = *pbVar12 < *pbVar14;\n          uVar19 = *pbVar12 == *pbVar14;\n          pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n        } while ((bool)uVar19);" do (compound_statement "{\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          uVar16 = *pbVar12 < *pbVar14;\n          uVar19 = *pbVar12 == *pbVar14;\n          pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n        }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar16 = *pbVar12 < *pbVar14;" (assignment_expression "uVar16 = *pbVar12 < *pbVar14" identifier = (binary_expression "*pbVar12 < *pbVar14" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "uVar19 = *pbVar12 == *pbVar14;" (assignment_expression "uVar19 = *pbVar12 == *pbVar14" identifier = (binary_expression "*pbVar12 == *pbVar14" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar19)" ( (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar18 = (!(bool)uVar16 && !(bool)uVar19) == (bool)uVar16;" (assignment_expression "bVar18 = (!(bool)uVar16 && !(bool)uVar19) == (bool)uVar16" identifier = (binary_expression "(!(bool)uVar16 && !(bool)uVar19) == (bool)uVar16" (parenthesized_expression "(!(bool)uVar16 && !(bool)uVar19)" ( (binary_expression "!(bool)uVar16 && !(bool)uVar19" (unary_expression "!(bool)uVar16" ! (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar19" ! (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar18) {\n          pdVar9 = d_exprlist(di,'E');\n        }\n        else {\n          iVar10 = 3;\n          pbVar12 = pbVar13;\n          pbVar14 = &DAT_00237716;\n          do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar15 = *pbVar12 < *pbVar14;\n            bVar18 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n          } while (bVar18);\n          bVar17 = false;\n          bVar15 = (!bVar15 && !bVar18) == bVar15;\n          if (!bVar15) {\n            iVar10 = 3;\n            pbVar12 = (byte *)0x2318e8;\n            do {\n              if (iVar10 == 0) break;\n              iVar10 = iVar10 + -1;\n              bVar17 = *pbVar13 < *pbVar12;\n              bVar15 = *pbVar13 == *pbVar12;\n              pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar17 && !bVar15) != bVar17) {\n              pdVar9 = d_expression_1(di);\n              goto LAB_00177a83;\n            }\n          }\n          pdVar9 = d_unqualified_name(in_stack_ffffffd4);\n          if (*di->n == 'I') {\n            pdVar8 = d_template_args(di);\n            pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);\n          }\n        }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\n          pdVar9 = d_exprlist(di,'E');\n        }" { (expression_statement "pdVar9 = d_exprlist(di,'E');" (assignment_expression "pdVar9 = d_exprlist(di,'E')" identifier = (call_expression "d_exprlist(di,'E')" identifier (argument_list "(di,'E')" ( identifier , (char_literal "'E'" ' character ') )))) ;) }) (else_clause "else {\n          iVar10 = 3;\n          pbVar12 = pbVar13;\n          pbVar14 = &DAT_00237716;\n          do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar15 = *pbVar12 < *pbVar14;\n            bVar18 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n          } while (bVar18);\n          bVar17 = false;\n          bVar15 = (!bVar15 && !bVar18) == bVar15;\n          if (!bVar15) {\n            iVar10 = 3;\n            pbVar12 = (byte *)0x2318e8;\n            do {\n              if (iVar10 == 0) break;\n              iVar10 = iVar10 + -1;\n              bVar17 = *pbVar13 < *pbVar12;\n              bVar15 = *pbVar13 == *pbVar12;\n              pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar17 && !bVar15) != bVar17) {\n              pdVar9 = d_expression_1(di);\n              goto LAB_00177a83;\n            }\n          }\n          pdVar9 = d_unqualified_name(in_stack_ffffffd4);\n          if (*di->n == 'I') {\n            pdVar8 = d_template_args(di);\n            pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);\n          }\n        }" else (compound_statement "{\n          iVar10 = 3;\n          pbVar12 = pbVar13;\n          pbVar14 = &DAT_00237716;\n          do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar15 = *pbVar12 < *pbVar14;\n            bVar18 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n          } while (bVar18);\n          bVar17 = false;\n          bVar15 = (!bVar15 && !bVar18) == bVar15;\n          if (!bVar15) {\n            iVar10 = 3;\n            pbVar12 = (byte *)0x2318e8;\n            do {\n              if (iVar10 == 0) break;\n              iVar10 = iVar10 + -1;\n              bVar17 = *pbVar13 < *pbVar12;\n              bVar15 = *pbVar13 == *pbVar12;\n              pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar17 && !bVar15) != bVar17) {\n              pdVar9 = d_expression_1(di);\n              goto LAB_00177a83;\n            }\n          }\n          pdVar9 = d_unqualified_name(in_stack_ffffffd4);\n          if (*di->n == 'I') {\n            pdVar8 = d_template_args(di);\n            pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);\n          }\n        }" { (expression_statement "iVar10 = 3;" (assignment_expression "iVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar12 = pbVar13;" (assignment_expression "pbVar12 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar14 = &DAT_00237716;" (assignment_expression "pbVar14 = &DAT_00237716" identifier = (pointer_expression "&DAT_00237716" & identifier)) ;) (do_statement "do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar15 = *pbVar12 < *pbVar14;\n            bVar18 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n          } while (bVar18);" do (compound_statement "{\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar15 = *pbVar12 < *pbVar14;\n            bVar18 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n          }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar12 < *pbVar14;" (assignment_expression "bVar15 = *pbVar12 < *pbVar14" identifier = (binary_expression "*pbVar12 < *pbVar14" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar18 = *pbVar12 == *pbVar14;" (assignment_expression "bVar18 = *pbVar12 == *pbVar14" identifier = (binary_expression "*pbVar12 == *pbVar14" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar15 && !bVar18) == bVar15;" (assignment_expression "bVar15 = (!bVar15 && !bVar18) == bVar15" identifier = (binary_expression "(!bVar15 && !bVar18) == bVar15" (parenthesized_expression "(!bVar15 && !bVar18)" ( (binary_expression "!bVar15 && !bVar18" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar15) {\n            iVar10 = 3;\n            pbVar12 = (byte *)0x2318e8;\n            do {\n              if (iVar10 == 0) break;\n              iVar10 = iVar10 + -1;\n              bVar17 = *pbVar13 < *pbVar12;\n              bVar15 = *pbVar13 == *pbVar12;\n              pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar17 && !bVar15) != bVar17) {\n              pdVar9 = d_expression_1(di);\n              goto LAB_00177a83;\n            }\n          }" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (compound_statement "{\n            iVar10 = 3;\n            pbVar12 = (byte *)0x2318e8;\n            do {\n              if (iVar10 == 0) break;\n              iVar10 = iVar10 + -1;\n              bVar17 = *pbVar13 < *pbVar12;\n              bVar15 = *pbVar13 == *pbVar12;\n              pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar17 && !bVar15) != bVar17) {\n              pdVar9 = d_expression_1(di);\n              goto LAB_00177a83;\n            }\n          }" { (expression_statement "iVar10 = 3;" (assignment_expression "iVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar12 = (byte *)0x2318e8;" (assignment_expression "pbVar12 = (byte *)0x2318e8" identifier = (cast_expression "(byte *)0x2318e8" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n              if (iVar10 == 0) break;\n              iVar10 = iVar10 + -1;\n              bVar17 = *pbVar13 < *pbVar12;\n              bVar15 = *pbVar13 == *pbVar12;\n              pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            } while (bVar15);" do (compound_statement "{\n              if (iVar10 == 0) break;\n              iVar10 = iVar10 + -1;\n              bVar17 = *pbVar13 < *pbVar12;\n              bVar15 = *pbVar13 == *pbVar12;\n              pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n            }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar13 < *pbVar12;" (assignment_expression "bVar17 = *pbVar13 < *pbVar12" identifier = (binary_expression "*pbVar13 < *pbVar12" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar13 == *pbVar12;" (assignment_expression "bVar15 = *pbVar13 == *pbVar12" identifier = (binary_expression "*pbVar13 == *pbVar12" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar17 && !bVar15) != bVar17) {\n              pdVar9 = d_expression_1(di);\n              goto LAB_00177a83;\n            }" if (parenthesized_expression "((!bVar17 && !bVar15) != bVar17)" ( (binary_expression "(!bVar17 && !bVar15) != bVar17" (parenthesized_expression "(!bVar17 && !bVar15)" ( (binary_expression "!bVar17 && !bVar15" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) != identifier) )) (compound_statement "{\n              pdVar9 = d_expression_1(di);\n              goto LAB_00177a83;\n            }" { (expression_statement "pdVar9 = d_expression_1(di);" (assignment_expression "pdVar9 = d_expression_1(di)" identifier = (call_expression "d_expression_1(di)" identifier (argument_list "(di)" ( identifier )))) ;) (goto_statement "goto LAB_00177a83;" goto statement_identifier ;) })) })) (expression_statement "pdVar9 = d_unqualified_name(in_stack_ffffffd4);" (assignment_expression "pdVar9 = d_unqualified_name(in_stack_ffffffd4)" identifier = (call_expression "d_unqualified_name(in_stack_ffffffd4)" identifier (argument_list "(in_stack_ffffffd4)" ( identifier )))) ;) (if_statement "if (*di->n == 'I') {\n            pdVar8 = d_template_args(di);\n            pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);\n          }" if (parenthesized_expression "(*di->n == 'I')" ( (binary_expression "*di->n == 'I'" (pointer_expression "*di->n" * (field_expression "di->n" identifier -> field_identifier)) == (char_literal "'I'" ' character ')) )) (compound_statement "{\n            pdVar8 = d_template_args(di);\n            pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);\n          }" { (expression_statement "pdVar8 = d_template_args(di);" (assignment_expression "pdVar8 = d_template_args(di)" identifier = (call_expression "d_template_args(di)" identifier (argument_list "(di)" ( identifier )))) ;) (expression_statement "pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);" (assignment_expression "pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8)" identifier = (call_expression "d_make_comp(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8)" identifier (argument_list "(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8)" ( identifier , identifier , identifier , identifier )))) ;) })) }))) (labeled_statement "LAB_00177a83:\n        pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY_ARGS,local_20,pdVar9);" statement_identifier : (expression_statement "pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY_ARGS,local_20,pdVar9);" (assignment_expression "pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY_ARGS,local_20,pdVar9)" identifier = (call_expression "d_make_comp(di,DEMANGLE_COMPONENT_BINARY_ARGS,local_20,pdVar9)" identifier (argument_list "(di,DEMANGLE_COMPONENT_BINARY_ARGS,local_20,pdVar9)" ( identifier , identifier , identifier , identifier )))) ;)) (expression_statement "pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY,pdVar5,pdVar9);" (assignment_expression "pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY,pdVar5,pdVar9)" identifier = (call_expression "d_make_comp(di,DEMANGLE_COMPONENT_BINARY,pdVar5,pdVar9)" identifier (argument_list "(di,DEMANGLE_COMPONENT_BINARY,pdVar5,pdVar9)" ( identifier , identifier , identifier , identifier )))) ;) (return_statement "return pdVar5;" return identifier ;) })) (if_statement "if (iVar10 != 3) {\n        return (demangle_component *)0x0;\n      }" if (parenthesized_expression "(iVar10 != 3)" ( (binary_expression "iVar10 != 3" identifier != number_literal) )) (compound_statement "{\n        return (demangle_component *)0x0;\n      }" { (return_statement "return (demangle_component *)0x0;" return (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar18 = pbVar13 == (byte *)0x0;" (assignment_expression "bVar18 = pbVar13 == (byte *)0x0" identifier = (binary_expression "pbVar13 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar18) {\n        return (demangle_component *)0x0;\n      }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\n        return (demangle_component *)0x0;\n      }" { (return_statement "return (demangle_component *)0x0;" return (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "iVar10 = 3;" (assignment_expression "iVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar12 = pbVar13;" (assignment_expression "pbVar12 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar14 = &DAT_00238c45;" (assignment_expression "pbVar14 = &DAT_00238c45" identifier = (pointer_expression "&DAT_00238c45" & identifier)) ;) (do_statement "do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar15 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n      } while (bVar18);" do (compound_statement "{\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar15 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;\n      }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar12 < *pbVar14;" (assignment_expression "bVar15 = *pbVar12 < *pbVar14" identifier = (binary_expression "*pbVar12 < *pbVar14" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar18 = *pbVar12 == *pbVar14;" (assignment_expression "bVar18 = *pbVar12 == *pbVar14" identifier = (binary_expression "*pbVar12 == *pbVar14" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (if_statement "if ((!bVar15 && !bVar18) == bVar15) {\n        pdVar9 = d_expression_1(di);\n      }\n      else {\n        if (*pbVar13 != 0x66) {\n          if (*pbVar13 != 0x6e) {\n            return (demangle_component *)0x0;\n          }\n          if ((pbVar13[1] != 0x77) && (pbVar13[1] != 0x61)) {\n            return (demangle_component *)0x0;\n          }\n          pdVar9 = d_exprlist(di,'_');\n          pdVar8 = cplus_demangle_type(di);\n          pcVar11 = di->n;\n          cVar2 = *pcVar11;\n          if (cVar2 == 'E') {\n            di->n = pcVar11 + 1;\n            right = (demangle_component *)0x0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar11[1] != 'i') {\n              return (demangle_component *)0x0;\n            }\n            di->n = pcVar11 + 2;\n            right = d_exprlist(di,'E');\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (demangle_component *)0x0;\n            }\n            if (pcVar11[1] != 'l') {\n              return (demangle_component *)0x0;\n            }\n            right = d_expression_1(di);\n          }\n          goto LAB_0017779c;\n        }\n        pdVar9 = d_operator_name(di);\n      }" if (parenthesized_expression "((!bVar15 && !bVar18) == bVar15)" ( (binary_expression "(!bVar15 && !bVar18) == bVar15" (parenthesized_expression "(!bVar15 && !bVar18)" ( (binary_expression "!bVar15 && !bVar18" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier) )) (compound_statement "{\n        pdVar9 = d_expression_1(di);\n      }" { (expression_statement "pdVar9 = d_expression_1(di);" (assignment_expression "pdVar9 = d_expression_1(di)" identifier = (call_expression "d_expression_1(di)" identifier (argument_list "(di)" ( identifier )))) ;) }) (else_clause "else {\n        if (*pbVar13 != 0x66) {\n          if (*pbVar13 != 0x6e) {\n            return (demangle_component *)0x0;\n          }\n          if ((pbVar13[1] != 0x77) && (pbVar13[1] != 0x61)) {\n            return (demangle_component *)0x0;\n          }\n          pdVar9 = d_exprlist(di,'_');\n          pdVar8 = cplus_demangle_type(di);\n          pcVar11 = di->n;\n          cVar2 = *pcVar11;\n          if (cVar2 == 'E') {\n            di->n = pcVar11 + 1;\n            right = (demangle_component *)0x0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar11[1] != 'i') {\n              return (demangle_component *)0x0;\n            }\n            di->n = pcVar11 + 2;\n            right = d_exprlist(di,'E');\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (demangle_component *)0x0;\n            }\n            if (pcVar11[1] != 'l') {\n              return (demangle_component *)0x0;\n            }\n            right = d_expression_1(di);\n          }\n          goto LAB_0017779c;\n        }\n        pdVar9 = d_operator_name(di);\n      }" else (compound_statement "{\n        if (*pbVar13 != 0x66) {\n          if (*pbVar13 != 0x6e) {\n            return (demangle_component *)0x0;\n          }\n          if ((pbVar13[1] != 0x77) && (pbVar13[1] != 0x61)) {\n            return (demangle_component *)0x0;\n          }\n          pdVar9 = d_exprlist(di,'_');\n          pdVar8 = cplus_demangle_type(di);\n          pcVar11 = di->n;\n          cVar2 = *pcVar11;\n          if (cVar2 == 'E') {\n            di->n = pcVar11 + 1;\n            right = (demangle_component *)0x0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar11[1] != 'i') {\n              return (demangle_component *)0x0;\n            }\n            di->n = pcVar11 + 2;\n            right = d_exprlist(di,'E');\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (demangle_component *)0x0;\n            }\n            if (pcVar11[1] != 'l') {\n              return (demangle_component *)0x0;\n            }\n            right = d_expression_1(di);\n          }\n          goto LAB_0017779c;\n        }\n        pdVar9 = d_operator_name(di);\n      }" { (if_statement "if (*pbVar13 != 0x66) {\n          if (*pbVar13 != 0x6e) {\n            return (demangle_component *)0x0;\n          }\n          if ((pbVar13[1] != 0x77) && (pbVar13[1] != 0x61)) {\n            return (demangle_component *)0x0;\n          }\n          pdVar9 = d_exprlist(di,'_');\n          pdVar8 = cplus_demangle_type(di);\n          pcVar11 = di->n;\n          cVar2 = *pcVar11;\n          if (cVar2 == 'E') {\n            di->n = pcVar11 + 1;\n            right = (demangle_component *)0x0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar11[1] != 'i') {\n              return (demangle_component *)0x0;\n            }\n            di->n = pcVar11 + 2;\n            right = d_exprlist(di,'E');\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (demangle_component *)0x0;\n            }\n            if (pcVar11[1] != 'l') {\n              return (demangle_component *)0x0;\n            }\n            right = d_expression_1(di);\n          }\n          goto LAB_0017779c;\n        }" if (parenthesized_expression "(*pbVar13 != 0x66)" ( (binary_expression "*pbVar13 != 0x66" (pointer_expression "*pbVar13" * identifier) != number_literal) )) (compound_statement "{\n          if (*pbVar13 != 0x6e) {\n            return (demangle_component *)0x0;\n          }\n          if ((pbVar13[1] != 0x77) && (pbVar13[1] != 0x61)) {\n            return (demangle_component *)0x0;\n          }\n          pdVar9 = d_exprlist(di,'_');\n          pdVar8 = cplus_demangle_type(di);\n          pcVar11 = di->n;\n          cVar2 = *pcVar11;\n          if (cVar2 == 'E') {\n            di->n = pcVar11 + 1;\n            right = (demangle_component *)0x0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar11[1] != 'i') {\n              return (demangle_component *)0x0;\n            }\n            di->n = pcVar11 + 2;\n            right = d_exprlist(di,'E');\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (demangle_component *)0x0;\n            }\n            if (pcVar11[1] != 'l') {\n              return (demangle_component *)0x0;\n            }\n            right = d_expression_1(di);\n          }\n          goto LAB_0017779c;\n        }" { (if_statement "if (*pbVar13 != 0x6e) {\n            return (demangle_component *)0x0;\n          }" if (parenthesized_expression "(*pbVar13 != 0x6e)" ( (binary_expression "*pbVar13 != 0x6e" (pointer_expression "*pbVar13" * identifier) != number_literal) )) (compound_statement "{\n            return (demangle_component *)0x0;\n          }" { (return_statement "return (demangle_component *)0x0;" return (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if ((pbVar13[1] != 0x77) && (pbVar13[1] != 0x61)) {\n            return (demangle_component *)0x0;\n          }" if (parenthesized_expression "((pbVar13[1] != 0x77) && (pbVar13[1] != 0x61))" ( (binary_expression "(pbVar13[1] != 0x77) && (pbVar13[1] != 0x61)" (parenthesized_expression "(pbVar13[1] != 0x77)" ( (binary_expression "pbVar13[1] != 0x77" (subscript_expression "pbVar13[1]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(pbVar13[1] != 0x61)" ( (binary_expression "pbVar13[1] != 0x61" (subscript_expression "pbVar13[1]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n            return (demangle_component *)0x0;\n          }" { (return_statement "return (demangle_component *)0x0;" return (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "pdVar9 = d_exprlist(di,'_');" (assignment_expression "pdVar9 = d_exprlist(di,'_')" identifier = (call_expression "d_exprlist(di,'_')" identifier (argument_list "(di,'_')" ( identifier , (char_literal "'_'" ' character ') )))) ;) (expression_statement "pdVar8 = cplus_demangle_type(di);" (assignment_expression "pdVar8 = cplus_demangle_type(di)" identifier = (call_expression "cplus_demangle_type(di)" identifier (argument_list "(di)" ( identifier )))) ;) (expression_statement "pcVar11 = di->n;" (assignment_expression "pcVar11 = di->n" identifier = (field_expression "di->n" identifier -> field_identifier)) ;) (expression_statement "cVar2 = *pcVar11;" (assignment_expression "cVar2 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (if_statement "if (cVar2 == 'E') {\n            di->n = pcVar11 + 1;\n            right = (demangle_component *)0x0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar11[1] != 'i') {\n              return (demangle_component *)0x0;\n            }\n            di->n = pcVar11 + 2;\n            right = d_exprlist(di,'E');\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (demangle_component *)0x0;\n            }\n            if (pcVar11[1] != 'l') {\n              return (demangle_component *)0x0;\n            }\n            right = d_expression_1(di);\n          }" if (parenthesized_expression "(cVar2 == 'E')" ( (binary_expression "cVar2 == 'E'" identifier == (char_literal "'E'" ' character ')) )) (compound_statement "{\n            di->n = pcVar11 + 1;\n            right = (demangle_component *)0x0;\n          }" { (expression_statement "di->n = pcVar11 + 1;" (assignment_expression "di->n = pcVar11 + 1" (field_expression "di->n" identifier -> field_identifier) = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) (expression_statement "right = (demangle_component *)0x0;" (assignment_expression "right = (demangle_component *)0x0" identifier = (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (cVar2 == 'p') {\n            if (pcVar11[1] != 'i') {\n              return (demangle_component *)0x0;\n            }\n            di->n = pcVar11 + 2;\n            right = d_exprlist(di,'E');\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (demangle_component *)0x0;\n            }\n            if (pcVar11[1] != 'l') {\n              return (demangle_component *)0x0;\n            }\n            right = d_expression_1(di);\n          }" else (if_statement "if (cVar2 == 'p') {\n            if (pcVar11[1] != 'i') {\n              return (demangle_component *)0x0;\n            }\n            di->n = pcVar11 + 2;\n            right = d_exprlist(di,'E');\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (demangle_component *)0x0;\n            }\n            if (pcVar11[1] != 'l') {\n              return (demangle_component *)0x0;\n            }\n            right = d_expression_1(di);\n          }" if (parenthesized_expression "(cVar2 == 'p')" ( (binary_expression "cVar2 == 'p'" identifier == (char_literal "'p'" ' character ')) )) (compound_statement "{\n            if (pcVar11[1] != 'i') {\n              return (demangle_component *)0x0;\n            }\n            di->n = pcVar11 + 2;\n            right = d_exprlist(di,'E');\n          }" { (if_statement "if (pcVar11[1] != 'i') {\n              return (demangle_component *)0x0;\n            }" if (parenthesized_expression "(pcVar11[1] != 'i')" ( (binary_expression "pcVar11[1] != 'i'" (subscript_expression "pcVar11[1]" identifier [ number_literal ]) != (char_literal "'i'" ' character ')) )) (compound_statement "{\n              return (demangle_component *)0x0;\n            }" { (return_statement "return (demangle_component *)0x0;" return (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "di->n = pcVar11 + 2;" (assignment_expression "di->n = pcVar11 + 2" (field_expression "di->n" identifier -> field_identifier) = (binary_expression "pcVar11 + 2" identifier + number_literal)) ;) (expression_statement "right = d_exprlist(di,'E');" (assignment_expression "right = d_exprlist(di,'E')" identifier = (call_expression "d_exprlist(di,'E')" identifier (argument_list "(di,'E')" ( identifier , (char_literal "'E'" ' character ') )))) ;) }) (else_clause "else {\n            if (cVar2 != 'i') {\n              return (demangle_component *)0x0;\n            }\n            if (pcVar11[1] != 'l') {\n              return (demangle_component *)0x0;\n            }\n            right = d_expression_1(di);\n          }" else (compound_statement "{\n            if (cVar2 != 'i') {\n              return (demangle_component *)0x0;\n            }\n            if (pcVar11[1] != 'l') {\n              return (demangle_component *)0x0;\n            }\n            right = d_expression_1(di);\n          }" { (if_statement "if (cVar2 != 'i') {\n              return (demangle_component *)0x0;\n            }" if (parenthesized_expression "(cVar2 != 'i')" ( (binary_expression "cVar2 != 'i'" identifier != (char_literal "'i'" ' character ')) )) (compound_statement "{\n              return (demangle_component *)0x0;\n            }" { (return_statement "return (demangle_component *)0x0;" return (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (pcVar11[1] != 'l') {\n              return (demangle_component *)0x0;\n            }" if (parenthesized_expression "(pcVar11[1] != 'l')" ( (binary_expression "pcVar11[1] != 'l'" (subscript_expression "pcVar11[1]" identifier [ number_literal ]) != (char_literal "'l'" ' character ')) )) (compound_statement "{\n              return (demangle_component *)0x0;\n            }" { (return_statement "return (demangle_component *)0x0;" return (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "right = d_expression_1(di);" (assignment_expression "right = d_expression_1(di)" identifier = (call_expression "d_expression_1(di)" identifier (argument_list "(di)" ( identifier )))) ;) }))))) (goto_statement "goto LAB_0017779c;" goto statement_identifier ;) })) (expression_statement "pdVar9 = d_operator_name(di);" (assignment_expression "pdVar9 = d_operator_name(di)" identifier = (call_expression "d_operator_name(di)" identifier (argument_list "(di)" ( identifier )))) ;) }))) (expression_statement "pdVar8 = d_expression_1(di);" (assignment_expression "pdVar8 = d_expression_1(di)" identifier = (call_expression "d_expression_1(di)" identifier (argument_list "(di)" ( identifier )))) ;) (expression_statement "right = d_expression_1(di);" (assignment_expression "right = d_expression_1(di)" identifier = (call_expression "d_expression_1(di)" identifier (argument_list "(di)" ( identifier )))) ;) (if_statement "if (right == (demangle_component *)0x0) {\n        return (demangle_component *)0x0;\n      }" if (parenthesized_expression "(right == (demangle_component *)0x0)" ( (binary_expression "right == (demangle_component *)0x0" identifier == (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return (demangle_component *)0x0;\n      }" { (return_statement "return (demangle_component *)0x0;" return (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (labeled_statement "LAB_0017779c:\n      pdVar8 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY_ARG2,pdVar8,right);" statement_identifier : (expression_statement "pdVar8 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY_ARG2,pdVar8,right);" (assignment_expression "pdVar8 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY_ARG2,pdVar8,right)" identifier = (call_expression "d_make_comp(di,DEMANGLE_COMPONENT_TRINARY_ARG2,pdVar8,right)" identifier (argument_list "(di,DEMANGLE_COMPONENT_TRINARY_ARG2,pdVar8,right)" ( identifier , identifier , identifier , identifier )))) ;)) (expression_statement "pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY_ARG1,pdVar9,pdVar8);" (assignment_expression "pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY_ARG1,pdVar9,pdVar8)" identifier = (call_expression "d_make_comp(di,DEMANGLE_COMPONENT_TRINARY_ARG1,pdVar9,pdVar8)" identifier (argument_list "(di,DEMANGLE_COMPONENT_TRINARY_ARG1,pdVar9,pdVar8)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY,pdVar5,pdVar9);" (assignment_expression "pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_TRINARY,pdVar5,pdVar9)" identifier = (call_expression "d_make_comp(di,DEMANGLE_COMPONENT_TRINARY,pdVar5,pdVar9)" identifier (argument_list "(di,DEMANGLE_COMPONENT_TRINARY,pdVar5,pdVar9)" ( identifier , identifier , identifier , identifier )))) ;) (return_statement "return pdVar5;" return identifier ;) })) (expression_statement "bVar3 = *pbVar13;" (assignment_expression "bVar3 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) (if_statement "if (((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == pbVar13[1])) {\n      bVar3 = *di->n;\n      bVar18 = bVar3 < 0x5f;\n      bVar17 = bVar3 == 0x5f;\n      bVar15 = true;\n      if (bVar17) {\n        di->n = di->n + 1;\n        goto LAB_001778af;\n      }\n    }\n    else {\nLAB_001778af:\n      bVar18 = false;\n      bVar15 = false;\n      bVar17 = true;\n    }" if (parenthesized_expression "(((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == pbVar13[1]))" ( (binary_expression "((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == pbVar13[1])" (parenthesized_expression "((bVar3 == 0x70) || (bVar3 == 0x6d))" ( (binary_expression "(bVar3 == 0x70) || (bVar3 == 0x6d)" (parenthesized_expression "(bVar3 == 0x70)" ( (binary_expression "bVar3 == 0x70" identifier == number_literal) )) || (parenthesized_expression "(bVar3 == 0x6d)" ( (binary_expression "bVar3 == 0x6d" identifier == number_literal) ))) )) && (parenthesized_expression "(bVar3 == pbVar13[1])" ( (binary_expression "bVar3 == pbVar13[1]" identifier == (subscript_expression "pbVar13[1]" identifier [ number_literal ])) ))) )) (compound_statement "{\n      bVar3 = *di->n;\n      bVar18 = bVar3 < 0x5f;\n      bVar17 = bVar3 == 0x5f;\n      bVar15 = true;\n      if (bVar17) {\n        di->n = di->n + 1;\n        goto LAB_001778af;\n      }\n    }" { (expression_statement "bVar3 = *di->n;" (assignment_expression "bVar3 = *di->n" identifier = (pointer_expression "*di->n" * (field_expression "di->n" identifier -> field_identifier))) ;) (expression_statement "bVar18 = bVar3 < 0x5f;" (assignment_expression "bVar18 = bVar3 < 0x5f" identifier = (binary_expression "bVar3 < 0x5f" identifier < number_literal)) ;) (expression_statement "bVar17 = bVar3 == 0x5f;" (assignment_expression "bVar17 = bVar3 == 0x5f" identifier = (binary_expression "bVar3 == 0x5f" identifier == number_literal)) ;) (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) (if_statement "if (bVar17) {\n        di->n = di->n + 1;\n        goto LAB_001778af;\n      }" if (parenthesized_expression "(bVar17)" ( identifier )) (compound_statement "{\n        di->n = di->n + 1;\n        goto LAB_001778af;\n      }" { (expression_statement "di->n = di->n + 1;" (assignment_expression "di->n = di->n + 1" (field_expression "di->n" identifier -> field_identifier) = (binary_expression "di->n + 1" (field_expression "di->n" identifier -> field_identifier) + number_literal)) ;) (goto_statement "goto LAB_001778af;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_001778af:\n      bVar18 = false;\n      bVar15 = false;\n      bVar17 = true;\n    }" else (compound_statement "{\nLAB_001778af:\n      bVar18 = false;\n      bVar15 = false;\n      bVar17 = true;\n    }" { (labeled_statement "LAB_001778af:\n      bVar18 = false;" statement_identifier : (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;)) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar17 = true;" (assignment_expression "bVar17 = true" identifier = true) ;) }))) (expression_statement "iVar10 = 3;" (assignment_expression "iVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar12 = &DAT_00238c3f;" (assignment_expression "pbVar12 = &DAT_00238c3f" identifier = (pointer_expression "&DAT_00238c3f" & identifier)) ;) (do_statement "do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar18 = *pbVar13 < *pbVar12;\n      bVar17 = *pbVar13 == *pbVar12;\n      pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n    } while (bVar17);" do (compound_statement "{\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar18 = *pbVar13 < *pbVar12;\n      bVar17 = *pbVar13 == *pbVar12;\n      pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1;\n      pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;\n    }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar13 < *pbVar12;" (assignment_expression "bVar18 = *pbVar13 < *pbVar12" identifier = (binary_expression "*pbVar13 < *pbVar12" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar17 = *pbVar13 == *pbVar12;" (assignment_expression "bVar17 = *pbVar13 == *pbVar12" identifier = (binary_expression "*pbVar13 == *pbVar12" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar17)" ( identifier )) ;) (if_statement "if ((!bVar18 && !bVar17) != bVar18) goto LAB_001778cf;" if (parenthesized_expression "((!bVar18 && !bVar17) != bVar18)" ( (binary_expression "(!bVar18 && !bVar17) != bVar18" (parenthesized_expression "(!bVar18 && !bVar17)" ( (binary_expression "!bVar18 && !bVar17" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar17" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_001778cf;" goto statement_identifier ;)) (expression_statement "pdVar9 = d_template_args_1(di);" (assignment_expression "pdVar9 = d_template_args_1(di)" identifier = (call_expression "d_template_args_1(di)" identifier (argument_list "(di)" ( identifier )))) ;) }) (else_clause "else {\n    if (dVar4 == DEMANGLE_COMPONENT_EXTENDED_OPERATOR) {\n      iVar10 = (pdVar5->u).s_extended_operator.args;\n      if (iVar10 != 1) {\n        if (1 < iVar10) {\n          return (demangle_component *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar10 == 0) {\n          pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_NULLARY,pdVar5,(demangle_component *)0x0);\n          return pdVar5;\n        }\n        return (demangle_component *)0x0;\n      }\n      pdVar9 = d_expression_1(di);\n      goto LAB_001778fb;\n    }\n    if (dVar4 != DEMANGLE_COMPONENT_CAST) {\n      return (demangle_component *)0x0;\n    }\n    if (*di->n == '_') {\n      di->n = di->n + 1;\n      pdVar9 = d_exprlist(di,'E');\n      goto LAB_001778fb;\n    }\n    bVar15 = false;\nLAB_001778cf:\n    pdVar9 = d_expression_1(di);\n  }" else (compound_statement "{\n    if (dVar4 == DEMANGLE_COMPONENT_EXTENDED_OPERATOR) {\n      iVar10 = (pdVar5->u).s_extended_operator.args;\n      if (iVar10 != 1) {\n        if (1 < iVar10) {\n          return (demangle_component *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar10 == 0) {\n          pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_NULLARY,pdVar5,(demangle_component *)0x0);\n          return pdVar5;\n        }\n        return (demangle_component *)0x0;\n      }\n      pdVar9 = d_expression_1(di);\n      goto LAB_001778fb;\n    }\n    if (dVar4 != DEMANGLE_COMPONENT_CAST) {\n      return (demangle_component *)0x0;\n    }\n    if (*di->n == '_') {\n      di->n = di->n + 1;\n      pdVar9 = d_exprlist(di,'E');\n      goto LAB_001778fb;\n    }\n    bVar15 = false;\nLAB_001778cf:\n    pdVar9 = d_expression_1(di);\n  }" { (if_statement "if (dVar4 == DEMANGLE_COMPONENT_EXTENDED_OPERATOR) {\n      iVar10 = (pdVar5->u).s_extended_operator.args;\n      if (iVar10 != 1) {\n        if (1 < iVar10) {\n          return (demangle_component *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar10 == 0) {\n          pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_NULLARY,pdVar5,(demangle_component *)0x0);\n          return pdVar5;\n        }\n        return (demangle_component *)0x0;\n      }\n      pdVar9 = d_expression_1(di);\n      goto LAB_001778fb;\n    }" if (parenthesized_expression "(dVar4 == DEMANGLE_COMPONENT_EXTENDED_OPERATOR)" ( (binary_expression "dVar4 == DEMANGLE_COMPONENT_EXTENDED_OPERATOR" identifier == identifier) )) (compound_statement "{\n      iVar10 = (pdVar5->u).s_extended_operator.args;\n      if (iVar10 != 1) {\n        if (1 < iVar10) {\n          return (demangle_component *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar10 == 0) {\n          pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_NULLARY,pdVar5,(demangle_component *)0x0);\n          return pdVar5;\n        }\n        return (demangle_component *)0x0;\n      }\n      pdVar9 = d_expression_1(di);\n      goto LAB_001778fb;\n    }" { (expression_statement "iVar10 = (pdVar5->u).s_extended_operator.args;" (assignment_expression "iVar10 = (pdVar5->u).s_extended_operator.args" identifier = (field_expression "(pdVar5->u).s_extended_operator.args" (field_expression "(pdVar5->u).s_extended_operator" (parenthesized_expression "(pdVar5->u)" ( (field_expression "pdVar5->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (iVar10 != 1) {\n        if (1 < iVar10) {\n          return (demangle_component *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar10 == 0) {\n          pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_NULLARY,pdVar5,(demangle_component *)0x0);\n          return pdVar5;\n        }\n        return (demangle_component *)0x0;\n      }" if (parenthesized_expression "(iVar10 != 1)" ( (binary_expression "iVar10 != 1" identifier != number_literal) )) (compound_statement "{\n        if (1 < iVar10) {\n          return (demangle_component *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar10 == 0) {\n          pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_NULLARY,pdVar5,(demangle_component *)0x0);\n          return pdVar5;\n        }\n        return (demangle_component *)0x0;\n      }" { (if_statement "if (1 < iVar10) {\n          return (demangle_component *)0x0;\n        }" if (parenthesized_expression "(1 < iVar10)" ( (binary_expression "1 < iVar10" number_literal < identifier) )) (compound_statement "{\n          return (demangle_component *)0x0;\n        }" { (return_statement "return (demangle_component *)0x0;" return (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (labeled_statement "joined_r0x00177952:\n        if (iVar10 == 0) {\n          pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_NULLARY,pdVar5,(demangle_component *)0x0);\n          return pdVar5;\n        }" statement_identifier : (if_statement "if (iVar10 == 0) {\n          pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_NULLARY,pdVar5,(demangle_component *)0x0);\n          return pdVar5;\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_NULLARY,pdVar5,(demangle_component *)0x0);\n          return pdVar5;\n        }" { (expression_statement "pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_NULLARY,pdVar5,(demangle_component *)0x0);" (assignment_expression "pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_NULLARY,pdVar5,(demangle_component *)0x0)" identifier = (call_expression "d_make_comp(di,DEMANGLE_COMPONENT_NULLARY,pdVar5,(demangle_component *)0x0)" identifier (argument_list "(di,DEMANGLE_COMPONENT_NULLARY,pdVar5,(demangle_component *)0x0)" ( identifier , identifier , identifier , (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (return_statement "return pdVar5;" return identifier ;) }))) (return_statement "return (demangle_component *)0x0;" return (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "pdVar9 = d_expression_1(di);" (assignment_expression "pdVar9 = d_expression_1(di)" identifier = (call_expression "d_expression_1(di)" identifier (argument_list "(di)" ( identifier )))) ;) (goto_statement "goto LAB_001778fb;" goto statement_identifier ;) })) (if_statement "if (dVar4 != DEMANGLE_COMPONENT_CAST) {\n      return (demangle_component *)0x0;\n    }" if (parenthesized_expression "(dVar4 != DEMANGLE_COMPONENT_CAST)" ( (binary_expression "dVar4 != DEMANGLE_COMPONENT_CAST" identifier != identifier) )) (compound_statement "{\n      return (demangle_component *)0x0;\n    }" { (return_statement "return (demangle_component *)0x0;" return (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (*di->n == '_') {\n      di->n = di->n + 1;\n      pdVar9 = d_exprlist(di,'E');\n      goto LAB_001778fb;\n    }" if (parenthesized_expression "(*di->n == '_')" ( (binary_expression "*di->n == '_'" (pointer_expression "*di->n" * (field_expression "di->n" identifier -> field_identifier)) == (char_literal "'_'" ' character ')) )) (compound_statement "{\n      di->n = di->n + 1;\n      pdVar9 = d_exprlist(di,'E');\n      goto LAB_001778fb;\n    }" { (expression_statement "di->n = di->n + 1;" (assignment_expression "di->n = di->n + 1" (field_expression "di->n" identifier -> field_identifier) = (binary_expression "di->n + 1" (field_expression "di->n" identifier -> field_identifier) + number_literal)) ;) (expression_statement "pdVar9 = d_exprlist(di,'E');" (assignment_expression "pdVar9 = d_exprlist(di,'E')" identifier = (call_expression "d_exprlist(di,'E')" identifier (argument_list "(di,'E')" ( identifier , (char_literal "'E'" ' character ') )))) ;) (goto_statement "goto LAB_001778fb;" goto statement_identifier ;) })) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (labeled_statement "LAB_001778cf:\n    pdVar9 = d_expression_1(di);" statement_identifier : (expression_statement "pdVar9 = d_expression_1(di);" (assignment_expression "pdVar9 = d_expression_1(di)" identifier = (call_expression "d_expression_1(di)" identifier (argument_list "(di)" ( identifier )))) ;)) }))) (if_statement "if (bVar15) {\n    pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY_ARGS,pdVar9,pdVar9);\n  }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n    pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY_ARGS,pdVar9,pdVar9);\n  }" { (expression_statement "pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY_ARGS,pdVar9,pdVar9);" (assignment_expression "pdVar9 = d_make_comp(di,DEMANGLE_COMPONENT_BINARY_ARGS,pdVar9,pdVar9)" identifier = (call_expression "d_make_comp(di,DEMANGLE_COMPONENT_BINARY_ARGS,pdVar9,pdVar9)" identifier (argument_list "(di,DEMANGLE_COMPONENT_BINARY_ARGS,pdVar9,pdVar9)" ( identifier , identifier , identifier , identifier )))) ;) })) (labeled_statement "LAB_001778fb:\n  pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_UNARY,pdVar5,pdVar9);" statement_identifier : (expression_statement "pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_UNARY,pdVar5,pdVar9);" (assignment_expression "pdVar5 = d_make_comp(di,DEMANGLE_COMPONENT_UNARY,pdVar5,pdVar9)" identifier = (call_expression "d_make_comp(di,DEMANGLE_COMPONENT_UNARY,pdVar5,pdVar9)" identifier (argument_list "(di,DEMANGLE_COMPONENT_UNARY,pdVar5,pdVar9)" ( identifier , identifier , identifier , identifier )))) ;)) (return_statement "return pdVar5;" return identifier ;) }))
(translation_unit "undefined4 * FUN_001774c0(void)\n\n{\n  uint *puVar1;\n  char cVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  int iVar8;\n  byte *pbVar9;\n  int unaff_EBP;\n  char *pcVar10;\n  byte *pbVar11;\n  bool bVar12;\n  undefined1 uVar13;\n  bool bVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  byte bVar17;\n  int local_3c [3];\n  undefined4 uStack_30;\n  int *local_28;\n  byte *local_24;\n  undefined4 local_20;\n  \n  bVar17 = 0;\n  iVar5 = FUN_0004fb82();\n  pcVar10 = *(char **)(iVar5 + 0xc);\n  cVar2 = *pcVar10;\n  if (cVar2 == 'L') {\n    puVar6 = (undefined4 *)FUN_00177210();\n    return puVar6;\n  }\n  if (cVar2 == 'T') {\n    puVar6 = (undefined4 *)FUN_0016e210();\n    return puVar6;\n  }\n  if (cVar2 == 's') {\n    if (pcVar10[1] == 'r') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      local_3c[0] = iVar5;\n      FUN_00175280();\n      iVar8 = FUN_00175e60();\n      if (**(char **)(iVar5 + 0xc) == 'I') {\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }\n      local_3c[0] = iVar8;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x17759d;\n      FUN_001774c0();\n      local_3c[0] = 0;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }\n  else if (cVar2 == 'f') {\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }\n  }\n  else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }\n  uStack_30 = 0x177541;\n  local_28 = (int *)FUN_00175bc0();\n  if (local_28 == (int *)0x0) {\n    return (undefined4 *)0x0;\n  }\n  iVar8 = *local_28;\n  if (iVar8 == 0x31) {\n    puVar6 = (undefined4 *)local_28[2];\n    local_24 = (byte *)*puVar6;\n    puVar1 = (uint *)(iVar5 + 0x2c);\n    bVar12 = CARRY4(*puVar1,puVar6[2] - 2);\n    *puVar1 = *puVar1 + (puVar6[2] - 2);\n    bVar15 = *puVar1 == 0;\n    iVar8 = 3;\n    pbVar9 = local_24;\n    pbVar11 = (byte *)(unaff_EBP + 0xc19be);\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) == bVar12) {\n      local_3c[0] = iVar5;\n      local_3c[0] = FUN_00175280();\n      goto LAB_001778fb;\n    }\n    iVar8 = puVar6[3];\n    if (iVar8 != 1) {\n      if (iVar8 < 2) goto joined_r0x00177952;\n      if (iVar8 == 2) {\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }\n      if (iVar8 != 3) {\n        return (undefined4 *)0x0;\n      }\n      bVar12 = false;\n      bVar15 = local_24 == (byte *)0x0;\n      if (bVar15) {\n        return (undefined4 *)0x0;\n      }\n      iVar8 = 3;\n      pbVar9 = local_24;\n      pbVar11 = (byte *)(unaff_EBP + 0xc177f);\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar12 && !bVar15) == bVar12) {\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }\n      else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }\n      uStack_30 = 0x177ac4;\n      FUN_001774c0();\n      uStack_30 = 0x177acd;\n      local_3c[0] = FUN_001774c0();\n      if (local_3c[0] == 0) {\n        return (undefined4 *)0x0;\n      }\nLAB_0017779c:\n      local_3c[0] = FUN_0016dee0();\n      local_3c[0] = FUN_0016dee0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    bVar3 = *local_24;\n    if (((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == local_24[1])) {\n      bVar3 = **(byte **)(iVar5 + 0xc);\n      bVar12 = bVar3 < 0x5f;\n      bVar15 = bVar3 == 0x5f;\n      pbVar9 = (byte *)0x1;\n      if (bVar15) {\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }\n    }\n    else {\nLAB_001778af:\n      bVar12 = false;\n      pbVar9 = (byte *)0x0;\n      bVar15 = true;\n    }\n    iVar5 = 3;\n    pbVar11 = (byte *)(unaff_EBP + 0xc1779);\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *local_24 < *pbVar11;\n      bVar15 = *local_24 == *pbVar11;\n      local_24 = local_24 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) != bVar12) goto LAB_001778cf;\n    uStack_30 = 0x1779bb;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_00177370();\n  }\n  else {\n    if (iVar8 == 0x32) {\n      iVar8 = local_28[2];\n      if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }\n      uStack_30 = 0x1779e0;\n      local_3c[0] = FUN_001774c0();\n      goto LAB_001778fb;\n    }\n    if (iVar8 != 0x33) {\n      return (undefined4 *)0x0;\n    }\n    if (**(char **)(iVar5 + 0xc) == '_') {\n      *(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;\n      uStack_30 = 0x177946;\n      local_3c[0] = FUN_00177dc0();\n      goto LAB_001778fb;\n    }\n    pbVar9 = (byte *)0x0;\nLAB_001778cf:\n    uStack_30 = 0x1778da;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_001774c0();\n  }\n  if (local_24 != (byte *)0x0) {\n    local_3c[0] = FUN_0016dee0();\n  }\nLAB_001778fb:\n  puVar6 = (undefined4 *)FUN_0016dee0();\n  return puVar6;\n}\n\n" (function_definition "undefined4 * FUN_001774c0(void)\n\n{\n  uint *puVar1;\n  char cVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  int iVar8;\n  byte *pbVar9;\n  int unaff_EBP;\n  char *pcVar10;\n  byte *pbVar11;\n  bool bVar12;\n  undefined1 uVar13;\n  bool bVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  byte bVar17;\n  int local_3c [3];\n  undefined4 uStack_30;\n  int *local_28;\n  byte *local_24;\n  undefined4 local_20;\n  \n  bVar17 = 0;\n  iVar5 = FUN_0004fb82();\n  pcVar10 = *(char **)(iVar5 + 0xc);\n  cVar2 = *pcVar10;\n  if (cVar2 == 'L') {\n    puVar6 = (undefined4 *)FUN_00177210();\n    return puVar6;\n  }\n  if (cVar2 == 'T') {\n    puVar6 = (undefined4 *)FUN_0016e210();\n    return puVar6;\n  }\n  if (cVar2 == 's') {\n    if (pcVar10[1] == 'r') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      local_3c[0] = iVar5;\n      FUN_00175280();\n      iVar8 = FUN_00175e60();\n      if (**(char **)(iVar5 + 0xc) == 'I') {\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }\n      local_3c[0] = iVar8;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x17759d;\n      FUN_001774c0();\n      local_3c[0] = 0;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }\n  else if (cVar2 == 'f') {\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }\n  }\n  else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }\n  uStack_30 = 0x177541;\n  local_28 = (int *)FUN_00175bc0();\n  if (local_28 == (int *)0x0) {\n    return (undefined4 *)0x0;\n  }\n  iVar8 = *local_28;\n  if (iVar8 == 0x31) {\n    puVar6 = (undefined4 *)local_28[2];\n    local_24 = (byte *)*puVar6;\n    puVar1 = (uint *)(iVar5 + 0x2c);\n    bVar12 = CARRY4(*puVar1,puVar6[2] - 2);\n    *puVar1 = *puVar1 + (puVar6[2] - 2);\n    bVar15 = *puVar1 == 0;\n    iVar8 = 3;\n    pbVar9 = local_24;\n    pbVar11 = (byte *)(unaff_EBP + 0xc19be);\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) == bVar12) {\n      local_3c[0] = iVar5;\n      local_3c[0] = FUN_00175280();\n      goto LAB_001778fb;\n    }\n    iVar8 = puVar6[3];\n    if (iVar8 != 1) {\n      if (iVar8 < 2) goto joined_r0x00177952;\n      if (iVar8 == 2) {\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }\n      if (iVar8 != 3) {\n        return (undefined4 *)0x0;\n      }\n      bVar12 = false;\n      bVar15 = local_24 == (byte *)0x0;\n      if (bVar15) {\n        return (undefined4 *)0x0;\n      }\n      iVar8 = 3;\n      pbVar9 = local_24;\n      pbVar11 = (byte *)(unaff_EBP + 0xc177f);\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar12 && !bVar15) == bVar12) {\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }\n      else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }\n      uStack_30 = 0x177ac4;\n      FUN_001774c0();\n      uStack_30 = 0x177acd;\n      local_3c[0] = FUN_001774c0();\n      if (local_3c[0] == 0) {\n        return (undefined4 *)0x0;\n      }\nLAB_0017779c:\n      local_3c[0] = FUN_0016dee0();\n      local_3c[0] = FUN_0016dee0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    bVar3 = *local_24;\n    if (((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == local_24[1])) {\n      bVar3 = **(byte **)(iVar5 + 0xc);\n      bVar12 = bVar3 < 0x5f;\n      bVar15 = bVar3 == 0x5f;\n      pbVar9 = (byte *)0x1;\n      if (bVar15) {\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }\n    }\n    else {\nLAB_001778af:\n      bVar12 = false;\n      pbVar9 = (byte *)0x0;\n      bVar15 = true;\n    }\n    iVar5 = 3;\n    pbVar11 = (byte *)(unaff_EBP + 0xc1779);\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *local_24 < *pbVar11;\n      bVar15 = *local_24 == *pbVar11;\n      local_24 = local_24 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) != bVar12) goto LAB_001778cf;\n    uStack_30 = 0x1779bb;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_00177370();\n  }\n  else {\n    if (iVar8 == 0x32) {\n      iVar8 = local_28[2];\n      if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }\n      uStack_30 = 0x1779e0;\n      local_3c[0] = FUN_001774c0();\n      goto LAB_001778fb;\n    }\n    if (iVar8 != 0x33) {\n      return (undefined4 *)0x0;\n    }\n    if (**(char **)(iVar5 + 0xc) == '_') {\n      *(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;\n      uStack_30 = 0x177946;\n      local_3c[0] = FUN_00177dc0();\n      goto LAB_001778fb;\n    }\n    pbVar9 = (byte *)0x0;\nLAB_001778cf:\n    uStack_30 = 0x1778da;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_001774c0();\n  }\n  if (local_24 != (byte *)0x0) {\n    local_3c[0] = FUN_0016dee0();\n  }\nLAB_001778fb:\n  puVar6 = (undefined4 *)FUN_0016dee0();\n  return puVar6;\n}" type_identifier (pointer_declarator "* FUN_001774c0(void)" * (function_declarator "FUN_001774c0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n  uint *puVar1;\n  char cVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  int iVar8;\n  byte *pbVar9;\n  int unaff_EBP;\n  char *pcVar10;\n  byte *pbVar11;\n  bool bVar12;\n  undefined1 uVar13;\n  bool bVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  byte bVar17;\n  int local_3c [3];\n  undefined4 uStack_30;\n  int *local_28;\n  byte *local_24;\n  undefined4 local_20;\n  \n  bVar17 = 0;\n  iVar5 = FUN_0004fb82();\n  pcVar10 = *(char **)(iVar5 + 0xc);\n  cVar2 = *pcVar10;\n  if (cVar2 == 'L') {\n    puVar6 = (undefined4 *)FUN_00177210();\n    return puVar6;\n  }\n  if (cVar2 == 'T') {\n    puVar6 = (undefined4 *)FUN_0016e210();\n    return puVar6;\n  }\n  if (cVar2 == 's') {\n    if (pcVar10[1] == 'r') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      local_3c[0] = iVar5;\n      FUN_00175280();\n      iVar8 = FUN_00175e60();\n      if (**(char **)(iVar5 + 0xc) == 'I') {\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }\n      local_3c[0] = iVar8;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x17759d;\n      FUN_001774c0();\n      local_3c[0] = 0;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }\n  else if (cVar2 == 'f') {\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }\n  }\n  else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }\n  uStack_30 = 0x177541;\n  local_28 = (int *)FUN_00175bc0();\n  if (local_28 == (int *)0x0) {\n    return (undefined4 *)0x0;\n  }\n  iVar8 = *local_28;\n  if (iVar8 == 0x31) {\n    puVar6 = (undefined4 *)local_28[2];\n    local_24 = (byte *)*puVar6;\n    puVar1 = (uint *)(iVar5 + 0x2c);\n    bVar12 = CARRY4(*puVar1,puVar6[2] - 2);\n    *puVar1 = *puVar1 + (puVar6[2] - 2);\n    bVar15 = *puVar1 == 0;\n    iVar8 = 3;\n    pbVar9 = local_24;\n    pbVar11 = (byte *)(unaff_EBP + 0xc19be);\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) == bVar12) {\n      local_3c[0] = iVar5;\n      local_3c[0] = FUN_00175280();\n      goto LAB_001778fb;\n    }\n    iVar8 = puVar6[3];\n    if (iVar8 != 1) {\n      if (iVar8 < 2) goto joined_r0x00177952;\n      if (iVar8 == 2) {\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }\n      if (iVar8 != 3) {\n        return (undefined4 *)0x0;\n      }\n      bVar12 = false;\n      bVar15 = local_24 == (byte *)0x0;\n      if (bVar15) {\n        return (undefined4 *)0x0;\n      }\n      iVar8 = 3;\n      pbVar9 = local_24;\n      pbVar11 = (byte *)(unaff_EBP + 0xc177f);\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar12 && !bVar15) == bVar12) {\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }\n      else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }\n      uStack_30 = 0x177ac4;\n      FUN_001774c0();\n      uStack_30 = 0x177acd;\n      local_3c[0] = FUN_001774c0();\n      if (local_3c[0] == 0) {\n        return (undefined4 *)0x0;\n      }\nLAB_0017779c:\n      local_3c[0] = FUN_0016dee0();\n      local_3c[0] = FUN_0016dee0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    bVar3 = *local_24;\n    if (((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == local_24[1])) {\n      bVar3 = **(byte **)(iVar5 + 0xc);\n      bVar12 = bVar3 < 0x5f;\n      bVar15 = bVar3 == 0x5f;\n      pbVar9 = (byte *)0x1;\n      if (bVar15) {\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }\n    }\n    else {\nLAB_001778af:\n      bVar12 = false;\n      pbVar9 = (byte *)0x0;\n      bVar15 = true;\n    }\n    iVar5 = 3;\n    pbVar11 = (byte *)(unaff_EBP + 0xc1779);\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *local_24 < *pbVar11;\n      bVar15 = *local_24 == *pbVar11;\n      local_24 = local_24 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) != bVar12) goto LAB_001778cf;\n    uStack_30 = 0x1779bb;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_00177370();\n  }\n  else {\n    if (iVar8 == 0x32) {\n      iVar8 = local_28[2];\n      if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }\n      uStack_30 = 0x1779e0;\n      local_3c[0] = FUN_001774c0();\n      goto LAB_001778fb;\n    }\n    if (iVar8 != 0x33) {\n      return (undefined4 *)0x0;\n    }\n    if (**(char **)(iVar5 + 0xc) == '_') {\n      *(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;\n      uStack_30 = 0x177946;\n      local_3c[0] = FUN_00177dc0();\n      goto LAB_001778fb;\n    }\n    pbVar9 = (byte *)0x0;\nLAB_001778cf:\n    uStack_30 = 0x1778da;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_001774c0();\n  }\n  if (local_24 != (byte *)0x0) {\n    local_3c[0] = FUN_0016dee0();\n  }\nLAB_001778fb:\n  puVar6 = (undefined4 *)FUN_0016dee0();\n  return puVar6;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "undefined1 uVar13;" type_identifier identifier ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "undefined1 uVar16;" type_identifier identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "int local_3c [3];" primitive_type (array_declarator "local_3c [3]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_30;" type_identifier identifier ;) (declaration "int *local_28;" primitive_type (pointer_declarator "*local_28" * identifier) ;) (declaration "byte *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = FUN_0004fb82();" (assignment_expression "iVar5 = FUN_0004fb82()" identifier = (call_expression "FUN_0004fb82()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar10 = *(char **)(iVar5 + 0xc);" (assignment_expression "pcVar10 = *(char **)(iVar5 + 0xc)" identifier = (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "cVar2 = *pcVar10;" (assignment_expression "cVar2 = *pcVar10" identifier = (pointer_expression "*pcVar10" * identifier)) ;) (if_statement "if (cVar2 == 'L') {\n    puVar6 = (undefined4 *)FUN_00177210();\n    return puVar6;\n  }" if (parenthesized_expression "(cVar2 == 'L')" ( (binary_expression "cVar2 == 'L'" identifier == (char_literal "'L'" ' character ')) )) (compound_statement "{\n    puVar6 = (undefined4 *)FUN_00177210();\n    return puVar6;\n  }" { (expression_statement "puVar6 = (undefined4 *)FUN_00177210();" (assignment_expression "puVar6 = (undefined4 *)FUN_00177210()" identifier = (cast_expression "(undefined4 *)FUN_00177210()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00177210()" identifier (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) })) (if_statement "if (cVar2 == 'T') {\n    puVar6 = (undefined4 *)FUN_0016e210();\n    return puVar6;\n  }" if (parenthesized_expression "(cVar2 == 'T')" ( (binary_expression "cVar2 == 'T'" identifier == (char_literal "'T'" ' character ')) )) (compound_statement "{\n    puVar6 = (undefined4 *)FUN_0016e210();\n    return puVar6;\n  }" { (expression_statement "puVar6 = (undefined4 *)FUN_0016e210();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016e210()" identifier = (cast_expression "(undefined4 *)FUN_0016e210()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0016e210()" identifier (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) })) (if_statement "if (cVar2 == 's') {\n    if (pcVar10[1] == 'r') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      local_3c[0] = iVar5;\n      FUN_00175280();\n      iVar8 = FUN_00175e60();\n      if (**(char **)(iVar5 + 0xc) == 'I') {\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }\n      local_3c[0] = iVar8;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x17759d;\n      FUN_001774c0();\n      local_3c[0] = 0;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }\n  else if (cVar2 == 'f') {\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }\n  }\n  else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }" if (parenthesized_expression "(cVar2 == 's')" ( (binary_expression "cVar2 == 's'" identifier == (char_literal "'s'" ' character ')) )) (compound_statement "{\n    if (pcVar10[1] == 'r') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      local_3c[0] = iVar5;\n      FUN_00175280();\n      iVar8 = FUN_00175e60();\n      if (**(char **)(iVar5 + 0xc) == 'I') {\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }\n      local_3c[0] = iVar8;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x17759d;\n      FUN_001774c0();\n      local_3c[0] = 0;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }" { (if_statement "if (pcVar10[1] == 'r') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      local_3c[0] = iVar5;\n      FUN_00175280();\n      iVar8 = FUN_00175e60();\n      if (**(char **)(iVar5 + 0xc) == 'I') {\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }\n      local_3c[0] = iVar8;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" if (parenthesized_expression "(pcVar10[1] == 'r')" ( (binary_expression "pcVar10[1] == 'r'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) == (char_literal "'r'" ' character ')) )) (compound_statement "{\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      local_3c[0] = iVar5;\n      FUN_00175280();\n      iVar8 = FUN_00175e60();\n      if (**(char **)(iVar5 + 0xc) == 'I') {\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }\n      local_3c[0] = iVar8;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" { (expression_statement "*(char **)(iVar5 + 0xc) = pcVar10 + 2;" (assignment_expression "*(char **)(iVar5 + 0xc) = pcVar10 + 2" (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar10 + 2" identifier + number_literal)) ;) (expression_statement "local_3c[0] = iVar5;" (assignment_expression "local_3c[0] = iVar5" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00175280();" (call_expression "FUN_00175280()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar8 = FUN_00175e60();" (assignment_expression "iVar8 = FUN_00175e60()" identifier = (call_expression "FUN_00175e60()" identifier (argument_list "()" ( )))) ;) (if_statement "if (**(char **)(iVar5 + 0xc) == 'I') {\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }" if (parenthesized_expression "(**(char **)(iVar5 + 0xc) == 'I')" ( (binary_expression "**(char **)(iVar5 + 0xc) == 'I'" (pointer_expression "**(char **)(iVar5 + 0xc)" * (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) == (char_literal "'I'" ' character ')) )) (compound_statement "{\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }" { (expression_statement "uStack_30 = 0x177887;" (assignment_expression "uStack_30 = 0x177887" identifier = number_literal) ;) (expression_statement "local_3c[0] = FUN_00177490();" (assignment_expression "local_3c[0] = FUN_00177490()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_00177490()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar8 = FUN_0016dee0();" (assignment_expression "iVar8 = FUN_0016dee0()" identifier = (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( )))) ;) })) (expression_statement "local_3c[0] = iVar8;" (assignment_expression "local_3c[0] = iVar8" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6 = (undefined4 *)FUN_0016dee0();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016dee0()" identifier = (cast_expression "(undefined4 *)FUN_0016dee0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) })) (if_statement "if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x17759d;\n      FUN_001774c0();\n      local_3c[0] = 0;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" if (parenthesized_expression "(pcVar10[1] == 'p')" ( (binary_expression "pcVar10[1] == 'p'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) == (char_literal "'p'" ' character ')) )) (compound_statement "{\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x17759d;\n      FUN_001774c0();\n      local_3c[0] = 0;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" { (expression_statement "*(char **)(iVar5 + 0xc) = pcVar10 + 2;" (assignment_expression "*(char **)(iVar5 + 0xc) = pcVar10 + 2" (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar10 + 2" identifier + number_literal)) ;) (expression_statement "uStack_30 = 0x17759d;" (assignment_expression "uStack_30 = 0x17759d" identifier = number_literal) ;) (expression_statement "FUN_001774c0();" (call_expression "FUN_001774c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_3c[0] = 0;" (assignment_expression "local_3c[0] = 0" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)FUN_0016dee0();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016dee0()" identifier = (cast_expression "(undefined4 *)FUN_0016dee0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) })) }) (else_clause "else if (cVar2 == 'f') {\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }\n  }\n  else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }" else (if_statement "if (cVar2 == 'f') {\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }\n  }\n  else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }" if (parenthesized_expression "(cVar2 == 'f')" ( (binary_expression "cVar2 == 'f'" identifier == (char_literal "'f'" ' character ')) )) (compound_statement "{\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }\n  }" { (if_statement "if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }" if (parenthesized_expression "(pcVar10[1] == 'p')" ( (binary_expression "pcVar10[1] == 'p'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) == (char_literal "'p'" ' character ')) )) (compound_statement "{\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }" { (expression_statement "*(char **)(iVar5 + 0xc) = pcVar10 + 2;" (assignment_expression "*(char **)(iVar5 + 0xc) = pcVar10 + 2" (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar10 + 2" identifier + number_literal)) ;) (if_statement "if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }" if (parenthesized_expression "(pcVar10[2] == 'T')" ( (binary_expression "pcVar10[2] == 'T'" (subscript_expression "pcVar10[2]" identifier [ number_literal ]) == (char_literal "'T'" ' character ')) )) (compound_statement "{\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "*(char **)(iVar5 + 0xc) = pcVar10 + 3;" (assignment_expression "*(char **)(iVar5 + 0xc) = pcVar10 + 3" (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar10 + 3" identifier + number_literal)) ;) }) (else_clause "else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }" else (compound_statement "{\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }" { (expression_statement "uStack_30 = 0x1775d7;" (assignment_expression "uStack_30 = 0x1775d7" identifier = number_literal) ;) (expression_statement "uVar7 = FUN_0016e1d0();" (assignment_expression "uVar7 = FUN_0016e1d0()" identifier = (call_expression "FUN_0016e1d0()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar8 = uVar7 + 1;" (assignment_expression "iVar8 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }" if (parenthesized_expression "((uVar7 & 0x7fffffff) == 0x7fffffff)" ( (binary_expression "(uVar7 & 0x7fffffff) == 0x7fffffff" (parenthesized_expression "(uVar7 & 0x7fffffff)" ( (binary_expression "uVar7 & 0x7fffffff" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          return (undefined4 *)0x0;\n        }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) }))) (expression_statement "iVar4 = *(int *)(iVar5 + 0x14);" (assignment_expression "iVar4 = *(int *)(iVar5 + 0x14)" identifier = (pointer_expression "*(int *)(iVar5 + 0x14)" * (cast_expression "(int *)(iVar5 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }" if (parenthesized_expression "(*(int *)(iVar5 + 0x18) <= iVar4)" ( (binary_expression "*(int *)(iVar5 + 0x18) <= iVar4" (pointer_expression "*(int *)(iVar5 + 0x18)" * (cast_expression "(int *)(iVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n        return (undefined4 *)0x0;\n      }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));" (assignment_expression "puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10))" identifier = (cast_expression "(undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 * 0x10 + *(int *)(iVar5 + 0x10))" ( (binary_expression "iVar4 * 0x10 + *(int *)(iVar5 + 0x10)" (binary_expression "iVar4 * 0x10" identifier * number_literal) + (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) )))) ;) (expression_statement "puVar6[1] = 0;" (assignment_expression "puVar6[1] = 0" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(iVar5 + 0x14) = iVar4 + 1;" (assignment_expression "*(int *)(iVar5 + 0x14) = iVar4 + 1" (pointer_expression "*(int *)(iVar5 + 0x14)" * (cast_expression "(int *)(iVar5 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "*puVar6 = 6;" (assignment_expression "*puVar6 = 6" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "puVar6[2] = iVar8;" (assignment_expression "puVar6[2] = iVar8" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (return_statement "return puVar6;" return identifier ;) })) }) (else_clause "else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }" else (compound_statement "{\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }" { (if_statement "if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" if (parenthesized_expression "((byte)(cVar2 - 0x30U) < 10)" ( (binary_expression "(byte)(cVar2 - 0x30U) < 10" (call_expression "(byte)(cVar2 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 - 0x30U)" ( (binary_expression "cVar2 - 0x30U" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" { (labeled_statement "LAB_00177505:\n      uStack_30 = 0x17750c;" statement_identifier : (expression_statement "uStack_30 = 0x17750c;" (assignment_expression "uStack_30 = 0x17750c" identifier = number_literal) ;)) (expression_statement "puVar6 = (undefined4 *)FUN_00175e60();" (assignment_expression "puVar6 = (undefined4 *)FUN_00175e60()" identifier = (cast_expression "(undefined4 *)FUN_00175e60()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00175e60()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }" if (parenthesized_expression "(puVar6 == (undefined4 *)0x0)" ( (binary_expression "puVar6 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return (undefined4 *)0x0;\n      }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }" if (parenthesized_expression "(**(char **)(iVar5 + 0xc) != 'I')" ( (binary_expression "**(char **)(iVar5 + 0xc) != 'I'" (pointer_expression "**(char **)(iVar5 + 0xc)" * (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) != (char_literal "'I'" ' character ')) )) (compound_statement "{\n        return puVar6;\n      }" { (return_statement "return puVar6;" return identifier ;) })) (expression_statement "uStack_30 = 0x1777e7;" (assignment_expression "uStack_30 = 0x1777e7" identifier = number_literal) ;) (expression_statement "local_3c[0] = FUN_00177490();" (assignment_expression "local_3c[0] = FUN_00177490()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_00177490()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar6 = (undefined4 *)FUN_0016dee0();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016dee0()" identifier = (cast_expression "(undefined4 *)FUN_0016dee0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) })) (if_statement "if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" if (parenthesized_expression "(cVar2 == 'o')" ( (binary_expression "cVar2 == 'o'" identifier == (char_literal "'o'" ' character ')) )) (compound_statement "{\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }" { (if_statement "if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }" if (parenthesized_expression "(pcVar10[1] == 'n')" ( (binary_expression "pcVar10[1] == 'n'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) == (char_literal "'n'" ' character ')) )) (compound_statement "{\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }" { (expression_statement "*(char **)(iVar5 + 0xc) = pcVar10 + 2;" (assignment_expression "*(char **)(iVar5 + 0xc) = pcVar10 + 2" (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar10 + 2" identifier + number_literal)) ;) (goto_statement "goto LAB_00177505;" goto statement_identifier ;) })) }) (else_clause "else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" else (if_statement "if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" if (parenthesized_expression "(((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l'))" ( (binary_expression "((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')" (parenthesized_expression "((cVar2 == 'i') || (cVar2 == 't'))" ( (binary_expression "(cVar2 == 'i') || (cVar2 == 't')" (parenthesized_expression "(cVar2 == 'i')" ( (binary_expression "cVar2 == 'i'" identifier == (char_literal "'i'" ' character ')) )) || (parenthesized_expression "(cVar2 == 't')" ( (binary_expression "cVar2 == 't'" identifier == (char_literal "'t'" ' character ')) ))) )) && (parenthesized_expression "(pcVar10[1] == 'l')" ( (binary_expression "pcVar10[1] == 'l'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) == (char_literal "'l'" ' character ')) ))) )) (compound_statement "{\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" { (if_statement "if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }" if (parenthesized_expression "(cVar2 == 't')" ( (binary_expression "cVar2 == 't'" identifier == (char_literal "'t'" ' character ')) )) (compound_statement "{\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }" { (expression_statement "local_3c[0] = iVar5;" (assignment_expression "local_3c[0] = iVar5" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00175280();" (call_expression "FUN_00175280()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar10 = *(char **)(iVar5 + 0xc);" (assignment_expression "pcVar10 = *(char **)(iVar5 + 0xc)" identifier = (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }" if (parenthesized_expression "(pcVar10[1] == '\0')" ( (binary_expression "pcVar10[1] == '\0'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          return (undefined4 *)0x0;\n        }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) })) (expression_statement "*(char **)(iVar5 + 0xc) = pcVar10 + 2;" (assignment_expression "*(char **)(iVar5 + 0xc) = pcVar10 + 2" (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar10 + 2" identifier + number_literal)) ;) (expression_statement "uStack_30 = 0x177862;" (assignment_expression "uStack_30 = 0x177862" identifier = number_literal) ;) (expression_statement "local_3c[0] = FUN_00177dc0();" (assignment_expression "local_3c[0] = FUN_00177dc0()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_00177dc0()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar6 = (undefined4 *)FUN_0016dee0();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016dee0()" identifier = (cast_expression "(undefined4 *)FUN_0016dee0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) })))) }))))) (expression_statement "uStack_30 = 0x177541;" (assignment_expression "uStack_30 = 0x177541" identifier = number_literal) ;) (expression_statement "local_28 = (int *)FUN_00175bc0();" (assignment_expression "local_28 = (int *)FUN_00175bc0()" identifier = (cast_expression "(int *)FUN_00175bc0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00175bc0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (local_28 == (int *)0x0) {\n    return (undefined4 *)0x0;\n  }" if (parenthesized_expression "(local_28 == (int *)0x0)" ( (binary_expression "local_28 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return (undefined4 *)0x0;\n  }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "iVar8 = *local_28;" (assignment_expression "iVar8 = *local_28" identifier = (pointer_expression "*local_28" * identifier)) ;) (if_statement "if (iVar8 == 0x31) {\n    puVar6 = (undefined4 *)local_28[2];\n    local_24 = (byte *)*puVar6;\n    puVar1 = (uint *)(iVar5 + 0x2c);\n    bVar12 = CARRY4(*puVar1,puVar6[2] - 2);\n    *puVar1 = *puVar1 + (puVar6[2] - 2);\n    bVar15 = *puVar1 == 0;\n    iVar8 = 3;\n    pbVar9 = local_24;\n    pbVar11 = (byte *)(unaff_EBP + 0xc19be);\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) == bVar12) {\n      local_3c[0] = iVar5;\n      local_3c[0] = FUN_00175280();\n      goto LAB_001778fb;\n    }\n    iVar8 = puVar6[3];\n    if (iVar8 != 1) {\n      if (iVar8 < 2) goto joined_r0x00177952;\n      if (iVar8 == 2) {\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }\n      if (iVar8 != 3) {\n        return (undefined4 *)0x0;\n      }\n      bVar12 = false;\n      bVar15 = local_24 == (byte *)0x0;\n      if (bVar15) {\n        return (undefined4 *)0x0;\n      }\n      iVar8 = 3;\n      pbVar9 = local_24;\n      pbVar11 = (byte *)(unaff_EBP + 0xc177f);\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar12 && !bVar15) == bVar12) {\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }\n      else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }\n      uStack_30 = 0x177ac4;\n      FUN_001774c0();\n      uStack_30 = 0x177acd;\n      local_3c[0] = FUN_001774c0();\n      if (local_3c[0] == 0) {\n        return (undefined4 *)0x0;\n      }\nLAB_0017779c:\n      local_3c[0] = FUN_0016dee0();\n      local_3c[0] = FUN_0016dee0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    bVar3 = *local_24;\n    if (((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == local_24[1])) {\n      bVar3 = **(byte **)(iVar5 + 0xc);\n      bVar12 = bVar3 < 0x5f;\n      bVar15 = bVar3 == 0x5f;\n      pbVar9 = (byte *)0x1;\n      if (bVar15) {\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }\n    }\n    else {\nLAB_001778af:\n      bVar12 = false;\n      pbVar9 = (byte *)0x0;\n      bVar15 = true;\n    }\n    iVar5 = 3;\n    pbVar11 = (byte *)(unaff_EBP + 0xc1779);\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *local_24 < *pbVar11;\n      bVar15 = *local_24 == *pbVar11;\n      local_24 = local_24 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) != bVar12) goto LAB_001778cf;\n    uStack_30 = 0x1779bb;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_00177370();\n  }\n  else {\n    if (iVar8 == 0x32) {\n      iVar8 = local_28[2];\n      if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }\n      uStack_30 = 0x1779e0;\n      local_3c[0] = FUN_001774c0();\n      goto LAB_001778fb;\n    }\n    if (iVar8 != 0x33) {\n      return (undefined4 *)0x0;\n    }\n    if (**(char **)(iVar5 + 0xc) == '_') {\n      *(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;\n      uStack_30 = 0x177946;\n      local_3c[0] = FUN_00177dc0();\n      goto LAB_001778fb;\n    }\n    pbVar9 = (byte *)0x0;\nLAB_001778cf:\n    uStack_30 = 0x1778da;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_001774c0();\n  }" if (parenthesized_expression "(iVar8 == 0x31)" ( (binary_expression "iVar8 == 0x31" identifier == number_literal) )) (compound_statement "{\n    puVar6 = (undefined4 *)local_28[2];\n    local_24 = (byte *)*puVar6;\n    puVar1 = (uint *)(iVar5 + 0x2c);\n    bVar12 = CARRY4(*puVar1,puVar6[2] - 2);\n    *puVar1 = *puVar1 + (puVar6[2] - 2);\n    bVar15 = *puVar1 == 0;\n    iVar8 = 3;\n    pbVar9 = local_24;\n    pbVar11 = (byte *)(unaff_EBP + 0xc19be);\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) == bVar12) {\n      local_3c[0] = iVar5;\n      local_3c[0] = FUN_00175280();\n      goto LAB_001778fb;\n    }\n    iVar8 = puVar6[3];\n    if (iVar8 != 1) {\n      if (iVar8 < 2) goto joined_r0x00177952;\n      if (iVar8 == 2) {\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }\n      if (iVar8 != 3) {\n        return (undefined4 *)0x0;\n      }\n      bVar12 = false;\n      bVar15 = local_24 == (byte *)0x0;\n      if (bVar15) {\n        return (undefined4 *)0x0;\n      }\n      iVar8 = 3;\n      pbVar9 = local_24;\n      pbVar11 = (byte *)(unaff_EBP + 0xc177f);\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar12 && !bVar15) == bVar12) {\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }\n      else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }\n      uStack_30 = 0x177ac4;\n      FUN_001774c0();\n      uStack_30 = 0x177acd;\n      local_3c[0] = FUN_001774c0();\n      if (local_3c[0] == 0) {\n        return (undefined4 *)0x0;\n      }\nLAB_0017779c:\n      local_3c[0] = FUN_0016dee0();\n      local_3c[0] = FUN_0016dee0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    bVar3 = *local_24;\n    if (((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == local_24[1])) {\n      bVar3 = **(byte **)(iVar5 + 0xc);\n      bVar12 = bVar3 < 0x5f;\n      bVar15 = bVar3 == 0x5f;\n      pbVar9 = (byte *)0x1;\n      if (bVar15) {\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }\n    }\n    else {\nLAB_001778af:\n      bVar12 = false;\n      pbVar9 = (byte *)0x0;\n      bVar15 = true;\n    }\n    iVar5 = 3;\n    pbVar11 = (byte *)(unaff_EBP + 0xc1779);\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *local_24 < *pbVar11;\n      bVar15 = *local_24 == *pbVar11;\n      local_24 = local_24 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) != bVar12) goto LAB_001778cf;\n    uStack_30 = 0x1779bb;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_00177370();\n  }" { (expression_statement "puVar6 = (undefined4 *)local_28[2];" (assignment_expression "puVar6 = (undefined4 *)local_28[2]" identifier = (cast_expression "(undefined4 *)local_28[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_28[2]" identifier [ number_literal ]))) ;) (expression_statement "local_24 = (byte *)*puVar6;" (assignment_expression "local_24 = (byte *)*puVar6" identifier = (cast_expression "(byte *)*puVar6" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (expression_statement "puVar1 = (uint *)(iVar5 + 0x2c);" (assignment_expression "puVar1 = (uint *)(iVar5 + 0x2c)" identifier = (cast_expression "(uint *)(iVar5 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c)" ( (binary_expression "iVar5 + 0x2c" identifier + number_literal) )))) ;) (expression_statement "bVar12 = CARRY4(*puVar1,puVar6[2] - 2);" (assignment_expression "bVar12 = CARRY4(*puVar1,puVar6[2] - 2)" identifier = (call_expression "CARRY4(*puVar1,puVar6[2] - 2)" identifier (argument_list "(*puVar1,puVar6[2] - 2)" ( (pointer_expression "*puVar1" * identifier) , (binary_expression "puVar6[2] - 2" (subscript_expression "puVar6[2]" identifier [ number_literal ]) - number_literal) )))) ;) (expression_statement "*puVar1 = *puVar1 + (puVar6[2] - 2);" (assignment_expression "*puVar1 = *puVar1 + (puVar6[2] - 2)" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 + (puVar6[2] - 2)" (pointer_expression "*puVar1" * identifier) + (parenthesized_expression "(puVar6[2] - 2)" ( (binary_expression "puVar6[2] - 2" (subscript_expression "puVar6[2]" identifier [ number_literal ]) - number_literal) )))) ;) (expression_statement "bVar15 = *puVar1 == 0;" (assignment_expression "bVar15 = *puVar1 == 0" identifier = (binary_expression "*puVar1 == 0" (pointer_expression "*puVar1" * identifier) == number_literal)) ;) (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = local_24;" (assignment_expression "pbVar9 = local_24" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)(unaff_EBP + 0xc19be);" (assignment_expression "pbVar11 = (byte *)(unaff_EBP + 0xc19be)" identifier = (cast_expression "(byte *)(unaff_EBP + 0xc19be)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xc19be)" ( (binary_expression "unaff_EBP + 0xc19be" identifier + number_literal) )))) ;) (do_statement "do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar9 < *pbVar11;" (assignment_expression "bVar12 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar9 == *pbVar11;" (assignment_expression "bVar15 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar12 && !bVar15) == bVar12) {\n      local_3c[0] = iVar5;\n      local_3c[0] = FUN_00175280();\n      goto LAB_001778fb;\n    }" if (parenthesized_expression "((!bVar12 && !bVar15) == bVar12)" ( (binary_expression "(!bVar12 && !bVar15) == bVar12" (parenthesized_expression "(!bVar12 && !bVar15)" ( (binary_expression "!bVar12 && !bVar15" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier) )) (compound_statement "{\n      local_3c[0] = iVar5;\n      local_3c[0] = FUN_00175280();\n      goto LAB_001778fb;\n    }" { (expression_statement "local_3c[0] = iVar5;" (assignment_expression "local_3c[0] = iVar5" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_3c[0] = FUN_00175280();" (assignment_expression "local_3c[0] = FUN_00175280()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_00175280()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_001778fb;" goto statement_identifier ;) })) (expression_statement "iVar8 = puVar6[3];" (assignment_expression "iVar8 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (if_statement "if (iVar8 != 1) {\n      if (iVar8 < 2) goto joined_r0x00177952;\n      if (iVar8 == 2) {\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }\n      if (iVar8 != 3) {\n        return (undefined4 *)0x0;\n      }\n      bVar12 = false;\n      bVar15 = local_24 == (byte *)0x0;\n      if (bVar15) {\n        return (undefined4 *)0x0;\n      }\n      iVar8 = 3;\n      pbVar9 = local_24;\n      pbVar11 = (byte *)(unaff_EBP + 0xc177f);\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar12 && !bVar15) == bVar12) {\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }\n      else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }\n      uStack_30 = 0x177ac4;\n      FUN_001774c0();\n      uStack_30 = 0x177acd;\n      local_3c[0] = FUN_001774c0();\n      if (local_3c[0] == 0) {\n        return (undefined4 *)0x0;\n      }\nLAB_0017779c:\n      local_3c[0] = FUN_0016dee0();\n      local_3c[0] = FUN_0016dee0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" if (parenthesized_expression "(iVar8 != 1)" ( (binary_expression "iVar8 != 1" identifier != number_literal) )) (compound_statement "{\n      if (iVar8 < 2) goto joined_r0x00177952;\n      if (iVar8 == 2) {\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }\n      if (iVar8 != 3) {\n        return (undefined4 *)0x0;\n      }\n      bVar12 = false;\n      bVar15 = local_24 == (byte *)0x0;\n      if (bVar15) {\n        return (undefined4 *)0x0;\n      }\n      iVar8 = 3;\n      pbVar9 = local_24;\n      pbVar11 = (byte *)(unaff_EBP + 0xc177f);\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar12 && !bVar15) == bVar12) {\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }\n      else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }\n      uStack_30 = 0x177ac4;\n      FUN_001774c0();\n      uStack_30 = 0x177acd;\n      local_3c[0] = FUN_001774c0();\n      if (local_3c[0] == 0) {\n        return (undefined4 *)0x0;\n      }\nLAB_0017779c:\n      local_3c[0] = FUN_0016dee0();\n      local_3c[0] = FUN_0016dee0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" { (if_statement "if (iVar8 < 2) goto joined_r0x00177952;" if (parenthesized_expression "(iVar8 < 2)" ( (binary_expression "iVar8 < 2" identifier < number_literal) )) (goto_statement "goto joined_r0x00177952;" goto statement_identifier ;)) (if_statement "if (iVar8 == 2) {\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }" if (parenthesized_expression "(iVar8 == 2)" ( (binary_expression "iVar8 == 2" identifier == number_literal) )) (compound_statement "{\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }" { (if_statement "if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }" if (parenthesized_expression "(local_24 == (byte *)0x0)" ( (binary_expression "local_24 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return (undefined4 *)0x0;\n        }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }" if (parenthesized_expression "((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2))))" ( (binary_expression "(((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))" (parenthesized_expression "(((char *)*puVar6)[1] == 'c')" ( (binary_expression "((char *)*puVar6)[1] == 'c'" (subscript_expression "((char *)*puVar6)[1]" (parenthesized_expression "((char *)*puVar6)" ( (cast_expression "(char *)*puVar6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier)) )) [ number_literal ]) == (char_literal "'c'" ' character ')) )) && (parenthesized_expression "((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))" ( (parenthesized_expression "(cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2))" ( (comma_expression "cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)" (assignment_expression "cVar2 = *(char *)*puVar6" identifier = (pointer_expression "*(char *)*puVar6" * (cast_expression "(char *)*puVar6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier)))) , (binary_expression "(byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)" (binary_expression "(byte)(cVar2 + 0x9dU) < 2" (call_expression "(byte)(cVar2 + 0x9dU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 + 0x9dU)" ( (binary_expression "cVar2 + 0x9dU" identifier + number_literal) ))) < number_literal) || (parenthesized_expression "((byte)(cVar2 + 0x8eU) < 2)" ( (binary_expression "(byte)(cVar2 + 0x8eU) < 2" (call_expression "(byte)(cVar2 + 0x8eU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar2 + 0x8eU)" ( (binary_expression "cVar2 + 0x8eU" identifier + number_literal) ))) < number_literal) )))) )) ))) )) (compound_statement "{\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }" { (expression_statement "local_3c[0] = iVar5;" (assignment_expression "local_3c[0] = iVar5" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_20 = FUN_00175280();" (assignment_expression "local_20 = FUN_00175280()" identifier = (call_expression "FUN_00175280()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar13 = (undefined1 *)0xffffffef < local_3c;" (assignment_expression "uVar13 = (undefined1 *)0xffffffef < local_3c" identifier = (binary_expression "(undefined1 *)0xffffffef < local_3c" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier)) ;) (expression_statement "uVar16 = &stack0x00000000 == (undefined1 *)0x2c;" (assignment_expression "uVar16 = &stack0x00000000 == (undefined1 *)0x2c" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x2c" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x2c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) }) (else_clause "else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }" else (compound_statement "{\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }" { (expression_statement "uVar13 = *local_24 < 0x66;" (assignment_expression "uVar13 = *local_24 < 0x66" identifier = (binary_expression "*local_24 < 0x66" (pointer_expression "*local_24" * identifier) < number_literal)) ;) (expression_statement "uVar16 = *local_24 == 0x66;" (assignment_expression "uVar16 = *local_24 == 0x66" identifier = (binary_expression "*local_24 == 0x66" (pointer_expression "*local_24" * identifier) == number_literal)) ;) (if_statement "if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }" if (parenthesized_expression "((bool)uVar16)" ( (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }" { (expression_statement "uStack_30 = 0x177b21;" (assignment_expression "uStack_30 = 0x177b21" identifier = number_literal) ;) (expression_statement "local_20 = FUN_00175bc0();" (assignment_expression "local_20 = FUN_00175bc0()" identifier = (call_expression "FUN_00175bc0()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }" else (compound_statement "{\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }" { (expression_statement "uStack_30 = 0x177a14;" (assignment_expression "uStack_30 = 0x177a14" identifier = number_literal) ;) (expression_statement "local_20 = FUN_001774c0();" (assignment_expression "local_20 = FUN_001774c0()" identifier = (call_expression "FUN_001774c0()" identifier (argument_list "()" ( )))) ;) }))) }))) (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = local_24;" (assignment_expression "pbVar9 = local_24" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)(unaff_EBP + 0xc05f2);" (assignment_expression "pbVar11 = (byte *)(unaff_EBP + 0xc05f2)" identifier = (cast_expression "(byte *)(unaff_EBP + 0xc05f2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xc05f2)" ( (binary_expression "unaff_EBP + 0xc05f2" identifier + number_literal) )))) ;) (do_statement "do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);" do (compound_statement "{\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "uVar13 = *pbVar9 < *pbVar11;" (assignment_expression "uVar13 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar16)" ( (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;" (assignment_expression "bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13" identifier = (binary_expression "(!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13" (parenthesized_expression "(!(bool)uVar13 && !(bool)uVar16)" ( (binary_expression "!(bool)uVar13 && !(bool)uVar16" (unary_expression "!(bool)uVar13" ! (cast_expression "(bool)uVar13" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar16" ! (cast_expression "(bool)uVar16" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar13" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }" { (expression_statement "uStack_30 = 0x177b13;" (assignment_expression "uStack_30 = 0x177b13" identifier = number_literal) ;) (expression_statement "iVar8 = FUN_00177dc0();" (assignment_expression "iVar8 = FUN_00177dc0()" identifier = (call_expression "FUN_00177dc0()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }" else (compound_statement "{\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }" { (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = local_24;" (assignment_expression "pbVar9 = local_24" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)(unaff_EBP + 0xc0250);" (assignment_expression "pbVar11 = (byte *)(unaff_EBP + 0xc0250)" identifier = (cast_expression "(byte *)(unaff_EBP + 0xc0250)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xc0250)" ( (binary_expression "unaff_EBP + 0xc0250" identifier + number_literal) )))) ;) (do_statement "do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);" do (compound_statement "{\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar9 < *pbVar11;" (assignment_expression "bVar12 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar9 == *pbVar11;" (assignment_expression "bVar15 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (expression_statement "bVar12 = (!bVar12 && !bVar15) == bVar12;" (assignment_expression "bVar12 = (!bVar12 && !bVar15) == bVar12" identifier = (binary_expression "(!bVar12 && !bVar15) == bVar12" (parenthesized_expression "(!bVar12 && !bVar15)" ( (binary_expression "!bVar12 && !bVar15" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (compound_statement "{\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }" { (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = local_24;" (assignment_expression "pbVar9 = local_24" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)(unaff_EBP + 0xba422);" (assignment_expression "pbVar11 = (byte *)(unaff_EBP + 0xba422)" identifier = (cast_expression "(byte *)(unaff_EBP + 0xba422)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xba422)" ( (binary_expression "unaff_EBP + 0xba422" identifier + number_literal) )))) ;) (do_statement "do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);" do (compound_statement "{\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar14 = *pbVar9 < *pbVar11;" (assignment_expression "bVar14 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (if_statement "if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }" if (parenthesized_expression "((!bVar14 && !bVar12) != bVar14)" ( (binary_expression "(!bVar14 && !bVar12) != bVar14" (parenthesized_expression "(!bVar14 && !bVar12)" ( (binary_expression "!bVar14 && !bVar12" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) != identifier) )) (compound_statement "{\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }" { (expression_statement "uStack_30 = 0x177b31;" (assignment_expression "uStack_30 = 0x177b31" identifier = number_literal) ;) (expression_statement "iVar8 = FUN_001774c0();" (assignment_expression "iVar8 = FUN_001774c0()" identifier = (call_expression "FUN_001774c0()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_00177a83;" goto statement_identifier ;) })) })) (expression_statement "uStack_30 = 0x177a75;" (assignment_expression "uStack_30 = 0x177a75" identifier = number_literal) ;) (expression_statement "iVar8 = FUN_00175e60();" (assignment_expression "iVar8 = FUN_00175e60()" identifier = (call_expression "FUN_00175e60()" identifier (argument_list "()" ( )))) ;) (if_statement "if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }" if (parenthesized_expression "(**(char **)(iVar5 + 0xc) == 'I')" ( (binary_expression "**(char **)(iVar5 + 0xc) == 'I'" (pointer_expression "**(char **)(iVar5 + 0xc)" * (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) == (char_literal "'I'" ' character ')) )) (compound_statement "{\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }" { (expression_statement "uStack_30 = 0x177b4b;" (assignment_expression "uStack_30 = 0x177b4b" identifier = number_literal) ;) (expression_statement "local_3c[0] = FUN_00177490();" (assignment_expression "local_3c[0] = FUN_00177490()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_00177490()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar8 = FUN_0016dee0();" (assignment_expression "iVar8 = FUN_0016dee0()" identifier = (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( )))) ;) })) }))) (labeled_statement "LAB_00177a83:\n        local_3c[0] = iVar8;" statement_identifier : (expression_statement "local_3c[0] = iVar8;" (assignment_expression "local_3c[0] = iVar8" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "local_3c[0] = FUN_0016dee0();" (assignment_expression "local_3c[0] = FUN_0016dee0()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar6 = (undefined4 *)FUN_0016dee0();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016dee0()" identifier = (cast_expression "(undefined4 *)FUN_0016dee0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) })) (if_statement "if (iVar8 != 3) {\n        return (undefined4 *)0x0;\n      }" if (parenthesized_expression "(iVar8 != 3)" ( (binary_expression "iVar8 != 3" identifier != number_literal) )) (compound_statement "{\n        return (undefined4 *)0x0;\n      }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar15 = local_24 == (byte *)0x0;" (assignment_expression "bVar15 = local_24 == (byte *)0x0" identifier = (binary_expression "local_24 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar15) {\n        return (undefined4 *)0x0;\n      }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n        return (undefined4 *)0x0;\n      }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" identifier = number_literal) ;) (expression_statement "pbVar9 = local_24;" (assignment_expression "pbVar9 = local_24" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)(unaff_EBP + 0xc177f);" (assignment_expression "pbVar11 = (byte *)(unaff_EBP + 0xc177f)" identifier = (cast_expression "(byte *)(unaff_EBP + 0xc177f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xc177f)" ( (binary_expression "unaff_EBP + 0xc177f" identifier + number_literal) )))) ;) (do_statement "do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar15);" do (compound_statement "{\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar9 < *pbVar11;" (assignment_expression "bVar12 = *pbVar9 < *pbVar11" identifier = (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar9 == *pbVar11;" (assignment_expression "bVar15 = *pbVar9 == *pbVar11" identifier = (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar12 && !bVar15) == bVar12) {\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }\n      else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }" if (parenthesized_expression "((!bVar12 && !bVar15) == bVar12)" ( (binary_expression "(!bVar12 && !bVar15) == bVar12" (parenthesized_expression "(!bVar12 && !bVar15)" ( (binary_expression "!bVar12 && !bVar15" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier) )) (compound_statement "{\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }" { (expression_statement "uStack_30 = 0x177abb;" (assignment_expression "uStack_30 = 0x177abb" identifier = number_literal) ;) (expression_statement "FUN_001774c0();" (call_expression "FUN_001774c0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }" else (compound_statement "{\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }" { (if_statement "if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }" if (parenthesized_expression "(*local_24 != 0x66)" ( (binary_expression "*local_24 != 0x66" (pointer_expression "*local_24" * identifier) != number_literal) )) (compound_statement "{\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }" { (if_statement "if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }" if (parenthesized_expression "(*local_24 != 0x6e)" ( (binary_expression "*local_24 != 0x6e" (pointer_expression "*local_24" * identifier) != number_literal) )) (compound_statement "{\n            return (undefined4 *)0x0;\n          }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }" if (parenthesized_expression "((local_24[1] != 0x77) && (local_24[1] != 0x61))" ( (binary_expression "(local_24[1] != 0x77) && (local_24[1] != 0x61)" (parenthesized_expression "(local_24[1] != 0x77)" ( (binary_expression "local_24[1] != 0x77" (subscript_expression "local_24[1]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(local_24[1] != 0x61)" ( (binary_expression "local_24[1] != 0x61" (subscript_expression "local_24[1]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n            return (undefined4 *)0x0;\n          }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "uStack_30 = 0x17775a;" (assignment_expression "uStack_30 = 0x17775a" identifier = number_literal) ;) (expression_statement "FUN_00177dc0();" (call_expression "FUN_00177dc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_3c[0] = iVar5;" (assignment_expression "local_3c[0] = iVar5" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00175280();" (call_expression "FUN_00175280()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar10 = *(char **)(iVar5 + 0xc);" (assignment_expression "pcVar10 = *(char **)(iVar5 + 0xc)" identifier = (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "cVar2 = *pcVar10;" (assignment_expression "cVar2 = *pcVar10" identifier = (pointer_expression "*pcVar10" * identifier)) ;) (if_statement "if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }" if (parenthesized_expression "(cVar2 == 'E')" ( (binary_expression "cVar2 == 'E'" identifier == (char_literal "'E'" ' character ')) )) (compound_statement "{\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }" { (expression_statement "*(char **)(iVar5 + 0xc) = pcVar10 + 1;" (assignment_expression "*(char **)(iVar5 + 0xc) = pcVar10 + 1" (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar10 + 1" identifier + number_literal)) ;) (expression_statement "local_3c[0] = 0;" (assignment_expression "local_3c[0] = 0" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }" else (if_statement "if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }" if (parenthesized_expression "(cVar2 == 'p')" ( (binary_expression "cVar2 == 'p'" identifier == (char_literal "'p'" ' character ')) )) (compound_statement "{\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }" { (if_statement "if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }" if (parenthesized_expression "(pcVar10[1] != 'i')" ( (binary_expression "pcVar10[1] != 'i'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) != (char_literal "'i'" ' character ')) )) (compound_statement "{\n              return (undefined4 *)0x0;\n            }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "*(char **)(iVar5 + 0xc) = pcVar10 + 2;" (assignment_expression "*(char **)(iVar5 + 0xc) = pcVar10 + 2" (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = (binary_expression "pcVar10 + 2" identifier + number_literal)) ;) (expression_statement "uStack_30 = 0x177b83;" (assignment_expression "uStack_30 = 0x177b83" identifier = number_literal) ;) (expression_statement "local_3c[0] = FUN_00177dc0();" (assignment_expression "local_3c[0] = FUN_00177dc0()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_00177dc0()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }" else (compound_statement "{\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }" { (if_statement "if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }" if (parenthesized_expression "(cVar2 != 'i')" ( (binary_expression "cVar2 != 'i'" identifier != (char_literal "'i'" ' character ')) )) (compound_statement "{\n              return (undefined4 *)0x0;\n            }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }" if (parenthesized_expression "(pcVar10[1] != 'l')" ( (binary_expression "pcVar10[1] != 'l'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) != (char_literal "'l'" ' character ')) )) (compound_statement "{\n              return (undefined4 *)0x0;\n            }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "uStack_30 = 0x17779c;" (assignment_expression "uStack_30 = 0x17779c" identifier = number_literal) ;) (expression_statement "local_3c[0] = FUN_001774c0();" (assignment_expression "local_3c[0] = FUN_001774c0()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_001774c0()" identifier (argument_list "()" ( )))) ;) }))))) (goto_statement "goto LAB_0017779c;" goto statement_identifier ;) })) (expression_statement "uStack_30 = 0x177b3f;" (assignment_expression "uStack_30 = 0x177b3f" identifier = number_literal) ;) (expression_statement "FUN_00175bc0();" (call_expression "FUN_00175bc0()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "uStack_30 = 0x177ac4;" (assignment_expression "uStack_30 = 0x177ac4" identifier = number_literal) ;) (expression_statement "FUN_001774c0();" (call_expression "FUN_001774c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uStack_30 = 0x177acd;" (assignment_expression "uStack_30 = 0x177acd" identifier = number_literal) ;) (expression_statement "local_3c[0] = FUN_001774c0();" (assignment_expression "local_3c[0] = FUN_001774c0()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_001774c0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_3c[0] == 0) {\n        return (undefined4 *)0x0;\n      }" if (parenthesized_expression "(local_3c[0] == 0)" ( (binary_expression "local_3c[0] == 0" (subscript_expression "local_3c[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        return (undefined4 *)0x0;\n      }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (labeled_statement "LAB_0017779c:\n      local_3c[0] = FUN_0016dee0();" statement_identifier : (expression_statement "local_3c[0] = FUN_0016dee0();" (assignment_expression "local_3c[0] = FUN_0016dee0()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( )))) ;)) (expression_statement "local_3c[0] = FUN_0016dee0();" (assignment_expression "local_3c[0] = FUN_0016dee0()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar6 = (undefined4 *)FUN_0016dee0();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016dee0()" identifier = (cast_expression "(undefined4 *)FUN_0016dee0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) })) (expression_statement "bVar3 = *local_24;" (assignment_expression "bVar3 = *local_24" identifier = (pointer_expression "*local_24" * identifier)) ;) (if_statement "if (((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == local_24[1])) {\n      bVar3 = **(byte **)(iVar5 + 0xc);\n      bVar12 = bVar3 < 0x5f;\n      bVar15 = bVar3 == 0x5f;\n      pbVar9 = (byte *)0x1;\n      if (bVar15) {\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }\n    }\n    else {\nLAB_001778af:\n      bVar12 = false;\n      pbVar9 = (byte *)0x0;\n      bVar15 = true;\n    }" if (parenthesized_expression "(((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == local_24[1]))" ( (binary_expression "((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == local_24[1])" (parenthesized_expression "((bVar3 == 0x70) || (bVar3 == 0x6d))" ( (binary_expression "(bVar3 == 0x70) || (bVar3 == 0x6d)" (parenthesized_expression "(bVar3 == 0x70)" ( (binary_expression "bVar3 == 0x70" identifier == number_literal) )) || (parenthesized_expression "(bVar3 == 0x6d)" ( (binary_expression "bVar3 == 0x6d" identifier == number_literal) ))) )) && (parenthesized_expression "(bVar3 == local_24[1])" ( (binary_expression "bVar3 == local_24[1]" identifier == (subscript_expression "local_24[1]" identifier [ number_literal ])) ))) )) (compound_statement "{\n      bVar3 = **(byte **)(iVar5 + 0xc);\n      bVar12 = bVar3 < 0x5f;\n      bVar15 = bVar3 == 0x5f;\n      pbVar9 = (byte *)0x1;\n      if (bVar15) {\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }\n    }" { (expression_statement "bVar3 = **(byte **)(iVar5 + 0xc);" (assignment_expression "bVar3 = **(byte **)(iVar5 + 0xc)" identifier = (pointer_expression "**(byte **)(iVar5 + 0xc)" * (pointer_expression "*(byte **)(iVar5 + 0xc)" * (cast_expression "(byte **)(iVar5 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))))) ;) (expression_statement "bVar12 = bVar3 < 0x5f;" (assignment_expression "bVar12 = bVar3 < 0x5f" identifier = (binary_expression "bVar3 < 0x5f" identifier < number_literal)) ;) (expression_statement "bVar15 = bVar3 == 0x5f;" (assignment_expression "bVar15 = bVar3 == 0x5f" identifier = (binary_expression "bVar3 == 0x5f" identifier == number_literal)) ;) (expression_statement "pbVar9 = (byte *)0x1;" (assignment_expression "pbVar9 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (bVar15) {\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }" { (expression_statement "*(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;" (assignment_expression "*(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1" (pointer_expression "*(byte **)(iVar5 + 0xc)" * (cast_expression "(byte **)(iVar5 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = (binary_expression "*(byte **)(iVar5 + 0xc) + 1" (pointer_expression "*(byte **)(iVar5 + 0xc)" * (cast_expression "(byte **)(iVar5 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_001778af;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_001778af:\n      bVar12 = false;\n      pbVar9 = (byte *)0x0;\n      bVar15 = true;\n    }" else (compound_statement "{\nLAB_001778af:\n      bVar12 = false;\n      pbVar9 = (byte *)0x0;\n      bVar15 = true;\n    }" { (labeled_statement "LAB_001778af:\n      bVar12 = false;" statement_identifier : (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;)) (expression_statement "pbVar9 = (byte *)0x0;" (assignment_expression "pbVar9 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) }))) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)(unaff_EBP + 0xc1779);" (assignment_expression "pbVar11 = (byte *)(unaff_EBP + 0xc1779)" identifier = (cast_expression "(byte *)(unaff_EBP + 0xc1779)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xc1779)" ( (binary_expression "unaff_EBP + 0xc1779" identifier + number_literal) )))) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *local_24 < *pbVar11;\n      bVar15 = *local_24 == *pbVar11;\n      local_24 = local_24 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *local_24 < *pbVar11;\n      bVar15 = *local_24 == *pbVar11;\n      local_24 = local_24 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *local_24 < *pbVar11;" (assignment_expression "bVar12 = *local_24 < *pbVar11" identifier = (binary_expression "*local_24 < *pbVar11" (pointer_expression "*local_24" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *local_24 == *pbVar11;" (assignment_expression "bVar15 = *local_24 == *pbVar11" identifier = (binary_expression "*local_24 == *pbVar11" (pointer_expression "*local_24" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "local_24 = local_24 + (uint)bVar17 * -2 + 1;" (assignment_expression "local_24 = local_24 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "local_24 + (uint)bVar17 * -2 + 1" (binary_expression "local_24 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar12 && !bVar15) != bVar12) goto LAB_001778cf;" if (parenthesized_expression "((!bVar12 && !bVar15) != bVar12)" ( (binary_expression "(!bVar12 && !bVar15) != bVar12" (parenthesized_expression "(!bVar12 && !bVar15)" ( (binary_expression "!bVar12 && !bVar15" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_001778cf;" goto statement_identifier ;)) (expression_statement "uStack_30 = 0x1779bb;" (assignment_expression "uStack_30 = 0x1779bb" identifier = number_literal) ;) (expression_statement "local_24 = pbVar9;" (assignment_expression "local_24 = pbVar9" identifier = identifier) ;) (expression_statement "local_3c[0] = FUN_00177370();" (assignment_expression "local_3c[0] = FUN_00177370()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_00177370()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n    if (iVar8 == 0x32) {\n      iVar8 = local_28[2];\n      if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }\n      uStack_30 = 0x1779e0;\n      local_3c[0] = FUN_001774c0();\n      goto LAB_001778fb;\n    }\n    if (iVar8 != 0x33) {\n      return (undefined4 *)0x0;\n    }\n    if (**(char **)(iVar5 + 0xc) == '_') {\n      *(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;\n      uStack_30 = 0x177946;\n      local_3c[0] = FUN_00177dc0();\n      goto LAB_001778fb;\n    }\n    pbVar9 = (byte *)0x0;\nLAB_001778cf:\n    uStack_30 = 0x1778da;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_001774c0();\n  }" else (compound_statement "{\n    if (iVar8 == 0x32) {\n      iVar8 = local_28[2];\n      if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }\n      uStack_30 = 0x1779e0;\n      local_3c[0] = FUN_001774c0();\n      goto LAB_001778fb;\n    }\n    if (iVar8 != 0x33) {\n      return (undefined4 *)0x0;\n    }\n    if (**(char **)(iVar5 + 0xc) == '_') {\n      *(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;\n      uStack_30 = 0x177946;\n      local_3c[0] = FUN_00177dc0();\n      goto LAB_001778fb;\n    }\n    pbVar9 = (byte *)0x0;\nLAB_001778cf:\n    uStack_30 = 0x1778da;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_001774c0();\n  }" { (if_statement "if (iVar8 == 0x32) {\n      iVar8 = local_28[2];\n      if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }\n      uStack_30 = 0x1779e0;\n      local_3c[0] = FUN_001774c0();\n      goto LAB_001778fb;\n    }" if (parenthesized_expression "(iVar8 == 0x32)" ( (binary_expression "iVar8 == 0x32" identifier == number_literal) )) (compound_statement "{\n      iVar8 = local_28[2];\n      if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }\n      uStack_30 = 0x1779e0;\n      local_3c[0] = FUN_001774c0();\n      goto LAB_001778fb;\n    }" { (expression_statement "iVar8 = local_28[2];" (assignment_expression "iVar8 = local_28[2]" identifier = (subscript_expression "local_28[2]" identifier [ number_literal ])) ;) (if_statement "if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }" if (parenthesized_expression "(iVar8 != 1)" ( (binary_expression "iVar8 != 1" identifier != number_literal) )) (compound_statement "{\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }" { (if_statement "if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }" if (parenthesized_expression "(1 < iVar8)" ( (binary_expression "1 < iVar8" number_literal < identifier) )) (compound_statement "{\n          return (undefined4 *)0x0;\n        }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (labeled_statement "joined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }" statement_identifier : (if_statement "if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }" { (expression_statement "local_3c[0] = 0;" (assignment_expression "local_3c[0] = 0" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)FUN_0016dee0();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016dee0()" identifier = (cast_expression "(undefined4 *)FUN_0016dee0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( ))))) ;) (return_statement "return puVar6;" return identifier ;) }))) (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "uStack_30 = 0x1779e0;" (assignment_expression "uStack_30 = 0x1779e0" identifier = number_literal) ;) (expression_statement "local_3c[0] = FUN_001774c0();" (assignment_expression "local_3c[0] = FUN_001774c0()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_001774c0()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_001778fb;" goto statement_identifier ;) })) (if_statement "if (iVar8 != 0x33) {\n      return (undefined4 *)0x0;\n    }" if (parenthesized_expression "(iVar8 != 0x33)" ( (binary_expression "iVar8 != 0x33" identifier != number_literal) )) (compound_statement "{\n      return (undefined4 *)0x0;\n    }" { (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (**(char **)(iVar5 + 0xc) == '_') {\n      *(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;\n      uStack_30 = 0x177946;\n      local_3c[0] = FUN_00177dc0();\n      goto LAB_001778fb;\n    }" if (parenthesized_expression "(**(char **)(iVar5 + 0xc) == '_')" ( (binary_expression "**(char **)(iVar5 + 0xc) == '_'" (pointer_expression "**(char **)(iVar5 + 0xc)" * (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) == (char_literal "'_'" ' character ')) )) (compound_statement "{\n      *(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;\n      uStack_30 = 0x177946;\n      local_3c[0] = FUN_00177dc0();\n      goto LAB_001778fb;\n    }" { (expression_statement "*(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;" (assignment_expression "*(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1" (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = (binary_expression "*(char **)(iVar5 + 0xc) + 1" (pointer_expression "*(char **)(iVar5 + 0xc)" * (cast_expression "(char **)(iVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "uStack_30 = 0x177946;" (assignment_expression "uStack_30 = 0x177946" identifier = number_literal) ;) (expression_statement "local_3c[0] = FUN_00177dc0();" (assignment_expression "local_3c[0] = FUN_00177dc0()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_00177dc0()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_001778fb;" goto statement_identifier ;) })) (expression_statement "pbVar9 = (byte *)0x0;" (assignment_expression "pbVar9 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_001778cf:\n    uStack_30 = 0x1778da;" statement_identifier : (expression_statement "uStack_30 = 0x1778da;" (assignment_expression "uStack_30 = 0x1778da" identifier = number_literal) ;)) (expression_statement "local_24 = pbVar9;" (assignment_expression "local_24 = pbVar9" identifier = identifier) ;) (expression_statement "local_3c[0] = FUN_001774c0();" (assignment_expression "local_3c[0] = FUN_001774c0()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_001774c0()" identifier (argument_list "()" ( )))) ;) }))) (if_statement "if (local_24 != (byte *)0x0) {\n    local_3c[0] = FUN_0016dee0();\n  }" if (parenthesized_expression "(local_24 != (byte *)0x0)" ( (binary_expression "local_24 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_3c[0] = FUN_0016dee0();\n  }" { (expression_statement "local_3c[0] = FUN_0016dee0();" (assignment_expression "local_3c[0] = FUN_0016dee0()" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( )))) ;) })) (labeled_statement "LAB_001778fb:\n  puVar6 = (undefined4 *)FUN_0016dee0();" statement_identifier : (expression_statement "puVar6 = (undefined4 *)FUN_0016dee0();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016dee0()" identifier = (cast_expression "(undefined4 *)FUN_0016dee0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0016dee0()" identifier (argument_list "()" ( ))))) ;)) (return_statement "return puVar6;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) )))) (compound_statement { (declaration TYPE (pointer_declarator * 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (return_statement return IDENT ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return IDENT ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) != (char_literal ' character ')) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (return_statement return IDENT ;) })))) }))))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 ;)) (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 { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )) [ LIT ]) == (char_literal ' character ')) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) , (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) < LIT) || (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) < LIT) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == LIT)) ;) (if_statement if (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }))) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) && (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) == (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' character ')) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( )))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' character ')) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( )))) ;) }))))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (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) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( )))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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 IDENT == (subscript_expression IDENT [ LIT ])) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (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 < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = BOOL) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (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 == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( )))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (return_statement return IDENT ;) }))) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( )))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;)) (return_statement return IDENT ;) })))
(function_definition "undefined4 * FUN_001774c0(void)\n\n{\n  uint *puVar1;\n  char cVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  int iVar8;\n  byte *pbVar9;\n  int unaff_EBP;\n  char *pcVar10;\n  byte *pbVar11;\n  bool bVar12;\n  undefined1 uVar13;\n  bool bVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  byte bVar17;\n  int local_3c [3];\n  undefined4 uStack_30;\n  int *local_28;\n  byte *local_24;\n  undefined4 local_20;\n  \n  bVar17 = 0;\n  iVar5 = FUN_0004fb82();\n  pcVar10 = *(char **)(iVar5 + 0xc);\n  cVar2 = *pcVar10;\n  if (cVar2 == 'L') {\n    puVar6 = (undefined4 *)FUN_00177210();\n    return puVar6;\n  }\n  if (cVar2 == 'T') {\n    puVar6 = (undefined4 *)FUN_0016e210();\n    return puVar6;\n  }\n  if (cVar2 == 's') {\n    if (pcVar10[1] == 'r') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      local_3c[0] = iVar5;\n      FUN_00175280();\n      iVar8 = FUN_00175e60();\n      if (**(char **)(iVar5 + 0xc) == 'I') {\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }\n      local_3c[0] = iVar8;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x17759d;\n      FUN_001774c0();\n      local_3c[0] = 0;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }\n  else if (cVar2 == 'f') {\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }\n  }\n  else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }\n  uStack_30 = 0x177541;\n  local_28 = (int *)FUN_00175bc0();\n  if (local_28 == (int *)0x0) {\n    return (undefined4 *)0x0;\n  }\n  iVar8 = *local_28;\n  if (iVar8 == 0x31) {\n    puVar6 = (undefined4 *)local_28[2];\n    local_24 = (byte *)*puVar6;\n    puVar1 = (uint *)(iVar5 + 0x2c);\n    bVar12 = CARRY4(*puVar1,puVar6[2] - 2);\n    *puVar1 = *puVar1 + (puVar6[2] - 2);\n    bVar15 = *puVar1 == 0;\n    iVar8 = 3;\n    pbVar9 = local_24;\n    pbVar11 = (byte *)(unaff_EBP + 0xc19be);\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) == bVar12) {\n      local_3c[0] = iVar5;\n      local_3c[0] = FUN_00175280();\n      goto LAB_001778fb;\n    }\n    iVar8 = puVar6[3];\n    if (iVar8 != 1) {\n      if (iVar8 < 2) goto joined_r0x00177952;\n      if (iVar8 == 2) {\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }\n      if (iVar8 != 3) {\n        return (undefined4 *)0x0;\n      }\n      bVar12 = false;\n      bVar15 = local_24 == (byte *)0x0;\n      if (bVar15) {\n        return (undefined4 *)0x0;\n      }\n      iVar8 = 3;\n      pbVar9 = local_24;\n      pbVar11 = (byte *)(unaff_EBP + 0xc177f);\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar12 && !bVar15) == bVar12) {\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }\n      else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }\n      uStack_30 = 0x177ac4;\n      FUN_001774c0();\n      uStack_30 = 0x177acd;\n      local_3c[0] = FUN_001774c0();\n      if (local_3c[0] == 0) {\n        return (undefined4 *)0x0;\n      }\nLAB_0017779c:\n      local_3c[0] = FUN_0016dee0();\n      local_3c[0] = FUN_0016dee0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    bVar3 = *local_24;\n    if (((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == local_24[1])) {\n      bVar3 = **(byte **)(iVar5 + 0xc);\n      bVar12 = bVar3 < 0x5f;\n      bVar15 = bVar3 == 0x5f;\n      pbVar9 = (byte *)0x1;\n      if (bVar15) {\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }\n    }\n    else {\nLAB_001778af:\n      bVar12 = false;\n      pbVar9 = (byte *)0x0;\n      bVar15 = true;\n    }\n    iVar5 = 3;\n    pbVar11 = (byte *)(unaff_EBP + 0xc1779);\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *local_24 < *pbVar11;\n      bVar15 = *local_24 == *pbVar11;\n      local_24 = local_24 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) != bVar12) goto LAB_001778cf;\n    uStack_30 = 0x1779bb;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_00177370();\n  }\n  else {\n    if (iVar8 == 0x32) {\n      iVar8 = local_28[2];\n      if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }\n      uStack_30 = 0x1779e0;\n      local_3c[0] = FUN_001774c0();\n      goto LAB_001778fb;\n    }\n    if (iVar8 != 0x33) {\n      return (undefined4 *)0x0;\n    }\n    if (**(char **)(iVar5 + 0xc) == '_') {\n      *(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;\n      uStack_30 = 0x177946;\n      local_3c[0] = FUN_00177dc0();\n      goto LAB_001778fb;\n    }\n    pbVar9 = (byte *)0x0;\nLAB_001778cf:\n    uStack_30 = 0x1778da;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_001774c0();\n  }\n  if (local_24 != (byte *)0x0) {\n    local_3c[0] = FUN_0016dee0();\n  }\nLAB_001778fb:\n  puVar6 = (undefined4 *)FUN_0016dee0();\n  return puVar6;\n}" (type_identifier "undefined4") (pointer_declarator "* FUN_001774c0(void)" (* "*") (function_declarator "FUN_001774c0(void)" (identifier "FUN_001774c0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")")))) (compound_statement "{\n  uint *puVar1;\n  char cVar2;\n  byte bVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  int iVar8;\n  byte *pbVar9;\n  int unaff_EBP;\n  char *pcVar10;\n  byte *pbVar11;\n  bool bVar12;\n  undefined1 uVar13;\n  bool bVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  byte bVar17;\n  int local_3c [3];\n  undefined4 uStack_30;\n  int *local_28;\n  byte *local_24;\n  undefined4 local_20;\n  \n  bVar17 = 0;\n  iVar5 = FUN_0004fb82();\n  pcVar10 = *(char **)(iVar5 + 0xc);\n  cVar2 = *pcVar10;\n  if (cVar2 == 'L') {\n    puVar6 = (undefined4 *)FUN_00177210();\n    return puVar6;\n  }\n  if (cVar2 == 'T') {\n    puVar6 = (undefined4 *)FUN_0016e210();\n    return puVar6;\n  }\n  if (cVar2 == 's') {\n    if (pcVar10[1] == 'r') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      local_3c[0] = iVar5;\n      FUN_00175280();\n      iVar8 = FUN_00175e60();\n      if (**(char **)(iVar5 + 0xc) == 'I') {\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }\n      local_3c[0] = iVar8;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x17759d;\n      FUN_001774c0();\n      local_3c[0] = 0;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }\n  else if (cVar2 == 'f') {\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }\n  }\n  else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }\n  uStack_30 = 0x177541;\n  local_28 = (int *)FUN_00175bc0();\n  if (local_28 == (int *)0x0) {\n    return (undefined4 *)0x0;\n  }\n  iVar8 = *local_28;\n  if (iVar8 == 0x31) {\n    puVar6 = (undefined4 *)local_28[2];\n    local_24 = (byte *)*puVar6;\n    puVar1 = (uint *)(iVar5 + 0x2c);\n    bVar12 = CARRY4(*puVar1,puVar6[2] - 2);\n    *puVar1 = *puVar1 + (puVar6[2] - 2);\n    bVar15 = *puVar1 == 0;\n    iVar8 = 3;\n    pbVar9 = local_24;\n    pbVar11 = (byte *)(unaff_EBP + 0xc19be);\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) == bVar12) {\n      local_3c[0] = iVar5;\n      local_3c[0] = FUN_00175280();\n      goto LAB_001778fb;\n    }\n    iVar8 = puVar6[3];\n    if (iVar8 != 1) {\n      if (iVar8 < 2) goto joined_r0x00177952;\n      if (iVar8 == 2) {\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }\n      if (iVar8 != 3) {\n        return (undefined4 *)0x0;\n      }\n      bVar12 = false;\n      bVar15 = local_24 == (byte *)0x0;\n      if (bVar15) {\n        return (undefined4 *)0x0;\n      }\n      iVar8 = 3;\n      pbVar9 = local_24;\n      pbVar11 = (byte *)(unaff_EBP + 0xc177f);\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar12 && !bVar15) == bVar12) {\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }\n      else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }\n      uStack_30 = 0x177ac4;\n      FUN_001774c0();\n      uStack_30 = 0x177acd;\n      local_3c[0] = FUN_001774c0();\n      if (local_3c[0] == 0) {\n        return (undefined4 *)0x0;\n      }\nLAB_0017779c:\n      local_3c[0] = FUN_0016dee0();\n      local_3c[0] = FUN_0016dee0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    bVar3 = *local_24;\n    if (((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == local_24[1])) {\n      bVar3 = **(byte **)(iVar5 + 0xc);\n      bVar12 = bVar3 < 0x5f;\n      bVar15 = bVar3 == 0x5f;\n      pbVar9 = (byte *)0x1;\n      if (bVar15) {\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }\n    }\n    else {\nLAB_001778af:\n      bVar12 = false;\n      pbVar9 = (byte *)0x0;\n      bVar15 = true;\n    }\n    iVar5 = 3;\n    pbVar11 = (byte *)(unaff_EBP + 0xc1779);\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *local_24 < *pbVar11;\n      bVar15 = *local_24 == *pbVar11;\n      local_24 = local_24 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) != bVar12) goto LAB_001778cf;\n    uStack_30 = 0x1779bb;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_00177370();\n  }\n  else {\n    if (iVar8 == 0x32) {\n      iVar8 = local_28[2];\n      if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }\n      uStack_30 = 0x1779e0;\n      local_3c[0] = FUN_001774c0();\n      goto LAB_001778fb;\n    }\n    if (iVar8 != 0x33) {\n      return (undefined4 *)0x0;\n    }\n    if (**(char **)(iVar5 + 0xc) == '_') {\n      *(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;\n      uStack_30 = 0x177946;\n      local_3c[0] = FUN_00177dc0();\n      goto LAB_001778fb;\n    }\n    pbVar9 = (byte *)0x0;\nLAB_001778cf:\n    uStack_30 = 0x1778da;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_001774c0();\n  }\n  if (local_24 != (byte *)0x0) {\n    local_3c[0] = FUN_0016dee0();\n  }\nLAB_001778fb:\n  puVar6 = (undefined4 *)FUN_0016dee0();\n  return puVar6;\n}" ({ "{") (declaration "uint *puVar1;" (type_identifier "uint") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "byte bVar3;" (type_identifier "byte") (identifier "bVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "int unaff_EBP;" (primitive_type "int") (identifier "unaff_EBP") (; ";")) (declaration "char *pcVar10;" (primitive_type "char") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "bool bVar12;" (primitive_type "bool") (identifier "bVar12") (; ";")) (declaration "undefined1 uVar13;" (type_identifier "undefined1") (identifier "uVar13") (; ";")) (declaration "bool bVar14;" (primitive_type "bool") (identifier "bVar14") (; ";")) (declaration "bool bVar15;" (primitive_type "bool") (identifier "bVar15") (; ";")) (declaration "undefined1 uVar16;" (type_identifier "undefined1") (identifier "uVar16") (; ";")) (declaration "byte bVar17;" (type_identifier "byte") (identifier "bVar17") (; ";")) (declaration "int local_3c [3];" (primitive_type "int") (array_declarator "local_3c [3]" (identifier "local_3c") ([ "[") (number_literal "3") (] "]")) (; ";")) (declaration "undefined4 uStack_30;" (type_identifier "undefined4") (identifier "uStack_30") (; ";")) (declaration "int *local_28;" (primitive_type "int") (pointer_declarator "*local_28" (* "*") (identifier "local_28")) (; ";")) (declaration "byte *local_24;" (type_identifier "byte") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" (identifier "bVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar5 = FUN_0004fb82();" (assignment_expression "iVar5 = FUN_0004fb82()" (identifier "iVar5") (= "=") (call_expression "FUN_0004fb82()" (identifier "FUN_0004fb82") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar10 = *(char **)(iVar5 + 0xc);" (assignment_expression "pcVar10 = *(char **)(iVar5 + 0xc)" (identifier "pcVar10") (= "=") (pointer_expression "*(char **)(iVar5 + 0xc)" (* "*") (cast_expression "(char **)(iVar5 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "cVar2 = *pcVar10;" (assignment_expression "cVar2 = *pcVar10" (identifier "cVar2") (= "=") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10"))) (; ";")) (if_statement "if (cVar2 == 'L') {\n    puVar6 = (undefined4 *)FUN_00177210();\n    return puVar6;\n  }" (if "if") (parenthesized_expression "(cVar2 == 'L')" (( "(") (binary_expression "cVar2 == 'L'" (identifier "cVar2") (== "==") (char_literal "'L'" (' "'") (character "L") (' "'"))) () ")")) (compound_statement "{\n    puVar6 = (undefined4 *)FUN_00177210();\n    return puVar6;\n  }" ({ "{") (expression_statement "puVar6 = (undefined4 *)FUN_00177210();" (assignment_expression "puVar6 = (undefined4 *)FUN_00177210()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)FUN_00177210()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00177210()" (identifier "FUN_00177210") (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return puVar6;" (return "return") (identifier "puVar6") (; ";")) (} "}"))) (if_statement "if (cVar2 == 'T') {\n    puVar6 = (undefined4 *)FUN_0016e210();\n    return puVar6;\n  }" (if "if") (parenthesized_expression "(cVar2 == 'T')" (( "(") (binary_expression "cVar2 == 'T'" (identifier "cVar2") (== "==") (char_literal "'T'" (' "'") (character "T") (' "'"))) () ")")) (compound_statement "{\n    puVar6 = (undefined4 *)FUN_0016e210();\n    return puVar6;\n  }" ({ "{") (expression_statement "puVar6 = (undefined4 *)FUN_0016e210();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016e210()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)FUN_0016e210()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0016e210()" (identifier "FUN_0016e210") (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return puVar6;" (return "return") (identifier "puVar6") (; ";")) (} "}"))) (if_statement "if (cVar2 == 's') {\n    if (pcVar10[1] == 'r') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      local_3c[0] = iVar5;\n      FUN_00175280();\n      iVar8 = FUN_00175e60();\n      if (**(char **)(iVar5 + 0xc) == 'I') {\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }\n      local_3c[0] = iVar8;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x17759d;\n      FUN_001774c0();\n      local_3c[0] = 0;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }\n  else if (cVar2 == 'f') {\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }\n  }\n  else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }" (if "if") (parenthesized_expression "(cVar2 == 's')" (( "(") (binary_expression "cVar2 == 's'" (identifier "cVar2") (== "==") (char_literal "'s'" (' "'") (character "s") (' "'"))) () ")")) (compound_statement "{\n    if (pcVar10[1] == 'r') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      local_3c[0] = iVar5;\n      FUN_00175280();\n      iVar8 = FUN_00175e60();\n      if (**(char **)(iVar5 + 0xc) == 'I') {\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }\n      local_3c[0] = iVar8;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x17759d;\n      FUN_001774c0();\n      local_3c[0] = 0;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }" ({ "{") (if_statement "if (pcVar10[1] == 'r') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      local_3c[0] = iVar5;\n      FUN_00175280();\n      iVar8 = FUN_00175e60();\n      if (**(char **)(iVar5 + 0xc) == 'I') {\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }\n      local_3c[0] = iVar8;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" (if "if") (parenthesized_expression "(pcVar10[1] == 'r')" (( "(") (binary_expression "pcVar10[1] == 'r'" (subscript_expression "pcVar10[1]" (identifier "pcVar10") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'r'" (' "'") (character "r") (' "'"))) () ")")) (compound_statement "{\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      local_3c[0] = iVar5;\n      FUN_00175280();\n      iVar8 = FUN_00175e60();\n      if (**(char **)(iVar5 + 0xc) == 'I') {\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }\n      local_3c[0] = iVar8;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" ({ "{") (expression_statement "*(char **)(iVar5 + 0xc) = pcVar10 + 2;" (assignment_expression "*(char **)(iVar5 + 0xc) = pcVar10 + 2" (pointer_expression "*(char **)(iVar5 + 0xc)" (* "*") (cast_expression "(char **)(iVar5 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pcVar10 + 2" (identifier "pcVar10") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "local_3c[0] = iVar5;" (assignment_expression "local_3c[0] = iVar5" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "FUN_00175280();" (call_expression "FUN_00175280()" (identifier "FUN_00175280") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar8 = FUN_00175e60();" (assignment_expression "iVar8 = FUN_00175e60()" (identifier "iVar8") (= "=") (call_expression "FUN_00175e60()" (identifier "FUN_00175e60") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (**(char **)(iVar5 + 0xc) == 'I') {\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }" (if "if") (parenthesized_expression "(**(char **)(iVar5 + 0xc) == 'I')" (( "(") (binary_expression "**(char **)(iVar5 + 0xc) == 'I'" (pointer_expression "**(char **)(iVar5 + 0xc)" (* "*") (pointer_expression "*(char **)(iVar5 + 0xc)" (* "*") (cast_expression "(char **)(iVar5 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")"))))) (== "==") (char_literal "'I'" (' "'") (character "I") (' "'"))) () ")")) (compound_statement "{\n        uStack_30 = 0x177887;\n        local_3c[0] = FUN_00177490();\n        iVar8 = FUN_0016dee0();\n      }" ({ "{") (expression_statement "uStack_30 = 0x177887;" (assignment_expression "uStack_30 = 0x177887" (identifier "uStack_30") (= "=") (number_literal "0x177887")) (; ";")) (expression_statement "local_3c[0] = FUN_00177490();" (assignment_expression "local_3c[0] = FUN_00177490()" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "FUN_00177490()" (identifier "FUN_00177490") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar8 = FUN_0016dee0();" (assignment_expression "iVar8 = FUN_0016dee0()" (identifier "iVar8") (= "=") (call_expression "FUN_0016dee0()" (identifier "FUN_0016dee0") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (expression_statement "local_3c[0] = iVar8;" (assignment_expression "local_3c[0] = iVar8" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "puVar6 = (undefined4 *)FUN_0016dee0();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016dee0()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)FUN_0016dee0()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0016dee0()" (identifier "FUN_0016dee0") (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return puVar6;" (return "return") (identifier "puVar6") (; ";")) (} "}"))) (if_statement "if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x17759d;\n      FUN_001774c0();\n      local_3c[0] = 0;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" (if "if") (parenthesized_expression "(pcVar10[1] == 'p')" (( "(") (binary_expression "pcVar10[1] == 'p'" (subscript_expression "pcVar10[1]" (identifier "pcVar10") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'p'" (' "'") (character "p") (' "'"))) () ")")) (compound_statement "{\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x17759d;\n      FUN_001774c0();\n      local_3c[0] = 0;\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" ({ "{") (expression_statement "*(char **)(iVar5 + 0xc) = pcVar10 + 2;" (assignment_expression "*(char **)(iVar5 + 0xc) = pcVar10 + 2" (pointer_expression "*(char **)(iVar5 + 0xc)" (* "*") (cast_expression "(char **)(iVar5 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pcVar10 + 2" (identifier "pcVar10") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uStack_30 = 0x17759d;" (assignment_expression "uStack_30 = 0x17759d" (identifier "uStack_30") (= "=") (number_literal "0x17759d")) (; ";")) (expression_statement "FUN_001774c0();" (call_expression "FUN_001774c0()" (identifier "FUN_001774c0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_3c[0] = 0;" (assignment_expression "local_3c[0] = 0" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar6 = (undefined4 *)FUN_0016dee0();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016dee0()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)FUN_0016dee0()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0016dee0()" (identifier "FUN_0016dee0") (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return puVar6;" (return "return") (identifier "puVar6") (; ";")) (} "}"))) (} "}")) (else_clause "else if (cVar2 == 'f') {\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }\n  }\n  else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }" (else "else") (if_statement "if (cVar2 == 'f') {\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }\n  }\n  else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }" (if "if") (parenthesized_expression "(cVar2 == 'f')" (( "(") (binary_expression "cVar2 == 'f'" (identifier "cVar2") (== "==") (char_literal "'f'" (' "'") (character "f") (' "'"))) () ")")) (compound_statement "{\n    if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }\n  }" ({ "{") (if_statement "if (pcVar10[1] == 'p') {\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }" (if "if") (parenthesized_expression "(pcVar10[1] == 'p')" (( "(") (binary_expression "pcVar10[1] == 'p'" (subscript_expression "pcVar10[1]" (identifier "pcVar10") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'p'" (' "'") (character "p") (' "'"))) () ")")) (compound_statement "{\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }\n      iVar4 = *(int *)(iVar5 + 0x14);\n      if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }\n      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));\n      puVar6[1] = 0;\n      *(int *)(iVar5 + 0x14) = iVar4 + 1;\n      *puVar6 = 6;\n      puVar6[2] = iVar8;\n      return puVar6;\n    }" ({ "{") (expression_statement "*(char **)(iVar5 + 0xc) = pcVar10 + 2;" (assignment_expression "*(char **)(iVar5 + 0xc) = pcVar10 + 2" (pointer_expression "*(char **)(iVar5 + 0xc)" (* "*") (cast_expression "(char **)(iVar5 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pcVar10 + 2" (identifier "pcVar10") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (pcVar10[2] == 'T') {\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }\n      else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }" (if "if") (parenthesized_expression "(pcVar10[2] == 'T')" (( "(") (binary_expression "pcVar10[2] == 'T'" (subscript_expression "pcVar10[2]" (identifier "pcVar10") ([ "[") (number_literal "2") (] "]")) (== "==") (char_literal "'T'" (' "'") (character "T") (' "'"))) () ")")) (compound_statement "{\n        iVar8 = 0;\n        *(char **)(iVar5 + 0xc) = pcVar10 + 3;\n      }" ({ "{") (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(char **)(iVar5 + 0xc) = pcVar10 + 3;" (assignment_expression "*(char **)(iVar5 + 0xc) = pcVar10 + 3" (pointer_expression "*(char **)(iVar5 + 0xc)" (* "*") (cast_expression "(char **)(iVar5 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pcVar10 + 3" (identifier "pcVar10") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (else_clause "else {\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }" (else "else") (compound_statement "{\n        uStack_30 = 0x1775d7;\n        uVar7 = FUN_0016e1d0();\n        iVar8 = uVar7 + 1;\n        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }\n      }" ({ "{") (expression_statement "uStack_30 = 0x1775d7;" (assignment_expression "uStack_30 = 0x1775d7" (identifier "uStack_30") (= "=") (number_literal "0x1775d7")) (; ";")) (expression_statement "uVar7 = FUN_0016e1d0();" (assignment_expression "uVar7 = FUN_0016e1d0()" (identifier "uVar7") (= "=") (call_expression "FUN_0016e1d0()" (identifier "FUN_0016e1d0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar8 = uVar7 + 1;" (assignment_expression "iVar8 = uVar7 + 1" (identifier "iVar8") (= "=") (binary_expression "uVar7 + 1" (identifier "uVar7") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((uVar7 & 0x7fffffff) == 0x7fffffff) {\n          return (undefined4 *)0x0;\n        }" (if "if") (parenthesized_expression "((uVar7 & 0x7fffffff) == 0x7fffffff)" (( "(") (binary_expression "(uVar7 & 0x7fffffff) == 0x7fffffff" (parenthesized_expression "(uVar7 & 0x7fffffff)" (( "(") (binary_expression "uVar7 & 0x7fffffff" (identifier "uVar7") (& "&") (number_literal "0x7fffffff")) () ")")) (== "==") (number_literal "0x7fffffff")) () ")")) (compound_statement "{\n          return (undefined4 *)0x0;\n        }" ({ "{") (return_statement "return (undefined4 *)0x0;" (return "return") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar4 = *(int *)(iVar5 + 0x14);" (assignment_expression "iVar4 = *(int *)(iVar5 + 0x14)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar5 + 0x14)" (* "*") (cast_expression "(int *)(iVar5 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar5 + 0x18) <= iVar4) {\n        return (undefined4 *)0x0;\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar5 + 0x18) <= iVar4)" (( "(") (binary_expression "*(int *)(iVar5 + 0x18) <= iVar4" (pointer_expression "*(int *)(iVar5 + 0x18)" (* "*") (cast_expression "(int *)(iVar5 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x18)" (( "(") (binary_expression "iVar5 + 0x18" (identifier "iVar5") (+ "+") (number_literal "0x18")) () ")")))) (<= "<=") (identifier "iVar4")) () ")")) (compound_statement "{\n        return (undefined4 *)0x0;\n      }" ({ "{") (return_statement "return (undefined4 *)0x0;" (return "return") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));" (assignment_expression "puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10))" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 * 0x10 + *(int *)(iVar5 + 0x10))" (( "(") (binary_expression "iVar4 * 0x10 + *(int *)(iVar5 + 0x10)" (binary_expression "iVar4 * 0x10" (identifier "iVar4") (* "*") (number_literal "0x10")) (+ "+") (pointer_expression "*(int *)(iVar5 + 0x10)" (* "*") (cast_expression "(int *)(iVar5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")"))))) () ")")))) (; ";")) (expression_statement "puVar6[1] = 0;" (assignment_expression "puVar6[1] = 0" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(iVar5 + 0x14) = iVar4 + 1;" (assignment_expression "*(int *)(iVar5 + 0x14) = iVar4 + 1" (pointer_expression "*(int *)(iVar5 + 0x14)" (* "*") (cast_expression "(int *)(iVar5 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar6 = 6;" (assignment_expression "*puVar6 = 6" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (number_literal "6")) (; ";")) (expression_statement "puVar6[2] = iVar8;" (assignment_expression "puVar6[2] = iVar8" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar8")) (; ";")) (return_statement "return puVar6;" (return "return") (identifier "puVar6") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }" (else "else") (compound_statement "{\n    if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n  }" ({ "{") (if_statement "if ((byte)(cVar2 - 0x30U) < 10) {\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" (if "if") (parenthesized_expression "((byte)(cVar2 - 0x30U) < 10)" (( "(") (binary_expression "(byte)(cVar2 - 0x30U) < 10" (call_expression "(byte)(cVar2 - 0x30U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(cVar2 - 0x30U)" (( "(") (binary_expression "cVar2 - 0x30U" (identifier "cVar2") (- "-") (number_literal "0x30U")) () ")"))) (< "<") (number_literal "10")) () ")")) (compound_statement "{\nLAB_00177505:\n      uStack_30 = 0x17750c;\n      puVar6 = (undefined4 *)FUN_00175e60();\n      if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }\n      if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }\n      uStack_30 = 0x1777e7;\n      local_3c[0] = FUN_00177490();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" ({ "{") (labeled_statement "LAB_00177505:\n      uStack_30 = 0x17750c;" (statement_identifier "LAB_00177505") (: ":") (expression_statement "uStack_30 = 0x17750c;" (assignment_expression "uStack_30 = 0x17750c" (identifier "uStack_30") (= "=") (number_literal "0x17750c")) (; ";"))) (expression_statement "puVar6 = (undefined4 *)FUN_00175e60();" (assignment_expression "puVar6 = (undefined4 *)FUN_00175e60()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)FUN_00175e60()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00175e60()" (identifier "FUN_00175e60") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (puVar6 == (undefined4 *)0x0) {\n        return (undefined4 *)0x0;\n      }" (if "if") (parenthesized_expression "(puVar6 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar6 == (undefined4 *)0x0" (identifier "puVar6") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        return (undefined4 *)0x0;\n      }" ({ "{") (return_statement "return (undefined4 *)0x0;" (return "return") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (if_statement "if (**(char **)(iVar5 + 0xc) != 'I') {\n        return puVar6;\n      }" (if "if") (parenthesized_expression "(**(char **)(iVar5 + 0xc) != 'I')" (( "(") (binary_expression "**(char **)(iVar5 + 0xc) != 'I'" (pointer_expression "**(char **)(iVar5 + 0xc)" (* "*") (pointer_expression "*(char **)(iVar5 + 0xc)" (* "*") (cast_expression "(char **)(iVar5 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")"))))) (!= "!=") (char_literal "'I'" (' "'") (character "I") (' "'"))) () ")")) (compound_statement "{\n        return puVar6;\n      }" ({ "{") (return_statement "return puVar6;" (return "return") (identifier "puVar6") (; ";")) (} "}"))) (expression_statement "uStack_30 = 0x1777e7;" (assignment_expression "uStack_30 = 0x1777e7" (identifier "uStack_30") (= "=") (number_literal "0x1777e7")) (; ";")) (expression_statement "local_3c[0] = FUN_00177490();" (assignment_expression "local_3c[0] = FUN_00177490()" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "FUN_00177490()" (identifier "FUN_00177490") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar6 = (undefined4 *)FUN_0016dee0();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016dee0()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)FUN_0016dee0()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0016dee0()" (identifier "FUN_0016dee0") (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return puVar6;" (return "return") (identifier "puVar6") (; ";")) (} "}"))) (if_statement "if (cVar2 == 'o') {\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }\n    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" (if "if") (parenthesized_expression "(cVar2 == 'o')" (( "(") (binary_expression "cVar2 == 'o'" (identifier "cVar2") (== "==") (char_literal "'o'" (' "'") (character "o") (' "'"))) () ")")) (compound_statement "{\n      if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }\n    }" ({ "{") (if_statement "if (pcVar10[1] == 'n') {\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }" (if "if") (parenthesized_expression "(pcVar10[1] == 'n')" (( "(") (binary_expression "pcVar10[1] == 'n'" (subscript_expression "pcVar10[1]" (identifier "pcVar10") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'n'" (' "'") (character "n") (' "'"))) () ")")) (compound_statement "{\n        *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n        goto LAB_00177505;\n      }" ({ "{") (expression_statement "*(char **)(iVar5 + 0xc) = pcVar10 + 2;" (assignment_expression "*(char **)(iVar5 + 0xc) = pcVar10 + 2" (pointer_expression "*(char **)(iVar5 + 0xc)" (* "*") (cast_expression "(char **)(iVar5 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pcVar10 + 2" (identifier "pcVar10") (+ "+") (number_literal "2"))) (; ";")) (goto_statement "goto LAB_00177505;" (goto "goto") (statement_identifier "LAB_00177505") (; ";")) (} "}"))) (} "}")) (else_clause "else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" (else "else") (if_statement "if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" (if "if") (parenthesized_expression "(((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l'))" (( "(") (binary_expression "((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')" (parenthesized_expression "((cVar2 == 'i') || (cVar2 == 't'))" (( "(") (binary_expression "(cVar2 == 'i') || (cVar2 == 't')" (parenthesized_expression "(cVar2 == 'i')" (( "(") (binary_expression "cVar2 == 'i'" (identifier "cVar2") (== "==") (char_literal "'i'" (' "'") (character "i") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(cVar2 == 't')" (( "(") (binary_expression "cVar2 == 't'" (identifier "cVar2") (== "==") (char_literal "'t'" (' "'") (character "t") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar10[1] == 'l')" (( "(") (binary_expression "pcVar10[1] == 'l'" (subscript_expression "pcVar10[1]" (identifier "pcVar10") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'l'" (' "'") (character "l") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }\n      *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n      uStack_30 = 0x177862;\n      local_3c[0] = FUN_00177dc0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" ({ "{") (if_statement "if (cVar2 == 't') {\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }" (if "if") (parenthesized_expression "(cVar2 == 't')" (( "(") (binary_expression "cVar2 == 't'" (identifier "cVar2") (== "==") (char_literal "'t'" (' "'") (character "t") (' "'"))) () ")")) (compound_statement "{\n        local_3c[0] = iVar5;\n        FUN_00175280();\n        pcVar10 = *(char **)(iVar5 + 0xc);\n        if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }\n      }" ({ "{") (expression_statement "local_3c[0] = iVar5;" (assignment_expression "local_3c[0] = iVar5" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "FUN_00175280();" (call_expression "FUN_00175280()" (identifier "FUN_00175280") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar10 = *(char **)(iVar5 + 0xc);" (assignment_expression "pcVar10 = *(char **)(iVar5 + 0xc)" (identifier "pcVar10") (= "=") (pointer_expression "*(char **)(iVar5 + 0xc)" (* "*") (cast_expression "(char **)(iVar5 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pcVar10[1] == '\0') {\n          return (undefined4 *)0x0;\n        }" (if "if") (parenthesized_expression "(pcVar10[1] == '\0')" (( "(") (binary_expression "pcVar10[1] == '\0'" (subscript_expression "pcVar10[1]" (identifier "pcVar10") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          return (undefined4 *)0x0;\n        }" ({ "{") (return_statement "return (undefined4 *)0x0;" (return "return") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (} "}"))) (expression_statement "*(char **)(iVar5 + 0xc) = pcVar10 + 2;" (assignment_expression "*(char **)(iVar5 + 0xc) = pcVar10 + 2" (pointer_expression "*(char **)(iVar5 + 0xc)" (* "*") (cast_expression "(char **)(iVar5 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pcVar10 + 2" (identifier "pcVar10") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uStack_30 = 0x177862;" (assignment_expression "uStack_30 = 0x177862" (identifier "uStack_30") (= "=") (number_literal "0x177862")) (; ";")) (expression_statement "local_3c[0] = FUN_00177dc0();" (assignment_expression "local_3c[0] = FUN_00177dc0()" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "FUN_00177dc0()" (identifier "FUN_00177dc0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar6 = (undefined4 *)FUN_0016dee0();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016dee0()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)FUN_0016dee0()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0016dee0()" (identifier "FUN_0016dee0") (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return puVar6;" (return "return") (identifier "puVar6") (; ";")) (} "}"))))) (} "}")))))) (expression_statement "uStack_30 = 0x177541;" (assignment_expression "uStack_30 = 0x177541" (identifier "uStack_30") (= "=") (number_literal "0x177541")) (; ";")) (expression_statement "local_28 = (int *)FUN_00175bc0();" (assignment_expression "local_28 = (int *)FUN_00175bc0()" (identifier "local_28") (= "=") (cast_expression "(int *)FUN_00175bc0()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00175bc0()" (identifier "FUN_00175bc0") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (local_28 == (int *)0x0) {\n    return (undefined4 *)0x0;\n  }" (if "if") (parenthesized_expression "(local_28 == (int *)0x0)" (( "(") (binary_expression "local_28 == (int *)0x0" (identifier "local_28") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return (undefined4 *)0x0;\n  }" ({ "{") (return_statement "return (undefined4 *)0x0;" (return "return") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "iVar8 = *local_28;" (assignment_expression "iVar8 = *local_28" (identifier "iVar8") (= "=") (pointer_expression "*local_28" (* "*") (identifier "local_28"))) (; ";")) (if_statement "if (iVar8 == 0x31) {\n    puVar6 = (undefined4 *)local_28[2];\n    local_24 = (byte *)*puVar6;\n    puVar1 = (uint *)(iVar5 + 0x2c);\n    bVar12 = CARRY4(*puVar1,puVar6[2] - 2);\n    *puVar1 = *puVar1 + (puVar6[2] - 2);\n    bVar15 = *puVar1 == 0;\n    iVar8 = 3;\n    pbVar9 = local_24;\n    pbVar11 = (byte *)(unaff_EBP + 0xc19be);\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) == bVar12) {\n      local_3c[0] = iVar5;\n      local_3c[0] = FUN_00175280();\n      goto LAB_001778fb;\n    }\n    iVar8 = puVar6[3];\n    if (iVar8 != 1) {\n      if (iVar8 < 2) goto joined_r0x00177952;\n      if (iVar8 == 2) {\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }\n      if (iVar8 != 3) {\n        return (undefined4 *)0x0;\n      }\n      bVar12 = false;\n      bVar15 = local_24 == (byte *)0x0;\n      if (bVar15) {\n        return (undefined4 *)0x0;\n      }\n      iVar8 = 3;\n      pbVar9 = local_24;\n      pbVar11 = (byte *)(unaff_EBP + 0xc177f);\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar12 && !bVar15) == bVar12) {\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }\n      else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }\n      uStack_30 = 0x177ac4;\n      FUN_001774c0();\n      uStack_30 = 0x177acd;\n      local_3c[0] = FUN_001774c0();\n      if (local_3c[0] == 0) {\n        return (undefined4 *)0x0;\n      }\nLAB_0017779c:\n      local_3c[0] = FUN_0016dee0();\n      local_3c[0] = FUN_0016dee0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    bVar3 = *local_24;\n    if (((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == local_24[1])) {\n      bVar3 = **(byte **)(iVar5 + 0xc);\n      bVar12 = bVar3 < 0x5f;\n      bVar15 = bVar3 == 0x5f;\n      pbVar9 = (byte *)0x1;\n      if (bVar15) {\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }\n    }\n    else {\nLAB_001778af:\n      bVar12 = false;\n      pbVar9 = (byte *)0x0;\n      bVar15 = true;\n    }\n    iVar5 = 3;\n    pbVar11 = (byte *)(unaff_EBP + 0xc1779);\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *local_24 < *pbVar11;\n      bVar15 = *local_24 == *pbVar11;\n      local_24 = local_24 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) != bVar12) goto LAB_001778cf;\n    uStack_30 = 0x1779bb;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_00177370();\n  }\n  else {\n    if (iVar8 == 0x32) {\n      iVar8 = local_28[2];\n      if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }\n      uStack_30 = 0x1779e0;\n      local_3c[0] = FUN_001774c0();\n      goto LAB_001778fb;\n    }\n    if (iVar8 != 0x33) {\n      return (undefined4 *)0x0;\n    }\n    if (**(char **)(iVar5 + 0xc) == '_') {\n      *(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;\n      uStack_30 = 0x177946;\n      local_3c[0] = FUN_00177dc0();\n      goto LAB_001778fb;\n    }\n    pbVar9 = (byte *)0x0;\nLAB_001778cf:\n    uStack_30 = 0x1778da;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_001774c0();\n  }" (if "if") (parenthesized_expression "(iVar8 == 0x31)" (( "(") (binary_expression "iVar8 == 0x31" (identifier "iVar8") (== "==") (number_literal "0x31")) () ")")) (compound_statement "{\n    puVar6 = (undefined4 *)local_28[2];\n    local_24 = (byte *)*puVar6;\n    puVar1 = (uint *)(iVar5 + 0x2c);\n    bVar12 = CARRY4(*puVar1,puVar6[2] - 2);\n    *puVar1 = *puVar1 + (puVar6[2] - 2);\n    bVar15 = *puVar1 == 0;\n    iVar8 = 3;\n    pbVar9 = local_24;\n    pbVar11 = (byte *)(unaff_EBP + 0xc19be);\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) == bVar12) {\n      local_3c[0] = iVar5;\n      local_3c[0] = FUN_00175280();\n      goto LAB_001778fb;\n    }\n    iVar8 = puVar6[3];\n    if (iVar8 != 1) {\n      if (iVar8 < 2) goto joined_r0x00177952;\n      if (iVar8 == 2) {\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }\n      if (iVar8 != 3) {\n        return (undefined4 *)0x0;\n      }\n      bVar12 = false;\n      bVar15 = local_24 == (byte *)0x0;\n      if (bVar15) {\n        return (undefined4 *)0x0;\n      }\n      iVar8 = 3;\n      pbVar9 = local_24;\n      pbVar11 = (byte *)(unaff_EBP + 0xc177f);\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar12 && !bVar15) == bVar12) {\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }\n      else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }\n      uStack_30 = 0x177ac4;\n      FUN_001774c0();\n      uStack_30 = 0x177acd;\n      local_3c[0] = FUN_001774c0();\n      if (local_3c[0] == 0) {\n        return (undefined4 *)0x0;\n      }\nLAB_0017779c:\n      local_3c[0] = FUN_0016dee0();\n      local_3c[0] = FUN_0016dee0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }\n    bVar3 = *local_24;\n    if (((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == local_24[1])) {\n      bVar3 = **(byte **)(iVar5 + 0xc);\n      bVar12 = bVar3 < 0x5f;\n      bVar15 = bVar3 == 0x5f;\n      pbVar9 = (byte *)0x1;\n      if (bVar15) {\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }\n    }\n    else {\nLAB_001778af:\n      bVar12 = false;\n      pbVar9 = (byte *)0x0;\n      bVar15 = true;\n    }\n    iVar5 = 3;\n    pbVar11 = (byte *)(unaff_EBP + 0xc1779);\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *local_24 < *pbVar11;\n      bVar15 = *local_24 == *pbVar11;\n      local_24 = local_24 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar12 && !bVar15) != bVar12) goto LAB_001778cf;\n    uStack_30 = 0x1779bb;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_00177370();\n  }" ({ "{") (expression_statement "puVar6 = (undefined4 *)local_28[2];" (assignment_expression "puVar6 = (undefined4 *)local_28[2]" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)local_28[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_28[2]" (identifier "local_28") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "local_24 = (byte *)*puVar6;" (assignment_expression "local_24 = (byte *)*puVar6" (identifier "local_24") (= "=") (cast_expression "(byte *)*puVar6" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")))) (; ";")) (expression_statement "puVar1 = (uint *)(iVar5 + 0x2c);" (assignment_expression "puVar1 = (uint *)(iVar5 + 0x2c)" (identifier "puVar1") (= "=") (cast_expression "(uint *)(iVar5 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x2c)" (( "(") (binary_expression "iVar5 + 0x2c" (identifier "iVar5") (+ "+") (number_literal "0x2c")) () ")")))) (; ";")) (expression_statement "bVar12 = CARRY4(*puVar1,puVar6[2] - 2);" (assignment_expression "bVar12 = CARRY4(*puVar1,puVar6[2] - 2)" (identifier "bVar12") (= "=") (call_expression "CARRY4(*puVar1,puVar6[2] - 2)" (identifier "CARRY4") (argument_list "(*puVar1,puVar6[2] - 2)" (( "(") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (, ",") (binary_expression "puVar6[2] - 2" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (- "-") (number_literal "2")) () ")")))) (; ";")) (expression_statement "*puVar1 = *puVar1 + (puVar6[2] - 2);" (assignment_expression "*puVar1 = *puVar1 + (puVar6[2] - 2)" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (binary_expression "*puVar1 + (puVar6[2] - 2)" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (+ "+") (parenthesized_expression "(puVar6[2] - 2)" (( "(") (binary_expression "puVar6[2] - 2" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (- "-") (number_literal "2")) () ")")))) (; ";")) (expression_statement "bVar15 = *puVar1 == 0;" (assignment_expression "bVar15 = *puVar1 == 0" (identifier "bVar15") (= "=") (binary_expression "*puVar1 == 0" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (== "==") (number_literal "0"))) (; ";")) (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" (identifier "iVar8") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar9 = local_24;" (assignment_expression "pbVar9 = local_24" (identifier "pbVar9") (= "=") (identifier "local_24")) (; ";")) (expression_statement "pbVar11 = (byte *)(unaff_EBP + 0xc19be);" (assignment_expression "pbVar11 = (byte *)(unaff_EBP + 0xc19be)" (identifier "pbVar11") (= "=") (cast_expression "(byte *)(unaff_EBP + 0xc19be)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0xc19be)" (( "(") (binary_expression "unaff_EBP + 0xc19be" (identifier "unaff_EBP") (+ "+") (number_literal "0xc19be")) () ")")))) (; ";")) (do_statement "do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);" (do "do") (compound_statement "{\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar9 < *pbVar11;\n      bVar15 = *pbVar9 == *pbVar11;\n      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar8 == 0) break;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar12 = *pbVar9 < *pbVar11;" (assignment_expression "bVar12 = *pbVar9 < *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar15 = *pbVar9 == *pbVar11;" (assignment_expression "bVar15 = *pbVar9 == *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (if_statement "if ((!bVar12 && !bVar15) == bVar12) {\n      local_3c[0] = iVar5;\n      local_3c[0] = FUN_00175280();\n      goto LAB_001778fb;\n    }" (if "if") (parenthesized_expression "((!bVar12 && !bVar15) == bVar12)" (( "(") (binary_expression "(!bVar12 && !bVar15) == bVar12" (parenthesized_expression "(!bVar12 && !bVar15)" (( "(") (binary_expression "!bVar12 && !bVar15" (unary_expression "!bVar12" (! "!") (identifier "bVar12")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar12")) () ")")) (compound_statement "{\n      local_3c[0] = iVar5;\n      local_3c[0] = FUN_00175280();\n      goto LAB_001778fb;\n    }" ({ "{") (expression_statement "local_3c[0] = iVar5;" (assignment_expression "local_3c[0] = iVar5" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "local_3c[0] = FUN_00175280();" (assignment_expression "local_3c[0] = FUN_00175280()" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "FUN_00175280()" (identifier "FUN_00175280") (argument_list "()" (( "(") () ")")))) (; ";")) (goto_statement "goto LAB_001778fb;" (goto "goto") (statement_identifier "LAB_001778fb") (; ";")) (} "}"))) (expression_statement "iVar8 = puVar6[3];" (assignment_expression "iVar8 = puVar6[3]" (identifier "iVar8") (= "=") (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (iVar8 != 1) {\n      if (iVar8 < 2) goto joined_r0x00177952;\n      if (iVar8 == 2) {\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }\n      if (iVar8 != 3) {\n        return (undefined4 *)0x0;\n      }\n      bVar12 = false;\n      bVar15 = local_24 == (byte *)0x0;\n      if (bVar15) {\n        return (undefined4 *)0x0;\n      }\n      iVar8 = 3;\n      pbVar9 = local_24;\n      pbVar11 = (byte *)(unaff_EBP + 0xc177f);\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar12 && !bVar15) == bVar12) {\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }\n      else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }\n      uStack_30 = 0x177ac4;\n      FUN_001774c0();\n      uStack_30 = 0x177acd;\n      local_3c[0] = FUN_001774c0();\n      if (local_3c[0] == 0) {\n        return (undefined4 *)0x0;\n      }\nLAB_0017779c:\n      local_3c[0] = FUN_0016dee0();\n      local_3c[0] = FUN_0016dee0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" (if "if") (parenthesized_expression "(iVar8 != 1)" (( "(") (binary_expression "iVar8 != 1" (identifier "iVar8") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n      if (iVar8 < 2) goto joined_r0x00177952;\n      if (iVar8 == 2) {\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }\n      if (iVar8 != 3) {\n        return (undefined4 *)0x0;\n      }\n      bVar12 = false;\n      bVar15 = local_24 == (byte *)0x0;\n      if (bVar15) {\n        return (undefined4 *)0x0;\n      }\n      iVar8 = 3;\n      pbVar9 = local_24;\n      pbVar11 = (byte *)(unaff_EBP + 0xc177f);\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar12 && !bVar15) == bVar12) {\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }\n      else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }\n      uStack_30 = 0x177ac4;\n      FUN_001774c0();\n      uStack_30 = 0x177acd;\n      local_3c[0] = FUN_001774c0();\n      if (local_3c[0] == 0) {\n        return (undefined4 *)0x0;\n      }\nLAB_0017779c:\n      local_3c[0] = FUN_0016dee0();\n      local_3c[0] = FUN_0016dee0();\n      puVar6 = (undefined4 *)FUN_0016dee0();\n      return puVar6;\n    }" ({ "{") (if_statement "if (iVar8 < 2) goto joined_r0x00177952;" (if "if") (parenthesized_expression "(iVar8 < 2)" (( "(") (binary_expression "iVar8 < 2" (identifier "iVar8") (< "<") (number_literal "2")) () ")")) (goto_statement "goto joined_r0x00177952;" (goto "goto") (statement_identifier "joined_r0x00177952") (; ";"))) (if_statement "if (iVar8 == 2) {\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }" (if "if") (parenthesized_expression "(iVar8 == 2)" (( "(") (binary_expression "iVar8 == 2" (identifier "iVar8") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }\n        if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }\n        iVar8 = 3;\n        pbVar9 = local_24;\n        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);\n        bVar12 = false;\n        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;\n        if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }\nLAB_00177a83:\n        local_3c[0] = iVar8;\n        local_3c[0] = FUN_0016dee0();\n        puVar6 = (undefined4 *)FUN_0016dee0();\n        return puVar6;\n      }" ({ "{") (if_statement "if (local_24 == (byte *)0x0) {\n          return (undefined4 *)0x0;\n        }" (if "if") (parenthesized_expression "(local_24 == (byte *)0x0)" (( "(") (binary_expression "local_24 == (byte *)0x0" (identifier "local_24") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          return (undefined4 *)0x0;\n        }" ({ "{") (return_statement "return (undefined4 *)0x0;" (return "return") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (if_statement "if ((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }\n        else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }" (if "if") (parenthesized_expression "((((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2))))" (( "(") (binary_expression "(((char *)*puVar6)[1] == 'c') &&\n           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))" (parenthesized_expression "(((char *)*puVar6)[1] == 'c')" (( "(") (binary_expression "((char *)*puVar6)[1] == 'c'" (subscript_expression "((char *)*puVar6)[1]" (parenthesized_expression "((char *)*puVar6)" (( "(") (cast_expression "(char *)*puVar6" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) () ")")) ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'c'" (' "'") (character "c") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))" (( "(") (parenthesized_expression "(cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2))" (( "(") (comma_expression "cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)" (assignment_expression "cVar2 = *(char *)*puVar6" (identifier "cVar2") (= "=") (pointer_expression "*(char *)*puVar6" (* "*") (cast_expression "(char *)*puVar6" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))))) (, ",") (binary_expression "(byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)" (binary_expression "(byte)(cVar2 + 0x9dU) < 2" (call_expression "(byte)(cVar2 + 0x9dU)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(cVar2 + 0x9dU)" (( "(") (binary_expression "cVar2 + 0x9dU" (identifier "cVar2") (+ "+") (number_literal "0x9dU")) () ")"))) (< "<") (number_literal "2")) (|| "||") (parenthesized_expression "((byte)(cVar2 + 0x8eU) < 2)" (( "(") (binary_expression "(byte)(cVar2 + 0x8eU) < 2" (call_expression "(byte)(cVar2 + 0x8eU)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(cVar2 + 0x8eU)" (( "(") (binary_expression "cVar2 + 0x8eU" (identifier "cVar2") (+ "+") (number_literal "0x8eU")) () ")"))) (< "<") (number_literal "2")) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n          local_3c[0] = iVar5;\n          local_20 = FUN_00175280();\n          uVar13 = (undefined1 *)0xffffffef < local_3c;\n          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;\n        }" ({ "{") (expression_statement "local_3c[0] = iVar5;" (assignment_expression "local_3c[0] = iVar5" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "local_20 = FUN_00175280();" (assignment_expression "local_20 = FUN_00175280()" (identifier "local_20") (= "=") (call_expression "FUN_00175280()" (identifier "FUN_00175280") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar13 = (undefined1 *)0xffffffef < local_3c;" (assignment_expression "uVar13 = (undefined1 *)0xffffffef < local_3c" (identifier "uVar13") (= "=") (binary_expression "(undefined1 *)0xffffffef < local_3c" (cast_expression "(undefined1 *)0xffffffef" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffef")) (< "<") (identifier "local_3c"))) (; ";")) (expression_statement "uVar16 = &stack0x00000000 == (undefined1 *)0x2c;" (assignment_expression "uVar16 = &stack0x00000000 == (undefined1 *)0x2c" (identifier "uVar16") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0x2c" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0x2c" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2c")))) (; ";")) (} "}")) (else_clause "else {\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }" (else "else") (compound_statement "{\n          uVar13 = *local_24 < 0x66;\n          uVar16 = *local_24 == 0x66;\n          if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }\n        }" ({ "{") (expression_statement "uVar13 = *local_24 < 0x66;" (assignment_expression "uVar13 = *local_24 < 0x66" (identifier "uVar13") (= "=") (binary_expression "*local_24 < 0x66" (pointer_expression "*local_24" (* "*") (identifier "local_24")) (< "<") (number_literal "0x66"))) (; ";")) (expression_statement "uVar16 = *local_24 == 0x66;" (assignment_expression "uVar16 = *local_24 == 0x66" (identifier "uVar16") (= "=") (binary_expression "*local_24 == 0x66" (pointer_expression "*local_24" (* "*") (identifier "local_24")) (== "==") (number_literal "0x66"))) (; ";")) (if_statement "if ((bool)uVar16) {\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }\n          else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }" (if "if") (parenthesized_expression "((bool)uVar16)" (( "(") (cast_expression "(bool)uVar16" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar16")) () ")")) (compound_statement "{\n            uStack_30 = 0x177b21;\n            local_20 = FUN_00175bc0();\n          }" ({ "{") (expression_statement "uStack_30 = 0x177b21;" (assignment_expression "uStack_30 = 0x177b21" (identifier "uStack_30") (= "=") (number_literal "0x177b21")) (; ";")) (expression_statement "local_20 = FUN_00175bc0();" (assignment_expression "local_20 = FUN_00175bc0()" (identifier "local_20") (= "=") (call_expression "FUN_00175bc0()" (identifier "FUN_00175bc0") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }" (else "else") (compound_statement "{\n            uStack_30 = 0x177a14;\n            local_20 = FUN_001774c0();\n          }" ({ "{") (expression_statement "uStack_30 = 0x177a14;" (assignment_expression "uStack_30 = 0x177a14" (identifier "uStack_30") (= "=") (number_literal "0x177a14")) (; ";")) (expression_statement "local_20 = FUN_001774c0();" (assignment_expression "local_20 = FUN_001774c0()" (identifier "local_20") (= "=") (call_expression "FUN_001774c0()" (identifier "FUN_001774c0") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (} "}")))) (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" (identifier "iVar8") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar9 = local_24;" (assignment_expression "pbVar9 = local_24" (identifier "pbVar9") (= "=") (identifier "local_24")) (; ";")) (expression_statement "pbVar11 = (byte *)(unaff_EBP + 0xc05f2);" (assignment_expression "pbVar11 = (byte *)(unaff_EBP + 0xc05f2)" (identifier "pbVar11") (= "=") (cast_expression "(byte *)(unaff_EBP + 0xc05f2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0xc05f2)" (( "(") (binary_expression "unaff_EBP + 0xc05f2" (identifier "unaff_EBP") (+ "+") (number_literal "0xc05f2")) () ")")))) (; ";")) (do_statement "do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        } while ((bool)uVar16);" (do "do") (compound_statement "{\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          uVar13 = *pbVar9 < *pbVar11;\n          uVar16 = *pbVar9 == *pbVar11;\n          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n        }" ({ "{") (if_statement "if (iVar8 == 0) break;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar13 = *pbVar9 < *pbVar11;" (assignment_expression "uVar13 = *pbVar9 < *pbVar11" (identifier "uVar13") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "uVar16 = *pbVar9 == *pbVar11;" (assignment_expression "uVar16 = *pbVar9 == *pbVar11" (identifier "uVar16") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar16)" (( "(") (cast_expression "(bool)uVar16" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar16")) () ")")) (; ";")) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" (identifier "bVar12") (= "=") (false "false")) (; ";")) (expression_statement "bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;" (assignment_expression "bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13" (identifier "bVar15") (= "=") (binary_expression "(!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13" (parenthesized_expression "(!(bool)uVar13 && !(bool)uVar16)" (( "(") (binary_expression "!(bool)uVar13 && !(bool)uVar16" (unary_expression "!(bool)uVar13" (! "!") (cast_expression "(bool)uVar13" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar13"))) (&& "&&") (unary_expression "!(bool)uVar16" (! "!") (cast_expression "(bool)uVar16" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar16")))) () ")")) (== "==") (cast_expression "(bool)uVar13" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar13")))) (; ";")) (if_statement "if (bVar15) {\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }\n        else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\n          uStack_30 = 0x177b13;\n          iVar8 = FUN_00177dc0();\n        }" ({ "{") (expression_statement "uStack_30 = 0x177b13;" (assignment_expression "uStack_30 = 0x177b13" (identifier "uStack_30") (= "=") (number_literal "0x177b13")) (; ";")) (expression_statement "iVar8 = FUN_00177dc0();" (assignment_expression "iVar8 = FUN_00177dc0()" (identifier "iVar8") (= "=") (call_expression "FUN_00177dc0()" (identifier "FUN_00177dc0") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }" (else "else") (compound_statement "{\n          iVar8 = 3;\n          pbVar9 = local_24;\n          pbVar11 = (byte *)(unaff_EBP + 0xc0250);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);\n          bVar14 = false;\n          bVar12 = (!bVar12 && !bVar15) == bVar12;\n          if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }\n          uStack_30 = 0x177a75;\n          iVar8 = FUN_00175e60();\n          if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }\n        }" ({ "{") (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" (identifier "iVar8") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar9 = local_24;" (assignment_expression "pbVar9 = local_24" (identifier "pbVar9") (= "=") (identifier "local_24")) (; ";")) (expression_statement "pbVar11 = (byte *)(unaff_EBP + 0xc0250);" (assignment_expression "pbVar11 = (byte *)(unaff_EBP + 0xc0250)" (identifier "pbVar11") (= "=") (cast_expression "(byte *)(unaff_EBP + 0xc0250)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0xc0250)" (( "(") (binary_expression "unaff_EBP + 0xc0250" (identifier "unaff_EBP") (+ "+") (number_literal "0xc0250")) () ")")))) (; ";")) (do_statement "do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          } while (bVar15);" (do "do") (compound_statement "{\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar12 = *pbVar9 < *pbVar11;\n            bVar15 = *pbVar9 == *pbVar11;\n            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar8 == 0) break;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar12 = *pbVar9 < *pbVar11;" (assignment_expression "bVar12 = *pbVar9 < *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar15 = *pbVar9 == *pbVar11;" (assignment_expression "bVar15 = *pbVar9 == *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" (identifier "bVar14") (= "=") (false "false")) (; ";")) (expression_statement "bVar12 = (!bVar12 && !bVar15) == bVar12;" (assignment_expression "bVar12 = (!bVar12 && !bVar15) == bVar12" (identifier "bVar12") (= "=") (binary_expression "(!bVar12 && !bVar15) == bVar12" (parenthesized_expression "(!bVar12 && !bVar15)" (( "(") (binary_expression "!bVar12 && !bVar15" (unary_expression "!bVar12" (! "!") (identifier "bVar12")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar12"))) (; ";")) (if_statement "if (!bVar12) {\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }" (if "if") (parenthesized_expression "(!bVar12)" (( "(") (unary_expression "!bVar12" (! "!") (identifier "bVar12")) () ")")) (compound_statement "{\n            iVar8 = 3;\n            pbVar9 = local_24;\n            pbVar11 = (byte *)(unaff_EBP + 0xba422);\n            do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);\n            if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }\n          }" ({ "{") (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" (identifier "iVar8") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar9 = local_24;" (assignment_expression "pbVar9 = local_24" (identifier "pbVar9") (= "=") (identifier "local_24")) (; ";")) (expression_statement "pbVar11 = (byte *)(unaff_EBP + 0xba422);" (assignment_expression "pbVar11 = (byte *)(unaff_EBP + 0xba422)" (identifier "pbVar11") (= "=") (cast_expression "(byte *)(unaff_EBP + 0xba422)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0xba422)" (( "(") (binary_expression "unaff_EBP + 0xba422" (identifier "unaff_EBP") (+ "+") (number_literal "0xba422")) () ")")))) (; ";")) (do_statement "do {\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            } while (bVar12);" (do "do") (compound_statement "{\n              if (iVar8 == 0) break;\n              iVar8 = iVar8 + -1;\n              bVar14 = *pbVar9 < *pbVar11;\n              bVar12 = *pbVar9 == *pbVar11;\n              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n            }" ({ "{") (if_statement "if (iVar8 == 0) break;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar14 = *pbVar9 < *pbVar11;" (assignment_expression "bVar14 = *pbVar9 < *pbVar11" (identifier "bVar14") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar12 = *pbVar9 == *pbVar11;" (assignment_expression "bVar12 = *pbVar9 == *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (; ";")) (if_statement "if ((!bVar14 && !bVar12) != bVar14) {\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }" (if "if") (parenthesized_expression "((!bVar14 && !bVar12) != bVar14)" (( "(") (binary_expression "(!bVar14 && !bVar12) != bVar14" (parenthesized_expression "(!bVar14 && !bVar12)" (( "(") (binary_expression "!bVar14 && !bVar12" (unary_expression "!bVar14" (! "!") (identifier "bVar14")) (&& "&&") (unary_expression "!bVar12" (! "!") (identifier "bVar12"))) () ")")) (!= "!=") (identifier "bVar14")) () ")")) (compound_statement "{\n              uStack_30 = 0x177b31;\n              iVar8 = FUN_001774c0();\n              goto LAB_00177a83;\n            }" ({ "{") (expression_statement "uStack_30 = 0x177b31;" (assignment_expression "uStack_30 = 0x177b31" (identifier "uStack_30") (= "=") (number_literal "0x177b31")) (; ";")) (expression_statement "iVar8 = FUN_001774c0();" (assignment_expression "iVar8 = FUN_001774c0()" (identifier "iVar8") (= "=") (call_expression "FUN_001774c0()" (identifier "FUN_001774c0") (argument_list "()" (( "(") () ")")))) (; ";")) (goto_statement "goto LAB_00177a83;" (goto "goto") (statement_identifier "LAB_00177a83") (; ";")) (} "}"))) (} "}"))) (expression_statement "uStack_30 = 0x177a75;" (assignment_expression "uStack_30 = 0x177a75" (identifier "uStack_30") (= "=") (number_literal "0x177a75")) (; ";")) (expression_statement "iVar8 = FUN_00175e60();" (assignment_expression "iVar8 = FUN_00175e60()" (identifier "iVar8") (= "=") (call_expression "FUN_00175e60()" (identifier "FUN_00175e60") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (**(char **)(iVar5 + 0xc) == 'I') {\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }" (if "if") (parenthesized_expression "(**(char **)(iVar5 + 0xc) == 'I')" (( "(") (binary_expression "**(char **)(iVar5 + 0xc) == 'I'" (pointer_expression "**(char **)(iVar5 + 0xc)" (* "*") (pointer_expression "*(char **)(iVar5 + 0xc)" (* "*") (cast_expression "(char **)(iVar5 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")"))))) (== "==") (char_literal "'I'" (' "'") (character "I") (' "'"))) () ")")) (compound_statement "{\n            uStack_30 = 0x177b4b;\n            local_3c[0] = FUN_00177490();\n            iVar8 = FUN_0016dee0();\n          }" ({ "{") (expression_statement "uStack_30 = 0x177b4b;" (assignment_expression "uStack_30 = 0x177b4b" (identifier "uStack_30") (= "=") (number_literal "0x177b4b")) (; ";")) (expression_statement "local_3c[0] = FUN_00177490();" (assignment_expression "local_3c[0] = FUN_00177490()" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "FUN_00177490()" (identifier "FUN_00177490") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar8 = FUN_0016dee0();" (assignment_expression "iVar8 = FUN_0016dee0()" (identifier "iVar8") (= "=") (call_expression "FUN_0016dee0()" (identifier "FUN_0016dee0") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_00177a83:\n        local_3c[0] = iVar8;" (statement_identifier "LAB_00177a83") (: ":") (expression_statement "local_3c[0] = iVar8;" (assignment_expression "local_3c[0] = iVar8" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "iVar8")) (; ";"))) (expression_statement "local_3c[0] = FUN_0016dee0();" (assignment_expression "local_3c[0] = FUN_0016dee0()" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "FUN_0016dee0()" (identifier "FUN_0016dee0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar6 = (undefined4 *)FUN_0016dee0();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016dee0()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)FUN_0016dee0()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0016dee0()" (identifier "FUN_0016dee0") (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return puVar6;" (return "return") (identifier "puVar6") (; ";")) (} "}"))) (if_statement "if (iVar8 != 3) {\n        return (undefined4 *)0x0;\n      }" (if "if") (parenthesized_expression "(iVar8 != 3)" (( "(") (binary_expression "iVar8 != 3" (identifier "iVar8") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n        return (undefined4 *)0x0;\n      }" ({ "{") (return_statement "return (undefined4 *)0x0;" (return "return") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" (identifier "bVar12") (= "=") (false "false")) (; ";")) (expression_statement "bVar15 = local_24 == (byte *)0x0;" (assignment_expression "bVar15 = local_24 == (byte *)0x0" (identifier "bVar15") (= "=") (binary_expression "local_24 == (byte *)0x0" (identifier "local_24") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (if_statement "if (bVar15) {\n        return (undefined4 *)0x0;\n      }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\n        return (undefined4 *)0x0;\n      }" ({ "{") (return_statement "return (undefined4 *)0x0;" (return "return") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" (identifier "iVar8") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar9 = local_24;" (assignment_expression "pbVar9 = local_24" (identifier "pbVar9") (= "=") (identifier "local_24")) (; ";")) (expression_statement "pbVar11 = (byte *)(unaff_EBP + 0xc177f);" (assignment_expression "pbVar11 = (byte *)(unaff_EBP + 0xc177f)" (identifier "pbVar11") (= "=") (cast_expression "(byte *)(unaff_EBP + 0xc177f)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0xc177f)" (( "(") (binary_expression "unaff_EBP + 0xc177f" (identifier "unaff_EBP") (+ "+") (number_literal "0xc177f")) () ")")))) (; ";")) (do_statement "do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      } while (bVar15);" (do "do") (compound_statement "{\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar9 < *pbVar11;\n        bVar15 = *pbVar9 == *pbVar11;\n        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n      }" ({ "{") (if_statement "if (iVar8 == 0) break;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar12 = *pbVar9 < *pbVar11;" (assignment_expression "bVar12 = *pbVar9 < *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar9 < *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar15 = *pbVar9 == *pbVar11;" (assignment_expression "bVar15 = *pbVar9 == *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar9 == *pbVar11" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar17 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (if_statement "if ((!bVar12 && !bVar15) == bVar12) {\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }\n      else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }" (if "if") (parenthesized_expression "((!bVar12 && !bVar15) == bVar12)" (( "(") (binary_expression "(!bVar12 && !bVar15) == bVar12" (parenthesized_expression "(!bVar12 && !bVar15)" (( "(") (binary_expression "!bVar12 && !bVar15" (unary_expression "!bVar12" (! "!") (identifier "bVar12")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar12")) () ")")) (compound_statement "{\n        uStack_30 = 0x177abb;\n        FUN_001774c0();\n      }" ({ "{") (expression_statement "uStack_30 = 0x177abb;" (assignment_expression "uStack_30 = 0x177abb" (identifier "uStack_30") (= "=") (number_literal "0x177abb")) (; ";")) (expression_statement "FUN_001774c0();" (call_expression "FUN_001774c0()" (identifier "FUN_001774c0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }" (else "else") (compound_statement "{\n        if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }\n        uStack_30 = 0x177b3f;\n        FUN_00175bc0();\n      }" ({ "{") (if_statement "if (*local_24 != 0x66) {\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }" (if "if") (parenthesized_expression "(*local_24 != 0x66)" (( "(") (binary_expression "*local_24 != 0x66" (pointer_expression "*local_24" (* "*") (identifier "local_24")) (!= "!=") (number_literal "0x66")) () ")")) (compound_statement "{\n          if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }\n          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }\n          uStack_30 = 0x17775a;\n          FUN_00177dc0();\n          local_3c[0] = iVar5;\n          FUN_00175280();\n          pcVar10 = *(char **)(iVar5 + 0xc);\n          cVar2 = *pcVar10;\n          if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }\n          goto LAB_0017779c;\n        }" ({ "{") (if_statement "if (*local_24 != 0x6e) {\n            return (undefined4 *)0x0;\n          }" (if "if") (parenthesized_expression "(*local_24 != 0x6e)" (( "(") (binary_expression "*local_24 != 0x6e" (pointer_expression "*local_24" (* "*") (identifier "local_24")) (!= "!=") (number_literal "0x6e")) () ")")) (compound_statement "{\n            return (undefined4 *)0x0;\n          }" ({ "{") (return_statement "return (undefined4 *)0x0;" (return "return") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (if_statement "if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {\n            return (undefined4 *)0x0;\n          }" (if "if") (parenthesized_expression "((local_24[1] != 0x77) && (local_24[1] != 0x61))" (( "(") (binary_expression "(local_24[1] != 0x77) && (local_24[1] != 0x61)" (parenthesized_expression "(local_24[1] != 0x77)" (( "(") (binary_expression "local_24[1] != 0x77" (subscript_expression "local_24[1]" (identifier "local_24") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0x77")) () ")")) (&& "&&") (parenthesized_expression "(local_24[1] != 0x61)" (( "(") (binary_expression "local_24[1] != 0x61" (subscript_expression "local_24[1]" (identifier "local_24") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0x61")) () ")"))) () ")")) (compound_statement "{\n            return (undefined4 *)0x0;\n          }" ({ "{") (return_statement "return (undefined4 *)0x0;" (return "return") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "uStack_30 = 0x17775a;" (assignment_expression "uStack_30 = 0x17775a" (identifier "uStack_30") (= "=") (number_literal "0x17775a")) (; ";")) (expression_statement "FUN_00177dc0();" (call_expression "FUN_00177dc0()" (identifier "FUN_00177dc0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_3c[0] = iVar5;" (assignment_expression "local_3c[0] = iVar5" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "FUN_00175280();" (call_expression "FUN_00175280()" (identifier "FUN_00175280") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar10 = *(char **)(iVar5 + 0xc);" (assignment_expression "pcVar10 = *(char **)(iVar5 + 0xc)" (identifier "pcVar10") (= "=") (pointer_expression "*(char **)(iVar5 + 0xc)" (* "*") (cast_expression "(char **)(iVar5 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "cVar2 = *pcVar10;" (assignment_expression "cVar2 = *pcVar10" (identifier "cVar2") (= "=") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10"))) (; ";")) (if_statement "if (cVar2 == 'E') {\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }\n          else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }" (if "if") (parenthesized_expression "(cVar2 == 'E')" (( "(") (binary_expression "cVar2 == 'E'" (identifier "cVar2") (== "==") (char_literal "'E'" (' "'") (character "E") (' "'"))) () ")")) (compound_statement "{\n            *(char **)(iVar5 + 0xc) = pcVar10 + 1;\n            local_3c[0] = 0;\n          }" ({ "{") (expression_statement "*(char **)(iVar5 + 0xc) = pcVar10 + 1;" (assignment_expression "*(char **)(iVar5 + 0xc) = pcVar10 + 1" (pointer_expression "*(char **)(iVar5 + 0xc)" (* "*") (cast_expression "(char **)(iVar5 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pcVar10 + 1" (identifier "pcVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_3c[0] = 0;" (assignment_expression "local_3c[0] = 0" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }" (else "else") (if_statement "if (cVar2 == 'p') {\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }\n          else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }" (if "if") (parenthesized_expression "(cVar2 == 'p')" (( "(") (binary_expression "cVar2 == 'p'" (identifier "cVar2") (== "==") (char_literal "'p'" (' "'") (character "p") (' "'"))) () ")")) (compound_statement "{\n            if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }\n            *(char **)(iVar5 + 0xc) = pcVar10 + 2;\n            uStack_30 = 0x177b83;\n            local_3c[0] = FUN_00177dc0();\n          }" ({ "{") (if_statement "if (pcVar10[1] != 'i') {\n              return (undefined4 *)0x0;\n            }" (if "if") (parenthesized_expression "(pcVar10[1] != 'i')" (( "(") (binary_expression "pcVar10[1] != 'i'" (subscript_expression "pcVar10[1]" (identifier "pcVar10") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'i'" (' "'") (character "i") (' "'"))) () ")")) (compound_statement "{\n              return (undefined4 *)0x0;\n            }" ({ "{") (return_statement "return (undefined4 *)0x0;" (return "return") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "*(char **)(iVar5 + 0xc) = pcVar10 + 2;" (assignment_expression "*(char **)(iVar5 + 0xc) = pcVar10 + 2" (pointer_expression "*(char **)(iVar5 + 0xc)" (* "*") (cast_expression "(char **)(iVar5 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "pcVar10 + 2" (identifier "pcVar10") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uStack_30 = 0x177b83;" (assignment_expression "uStack_30 = 0x177b83" (identifier "uStack_30") (= "=") (number_literal "0x177b83")) (; ";")) (expression_statement "local_3c[0] = FUN_00177dc0();" (assignment_expression "local_3c[0] = FUN_00177dc0()" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "FUN_00177dc0()" (identifier "FUN_00177dc0") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }" (else "else") (compound_statement "{\n            if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }\n            if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }\n            uStack_30 = 0x17779c;\n            local_3c[0] = FUN_001774c0();\n          }" ({ "{") (if_statement "if (cVar2 != 'i') {\n              return (undefined4 *)0x0;\n            }" (if "if") (parenthesized_expression "(cVar2 != 'i')" (( "(") (binary_expression "cVar2 != 'i'" (identifier "cVar2") (!= "!=") (char_literal "'i'" (' "'") (character "i") (' "'"))) () ")")) (compound_statement "{\n              return (undefined4 *)0x0;\n            }" ({ "{") (return_statement "return (undefined4 *)0x0;" (return "return") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (if_statement "if (pcVar10[1] != 'l') {\n              return (undefined4 *)0x0;\n            }" (if "if") (parenthesized_expression "(pcVar10[1] != 'l')" (( "(") (binary_expression "pcVar10[1] != 'l'" (subscript_expression "pcVar10[1]" (identifier "pcVar10") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'l'" (' "'") (character "l") (' "'"))) () ")")) (compound_statement "{\n              return (undefined4 *)0x0;\n            }" ({ "{") (return_statement "return (undefined4 *)0x0;" (return "return") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "uStack_30 = 0x17779c;" (assignment_expression "uStack_30 = 0x17779c" (identifier "uStack_30") (= "=") (number_literal "0x17779c")) (; ";")) (expression_statement "local_3c[0] = FUN_001774c0();" (assignment_expression "local_3c[0] = FUN_001774c0()" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "FUN_001774c0()" (identifier "FUN_001774c0") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))))) (goto_statement "goto LAB_0017779c;" (goto "goto") (statement_identifier "LAB_0017779c") (; ";")) (} "}"))) (expression_statement "uStack_30 = 0x177b3f;" (assignment_expression "uStack_30 = 0x177b3f" (identifier "uStack_30") (= "=") (number_literal "0x177b3f")) (; ";")) (expression_statement "FUN_00175bc0();" (call_expression "FUN_00175bc0()" (identifier "FUN_00175bc0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "uStack_30 = 0x177ac4;" (assignment_expression "uStack_30 = 0x177ac4" (identifier "uStack_30") (= "=") (number_literal "0x177ac4")) (; ";")) (expression_statement "FUN_001774c0();" (call_expression "FUN_001774c0()" (identifier "FUN_001774c0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uStack_30 = 0x177acd;" (assignment_expression "uStack_30 = 0x177acd" (identifier "uStack_30") (= "=") (number_literal "0x177acd")) (; ";")) (expression_statement "local_3c[0] = FUN_001774c0();" (assignment_expression "local_3c[0] = FUN_001774c0()" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "FUN_001774c0()" (identifier "FUN_001774c0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (local_3c[0] == 0) {\n        return (undefined4 *)0x0;\n      }" (if "if") (parenthesized_expression "(local_3c[0] == 0)" (( "(") (binary_expression "local_3c[0] == 0" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return (undefined4 *)0x0;\n      }" ({ "{") (return_statement "return (undefined4 *)0x0;" (return "return") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (labeled_statement "LAB_0017779c:\n      local_3c[0] = FUN_0016dee0();" (statement_identifier "LAB_0017779c") (: ":") (expression_statement "local_3c[0] = FUN_0016dee0();" (assignment_expression "local_3c[0] = FUN_0016dee0()" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "FUN_0016dee0()" (identifier "FUN_0016dee0") (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "local_3c[0] = FUN_0016dee0();" (assignment_expression "local_3c[0] = FUN_0016dee0()" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "FUN_0016dee0()" (identifier "FUN_0016dee0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar6 = (undefined4 *)FUN_0016dee0();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016dee0()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)FUN_0016dee0()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0016dee0()" (identifier "FUN_0016dee0") (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return puVar6;" (return "return") (identifier "puVar6") (; ";")) (} "}"))) (expression_statement "bVar3 = *local_24;" (assignment_expression "bVar3 = *local_24" (identifier "bVar3") (= "=") (pointer_expression "*local_24" (* "*") (identifier "local_24"))) (; ";")) (if_statement "if (((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == local_24[1])) {\n      bVar3 = **(byte **)(iVar5 + 0xc);\n      bVar12 = bVar3 < 0x5f;\n      bVar15 = bVar3 == 0x5f;\n      pbVar9 = (byte *)0x1;\n      if (bVar15) {\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }\n    }\n    else {\nLAB_001778af:\n      bVar12 = false;\n      pbVar9 = (byte *)0x0;\n      bVar15 = true;\n    }" (if "if") (parenthesized_expression "(((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == local_24[1]))" (( "(") (binary_expression "((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == local_24[1])" (parenthesized_expression "((bVar3 == 0x70) || (bVar3 == 0x6d))" (( "(") (binary_expression "(bVar3 == 0x70) || (bVar3 == 0x6d)" (parenthesized_expression "(bVar3 == 0x70)" (( "(") (binary_expression "bVar3 == 0x70" (identifier "bVar3") (== "==") (number_literal "0x70")) () ")")) (|| "||") (parenthesized_expression "(bVar3 == 0x6d)" (( "(") (binary_expression "bVar3 == 0x6d" (identifier "bVar3") (== "==") (number_literal "0x6d")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(bVar3 == local_24[1])" (( "(") (binary_expression "bVar3 == local_24[1]" (identifier "bVar3") (== "==") (subscript_expression "local_24[1]" (identifier "local_24") ([ "[") (number_literal "1") (] "]"))) () ")"))) () ")")) (compound_statement "{\n      bVar3 = **(byte **)(iVar5 + 0xc);\n      bVar12 = bVar3 < 0x5f;\n      bVar15 = bVar3 == 0x5f;\n      pbVar9 = (byte *)0x1;\n      if (bVar15) {\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }\n    }" ({ "{") (expression_statement "bVar3 = **(byte **)(iVar5 + 0xc);" (assignment_expression "bVar3 = **(byte **)(iVar5 + 0xc)" (identifier "bVar3") (= "=") (pointer_expression "**(byte **)(iVar5 + 0xc)" (* "*") (pointer_expression "*(byte **)(iVar5 + 0xc)" (* "*") (cast_expression "(byte **)(iVar5 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))))) (; ";")) (expression_statement "bVar12 = bVar3 < 0x5f;" (assignment_expression "bVar12 = bVar3 < 0x5f" (identifier "bVar12") (= "=") (binary_expression "bVar3 < 0x5f" (identifier "bVar3") (< "<") (number_literal "0x5f"))) (; ";")) (expression_statement "bVar15 = bVar3 == 0x5f;" (assignment_expression "bVar15 = bVar3 == 0x5f" (identifier "bVar15") (= "=") (binary_expression "bVar3 == 0x5f" (identifier "bVar3") (== "==") (number_literal "0x5f"))) (; ";")) (expression_statement "pbVar9 = (byte *)0x1;" (assignment_expression "pbVar9 = (byte *)0x1" (identifier "pbVar9") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (if_statement "if (bVar15) {\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\n        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;\n        goto LAB_001778af;\n      }" ({ "{") (expression_statement "*(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;" (assignment_expression "*(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1" (pointer_expression "*(byte **)(iVar5 + 0xc)" (* "*") (cast_expression "(byte **)(iVar5 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "*(byte **)(iVar5 + 0xc) + 1" (pointer_expression "*(byte **)(iVar5 + 0xc)" (* "*") (cast_expression "(byte **)(iVar5 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_001778af;" (goto "goto") (statement_identifier "LAB_001778af") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_001778af:\n      bVar12 = false;\n      pbVar9 = (byte *)0x0;\n      bVar15 = true;\n    }" (else "else") (compound_statement "{\nLAB_001778af:\n      bVar12 = false;\n      pbVar9 = (byte *)0x0;\n      bVar15 = true;\n    }" ({ "{") (labeled_statement "LAB_001778af:\n      bVar12 = false;" (statement_identifier "LAB_001778af") (: ":") (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" (identifier "bVar12") (= "=") (false "false")) (; ";"))) (expression_statement "pbVar9 = (byte *)0x0;" (assignment_expression "pbVar9 = (byte *)0x0" (identifier "pbVar9") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" (identifier "bVar15") (= "=") (true "true")) (; ";")) (} "}")))) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" (identifier "iVar5") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar11 = (byte *)(unaff_EBP + 0xc1779);" (assignment_expression "pbVar11 = (byte *)(unaff_EBP + 0xc1779)" (identifier "pbVar11") (= "=") (cast_expression "(byte *)(unaff_EBP + 0xc1779)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0xc1779)" (( "(") (binary_expression "unaff_EBP + 0xc1779" (identifier "unaff_EBP") (+ "+") (number_literal "0xc1779")) () ")")))) (; ";")) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *local_24 < *pbVar11;\n      bVar15 = *local_24 == *pbVar11;\n      local_24 = local_24 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);" (do "do") (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar12 = *local_24 < *pbVar11;\n      bVar15 = *local_24 == *pbVar11;\n      local_24 = local_24 + (uint)bVar17 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar12 = *local_24 < *pbVar11;" (assignment_expression "bVar12 = *local_24 < *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*local_24 < *pbVar11" (pointer_expression "*local_24" (* "*") (identifier "local_24")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar15 = *local_24 == *pbVar11;" (assignment_expression "bVar15 = *local_24 == *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*local_24 == *pbVar11" (pointer_expression "*local_24" (* "*") (identifier "local_24")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "local_24 = local_24 + (uint)bVar17 * -2 + 1;" (assignment_expression "local_24 = local_24 + (uint)bVar17 * -2 + 1" (identifier "local_24") (= "=") (binary_expression "local_24 + (uint)bVar17 * -2 + 1" (binary_expression "local_24 + (uint)bVar17 * -2" (identifier "local_24") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar17 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (if_statement "if ((!bVar12 && !bVar15) != bVar12) goto LAB_001778cf;" (if "if") (parenthesized_expression "((!bVar12 && !bVar15) != bVar12)" (( "(") (binary_expression "(!bVar12 && !bVar15) != bVar12" (parenthesized_expression "(!bVar12 && !bVar15)" (( "(") (binary_expression "!bVar12 && !bVar15" (unary_expression "!bVar12" (! "!") (identifier "bVar12")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (!= "!=") (identifier "bVar12")) () ")")) (goto_statement "goto LAB_001778cf;" (goto "goto") (statement_identifier "LAB_001778cf") (; ";"))) (expression_statement "uStack_30 = 0x1779bb;" (assignment_expression "uStack_30 = 0x1779bb" (identifier "uStack_30") (= "=") (number_literal "0x1779bb")) (; ";")) (expression_statement "local_24 = pbVar9;" (assignment_expression "local_24 = pbVar9" (identifier "local_24") (= "=") (identifier "pbVar9")) (; ";")) (expression_statement "local_3c[0] = FUN_00177370();" (assignment_expression "local_3c[0] = FUN_00177370()" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "FUN_00177370()" (identifier "FUN_00177370") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n    if (iVar8 == 0x32) {\n      iVar8 = local_28[2];\n      if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }\n      uStack_30 = 0x1779e0;\n      local_3c[0] = FUN_001774c0();\n      goto LAB_001778fb;\n    }\n    if (iVar8 != 0x33) {\n      return (undefined4 *)0x0;\n    }\n    if (**(char **)(iVar5 + 0xc) == '_') {\n      *(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;\n      uStack_30 = 0x177946;\n      local_3c[0] = FUN_00177dc0();\n      goto LAB_001778fb;\n    }\n    pbVar9 = (byte *)0x0;\nLAB_001778cf:\n    uStack_30 = 0x1778da;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_001774c0();\n  }" (else "else") (compound_statement "{\n    if (iVar8 == 0x32) {\n      iVar8 = local_28[2];\n      if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }\n      uStack_30 = 0x1779e0;\n      local_3c[0] = FUN_001774c0();\n      goto LAB_001778fb;\n    }\n    if (iVar8 != 0x33) {\n      return (undefined4 *)0x0;\n    }\n    if (**(char **)(iVar5 + 0xc) == '_') {\n      *(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;\n      uStack_30 = 0x177946;\n      local_3c[0] = FUN_00177dc0();\n      goto LAB_001778fb;\n    }\n    pbVar9 = (byte *)0x0;\nLAB_001778cf:\n    uStack_30 = 0x1778da;\n    local_24 = pbVar9;\n    local_3c[0] = FUN_001774c0();\n  }" ({ "{") (if_statement "if (iVar8 == 0x32) {\n      iVar8 = local_28[2];\n      if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }\n      uStack_30 = 0x1779e0;\n      local_3c[0] = FUN_001774c0();\n      goto LAB_001778fb;\n    }" (if "if") (parenthesized_expression "(iVar8 == 0x32)" (( "(") (binary_expression "iVar8 == 0x32" (identifier "iVar8") (== "==") (number_literal "0x32")) () ")")) (compound_statement "{\n      iVar8 = local_28[2];\n      if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }\n      uStack_30 = 0x1779e0;\n      local_3c[0] = FUN_001774c0();\n      goto LAB_001778fb;\n    }" ({ "{") (expression_statement "iVar8 = local_28[2];" (assignment_expression "iVar8 = local_28[2]" (identifier "iVar8") (= "=") (subscript_expression "local_28[2]" (identifier "local_28") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (iVar8 != 1) {\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }" (if "if") (parenthesized_expression "(iVar8 != 1)" (( "(") (binary_expression "iVar8 != 1" (identifier "iVar8") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n        if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }\njoined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }\n        return (undefined4 *)0x0;\n      }" ({ "{") (if_statement "if (1 < iVar8) {\n          return (undefined4 *)0x0;\n        }" (if "if") (parenthesized_expression "(1 < iVar8)" (( "(") (binary_expression "1 < iVar8" (number_literal "1") (< "<") (identifier "iVar8")) () ")")) (compound_statement "{\n          return (undefined4 *)0x0;\n        }" ({ "{") (return_statement "return (undefined4 *)0x0;" (return "return") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (labeled_statement "joined_r0x00177952:\n        if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }" (statement_identifier "joined_r0x00177952") (: ":") (if_statement "if (iVar8 == 0) {\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_3c[0] = 0;\n          puVar6 = (undefined4 *)FUN_0016dee0();\n          return puVar6;\n        }" ({ "{") (expression_statement "local_3c[0] = 0;" (assignment_expression "local_3c[0] = 0" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar6 = (undefined4 *)FUN_0016dee0();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016dee0()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)FUN_0016dee0()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0016dee0()" (identifier "FUN_0016dee0") (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return puVar6;" (return "return") (identifier "puVar6") (; ";")) (} "}")))) (return_statement "return (undefined4 *)0x0;" (return "return") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "uStack_30 = 0x1779e0;" (assignment_expression "uStack_30 = 0x1779e0" (identifier "uStack_30") (= "=") (number_literal "0x1779e0")) (; ";")) (expression_statement "local_3c[0] = FUN_001774c0();" (assignment_expression "local_3c[0] = FUN_001774c0()" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "FUN_001774c0()" (identifier "FUN_001774c0") (argument_list "()" (( "(") () ")")))) (; ";")) (goto_statement "goto LAB_001778fb;" (goto "goto") (statement_identifier "LAB_001778fb") (; ";")) (} "}"))) (if_statement "if (iVar8 != 0x33) {\n      return (undefined4 *)0x0;\n    }" (if "if") (parenthesized_expression "(iVar8 != 0x33)" (( "(") (binary_expression "iVar8 != 0x33" (identifier "iVar8") (!= "!=") (number_literal "0x33")) () ")")) (compound_statement "{\n      return (undefined4 *)0x0;\n    }" ({ "{") (return_statement "return (undefined4 *)0x0;" (return "return") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (if_statement "if (**(char **)(iVar5 + 0xc) == '_') {\n      *(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;\n      uStack_30 = 0x177946;\n      local_3c[0] = FUN_00177dc0();\n      goto LAB_001778fb;\n    }" (if "if") (parenthesized_expression "(**(char **)(iVar5 + 0xc) == '_')" (( "(") (binary_expression "**(char **)(iVar5 + 0xc) == '_'" (pointer_expression "**(char **)(iVar5 + 0xc)" (* "*") (pointer_expression "*(char **)(iVar5 + 0xc)" (* "*") (cast_expression "(char **)(iVar5 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")"))))) (== "==") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")")) (compound_statement "{\n      *(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;\n      uStack_30 = 0x177946;\n      local_3c[0] = FUN_00177dc0();\n      goto LAB_001778fb;\n    }" ({ "{") (expression_statement "*(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;" (assignment_expression "*(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1" (pointer_expression "*(char **)(iVar5 + 0xc)" (* "*") (cast_expression "(char **)(iVar5 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "*(char **)(iVar5 + 0xc) + 1" (pointer_expression "*(char **)(iVar5 + 0xc)" (* "*") (cast_expression "(char **)(iVar5 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uStack_30 = 0x177946;" (assignment_expression "uStack_30 = 0x177946" (identifier "uStack_30") (= "=") (number_literal "0x177946")) (; ";")) (expression_statement "local_3c[0] = FUN_00177dc0();" (assignment_expression "local_3c[0] = FUN_00177dc0()" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "FUN_00177dc0()" (identifier "FUN_00177dc0") (argument_list "()" (( "(") () ")")))) (; ";")) (goto_statement "goto LAB_001778fb;" (goto "goto") (statement_identifier "LAB_001778fb") (; ";")) (} "}"))) (expression_statement "pbVar9 = (byte *)0x0;" (assignment_expression "pbVar9 = (byte *)0x0" (identifier "pbVar9") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_001778cf:\n    uStack_30 = 0x1778da;" (statement_identifier "LAB_001778cf") (: ":") (expression_statement "uStack_30 = 0x1778da;" (assignment_expression "uStack_30 = 0x1778da" (identifier "uStack_30") (= "=") (number_literal "0x1778da")) (; ";"))) (expression_statement "local_24 = pbVar9;" (assignment_expression "local_24 = pbVar9" (identifier "local_24") (= "=") (identifier "pbVar9")) (; ";")) (expression_statement "local_3c[0] = FUN_001774c0();" (assignment_expression "local_3c[0] = FUN_001774c0()" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "FUN_001774c0()" (identifier "FUN_001774c0") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (if_statement "if (local_24 != (byte *)0x0) {\n    local_3c[0] = FUN_0016dee0();\n  }" (if "if") (parenthesized_expression "(local_24 != (byte *)0x0)" (( "(") (binary_expression "local_24 != (byte *)0x0" (identifier "local_24") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_3c[0] = FUN_0016dee0();\n  }" ({ "{") (expression_statement "local_3c[0] = FUN_0016dee0();" (assignment_expression "local_3c[0] = FUN_0016dee0()" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "FUN_0016dee0()" (identifier "FUN_0016dee0") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (labeled_statement "LAB_001778fb:\n  puVar6 = (undefined4 *)FUN_0016dee0();" (statement_identifier "LAB_001778fb") (: ":") (expression_statement "puVar6 = (undefined4 *)FUN_0016dee0();" (assignment_expression "puVar6 = (undefined4 *)FUN_0016dee0()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)FUN_0016dee0()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0016dee0()" (identifier "FUN_0016dee0") (argument_list "()" (( "(") () ")"))))) (; ";"))) (return_statement "return puVar6;" (return "return") (identifier "puVar6") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */

type_3 * __regparm3 var_9(type_6 *di)

{
  int *piVar1;
  char var_1;
  type_1 var_25;
  type_2 var_16;
  type_3 *var_13;
  type_4 var_11;
  char *pcVar7;
  type_3 *pdVar8;
  type_3 *var_24;
  type_3 *pdVar9;
  int var_12;
  char *var_4;
  type_1 *var_19;
  type_1 *var_22;
  type_1 *var_20;
  bool var_21;
  type_5 uVar16;
  bool var_23;
  bool var_26;
  type_5 uVar19;
  type_1 bVar20;
  type_6 *di_00;
  type_6 *in_stack_ffffffd4;
  type_3 *local_20;
  
  bVar20 = 0;
  var_4 = di->n;
  var_1 = *var_4;
  if (var_1 == 'L') {
    var_13 = var_2(di);
    return var_13;
  }
  if (var_1 == 'T') {
    var_13 = var_3(di);
    return var_13;
  }
  if (var_1 == 's') {
    if (var_4[1] == 'r') {
      di->n = var_4 + 2;
      di_00 = di;
      var_13 = var_5(di);
      pdVar9 = var_6(di_00);
      if (*di->n == 'I') {
        pdVar8 = var_7(di);
        pdVar9 = var_8(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);
      }
      var_13 = var_8(di,DEMANGLE_COMPONENT_QUAL_NAME,var_13,pdVar9);
      return var_13;
    }
    if (var_4[1] == 'p') {
      di->n = var_4 + 2;
      var_13 = var_9(di);
      var_13 = var_8(di,DEMANGLE_COMPONENT_PACK_EXPANSION,var_13,(type_3 *)0x0);
      return var_13;
    }
  }
  else if (var_1 == 'f') {
    if (var_4[1] == 'p') {
      di->n = var_4 + 2;
      if (var_4[2] == 'T') {
        pcVar7 = (char *)0x0;
        di->n = var_4 + 3;
      }
      else {
        var_11 = var_10(di);
        pcVar7 = (char *)(var_11 + 1);
        if ((var_11 & 0x7fffffff) == 0x7fffffff) {
          return (type_3 *)0x0;
        }
      }
      var_12 = di->next_comp;
      if (di->num_comps <= var_12) {
        return (type_3 *)0x0;
      }
      var_13 = di->comps + var_12;
      var_13->d_printing = 0;
      di->next_comp = var_12 + 1;
      var_13->type = DEMANGLE_COMPONENT_FUNCTION_PARAM;
      (var_13->u).s_name.s = pcVar7;
      return var_13;
    }
  }
  else {
    if ((type_1)(var_1 - 0x30U) < 10) {
LAB_00177505:
      var_13 = var_6(in_stack_ffffffd4);
      if (var_13 == (type_3 *)0x0) {
        return (type_3 *)0x0;
      }
      if (*di->n != 'I') {
        return var_13;
      }
      pdVar9 = var_7(di);
      var_13 = var_8(di,DEMANGLE_COMPONENT_TEMPLATE,var_13,pdVar9);
      return var_13;
    }
    if (var_1 == 'o') {
      if (var_4[1] == 'n') {
        di->n = var_4 + 2;
        goto LAB_00177505;
      }
    }
    else if (((var_1 == 'i') || (var_1 == 't')) && (var_4[1] == 'l')) {
      var_13 = (type_3 *)0x0;
      if (var_1 == 't') {
        var_13 = var_5(di);
        var_4 = di->n;
        if (var_4[1] == '\0') {
          return (type_3 *)0x0;
        }
      }
      di->n = var_4 + 2;
      pdVar9 = var_14(di,'E');
      var_13 = var_8(di,DEMANGLE_COMPONENT_INITIALIZER_LIST,var_13,pdVar9);
      return var_13;
    }
  }
  var_13 = var_15(di);
  if (var_13 == (type_3 *)0x0) {
    return (type_3 *)0x0;
  }
  var_16 = var_13->type;
  if (var_16 == var_17) {
    var_4 = (var_13->u).s_name.s;
    var_22 = *(type_1 **)var_4;
    piVar1 = &di->expansion;
    var_21 = var_18(*piVar1,*(int *)(var_4 + 8) - 2U);
    *piVar1 = *piVar1 + (*(int *)(var_4 + 8) - 2U);
    var_26 = *piVar1 == 0;
    var_12 = 3;
    var_19 = var_22;
    var_20 = (type_1 *)0x238e84;
    do {
      if (var_12 == 0) break;
      var_12 = var_12 + -1;
      var_21 = *var_19 < *var_20;
      var_26 = *var_19 == *var_20;
      var_19 = var_19 + (type_4)bVar20 * -2 + 1;
      var_20 = var_20 + (type_4)bVar20 * -2 + 1;
    } while (var_26);
    if ((!var_21 && !var_26) == var_21) {
      pdVar9 = var_5(di);
      goto LAB_001778fb;
    }
    var_12 = *(int *)(var_4 + 0xc);
    if (var_12 != 1) {
      if (var_12 < 2) goto joined_r0x00177952;
      if (var_12 == 2) {
        if (var_22 == (type_1 *)0x0) {
          return (type_3 *)0x0;
        }
        if (((*(char **)var_4)[1] == 'c') &&
           ((var_1 = **(char **)var_4, (type_1)(var_1 + 0x9dU) < 2 || ((type_1)(var_1 + 0x8eU) < 2))))
        {
          local_20 = var_5(di);
          uVar16 = (type_5 *)0xffffffef < &stack0xffffffc4;
          uVar19 = &stack0x00000000 == (type_5 *)0x2c;
        }
        else {
          uVar16 = *var_22 < 0x66;
          uVar19 = *var_22 == 0x66;
          if ((bool)uVar19) {
            local_20 = var_15(di);
          }
          else {
            local_20 = var_9(di);
          }
        }
        var_12 = 3;
        var_19 = var_22;
        var_20 = &DAT_00237ab8;
        do {
          if (var_12 == 0) break;
          var_12 = var_12 + -1;
          uVar16 = *var_19 < *var_20;
          uVar19 = *var_19 == *var_20;
          var_19 = var_19 + (type_4)bVar20 * -2 + 1;
          var_20 = var_20 + (type_4)bVar20 * -2 + 1;
        } while ((bool)uVar19);
        var_21 = false;
        var_26 = (!(bool)uVar16 && !(bool)uVar19) == (bool)uVar16;
        if (var_26) {
          pdVar9 = var_14(di,'E');
        }
        else {
          var_12 = 3;
          var_19 = var_22;
          var_20 = &DAT_00237716;
          do {
            if (var_12 == 0) break;
            var_12 = var_12 + -1;
            var_21 = *var_19 < *var_20;
            var_26 = *var_19 == *var_20;
            var_19 = var_19 + (type_4)bVar20 * -2 + 1;
            var_20 = var_20 + (type_4)bVar20 * -2 + 1;
          } while (var_26);
          var_23 = false;
          var_21 = (!var_21 && !var_26) == var_21;
          if (!var_21) {
            var_12 = 3;
            var_19 = (type_1 *)0x2318e8;
            do {
              if (var_12 == 0) break;
              var_12 = var_12 + -1;
              var_23 = *var_22 < *var_19;
              var_21 = *var_22 == *var_19;
              var_22 = var_22 + (type_4)bVar20 * -2 + 1;
              var_19 = var_19 + (type_4)bVar20 * -2 + 1;
            } while (var_21);
            if ((!var_23 && !var_21) != var_23) {
              pdVar9 = var_9(di);
              goto LAB_00177a83;
            }
          }
          pdVar9 = var_6(in_stack_ffffffd4);
          if (*di->n == 'I') {
            pdVar8 = var_7(di);
            pdVar9 = var_8(di,DEMANGLE_COMPONENT_TEMPLATE,pdVar9,pdVar8);
          }
        }
LAB_00177a83:
        pdVar9 = var_8(di,DEMANGLE_COMPONENT_BINARY_ARGS,local_20,pdVar9);
        var_13 = var_8(di,DEMANGLE_COMPONENT_BINARY,var_13,pdVar9);
        return var_13;
      }
      if (var_12 != 3) {
        return (type_3 *)0x0;
      }
      var_21 = false;
      var_26 = var_22 == (type_1 *)0x0;
      if (var_26) {
        return (type_3 *)0x0;
      }
      var_12 = 3;
      var_19 = var_22;
      var_20 = &DAT_00238c45;
      do {
        if (var_12 == 0) break;
        var_12 = var_12 + -1;
        var_21 = *var_19 < *var_20;
        var_26 = *var_19 == *var_20;
        var_19 = var_19 + (type_4)bVar20 * -2 + 1;
        var_20 = var_20 + (type_4)bVar20 * -2 + 1;
      } while (var_26);
      if ((!var_21 && !var_26) == var_21) {
        pdVar9 = var_9(di);
      }
      else {
        if (*var_22 != 0x66) {
          if (*var_22 != 0x6e) {
            return (type_3 *)0x0;
          }
          if ((var_22[1] != 0x77) && (var_22[1] != 0x61)) {
            return (type_3 *)0x0;
          }
          pdVar9 = var_14(di,'_');
          pdVar8 = var_5(di);
          var_4 = di->n;
          var_1 = *var_4;
          if (var_1 == 'E') {
            di->n = var_4 + 1;
            var_24 = (type_3 *)0x0;
          }
          else if (var_1 == 'p') {
            if (var_4[1] != 'i') {
              return (type_3 *)0x0;
            }
            di->n = var_4 + 2;
            var_24 = var_14(di,'E');
          }
          else {
            if (var_1 != 'i') {
              return (type_3 *)0x0;
            }
            if (var_4[1] != 'l') {
              return (type_3 *)0x0;
            }
            var_24 = var_9(di);
          }
          goto LAB_0017779c;
        }
        pdVar9 = var_15(di);
      }
      pdVar8 = var_9(di);
      var_24 = var_9(di);
      if (var_24 == (type_3 *)0x0) {
        return (type_3 *)0x0;
      }
LAB_0017779c:
      pdVar8 = var_8(di,DEMANGLE_COMPONENT_TRINARY_ARG2,pdVar8,var_24);
      pdVar9 = var_8(di,DEMANGLE_COMPONENT_TRINARY_ARG1,pdVar9,pdVar8);
      var_13 = var_8(di,DEMANGLE_COMPONENT_TRINARY,var_13,pdVar9);
      return var_13;
    }
    var_25 = *var_22;
    if (((var_25 == 0x70) || (var_25 == 0x6d)) && (var_25 == var_22[1])) {
      var_25 = *di->n;
      var_26 = var_25 < 0x5f;
      var_23 = var_25 == 0x5f;
      var_21 = true;
      if (var_23) {
        di->n = di->n + 1;
        goto LAB_001778af;
      }
    }
    else {
LAB_001778af:
      var_26 = false;
      var_21 = false;
      var_23 = true;
    }
    var_12 = 3;
    var_19 = &DAT_00238c3f;
    do {
      if (var_12 == 0) break;
      var_12 = var_12 + -1;
      var_26 = *var_22 < *var_19;
      var_23 = *var_22 == *var_19;
      var_22 = var_22 + (type_4)bVar20 * -2 + 1;
      var_19 = var_19 + (type_4)bVar20 * -2 + 1;
    } while (var_23);
    if ((!var_26 && !var_23) != var_26) goto LAB_001778cf;
    pdVar9 = var_27(di);
  }
  else {
    if (var_16 == var_28) {
      var_12 = (var_13->u).s_extended_operator.args;
      if (var_12 != 1) {
        if (1 < var_12) {
          return (type_3 *)0x0;
        }
joined_r0x00177952:
        if (var_12 == 0) {
          var_13 = var_8(di,DEMANGLE_COMPONENT_NULLARY,var_13,(type_3 *)0x0);
          return var_13;
        }
        return (type_3 *)0x0;
      }
      pdVar9 = var_9(di);
      goto LAB_001778fb;
    }
    if (var_16 != var_29) {
      return (type_3 *)0x0;
    }
    if (*di->n == '_') {
      di->n = di->n + 1;
      pdVar9 = var_14(di,'E');
      goto LAB_001778fb;
    }
    var_21 = false;
LAB_001778cf:
    pdVar9 = var_9(di);
  }
  if (var_21) {
    pdVar9 = var_8(di,DEMANGLE_COMPONENT_BINARY_ARGS,pdVar9,pdVar9);
  }
LAB_001778fb:
  var_13 = var_8(di,DEMANGLE_COMPONENT_UNARY,var_13,pdVar9);
  return var_13;
}


(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) 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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (return_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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (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: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (return_statement (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (return_statement (identifier))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (return_statement (identifier))))) alternative: (else_clause (compound_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 (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (char_literal (character)))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (call_expression function: (identifier) arguments: (argument_list))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (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 (character)))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (call_expression function: (identifier) arguments: (argument_list))))) (return_statement (identifier))))))))))) (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: (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 (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (identifier) arguments: (argument_list)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) index: (number_literal)) right: (char_literal (character)))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) right: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)) right: (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 (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_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: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (call_expression function: (identifier) arguments: (argument_list))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character)))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (identifier) arguments: (argument_list))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character)))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (identifier) arguments: (argument_list))))))))) (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))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (call_expression function: (identifier) arguments: (argument_list))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (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: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (false)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (true)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (identifier) arguments: (argument_list))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (number_literal) right: (identifier))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (return_statement (identifier))))) (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (identifier) arguments: (argument_list)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (identifier) arguments: (argument_list))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (identifier) arguments: (argument_list)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list)))))) (return_statement (identifier)))))

undefined4 * MASKED(void)

{
  uint *puVar1;
  char cVar2;
  byte bVar3;
  int iVar4;
  int iVar5;
  undefined4 *puVar6;
  uint uVar7;
  int iVar8;
  byte *pbVar9;
  int unaff_EBP;
  char *pcVar10;
  byte *pbVar11;
  bool bVar12;
  undefined1 uVar13;
  bool bVar14;
  bool bVar15;
  undefined1 uVar16;
  byte bVar17;
  int local_3c [3];
  undefined4 uStack_30;
  int *local_28;
  byte *local_24;
  undefined4 local_20;
  
  bVar17 = 0;
  iVar5 = FUN_0004fb82();
  pcVar10 = *(char **)(iVar5 + 0xc);
  cVar2 = *pcVar10;
  if (cVar2 == 'L') {
    puVar6 = (undefined4 *)FUN_00177210();
    return puVar6;
  }
  if (cVar2 == 'T') {
    puVar6 = (undefined4 *)FUN_0016e210();
    return puVar6;
  }
  if (cVar2 == 's') {
    if (pcVar10[1] == 'r') {
      *(char **)(iVar5 + 0xc) = pcVar10 + 2;
      local_3c[0] = iVar5;
      FUN_00175280();
      iVar8 = FUN_00175e60();
      if (**(char **)(iVar5 + 0xc) == 'I') {
        uStack_30 = 0x177887;
        local_3c[0] = FUN_00177490();
        iVar8 = FUN_0016dee0();
      }
      local_3c[0] = iVar8;
      puVar6 = (undefined4 *)FUN_0016dee0();
      return puVar6;
    }
    if (pcVar10[1] == 'p') {
      *(char **)(iVar5 + 0xc) = pcVar10 + 2;
      uStack_30 = 0x17759d;
      MASKED();
      local_3c[0] = 0;
      puVar6 = (undefined4 *)FUN_0016dee0();
      return puVar6;
    }
  }
  else if (cVar2 == 'f') {
    if (pcVar10[1] == 'p') {
      *(char **)(iVar5 + 0xc) = pcVar10 + 2;
      if (pcVar10[2] == 'T') {
        iVar8 = 0;
        *(char **)(iVar5 + 0xc) = pcVar10 + 3;
      }
      else {
        uStack_30 = 0x1775d7;
        uVar7 = FUN_0016e1d0();
        iVar8 = uVar7 + 1;
        if ((uVar7 & 0x7fffffff) == 0x7fffffff) {
          return (undefined4 *)0x0;
        }
      }
      iVar4 = *(int *)(iVar5 + 0x14);
      if (*(int *)(iVar5 + 0x18) <= iVar4) {
        return (undefined4 *)0x0;
      }
      puVar6 = (undefined4 *)(iVar4 * 0x10 + *(int *)(iVar5 + 0x10));
      puVar6[1] = 0;
      *(int *)(iVar5 + 0x14) = iVar4 + 1;
      *puVar6 = 6;
      puVar6[2] = iVar8;
      return puVar6;
    }
  }
  else {
    if ((byte)(cVar2 - 0x30U) < 10) {
LAB_00177505:
      uStack_30 = 0x17750c;
      puVar6 = (undefined4 *)FUN_00175e60();
      if (puVar6 == (undefined4 *)0x0) {
        return (undefined4 *)0x0;
      }
      if (**(char **)(iVar5 + 0xc) != 'I') {
        return puVar6;
      }
      uStack_30 = 0x1777e7;
      local_3c[0] = FUN_00177490();
      puVar6 = (undefined4 *)FUN_0016dee0();
      return puVar6;
    }
    if (cVar2 == 'o') {
      if (pcVar10[1] == 'n') {
        *(char **)(iVar5 + 0xc) = pcVar10 + 2;
        goto LAB_00177505;
      }
    }
    else if (((cVar2 == 'i') || (cVar2 == 't')) && (pcVar10[1] == 'l')) {
      if (cVar2 == 't') {
        local_3c[0] = iVar5;
        FUN_00175280();
        pcVar10 = *(char **)(iVar5 + 0xc);
        if (pcVar10[1] == '\0') {
          return (undefined4 *)0x0;
        }
      }
      *(char **)(iVar5 + 0xc) = pcVar10 + 2;
      uStack_30 = 0x177862;
      local_3c[0] = FUN_00177dc0();
      puVar6 = (undefined4 *)FUN_0016dee0();
      return puVar6;
    }
  }
  uStack_30 = 0x177541;
  local_28 = (int *)FUN_00175bc0();
  if (local_28 == (int *)0x0) {
    return (undefined4 *)0x0;
  }
  iVar8 = *local_28;
  if (iVar8 == 0x31) {
    puVar6 = (undefined4 *)local_28[2];
    local_24 = (byte *)*puVar6;
    puVar1 = (uint *)(iVar5 + 0x2c);
    bVar12 = CARRY4(*puVar1,puVar6[2] - 2);
    *puVar1 = *puVar1 + (puVar6[2] - 2);
    bVar15 = *puVar1 == 0;
    iVar8 = 3;
    pbVar9 = local_24;
    pbVar11 = (byte *)(unaff_EBP + 0xc19be);
    do {
      if (iVar8 == 0) break;
      iVar8 = iVar8 + -1;
      bVar12 = *pbVar9 < *pbVar11;
      bVar15 = *pbVar9 == *pbVar11;
      pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar15);
    if ((!bVar12 && !bVar15) == bVar12) {
      local_3c[0] = iVar5;
      local_3c[0] = FUN_00175280();
      goto LAB_001778fb;
    }
    iVar8 = puVar6[3];
    if (iVar8 != 1) {
      if (iVar8 < 2) goto joined_r0x00177952;
      if (iVar8 == 2) {
        if (local_24 == (byte *)0x0) {
          return (undefined4 *)0x0;
        }
        if ((((char *)*puVar6)[1] == 'c') &&
           ((cVar2 = *(char *)*puVar6, (byte)(cVar2 + 0x9dU) < 2 || ((byte)(cVar2 + 0x8eU) < 2)))) {
          local_3c[0] = iVar5;
          local_20 = FUN_00175280();
          uVar13 = (undefined1 *)0xffffffef < local_3c;
          uVar16 = &stack0x00000000 == (undefined1 *)0x2c;
        }
        else {
          uVar13 = *local_24 < 0x66;
          uVar16 = *local_24 == 0x66;
          if ((bool)uVar16) {
            uStack_30 = 0x177b21;
            local_20 = FUN_00175bc0();
          }
          else {
            uStack_30 = 0x177a14;
            local_20 = MASKED();
          }
        }
        iVar8 = 3;
        pbVar9 = local_24;
        pbVar11 = (byte *)(unaff_EBP + 0xc05f2);
        do {
          if (iVar8 == 0) break;
          iVar8 = iVar8 + -1;
          uVar13 = *pbVar9 < *pbVar11;
          uVar16 = *pbVar9 == *pbVar11;
          pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
          pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
        } while ((bool)uVar16);
        bVar12 = false;
        bVar15 = (!(bool)uVar13 && !(bool)uVar16) == (bool)uVar13;
        if (bVar15) {
          uStack_30 = 0x177b13;
          iVar8 = FUN_00177dc0();
        }
        else {
          iVar8 = 3;
          pbVar9 = local_24;
          pbVar11 = (byte *)(unaff_EBP + 0xc0250);
          do {
            if (iVar8 == 0) break;
            iVar8 = iVar8 + -1;
            bVar12 = *pbVar9 < *pbVar11;
            bVar15 = *pbVar9 == *pbVar11;
            pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
            pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
          } while (bVar15);
          bVar14 = false;
          bVar12 = (!bVar12 && !bVar15) == bVar12;
          if (!bVar12) {
            iVar8 = 3;
            pbVar9 = local_24;
            pbVar11 = (byte *)(unaff_EBP + 0xba422);
            do {
              if (iVar8 == 0) break;
              iVar8 = iVar8 + -1;
              bVar14 = *pbVar9 < *pbVar11;
              bVar12 = *pbVar9 == *pbVar11;
              pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
              pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
            } while (bVar12);
            if ((!bVar14 && !bVar12) != bVar14) {
              uStack_30 = 0x177b31;
              iVar8 = MASKED();
              goto LAB_00177a83;
            }
          }
          uStack_30 = 0x177a75;
          iVar8 = FUN_00175e60();
          if (**(char **)(iVar5 + 0xc) == 'I') {
            uStack_30 = 0x177b4b;
            local_3c[0] = FUN_00177490();
            iVar8 = FUN_0016dee0();
          }
        }
LAB_00177a83:
        local_3c[0] = iVar8;
        local_3c[0] = FUN_0016dee0();
        puVar6 = (undefined4 *)FUN_0016dee0();
        return puVar6;
      }
      if (iVar8 != 3) {
        return (undefined4 *)0x0;
      }
      bVar12 = false;
      bVar15 = local_24 == (byte *)0x0;
      if (bVar15) {
        return (undefined4 *)0x0;
      }
      iVar8 = 3;
      pbVar9 = local_24;
      pbVar11 = (byte *)(unaff_EBP + 0xc177f);
      do {
        if (iVar8 == 0) break;
        iVar8 = iVar8 + -1;
        bVar12 = *pbVar9 < *pbVar11;
        bVar15 = *pbVar9 == *pbVar11;
        pbVar9 = pbVar9 + (uint)bVar17 * -2 + 1;
        pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
      } while (bVar15);
      if ((!bVar12 && !bVar15) == bVar12) {
        uStack_30 = 0x177abb;
        MASKED();
      }
      else {
        if (*local_24 != 0x66) {
          if (*local_24 != 0x6e) {
            return (undefined4 *)0x0;
          }
          if ((local_24[1] != 0x77) && (local_24[1] != 0x61)) {
            return (undefined4 *)0x0;
          }
          uStack_30 = 0x17775a;
          FUN_00177dc0();
          local_3c[0] = iVar5;
          FUN_00175280();
          pcVar10 = *(char **)(iVar5 + 0xc);
          cVar2 = *pcVar10;
          if (cVar2 == 'E') {
            *(char **)(iVar5 + 0xc) = pcVar10 + 1;
            local_3c[0] = 0;
          }
          else if (cVar2 == 'p') {
            if (pcVar10[1] != 'i') {
              return (undefined4 *)0x0;
            }
            *(char **)(iVar5 + 0xc) = pcVar10 + 2;
            uStack_30 = 0x177b83;
            local_3c[0] = FUN_00177dc0();
          }
          else {
            if (cVar2 != 'i') {
              return (undefined4 *)0x0;
            }
            if (pcVar10[1] != 'l') {
              return (undefined4 *)0x0;
            }
            uStack_30 = 0x17779c;
            local_3c[0] = MASKED();
          }
          goto LAB_0017779c;
        }
        uStack_30 = 0x177b3f;
        FUN_00175bc0();
      }
      uStack_30 = 0x177ac4;
      MASKED();
      uStack_30 = 0x177acd;
      local_3c[0] = MASKED();
      if (local_3c[0] == 0) {
        return (undefined4 *)0x0;
      }
LAB_0017779c:
      local_3c[0] = FUN_0016dee0();
      local_3c[0] = FUN_0016dee0();
      puVar6 = (undefined4 *)FUN_0016dee0();
      return puVar6;
    }
    bVar3 = *local_24;
    if (((bVar3 == 0x70) || (bVar3 == 0x6d)) && (bVar3 == local_24[1])) {
      bVar3 = **(byte **)(iVar5 + 0xc);
      bVar12 = bVar3 < 0x5f;
      bVar15 = bVar3 == 0x5f;
      pbVar9 = (byte *)0x1;
      if (bVar15) {
        *(byte **)(iVar5 + 0xc) = *(byte **)(iVar5 + 0xc) + 1;
        goto LAB_001778af;
      }
    }
    else {
LAB_001778af:
      bVar12 = false;
      pbVar9 = (byte *)0x0;
      bVar15 = true;
    }
    iVar5 = 3;
    pbVar11 = (byte *)(unaff_EBP + 0xc1779);
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar12 = *local_24 < *pbVar11;
      bVar15 = *local_24 == *pbVar11;
      local_24 = local_24 + (uint)bVar17 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar17 * -2 + 1;
    } while (bVar15);
    if ((!bVar12 && !bVar15) != bVar12) goto LAB_001778cf;
    uStack_30 = 0x1779bb;
    local_24 = pbVar9;
    local_3c[0] = FUN_00177370();
  }
  else {
    if (iVar8 == 0x32) {
      iVar8 = local_28[2];
      if (iVar8 != 1) {
        if (1 < iVar8) {
          return (undefined4 *)0x0;
        }
joined_r0x00177952:
        if (iVar8 == 0) {
          local_3c[0] = 0;
          puVar6 = (undefined4 *)FUN_0016dee0();
          return puVar6;
        }
        return (undefined4 *)0x0;
      }
      uStack_30 = 0x1779e0;
      local_3c[0] = MASKED();
      goto LAB_001778fb;
    }
    if (iVar8 != 0x33) {
      return (undefined4 *)0x0;
    }
    if (**(char **)(iVar5 + 0xc) == '_') {
      *(char **)(iVar5 + 0xc) = *(char **)(iVar5 + 0xc) + 1;
      uStack_30 = 0x177946;
      local_3c[0] = FUN_00177dc0();
      goto LAB_001778fb;
    }
    pbVar9 = (byte *)0x0;
LAB_001778cf:
    uStack_30 = 0x1778da;
    local_24 = pbVar9;
    local_3c[0] = MASKED();
  }
  if (local_24 != (byte *)0x0) {
    local_3c[0] = FUN_0016dee0();
  }
LAB_001778fb:
  puVar6 = (undefined4 *)FUN_0016dee0();
  return puVar6;
}

