
/* WARNING: Unknown calling convention */

node * parse_command(void)

{
  bool bVar1;
  bool bVar2;
  bool bVar3;
  int iVar4;
  int iVar5;
  uint uVar6;
  int iVar7;
  node *pnVar8;
  char *pcVar9;
  node *pnVar10;
  node *pnVar11;
  char *pcVar12;
  builtincmd *pbVar13;
  long lVar14;
  node **ppnVar15;
  char **ppcVar16;
  byte *pbVar17;
  byte *pbVar18;
  node **ppnVar19;
  node **ppnVar20;
  long in_FS_OFFSET;
  undefined1 uVar21;
  bool bVar22;
  undefined1 uVar23;
  bool bVar24;
  byte bVar25;
  node *redir;
  node *args;
  node *vars;
  node *ap;
  long local_40;
  
  bVar25 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  redir = (node *)0x0;
  iVar7 = g_parsefile->linno;
  iVar4 = readtoken();
  switch(iVar4) {
  default:
                    /* WARNING: Subroutine does not return */
    raise_error_unexpected_syntax(-1);
  case 2:
  case 3:
  case 0x16:
    tokpushback = '\x01';
    args = (node *)0x0;
    vars = (node *)0x0;
    ap = (node *)0x0;
    iVar7 = g_parsefile->linno;
    bVar3 = false;
    bVar1 = false;
    bVar2 = true;
    ppnVar20 = &ap;
    ppnVar15 = &vars;
    ppnVar19 = &args;
    pnVar10 = (node *)0x0;
LAB_001505a5:
    while (checkkwd = bVar2, uVar6 = readtoken(), pnVar11 = redirnode, uVar6 < 0x17) {
      uVar21 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar6];
      uVar23 = (&switchD_001505ce::switchdataD_001afc54)[uVar6] == 0xffe503ac;
      switch(uVar6) {
      default:
        goto switchD_001505ce_caseD_0;
      case 2:
        *ppnVar20 = redirnode;
        ppnVar20 = &(redirnode->ncmd).assign;
        parsefname();
        pnVar10 = pnVar11;
        break;
      case 6:
      case 7:
        if (!bVar1) goto LAB_00150605;
        uVar21 = uVar6 < 6;
        uVar23 = uVar6 == 6;
        wordtext = "-a";
        if (!(bool)uVar23) {
          wordtext = "-o";
        }
      case 3:
        pnVar10 = (node *)stzalloc(0x20);
        pnVar10->type = '\x0f';
        pcVar9 = wordtext;
        (pnVar10->narg).text = wordtext;
        lVar14 = 3;
        pbVar17 = &DAT_001bc467;
        pbVar18 = (byte *)pcVar9;
        do {
          if (lVar14 == 0) break;
          lVar14 = lVar14 + -1;
          uVar21 = *pbVar17 < *pbVar18;
          uVar23 = *pbVar17 == *pbVar18;
          pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;
          pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;
        } while ((bool)uVar23);
        bVar22 = false;
        bVar24 = (!(bool)uVar21 && !(bool)uVar23) == (bool)uVar21;
        if (bVar24) {
          bVar1 = true;
        }
        else {
          lVar14 = 3;
          pbVar17 = (byte *)0x1bf6dc;
          pbVar18 = (byte *)pcVar9;
          do {
            if (lVar14 == 0) break;
            lVar14 = lVar14 + -1;
            bVar22 = *pbVar17 < *pbVar18;
            bVar24 = *pbVar17 == *pbVar18;
            pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;
            pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;
          } while (bVar24);
          if ((!bVar22 && !bVar24) == bVar22) {
            bVar1 = false;
          }
        }
        (pnVar10->narg).backquote = backquotelist;
        if (((bVar2) && (pcVar12 = endofname(pcVar9), pcVar9 != pcVar12)) && (*pcVar12 == '=')) {
          *ppnVar15 = pnVar10;
          ppnVar15 = &(pnVar10->ncmd).assign;
        }
        else {
          *ppnVar19 = pnVar10;
          ppnVar19 = &(pnVar10->ncmd).assign;
          bVar2 = false;
        }
        if (bVar3) {
          checkkwd = '\x06';
          iVar4 = readtoken();
          tokpushback = '\x01';
          if (0x19 < iVar4 - 3U) goto switchD_00150729_caseD_4;
          bVar22 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U];
          bVar24 = (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U] == 0xffe50350;
          switch(iVar4) {
          case 3:
            lVar14 = 3;
            pbVar17 = &DAT_001bc467;
            pbVar18 = (byte *)wordtext;
            goto code_r0x00150758;
          default:
            goto switchD_00150729_caseD_4;
          case 9:
            bVar3 = false;
            break;
          case 0xe:
          case 0x15:
          case 0x17:
          case 0x1a:
          case 0x1b:
          case 0x1c:
            goto switchD_001505ce_caseD_9;
          }
        }
        break;
      case 9:
        goto switchD_001505ce_caseD_9;
      case 0x16:
        goto switchD_001505ce_caseD_16;
      }
    }
    goto switchD_001505ce_caseD_0;
  case 9:
    pnVar11 = (node *)stzalloc(0x18);
    pnVar11->type = '\x04';
    (pnVar11->ncmd).linno = iVar7;
    pnVar8 = list(0);
    (pnVar11->ncmd).assign = pnVar8;
    iVar4 = 10;
    break;
  case 0xe:
    pnVar11 = (node *)stzalloc(0x18);
    pnVar11->type = '\f';
    (pnVar11->ncmd).linno = iVar7;
    iVar4 = readtoken();
    if (iVar4 != 3) {
                    /* WARNING: Subroutine does not return */
      raise_error_unexpected_syntax(3);
    }
    pcVar9 = (char *)stzalloc(0x20);
    (pnVar11->ndefun).text = pcVar9;
    *pcVar9 = '\x0f';
    *(char **)(pcVar9 + 0x10) = wordtext;
    *(nodelist **)(pcVar9 + 0x18) = backquotelist;
    checkkwd = '\a';
    iVar4 = readtoken();
    if (iVar4 != 0x18) {
                    /* WARNING: Subroutine does not return */
      raise_error_unexpected_syntax(0x18);
    }
    ppcVar16 = &(pnVar11->narg).text;
    while( true ) {
      checkkwd = '\x06';
      iVar4 = readtoken();
      if (iVar4 == 0x13) break;
      if (lasttoken == '\t') {
        readtoken();
      }
      pcVar9 = (char *)stzalloc(0x20);
      *ppcVar16 = pcVar9;
      *pcVar9 = '\r';
      ppnVar15 = (node **)(pcVar9 + 0x10);
      while( true ) {
        pnVar8 = (node *)stzalloc(0x20);
        *ppnVar15 = pnVar8;
        pnVar8->type = '\x0f';
        (pnVar8->narg).text = wordtext;
        (pnVar8->narg).backquote = backquotelist;
        ap = pnVar8;
        iVar4 = readtoken();
        if (iVar4 != 8) break;
        ppnVar15 = &(pnVar8->ncmd).assign;
        readtoken();
      }
      if (lasttoken != '\n') {
                    /* WARNING: Subroutine does not return */
        raise_error_unexpected_syntax(10);
      }
      pnVar8 = list(2);
      *(node **)(pcVar9 + 0x18) = pnVar8;
      ppcVar16 = (char **)(pcVar9 + 8);
      checkkwd = '\x06';
      iVar4 = readtoken();
      if (iVar4 == 0x13) break;
      if (iVar4 != 0xb) {
                    /* WARNING: Subroutine does not return */
        raise_error_unexpected_syntax(0xb);
      }
    }
    *ppcVar16 = (char *)0x0;
    goto LAB_001504ae;
  case 0x15:
    iVar4 = readtoken();
    if (((iVar4 != 3) || (quoteflag != '\0')) || (pcVar9 = endofname(wordtext), *pcVar9 != '\0')) {
                    /* WARNING: Subroutine does not return */
      raise_error_syntax("bad for loop variable");
    }
    pnVar11 = (node *)stzalloc(0x20);
    pnVar11->type = '\v';
    (pnVar11->ncmd).linno = iVar7;
    (pnVar11->nfor).var = wordtext;
    checkkwd = '\a';
    iVar4 = readtoken();
    if (iVar4 == 0x18) {
      ppnVar15 = &ap;
      while (iVar4 = readtoken(), iVar4 == 3) {
        pnVar8 = (node *)stzalloc(0x20);
        pnVar8->type = '\x0f';
        (pnVar8->narg).text = wordtext;
        (pnVar8->narg).backquote = backquotelist;
        *ppnVar15 = pnVar8;
        ppnVar15 = &(pnVar8->ncmd).assign;
      }
      *ppnVar15 = (node *)0x0;
      (pnVar11->ncmd).assign = ap;
      if ((lasttoken != '\x01') && (lasttoken != '\x04')) {
                    /* WARNING: Subroutine does not return */
        raise_error_unexpected_syntax(-1);
      }
    }
    else {
      pcVar9 = (char *)stzalloc(0x20);
      *pcVar9 = '\x0f';
      *(char **)(pcVar9 + 0x10) = dolatstr;
      (pnVar11->ndefun).text = pcVar9;
      if (lasttoken != '\x04') {
        tokpushback = '\x01';
      }
    }
    checkkwd = '\a';
    iVar4 = readtoken();
    if (iVar4 != 0xf) {
                    /* WARNING: Subroutine does not return */
      raise_error_unexpected_syntax(0xf);
    }
    pnVar8 = list(0);
    (pnVar11->ncmd).args = pnVar8;
    iVar4 = 0x10;
    break;
  case 0x17:
    pnVar11 = (node *)stzalloc(0x20);
    pnVar11->type = '\b';
    pnVar8 = list(0);
    (pnVar11->ncmd).assign = pnVar8;
    iVar4 = readtoken();
    if (iVar4 != 0x19) {
                    /* WARNING: Subroutine does not return */
      raise_error_unexpected_syntax(0x19);
    }
    pnVar8 = list(0);
    (pnVar11->ncmd).args = pnVar8;
    pnVar8 = pnVar11;
    while (iVar4 = readtoken(), iVar4 == 0x11) {
      pnVar10 = (node *)stzalloc(0x20);
      (pnVar8->narg).backquote = (nodelist *)pnVar10;
      pnVar10->type = '\b';
      pnVar8 = list(0);
      (pnVar10->ncmd).assign = pnVar8;
      iVar4 = readtoken();
      if (iVar4 != 0x19) {
                    /* WARNING: Subroutine does not return */
        raise_error_unexpected_syntax(0x19);
      }
      pnVar8 = list(0);
      (pnVar10->ncmd).args = pnVar8;
      pnVar8 = pnVar10;
    }
    if (lasttoken == '\x12') {
      pnVar10 = list(0);
      (pnVar8->ncmd).redirect = pnVar10;
      iVar4 = 0x14;
    }
    else {
      (pnVar8->ncmd).redirect = (node *)0x0;
      tokpushback = '\x01';
      iVar4 = 0x14;
    }
    break;
  case 0x1a:
  case 0x1b:
    pnVar11 = (node *)stzalloc(0x18);
    pnVar11->type = (lasttoken != '\x1b') + '\t';
    pnVar8 = list(0);
    (pnVar11->ncmd).assign = pnVar8;
    iVar4 = readtoken();
    if (iVar4 != 0xf) {
                    /* WARNING: Subroutine does not return */
      raise_error_unexpected_syntax(0xf);
    }
    pnVar8 = list(0);
    (pnVar11->ncmd).args = pnVar8;
    iVar4 = 0x10;
    break;
  case 0x1c:
    pnVar11 = list(0);
    iVar4 = 0x1d;
  }
  iVar5 = readtoken();
  if (iVar5 != iVar4) {
                    /* WARNING: Subroutine does not return */
    raise_error_unexpected_syntax(iVar4);
  }
LAB_001504ae:
  checkkwd = '\x03';
  ppnVar15 = &redir;
  while (iVar4 = readtoken(), iVar4 == 2) {
    *ppnVar15 = redirnode;
    ppnVar15 = &(redirnode->ncmd).assign;
    parsefname();
  }
  tokpushback = '\x01';
  *ppnVar15 = (node *)0x0;
  pnVar8 = redir;
  pnVar10 = pnVar11;
  if (redir != (node *)0x0) {
    if (pnVar11->type != '\x04') {
      pnVar10 = (node *)stzalloc(0x18);
      pnVar10->type = '\x02';
      (pnVar10->ncmd).linno = iVar7;
      (pnVar10->ncmd).assign = pnVar11;
    }
    (pnVar10->ncmd).args = pnVar8;
  }
LAB_0015082d:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return pnVar10;
switchD_001505ce_caseD_16:
  iVar4 = readtoken();
  tokpushback = '\x01';
  if (iVar4 != 3) {
                    /* WARNING: Subroutine does not return */
    raise_error_unexpected_syntax(3);
  }
  bVar3 = true;
  goto LAB_001505a5;
  while( true ) {
    lVar14 = lVar14 + -1;
    bVar22 = *pbVar17 < *pbVar18;
    bVar24 = *pbVar17 == *pbVar18;
    pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;
    pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;
    if (!bVar24) break;
code_r0x00150758:
    if (lVar14 == 0) break;
  }
  if ((!bVar22 && !bVar24) != bVar22) {
switchD_00150729_caseD_4:
                    /* WARNING: Subroutine does not return */
    raise_error_unexpected_syntax(-1);
  }
switchD_001505ce_caseD_9:
  if ((((args == (node *)0x0) || (ppnVar19 != &(args->ncmd).assign)) || (vars != (node *)0x0)) ||
     (ap != (node *)0x0)) {
switchD_001505ce_caseD_0:
LAB_00150605:
    tokpushback = '\x01';
    *ppnVar19 = (node *)0x0;
    *ppnVar15 = (node *)0x0;
    *ppnVar20 = (node *)0x0;
    pnVar10 = (node *)stzalloc(0x20);
    (pnVar10->ncmd).linno = iVar7;
    (pnVar10->ncmd).args = args;
    (pnVar10->ncmd).assign = vars;
    (pnVar10->ncmd).redirect = ap;
  }
  else {
    if ((!bVar3) && (iVar7 = readtoken(), iVar7 != 10)) {
                    /* WARNING: Subroutine does not return */
      raise_error_unexpected_syntax(10);
    }
    pcVar9 = (pnVar10->narg).text;
    pcVar12 = endofname(pcVar9);
    if ((*pcVar12 != '\0') ||
       ((pbVar13 = find_builtin(pcVar9), pbVar13 != (builtincmd *)0x0 &&
        ((*pbVar13->name & 1U) != 0)))) {
                    /* WARNING: Subroutine does not return */
      raise_error_syntax("bad function name");
    }
    pnVar10->type = '\x0e';
    checkkwd = '\a';
    (pnVar10->ncmd).assign = (pnVar10->ncmd).args;
    (pnVar10->ncmd).linno = g_parsefile->linno;
    pnVar11 = parse_command();
    (pnVar10->ncmd).args = pnVar11;
  }
  goto LAB_0015082d;
}



char * FUN_001500b6(void)

{
  undefined4 uVar1;
  bool bVar2;
  bool bVar3;
  bool bVar4;
  undefined4 uVar5;
  int iVar6;
  int iVar7;
  uint uVar8;
  char *pcVar9;
  undefined8 uVar10;
  char *pcVar11;
  undefined1 *puVar12;
  undefined1 *puVar13;
  byte *pbVar14;
  undefined8 *puVar15;
  long lVar16;
  undefined1 **unaff_RBP;
  long *plVar17;
  byte *pbVar18;
  byte *pbVar19;
  char *unaff_R12;
  long *plVar20;
  undefined1 **ppuVar21;
  long in_FS_OFFSET;
  undefined1 uVar22;
  bool bVar23;
  undefined1 uVar24;
  bool bVar25;
  byte bVar26;
  long local_60;
  long local_58;
  long local_50;
  undefined1 *local_48;
  long local_40;
  
  bVar26 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  local_60 = 0;
  uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);
  uVar5 = FUN_0014ecf5();
  switch(uVar5) {
  default:
    FUN_0014bd14(0xffffffff);
  case 0x17:
    pcVar9 = (char *)FUN_00149ab3(0x20);
    *pcVar9 = '\b';
    uVar10 = FUN_0014eeae(0);
    *(undefined8 *)(pcVar9 + 8) = uVar10;
    iVar6 = FUN_0014ecf5();
    if (iVar6 != 0x19) {
      FUN_0014bd14(0x19);
    }
    uVar10 = FUN_0014eeae(0);
    *(undefined8 *)(pcVar9 + 0x10) = uVar10;
    pcVar11 = pcVar9;
    do {
      iVar6 = FUN_0014ecf5();
      unaff_R12 = pcVar11;
      if (iVar6 != 0x11) {
        if (DAT_001c65ab == '\x12') {
          uVar10 = FUN_0014eeae(0);
          *(undefined8 *)(pcVar11 + 0x18) = uVar10;
          iVar6 = 0x14;
        }
        else {
          pcVar11[0x18] = '\0';
          pcVar11[0x19] = '\0';
          pcVar11[0x1a] = '\0';
          pcVar11[0x1b] = '\0';
          pcVar11[0x1c] = '\0';
          pcVar11[0x1d] = '\0';
          pcVar11[0x1e] = '\0';
          pcVar11[0x1f] = '\0';
          DAT_001c65ad = 1;
          iVar6 = 0x14;
        }
LAB_00150178:
        iVar7 = FUN_0014ecf5();
        if (iVar7 == iVar6) goto LAB_001504ae;
        FUN_0014bd14(iVar6);
      }
      pcVar11 = (char *)FUN_00149ab3(0x20);
      *(char **)(unaff_R12 + 0x18) = pcVar11;
      *pcVar11 = '\b';
      uVar10 = FUN_0014eeae(0);
      *(undefined8 *)(pcVar11 + 8) = uVar10;
      iVar6 = FUN_0014ecf5();
      if (iVar6 != 0x19) {
        FUN_0014bd14(0x19);
      }
      uVar10 = FUN_0014eeae(0);
      *(undefined8 *)(pcVar11 + 0x10) = uVar10;
    } while( true );
  case 2:
  case 3:
  case 0x16:
    DAT_001c65ad = 1;
    local_58 = 0;
    local_50 = 0;
    local_48 = (undefined1 *)0x0;
    uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);
    bVar4 = false;
    bVar2 = false;
    bVar3 = true;
    ppuVar21 = &local_48;
    plVar17 = &local_50;
    pcVar9 = (char *)0x0;
    plVar20 = &local_58;
LAB_001505a5:
    DAT_001c65af = bVar3;
    uVar8 = FUN_0014ecf5();
    if (uVar8 < 0x17) {
      uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];
      uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;
      switch((ulong)uVar8) {
      default:
        goto switchD_001505ce_caseD_0;
      case 2:
        goto switchD_001505ce_caseD_2;
      case 6:
      case 7:
switchD_001505ce_caseD_6:
        if (!bVar2) goto LAB_00150605;
        uVar22 = uVar8 < 6;
        uVar24 = uVar8 == 6;
        DAT_001c6498 = (byte *)0x1c08af;
        if (!(bool)uVar24) {
          DAT_001c6498 = &DAT_001bc1a5;
        }
      case 3:
        pcVar9 = (char *)FUN_00149ab3(0x20);
        *pcVar9 = '\x0f';
        pbVar18 = DAT_001c6498;
        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;
        lVar16 = 3;
        pbVar14 = &DAT_001bc467;
        pbVar19 = pbVar18;
        do {
          if (lVar16 == 0) break;
          lVar16 = lVar16 + -1;
          uVar22 = *pbVar14 < *pbVar19;
          uVar24 = *pbVar14 == *pbVar19;
          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;
          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;
        } while ((bool)uVar24);
        bVar23 = false;
        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;
        if (bVar25) {
          bVar2 = true;
        }
        else {
          lVar16 = 3;
          pbVar14 = (byte *)0x1bf6dc;
          pbVar19 = pbVar18;
          do {
            if (lVar16 == 0) break;
            lVar16 = lVar16 + -1;
            bVar23 = *pbVar14 < *pbVar19;
            bVar25 = *pbVar14 == *pbVar19;
            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;
            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;
          } while (bVar25);
          if ((!bVar23 && !bVar25) == bVar23) {
            bVar2 = false;
          }
        }
        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;
        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&
           (*pbVar14 == 0x3d)) {
          *plVar17 = (long)pcVar9;
          plVar17 = (long *)(pcVar9 + 8);
        }
        else {
          *plVar20 = (long)pcVar9;
          plVar20 = (long *)(pcVar9 + 8);
          bVar3 = false;
        }
        if (bVar4) {
          DAT_001c65af = 6;
          iVar6 = FUN_0014ecf5();
          DAT_001c65ad = 1;
          if (iVar6 - 3U < 0x1a) {
            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];
            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;
            switch(iVar6) {
            case 3:
              lVar16 = 3;
              pbVar18 = &DAT_001bc467;
              pbVar14 = DAT_001c6498;
              do {
                if (lVar16 == 0) break;
                lVar16 = lVar16 + -1;
                bVar23 = *pbVar18 < *pbVar14;
                bVar25 = *pbVar18 == *pbVar14;
                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;
                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;
              } while (bVar25);
              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;
              break;
            case 9:
              bVar4 = false;
              goto LAB_001505a5;
            case 0xe:
            case 0x15:
            case 0x17:
            case 0x1a:
            case 0x1b:
            case 0x1c:
switchD_001505ce_caseD_9:
              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&
                 (local_48 == (undefined1 *)0x0)) {
                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {
                  FUN_0014bd14(10);
                }
                uVar10 = *(undefined8 *)(pcVar9 + 0x10);
                pcVar11 = (char *)FUN_0019afcf(uVar10);
                if ((*pcVar11 != '\0') ||
                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&
                    ((*(byte *)*puVar15 & 1) != 0)))) {
                  FUN_001487a2("bad function name");
                }
                *pcVar9 = '\x0e';
                DAT_001c65af = 7;
                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);
                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);
                uVar10 = FUN_001500b6();
                *(undefined8 *)(pcVar9 + 0x10) = uVar10;
                goto LAB_0015082d;
              }
              goto switchD_001505ce_caseD_0;
            }
          }
          FUN_0014bd14(0xffffffff);
switchD_001505ce_caseD_2:
          pcVar9 = DAT_001c6488;
          *ppuVar21 = DAT_001c6488;
          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);
          FUN_0014edac();
          break;
        }
        break;
      case 9:
        goto switchD_001505ce_caseD_9;
      case 0x16:
        iVar6 = FUN_0014ecf5();
        DAT_001c65ad = 1;
        if (iVar6 != 3) {
          uVar8 = FUN_0014bd14(3);
          goto switchD_001505ce_caseD_6;
        }
        bVar4 = true;
      }
      goto LAB_001505a5;
    }
switchD_001505ce_caseD_0:
LAB_00150605:
    DAT_001c65ad = 1;
    *plVar20 = 0;
    *plVar17 = 0;
    *ppuVar21 = (undefined1 *)0x0;
    pcVar9 = (char *)FUN_00149ab3(0x20);
    *(undefined4 *)(pcVar9 + 4) = uVar1;
    *(long *)(pcVar9 + 0x10) = local_58;
    *(long *)(pcVar9 + 8) = local_50;
    *(undefined1 **)(pcVar9 + 0x18) = local_48;
    break;
  case 9:
    pcVar9 = (char *)FUN_00149ab3(0x18);
    *pcVar9 = '\x04';
    *(undefined4 *)(pcVar9 + 4) = uVar1;
    uVar10 = FUN_0014eeae(0);
    *(undefined8 *)(pcVar9 + 8) = uVar10;
    iVar6 = 10;
    goto LAB_00150178;
  case 0xe:
    pcVar9 = (char *)FUN_00149ab3(0x18);
    *pcVar9 = '\f';
    *(undefined4 *)(pcVar9 + 4) = uVar1;
    iVar6 = FUN_0014ecf5();
    if (iVar6 != 3) {
      FUN_0014bd14(3);
    }
    puVar12 = (undefined1 *)FUN_00149ab3(0x20);
    *(undefined1 **)(pcVar9 + 8) = puVar12;
    *puVar12 = 0xf;
    *(byte **)(puVar12 + 0x10) = DAT_001c6498;
    *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;
    DAT_001c65af = 7;
    iVar6 = FUN_0014ecf5();
    if (iVar6 != 0x18) {
      FUN_0014bd14(0x18);
    }
    pcVar11 = pcVar9 + 0x10;
    do {
      DAT_001c65af = 6;
      iVar6 = FUN_0014ecf5();
      if (iVar6 == 0x13) goto LAB_001504a6;
      if (DAT_001c65ab == '\t') {
        FUN_0014ecf5();
      }
      puVar12 = (undefined1 *)FUN_00149ab3(0x20);
      *(undefined1 **)pcVar11 = puVar12;
      *puVar12 = 0xd;
      puVar15 = (undefined8 *)(puVar12 + 0x10);
      while( true ) {
        puVar13 = (undefined1 *)FUN_00149ab3(0x20);
        *puVar15 = puVar13;
        *puVar13 = 0xf;
        *(byte **)(puVar13 + 0x10) = DAT_001c6498;
        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;
        local_48 = puVar13;
        iVar6 = FUN_0014ecf5();
        if (iVar6 != 8) break;
        puVar15 = (undefined8 *)(puVar13 + 8);
        FUN_0014ecf5();
      }
      if (DAT_001c65ab != '\n') {
        FUN_0014bd14(10);
      }
      uVar10 = FUN_0014eeae(2);
      *(undefined8 *)(puVar12 + 0x18) = uVar10;
      pcVar11 = puVar12 + 8;
      DAT_001c65af = 6;
      iVar6 = FUN_0014ecf5();
      if (iVar6 == 0x13) goto LAB_001504a6;
    } while (iVar6 == 0xb);
    FUN_0014bd14(0xb);
LAB_001504a6:
    pcVar11[0] = '\0';
    pcVar11[1] = '\0';
    pcVar11[2] = '\0';
    pcVar11[3] = '\0';
    pcVar11[4] = '\0';
    pcVar11[5] = '\0';
    pcVar11[6] = '\0';
    pcVar11[7] = '\0';
LAB_001504ae:
    DAT_001c65af = 3;
    plVar17 = &local_60;
    while (iVar6 = FUN_0014ecf5(), iVar6 == 2) {
      *plVar17 = (long)DAT_001c6488;
      plVar17 = (long *)(DAT_001c6488 + 8);
      FUN_0014edac();
    }
    DAT_001c65ad = 1;
    *plVar17 = 0;
    lVar16 = local_60;
    if (local_60 != 0) {
      if (*pcVar9 != '\x04') {
        pcVar11 = (char *)FUN_00149ab3(0x18);
        *pcVar11 = '\x02';
        *(undefined4 *)(pcVar11 + 4) = uVar1;
        *(char **)(pcVar11 + 8) = pcVar9;
        pcVar9 = pcVar11;
      }
      *(long *)(pcVar9 + 0x10) = lVar16;
    }
    break;
  case 0x15:
    iVar6 = FUN_0014ecf5();
    if (((iVar6 != 3) || (DAT_001c65ac != '\0')) ||
       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')) {
      FUN_001487a2("bad for loop variable");
    }
    pcVar9 = (char *)FUN_00149ab3(0x20);
    *pcVar9 = '\v';
    *(undefined4 *)(pcVar9 + 4) = uVar1;
    *(byte **)(pcVar9 + 0x18) = DAT_001c6498;
    DAT_001c65af = 7;
    iVar6 = FUN_0014ecf5();
    if (iVar6 == 0x18) goto LAB_00150350;
    puVar12 = (undefined1 *)FUN_00149ab3(0x20);
    *puVar12 = 0xf;
    *(undefined **)(puVar12 + 0x10) = &DAT_001bc672;
    *(undefined1 **)(pcVar9 + 8) = puVar12;
    if (DAT_001c65ab != '\x04') {
      DAT_001c65ad = 1;
    }
LAB_001502d6:
    DAT_001c65af = 7;
    iVar6 = FUN_0014ecf5();
    if (iVar6 == 0xf) {
      uVar10 = FUN_0014eeae(0);
      *(undefined8 *)(pcVar9 + 0x10) = uVar10;
      iVar6 = 0x10;
      goto LAB_00150178;
    }
    FUN_0014bd14(0xf);
    do {
      puVar12 = (undefined1 *)FUN_00149ab3(0x20);
      *puVar12 = 0xf;
      *(byte **)(puVar12 + 0x10) = DAT_001c6498;
      *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;
      *unaff_RBP = puVar12;
      unaff_RBP = (undefined1 **)(puVar12 + 8);
      while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {
        *unaff_RBP = (undefined1 *)0x0;
        *(undefined1 **)(pcVar9 + 8) = local_48;
        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;
        FUN_0014bd14(0xffffffff);
LAB_00150350:
        unaff_RBP = &local_48;
      }
    } while( true );
  case 0x1a:
  case 0x1b:
    pcVar9 = (char *)FUN_00149ab3(0x18);
    *pcVar9 = (DAT_001c65ab != '\x1b') + '\t';
    uVar10 = FUN_0014eeae(0);
    *(undefined8 *)(pcVar9 + 8) = uVar10;
    iVar6 = FUN_0014ecf5();
    if (iVar6 != 0xf) {
      FUN_0014bd14(0xf);
    }
    uVar10 = FUN_0014eeae(0);
    *(undefined8 *)(pcVar9 + 0x10) = uVar10;
    iVar6 = 0x10;
    goto LAB_00150178;
  case 0x1c:
    pcVar9 = (char *)FUN_0014eeae(0);
    iVar6 = 0x1d;
    goto LAB_00150178;
  }
LAB_0015082d:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return pcVar9;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x48
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x38],RAX
XOR EAX,EAX
MOV qword ptr [RSP + 0x18],0x0
MOV RAX,qword ptr [0x001c6260]
MOV R13D,dword ptr [RAX + 0x8]
CALL 0x0014ecf5
CMP EAX,0x1c
JA 0x00150104
MOV EAX,EAX
LEA RDX,[0x1afbe0]
MOVSXD RAX,dword ptr [RDX + RAX*0x4]
ADD RAX,RDX
JMP RAX
MOV EDI,0xffffffff
CALL 0x0014bd14
MOV EDI,0x20
CALL 0x00149ab3
MOV RBX,RAX
MOV byte ptr [RAX],0x8
MOV EDI,0x0
CALL 0x0014eeae
MOV qword ptr [RBX + 0x8],RAX
CALL 0x0014ecf5
CMP EAX,0x19
JZ 0x00150140
MOV EDI,0x19
CALL 0x0014bd14
MOV EDI,0x0
CALL 0x0014eeae
MOV qword ptr [RBX + 0x10],RAX
MOV R12,RBX
CALL 0x0014ecf5
CMP EAX,0x11
JZ 0x0015018c
CMP byte ptr [0x001c65ab],0x12
JNZ 0x001501d9
MOV EDI,0x0
CALL 0x0014eeae
MOV qword ptr [R12 + 0x18],RAX
MOV EBP,0x14
CALL 0x0014ecf5
CMP EAX,EBP
JZ 0x001504ae
MOV EDI,EBP
CALL 0x0014bd14
MOV EDI,0x20
CALL 0x00149ab3
MOV RBP,RAX
MOV qword ptr [R12 + 0x18],RAX
MOV byte ptr [RAX],0x8
MOV EDI,0x0
CALL 0x0014eeae
MOV qword ptr [RBP + 0x8],RAX
CALL 0x0014ecf5
CMP EAX,0x19
JZ 0x001501c3
MOV EDI,0x19
CALL 0x0014bd14
MOV EDI,0x0
CALL 0x0014eeae
MOV qword ptr [RBP + 0x10],RAX
MOV R12,RBP
JMP 0x00150151
MOV qword ptr [R12 + 0x18],0x0
MOV byte ptr [0x001c65ad],0x1
MOV EBP,0x14
JMP 0x00150178
MOV EDI,0x18
CALL 0x00149ab3
MOV RBX,RAX
CMP byte ptr [0x001c65ab],0x1b
SETNZ AL
ADD EAX,0x9
MOV byte ptr [RBX],AL
MOV EDI,0x0
CALL 0x0014eeae
MOV qword ptr [RBX + 0x8],RAX
CALL 0x0014ecf5
CMP EAX,0xf
JZ 0x0015022e
MOV EDI,0xf
CALL 0x0014bd14
MOV EDI,0x0
CALL 0x0014eeae
MOV qword ptr [RBX + 0x10],RAX
MOV EBP,0x10
JMP 0x00150178
CALL 0x0014ecf5
CMP EAX,0x3
JNZ 0x0015026a
CMP byte ptr [0x001c65ac],0x0
JNZ 0x0015026a
MOV RDI,qword ptr [0x001c6498]
CALL 0x0019afcf
CMP byte ptr [RAX],0x0
JZ 0x00150276
LEA RDI,[0x1bc1a8]
CALL 0x001487a2
MOV EDI,0x20
CALL 0x00149ab3
MOV RBX,RAX
MOV byte ptr [RAX],0xb
MOV dword ptr [RAX + 0x4],R13D
MOV RAX,qword ptr [0x001c6498]
MOV qword ptr [RBX + 0x18],RAX
MOV byte ptr [0x001c65af],0x7
CALL 0x0014ecf5
CMP EAX,0x18
JZ 0x00150350
MOV EDI,0x20
CALL 0x00149ab3
MOV byte ptr [RAX],0xf
LEA RCX,[0x1bc672]
MOV qword ptr [RAX + 0x10],RCX
MOV qword ptr [RBX + 0x8],RAX
CMP byte ptr [0x001c65ab],0x4
JZ 0x001502d6
MOV byte ptr [0x001c65ad],0x1
MOV byte ptr [0x001c65af],0x7
CALL 0x0014ecf5
CMP EAX,0xf
JZ 0x00150357
MOV EDI,0xf
CALL 0x0014bd14
MOV EDI,0x20
CALL 0x00149ab3
MOV byte ptr [RAX],0xf
MOV RDX,qword ptr [0x001c6498]
MOV qword ptr [RAX + 0x10],RDX
MOV RDX,qword ptr [0x001c6490]
MOV qword ptr [RAX + 0x18],RDX
MOV qword ptr [RBP],RAX
LEA RBP,[RAX + 0x8]
CALL 0x0014ecf5
CMP EAX,0x3
JZ 0x001502f1
MOV qword ptr [RBP],0x0
MOV RAX,qword ptr [RSP + 0x30]
MOV qword ptr [RBX + 0x8],RAX
MOVZX EAX,byte ptr [0x001c65ab]
CMP AL,0x1
JZ 0x001502d6
CMP AL,0x4
JZ 0x001502d6
MOV EDI,0xffffffff
CALL 0x0014bd14
LEA RBP,[RSP + 0x30]
JMP 0x0015031c
MOV EDI,0x0
CALL 0x0014eeae
MOV qword ptr [RBX + 0x10],RAX
MOV EBP,0x10
JMP 0x00150178
MOV EDI,0x18
CALL 0x00149ab3
MOV RBX,RAX
MOV byte ptr [RAX],0xc
MOV dword ptr [RAX + 0x4],R13D
CALL 0x0014ecf5
CMP EAX,0x3
JZ 0x00150397
MOV EDI,0x3
CALL 0x0014bd14
MOV EDI,0x20
CALL 0x00149ab3
MOV qword ptr [RBX + 0x8],RAX
MOV byte ptr [RAX],0xf
MOV RDX,qword ptr [0x001c6498]
MOV qword ptr [RAX + 0x10],RDX
MOV RDX,qword ptr [0x001c6490]
MOV qword ptr [RAX + 0x18],RDX
MOV byte ptr [0x001c65af],0x7
CALL 0x0014ecf5
CMP EAX,0x18
JZ 0x001503d9
MOV EDI,0x18
CALL 0x0014bd14
LEA RBP,[RBX + 0x10]
MOV byte ptr [0x001c65af],0x6
CALL 0x0014ecf5
CMP EAX,0x13
JZ 0x001504a6
CMP byte ptr [0x001c65ab],0x9
JNZ 0x00150400
CALL 0x0014ecf5
MOV EDI,0x20
CALL 0x00149ab3
MOV R12,RAX
MOV qword ptr [RBP],RAX
MOV byte ptr [RAX],0xd
LEA R14,[RAX + 0x10]
MOV EDI,0x20
CALL 0x00149ab3
MOV RBP,RAX
MOV qword ptr [RSP + 0x30],RAX
MOV qword ptr [R14],RAX
MOV byte ptr [RAX],0xf
MOV RAX,qword ptr [0x001c6498]
MOV qword ptr [RBP + 0x10],RAX
MOV RAX,qword ptr [0x001c6490]
MOV qword ptr [RBP + 0x18],RAX
CALL 0x0014ecf5
CMP EAX,0x8
JNZ 0x0015045b
LEA R14,[RBP + 0x8]
CALL 0x0014ecf5
JMP 0x00150418
CMP byte ptr [0x001c65ab],0xa
JZ 0x0015046e
MOV EDI,0xa
CALL 0x0014bd14
MOV EDI,0x2
CALL 0x0014eeae
MOV qword ptr [R12 + 0x18],RAX
LEA RBP,[R12 + 0x8]
MOV byte ptr [0x001c65af],0x6
CALL 0x0014ecf5
CMP EAX,0x13
JZ 0x001504a6
CMP EAX,0xb
JZ 0x001503dd
MOV EDI,0xb
CALL 0x0014bd14
MOV qword ptr [RBP],0x0
MOV byte ptr [0x001c65af],0x3
LEA RBP,[RSP + 0x18]
CALL 0x0014ecf5
CMP EAX,0x2
JZ 0x00150851
MOV byte ptr [0x001c65ad],0x1
MOV qword ptr [RBP],0x0
MOV RBP,qword ptr [RSP + 0x18]
TEST RBP,RBP
JZ 0x0015082d
CMP byte ptr [RBX],0x4
JZ 0x00150502
MOV EDI,0x18
CALL 0x00149ab3
MOV byte ptr [RAX],0x2
MOV dword ptr [RAX + 0x4],R13D
MOV qword ptr [RAX + 0x8],RBX
MOV RBX,RAX
MOV qword ptr [RBX + 0x10],RBP
JMP 0x0015082d
MOV EDI,0x18
CALL 0x00149ab3
MOV RBX,RAX
MOV byte ptr [RAX],0x4
MOV dword ptr [RAX + 0x4],R13D
MOV EDI,0x0
CALL 0x0014eeae
MOV qword ptr [RBX + 0x8],RAX
MOV EBP,0xa
JMP 0x00150178
MOV EDI,0x0
CALL 0x0014eeae
MOV RBX,RAX
MOV EBP,0x1d
JMP 0x00150178
MOV byte ptr [0x001c65ad],0x1
MOV qword ptr [RSP + 0x20],0x0
MOV qword ptr [RSP + 0x28],0x0
MOV qword ptr [RSP + 0x30],0x0
MOV RAX,qword ptr [0x001c6260]
MOV EAX,dword ptr [RAX + 0x8]
MOV dword ptr [RSP + 0xc],EAX
MOV byte ptr [RSP + 0x7],0x0
MOV R13D,0x0
MOV dword ptr [RSP + 0x8],0x1
LEA R14,[RSP + 0x30]
LEA R15,[RSP + 0x28]
MOV EBX,0x0
LEA R12,[RSP + 0x20]
MOVZX EAX,byte ptr [RSP + 0x8]
MOV byte ptr [0x001c65af],AL
CALL 0x0014ecf5
CMP EAX,0x16
JA 0x00150845
MOV EDX,EAX
LEA RCX,[0x1afc54]
MOVSXD RDX,dword ptr [RCX + RDX*0x4]
ADD RDX,RCX
JMP RDX
MOV byte ptr [RSP + 0x7],0x1
JMP 0x001505a5
MOV byte ptr [RSP + 0x7],0x0
JMP 0x001505a5
CALL 0x0014ecf5
MOV byte ptr [0x001c65ad],0x1
CMP EAX,0x3
JZ 0x001505d0
MOV EDI,0x3
CALL 0x0014bd14
TEST R13B,R13B
JNZ 0x0015064f
MOV byte ptr [0x001c65ad],0x1
MOV qword ptr [R12],0x0
MOV qword ptr [R15],0x0
MOV qword ptr [R14],0x0
MOV EDI,0x20
CALL 0x00149ab3
MOV RBX,RAX
MOV EAX,dword ptr [RSP + 0xc]
MOV dword ptr [RBX + 0x4],EAX
MOV RAX,qword ptr [RSP + 0x20]
MOV qword ptr [RBX + 0x10],RAX
MOV RAX,qword ptr [RSP + 0x28]
MOV qword ptr [RBX + 0x8],RAX
MOV RAX,qword ptr [RSP + 0x30]
MOV qword ptr [RBX + 0x18],RAX
JMP 0x0015082d
CMP EAX,0x6
LEA RAX,[0x1c08af]
LEA RDX,[0x1bc1a5]
CMOVNZ RAX,RDX
MOV qword ptr [0x001c6498],RAX
MOV EDI,0x20
CALL 0x00149ab3
MOV RBX,RAX
MOV byte ptr [RAX],0xf
MOV RBP,qword ptr [0x001c6498]
MOV qword ptr [RAX + 0x10],RBP
MOV ECX,0x3
LEA RSI,[0x1bc467]
MOV RDI,RBP
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0015072b
MOV ECX,0x3
LEA RSI,[0x1bf6dc]
MOV RDI,RBP
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
MOVSX EAX,AL
TEST EAX,EAX
MOV EAX,0x0
CMOVZ R13D,EAX
MOV RAX,qword ptr [0x001c6490]
MOV qword ptr [RBX + 0x18],RAX
CMP dword ptr [RSP + 0x8],0x0
JZ 0x00150733
MOV RDI,RBP
CALL 0x0019afcf
CMP RBP,RAX
JZ 0x00150733
CMP byte ptr [RAX],0x3d
JNZ 0x00150733
MOV qword ptr [R15],RBX
LEA R15,[RBX + 0x8]
CMP byte ptr [RSP + 0x7],0x0
JZ 0x001505a5
MOV byte ptr [0x001c65af],0x6
CALL 0x0014ecf5
MOV byte ptr [0x001c65ad],0x1
SUB EAX,0x3
CMP EAX,0x19
JA 0x00150763
MOV EAX,EAX
LEA RSI,[0x1afcb0]
MOVSXD RAX,dword ptr [RSI + RAX*0x4]
ADD RAX,RSI
JMP RAX
MOV R13D,0x1
JMP 0x001506c8
MOV qword ptr [R12],RBX
LEA R12,[RBX + 0x8]
MOV dword ptr [RSP + 0x8],0x0
JMP 0x001506f3
MOV ECX,0x3
LEA RSI,[0x1bc467]
MOV RDI,qword ptr [0x001c6498]
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00150785
MOV EDI,0xffffffff
CALL 0x0014bd14
MOV RBX,qword ptr [0x001c6488]
MOV qword ptr [R14],RBX
LEA R14,[RBX + 0x8]
CALL 0x0014edac
JMP 0x001505a5
MOV RAX,qword ptr [RSP + 0x20]
TEST RAX,RAX
JZ 0x00150845
ADD RAX,0x8
CMP R12,RAX
JNZ 0x00150845
CMP qword ptr [RSP + 0x28],0x0
JNZ 0x00150845
CMP qword ptr [RSP + 0x30],0x0
JNZ 0x00150845
CMP byte ptr [RSP + 0x7],0x0
JNZ 0x001507d3
CALL 0x0014ecf5
CMP EAX,0xa
JZ 0x001507d3
MOV EDI,0xa
CALL 0x0014bd14
MOV RBP,qword ptr [RBX + 0x10]
MOV RDI,RBP
CALL 0x0019afcf
CMP byte ptr [RAX],0x0
JNZ 0x001507f9
MOV RDI,RBP
CALL 0x001472bc
TEST RAX,RAX
JZ 0x00150805
MOV RAX,qword ptr [RAX]
TEST byte ptr [RAX],0x1
JZ 0x00150805
LEA RDI,[0x1bc1be]
CALL 0x001487a2
MOV byte ptr [RBX],0xe
MOV byte ptr [0x001c65af],0x7
MOV RAX,qword ptr [RBX + 0x10]
MOV qword ptr [RBX + 0x8],RAX
MOV RAX,qword ptr [0x001c6260]
MOV EAX,dword ptr [RAX + 0x8]
MOV dword ptr [RBX + 0x4],EAX
CALL 0x001500b6
MOV qword ptr [RBX + 0x10],RAX
MOV RAX,RBX
MOV RSI,qword ptr [RSP + 0x38]
XOR RSI,qword ptr FS:[0x28]
JZ 0x0015086a
CALL 0x0010b500
MOV byte ptr [0x001c65ad],0x1
JMP 0x00150605
MOV RAX,qword ptr [0x001c6488]
MOV qword ptr [RBP],RAX
LEA RBP,[RAX + 0x8]
CALL 0x0014edac
JMP 0x001504ba
ADD RSP,0x48
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
(translation_unit "char * FUN_001500b6(void)\n\n{\n  undefined4 uVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  char *pcVar9;\n  undefined8 uVar10;\n  char *pcVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  byte *pbVar14;\n  undefined8 *puVar15;\n  long lVar16;\n  undefined1 **unaff_RBP;\n  long *plVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  char *unaff_R12;\n  long *plVar20;\n  undefined1 **ppuVar21;\n  long in_FS_OFFSET;\n  undefined1 uVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  byte bVar26;\n  long local_60;\n  long local_58;\n  long local_50;\n  undefined1 *local_48;\n  long local_40;\n  \n  bVar26 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_60 = 0;\n  uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n  uVar5 = FUN_0014ecf5();\n  switch(uVar5) {\n  default:\n    FUN_0014bd14(0xffffffff);\n  case 0x17:\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\b';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x19) {\n      FUN_0014bd14(0x19);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    pcVar11 = pcVar9;\n    do {\n      iVar6 = FUN_0014ecf5();\n      unaff_R12 = pcVar11;\n      if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }\n      pcVar11 = (char *)FUN_00149ab3(0x20);\n      *(char **)(unaff_R12 + 0x18) = pcVar11;\n      *pcVar11 = '\b';\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 8) = uVar10;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 0x10) = uVar10;\n    } while( true );\n  case 2:\n  case 3:\n  case 0x16:\n    DAT_001c65ad = 1;\n    local_58 = 0;\n    local_50 = 0;\n    local_48 = (undefined1 *)0x0;\n    uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n    bVar4 = false;\n    bVar2 = false;\n    bVar3 = true;\n    ppuVar21 = &local_48;\n    plVar17 = &local_50;\n    pcVar9 = (char *)0x0;\n    plVar20 = &local_58;\nLAB_001505a5:\n    DAT_001c65af = bVar3;\n    uVar8 = FUN_0014ecf5();\n    if (uVar8 < 0x17) {\n      uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];\n      uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;\n      switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }\n      goto LAB_001505a5;\n    }\nswitchD_001505ce_caseD_0:\nLAB_00150605:\n    DAT_001c65ad = 1;\n    *plVar20 = 0;\n    *plVar17 = 0;\n    *ppuVar21 = (undefined1 *)0x0;\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(long *)(pcVar9 + 0x10) = local_58;\n    *(long *)(pcVar9 + 8) = local_50;\n    *(undefined1 **)(pcVar9 + 0x18) = local_48;\n    break;\n  case 9:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\x04';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = 10;\n    goto LAB_00150178;\n  case 0xe:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\f';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 3) {\n      FUN_0014bd14(3);\n    }\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    *puVar12 = 0xf;\n    *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n    *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x18) {\n      FUN_0014bd14(0x18);\n    }\n    pcVar11 = pcVar9 + 0x10;\n    do {\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n      if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *(undefined1 **)pcVar11 = puVar12;\n      *puVar12 = 0xd;\n      puVar15 = (undefined8 *)(puVar12 + 0x10);\n      while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }\n      if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }\n      uVar10 = FUN_0014eeae(2);\n      *(undefined8 *)(puVar12 + 0x18) = uVar10;\n      pcVar11 = puVar12 + 8;\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n    } while (iVar6 == 0xb);\n    FUN_0014bd14(0xb);\nLAB_001504a6:\n    pcVar11[0] = '\0';\n    pcVar11[1] = '\0';\n    pcVar11[2] = '\0';\n    pcVar11[3] = '\0';\n    pcVar11[4] = '\0';\n    pcVar11[5] = '\0';\n    pcVar11[6] = '\0';\n    pcVar11[7] = '\0';\nLAB_001504ae:\n    DAT_001c65af = 3;\n    plVar17 = &local_60;\n    while (iVar6 = FUN_0014ecf5(), iVar6 == 2) {\n      *plVar17 = (long)DAT_001c6488;\n      plVar17 = (long *)(DAT_001c6488 + 8);\n      FUN_0014edac();\n    }\n    DAT_001c65ad = 1;\n    *plVar17 = 0;\n    lVar16 = local_60;\n    if (local_60 != 0) {\n      if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }\n      *(long *)(pcVar9 + 0x10) = lVar16;\n    }\n    break;\n  case 0x15:\n    iVar6 = FUN_0014ecf5();\n    if (((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')) {\n      FUN_001487a2("bad for loop variable");\n    }\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\v';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(byte **)(pcVar9 + 0x18) = DAT_001c6498;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0x18) goto LAB_00150350;\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *puVar12 = 0xf;\n    *(undefined **)(puVar12 + 0x10) = &DAT_001bc672;\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    if (DAT_001c65ab != '\x04') {\n      DAT_001c65ad = 1;\n    }\nLAB_001502d6:\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0xf) {\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n      iVar6 = 0x10;\n      goto LAB_00150178;\n    }\n    FUN_0014bd14(0xf);\n    do {\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *puVar12 = 0xf;\n      *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n      *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n      *unaff_RBP = puVar12;\n      unaff_RBP = (undefined1 **)(puVar12 + 8);\n      while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }\n    } while( true );\n  case 0x1a:\n  case 0x1b:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = (DAT_001c65ab != '\x1b') + '\t';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0xf) {\n      FUN_0014bd14(0xf);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    iVar6 = 0x10;\n    goto LAB_00150178;\n  case 0x1c:\n    pcVar9 = (char *)FUN_0014eeae(0);\n    iVar6 = 0x1d;\n    goto LAB_00150178;\n  }\nLAB_0015082d:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return pcVar9;\n}\n\n" (function_definition "char * FUN_001500b6(void)\n\n{\n  undefined4 uVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  char *pcVar9;\n  undefined8 uVar10;\n  char *pcVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  byte *pbVar14;\n  undefined8 *puVar15;\n  long lVar16;\n  undefined1 **unaff_RBP;\n  long *plVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  char *unaff_R12;\n  long *plVar20;\n  undefined1 **ppuVar21;\n  long in_FS_OFFSET;\n  undefined1 uVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  byte bVar26;\n  long local_60;\n  long local_58;\n  long local_50;\n  undefined1 *local_48;\n  long local_40;\n  \n  bVar26 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_60 = 0;\n  uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n  uVar5 = FUN_0014ecf5();\n  switch(uVar5) {\n  default:\n    FUN_0014bd14(0xffffffff);\n  case 0x17:\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\b';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x19) {\n      FUN_0014bd14(0x19);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    pcVar11 = pcVar9;\n    do {\n      iVar6 = FUN_0014ecf5();\n      unaff_R12 = pcVar11;\n      if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }\n      pcVar11 = (char *)FUN_00149ab3(0x20);\n      *(char **)(unaff_R12 + 0x18) = pcVar11;\n      *pcVar11 = '\b';\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 8) = uVar10;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 0x10) = uVar10;\n    } while( true );\n  case 2:\n  case 3:\n  case 0x16:\n    DAT_001c65ad = 1;\n    local_58 = 0;\n    local_50 = 0;\n    local_48 = (undefined1 *)0x0;\n    uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n    bVar4 = false;\n    bVar2 = false;\n    bVar3 = true;\n    ppuVar21 = &local_48;\n    plVar17 = &local_50;\n    pcVar9 = (char *)0x0;\n    plVar20 = &local_58;\nLAB_001505a5:\n    DAT_001c65af = bVar3;\n    uVar8 = FUN_0014ecf5();\n    if (uVar8 < 0x17) {\n      uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];\n      uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;\n      switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }\n      goto LAB_001505a5;\n    }\nswitchD_001505ce_caseD_0:\nLAB_00150605:\n    DAT_001c65ad = 1;\n    *plVar20 = 0;\n    *plVar17 = 0;\n    *ppuVar21 = (undefined1 *)0x0;\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(long *)(pcVar9 + 0x10) = local_58;\n    *(long *)(pcVar9 + 8) = local_50;\n    *(undefined1 **)(pcVar9 + 0x18) = local_48;\n    break;\n  case 9:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\x04';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = 10;\n    goto LAB_00150178;\n  case 0xe:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\f';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 3) {\n      FUN_0014bd14(3);\n    }\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    *puVar12 = 0xf;\n    *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n    *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x18) {\n      FUN_0014bd14(0x18);\n    }\n    pcVar11 = pcVar9 + 0x10;\n    do {\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n      if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *(undefined1 **)pcVar11 = puVar12;\n      *puVar12 = 0xd;\n      puVar15 = (undefined8 *)(puVar12 + 0x10);\n      while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }\n      if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }\n      uVar10 = FUN_0014eeae(2);\n      *(undefined8 *)(puVar12 + 0x18) = uVar10;\n      pcVar11 = puVar12 + 8;\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n    } while (iVar6 == 0xb);\n    FUN_0014bd14(0xb);\nLAB_001504a6:\n    pcVar11[0] = '\0';\n    pcVar11[1] = '\0';\n    pcVar11[2] = '\0';\n    pcVar11[3] = '\0';\n    pcVar11[4] = '\0';\n    pcVar11[5] = '\0';\n    pcVar11[6] = '\0';\n    pcVar11[7] = '\0';\nLAB_001504ae:\n    DAT_001c65af = 3;\n    plVar17 = &local_60;\n    while (iVar6 = FUN_0014ecf5(), iVar6 == 2) {\n      *plVar17 = (long)DAT_001c6488;\n      plVar17 = (long *)(DAT_001c6488 + 8);\n      FUN_0014edac();\n    }\n    DAT_001c65ad = 1;\n    *plVar17 = 0;\n    lVar16 = local_60;\n    if (local_60 != 0) {\n      if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }\n      *(long *)(pcVar9 + 0x10) = lVar16;\n    }\n    break;\n  case 0x15:\n    iVar6 = FUN_0014ecf5();\n    if (((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')) {\n      FUN_001487a2("bad for loop variable");\n    }\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\v';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(byte **)(pcVar9 + 0x18) = DAT_001c6498;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0x18) goto LAB_00150350;\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *puVar12 = 0xf;\n    *(undefined **)(puVar12 + 0x10) = &DAT_001bc672;\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    if (DAT_001c65ab != '\x04') {\n      DAT_001c65ad = 1;\n    }\nLAB_001502d6:\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0xf) {\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n      iVar6 = 0x10;\n      goto LAB_00150178;\n    }\n    FUN_0014bd14(0xf);\n    do {\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *puVar12 = 0xf;\n      *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n      *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n      *unaff_RBP = puVar12;\n      unaff_RBP = (undefined1 **)(puVar12 + 8);\n      while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }\n    } while( true );\n  case 0x1a:\n  case 0x1b:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = (DAT_001c65ab != '\x1b') + '\t';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0xf) {\n      FUN_0014bd14(0xf);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    iVar6 = 0x10;\n    goto LAB_00150178;\n  case 0x1c:\n    pcVar9 = (char *)FUN_0014eeae(0);\n    iVar6 = 0x1d;\n    goto LAB_00150178;\n  }\nLAB_0015082d:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return pcVar9;\n}" primitive_type (pointer_declarator "* FUN_001500b6(void)" * (function_declarator "FUN_001500b6(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n  undefined4 uVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  char *pcVar9;\n  undefined8 uVar10;\n  char *pcVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  byte *pbVar14;\n  undefined8 *puVar15;\n  long lVar16;\n  undefined1 **unaff_RBP;\n  long *plVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  char *unaff_R12;\n  long *plVar20;\n  undefined1 **ppuVar21;\n  long in_FS_OFFSET;\n  undefined1 uVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  byte bVar26;\n  long local_60;\n  long local_58;\n  long local_50;\n  undefined1 *local_48;\n  long local_40;\n  \n  bVar26 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_60 = 0;\n  uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n  uVar5 = FUN_0014ecf5();\n  switch(uVar5) {\n  default:\n    FUN_0014bd14(0xffffffff);\n  case 0x17:\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\b';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x19) {\n      FUN_0014bd14(0x19);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    pcVar11 = pcVar9;\n    do {\n      iVar6 = FUN_0014ecf5();\n      unaff_R12 = pcVar11;\n      if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }\n      pcVar11 = (char *)FUN_00149ab3(0x20);\n      *(char **)(unaff_R12 + 0x18) = pcVar11;\n      *pcVar11 = '\b';\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 8) = uVar10;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 0x10) = uVar10;\n    } while( true );\n  case 2:\n  case 3:\n  case 0x16:\n    DAT_001c65ad = 1;\n    local_58 = 0;\n    local_50 = 0;\n    local_48 = (undefined1 *)0x0;\n    uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n    bVar4 = false;\n    bVar2 = false;\n    bVar3 = true;\n    ppuVar21 = &local_48;\n    plVar17 = &local_50;\n    pcVar9 = (char *)0x0;\n    plVar20 = &local_58;\nLAB_001505a5:\n    DAT_001c65af = bVar3;\n    uVar8 = FUN_0014ecf5();\n    if (uVar8 < 0x17) {\n      uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];\n      uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;\n      switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }\n      goto LAB_001505a5;\n    }\nswitchD_001505ce_caseD_0:\nLAB_00150605:\n    DAT_001c65ad = 1;\n    *plVar20 = 0;\n    *plVar17 = 0;\n    *ppuVar21 = (undefined1 *)0x0;\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(long *)(pcVar9 + 0x10) = local_58;\n    *(long *)(pcVar9 + 8) = local_50;\n    *(undefined1 **)(pcVar9 + 0x18) = local_48;\n    break;\n  case 9:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\x04';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = 10;\n    goto LAB_00150178;\n  case 0xe:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\f';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 3) {\n      FUN_0014bd14(3);\n    }\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    *puVar12 = 0xf;\n    *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n    *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x18) {\n      FUN_0014bd14(0x18);\n    }\n    pcVar11 = pcVar9 + 0x10;\n    do {\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n      if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *(undefined1 **)pcVar11 = puVar12;\n      *puVar12 = 0xd;\n      puVar15 = (undefined8 *)(puVar12 + 0x10);\n      while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }\n      if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }\n      uVar10 = FUN_0014eeae(2);\n      *(undefined8 *)(puVar12 + 0x18) = uVar10;\n      pcVar11 = puVar12 + 8;\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n    } while (iVar6 == 0xb);\n    FUN_0014bd14(0xb);\nLAB_001504a6:\n    pcVar11[0] = '\0';\n    pcVar11[1] = '\0';\n    pcVar11[2] = '\0';\n    pcVar11[3] = '\0';\n    pcVar11[4] = '\0';\n    pcVar11[5] = '\0';\n    pcVar11[6] = '\0';\n    pcVar11[7] = '\0';\nLAB_001504ae:\n    DAT_001c65af = 3;\n    plVar17 = &local_60;\n    while (iVar6 = FUN_0014ecf5(), iVar6 == 2) {\n      *plVar17 = (long)DAT_001c6488;\n      plVar17 = (long *)(DAT_001c6488 + 8);\n      FUN_0014edac();\n    }\n    DAT_001c65ad = 1;\n    *plVar17 = 0;\n    lVar16 = local_60;\n    if (local_60 != 0) {\n      if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }\n      *(long *)(pcVar9 + 0x10) = lVar16;\n    }\n    break;\n  case 0x15:\n    iVar6 = FUN_0014ecf5();\n    if (((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')) {\n      FUN_001487a2("bad for loop variable");\n    }\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\v';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(byte **)(pcVar9 + 0x18) = DAT_001c6498;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0x18) goto LAB_00150350;\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *puVar12 = 0xf;\n    *(undefined **)(puVar12 + 0x10) = &DAT_001bc672;\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    if (DAT_001c65ab != '\x04') {\n      DAT_001c65ad = 1;\n    }\nLAB_001502d6:\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0xf) {\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n      iVar6 = 0x10;\n      goto LAB_00150178;\n    }\n    FUN_0014bd14(0xf);\n    do {\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *puVar12 = 0xf;\n      *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n      *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n      *unaff_RBP = puVar12;\n      unaff_RBP = (undefined1 **)(puVar12 + 8);\n      while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }\n    } while( true );\n  case 0x1a:\n  case 0x1b:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = (DAT_001c65ab != '\x1b') + '\t';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0xf) {\n      FUN_0014bd14(0xf);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    iVar6 = 0x10;\n    goto LAB_00150178;\n  case 0x1c:\n    pcVar9 = (char *)FUN_0014eeae(0);\n    iVar6 = 0x1d;\n    goto LAB_00150178;\n  }\nLAB_0015082d:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return pcVar9;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined8 uVar10;" type_identifier identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined1 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined1 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "undefined8 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 **unaff_RBP;" type_identifier (pointer_declarator "**unaff_RBP" * (pointer_declarator "*unaff_RBP" * identifier)) ;) (declaration "long *plVar17;" (sized_type_specifier "long" long) (pointer_declarator "*plVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "char *unaff_R12;" primitive_type (pointer_declarator "*unaff_R12" * identifier) ;) (declaration "long *plVar20;" (sized_type_specifier "long" long) (pointer_declarator "*plVar20" * identifier) ;) (declaration "undefined1 **ppuVar21;" type_identifier (pointer_declarator "**ppuVar21" * (pointer_declarator "*ppuVar21" * identifier)) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 uVar22;" type_identifier identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "undefined1 uVar24;" type_identifier identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "byte bVar26;" type_identifier identifier ;) (declaration "long local_60;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_58;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_50;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar26 = 0;" (assignment_expression "bVar26 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);" (assignment_expression "uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8)" identifier = (pointer_expression "*(undefined4 *)(PTR_DAT_001c6260 + 8)" * (cast_expression "(undefined4 *)(PTR_DAT_001c6260 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_001c6260 + 8)" ( (binary_expression "PTR_DAT_001c6260 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = FUN_0014ecf5();" (assignment_expression "uVar5 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (switch_statement "switch(uVar5) {\n  default:\n    FUN_0014bd14(0xffffffff);\n  case 0x17:\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\b';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x19) {\n      FUN_0014bd14(0x19);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    pcVar11 = pcVar9;\n    do {\n      iVar6 = FUN_0014ecf5();\n      unaff_R12 = pcVar11;\n      if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }\n      pcVar11 = (char *)FUN_00149ab3(0x20);\n      *(char **)(unaff_R12 + 0x18) = pcVar11;\n      *pcVar11 = '\b';\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 8) = uVar10;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 0x10) = uVar10;\n    } while( true );\n  case 2:\n  case 3:\n  case 0x16:\n    DAT_001c65ad = 1;\n    local_58 = 0;\n    local_50 = 0;\n    local_48 = (undefined1 *)0x0;\n    uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n    bVar4 = false;\n    bVar2 = false;\n    bVar3 = true;\n    ppuVar21 = &local_48;\n    plVar17 = &local_50;\n    pcVar9 = (char *)0x0;\n    plVar20 = &local_58;\nLAB_001505a5:\n    DAT_001c65af = bVar3;\n    uVar8 = FUN_0014ecf5();\n    if (uVar8 < 0x17) {\n      uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];\n      uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;\n      switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }\n      goto LAB_001505a5;\n    }\nswitchD_001505ce_caseD_0:\nLAB_00150605:\n    DAT_001c65ad = 1;\n    *plVar20 = 0;\n    *plVar17 = 0;\n    *ppuVar21 = (undefined1 *)0x0;\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(long *)(pcVar9 + 0x10) = local_58;\n    *(long *)(pcVar9 + 8) = local_50;\n    *(undefined1 **)(pcVar9 + 0x18) = local_48;\n    break;\n  case 9:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\x04';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = 10;\n    goto LAB_00150178;\n  case 0xe:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\f';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 3) {\n      FUN_0014bd14(3);\n    }\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    *puVar12 = 0xf;\n    *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n    *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x18) {\n      FUN_0014bd14(0x18);\n    }\n    pcVar11 = pcVar9 + 0x10;\n    do {\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n      if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *(undefined1 **)pcVar11 = puVar12;\n      *puVar12 = 0xd;\n      puVar15 = (undefined8 *)(puVar12 + 0x10);\n      while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }\n      if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }\n      uVar10 = FUN_0014eeae(2);\n      *(undefined8 *)(puVar12 + 0x18) = uVar10;\n      pcVar11 = puVar12 + 8;\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n    } while (iVar6 == 0xb);\n    FUN_0014bd14(0xb);\nLAB_001504a6:\n    pcVar11[0] = '\0';\n    pcVar11[1] = '\0';\n    pcVar11[2] = '\0';\n    pcVar11[3] = '\0';\n    pcVar11[4] = '\0';\n    pcVar11[5] = '\0';\n    pcVar11[6] = '\0';\n    pcVar11[7] = '\0';\nLAB_001504ae:\n    DAT_001c65af = 3;\n    plVar17 = &local_60;\n    while (iVar6 = FUN_0014ecf5(), iVar6 == 2) {\n      *plVar17 = (long)DAT_001c6488;\n      plVar17 = (long *)(DAT_001c6488 + 8);\n      FUN_0014edac();\n    }\n    DAT_001c65ad = 1;\n    *plVar17 = 0;\n    lVar16 = local_60;\n    if (local_60 != 0) {\n      if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }\n      *(long *)(pcVar9 + 0x10) = lVar16;\n    }\n    break;\n  case 0x15:\n    iVar6 = FUN_0014ecf5();\n    if (((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')) {\n      FUN_001487a2("bad for loop variable");\n    }\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\v';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(byte **)(pcVar9 + 0x18) = DAT_001c6498;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0x18) goto LAB_00150350;\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *puVar12 = 0xf;\n    *(undefined **)(puVar12 + 0x10) = &DAT_001bc672;\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    if (DAT_001c65ab != '\x04') {\n      DAT_001c65ad = 1;\n    }\nLAB_001502d6:\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0xf) {\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n      iVar6 = 0x10;\n      goto LAB_00150178;\n    }\n    FUN_0014bd14(0xf);\n    do {\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *puVar12 = 0xf;\n      *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n      *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n      *unaff_RBP = puVar12;\n      unaff_RBP = (undefined1 **)(puVar12 + 8);\n      while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }\n    } while( true );\n  case 0x1a:\n  case 0x1b:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = (DAT_001c65ab != '\x1b') + '\t';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0xf) {\n      FUN_0014bd14(0xf);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    iVar6 = 0x10;\n    goto LAB_00150178;\n  case 0x1c:\n    pcVar9 = (char *)FUN_0014eeae(0);\n    iVar6 = 0x1d;\n    goto LAB_00150178;\n  }" switch (parenthesized_expression "(uVar5)" ( identifier )) (compound_statement "{\n  default:\n    FUN_0014bd14(0xffffffff);\n  case 0x17:\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\b';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x19) {\n      FUN_0014bd14(0x19);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    pcVar11 = pcVar9;\n    do {\n      iVar6 = FUN_0014ecf5();\n      unaff_R12 = pcVar11;\n      if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }\n      pcVar11 = (char *)FUN_00149ab3(0x20);\n      *(char **)(unaff_R12 + 0x18) = pcVar11;\n      *pcVar11 = '\b';\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 8) = uVar10;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 0x10) = uVar10;\n    } while( true );\n  case 2:\n  case 3:\n  case 0x16:\n    DAT_001c65ad = 1;\n    local_58 = 0;\n    local_50 = 0;\n    local_48 = (undefined1 *)0x0;\n    uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n    bVar4 = false;\n    bVar2 = false;\n    bVar3 = true;\n    ppuVar21 = &local_48;\n    plVar17 = &local_50;\n    pcVar9 = (char *)0x0;\n    plVar20 = &local_58;\nLAB_001505a5:\n    DAT_001c65af = bVar3;\n    uVar8 = FUN_0014ecf5();\n    if (uVar8 < 0x17) {\n      uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];\n      uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;\n      switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }\n      goto LAB_001505a5;\n    }\nswitchD_001505ce_caseD_0:\nLAB_00150605:\n    DAT_001c65ad = 1;\n    *plVar20 = 0;\n    *plVar17 = 0;\n    *ppuVar21 = (undefined1 *)0x0;\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(long *)(pcVar9 + 0x10) = local_58;\n    *(long *)(pcVar9 + 8) = local_50;\n    *(undefined1 **)(pcVar9 + 0x18) = local_48;\n    break;\n  case 9:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\x04';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = 10;\n    goto LAB_00150178;\n  case 0xe:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\f';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 3) {\n      FUN_0014bd14(3);\n    }\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    *puVar12 = 0xf;\n    *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n    *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x18) {\n      FUN_0014bd14(0x18);\n    }\n    pcVar11 = pcVar9 + 0x10;\n    do {\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n      if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *(undefined1 **)pcVar11 = puVar12;\n      *puVar12 = 0xd;\n      puVar15 = (undefined8 *)(puVar12 + 0x10);\n      while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }\n      if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }\n      uVar10 = FUN_0014eeae(2);\n      *(undefined8 *)(puVar12 + 0x18) = uVar10;\n      pcVar11 = puVar12 + 8;\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n    } while (iVar6 == 0xb);\n    FUN_0014bd14(0xb);\nLAB_001504a6:\n    pcVar11[0] = '\0';\n    pcVar11[1] = '\0';\n    pcVar11[2] = '\0';\n    pcVar11[3] = '\0';\n    pcVar11[4] = '\0';\n    pcVar11[5] = '\0';\n    pcVar11[6] = '\0';\n    pcVar11[7] = '\0';\nLAB_001504ae:\n    DAT_001c65af = 3;\n    plVar17 = &local_60;\n    while (iVar6 = FUN_0014ecf5(), iVar6 == 2) {\n      *plVar17 = (long)DAT_001c6488;\n      plVar17 = (long *)(DAT_001c6488 + 8);\n      FUN_0014edac();\n    }\n    DAT_001c65ad = 1;\n    *plVar17 = 0;\n    lVar16 = local_60;\n    if (local_60 != 0) {\n      if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }\n      *(long *)(pcVar9 + 0x10) = lVar16;\n    }\n    break;\n  case 0x15:\n    iVar6 = FUN_0014ecf5();\n    if (((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')) {\n      FUN_001487a2("bad for loop variable");\n    }\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\v';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(byte **)(pcVar9 + 0x18) = DAT_001c6498;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0x18) goto LAB_00150350;\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *puVar12 = 0xf;\n    *(undefined **)(puVar12 + 0x10) = &DAT_001bc672;\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    if (DAT_001c65ab != '\x04') {\n      DAT_001c65ad = 1;\n    }\nLAB_001502d6:\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0xf) {\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n      iVar6 = 0x10;\n      goto LAB_00150178;\n    }\n    FUN_0014bd14(0xf);\n    do {\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *puVar12 = 0xf;\n      *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n      *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n      *unaff_RBP = puVar12;\n      unaff_RBP = (undefined1 **)(puVar12 + 8);\n      while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }\n    } while( true );\n  case 0x1a:\n  case 0x1b:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = (DAT_001c65ab != '\x1b') + '\t';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0xf) {\n      FUN_0014bd14(0xf);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    iVar6 = 0x10;\n    goto LAB_00150178;\n  case 0x1c:\n    pcVar9 = (char *)FUN_0014eeae(0);\n    iVar6 = 0x1d;\n    goto LAB_00150178;\n  }" { (case_statement "default:\n    FUN_0014bd14(0xffffffff);" default : (expression_statement "FUN_0014bd14(0xffffffff);" (call_expression "FUN_0014bd14(0xffffffff)" identifier (argument_list "(0xffffffff)" ( number_literal ))) ;)) (case_statement "case 0x17:\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\b';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x19) {\n      FUN_0014bd14(0x19);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    pcVar11 = pcVar9;\n    do {\n      iVar6 = FUN_0014ecf5();\n      unaff_R12 = pcVar11;\n      if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }\n      pcVar11 = (char *)FUN_00149ab3(0x20);\n      *(char **)(unaff_R12 + 0x18) = pcVar11;\n      *pcVar11 = '\b';\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 8) = uVar10;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 0x10) = uVar10;\n    } while( true );" case number_literal : (expression_statement "pcVar9 = (char *)FUN_00149ab3(0x20);" (assignment_expression "pcVar9 = (char *)FUN_00149ab3(0x20)" identifier = (cast_expression "(char *)FUN_00149ab3(0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*pcVar9 = '\b';" (assignment_expression "*pcVar9 = '\b'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'\b'" ' escape_sequence ')) ;) (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" identifier = (call_expression "FUN_0014eeae(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined8 *)(pcVar9 + 8) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar9 + 8) = uVar10" (pointer_expression "*(undefined8 *)(pcVar9 + 8)" * (cast_expression "(undefined8 *)(pcVar9 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 8)" ( (binary_expression "pcVar9 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 != 0x19) {\n      FUN_0014bd14(0x19);\n    }" if (parenthesized_expression "(iVar6 != 0x19)" ( (binary_expression "iVar6 != 0x19" identifier != number_literal) )) (compound_statement "{\n      FUN_0014bd14(0x19);\n    }" { (expression_statement "FUN_0014bd14(0x19);" (call_expression "FUN_0014bd14(0x19)" identifier (argument_list "(0x19)" ( number_literal ))) ;) })) (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" identifier = (call_expression "FUN_0014eeae(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined8 *)(pcVar9 + 0x10) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar9 + 0x10) = uVar10" (pointer_expression "*(undefined8 *)(pcVar9 + 0x10)" * (cast_expression "(undefined8 *)(pcVar9 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x10)" ( (binary_expression "pcVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar11 = pcVar9;" (assignment_expression "pcVar11 = pcVar9" identifier = identifier) ;) (do_statement "do {\n      iVar6 = FUN_0014ecf5();\n      unaff_R12 = pcVar11;\n      if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }\n      pcVar11 = (char *)FUN_00149ab3(0x20);\n      *(char **)(unaff_R12 + 0x18) = pcVar11;\n      *pcVar11 = '\b';\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 8) = uVar10;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 0x10) = uVar10;\n    } while( true );" do (compound_statement "{\n      iVar6 = FUN_0014ecf5();\n      unaff_R12 = pcVar11;\n      if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }\n      pcVar11 = (char *)FUN_00149ab3(0x20);\n      *(char **)(unaff_R12 + 0x18) = pcVar11;\n      *pcVar11 = '\b';\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 8) = uVar10;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 0x10) = uVar10;\n    }" { (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (expression_statement "unaff_R12 = pcVar11;" (assignment_expression "unaff_R12 = pcVar11" identifier = identifier) ;) (if_statement "if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }" if (parenthesized_expression "(iVar6 != 0x11)" ( (binary_expression "iVar6 != 0x11" identifier != number_literal) )) (compound_statement "{\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }" { (if_statement "if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }" if (parenthesized_expression "(DAT_001c65ab == '\x12')" ( (binary_expression "DAT_001c65ab == '\x12'" identifier == (char_literal "'\x12'" ' escape_sequence ')) )) (compound_statement "{\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }" { (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" identifier = (call_expression "FUN_0014eeae(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined8 *)(pcVar11 + 0x18) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar11 + 0x18) = uVar10" (pointer_expression "*(undefined8 *)(pcVar11 + 0x18)" * (cast_expression "(undefined8 *)(pcVar11 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x18)" ( (binary_expression "pcVar11 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = 0x14;" (assignment_expression "iVar6 = 0x14" identifier = number_literal) ;) }) (else_clause "else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }" else (compound_statement "{\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }" { (expression_statement "pcVar11[0x18] = '\0';" (assignment_expression "pcVar11[0x18] = '\0'" (subscript_expression "pcVar11[0x18]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[0x19] = '\0';" (assignment_expression "pcVar11[0x19] = '\0'" (subscript_expression "pcVar11[0x19]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[0x1a] = '\0';" (assignment_expression "pcVar11[0x1a] = '\0'" (subscript_expression "pcVar11[0x1a]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[0x1b] = '\0';" (assignment_expression "pcVar11[0x1b] = '\0'" (subscript_expression "pcVar11[0x1b]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[0x1c] = '\0';" (assignment_expression "pcVar11[0x1c] = '\0'" (subscript_expression "pcVar11[0x1c]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[0x1d] = '\0';" (assignment_expression "pcVar11[0x1d] = '\0'" (subscript_expression "pcVar11[0x1d]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[0x1e] = '\0';" (assignment_expression "pcVar11[0x1e] = '\0'" (subscript_expression "pcVar11[0x1e]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[0x1f] = '\0';" (assignment_expression "pcVar11[0x1f] = '\0'" (subscript_expression "pcVar11[0x1f]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "DAT_001c65ad = 1;" (assignment_expression "DAT_001c65ad = 1" identifier = number_literal) ;) (expression_statement "iVar6 = 0x14;" (assignment_expression "iVar6 = 0x14" identifier = number_literal) ;) }))) (labeled_statement "LAB_00150178:\n        iVar7 = FUN_0014ecf5();" statement_identifier : (expression_statement "iVar7 = FUN_0014ecf5();" (assignment_expression "iVar7 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar7 == iVar6) goto LAB_001504ae;" if (parenthesized_expression "(iVar7 == iVar6)" ( (binary_expression "iVar7 == iVar6" identifier == identifier) )) (goto_statement "goto LAB_001504ae;" goto statement_identifier ;)) (expression_statement "FUN_0014bd14(iVar6);" (call_expression "FUN_0014bd14(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) })) (expression_statement "pcVar11 = (char *)FUN_00149ab3(0x20);" (assignment_expression "pcVar11 = (char *)FUN_00149ab3(0x20)" identifier = (cast_expression "(char *)FUN_00149ab3(0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*(char **)(unaff_R12 + 0x18) = pcVar11;" (assignment_expression "*(char **)(unaff_R12 + 0x18) = pcVar11" (pointer_expression "*(char **)(unaff_R12 + 0x18)" * (cast_expression "(char **)(unaff_R12 + 0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_R12 + 0x18)" ( (binary_expression "unaff_R12 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*pcVar11 = '\b';" (assignment_expression "*pcVar11 = '\b'" (pointer_expression "*pcVar11" * identifier) = (char_literal "'\b'" ' escape_sequence ')) ;) (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" identifier = (call_expression "FUN_0014eeae(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined8 *)(pcVar11 + 8) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar11 + 8) = uVar10" (pointer_expression "*(undefined8 *)(pcVar11 + 8)" * (cast_expression "(undefined8 *)(pcVar11 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 8)" ( (binary_expression "pcVar11 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }" if (parenthesized_expression "(iVar6 != 0x19)" ( (binary_expression "iVar6 != 0x19" identifier != number_literal) )) (compound_statement "{\n        FUN_0014bd14(0x19);\n      }" { (expression_statement "FUN_0014bd14(0x19);" (call_expression "FUN_0014bd14(0x19)" identifier (argument_list "(0x19)" ( number_literal ))) ;) })) (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" identifier = (call_expression "FUN_0014eeae(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined8 *)(pcVar11 + 0x10) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar11 + 0x10) = uVar10" (pointer_expression "*(undefined8 *)(pcVar11 + 0x10)" * (cast_expression "(undefined8 *)(pcVar11 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x10)" ( (binary_expression "pcVar11 + 0x10" identifier + number_literal) )))) = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:" case number_literal :) (case_statement "case 0x16:\n    DAT_001c65ad = 1;\n    local_58 = 0;\n    local_50 = 0;\n    local_48 = (undefined1 *)0x0;\n    uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n    bVar4 = false;\n    bVar2 = false;\n    bVar3 = true;\n    ppuVar21 = &local_48;\n    plVar17 = &local_50;\n    pcVar9 = (char *)0x0;\n    plVar20 = &local_58;\nLAB_001505a5:\n    DAT_001c65af = bVar3;\n    uVar8 = FUN_0014ecf5();\n    if (uVar8 < 0x17) {\n      uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];\n      uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;\n      switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }\n      goto LAB_001505a5;\n    }\nswitchD_001505ce_caseD_0:\nLAB_00150605:\n    DAT_001c65ad = 1;\n    *plVar20 = 0;\n    *plVar17 = 0;\n    *ppuVar21 = (undefined1 *)0x0;\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(long *)(pcVar9 + 0x10) = local_58;\n    *(long *)(pcVar9 + 8) = local_50;\n    *(undefined1 **)(pcVar9 + 0x18) = local_48;\n    break;" case number_literal : (expression_statement "DAT_001c65ad = 1;" (assignment_expression "DAT_001c65ad = 1" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_48 = (undefined1 *)0x0;" (assignment_expression "local_48 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);" (assignment_expression "uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8)" identifier = (pointer_expression "*(undefined4 *)(PTR_DAT_001c6260 + 8)" * (cast_expression "(undefined4 *)(PTR_DAT_001c6260 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_001c6260 + 8)" ( (binary_expression "PTR_DAT_001c6260 + 8" identifier + number_literal) ))))) ;) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (expression_statement "ppuVar21 = &local_48;" (assignment_expression "ppuVar21 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (expression_statement "plVar17 = &local_50;" (assignment_expression "plVar17 = &local_50" identifier = (pointer_expression "&local_50" & identifier)) ;) (expression_statement "pcVar9 = (char *)0x0;" (assignment_expression "pcVar9 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar20 = &local_58;" (assignment_expression "plVar20 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) (labeled_statement "LAB_001505a5:\n    DAT_001c65af = bVar3;" statement_identifier : (expression_statement "DAT_001c65af = bVar3;" (assignment_expression "DAT_001c65af = bVar3" identifier = identifier) ;)) (expression_statement "uVar8 = FUN_0014ecf5();" (assignment_expression "uVar8 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (if_statement "if (uVar8 < 0x17) {\n      uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];\n      uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;\n      switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }\n      goto LAB_001505a5;\n    }" if (parenthesized_expression "(uVar8 < 0x17)" ( (binary_expression "uVar8 < 0x17" identifier < number_literal) )) (compound_statement "{\n      uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];\n      uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;\n      switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }\n      goto LAB_001505a5;\n    }" { (expression_statement "uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];" (assignment_expression "uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8]" identifier = (binary_expression "0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8]" number_literal < (subscript_expression "(&switchD_001505ce::switchdataD_001afc54)[uVar8]" (parenthesized_expression "(&switchD_001505ce::switchdataD_001afc54)" ( (ERROR "&switchD_001505ce::" (pointer_expression "&switchD_001505ce" & identifier) : :) identifier )) [ identifier ]))) ;) (expression_statement "uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;" (assignment_expression "uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac" identifier = (binary_expression "(&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac" (subscript_expression "(&switchD_001505ce::switchdataD_001afc54)[uVar8]" (parenthesized_expression "(&switchD_001505ce::switchdataD_001afc54)" ( (ERROR "&switchD_001505ce::" (pointer_expression "&switchD_001505ce" & identifier) : :) identifier )) [ identifier ]) == number_literal)) ;) (switch_statement "switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }" switch (parenthesized_expression "((ulong)uVar8)" ( (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) )) (compound_statement "{\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }" { (case_statement "default:\n        goto switchD_001505ce_caseD_0;" default : (goto_statement "goto switchD_001505ce_caseD_0;" goto statement_identifier ;)) (case_statement "case 2:\n        goto switchD_001505ce_caseD_2;" case number_literal : (goto_statement "goto switchD_001505ce_caseD_2;" goto statement_identifier ;)) (case_statement "case 6:" case number_literal :) (case_statement "case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }" case number_literal : (labeled_statement "switchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;" statement_identifier : (if_statement "if (!bVar2) goto LAB_00150605;" if (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) )) (goto_statement "goto LAB_00150605;" goto statement_identifier ;))) (expression_statement "uVar22 = uVar8 < 6;" (assignment_expression "uVar22 = uVar8 < 6" identifier = (binary_expression "uVar8 < 6" identifier < number_literal)) ;) (expression_statement "uVar24 = uVar8 == 6;" (assignment_expression "uVar24 = uVar8 == 6" identifier = (binary_expression "uVar8 == 6" identifier == number_literal)) ;) (expression_statement "DAT_001c6498 = (byte *)0x1c08af;" (assignment_expression "DAT_001c6498 = (byte *)0x1c08af" identifier = (cast_expression "(byte *)0x1c08af" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }" if (parenthesized_expression "(!(bool)uVar24)" ( (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n          DAT_001c6498 = &DAT_001bc1a5;\n        }" { (expression_statement "DAT_001c6498 = &DAT_001bc1a5;" (assignment_expression "DAT_001c6498 = &DAT_001bc1a5" identifier = (pointer_expression "&DAT_001bc1a5" & identifier)) ;) }))) (case_statement "case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;" case number_literal : (expression_statement "pcVar9 = (char *)FUN_00149ab3(0x20);" (assignment_expression "pcVar9 = (char *)FUN_00149ab3(0x20)" identifier = (cast_expression "(char *)FUN_00149ab3(0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*pcVar9 = '\x0f';" (assignment_expression "*pcVar9 = '\x0f'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'\x0f'" ' escape_sequence ')) ;) (expression_statement "pbVar18 = DAT_001c6498;" (assignment_expression "pbVar18 = DAT_001c6498" identifier = identifier) ;) (expression_statement "*(byte **)(pcVar9 + 0x10) = DAT_001c6498;" (assignment_expression "*(byte **)(pcVar9 + 0x10) = DAT_001c6498" (pointer_expression "*(byte **)(pcVar9 + 0x10)" * (cast_expression "(byte **)(pcVar9 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x10)" ( (binary_expression "pcVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "lVar16 = 3;" (assignment_expression "lVar16 = 3" identifier = number_literal) ;) (expression_statement "pbVar14 = &DAT_001bc467;" (assignment_expression "pbVar14 = &DAT_001bc467" identifier = (pointer_expression "&DAT_001bc467" & identifier)) ;) (expression_statement "pbVar19 = pbVar18;" (assignment_expression "pbVar19 = pbVar18" identifier = identifier) ;) (do_statement "do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);" do (compound_statement "{\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        }" { (if_statement "if (lVar16 == 0) break;" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar16 = lVar16 + -1;" (assignment_expression "lVar16 = lVar16 + -1" identifier = (binary_expression "lVar16 + -1" identifier + number_literal)) ;) (expression_statement "uVar22 = *pbVar14 < *pbVar19;" (assignment_expression "uVar22 = *pbVar14 < *pbVar19" identifier = (binary_expression "*pbVar14 < *pbVar19" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "uVar24 = *pbVar14 == *pbVar19;" (assignment_expression "uVar24 = *pbVar14 == *pbVar19" identifier = (binary_expression "*pbVar14 == *pbVar19" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar24)" ( (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;" (assignment_expression "bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22" identifier = (binary_expression "(!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22" (parenthesized_expression "(!(bool)uVar22 && !(bool)uVar24)" ( (binary_expression "!(bool)uVar22 && !(bool)uVar24" (unary_expression "!(bool)uVar22" ! (cast_expression "(bool)uVar22" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar22" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }" if (parenthesized_expression "(bVar25)" ( identifier )) (compound_statement "{\n          bVar2 = true;\n        }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) }) (else_clause "else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }" else (compound_statement "{\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }" { (expression_statement "lVar16 = 3;" (assignment_expression "lVar16 = 3" identifier = number_literal) ;) (expression_statement "pbVar14 = (byte *)0x1bf6dc;" (assignment_expression "pbVar14 = (byte *)0x1bf6dc" identifier = (cast_expression "(byte *)0x1bf6dc" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar19 = pbVar18;" (assignment_expression "pbVar19 = pbVar18" identifier = identifier) ;) (do_statement "do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);" do (compound_statement "{\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          }" { (if_statement "if (lVar16 == 0) break;" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar16 = lVar16 + -1;" (assignment_expression "lVar16 = lVar16 + -1" identifier = (binary_expression "lVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar14 < *pbVar19;" (assignment_expression "bVar23 = *pbVar14 < *pbVar19" identifier = (binary_expression "*pbVar14 < *pbVar19" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar25 = *pbVar14 == *pbVar19;" (assignment_expression "bVar25 = *pbVar14 == *pbVar19" identifier = (binary_expression "*pbVar14 == *pbVar19" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (if_statement "if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }" if (parenthesized_expression "((!bVar23 && !bVar25) == bVar23)" ( (binary_expression "(!bVar23 && !bVar25) == bVar23" (parenthesized_expression "(!bVar23 && !bVar25)" ( (binary_expression "!bVar23 && !bVar25" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier) )) (compound_statement "{\n            bVar2 = false;\n          }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) })) }))) (expression_statement "*(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;" (assignment_expression "*(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490" (pointer_expression "*(undefined8 *)(pcVar9 + 0x18)" * (cast_expression "(undefined8 *)(pcVar9 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x18)" ( (binary_expression "pcVar9 + 0x18" identifier + number_literal) )))) = identifier) ;) (if_statement "if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }" if (parenthesized_expression "(((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d))" ( (binary_expression "((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)" (parenthesized_expression "((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14))" ( (binary_expression "(bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)" (parenthesized_expression "(bVar3)" ( identifier )) && (parenthesized_expression "(pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)" ( (comma_expression "pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14" (assignment_expression "pbVar14 = (byte *)FUN_0019afcf(pbVar18)" identifier = (cast_expression "(byte *)FUN_0019afcf(pbVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0019afcf(pbVar18)" identifier (argument_list "(pbVar18)" ( identifier ))))) , (binary_expression "pbVar18 != pbVar14" identifier != identifier)) ))) )) && (parenthesized_expression "(*pbVar14 == 0x3d)" ( (binary_expression "*pbVar14 == 0x3d" (pointer_expression "*pbVar14" * identifier) == number_literal) ))) )) (compound_statement "{\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }" { (expression_statement "*plVar17 = (long)pcVar9;" (assignment_expression "*plVar17 = (long)pcVar9" (pointer_expression "*plVar17" * identifier) = (cast_expression "(long)pcVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "plVar17 = (long *)(pcVar9 + 8);" (assignment_expression "plVar17 = (long *)(pcVar9 + 8)" identifier = (cast_expression "(long *)(pcVar9 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 8)" ( (binary_expression "pcVar9 + 8" identifier + number_literal) )))) ;) }) (else_clause "else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }" else (compound_statement "{\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }" { (expression_statement "*plVar20 = (long)pcVar9;" (assignment_expression "*plVar20 = (long)pcVar9" (pointer_expression "*plVar20" * identifier) = (cast_expression "(long)pcVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "plVar20 = (long *)(pcVar9 + 8);" (assignment_expression "plVar20 = (long *)(pcVar9 + 8)" identifier = (cast_expression "(long *)(pcVar9 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 8)" ( (binary_expression "pcVar9 + 8" identifier + number_literal) )))) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) }))) (if_statement "if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }" if (parenthesized_expression "(bVar4)" ( identifier )) (compound_statement "{\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }" { (expression_statement "DAT_001c65af = 6;" (assignment_expression "DAT_001c65af = 6" identifier = number_literal) ;) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (expression_statement "DAT_001c65ad = 1;" (assignment_expression "DAT_001c65ad = 1" identifier = number_literal) ;) (if_statement "if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }" if (parenthesized_expression "(iVar6 - 3U < 0x1a)" ( (binary_expression "iVar6 - 3U < 0x1a" (binary_expression "iVar6 - 3U" identifier - number_literal) < number_literal) )) (compound_statement "{\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }" { (expression_statement "bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];" (assignment_expression "bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U]" identifier = (binary_expression "0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U]" number_literal < (subscript_expression "(&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U]" (parenthesized_expression "(&switchD_00150729::switchdataD_001afcb0)" ( (ERROR "&switchD_00150729::" (pointer_expression "&switchD_00150729" & identifier) : :) identifier )) [ (binary_expression "iVar6 - 3U" identifier - number_literal) ]))) ;) (expression_statement "bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;" (assignment_expression "bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350" identifier = (binary_expression "(&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350" (subscript_expression "(&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U]" (parenthesized_expression "(&switchD_00150729::switchdataD_001afcb0)" ( (ERROR "&switchD_00150729::" (pointer_expression "&switchD_00150729" & identifier) : :) identifier )) [ (binary_expression "iVar6 - 3U" identifier - number_literal) ]) == number_literal)) ;) (switch_statement "switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }" switch (parenthesized_expression "(iVar6)" ( identifier )) (compound_statement "{\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }" { (case_statement "case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;" case number_literal : (expression_statement "lVar16 = 3;" (assignment_expression "lVar16 = 3" identifier = number_literal) ;) (expression_statement "pbVar18 = &DAT_001bc467;" (assignment_expression "pbVar18 = &DAT_001bc467" identifier = (pointer_expression "&DAT_001bc467" & identifier)) ;) (expression_statement "pbVar14 = DAT_001c6498;" (assignment_expression "pbVar14 = DAT_001c6498" identifier = identifier) ;) (do_statement "do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);" do (compound_statement "{\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              }" { (if_statement "if (lVar16 == 0) break;" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar16 = lVar16 + -1;" (assignment_expression "lVar16 = lVar16 + -1" identifier = (binary_expression "lVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar18 < *pbVar14;" (assignment_expression "bVar23 = *pbVar18 < *pbVar14" identifier = (binary_expression "*pbVar18 < *pbVar14" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar25 = *pbVar18 == *pbVar14;" (assignment_expression "bVar25 = *pbVar18 == *pbVar14" identifier = (binary_expression "*pbVar18 == *pbVar14" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar18 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar18 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (if_statement "if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;" if (parenthesized_expression "((!bVar23 && !bVar25) == bVar23)" ( (binary_expression "(!bVar23 && !bVar25) == bVar23" (parenthesized_expression "(!bVar23 && !bVar25)" ( (binary_expression "!bVar23 && !bVar25" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier) )) (goto_statement "goto switchD_001505ce_caseD_9;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "case 9:\n              bVar4 = false;\n              goto LAB_001505a5;" case number_literal : (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (goto_statement "goto LAB_001505a5;" goto statement_identifier ;)) (case_statement "case 0xe:" case number_literal :) (case_statement "case 0x15:" case number_literal :) (case_statement "case 0x17:" case number_literal :) (case_statement "case 0x1a:" case number_literal :) (case_statement "case 0x1b:" case number_literal :) (case_statement "case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;" case number_literal : (labeled_statement "switchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }" statement_identifier : (if_statement "if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }" if (parenthesized_expression "((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0))" ( (binary_expression "(((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)" (parenthesized_expression "(((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0))" ( (binary_expression "((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)" (parenthesized_expression "((local_58 != 0) && (plVar20 == (long *)(local_58 + 8)))" ( (binary_expression "(local_58 != 0) && (plVar20 == (long *)(local_58 + 8))" (parenthesized_expression "(local_58 != 0)" ( (binary_expression "local_58 != 0" identifier != number_literal) )) && (parenthesized_expression "(plVar20 == (long *)(local_58 + 8))" ( (binary_expression "plVar20 == (long *)(local_58 + 8)" identifier == (cast_expression "(long *)(local_58 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 8)" ( (binary_expression "local_58 + 8" identifier + number_literal) )))) ))) )) && (parenthesized_expression "(local_50 == 0)" ( (binary_expression "local_50 == 0" identifier == number_literal) ))) )) && (parenthesized_expression "(local_48 == (undefined1 *)0x0)" ( (binary_expression "local_48 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }" { (if_statement "if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }" if (parenthesized_expression "((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10))" ( (binary_expression "(!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)" (parenthesized_expression "(!bVar4)" ( (unary_expression "!bVar4" ! identifier) )) && (parenthesized_expression "(iVar6 = FUN_0014ecf5(), iVar6 != 10)" ( (comma_expression "iVar6 = FUN_0014ecf5(), iVar6 != 10" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) , (binary_expression "iVar6 != 10" identifier != number_literal)) ))) )) (compound_statement "{\n                  FUN_0014bd14(10);\n                }" { (expression_statement "FUN_0014bd14(10);" (call_expression "FUN_0014bd14(10)" identifier (argument_list "(10)" ( number_literal ))) ;) })) (expression_statement "uVar10 = *(undefined8 *)(pcVar9 + 0x10);" (assignment_expression "uVar10 = *(undefined8 *)(pcVar9 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(pcVar9 + 0x10)" * (cast_expression "(undefined8 *)(pcVar9 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x10)" ( (binary_expression "pcVar9 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pcVar11 = (char *)FUN_0019afcf(uVar10);" (assignment_expression "pcVar11 = (char *)FUN_0019afcf(uVar10)" identifier = (cast_expression "(char *)FUN_0019afcf(uVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0019afcf(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))))) ;) (if_statement "if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }" if (parenthesized_expression "((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0))))" ( (binary_expression "(*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))" (parenthesized_expression "(*pcVar11 != '\0')" ( (binary_expression "*pcVar11 != '\0'" (pointer_expression "*pcVar11" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))" ( (parenthesized_expression "(puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0))" ( (comma_expression "puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)" (assignment_expression "puVar15 = (undefined8 *)FUN_001472bc(uVar10)" identifier = (cast_expression "(undefined8 *)FUN_001472bc(uVar10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001472bc(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))))) , (binary_expression "puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)" (binary_expression "puVar15 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "((*(byte *)*puVar15 & 1) != 0)" ( (binary_expression "(*(byte *)*puVar15 & 1) != 0" (parenthesized_expression "(*(byte *)*puVar15 & 1)" ( (binary_expression "*(byte *)*puVar15 & 1" (pointer_expression "*(byte *)*puVar15" * (cast_expression "(byte *)*puVar15" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) & number_literal) )) != number_literal) )))) )) ))) )) (compound_statement "{\n                  FUN_001487a2("bad function name");\n                }" { (expression_statement "FUN_001487a2("bad function name");" (call_expression "FUN_001487a2("bad function name")" identifier (argument_list "("bad function name")" ( (string_literal ""bad function name"" " string_content ") ))) ;) })) (expression_statement "*pcVar9 = '\x0e';" (assignment_expression "*pcVar9 = '\x0e'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'\x0e'" ' escape_sequence ')) ;) (expression_statement "DAT_001c65af = 7;" (assignment_expression "DAT_001c65af = 7" identifier = number_literal) ;) (expression_statement "*(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);" (assignment_expression "*(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10)" (pointer_expression "*(undefined8 *)(pcVar9 + 8)" * (cast_expression "(undefined8 *)(pcVar9 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 8)" ( (binary_expression "pcVar9 + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(pcVar9 + 0x10)" * (cast_expression "(undefined8 *)(pcVar9 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x10)" ( (binary_expression "pcVar9 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);" (assignment_expression "*(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8)" (pointer_expression "*(undefined4 *)(pcVar9 + 4)" * (cast_expression "(undefined4 *)(pcVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 4)" ( (binary_expression "pcVar9 + 4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(PTR_DAT_001c6260 + 8)" * (cast_expression "(undefined4 *)(PTR_DAT_001c6260 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_001c6260 + 8)" ( (binary_expression "PTR_DAT_001c6260 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = FUN_001500b6();" (assignment_expression "uVar10 = FUN_001500b6()" identifier = (call_expression "FUN_001500b6()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined8 *)(pcVar9 + 0x10) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar9 + 0x10) = uVar10" (pointer_expression "*(undefined8 *)(pcVar9 + 0x10)" * (cast_expression "(undefined8 *)(pcVar9 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x10)" ( (binary_expression "pcVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0015082d;" goto statement_identifier ;) }))) (goto_statement "goto switchD_001505ce_caseD_0;" goto statement_identifier ;)) })) })) (expression_statement "FUN_0014bd14(0xffffffff);" (call_expression "FUN_0014bd14(0xffffffff)" identifier (argument_list "(0xffffffff)" ( number_literal ))) ;) (labeled_statement "switchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;" statement_identifier : (expression_statement "pcVar9 = DAT_001c6488;" (assignment_expression "pcVar9 = DAT_001c6488" identifier = identifier) ;)) (expression_statement "*ppuVar21 = DAT_001c6488;" (assignment_expression "*ppuVar21 = DAT_001c6488" (pointer_expression "*ppuVar21" * identifier) = identifier) ;) (expression_statement "ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);" (assignment_expression "ppuVar21 = (undefined1 **)(DAT_001c6488 + 8)" identifier = (cast_expression "(undefined1 **)(DAT_001c6488 + 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_001c6488 + 8)" ( (binary_expression "DAT_001c6488 + 8" identifier + number_literal) )))) ;) (expression_statement "FUN_0014edac();" (call_expression "FUN_0014edac()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;) })) (break_statement "break;" break ;)) (case_statement "case 9:\n        goto switchD_001505ce_caseD_9;" case number_literal : (goto_statement "goto switchD_001505ce_caseD_9;" goto statement_identifier ;)) (case_statement "case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;" case number_literal : (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (expression_statement "DAT_001c65ad = 1;" (assignment_expression "DAT_001c65ad = 1" identifier = number_literal) ;) (if_statement "if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }" if (parenthesized_expression "(iVar6 != 3)" ( (binary_expression "iVar6 != 3" identifier != number_literal) )) (compound_statement "{\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }" { (expression_statement "uVar8 = FUN_0014bd14(3);" (assignment_expression "uVar8 = FUN_0014bd14(3)" identifier = (call_expression "FUN_0014bd14(3)" identifier (argument_list "(3)" ( number_literal )))) ;) (goto_statement "goto switchD_001505ce_caseD_6;" goto statement_identifier ;) })) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;)) })) (goto_statement "goto LAB_001505a5;" goto statement_identifier ;) })) (labeled_statement "switchD_001505ce_caseD_0:\nLAB_00150605:\n    DAT_001c65ad = 1;" statement_identifier : (labeled_statement "LAB_00150605:\n    DAT_001c65ad = 1;" statement_identifier : (expression_statement "DAT_001c65ad = 1;" (assignment_expression "DAT_001c65ad = 1" identifier = number_literal) ;))) (expression_statement "*plVar20 = 0;" (assignment_expression "*plVar20 = 0" (pointer_expression "*plVar20" * identifier) = number_literal) ;) (expression_statement "*plVar17 = 0;" (assignment_expression "*plVar17 = 0" (pointer_expression "*plVar17" * identifier) = number_literal) ;) (expression_statement "*ppuVar21 = (undefined1 *)0x0;" (assignment_expression "*ppuVar21 = (undefined1 *)0x0" (pointer_expression "*ppuVar21" * identifier) = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar9 = (char *)FUN_00149ab3(0x20);" (assignment_expression "pcVar9 = (char *)FUN_00149ab3(0x20)" identifier = (cast_expression "(char *)FUN_00149ab3(0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(pcVar9 + 4) = uVar1;" (assignment_expression "*(undefined4 *)(pcVar9 + 4) = uVar1" (pointer_expression "*(undefined4 *)(pcVar9 + 4)" * (cast_expression "(undefined4 *)(pcVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 4)" ( (binary_expression "pcVar9 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(long *)(pcVar9 + 0x10) = local_58;" (assignment_expression "*(long *)(pcVar9 + 0x10) = local_58" (pointer_expression "*(long *)(pcVar9 + 0x10)" * (cast_expression "(long *)(pcVar9 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x10)" ( (binary_expression "pcVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(long *)(pcVar9 + 8) = local_50;" (assignment_expression "*(long *)(pcVar9 + 8) = local_50" (pointer_expression "*(long *)(pcVar9 + 8)" * (cast_expression "(long *)(pcVar9 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 8)" ( (binary_expression "pcVar9 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(pcVar9 + 0x18) = local_48;" (assignment_expression "*(undefined1 **)(pcVar9 + 0x18) = local_48" (pointer_expression "*(undefined1 **)(pcVar9 + 0x18)" * (cast_expression "(undefined1 **)(pcVar9 + 0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x18)" ( (binary_expression "pcVar9 + 0x18" identifier + number_literal) )))) = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\x04';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = 10;\n    goto LAB_00150178;" case number_literal : (expression_statement "pcVar9 = (char *)FUN_00149ab3(0x18);" (assignment_expression "pcVar9 = (char *)FUN_00149ab3(0x18)" identifier = (cast_expression "(char *)FUN_00149ab3(0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "*pcVar9 = '\x04';" (assignment_expression "*pcVar9 = '\x04'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'\x04'" ' escape_sequence ')) ;) (expression_statement "*(undefined4 *)(pcVar9 + 4) = uVar1;" (assignment_expression "*(undefined4 *)(pcVar9 + 4) = uVar1" (pointer_expression "*(undefined4 *)(pcVar9 + 4)" * (cast_expression "(undefined4 *)(pcVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 4)" ( (binary_expression "pcVar9 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" identifier = (call_expression "FUN_0014eeae(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined8 *)(pcVar9 + 8) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar9 + 8) = uVar10" (pointer_expression "*(undefined8 *)(pcVar9 + 8)" * (cast_expression "(undefined8 *)(pcVar9 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 8)" ( (binary_expression "pcVar9 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = 10;" (assignment_expression "iVar6 = 10" identifier = number_literal) ;) (goto_statement "goto LAB_00150178;" goto statement_identifier ;)) (case_statement "case 0xe:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\f';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 3) {\n      FUN_0014bd14(3);\n    }\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    *puVar12 = 0xf;\n    *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n    *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x18) {\n      FUN_0014bd14(0x18);\n    }\n    pcVar11 = pcVar9 + 0x10;\n    do {\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n      if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *(undefined1 **)pcVar11 = puVar12;\n      *puVar12 = 0xd;\n      puVar15 = (undefined8 *)(puVar12 + 0x10);\n      while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }\n      if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }\n      uVar10 = FUN_0014eeae(2);\n      *(undefined8 *)(puVar12 + 0x18) = uVar10;\n      pcVar11 = puVar12 + 8;\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n    } while (iVar6 == 0xb);\n    FUN_0014bd14(0xb);\nLAB_001504a6:\n    pcVar11[0] = '\0';\n    pcVar11[1] = '\0';\n    pcVar11[2] = '\0';\n    pcVar11[3] = '\0';\n    pcVar11[4] = '\0';\n    pcVar11[5] = '\0';\n    pcVar11[6] = '\0';\n    pcVar11[7] = '\0';\nLAB_001504ae:\n    DAT_001c65af = 3;\n    plVar17 = &local_60;\n    while (iVar6 = FUN_0014ecf5(), iVar6 == 2) {\n      *plVar17 = (long)DAT_001c6488;\n      plVar17 = (long *)(DAT_001c6488 + 8);\n      FUN_0014edac();\n    }\n    DAT_001c65ad = 1;\n    *plVar17 = 0;\n    lVar16 = local_60;\n    if (local_60 != 0) {\n      if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }\n      *(long *)(pcVar9 + 0x10) = lVar16;\n    }\n    break;" case number_literal : (expression_statement "pcVar9 = (char *)FUN_00149ab3(0x18);" (assignment_expression "pcVar9 = (char *)FUN_00149ab3(0x18)" identifier = (cast_expression "(char *)FUN_00149ab3(0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "*pcVar9 = '\f';" (assignment_expression "*pcVar9 = '\f'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'\f'" ' escape_sequence ')) ;) (expression_statement "*(undefined4 *)(pcVar9 + 4) = uVar1;" (assignment_expression "*(undefined4 *)(pcVar9 + 4) = uVar1" (pointer_expression "*(undefined4 *)(pcVar9 + 4)" * (cast_expression "(undefined4 *)(pcVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 4)" ( (binary_expression "pcVar9 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 != 3) {\n      FUN_0014bd14(3);\n    }" if (parenthesized_expression "(iVar6 != 3)" ( (binary_expression "iVar6 != 3" identifier != number_literal) )) (compound_statement "{\n      FUN_0014bd14(3);\n    }" { (expression_statement "FUN_0014bd14(3);" (call_expression "FUN_0014bd14(3)" identifier (argument_list "(3)" ( number_literal ))) ;) })) (expression_statement "puVar12 = (undefined1 *)FUN_00149ab3(0x20);" (assignment_expression "puVar12 = (undefined1 *)FUN_00149ab3(0x20)" identifier = (cast_expression "(undefined1 *)FUN_00149ab3(0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*(undefined1 **)(pcVar9 + 8) = puVar12;" (assignment_expression "*(undefined1 **)(pcVar9 + 8) = puVar12" (pointer_expression "*(undefined1 **)(pcVar9 + 8)" * (cast_expression "(undefined1 **)(pcVar9 + 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 8)" ( (binary_expression "pcVar9 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*puVar12 = 0xf;" (assignment_expression "*puVar12 = 0xf" (pointer_expression "*puVar12" * identifier) = number_literal) ;) (expression_statement "*(byte **)(puVar12 + 0x10) = DAT_001c6498;" (assignment_expression "*(byte **)(puVar12 + 0x10) = DAT_001c6498" (pointer_expression "*(byte **)(puVar12 + 0x10)" * (cast_expression "(byte **)(puVar12 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x10)" ( (binary_expression "puVar12 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;" (assignment_expression "*(undefined8 *)(puVar12 + 0x18) = DAT_001c6490" (pointer_expression "*(undefined8 *)(puVar12 + 0x18)" * (cast_expression "(undefined8 *)(puVar12 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x18)" ( (binary_expression "puVar12 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "DAT_001c65af = 7;" (assignment_expression "DAT_001c65af = 7" identifier = number_literal) ;) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 != 0x18) {\n      FUN_0014bd14(0x18);\n    }" if (parenthesized_expression "(iVar6 != 0x18)" ( (binary_expression "iVar6 != 0x18" identifier != number_literal) )) (compound_statement "{\n      FUN_0014bd14(0x18);\n    }" { (expression_statement "FUN_0014bd14(0x18);" (call_expression "FUN_0014bd14(0x18)" identifier (argument_list "(0x18)" ( number_literal ))) ;) })) (expression_statement "pcVar11 = pcVar9 + 0x10;" (assignment_expression "pcVar11 = pcVar9 + 0x10" identifier = (binary_expression "pcVar9 + 0x10" identifier + number_literal)) ;) (do_statement "do {\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n      if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *(undefined1 **)pcVar11 = puVar12;\n      *puVar12 = 0xd;\n      puVar15 = (undefined8 *)(puVar12 + 0x10);\n      while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }\n      if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }\n      uVar10 = FUN_0014eeae(2);\n      *(undefined8 *)(puVar12 + 0x18) = uVar10;\n      pcVar11 = puVar12 + 8;\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n    } while (iVar6 == 0xb);" do (compound_statement "{\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n      if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *(undefined1 **)pcVar11 = puVar12;\n      *puVar12 = 0xd;\n      puVar15 = (undefined8 *)(puVar12 + 0x10);\n      while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }\n      if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }\n      uVar10 = FUN_0014eeae(2);\n      *(undefined8 *)(puVar12 + 0x18) = uVar10;\n      pcVar11 = puVar12 + 8;\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n    }" { (expression_statement "DAT_001c65af = 6;" (assignment_expression "DAT_001c65af = 6" identifier = number_literal) ;) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 == 0x13) goto LAB_001504a6;" if (parenthesized_expression "(iVar6 == 0x13)" ( (binary_expression "iVar6 == 0x13" identifier == number_literal) )) (goto_statement "goto LAB_001504a6;" goto statement_identifier ;)) (if_statement "if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }" if (parenthesized_expression "(DAT_001c65ab == '\t')" ( (binary_expression "DAT_001c65ab == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) )) (compound_statement "{\n        FUN_0014ecf5();\n      }" { (expression_statement "FUN_0014ecf5();" (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "puVar12 = (undefined1 *)FUN_00149ab3(0x20);" (assignment_expression "puVar12 = (undefined1 *)FUN_00149ab3(0x20)" identifier = (cast_expression "(undefined1 *)FUN_00149ab3(0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*(undefined1 **)pcVar11 = puVar12;" (assignment_expression "*(undefined1 **)pcVar11 = puVar12" (pointer_expression "*(undefined1 **)pcVar11" * (cast_expression "(undefined1 **)pcVar11" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*puVar12 = 0xd;" (assignment_expression "*puVar12 = 0xd" (pointer_expression "*puVar12" * identifier) = number_literal) ;) (expression_statement "puVar15 = (undefined8 *)(puVar12 + 0x10);" (assignment_expression "puVar15 = (undefined8 *)(puVar12 + 0x10)" identifier = (cast_expression "(undefined8 *)(puVar12 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x10)" ( (binary_expression "puVar12 + 0x10" identifier + number_literal) )))) ;) (while_statement "while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }" { (expression_statement "puVar13 = (undefined1 *)FUN_00149ab3(0x20);" (assignment_expression "puVar13 = (undefined1 *)FUN_00149ab3(0x20)" identifier = (cast_expression "(undefined1 *)FUN_00149ab3(0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*puVar15 = puVar13;" (assignment_expression "*puVar15 = puVar13" (pointer_expression "*puVar15" * identifier) = identifier) ;) (expression_statement "*puVar13 = 0xf;" (assignment_expression "*puVar13 = 0xf" (pointer_expression "*puVar13" * identifier) = number_literal) ;) (expression_statement "*(byte **)(puVar13 + 0x10) = DAT_001c6498;" (assignment_expression "*(byte **)(puVar13 + 0x10) = DAT_001c6498" (pointer_expression "*(byte **)(puVar13 + 0x10)" * (cast_expression "(byte **)(puVar13 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x10)" ( (binary_expression "puVar13 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;" (assignment_expression "*(undefined8 *)(puVar13 + 0x18) = DAT_001c6490" (pointer_expression "*(undefined8 *)(puVar13 + 0x18)" * (cast_expression "(undefined8 *)(puVar13 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x18)" ( (binary_expression "puVar13 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_48 = puVar13;" (assignment_expression "local_48 = puVar13" identifier = identifier) ;) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 != 8) break;" if (parenthesized_expression "(iVar6 != 8)" ( (binary_expression "iVar6 != 8" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "puVar15 = (undefined8 *)(puVar13 + 8);" (assignment_expression "puVar15 = (undefined8 *)(puVar13 + 8)" identifier = (cast_expression "(undefined8 *)(puVar13 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 8)" ( (binary_expression "puVar13 + 8" identifier + number_literal) )))) ;) (expression_statement "FUN_0014ecf5();" (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }" if (parenthesized_expression "(DAT_001c65ab != '\n')" ( (binary_expression "DAT_001c65ab != '\n'" identifier != (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n        FUN_0014bd14(10);\n      }" { (expression_statement "FUN_0014bd14(10);" (call_expression "FUN_0014bd14(10)" identifier (argument_list "(10)" ( number_literal ))) ;) })) (expression_statement "uVar10 = FUN_0014eeae(2);" (assignment_expression "uVar10 = FUN_0014eeae(2)" identifier = (call_expression "FUN_0014eeae(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar12 + 0x18) = uVar10;" (assignment_expression "*(undefined8 *)(puVar12 + 0x18) = uVar10" (pointer_expression "*(undefined8 *)(puVar12 + 0x18)" * (cast_expression "(undefined8 *)(puVar12 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x18)" ( (binary_expression "puVar12 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar11 = puVar12 + 8;" (assignment_expression "pcVar11 = puVar12 + 8" identifier = (binary_expression "puVar12 + 8" identifier + number_literal)) ;) (expression_statement "DAT_001c65af = 6;" (assignment_expression "DAT_001c65af = 6" identifier = number_literal) ;) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 == 0x13) goto LAB_001504a6;" if (parenthesized_expression "(iVar6 == 0x13)" ( (binary_expression "iVar6 == 0x13" identifier == number_literal) )) (goto_statement "goto LAB_001504a6;" goto statement_identifier ;)) }) while (parenthesized_expression "(iVar6 == 0xb)" ( (binary_expression "iVar6 == 0xb" identifier == number_literal) )) ;) (expression_statement "FUN_0014bd14(0xb);" (call_expression "FUN_0014bd14(0xb)" identifier (argument_list "(0xb)" ( number_literal ))) ;) (labeled_statement "LAB_001504a6:\n    pcVar11[0] = '\0';" statement_identifier : (expression_statement "pcVar11[0] = '\0';" (assignment_expression "pcVar11[0] = '\0'" (subscript_expression "pcVar11[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "pcVar11[1] = '\0';" (assignment_expression "pcVar11[1] = '\0'" (subscript_expression "pcVar11[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[2] = '\0';" (assignment_expression "pcVar11[2] = '\0'" (subscript_expression "pcVar11[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[3] = '\0';" (assignment_expression "pcVar11[3] = '\0'" (subscript_expression "pcVar11[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[4] = '\0';" (assignment_expression "pcVar11[4] = '\0'" (subscript_expression "pcVar11[4]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[5] = '\0';" (assignment_expression "pcVar11[5] = '\0'" (subscript_expression "pcVar11[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[6] = '\0';" (assignment_expression "pcVar11[6] = '\0'" (subscript_expression "pcVar11[6]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[7] = '\0';" (assignment_expression "pcVar11[7] = '\0'" (subscript_expression "pcVar11[7]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (labeled_statement "LAB_001504ae:\n    DAT_001c65af = 3;" statement_identifier : (expression_statement "DAT_001c65af = 3;" (assignment_expression "DAT_001c65af = 3" identifier = number_literal) ;)) (expression_statement "plVar17 = &local_60;" (assignment_expression "plVar17 = &local_60" identifier = (pointer_expression "&local_60" & identifier)) ;) (while_statement "while (iVar6 = FUN_0014ecf5(), iVar6 == 2) {\n      *plVar17 = (long)DAT_001c6488;\n      plVar17 = (long *)(DAT_001c6488 + 8);\n      FUN_0014edac();\n    }" while (parenthesized_expression "(iVar6 = FUN_0014ecf5(), iVar6 == 2)" ( (comma_expression "iVar6 = FUN_0014ecf5(), iVar6 == 2" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) , (binary_expression "iVar6 == 2" identifier == number_literal)) )) (compound_statement "{\n      *plVar17 = (long)DAT_001c6488;\n      plVar17 = (long *)(DAT_001c6488 + 8);\n      FUN_0014edac();\n    }" { (expression_statement "*plVar17 = (long)DAT_001c6488;" (assignment_expression "*plVar17 = (long)DAT_001c6488" (pointer_expression "*plVar17" * identifier) = (cast_expression "(long)DAT_001c6488" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "plVar17 = (long *)(DAT_001c6488 + 8);" (assignment_expression "plVar17 = (long *)(DAT_001c6488 + 8)" identifier = (cast_expression "(long *)(DAT_001c6488 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001c6488 + 8)" ( (binary_expression "DAT_001c6488 + 8" identifier + number_literal) )))) ;) (expression_statement "FUN_0014edac();" (call_expression "FUN_0014edac()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "DAT_001c65ad = 1;" (assignment_expression "DAT_001c65ad = 1" identifier = number_literal) ;) (expression_statement "*plVar17 = 0;" (assignment_expression "*plVar17 = 0" (pointer_expression "*plVar17" * identifier) = number_literal) ;) (expression_statement "lVar16 = local_60;" (assignment_expression "lVar16 = local_60" identifier = identifier) ;) (if_statement "if (local_60 != 0) {\n      if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }\n      *(long *)(pcVar9 + 0x10) = lVar16;\n    }" if (parenthesized_expression "(local_60 != 0)" ( (binary_expression "local_60 != 0" identifier != number_literal) )) (compound_statement "{\n      if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }\n      *(long *)(pcVar9 + 0x10) = lVar16;\n    }" { (if_statement "if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }" if (parenthesized_expression "(*pcVar9 != '\x04')" ( (binary_expression "*pcVar9 != '\x04'" (pointer_expression "*pcVar9" * identifier) != (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }" { (expression_statement "pcVar11 = (char *)FUN_00149ab3(0x18);" (assignment_expression "pcVar11 = (char *)FUN_00149ab3(0x18)" identifier = (cast_expression "(char *)FUN_00149ab3(0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "*pcVar11 = '\x02';" (assignment_expression "*pcVar11 = '\x02'" (pointer_expression "*pcVar11" * identifier) = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "*(undefined4 *)(pcVar11 + 4) = uVar1;" (assignment_expression "*(undefined4 *)(pcVar11 + 4) = uVar1" (pointer_expression "*(undefined4 *)(pcVar11 + 4)" * (cast_expression "(undefined4 *)(pcVar11 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 4)" ( (binary_expression "pcVar11 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(pcVar11 + 8) = pcVar9;" (assignment_expression "*(char **)(pcVar11 + 8) = pcVar9" (pointer_expression "*(char **)(pcVar11 + 8)" * (cast_expression "(char **)(pcVar11 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 8)" ( (binary_expression "pcVar11 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar9 = pcVar11;" (assignment_expression "pcVar9 = pcVar11" identifier = identifier) ;) })) (expression_statement "*(long *)(pcVar9 + 0x10) = lVar16;" (assignment_expression "*(long *)(pcVar9 + 0x10) = lVar16" (pointer_expression "*(long *)(pcVar9 + 0x10)" * (cast_expression "(long *)(pcVar9 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x10)" ( (binary_expression "pcVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x15:\n    iVar6 = FUN_0014ecf5();\n    if (((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')) {\n      FUN_001487a2("bad for loop variable");\n    }\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\v';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(byte **)(pcVar9 + 0x18) = DAT_001c6498;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0x18) goto LAB_00150350;\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *puVar12 = 0xf;\n    *(undefined **)(puVar12 + 0x10) = &DAT_001bc672;\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    if (DAT_001c65ab != '\x04') {\n      DAT_001c65ad = 1;\n    }\nLAB_001502d6:\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0xf) {\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n      iVar6 = 0x10;\n      goto LAB_00150178;\n    }\n    FUN_0014bd14(0xf);\n    do {\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *puVar12 = 0xf;\n      *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n      *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n      *unaff_RBP = puVar12;\n      unaff_RBP = (undefined1 **)(puVar12 + 8);\n      while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }\n    } while( true );" case number_literal : (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')) {\n      FUN_001487a2("bad for loop variable");\n    }" if (parenthesized_expression "(((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0'))" ( (binary_expression "((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')" (parenthesized_expression "((iVar6 != 3) || (DAT_001c65ac != '\0'))" ( (binary_expression "(iVar6 != 3) || (DAT_001c65ac != '\0')" (parenthesized_expression "(iVar6 != 3)" ( (binary_expression "iVar6 != 3" identifier != number_literal) )) || (parenthesized_expression "(DAT_001c65ac != '\0')" ( (binary_expression "DAT_001c65ac != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')" ( (comma_expression "pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0'" (assignment_expression "pcVar9 = (char *)FUN_0019afcf(DAT_001c6498)" identifier = (cast_expression "(char *)FUN_0019afcf(DAT_001c6498)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0019afcf(DAT_001c6498)" identifier (argument_list "(DAT_001c6498)" ( identifier ))))) , (binary_expression "*pcVar9 != '\0'" (pointer_expression "*pcVar9" * identifier) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      FUN_001487a2("bad for loop variable");\n    }" { (expression_statement "FUN_001487a2("bad for loop variable");" (call_expression "FUN_001487a2("bad for loop variable")" identifier (argument_list "("bad for loop variable")" ( (string_literal ""bad for loop variable"" " string_content ") ))) ;) })) (expression_statement "pcVar9 = (char *)FUN_00149ab3(0x20);" (assignment_expression "pcVar9 = (char *)FUN_00149ab3(0x20)" identifier = (cast_expression "(char *)FUN_00149ab3(0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*pcVar9 = '\v';" (assignment_expression "*pcVar9 = '\v'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'\v'" ' escape_sequence ')) ;) (expression_statement "*(undefined4 *)(pcVar9 + 4) = uVar1;" (assignment_expression "*(undefined4 *)(pcVar9 + 4) = uVar1" (pointer_expression "*(undefined4 *)(pcVar9 + 4)" * (cast_expression "(undefined4 *)(pcVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 4)" ( (binary_expression "pcVar9 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pcVar9 + 0x18) = DAT_001c6498;" (assignment_expression "*(byte **)(pcVar9 + 0x18) = DAT_001c6498" (pointer_expression "*(byte **)(pcVar9 + 0x18)" * (cast_expression "(byte **)(pcVar9 + 0x18)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x18)" ( (binary_expression "pcVar9 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "DAT_001c65af = 7;" (assignment_expression "DAT_001c65af = 7" identifier = number_literal) ;) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 == 0x18) goto LAB_00150350;" if (parenthesized_expression "(iVar6 == 0x18)" ( (binary_expression "iVar6 == 0x18" identifier == number_literal) )) (goto_statement "goto LAB_00150350;" goto statement_identifier ;)) (expression_statement "puVar12 = (undefined1 *)FUN_00149ab3(0x20);" (assignment_expression "puVar12 = (undefined1 *)FUN_00149ab3(0x20)" identifier = (cast_expression "(undefined1 *)FUN_00149ab3(0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*puVar12 = 0xf;" (assignment_expression "*puVar12 = 0xf" (pointer_expression "*puVar12" * identifier) = number_literal) ;) (expression_statement "*(undefined **)(puVar12 + 0x10) = &DAT_001bc672;" (assignment_expression "*(undefined **)(puVar12 + 0x10) = &DAT_001bc672" (pointer_expression "*(undefined **)(puVar12 + 0x10)" * (cast_expression "(undefined **)(puVar12 + 0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x10)" ( (binary_expression "puVar12 + 0x10" identifier + number_literal) )))) = (pointer_expression "&DAT_001bc672" & identifier)) ;) (expression_statement "*(undefined1 **)(pcVar9 + 8) = puVar12;" (assignment_expression "*(undefined1 **)(pcVar9 + 8) = puVar12" (pointer_expression "*(undefined1 **)(pcVar9 + 8)" * (cast_expression "(undefined1 **)(pcVar9 + 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 8)" ( (binary_expression "pcVar9 + 8" identifier + number_literal) )))) = identifier) ;) (if_statement "if (DAT_001c65ab != '\x04') {\n      DAT_001c65ad = 1;\n    }" if (parenthesized_expression "(DAT_001c65ab != '\x04')" ( (binary_expression "DAT_001c65ab != '\x04'" identifier != (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n      DAT_001c65ad = 1;\n    }" { (expression_statement "DAT_001c65ad = 1;" (assignment_expression "DAT_001c65ad = 1" identifier = number_literal) ;) })) (labeled_statement "LAB_001502d6:\n    DAT_001c65af = 7;" statement_identifier : (expression_statement "DAT_001c65af = 7;" (assignment_expression "DAT_001c65af = 7" identifier = number_literal) ;)) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 == 0xf) {\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n      iVar6 = 0x10;\n      goto LAB_00150178;\n    }" if (parenthesized_expression "(iVar6 == 0xf)" ( (binary_expression "iVar6 == 0xf" identifier == number_literal) )) (compound_statement "{\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n      iVar6 = 0x10;\n      goto LAB_00150178;\n    }" { (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" identifier = (call_expression "FUN_0014eeae(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined8 *)(pcVar9 + 0x10) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar9 + 0x10) = uVar10" (pointer_expression "*(undefined8 *)(pcVar9 + 0x10)" * (cast_expression "(undefined8 *)(pcVar9 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x10)" ( (binary_expression "pcVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = 0x10;" (assignment_expression "iVar6 = 0x10" identifier = number_literal) ;) (goto_statement "goto LAB_00150178;" goto statement_identifier ;) })) (expression_statement "FUN_0014bd14(0xf);" (call_expression "FUN_0014bd14(0xf)" identifier (argument_list "(0xf)" ( number_literal ))) ;) (do_statement "do {\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *puVar12 = 0xf;\n      *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n      *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n      *unaff_RBP = puVar12;\n      unaff_RBP = (undefined1 **)(puVar12 + 8);\n      while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }\n    } while( true );" do (compound_statement "{\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *puVar12 = 0xf;\n      *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n      *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n      *unaff_RBP = puVar12;\n      unaff_RBP = (undefined1 **)(puVar12 + 8);\n      while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }\n    }" { (expression_statement "puVar12 = (undefined1 *)FUN_00149ab3(0x20);" (assignment_expression "puVar12 = (undefined1 *)FUN_00149ab3(0x20)" identifier = (cast_expression "(undefined1 *)FUN_00149ab3(0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*puVar12 = 0xf;" (assignment_expression "*puVar12 = 0xf" (pointer_expression "*puVar12" * identifier) = number_literal) ;) (expression_statement "*(byte **)(puVar12 + 0x10) = DAT_001c6498;" (assignment_expression "*(byte **)(puVar12 + 0x10) = DAT_001c6498" (pointer_expression "*(byte **)(puVar12 + 0x10)" * (cast_expression "(byte **)(puVar12 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x10)" ( (binary_expression "puVar12 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;" (assignment_expression "*(undefined8 *)(puVar12 + 0x18) = DAT_001c6490" (pointer_expression "*(undefined8 *)(puVar12 + 0x18)" * (cast_expression "(undefined8 *)(puVar12 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x18)" ( (binary_expression "puVar12 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*unaff_RBP = puVar12;" (assignment_expression "*unaff_RBP = puVar12" (pointer_expression "*unaff_RBP" * identifier) = identifier) ;) (expression_statement "unaff_RBP = (undefined1 **)(puVar12 + 8);" (assignment_expression "unaff_RBP = (undefined1 **)(puVar12 + 8)" identifier = (cast_expression "(undefined1 **)(puVar12 + 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 8)" ( (binary_expression "puVar12 + 8" identifier + number_literal) )))) ;) (while_statement "while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }" while (parenthesized_expression "(iVar6 = FUN_0014ecf5(), iVar6 != 3)" ( (comma_expression "iVar6 = FUN_0014ecf5(), iVar6 != 3" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) , (binary_expression "iVar6 != 3" identifier != number_literal)) )) (compound_statement "{\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }" { (expression_statement "*unaff_RBP = (undefined1 *)0x0;" (assignment_expression "*unaff_RBP = (undefined1 *)0x0" (pointer_expression "*unaff_RBP" * identifier) = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined1 **)(pcVar9 + 8) = local_48;" (assignment_expression "*(undefined1 **)(pcVar9 + 8) = local_48" (pointer_expression "*(undefined1 **)(pcVar9 + 8)" * (cast_expression "(undefined1 **)(pcVar9 + 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 8)" ( (binary_expression "pcVar9 + 8" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;" if (parenthesized_expression "((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04'))" ( (binary_expression "(DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')" (parenthesized_expression "(DAT_001c65ab == '\x01')" ( (binary_expression "DAT_001c65ab == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) || (parenthesized_expression "(DAT_001c65ab == '\x04')" ( (binary_expression "DAT_001c65ab == '\x04'" identifier == (char_literal "'\x04'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_001502d6;" goto statement_identifier ;)) (expression_statement "FUN_0014bd14(0xffffffff);" (call_expression "FUN_0014bd14(0xffffffff)" identifier (argument_list "(0xffffffff)" ( number_literal ))) ;) (labeled_statement "LAB_00150350:\n        unaff_RBP = &local_48;" statement_identifier : (expression_statement "unaff_RBP = &local_48;" (assignment_expression "unaff_RBP = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;)) })) }) while (parenthesized_expression "( true )" ( true )) ;)) (case_statement "case 0x1a:" case number_literal :) (case_statement "case 0x1b:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = (DAT_001c65ab != '\x1b') + '\t';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0xf) {\n      FUN_0014bd14(0xf);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    iVar6 = 0x10;\n    goto LAB_00150178;" case number_literal : (expression_statement "pcVar9 = (char *)FUN_00149ab3(0x18);" (assignment_expression "pcVar9 = (char *)FUN_00149ab3(0x18)" identifier = (cast_expression "(char *)FUN_00149ab3(0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "*pcVar9 = (DAT_001c65ab != '\x1b') + '\t';" (assignment_expression "*pcVar9 = (DAT_001c65ab != '\x1b') + '\t'" (pointer_expression "*pcVar9" * identifier) = (binary_expression "(DAT_001c65ab != '\x1b') + '\t'" (parenthesized_expression "(DAT_001c65ab != '\x1b')" ( (binary_expression "DAT_001c65ab != '\x1b'" identifier != (char_literal "'\x1b'" ' escape_sequence ')) )) + (char_literal "'\t'" ' escape_sequence '))) ;) (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" identifier = (call_expression "FUN_0014eeae(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined8 *)(pcVar9 + 8) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar9 + 8) = uVar10" (pointer_expression "*(undefined8 *)(pcVar9 + 8)" * (cast_expression "(undefined8 *)(pcVar9 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 8)" ( (binary_expression "pcVar9 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 != 0xf) {\n      FUN_0014bd14(0xf);\n    }" if (parenthesized_expression "(iVar6 != 0xf)" ( (binary_expression "iVar6 != 0xf" identifier != number_literal) )) (compound_statement "{\n      FUN_0014bd14(0xf);\n    }" { (expression_statement "FUN_0014bd14(0xf);" (call_expression "FUN_0014bd14(0xf)" identifier (argument_list "(0xf)" ( number_literal ))) ;) })) (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" identifier = (call_expression "FUN_0014eeae(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined8 *)(pcVar9 + 0x10) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar9 + 0x10) = uVar10" (pointer_expression "*(undefined8 *)(pcVar9 + 0x10)" * (cast_expression "(undefined8 *)(pcVar9 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x10)" ( (binary_expression "pcVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = 0x10;" (assignment_expression "iVar6 = 0x10" identifier = number_literal) ;) (goto_statement "goto LAB_00150178;" goto statement_identifier ;)) (case_statement "case 0x1c:\n    pcVar9 = (char *)FUN_0014eeae(0);\n    iVar6 = 0x1d;\n    goto LAB_00150178;" case number_literal : (expression_statement "pcVar9 = (char *)FUN_0014eeae(0);" (assignment_expression "pcVar9 = (char *)FUN_0014eeae(0)" identifier = (cast_expression "(char *)FUN_0014eeae(0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0014eeae(0)" identifier (argument_list "(0)" ( number_literal ))))) ;) (expression_statement "iVar6 = 0x1d;" (assignment_expression "iVar6 = 0x1d" identifier = number_literal) ;) (goto_statement "goto LAB_00150178;" goto statement_identifier ;)) })) (labeled_statement "LAB_0015082d:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return pcVar9;" return identifier ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n\nnode * parse_command(void)\n\n{\n  bool bVar1;\n  bool bVar2;\n  bool bVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  int iVar7;\n  node *pnVar8;\n  char *pcVar9;\n  node *pnVar10;\n  node *pnVar11;\n  char *pcVar12;\n  builtincmd *pbVar13;\n  long lVar14;\n  node **ppnVar15;\n  char **ppcVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  node **ppnVar19;\n  node **ppnVar20;\n  long in_FS_OFFSET;\n  undefined1 uVar21;\n  bool bVar22;\n  undefined1 uVar23;\n  bool bVar24;\n  byte bVar25;\n  node *redir;\n  node *args;\n  node *vars;\n  node *ap;\n  long local_40;\n  \n  bVar25 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  redir = (node *)0x0;\n  iVar7 = g_parsefile->linno;\n  iVar4 = readtoken();\n  switch(iVar4) {\n  default:\n                    /* WARNING: Subroutine does not return */\n    raise_error_unexpected_syntax(-1);\n  case 2:\n  case 3:\n  case 0x16:\n    tokpushback = '\x01';\n    args = (node *)0x0;\n    vars = (node *)0x0;\n    ap = (node *)0x0;\n    iVar7 = g_parsefile->linno;\n    bVar3 = false;\n    bVar1 = false;\n    bVar2 = true;\n    ppnVar20 = &ap;\n    ppnVar15 = &vars;\n    ppnVar19 = &args;\n    pnVar10 = (node *)0x0;\nLAB_001505a5:\n    while (checkkwd = bVar2, uVar6 = readtoken(), pnVar11 = redirnode, uVar6 < 0x17) {\n      uVar21 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar6];\n      uVar23 = (&switchD_001505ce::switchdataD_001afc54)[uVar6] == 0xffe503ac;\n      switch(uVar6) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        *ppnVar20 = redirnode;\n        ppnVar20 = &(redirnode->ncmd).assign;\n        parsefname();\n        pnVar10 = pnVar11;\n        break;\n      case 6:\n      case 7:\n        if (!bVar1) goto LAB_00150605;\n        uVar21 = uVar6 < 6;\n        uVar23 = uVar6 == 6;\n        wordtext = "-a";\n        if (!(bool)uVar23) {\n          wordtext = "-o";\n        }\n      case 3:\n        pnVar10 = (node *)stzalloc(0x20);\n        pnVar10->type = '\x0f';\n        pcVar9 = wordtext;\n        (pnVar10->narg).text = wordtext;\n        lVar14 = 3;\n        pbVar17 = &DAT_001bc467;\n        pbVar18 = (byte *)pcVar9;\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          uVar21 = *pbVar17 < *pbVar18;\n          uVar23 = *pbVar17 == *pbVar18;\n          pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n        } while ((bool)uVar23);\n        bVar22 = false;\n        bVar24 = (!(bool)uVar21 && !(bool)uVar23) == (bool)uVar21;\n        if (bVar24) {\n          bVar1 = true;\n        }\n        else {\n          lVar14 = 3;\n          pbVar17 = (byte *)0x1bf6dc;\n          pbVar18 = (byte *)pcVar9;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar22 = *pbVar17 < *pbVar18;\n            bVar24 = *pbVar17 == *pbVar18;\n            pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n          } while (bVar24);\n          if ((!bVar22 && !bVar24) == bVar22) {\n            bVar1 = false;\n          }\n        }\n        (pnVar10->narg).backquote = backquotelist;\n        if (((bVar2) && (pcVar12 = endofname(pcVar9), pcVar9 != pcVar12)) && (*pcVar12 == '=')) {\n          *ppnVar15 = pnVar10;\n          ppnVar15 = &(pnVar10->ncmd).assign;\n        }\n        else {\n          *ppnVar19 = pnVar10;\n          ppnVar19 = &(pnVar10->ncmd).assign;\n          bVar2 = false;\n        }\n        if (bVar3) {\n          checkkwd = '\x06';\n          iVar4 = readtoken();\n          tokpushback = '\x01';\n          if (0x19 < iVar4 - 3U) goto switchD_00150729_caseD_4;\n          bVar22 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U];\n          bVar24 = (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U] == 0xffe50350;\n          switch(iVar4) {\n          case 3:\n            lVar14 = 3;\n            pbVar17 = &DAT_001bc467;\n            pbVar18 = (byte *)wordtext;\n            goto code_r0x00150758;\n          default:\n            goto switchD_00150729_caseD_4;\n          case 9:\n            bVar3 = false;\n            break;\n          case 0xe:\n          case 0x15:\n          case 0x17:\n          case 0x1a:\n          case 0x1b:\n          case 0x1c:\n            goto switchD_001505ce_caseD_9;\n          }\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        goto switchD_001505ce_caseD_16;\n      }\n    }\n    goto switchD_001505ce_caseD_0;\n  case 9:\n    pnVar11 = (node *)stzalloc(0x18);\n    pnVar11->type = '\x04';\n    (pnVar11->ncmd).linno = iVar7;\n    pnVar8 = list(0);\n    (pnVar11->ncmd).assign = pnVar8;\n    iVar4 = 10;\n    break;\n  case 0xe:\n    pnVar11 = (node *)stzalloc(0x18);\n    pnVar11->type = '\f';\n    (pnVar11->ncmd).linno = iVar7;\n    iVar4 = readtoken();\n    if (iVar4 != 3) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(3);\n    }\n    pcVar9 = (char *)stzalloc(0x20);\n    (pnVar11->ndefun).text = pcVar9;\n    *pcVar9 = '\x0f';\n    *(char **)(pcVar9 + 0x10) = wordtext;\n    *(nodelist **)(pcVar9 + 0x18) = backquotelist;\n    checkkwd = '\a';\n    iVar4 = readtoken();\n    if (iVar4 != 0x18) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0x18);\n    }\n    ppcVar16 = &(pnVar11->narg).text;\n    while( true ) {\n      checkkwd = '\x06';\n      iVar4 = readtoken();\n      if (iVar4 == 0x13) break;\n      if (lasttoken == '\t') {\n        readtoken();\n      }\n      pcVar9 = (char *)stzalloc(0x20);\n      *ppcVar16 = pcVar9;\n      *pcVar9 = '\r';\n      ppnVar15 = (node **)(pcVar9 + 0x10);\n      while( true ) {\n        pnVar8 = (node *)stzalloc(0x20);\n        *ppnVar15 = pnVar8;\n        pnVar8->type = '\x0f';\n        (pnVar8->narg).text = wordtext;\n        (pnVar8->narg).backquote = backquotelist;\n        ap = pnVar8;\n        iVar4 = readtoken();\n        if (iVar4 != 8) break;\n        ppnVar15 = &(pnVar8->ncmd).assign;\n        readtoken();\n      }\n      if (lasttoken != '\n') {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(10);\n      }\n      pnVar8 = list(2);\n      *(node **)(pcVar9 + 0x18) = pnVar8;\n      ppcVar16 = (char **)(pcVar9 + 8);\n      checkkwd = '\x06';\n      iVar4 = readtoken();\n      if (iVar4 == 0x13) break;\n      if (iVar4 != 0xb) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(0xb);\n      }\n    }\n    *ppcVar16 = (char *)0x0;\n    goto LAB_001504ae;\n  case 0x15:\n    iVar4 = readtoken();\n    if (((iVar4 != 3) || (quoteflag != '\0')) || (pcVar9 = endofname(wordtext), *pcVar9 != '\0')) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_syntax("bad for loop variable");\n    }\n    pnVar11 = (node *)stzalloc(0x20);\n    pnVar11->type = '\v';\n    (pnVar11->ncmd).linno = iVar7;\n    (pnVar11->nfor).var = wordtext;\n    checkkwd = '\a';\n    iVar4 = readtoken();\n    if (iVar4 == 0x18) {\n      ppnVar15 = &ap;\n      while (iVar4 = readtoken(), iVar4 == 3) {\n        pnVar8 = (node *)stzalloc(0x20);\n        pnVar8->type = '\x0f';\n        (pnVar8->narg).text = wordtext;\n        (pnVar8->narg).backquote = backquotelist;\n        *ppnVar15 = pnVar8;\n        ppnVar15 = &(pnVar8->ncmd).assign;\n      }\n      *ppnVar15 = (node *)0x0;\n      (pnVar11->ncmd).assign = ap;\n      if ((lasttoken != '\x01') && (lasttoken != '\x04')) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(-1);\n      }\n    }\n    else {\n      pcVar9 = (char *)stzalloc(0x20);\n      *pcVar9 = '\x0f';\n      *(char **)(pcVar9 + 0x10) = dolatstr;\n      (pnVar11->ndefun).text = pcVar9;\n      if (lasttoken != '\x04') {\n        tokpushback = '\x01';\n      }\n    }\n    checkkwd = '\a';\n    iVar4 = readtoken();\n    if (iVar4 != 0xf) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0xf);\n    }\n    pnVar8 = list(0);\n    (pnVar11->ncmd).args = pnVar8;\n    iVar4 = 0x10;\n    break;\n  case 0x17:\n    pnVar11 = (node *)stzalloc(0x20);\n    pnVar11->type = '\b';\n    pnVar8 = list(0);\n    (pnVar11->ncmd).assign = pnVar8;\n    iVar4 = readtoken();\n    if (iVar4 != 0x19) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0x19);\n    }\n    pnVar8 = list(0);\n    (pnVar11->ncmd).args = pnVar8;\n    pnVar8 = pnVar11;\n    while (iVar4 = readtoken(), iVar4 == 0x11) {\n      pnVar10 = (node *)stzalloc(0x20);\n      (pnVar8->narg).backquote = (nodelist *)pnVar10;\n      pnVar10->type = '\b';\n      pnVar8 = list(0);\n      (pnVar10->ncmd).assign = pnVar8;\n      iVar4 = readtoken();\n      if (iVar4 != 0x19) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(0x19);\n      }\n      pnVar8 = list(0);\n      (pnVar10->ncmd).args = pnVar8;\n      pnVar8 = pnVar10;\n    }\n    if (lasttoken == '\x12') {\n      pnVar10 = list(0);\n      (pnVar8->ncmd).redirect = pnVar10;\n      iVar4 = 0x14;\n    }\n    else {\n      (pnVar8->ncmd).redirect = (node *)0x0;\n      tokpushback = '\x01';\n      iVar4 = 0x14;\n    }\n    break;\n  case 0x1a:\n  case 0x1b:\n    pnVar11 = (node *)stzalloc(0x18);\n    pnVar11->type = (lasttoken != '\x1b') + '\t';\n    pnVar8 = list(0);\n    (pnVar11->ncmd).assign = pnVar8;\n    iVar4 = readtoken();\n    if (iVar4 != 0xf) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0xf);\n    }\n    pnVar8 = list(0);\n    (pnVar11->ncmd).args = pnVar8;\n    iVar4 = 0x10;\n    break;\n  case 0x1c:\n    pnVar11 = list(0);\n    iVar4 = 0x1d;\n  }\n  iVar5 = readtoken();\n  if (iVar5 != iVar4) {\n                    /* WARNING: Subroutine does not return */\n    raise_error_unexpected_syntax(iVar4);\n  }\nLAB_001504ae:\n  checkkwd = '\x03';\n  ppnVar15 = &redir;\n  while (iVar4 = readtoken(), iVar4 == 2) {\n    *ppnVar15 = redirnode;\n    ppnVar15 = &(redirnode->ncmd).assign;\n    parsefname();\n  }\n  tokpushback = '\x01';\n  *ppnVar15 = (node *)0x0;\n  pnVar8 = redir;\n  pnVar10 = pnVar11;\n  if (redir != (node *)0x0) {\n    if (pnVar11->type != '\x04') {\n      pnVar10 = (node *)stzalloc(0x18);\n      pnVar10->type = '\x02';\n      (pnVar10->ncmd).linno = iVar7;\n      (pnVar10->ncmd).assign = pnVar11;\n    }\n    (pnVar10->ncmd).args = pnVar8;\n  }\nLAB_0015082d:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return pnVar10;\nswitchD_001505ce_caseD_16:\n  iVar4 = readtoken();\n  tokpushback = '\x01';\n  if (iVar4 != 3) {\n                    /* WARNING: Subroutine does not return */\n    raise_error_unexpected_syntax(3);\n  }\n  bVar3 = true;\n  goto LAB_001505a5;\n  while( true ) {\n    lVar14 = lVar14 + -1;\n    bVar22 = *pbVar17 < *pbVar18;\n    bVar24 = *pbVar17 == *pbVar18;\n    pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n    pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n    if (!bVar24) break;\ncode_r0x00150758:\n    if (lVar14 == 0) break;\n  }\n  if ((!bVar22 && !bVar24) != bVar22) {\nswitchD_00150729_caseD_4:\n                    /* WARNING: Subroutine does not return */\n    raise_error_unexpected_syntax(-1);\n  }\nswitchD_001505ce_caseD_9:\n  if ((((args == (node *)0x0) || (ppnVar19 != &(args->ncmd).assign)) || (vars != (node *)0x0)) ||\n     (ap != (node *)0x0)) {\nswitchD_001505ce_caseD_0:\nLAB_00150605:\n    tokpushback = '\x01';\n    *ppnVar19 = (node *)0x0;\n    *ppnVar15 = (node *)0x0;\n    *ppnVar20 = (node *)0x0;\n    pnVar10 = (node *)stzalloc(0x20);\n    (pnVar10->ncmd).linno = iVar7;\n    (pnVar10->ncmd).args = args;\n    (pnVar10->ncmd).assign = vars;\n    (pnVar10->ncmd).redirect = ap;\n  }\n  else {\n    if ((!bVar3) && (iVar7 = readtoken(), iVar7 != 10)) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(10);\n    }\n    pcVar9 = (pnVar10->narg).text;\n    pcVar12 = endofname(pcVar9);\n    if ((*pcVar12 != '\0') ||\n       ((pbVar13 = find_builtin(pcVar9), pbVar13 != (builtincmd *)0x0 &&\n        ((*pbVar13->name & 1U) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_syntax("bad function name");\n    }\n    pnVar10->type = '\x0e';\n    checkkwd = '\a';\n    (pnVar10->ncmd).assign = (pnVar10->ncmd).args;\n    (pnVar10->ncmd).linno = g_parsefile->linno;\n    pnVar11 = parse_command();\n    (pnVar10->ncmd).args = pnVar11;\n  }\n  goto LAB_0015082d;\n}\n\n" comment (function_definition "node * parse_command(void)\n\n{\n  bool bVar1;\n  bool bVar2;\n  bool bVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  int iVar7;\n  node *pnVar8;\n  char *pcVar9;\n  node *pnVar10;\n  node *pnVar11;\n  char *pcVar12;\n  builtincmd *pbVar13;\n  long lVar14;\n  node **ppnVar15;\n  char **ppcVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  node **ppnVar19;\n  node **ppnVar20;\n  long in_FS_OFFSET;\n  undefined1 uVar21;\n  bool bVar22;\n  undefined1 uVar23;\n  bool bVar24;\n  byte bVar25;\n  node *redir;\n  node *args;\n  node *vars;\n  node *ap;\n  long local_40;\n  \n  bVar25 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  redir = (node *)0x0;\n  iVar7 = g_parsefile->linno;\n  iVar4 = readtoken();\n  switch(iVar4) {\n  default:\n                    /* WARNING: Subroutine does not return */\n    raise_error_unexpected_syntax(-1);\n  case 2:\n  case 3:\n  case 0x16:\n    tokpushback = '\x01';\n    args = (node *)0x0;\n    vars = (node *)0x0;\n    ap = (node *)0x0;\n    iVar7 = g_parsefile->linno;\n    bVar3 = false;\n    bVar1 = false;\n    bVar2 = true;\n    ppnVar20 = &ap;\n    ppnVar15 = &vars;\n    ppnVar19 = &args;\n    pnVar10 = (node *)0x0;\nLAB_001505a5:\n    while (checkkwd = bVar2, uVar6 = readtoken(), pnVar11 = redirnode, uVar6 < 0x17) {\n      uVar21 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar6];\n      uVar23 = (&switchD_001505ce::switchdataD_001afc54)[uVar6] == 0xffe503ac;\n      switch(uVar6) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        *ppnVar20 = redirnode;\n        ppnVar20 = &(redirnode->ncmd).assign;\n        parsefname();\n        pnVar10 = pnVar11;\n        break;\n      case 6:\n      case 7:\n        if (!bVar1) goto LAB_00150605;\n        uVar21 = uVar6 < 6;\n        uVar23 = uVar6 == 6;\n        wordtext = "-a";\n        if (!(bool)uVar23) {\n          wordtext = "-o";\n        }\n      case 3:\n        pnVar10 = (node *)stzalloc(0x20);\n        pnVar10->type = '\x0f';\n        pcVar9 = wordtext;\n        (pnVar10->narg).text = wordtext;\n        lVar14 = 3;\n        pbVar17 = &DAT_001bc467;\n        pbVar18 = (byte *)pcVar9;\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          uVar21 = *pbVar17 < *pbVar18;\n          uVar23 = *pbVar17 == *pbVar18;\n          pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n        } while ((bool)uVar23);\n        bVar22 = false;\n        bVar24 = (!(bool)uVar21 && !(bool)uVar23) == (bool)uVar21;\n        if (bVar24) {\n          bVar1 = true;\n        }\n        else {\n          lVar14 = 3;\n          pbVar17 = (byte *)0x1bf6dc;\n          pbVar18 = (byte *)pcVar9;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar22 = *pbVar17 < *pbVar18;\n            bVar24 = *pbVar17 == *pbVar18;\n            pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n          } while (bVar24);\n          if ((!bVar22 && !bVar24) == bVar22) {\n            bVar1 = false;\n          }\n        }\n        (pnVar10->narg).backquote = backquotelist;\n        if (((bVar2) && (pcVar12 = endofname(pcVar9), pcVar9 != pcVar12)) && (*pcVar12 == '=')) {\n          *ppnVar15 = pnVar10;\n          ppnVar15 = &(pnVar10->ncmd).assign;\n        }\n        else {\n          *ppnVar19 = pnVar10;\n          ppnVar19 = &(pnVar10->ncmd).assign;\n          bVar2 = false;\n        }\n        if (bVar3) {\n          checkkwd = '\x06';\n          iVar4 = readtoken();\n          tokpushback = '\x01';\n          if (0x19 < iVar4 - 3U) goto switchD_00150729_caseD_4;\n          bVar22 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U];\n          bVar24 = (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U] == 0xffe50350;\n          switch(iVar4) {\n          case 3:\n            lVar14 = 3;\n            pbVar17 = &DAT_001bc467;\n            pbVar18 = (byte *)wordtext;\n            goto code_r0x00150758;\n          default:\n            goto switchD_00150729_caseD_4;\n          case 9:\n            bVar3 = false;\n            break;\n          case 0xe:\n          case 0x15:\n          case 0x17:\n          case 0x1a:\n          case 0x1b:\n          case 0x1c:\n            goto switchD_001505ce_caseD_9;\n          }\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        goto switchD_001505ce_caseD_16;\n      }\n    }\n    goto switchD_001505ce_caseD_0;\n  case 9:\n    pnVar11 = (node *)stzalloc(0x18);\n    pnVar11->type = '\x04';\n    (pnVar11->ncmd).linno = iVar7;\n    pnVar8 = list(0);\n    (pnVar11->ncmd).assign = pnVar8;\n    iVar4 = 10;\n    break;\n  case 0xe:\n    pnVar11 = (node *)stzalloc(0x18);\n    pnVar11->type = '\f';\n    (pnVar11->ncmd).linno = iVar7;\n    iVar4 = readtoken();\n    if (iVar4 != 3) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(3);\n    }\n    pcVar9 = (char *)stzalloc(0x20);\n    (pnVar11->ndefun).text = pcVar9;\n    *pcVar9 = '\x0f';\n    *(char **)(pcVar9 + 0x10) = wordtext;\n    *(nodelist **)(pcVar9 + 0x18) = backquotelist;\n    checkkwd = '\a';\n    iVar4 = readtoken();\n    if (iVar4 != 0x18) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0x18);\n    }\n    ppcVar16 = &(pnVar11->narg).text;\n    while( true ) {\n      checkkwd = '\x06';\n      iVar4 = readtoken();\n      if (iVar4 == 0x13) break;\n      if (lasttoken == '\t') {\n        readtoken();\n      }\n      pcVar9 = (char *)stzalloc(0x20);\n      *ppcVar16 = pcVar9;\n      *pcVar9 = '\r';\n      ppnVar15 = (node **)(pcVar9 + 0x10);\n      while( true ) {\n        pnVar8 = (node *)stzalloc(0x20);\n        *ppnVar15 = pnVar8;\n        pnVar8->type = '\x0f';\n        (pnVar8->narg).text = wordtext;\n        (pnVar8->narg).backquote = backquotelist;\n        ap = pnVar8;\n        iVar4 = readtoken();\n        if (iVar4 != 8) break;\n        ppnVar15 = &(pnVar8->ncmd).assign;\n        readtoken();\n      }\n      if (lasttoken != '\n') {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(10);\n      }\n      pnVar8 = list(2);\n      *(node **)(pcVar9 + 0x18) = pnVar8;\n      ppcVar16 = (char **)(pcVar9 + 8);\n      checkkwd = '\x06';\n      iVar4 = readtoken();\n      if (iVar4 == 0x13) break;\n      if (iVar4 != 0xb) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(0xb);\n      }\n    }\n    *ppcVar16 = (char *)0x0;\n    goto LAB_001504ae;\n  case 0x15:\n    iVar4 = readtoken();\n    if (((iVar4 != 3) || (quoteflag != '\0')) || (pcVar9 = endofname(wordtext), *pcVar9 != '\0')) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_syntax("bad for loop variable");\n    }\n    pnVar11 = (node *)stzalloc(0x20);\n    pnVar11->type = '\v';\n    (pnVar11->ncmd).linno = iVar7;\n    (pnVar11->nfor).var = wordtext;\n    checkkwd = '\a';\n    iVar4 = readtoken();\n    if (iVar4 == 0x18) {\n      ppnVar15 = &ap;\n      while (iVar4 = readtoken(), iVar4 == 3) {\n        pnVar8 = (node *)stzalloc(0x20);\n        pnVar8->type = '\x0f';\n        (pnVar8->narg).text = wordtext;\n        (pnVar8->narg).backquote = backquotelist;\n        *ppnVar15 = pnVar8;\n        ppnVar15 = &(pnVar8->ncmd).assign;\n      }\n      *ppnVar15 = (node *)0x0;\n      (pnVar11->ncmd).assign = ap;\n      if ((lasttoken != '\x01') && (lasttoken != '\x04')) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(-1);\n      }\n    }\n    else {\n      pcVar9 = (char *)stzalloc(0x20);\n      *pcVar9 = '\x0f';\n      *(char **)(pcVar9 + 0x10) = dolatstr;\n      (pnVar11->ndefun).text = pcVar9;\n      if (lasttoken != '\x04') {\n        tokpushback = '\x01';\n      }\n    }\n    checkkwd = '\a';\n    iVar4 = readtoken();\n    if (iVar4 != 0xf) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0xf);\n    }\n    pnVar8 = list(0);\n    (pnVar11->ncmd).args = pnVar8;\n    iVar4 = 0x10;\n    break;\n  case 0x17:\n    pnVar11 = (node *)stzalloc(0x20);\n    pnVar11->type = '\b';\n    pnVar8 = list(0);\n    (pnVar11->ncmd).assign = pnVar8;\n    iVar4 = readtoken();\n    if (iVar4 != 0x19) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0x19);\n    }\n    pnVar8 = list(0);\n    (pnVar11->ncmd).args = pnVar8;\n    pnVar8 = pnVar11;\n    while (iVar4 = readtoken(), iVar4 == 0x11) {\n      pnVar10 = (node *)stzalloc(0x20);\n      (pnVar8->narg).backquote = (nodelist *)pnVar10;\n      pnVar10->type = '\b';\n      pnVar8 = list(0);\n      (pnVar10->ncmd).assign = pnVar8;\n      iVar4 = readtoken();\n      if (iVar4 != 0x19) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(0x19);\n      }\n      pnVar8 = list(0);\n      (pnVar10->ncmd).args = pnVar8;\n      pnVar8 = pnVar10;\n    }\n    if (lasttoken == '\x12') {\n      pnVar10 = list(0);\n      (pnVar8->ncmd).redirect = pnVar10;\n      iVar4 = 0x14;\n    }\n    else {\n      (pnVar8->ncmd).redirect = (node *)0x0;\n      tokpushback = '\x01';\n      iVar4 = 0x14;\n    }\n    break;\n  case 0x1a:\n  case 0x1b:\n    pnVar11 = (node *)stzalloc(0x18);\n    pnVar11->type = (lasttoken != '\x1b') + '\t';\n    pnVar8 = list(0);\n    (pnVar11->ncmd).assign = pnVar8;\n    iVar4 = readtoken();\n    if (iVar4 != 0xf) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0xf);\n    }\n    pnVar8 = list(0);\n    (pnVar11->ncmd).args = pnVar8;\n    iVar4 = 0x10;\n    break;\n  case 0x1c:\n    pnVar11 = list(0);\n    iVar4 = 0x1d;\n  }\n  iVar5 = readtoken();\n  if (iVar5 != iVar4) {\n                    /* WARNING: Subroutine does not return */\n    raise_error_unexpected_syntax(iVar4);\n  }\nLAB_001504ae:\n  checkkwd = '\x03';\n  ppnVar15 = &redir;\n  while (iVar4 = readtoken(), iVar4 == 2) {\n    *ppnVar15 = redirnode;\n    ppnVar15 = &(redirnode->ncmd).assign;\n    parsefname();\n  }\n  tokpushback = '\x01';\n  *ppnVar15 = (node *)0x0;\n  pnVar8 = redir;\n  pnVar10 = pnVar11;\n  if (redir != (node *)0x0) {\n    if (pnVar11->type != '\x04') {\n      pnVar10 = (node *)stzalloc(0x18);\n      pnVar10->type = '\x02';\n      (pnVar10->ncmd).linno = iVar7;\n      (pnVar10->ncmd).assign = pnVar11;\n    }\n    (pnVar10->ncmd).args = pnVar8;\n  }\nLAB_0015082d:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return pnVar10;\nswitchD_001505ce_caseD_16:\n  iVar4 = readtoken();\n  tokpushback = '\x01';\n  if (iVar4 != 3) {\n                    /* WARNING: Subroutine does not return */\n    raise_error_unexpected_syntax(3);\n  }\n  bVar3 = true;\n  goto LAB_001505a5;\n  while( true ) {\n    lVar14 = lVar14 + -1;\n    bVar22 = *pbVar17 < *pbVar18;\n    bVar24 = *pbVar17 == *pbVar18;\n    pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n    pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n    if (!bVar24) break;\ncode_r0x00150758:\n    if (lVar14 == 0) break;\n  }\n  if ((!bVar22 && !bVar24) != bVar22) {\nswitchD_00150729_caseD_4:\n                    /* WARNING: Subroutine does not return */\n    raise_error_unexpected_syntax(-1);\n  }\nswitchD_001505ce_caseD_9:\n  if ((((args == (node *)0x0) || (ppnVar19 != &(args->ncmd).assign)) || (vars != (node *)0x0)) ||\n     (ap != (node *)0x0)) {\nswitchD_001505ce_caseD_0:\nLAB_00150605:\n    tokpushback = '\x01';\n    *ppnVar19 = (node *)0x0;\n    *ppnVar15 = (node *)0x0;\n    *ppnVar20 = (node *)0x0;\n    pnVar10 = (node *)stzalloc(0x20);\n    (pnVar10->ncmd).linno = iVar7;\n    (pnVar10->ncmd).args = args;\n    (pnVar10->ncmd).assign = vars;\n    (pnVar10->ncmd).redirect = ap;\n  }\n  else {\n    if ((!bVar3) && (iVar7 = readtoken(), iVar7 != 10)) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(10);\n    }\n    pcVar9 = (pnVar10->narg).text;\n    pcVar12 = endofname(pcVar9);\n    if ((*pcVar12 != '\0') ||\n       ((pbVar13 = find_builtin(pcVar9), pbVar13 != (builtincmd *)0x0 &&\n        ((*pbVar13->name & 1U) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_syntax("bad function name");\n    }\n    pnVar10->type = '\x0e';\n    checkkwd = '\a';\n    (pnVar10->ncmd).assign = (pnVar10->ncmd).args;\n    (pnVar10->ncmd).linno = g_parsefile->linno;\n    pnVar11 = parse_command();\n    (pnVar10->ncmd).args = pnVar11;\n  }\n  goto LAB_0015082d;\n}" type_identifier (pointer_declarator "* parse_command(void)" * (function_declarator "parse_command(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n  bool bVar1;\n  bool bVar2;\n  bool bVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  int iVar7;\n  node *pnVar8;\n  char *pcVar9;\n  node *pnVar10;\n  node *pnVar11;\n  char *pcVar12;\n  builtincmd *pbVar13;\n  long lVar14;\n  node **ppnVar15;\n  char **ppcVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  node **ppnVar19;\n  node **ppnVar20;\n  long in_FS_OFFSET;\n  undefined1 uVar21;\n  bool bVar22;\n  undefined1 uVar23;\n  bool bVar24;\n  byte bVar25;\n  node *redir;\n  node *args;\n  node *vars;\n  node *ap;\n  long local_40;\n  \n  bVar25 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  redir = (node *)0x0;\n  iVar7 = g_parsefile->linno;\n  iVar4 = readtoken();\n  switch(iVar4) {\n  default:\n                    /* WARNING: Subroutine does not return */\n    raise_error_unexpected_syntax(-1);\n  case 2:\n  case 3:\n  case 0x16:\n    tokpushback = '\x01';\n    args = (node *)0x0;\n    vars = (node *)0x0;\n    ap = (node *)0x0;\n    iVar7 = g_parsefile->linno;\n    bVar3 = false;\n    bVar1 = false;\n    bVar2 = true;\n    ppnVar20 = &ap;\n    ppnVar15 = &vars;\n    ppnVar19 = &args;\n    pnVar10 = (node *)0x0;\nLAB_001505a5:\n    while (checkkwd = bVar2, uVar6 = readtoken(), pnVar11 = redirnode, uVar6 < 0x17) {\n      uVar21 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar6];\n      uVar23 = (&switchD_001505ce::switchdataD_001afc54)[uVar6] == 0xffe503ac;\n      switch(uVar6) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        *ppnVar20 = redirnode;\n        ppnVar20 = &(redirnode->ncmd).assign;\n        parsefname();\n        pnVar10 = pnVar11;\n        break;\n      case 6:\n      case 7:\n        if (!bVar1) goto LAB_00150605;\n        uVar21 = uVar6 < 6;\n        uVar23 = uVar6 == 6;\n        wordtext = "-a";\n        if (!(bool)uVar23) {\n          wordtext = "-o";\n        }\n      case 3:\n        pnVar10 = (node *)stzalloc(0x20);\n        pnVar10->type = '\x0f';\n        pcVar9 = wordtext;\n        (pnVar10->narg).text = wordtext;\n        lVar14 = 3;\n        pbVar17 = &DAT_001bc467;\n        pbVar18 = (byte *)pcVar9;\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          uVar21 = *pbVar17 < *pbVar18;\n          uVar23 = *pbVar17 == *pbVar18;\n          pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n        } while ((bool)uVar23);\n        bVar22 = false;\n        bVar24 = (!(bool)uVar21 && !(bool)uVar23) == (bool)uVar21;\n        if (bVar24) {\n          bVar1 = true;\n        }\n        else {\n          lVar14 = 3;\n          pbVar17 = (byte *)0x1bf6dc;\n          pbVar18 = (byte *)pcVar9;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar22 = *pbVar17 < *pbVar18;\n            bVar24 = *pbVar17 == *pbVar18;\n            pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n          } while (bVar24);\n          if ((!bVar22 && !bVar24) == bVar22) {\n            bVar1 = false;\n          }\n        }\n        (pnVar10->narg).backquote = backquotelist;\n        if (((bVar2) && (pcVar12 = endofname(pcVar9), pcVar9 != pcVar12)) && (*pcVar12 == '=')) {\n          *ppnVar15 = pnVar10;\n          ppnVar15 = &(pnVar10->ncmd).assign;\n        }\n        else {\n          *ppnVar19 = pnVar10;\n          ppnVar19 = &(pnVar10->ncmd).assign;\n          bVar2 = false;\n        }\n        if (bVar3) {\n          checkkwd = '\x06';\n          iVar4 = readtoken();\n          tokpushback = '\x01';\n          if (0x19 < iVar4 - 3U) goto switchD_00150729_caseD_4;\n          bVar22 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U];\n          bVar24 = (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U] == 0xffe50350;\n          switch(iVar4) {\n          case 3:\n            lVar14 = 3;\n            pbVar17 = &DAT_001bc467;\n            pbVar18 = (byte *)wordtext;\n            goto code_r0x00150758;\n          default:\n            goto switchD_00150729_caseD_4;\n          case 9:\n            bVar3 = false;\n            break;\n          case 0xe:\n          case 0x15:\n          case 0x17:\n          case 0x1a:\n          case 0x1b:\n          case 0x1c:\n            goto switchD_001505ce_caseD_9;\n          }\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        goto switchD_001505ce_caseD_16;\n      }\n    }\n    goto switchD_001505ce_caseD_0;\n  case 9:\n    pnVar11 = (node *)stzalloc(0x18);\n    pnVar11->type = '\x04';\n    (pnVar11->ncmd).linno = iVar7;\n    pnVar8 = list(0);\n    (pnVar11->ncmd).assign = pnVar8;\n    iVar4 = 10;\n    break;\n  case 0xe:\n    pnVar11 = (node *)stzalloc(0x18);\n    pnVar11->type = '\f';\n    (pnVar11->ncmd).linno = iVar7;\n    iVar4 = readtoken();\n    if (iVar4 != 3) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(3);\n    }\n    pcVar9 = (char *)stzalloc(0x20);\n    (pnVar11->ndefun).text = pcVar9;\n    *pcVar9 = '\x0f';\n    *(char **)(pcVar9 + 0x10) = wordtext;\n    *(nodelist **)(pcVar9 + 0x18) = backquotelist;\n    checkkwd = '\a';\n    iVar4 = readtoken();\n    if (iVar4 != 0x18) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0x18);\n    }\n    ppcVar16 = &(pnVar11->narg).text;\n    while( true ) {\n      checkkwd = '\x06';\n      iVar4 = readtoken();\n      if (iVar4 == 0x13) break;\n      if (lasttoken == '\t') {\n        readtoken();\n      }\n      pcVar9 = (char *)stzalloc(0x20);\n      *ppcVar16 = pcVar9;\n      *pcVar9 = '\r';\n      ppnVar15 = (node **)(pcVar9 + 0x10);\n      while( true ) {\n        pnVar8 = (node *)stzalloc(0x20);\n        *ppnVar15 = pnVar8;\n        pnVar8->type = '\x0f';\n        (pnVar8->narg).text = wordtext;\n        (pnVar8->narg).backquote = backquotelist;\n        ap = pnVar8;\n        iVar4 = readtoken();\n        if (iVar4 != 8) break;\n        ppnVar15 = &(pnVar8->ncmd).assign;\n        readtoken();\n      }\n      if (lasttoken != '\n') {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(10);\n      }\n      pnVar8 = list(2);\n      *(node **)(pcVar9 + 0x18) = pnVar8;\n      ppcVar16 = (char **)(pcVar9 + 8);\n      checkkwd = '\x06';\n      iVar4 = readtoken();\n      if (iVar4 == 0x13) break;\n      if (iVar4 != 0xb) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(0xb);\n      }\n    }\n    *ppcVar16 = (char *)0x0;\n    goto LAB_001504ae;\n  case 0x15:\n    iVar4 = readtoken();\n    if (((iVar4 != 3) || (quoteflag != '\0')) || (pcVar9 = endofname(wordtext), *pcVar9 != '\0')) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_syntax("bad for loop variable");\n    }\n    pnVar11 = (node *)stzalloc(0x20);\n    pnVar11->type = '\v';\n    (pnVar11->ncmd).linno = iVar7;\n    (pnVar11->nfor).var = wordtext;\n    checkkwd = '\a';\n    iVar4 = readtoken();\n    if (iVar4 == 0x18) {\n      ppnVar15 = &ap;\n      while (iVar4 = readtoken(), iVar4 == 3) {\n        pnVar8 = (node *)stzalloc(0x20);\n        pnVar8->type = '\x0f';\n        (pnVar8->narg).text = wordtext;\n        (pnVar8->narg).backquote = backquotelist;\n        *ppnVar15 = pnVar8;\n        ppnVar15 = &(pnVar8->ncmd).assign;\n      }\n      *ppnVar15 = (node *)0x0;\n      (pnVar11->ncmd).assign = ap;\n      if ((lasttoken != '\x01') && (lasttoken != '\x04')) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(-1);\n      }\n    }\n    else {\n      pcVar9 = (char *)stzalloc(0x20);\n      *pcVar9 = '\x0f';\n      *(char **)(pcVar9 + 0x10) = dolatstr;\n      (pnVar11->ndefun).text = pcVar9;\n      if (lasttoken != '\x04') {\n        tokpushback = '\x01';\n      }\n    }\n    checkkwd = '\a';\n    iVar4 = readtoken();\n    if (iVar4 != 0xf) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0xf);\n    }\n    pnVar8 = list(0);\n    (pnVar11->ncmd).args = pnVar8;\n    iVar4 = 0x10;\n    break;\n  case 0x17:\n    pnVar11 = (node *)stzalloc(0x20);\n    pnVar11->type = '\b';\n    pnVar8 = list(0);\n    (pnVar11->ncmd).assign = pnVar8;\n    iVar4 = readtoken();\n    if (iVar4 != 0x19) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0x19);\n    }\n    pnVar8 = list(0);\n    (pnVar11->ncmd).args = pnVar8;\n    pnVar8 = pnVar11;\n    while (iVar4 = readtoken(), iVar4 == 0x11) {\n      pnVar10 = (node *)stzalloc(0x20);\n      (pnVar8->narg).backquote = (nodelist *)pnVar10;\n      pnVar10->type = '\b';\n      pnVar8 = list(0);\n      (pnVar10->ncmd).assign = pnVar8;\n      iVar4 = readtoken();\n      if (iVar4 != 0x19) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(0x19);\n      }\n      pnVar8 = list(0);\n      (pnVar10->ncmd).args = pnVar8;\n      pnVar8 = pnVar10;\n    }\n    if (lasttoken == '\x12') {\n      pnVar10 = list(0);\n      (pnVar8->ncmd).redirect = pnVar10;\n      iVar4 = 0x14;\n    }\n    else {\n      (pnVar8->ncmd).redirect = (node *)0x0;\n      tokpushback = '\x01';\n      iVar4 = 0x14;\n    }\n    break;\n  case 0x1a:\n  case 0x1b:\n    pnVar11 = (node *)stzalloc(0x18);\n    pnVar11->type = (lasttoken != '\x1b') + '\t';\n    pnVar8 = list(0);\n    (pnVar11->ncmd).assign = pnVar8;\n    iVar4 = readtoken();\n    if (iVar4 != 0xf) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0xf);\n    }\n    pnVar8 = list(0);\n    (pnVar11->ncmd).args = pnVar8;\n    iVar4 = 0x10;\n    break;\n  case 0x1c:\n    pnVar11 = list(0);\n    iVar4 = 0x1d;\n  }\n  iVar5 = readtoken();\n  if (iVar5 != iVar4) {\n                    /* WARNING: Subroutine does not return */\n    raise_error_unexpected_syntax(iVar4);\n  }\nLAB_001504ae:\n  checkkwd = '\x03';\n  ppnVar15 = &redir;\n  while (iVar4 = readtoken(), iVar4 == 2) {\n    *ppnVar15 = redirnode;\n    ppnVar15 = &(redirnode->ncmd).assign;\n    parsefname();\n  }\n  tokpushback = '\x01';\n  *ppnVar15 = (node *)0x0;\n  pnVar8 = redir;\n  pnVar10 = pnVar11;\n  if (redir != (node *)0x0) {\n    if (pnVar11->type != '\x04') {\n      pnVar10 = (node *)stzalloc(0x18);\n      pnVar10->type = '\x02';\n      (pnVar10->ncmd).linno = iVar7;\n      (pnVar10->ncmd).assign = pnVar11;\n    }\n    (pnVar10->ncmd).args = pnVar8;\n  }\nLAB_0015082d:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return pnVar10;\nswitchD_001505ce_caseD_16:\n  iVar4 = readtoken();\n  tokpushback = '\x01';\n  if (iVar4 != 3) {\n                    /* WARNING: Subroutine does not return */\n    raise_error_unexpected_syntax(3);\n  }\n  bVar3 = true;\n  goto LAB_001505a5;\n  while( true ) {\n    lVar14 = lVar14 + -1;\n    bVar22 = *pbVar17 < *pbVar18;\n    bVar24 = *pbVar17 == *pbVar18;\n    pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n    pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n    if (!bVar24) break;\ncode_r0x00150758:\n    if (lVar14 == 0) break;\n  }\n  if ((!bVar22 && !bVar24) != bVar22) {\nswitchD_00150729_caseD_4:\n                    /* WARNING: Subroutine does not return */\n    raise_error_unexpected_syntax(-1);\n  }\nswitchD_001505ce_caseD_9:\n  if ((((args == (node *)0x0) || (ppnVar19 != &(args->ncmd).assign)) || (vars != (node *)0x0)) ||\n     (ap != (node *)0x0)) {\nswitchD_001505ce_caseD_0:\nLAB_00150605:\n    tokpushback = '\x01';\n    *ppnVar19 = (node *)0x0;\n    *ppnVar15 = (node *)0x0;\n    *ppnVar20 = (node *)0x0;\n    pnVar10 = (node *)stzalloc(0x20);\n    (pnVar10->ncmd).linno = iVar7;\n    (pnVar10->ncmd).args = args;\n    (pnVar10->ncmd).assign = vars;\n    (pnVar10->ncmd).redirect = ap;\n  }\n  else {\n    if ((!bVar3) && (iVar7 = readtoken(), iVar7 != 10)) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(10);\n    }\n    pcVar9 = (pnVar10->narg).text;\n    pcVar12 = endofname(pcVar9);\n    if ((*pcVar12 != '\0') ||\n       ((pbVar13 = find_builtin(pcVar9), pbVar13 != (builtincmd *)0x0 &&\n        ((*pbVar13->name & 1U) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_syntax("bad function name");\n    }\n    pnVar10->type = '\x0e';\n    checkkwd = '\a';\n    (pnVar10->ncmd).assign = (pnVar10->ncmd).args;\n    (pnVar10->ncmd).linno = g_parsefile->linno;\n    pnVar11 = parse_command();\n    (pnVar10->ncmd).args = pnVar11;\n  }\n  goto LAB_0015082d;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "node *pnVar8;" type_identifier (pointer_declarator "*pnVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "node *pnVar10;" type_identifier (pointer_declarator "*pnVar10" * identifier) ;) (declaration "node *pnVar11;" type_identifier (pointer_declarator "*pnVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "builtincmd *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "node **ppnVar15;" type_identifier (pointer_declarator "**ppnVar15" * (pointer_declarator "*ppnVar15" * identifier)) ;) (declaration "char **ppcVar16;" primitive_type (pointer_declarator "**ppcVar16" * (pointer_declarator "*ppcVar16" * identifier)) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "node **ppnVar19;" type_identifier (pointer_declarator "**ppnVar19" * (pointer_declarator "*ppnVar19" * identifier)) ;) (declaration "node **ppnVar20;" type_identifier (pointer_declarator "**ppnVar20" * (pointer_declarator "*ppnVar20" * identifier)) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 uVar21;" type_identifier identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "undefined1 uVar23;" type_identifier identifier ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "byte bVar25;" type_identifier identifier ;) (declaration "node *redir;" type_identifier (pointer_declarator "*redir" * identifier) ;) (declaration "node *args;" type_identifier (pointer_declarator "*args" * identifier) ;) (declaration "node *vars;" type_identifier (pointer_declarator "*vars" * identifier) ;) (declaration "node *ap;" type_identifier (pointer_declarator "*ap" * identifier) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "redir = (node *)0x0;" (assignment_expression "redir = (node *)0x0" identifier = (cast_expression "(node *)0x0" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar7 = g_parsefile->linno;" (assignment_expression "iVar7 = g_parsefile->linno" identifier = (field_expression "g_parsefile->linno" identifier -> field_identifier)) ;) (expression_statement "iVar4 = readtoken();" (assignment_expression "iVar4 = readtoken()" identifier = (call_expression "readtoken()" identifier (argument_list "()" ( )))) ;) (switch_statement "switch(iVar4) {\n  default:\n                    /* WARNING: Subroutine does not return */\n    raise_error_unexpected_syntax(-1);\n  case 2:\n  case 3:\n  case 0x16:\n    tokpushback = '\x01';\n    args = (node *)0x0;\n    vars = (node *)0x0;\n    ap = (node *)0x0;\n    iVar7 = g_parsefile->linno;\n    bVar3 = false;\n    bVar1 = false;\n    bVar2 = true;\n    ppnVar20 = &ap;\n    ppnVar15 = &vars;\n    ppnVar19 = &args;\n    pnVar10 = (node *)0x0;\nLAB_001505a5:\n    while (checkkwd = bVar2, uVar6 = readtoken(), pnVar11 = redirnode, uVar6 < 0x17) {\n      uVar21 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar6];\n      uVar23 = (&switchD_001505ce::switchdataD_001afc54)[uVar6] == 0xffe503ac;\n      switch(uVar6) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        *ppnVar20 = redirnode;\n        ppnVar20 = &(redirnode->ncmd).assign;\n        parsefname();\n        pnVar10 = pnVar11;\n        break;\n      case 6:\n      case 7:\n        if (!bVar1) goto LAB_00150605;\n        uVar21 = uVar6 < 6;\n        uVar23 = uVar6 == 6;\n        wordtext = "-a";\n        if (!(bool)uVar23) {\n          wordtext = "-o";\n        }\n      case 3:\n        pnVar10 = (node *)stzalloc(0x20);\n        pnVar10->type = '\x0f';\n        pcVar9 = wordtext;\n        (pnVar10->narg).text = wordtext;\n        lVar14 = 3;\n        pbVar17 = &DAT_001bc467;\n        pbVar18 = (byte *)pcVar9;\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          uVar21 = *pbVar17 < *pbVar18;\n          uVar23 = *pbVar17 == *pbVar18;\n          pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n        } while ((bool)uVar23);\n        bVar22 = false;\n        bVar24 = (!(bool)uVar21 && !(bool)uVar23) == (bool)uVar21;\n        if (bVar24) {\n          bVar1 = true;\n        }\n        else {\n          lVar14 = 3;\n          pbVar17 = (byte *)0x1bf6dc;\n          pbVar18 = (byte *)pcVar9;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar22 = *pbVar17 < *pbVar18;\n            bVar24 = *pbVar17 == *pbVar18;\n            pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n          } while (bVar24);\n          if ((!bVar22 && !bVar24) == bVar22) {\n            bVar1 = false;\n          }\n        }\n        (pnVar10->narg).backquote = backquotelist;\n        if (((bVar2) && (pcVar12 = endofname(pcVar9), pcVar9 != pcVar12)) && (*pcVar12 == '=')) {\n          *ppnVar15 = pnVar10;\n          ppnVar15 = &(pnVar10->ncmd).assign;\n        }\n        else {\n          *ppnVar19 = pnVar10;\n          ppnVar19 = &(pnVar10->ncmd).assign;\n          bVar2 = false;\n        }\n        if (bVar3) {\n          checkkwd = '\x06';\n          iVar4 = readtoken();\n          tokpushback = '\x01';\n          if (0x19 < iVar4 - 3U) goto switchD_00150729_caseD_4;\n          bVar22 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U];\n          bVar24 = (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U] == 0xffe50350;\n          switch(iVar4) {\n          case 3:\n            lVar14 = 3;\n            pbVar17 = &DAT_001bc467;\n            pbVar18 = (byte *)wordtext;\n            goto code_r0x00150758;\n          default:\n            goto switchD_00150729_caseD_4;\n          case 9:\n            bVar3 = false;\n            break;\n          case 0xe:\n          case 0x15:\n          case 0x17:\n          case 0x1a:\n          case 0x1b:\n          case 0x1c:\n            goto switchD_001505ce_caseD_9;\n          }\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        goto switchD_001505ce_caseD_16;\n      }\n    }\n    goto switchD_001505ce_caseD_0;\n  case 9:\n    pnVar11 = (node *)stzalloc(0x18);\n    pnVar11->type = '\x04';\n    (pnVar11->ncmd).linno = iVar7;\n    pnVar8 = list(0);\n    (pnVar11->ncmd).assign = pnVar8;\n    iVar4 = 10;\n    break;\n  case 0xe:\n    pnVar11 = (node *)stzalloc(0x18);\n    pnVar11->type = '\f';\n    (pnVar11->ncmd).linno = iVar7;\n    iVar4 = readtoken();\n    if (iVar4 != 3) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(3);\n    }\n    pcVar9 = (char *)stzalloc(0x20);\n    (pnVar11->ndefun).text = pcVar9;\n    *pcVar9 = '\x0f';\n    *(char **)(pcVar9 + 0x10) = wordtext;\n    *(nodelist **)(pcVar9 + 0x18) = backquotelist;\n    checkkwd = '\a';\n    iVar4 = readtoken();\n    if (iVar4 != 0x18) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0x18);\n    }\n    ppcVar16 = &(pnVar11->narg).text;\n    while( true ) {\n      checkkwd = '\x06';\n      iVar4 = readtoken();\n      if (iVar4 == 0x13) break;\n      if (lasttoken == '\t') {\n        readtoken();\n      }\n      pcVar9 = (char *)stzalloc(0x20);\n      *ppcVar16 = pcVar9;\n      *pcVar9 = '\r';\n      ppnVar15 = (node **)(pcVar9 + 0x10);\n      while( true ) {\n        pnVar8 = (node *)stzalloc(0x20);\n        *ppnVar15 = pnVar8;\n        pnVar8->type = '\x0f';\n        (pnVar8->narg).text = wordtext;\n        (pnVar8->narg).backquote = backquotelist;\n        ap = pnVar8;\n        iVar4 = readtoken();\n        if (iVar4 != 8) break;\n        ppnVar15 = &(pnVar8->ncmd).assign;\n        readtoken();\n      }\n      if (lasttoken != '\n') {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(10);\n      }\n      pnVar8 = list(2);\n      *(node **)(pcVar9 + 0x18) = pnVar8;\n      ppcVar16 = (char **)(pcVar9 + 8);\n      checkkwd = '\x06';\n      iVar4 = readtoken();\n      if (iVar4 == 0x13) break;\n      if (iVar4 != 0xb) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(0xb);\n      }\n    }\n    *ppcVar16 = (char *)0x0;\n    goto LAB_001504ae;\n  case 0x15:\n    iVar4 = readtoken();\n    if (((iVar4 != 3) || (quoteflag != '\0')) || (pcVar9 = endofname(wordtext), *pcVar9 != '\0')) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_syntax("bad for loop variable");\n    }\n    pnVar11 = (node *)stzalloc(0x20);\n    pnVar11->type = '\v';\n    (pnVar11->ncmd).linno = iVar7;\n    (pnVar11->nfor).var = wordtext;\n    checkkwd = '\a';\n    iVar4 = readtoken();\n    if (iVar4 == 0x18) {\n      ppnVar15 = &ap;\n      while (iVar4 = readtoken(), iVar4 == 3) {\n        pnVar8 = (node *)stzalloc(0x20);\n        pnVar8->type = '\x0f';\n        (pnVar8->narg).text = wordtext;\n        (pnVar8->narg).backquote = backquotelist;\n        *ppnVar15 = pnVar8;\n        ppnVar15 = &(pnVar8->ncmd).assign;\n      }\n      *ppnVar15 = (node *)0x0;\n      (pnVar11->ncmd).assign = ap;\n      if ((lasttoken != '\x01') && (lasttoken != '\x04')) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(-1);\n      }\n    }\n    else {\n      pcVar9 = (char *)stzalloc(0x20);\n      *pcVar9 = '\x0f';\n      *(char **)(pcVar9 + 0x10) = dolatstr;\n      (pnVar11->ndefun).text = pcVar9;\n      if (lasttoken != '\x04') {\n        tokpushback = '\x01';\n      }\n    }\n    checkkwd = '\a';\n    iVar4 = readtoken();\n    if (iVar4 != 0xf) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0xf);\n    }\n    pnVar8 = list(0);\n    (pnVar11->ncmd).args = pnVar8;\n    iVar4 = 0x10;\n    break;\n  case 0x17:\n    pnVar11 = (node *)stzalloc(0x20);\n    pnVar11->type = '\b';\n    pnVar8 = list(0);\n    (pnVar11->ncmd).assign = pnVar8;\n    iVar4 = readtoken();\n    if (iVar4 != 0x19) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0x19);\n    }\n    pnVar8 = list(0);\n    (pnVar11->ncmd).args = pnVar8;\n    pnVar8 = pnVar11;\n    while (iVar4 = readtoken(), iVar4 == 0x11) {\n      pnVar10 = (node *)stzalloc(0x20);\n      (pnVar8->narg).backquote = (nodelist *)pnVar10;\n      pnVar10->type = '\b';\n      pnVar8 = list(0);\n      (pnVar10->ncmd).assign = pnVar8;\n      iVar4 = readtoken();\n      if (iVar4 != 0x19) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(0x19);\n      }\n      pnVar8 = list(0);\n      (pnVar10->ncmd).args = pnVar8;\n      pnVar8 = pnVar10;\n    }\n    if (lasttoken == '\x12') {\n      pnVar10 = list(0);\n      (pnVar8->ncmd).redirect = pnVar10;\n      iVar4 = 0x14;\n    }\n    else {\n      (pnVar8->ncmd).redirect = (node *)0x0;\n      tokpushback = '\x01';\n      iVar4 = 0x14;\n    }\n    break;\n  case 0x1a:\n  case 0x1b:\n    pnVar11 = (node *)stzalloc(0x18);\n    pnVar11->type = (lasttoken != '\x1b') + '\t';\n    pnVar8 = list(0);\n    (pnVar11->ncmd).assign = pnVar8;\n    iVar4 = readtoken();\n    if (iVar4 != 0xf) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0xf);\n    }\n    pnVar8 = list(0);\n    (pnVar11->ncmd).args = pnVar8;\n    iVar4 = 0x10;\n    break;\n  case 0x1c:\n    pnVar11 = list(0);\n    iVar4 = 0x1d;\n  }" switch (parenthesized_expression "(iVar4)" ( identifier )) (compound_statement "{\n  default:\n                    /* WARNING: Subroutine does not return */\n    raise_error_unexpected_syntax(-1);\n  case 2:\n  case 3:\n  case 0x16:\n    tokpushback = '\x01';\n    args = (node *)0x0;\n    vars = (node *)0x0;\n    ap = (node *)0x0;\n    iVar7 = g_parsefile->linno;\n    bVar3 = false;\n    bVar1 = false;\n    bVar2 = true;\n    ppnVar20 = &ap;\n    ppnVar15 = &vars;\n    ppnVar19 = &args;\n    pnVar10 = (node *)0x0;\nLAB_001505a5:\n    while (checkkwd = bVar2, uVar6 = readtoken(), pnVar11 = redirnode, uVar6 < 0x17) {\n      uVar21 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar6];\n      uVar23 = (&switchD_001505ce::switchdataD_001afc54)[uVar6] == 0xffe503ac;\n      switch(uVar6) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        *ppnVar20 = redirnode;\n        ppnVar20 = &(redirnode->ncmd).assign;\n        parsefname();\n        pnVar10 = pnVar11;\n        break;\n      case 6:\n      case 7:\n        if (!bVar1) goto LAB_00150605;\n        uVar21 = uVar6 < 6;\n        uVar23 = uVar6 == 6;\n        wordtext = "-a";\n        if (!(bool)uVar23) {\n          wordtext = "-o";\n        }\n      case 3:\n        pnVar10 = (node *)stzalloc(0x20);\n        pnVar10->type = '\x0f';\n        pcVar9 = wordtext;\n        (pnVar10->narg).text = wordtext;\n        lVar14 = 3;\n        pbVar17 = &DAT_001bc467;\n        pbVar18 = (byte *)pcVar9;\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          uVar21 = *pbVar17 < *pbVar18;\n          uVar23 = *pbVar17 == *pbVar18;\n          pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n        } while ((bool)uVar23);\n        bVar22 = false;\n        bVar24 = (!(bool)uVar21 && !(bool)uVar23) == (bool)uVar21;\n        if (bVar24) {\n          bVar1 = true;\n        }\n        else {\n          lVar14 = 3;\n          pbVar17 = (byte *)0x1bf6dc;\n          pbVar18 = (byte *)pcVar9;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar22 = *pbVar17 < *pbVar18;\n            bVar24 = *pbVar17 == *pbVar18;\n            pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n          } while (bVar24);\n          if ((!bVar22 && !bVar24) == bVar22) {\n            bVar1 = false;\n          }\n        }\n        (pnVar10->narg).backquote = backquotelist;\n        if (((bVar2) && (pcVar12 = endofname(pcVar9), pcVar9 != pcVar12)) && (*pcVar12 == '=')) {\n          *ppnVar15 = pnVar10;\n          ppnVar15 = &(pnVar10->ncmd).assign;\n        }\n        else {\n          *ppnVar19 = pnVar10;\n          ppnVar19 = &(pnVar10->ncmd).assign;\n          bVar2 = false;\n        }\n        if (bVar3) {\n          checkkwd = '\x06';\n          iVar4 = readtoken();\n          tokpushback = '\x01';\n          if (0x19 < iVar4 - 3U) goto switchD_00150729_caseD_4;\n          bVar22 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U];\n          bVar24 = (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U] == 0xffe50350;\n          switch(iVar4) {\n          case 3:\n            lVar14 = 3;\n            pbVar17 = &DAT_001bc467;\n            pbVar18 = (byte *)wordtext;\n            goto code_r0x00150758;\n          default:\n            goto switchD_00150729_caseD_4;\n          case 9:\n            bVar3 = false;\n            break;\n          case 0xe:\n          case 0x15:\n          case 0x17:\n          case 0x1a:\n          case 0x1b:\n          case 0x1c:\n            goto switchD_001505ce_caseD_9;\n          }\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        goto switchD_001505ce_caseD_16;\n      }\n    }\n    goto switchD_001505ce_caseD_0;\n  case 9:\n    pnVar11 = (node *)stzalloc(0x18);\n    pnVar11->type = '\x04';\n    (pnVar11->ncmd).linno = iVar7;\n    pnVar8 = list(0);\n    (pnVar11->ncmd).assign = pnVar8;\n    iVar4 = 10;\n    break;\n  case 0xe:\n    pnVar11 = (node *)stzalloc(0x18);\n    pnVar11->type = '\f';\n    (pnVar11->ncmd).linno = iVar7;\n    iVar4 = readtoken();\n    if (iVar4 != 3) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(3);\n    }\n    pcVar9 = (char *)stzalloc(0x20);\n    (pnVar11->ndefun).text = pcVar9;\n    *pcVar9 = '\x0f';\n    *(char **)(pcVar9 + 0x10) = wordtext;\n    *(nodelist **)(pcVar9 + 0x18) = backquotelist;\n    checkkwd = '\a';\n    iVar4 = readtoken();\n    if (iVar4 != 0x18) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0x18);\n    }\n    ppcVar16 = &(pnVar11->narg).text;\n    while( true ) {\n      checkkwd = '\x06';\n      iVar4 = readtoken();\n      if (iVar4 == 0x13) break;\n      if (lasttoken == '\t') {\n        readtoken();\n      }\n      pcVar9 = (char *)stzalloc(0x20);\n      *ppcVar16 = pcVar9;\n      *pcVar9 = '\r';\n      ppnVar15 = (node **)(pcVar9 + 0x10);\n      while( true ) {\n        pnVar8 = (node *)stzalloc(0x20);\n        *ppnVar15 = pnVar8;\n        pnVar8->type = '\x0f';\n        (pnVar8->narg).text = wordtext;\n        (pnVar8->narg).backquote = backquotelist;\n        ap = pnVar8;\n        iVar4 = readtoken();\n        if (iVar4 != 8) break;\n        ppnVar15 = &(pnVar8->ncmd).assign;\n        readtoken();\n      }\n      if (lasttoken != '\n') {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(10);\n      }\n      pnVar8 = list(2);\n      *(node **)(pcVar9 + 0x18) = pnVar8;\n      ppcVar16 = (char **)(pcVar9 + 8);\n      checkkwd = '\x06';\n      iVar4 = readtoken();\n      if (iVar4 == 0x13) break;\n      if (iVar4 != 0xb) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(0xb);\n      }\n    }\n    *ppcVar16 = (char *)0x0;\n    goto LAB_001504ae;\n  case 0x15:\n    iVar4 = readtoken();\n    if (((iVar4 != 3) || (quoteflag != '\0')) || (pcVar9 = endofname(wordtext), *pcVar9 != '\0')) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_syntax("bad for loop variable");\n    }\n    pnVar11 = (node *)stzalloc(0x20);\n    pnVar11->type = '\v';\n    (pnVar11->ncmd).linno = iVar7;\n    (pnVar11->nfor).var = wordtext;\n    checkkwd = '\a';\n    iVar4 = readtoken();\n    if (iVar4 == 0x18) {\n      ppnVar15 = &ap;\n      while (iVar4 = readtoken(), iVar4 == 3) {\n        pnVar8 = (node *)stzalloc(0x20);\n        pnVar8->type = '\x0f';\n        (pnVar8->narg).text = wordtext;\n        (pnVar8->narg).backquote = backquotelist;\n        *ppnVar15 = pnVar8;\n        ppnVar15 = &(pnVar8->ncmd).assign;\n      }\n      *ppnVar15 = (node *)0x0;\n      (pnVar11->ncmd).assign = ap;\n      if ((lasttoken != '\x01') && (lasttoken != '\x04')) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(-1);\n      }\n    }\n    else {\n      pcVar9 = (char *)stzalloc(0x20);\n      *pcVar9 = '\x0f';\n      *(char **)(pcVar9 + 0x10) = dolatstr;\n      (pnVar11->ndefun).text = pcVar9;\n      if (lasttoken != '\x04') {\n        tokpushback = '\x01';\n      }\n    }\n    checkkwd = '\a';\n    iVar4 = readtoken();\n    if (iVar4 != 0xf) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0xf);\n    }\n    pnVar8 = list(0);\n    (pnVar11->ncmd).args = pnVar8;\n    iVar4 = 0x10;\n    break;\n  case 0x17:\n    pnVar11 = (node *)stzalloc(0x20);\n    pnVar11->type = '\b';\n    pnVar8 = list(0);\n    (pnVar11->ncmd).assign = pnVar8;\n    iVar4 = readtoken();\n    if (iVar4 != 0x19) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0x19);\n    }\n    pnVar8 = list(0);\n    (pnVar11->ncmd).args = pnVar8;\n    pnVar8 = pnVar11;\n    while (iVar4 = readtoken(), iVar4 == 0x11) {\n      pnVar10 = (node *)stzalloc(0x20);\n      (pnVar8->narg).backquote = (nodelist *)pnVar10;\n      pnVar10->type = '\b';\n      pnVar8 = list(0);\n      (pnVar10->ncmd).assign = pnVar8;\n      iVar4 = readtoken();\n      if (iVar4 != 0x19) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(0x19);\n      }\n      pnVar8 = list(0);\n      (pnVar10->ncmd).args = pnVar8;\n      pnVar8 = pnVar10;\n    }\n    if (lasttoken == '\x12') {\n      pnVar10 = list(0);\n      (pnVar8->ncmd).redirect = pnVar10;\n      iVar4 = 0x14;\n    }\n    else {\n      (pnVar8->ncmd).redirect = (node *)0x0;\n      tokpushback = '\x01';\n      iVar4 = 0x14;\n    }\n    break;\n  case 0x1a:\n  case 0x1b:\n    pnVar11 = (node *)stzalloc(0x18);\n    pnVar11->type = (lasttoken != '\x1b') + '\t';\n    pnVar8 = list(0);\n    (pnVar11->ncmd).assign = pnVar8;\n    iVar4 = readtoken();\n    if (iVar4 != 0xf) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0xf);\n    }\n    pnVar8 = list(0);\n    (pnVar11->ncmd).args = pnVar8;\n    iVar4 = 0x10;\n    break;\n  case 0x1c:\n    pnVar11 = list(0);\n    iVar4 = 0x1d;\n  }" { (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n    raise_error_unexpected_syntax(-1);" default : comment (expression_statement "raise_error_unexpected_syntax(-1);" (call_expression "raise_error_unexpected_syntax(-1)" identifier (argument_list "(-1)" ( number_literal ))) ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:" case number_literal :) (case_statement "case 0x16:\n    tokpushback = '\x01';\n    args = (node *)0x0;\n    vars = (node *)0x0;\n    ap = (node *)0x0;\n    iVar7 = g_parsefile->linno;\n    bVar3 = false;\n    bVar1 = false;\n    bVar2 = true;\n    ppnVar20 = &ap;\n    ppnVar15 = &vars;\n    ppnVar19 = &args;\n    pnVar10 = (node *)0x0;\nLAB_001505a5:\n    while (checkkwd = bVar2, uVar6 = readtoken(), pnVar11 = redirnode, uVar6 < 0x17) {\n      uVar21 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar6];\n      uVar23 = (&switchD_001505ce::switchdataD_001afc54)[uVar6] == 0xffe503ac;\n      switch(uVar6) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        *ppnVar20 = redirnode;\n        ppnVar20 = &(redirnode->ncmd).assign;\n        parsefname();\n        pnVar10 = pnVar11;\n        break;\n      case 6:\n      case 7:\n        if (!bVar1) goto LAB_00150605;\n        uVar21 = uVar6 < 6;\n        uVar23 = uVar6 == 6;\n        wordtext = "-a";\n        if (!(bool)uVar23) {\n          wordtext = "-o";\n        }\n      case 3:\n        pnVar10 = (node *)stzalloc(0x20);\n        pnVar10->type = '\x0f';\n        pcVar9 = wordtext;\n        (pnVar10->narg).text = wordtext;\n        lVar14 = 3;\n        pbVar17 = &DAT_001bc467;\n        pbVar18 = (byte *)pcVar9;\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          uVar21 = *pbVar17 < *pbVar18;\n          uVar23 = *pbVar17 == *pbVar18;\n          pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n        } while ((bool)uVar23);\n        bVar22 = false;\n        bVar24 = (!(bool)uVar21 && !(bool)uVar23) == (bool)uVar21;\n        if (bVar24) {\n          bVar1 = true;\n        }\n        else {\n          lVar14 = 3;\n          pbVar17 = (byte *)0x1bf6dc;\n          pbVar18 = (byte *)pcVar9;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar22 = *pbVar17 < *pbVar18;\n            bVar24 = *pbVar17 == *pbVar18;\n            pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n          } while (bVar24);\n          if ((!bVar22 && !bVar24) == bVar22) {\n            bVar1 = false;\n          }\n        }\n        (pnVar10->narg).backquote = backquotelist;\n        if (((bVar2) && (pcVar12 = endofname(pcVar9), pcVar9 != pcVar12)) && (*pcVar12 == '=')) {\n          *ppnVar15 = pnVar10;\n          ppnVar15 = &(pnVar10->ncmd).assign;\n        }\n        else {\n          *ppnVar19 = pnVar10;\n          ppnVar19 = &(pnVar10->ncmd).assign;\n          bVar2 = false;\n        }\n        if (bVar3) {\n          checkkwd = '\x06';\n          iVar4 = readtoken();\n          tokpushback = '\x01';\n          if (0x19 < iVar4 - 3U) goto switchD_00150729_caseD_4;\n          bVar22 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U];\n          bVar24 = (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U] == 0xffe50350;\n          switch(iVar4) {\n          case 3:\n            lVar14 = 3;\n            pbVar17 = &DAT_001bc467;\n            pbVar18 = (byte *)wordtext;\n            goto code_r0x00150758;\n          default:\n            goto switchD_00150729_caseD_4;\n          case 9:\n            bVar3 = false;\n            break;\n          case 0xe:\n          case 0x15:\n          case 0x17:\n          case 0x1a:\n          case 0x1b:\n          case 0x1c:\n            goto switchD_001505ce_caseD_9;\n          }\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        goto switchD_001505ce_caseD_16;\n      }\n    }\n    goto switchD_001505ce_caseD_0;" case number_literal : (expression_statement "tokpushback = '\x01';" (assignment_expression "tokpushback = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "args = (node *)0x0;" (assignment_expression "args = (node *)0x0" identifier = (cast_expression "(node *)0x0" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "vars = (node *)0x0;" (assignment_expression "vars = (node *)0x0" identifier = (cast_expression "(node *)0x0" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ap = (node *)0x0;" (assignment_expression "ap = (node *)0x0" identifier = (cast_expression "(node *)0x0" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar7 = g_parsefile->linno;" (assignment_expression "iVar7 = g_parsefile->linno" identifier = (field_expression "g_parsefile->linno" identifier -> field_identifier)) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "ppnVar20 = &ap;" (assignment_expression "ppnVar20 = &ap" identifier = (pointer_expression "&ap" & identifier)) ;) (expression_statement "ppnVar15 = &vars;" (assignment_expression "ppnVar15 = &vars" identifier = (pointer_expression "&vars" & identifier)) ;) (expression_statement "ppnVar19 = &args;" (assignment_expression "ppnVar19 = &args" identifier = (pointer_expression "&args" & identifier)) ;) (expression_statement "pnVar10 = (node *)0x0;" (assignment_expression "pnVar10 = (node *)0x0" identifier = (cast_expression "(node *)0x0" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_001505a5:\n    while (checkkwd = bVar2, uVar6 = readtoken(), pnVar11 = redirnode, uVar6 < 0x17) {\n      uVar21 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar6];\n      uVar23 = (&switchD_001505ce::switchdataD_001afc54)[uVar6] == 0xffe503ac;\n      switch(uVar6) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        *ppnVar20 = redirnode;\n        ppnVar20 = &(redirnode->ncmd).assign;\n        parsefname();\n        pnVar10 = pnVar11;\n        break;\n      case 6:\n      case 7:\n        if (!bVar1) goto LAB_00150605;\n        uVar21 = uVar6 < 6;\n        uVar23 = uVar6 == 6;\n        wordtext = "-a";\n        if (!(bool)uVar23) {\n          wordtext = "-o";\n        }\n      case 3:\n        pnVar10 = (node *)stzalloc(0x20);\n        pnVar10->type = '\x0f';\n        pcVar9 = wordtext;\n        (pnVar10->narg).text = wordtext;\n        lVar14 = 3;\n        pbVar17 = &DAT_001bc467;\n        pbVar18 = (byte *)pcVar9;\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          uVar21 = *pbVar17 < *pbVar18;\n          uVar23 = *pbVar17 == *pbVar18;\n          pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n        } while ((bool)uVar23);\n        bVar22 = false;\n        bVar24 = (!(bool)uVar21 && !(bool)uVar23) == (bool)uVar21;\n        if (bVar24) {\n          bVar1 = true;\n        }\n        else {\n          lVar14 = 3;\n          pbVar17 = (byte *)0x1bf6dc;\n          pbVar18 = (byte *)pcVar9;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar22 = *pbVar17 < *pbVar18;\n            bVar24 = *pbVar17 == *pbVar18;\n            pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n          } while (bVar24);\n          if ((!bVar22 && !bVar24) == bVar22) {\n            bVar1 = false;\n          }\n        }\n        (pnVar10->narg).backquote = backquotelist;\n        if (((bVar2) && (pcVar12 = endofname(pcVar9), pcVar9 != pcVar12)) && (*pcVar12 == '=')) {\n          *ppnVar15 = pnVar10;\n          ppnVar15 = &(pnVar10->ncmd).assign;\n        }\n        else {\n          *ppnVar19 = pnVar10;\n          ppnVar19 = &(pnVar10->ncmd).assign;\n          bVar2 = false;\n        }\n        if (bVar3) {\n          checkkwd = '\x06';\n          iVar4 = readtoken();\n          tokpushback = '\x01';\n          if (0x19 < iVar4 - 3U) goto switchD_00150729_caseD_4;\n          bVar22 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U];\n          bVar24 = (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U] == 0xffe50350;\n          switch(iVar4) {\n          case 3:\n            lVar14 = 3;\n            pbVar17 = &DAT_001bc467;\n            pbVar18 = (byte *)wordtext;\n            goto code_r0x00150758;\n          default:\n            goto switchD_00150729_caseD_4;\n          case 9:\n            bVar3 = false;\n            break;\n          case 0xe:\n          case 0x15:\n          case 0x17:\n          case 0x1a:\n          case 0x1b:\n          case 0x1c:\n            goto switchD_001505ce_caseD_9;\n          }\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        goto switchD_001505ce_caseD_16;\n      }\n    }" statement_identifier : (while_statement "while (checkkwd = bVar2, uVar6 = readtoken(), pnVar11 = redirnode, uVar6 < 0x17) {\n      uVar21 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar6];\n      uVar23 = (&switchD_001505ce::switchdataD_001afc54)[uVar6] == 0xffe503ac;\n      switch(uVar6) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        *ppnVar20 = redirnode;\n        ppnVar20 = &(redirnode->ncmd).assign;\n        parsefname();\n        pnVar10 = pnVar11;\n        break;\n      case 6:\n      case 7:\n        if (!bVar1) goto LAB_00150605;\n        uVar21 = uVar6 < 6;\n        uVar23 = uVar6 == 6;\n        wordtext = "-a";\n        if (!(bool)uVar23) {\n          wordtext = "-o";\n        }\n      case 3:\n        pnVar10 = (node *)stzalloc(0x20);\n        pnVar10->type = '\x0f';\n        pcVar9 = wordtext;\n        (pnVar10->narg).text = wordtext;\n        lVar14 = 3;\n        pbVar17 = &DAT_001bc467;\n        pbVar18 = (byte *)pcVar9;\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          uVar21 = *pbVar17 < *pbVar18;\n          uVar23 = *pbVar17 == *pbVar18;\n          pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n        } while ((bool)uVar23);\n        bVar22 = false;\n        bVar24 = (!(bool)uVar21 && !(bool)uVar23) == (bool)uVar21;\n        if (bVar24) {\n          bVar1 = true;\n        }\n        else {\n          lVar14 = 3;\n          pbVar17 = (byte *)0x1bf6dc;\n          pbVar18 = (byte *)pcVar9;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar22 = *pbVar17 < *pbVar18;\n            bVar24 = *pbVar17 == *pbVar18;\n            pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n          } while (bVar24);\n          if ((!bVar22 && !bVar24) == bVar22) {\n            bVar1 = false;\n          }\n        }\n        (pnVar10->narg).backquote = backquotelist;\n        if (((bVar2) && (pcVar12 = endofname(pcVar9), pcVar9 != pcVar12)) && (*pcVar12 == '=')) {\n          *ppnVar15 = pnVar10;\n          ppnVar15 = &(pnVar10->ncmd).assign;\n        }\n        else {\n          *ppnVar19 = pnVar10;\n          ppnVar19 = &(pnVar10->ncmd).assign;\n          bVar2 = false;\n        }\n        if (bVar3) {\n          checkkwd = '\x06';\n          iVar4 = readtoken();\n          tokpushback = '\x01';\n          if (0x19 < iVar4 - 3U) goto switchD_00150729_caseD_4;\n          bVar22 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U];\n          bVar24 = (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U] == 0xffe50350;\n          switch(iVar4) {\n          case 3:\n            lVar14 = 3;\n            pbVar17 = &DAT_001bc467;\n            pbVar18 = (byte *)wordtext;\n            goto code_r0x00150758;\n          default:\n            goto switchD_00150729_caseD_4;\n          case 9:\n            bVar3 = false;\n            break;\n          case 0xe:\n          case 0x15:\n          case 0x17:\n          case 0x1a:\n          case 0x1b:\n          case 0x1c:\n            goto switchD_001505ce_caseD_9;\n          }\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        goto switchD_001505ce_caseD_16;\n      }\n    }" while (parenthesized_expression "(checkkwd = bVar2, uVar6 = readtoken(), pnVar11 = redirnode, uVar6 < 0x17)" ( (comma_expression "checkkwd = bVar2, uVar6 = readtoken(), pnVar11 = redirnode, uVar6 < 0x17" (assignment_expression "checkkwd = bVar2" identifier = identifier) , (comma_expression "uVar6 = readtoken(), pnVar11 = redirnode, uVar6 < 0x17" (assignment_expression "uVar6 = readtoken()" identifier = (call_expression "readtoken()" identifier (argument_list "()" ( )))) , (comma_expression "pnVar11 = redirnode, uVar6 < 0x17" (assignment_expression "pnVar11 = redirnode" identifier = identifier) , (binary_expression "uVar6 < 0x17" identifier < number_literal)))) )) (compound_statement "{\n      uVar21 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar6];\n      uVar23 = (&switchD_001505ce::switchdataD_001afc54)[uVar6] == 0xffe503ac;\n      switch(uVar6) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        *ppnVar20 = redirnode;\n        ppnVar20 = &(redirnode->ncmd).assign;\n        parsefname();\n        pnVar10 = pnVar11;\n        break;\n      case 6:\n      case 7:\n        if (!bVar1) goto LAB_00150605;\n        uVar21 = uVar6 < 6;\n        uVar23 = uVar6 == 6;\n        wordtext = "-a";\n        if (!(bool)uVar23) {\n          wordtext = "-o";\n        }\n      case 3:\n        pnVar10 = (node *)stzalloc(0x20);\n        pnVar10->type = '\x0f';\n        pcVar9 = wordtext;\n        (pnVar10->narg).text = wordtext;\n        lVar14 = 3;\n        pbVar17 = &DAT_001bc467;\n        pbVar18 = (byte *)pcVar9;\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          uVar21 = *pbVar17 < *pbVar18;\n          uVar23 = *pbVar17 == *pbVar18;\n          pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n        } while ((bool)uVar23);\n        bVar22 = false;\n        bVar24 = (!(bool)uVar21 && !(bool)uVar23) == (bool)uVar21;\n        if (bVar24) {\n          bVar1 = true;\n        }\n        else {\n          lVar14 = 3;\n          pbVar17 = (byte *)0x1bf6dc;\n          pbVar18 = (byte *)pcVar9;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar22 = *pbVar17 < *pbVar18;\n            bVar24 = *pbVar17 == *pbVar18;\n            pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n          } while (bVar24);\n          if ((!bVar22 && !bVar24) == bVar22) {\n            bVar1 = false;\n          }\n        }\n        (pnVar10->narg).backquote = backquotelist;\n        if (((bVar2) && (pcVar12 = endofname(pcVar9), pcVar9 != pcVar12)) && (*pcVar12 == '=')) {\n          *ppnVar15 = pnVar10;\n          ppnVar15 = &(pnVar10->ncmd).assign;\n        }\n        else {\n          *ppnVar19 = pnVar10;\n          ppnVar19 = &(pnVar10->ncmd).assign;\n          bVar2 = false;\n        }\n        if (bVar3) {\n          checkkwd = '\x06';\n          iVar4 = readtoken();\n          tokpushback = '\x01';\n          if (0x19 < iVar4 - 3U) goto switchD_00150729_caseD_4;\n          bVar22 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U];\n          bVar24 = (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U] == 0xffe50350;\n          switch(iVar4) {\n          case 3:\n            lVar14 = 3;\n            pbVar17 = &DAT_001bc467;\n            pbVar18 = (byte *)wordtext;\n            goto code_r0x00150758;\n          default:\n            goto switchD_00150729_caseD_4;\n          case 9:\n            bVar3 = false;\n            break;\n          case 0xe:\n          case 0x15:\n          case 0x17:\n          case 0x1a:\n          case 0x1b:\n          case 0x1c:\n            goto switchD_001505ce_caseD_9;\n          }\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        goto switchD_001505ce_caseD_16;\n      }\n    }" { (expression_statement "uVar21 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar6];" (assignment_expression "uVar21 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar6]" identifier = (binary_expression "0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar6]" number_literal < (subscript_expression "(&switchD_001505ce::switchdataD_001afc54)[uVar6]" (parenthesized_expression "(&switchD_001505ce::switchdataD_001afc54)" ( (ERROR "&switchD_001505ce::" (pointer_expression "&switchD_001505ce" & identifier) : :) identifier )) [ identifier ]))) ;) (expression_statement "uVar23 = (&switchD_001505ce::switchdataD_001afc54)[uVar6] == 0xffe503ac;" (assignment_expression "uVar23 = (&switchD_001505ce::switchdataD_001afc54)[uVar6] == 0xffe503ac" identifier = (binary_expression "(&switchD_001505ce::switchdataD_001afc54)[uVar6] == 0xffe503ac" (subscript_expression "(&switchD_001505ce::switchdataD_001afc54)[uVar6]" (parenthesized_expression "(&switchD_001505ce::switchdataD_001afc54)" ( (ERROR "&switchD_001505ce::" (pointer_expression "&switchD_001505ce" & identifier) : :) identifier )) [ identifier ]) == number_literal)) ;) (switch_statement "switch(uVar6) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        *ppnVar20 = redirnode;\n        ppnVar20 = &(redirnode->ncmd).assign;\n        parsefname();\n        pnVar10 = pnVar11;\n        break;\n      case 6:\n      case 7:\n        if (!bVar1) goto LAB_00150605;\n        uVar21 = uVar6 < 6;\n        uVar23 = uVar6 == 6;\n        wordtext = "-a";\n        if (!(bool)uVar23) {\n          wordtext = "-o";\n        }\n      case 3:\n        pnVar10 = (node *)stzalloc(0x20);\n        pnVar10->type = '\x0f';\n        pcVar9 = wordtext;\n        (pnVar10->narg).text = wordtext;\n        lVar14 = 3;\n        pbVar17 = &DAT_001bc467;\n        pbVar18 = (byte *)pcVar9;\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          uVar21 = *pbVar17 < *pbVar18;\n          uVar23 = *pbVar17 == *pbVar18;\n          pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n        } while ((bool)uVar23);\n        bVar22 = false;\n        bVar24 = (!(bool)uVar21 && !(bool)uVar23) == (bool)uVar21;\n        if (bVar24) {\n          bVar1 = true;\n        }\n        else {\n          lVar14 = 3;\n          pbVar17 = (byte *)0x1bf6dc;\n          pbVar18 = (byte *)pcVar9;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar22 = *pbVar17 < *pbVar18;\n            bVar24 = *pbVar17 == *pbVar18;\n            pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n          } while (bVar24);\n          if ((!bVar22 && !bVar24) == bVar22) {\n            bVar1 = false;\n          }\n        }\n        (pnVar10->narg).backquote = backquotelist;\n        if (((bVar2) && (pcVar12 = endofname(pcVar9), pcVar9 != pcVar12)) && (*pcVar12 == '=')) {\n          *ppnVar15 = pnVar10;\n          ppnVar15 = &(pnVar10->ncmd).assign;\n        }\n        else {\n          *ppnVar19 = pnVar10;\n          ppnVar19 = &(pnVar10->ncmd).assign;\n          bVar2 = false;\n        }\n        if (bVar3) {\n          checkkwd = '\x06';\n          iVar4 = readtoken();\n          tokpushback = '\x01';\n          if (0x19 < iVar4 - 3U) goto switchD_00150729_caseD_4;\n          bVar22 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U];\n          bVar24 = (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U] == 0xffe50350;\n          switch(iVar4) {\n          case 3:\n            lVar14 = 3;\n            pbVar17 = &DAT_001bc467;\n            pbVar18 = (byte *)wordtext;\n            goto code_r0x00150758;\n          default:\n            goto switchD_00150729_caseD_4;\n          case 9:\n            bVar3 = false;\n            break;\n          case 0xe:\n          case 0x15:\n          case 0x17:\n          case 0x1a:\n          case 0x1b:\n          case 0x1c:\n            goto switchD_001505ce_caseD_9;\n          }\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        goto switchD_001505ce_caseD_16;\n      }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        *ppnVar20 = redirnode;\n        ppnVar20 = &(redirnode->ncmd).assign;\n        parsefname();\n        pnVar10 = pnVar11;\n        break;\n      case 6:\n      case 7:\n        if (!bVar1) goto LAB_00150605;\n        uVar21 = uVar6 < 6;\n        uVar23 = uVar6 == 6;\n        wordtext = "-a";\n        if (!(bool)uVar23) {\n          wordtext = "-o";\n        }\n      case 3:\n        pnVar10 = (node *)stzalloc(0x20);\n        pnVar10->type = '\x0f';\n        pcVar9 = wordtext;\n        (pnVar10->narg).text = wordtext;\n        lVar14 = 3;\n        pbVar17 = &DAT_001bc467;\n        pbVar18 = (byte *)pcVar9;\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          uVar21 = *pbVar17 < *pbVar18;\n          uVar23 = *pbVar17 == *pbVar18;\n          pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n        } while ((bool)uVar23);\n        bVar22 = false;\n        bVar24 = (!(bool)uVar21 && !(bool)uVar23) == (bool)uVar21;\n        if (bVar24) {\n          bVar1 = true;\n        }\n        else {\n          lVar14 = 3;\n          pbVar17 = (byte *)0x1bf6dc;\n          pbVar18 = (byte *)pcVar9;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar22 = *pbVar17 < *pbVar18;\n            bVar24 = *pbVar17 == *pbVar18;\n            pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n          } while (bVar24);\n          if ((!bVar22 && !bVar24) == bVar22) {\n            bVar1 = false;\n          }\n        }\n        (pnVar10->narg).backquote = backquotelist;\n        if (((bVar2) && (pcVar12 = endofname(pcVar9), pcVar9 != pcVar12)) && (*pcVar12 == '=')) {\n          *ppnVar15 = pnVar10;\n          ppnVar15 = &(pnVar10->ncmd).assign;\n        }\n        else {\n          *ppnVar19 = pnVar10;\n          ppnVar19 = &(pnVar10->ncmd).assign;\n          bVar2 = false;\n        }\n        if (bVar3) {\n          checkkwd = '\x06';\n          iVar4 = readtoken();\n          tokpushback = '\x01';\n          if (0x19 < iVar4 - 3U) goto switchD_00150729_caseD_4;\n          bVar22 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U];\n          bVar24 = (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U] == 0xffe50350;\n          switch(iVar4) {\n          case 3:\n            lVar14 = 3;\n            pbVar17 = &DAT_001bc467;\n            pbVar18 = (byte *)wordtext;\n            goto code_r0x00150758;\n          default:\n            goto switchD_00150729_caseD_4;\n          case 9:\n            bVar3 = false;\n            break;\n          case 0xe:\n          case 0x15:\n          case 0x17:\n          case 0x1a:\n          case 0x1b:\n          case 0x1c:\n            goto switchD_001505ce_caseD_9;\n          }\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        goto switchD_001505ce_caseD_16;\n      }" { (case_statement "default:\n        goto switchD_001505ce_caseD_0;" default : (goto_statement "goto switchD_001505ce_caseD_0;" goto statement_identifier ;)) (case_statement "case 2:\n        *ppnVar20 = redirnode;\n        ppnVar20 = &(redirnode->ncmd).assign;\n        parsefname();\n        pnVar10 = pnVar11;\n        break;" case number_literal : (expression_statement "*ppnVar20 = redirnode;" (assignment_expression "*ppnVar20 = redirnode" (pointer_expression "*ppnVar20" * identifier) = identifier) ;) (expression_statement "ppnVar20 = &(redirnode->ncmd).assign;" (assignment_expression "ppnVar20 = &(redirnode->ncmd).assign" identifier = (pointer_expression "&(redirnode->ncmd).assign" & (field_expression "(redirnode->ncmd).assign" (parenthesized_expression "(redirnode->ncmd)" ( (field_expression "redirnode->ncmd" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "parsefname();" (call_expression "parsefname()" identifier (argument_list "()" ( ))) ;) (expression_statement "pnVar10 = pnVar11;" (assignment_expression "pnVar10 = pnVar11" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 6:" case number_literal :) (case_statement "case 7:\n        if (!bVar1) goto LAB_00150605;\n        uVar21 = uVar6 < 6;\n        uVar23 = uVar6 == 6;\n        wordtext = "-a";\n        if (!(bool)uVar23) {\n          wordtext = "-o";\n        }" case number_literal : (if_statement "if (!bVar1) goto LAB_00150605;" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (goto_statement "goto LAB_00150605;" goto statement_identifier ;)) (expression_statement "uVar21 = uVar6 < 6;" (assignment_expression "uVar21 = uVar6 < 6" identifier = (binary_expression "uVar6 < 6" identifier < number_literal)) ;) (expression_statement "uVar23 = uVar6 == 6;" (assignment_expression "uVar23 = uVar6 == 6" identifier = (binary_expression "uVar6 == 6" identifier == number_literal)) ;) (expression_statement "wordtext = "-a";" (assignment_expression "wordtext = "-a"" identifier = (string_literal ""-a"" " string_content ")) ;) (if_statement "if (!(bool)uVar23) {\n          wordtext = "-o";\n        }" if (parenthesized_expression "(!(bool)uVar23)" ( (unary_expression "!(bool)uVar23" ! (cast_expression "(bool)uVar23" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n          wordtext = "-o";\n        }" { (expression_statement "wordtext = "-o";" (assignment_expression "wordtext = "-o"" identifier = (string_literal ""-o"" " string_content ")) ;) }))) (case_statement "case 3:\n        pnVar10 = (node *)stzalloc(0x20);\n        pnVar10->type = '\x0f';\n        pcVar9 = wordtext;\n        (pnVar10->narg).text = wordtext;\n        lVar14 = 3;\n        pbVar17 = &DAT_001bc467;\n        pbVar18 = (byte *)pcVar9;\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          uVar21 = *pbVar17 < *pbVar18;\n          uVar23 = *pbVar17 == *pbVar18;\n          pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n        } while ((bool)uVar23);\n        bVar22 = false;\n        bVar24 = (!(bool)uVar21 && !(bool)uVar23) == (bool)uVar21;\n        if (bVar24) {\n          bVar1 = true;\n        }\n        else {\n          lVar14 = 3;\n          pbVar17 = (byte *)0x1bf6dc;\n          pbVar18 = (byte *)pcVar9;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar22 = *pbVar17 < *pbVar18;\n            bVar24 = *pbVar17 == *pbVar18;\n            pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n          } while (bVar24);\n          if ((!bVar22 && !bVar24) == bVar22) {\n            bVar1 = false;\n          }\n        }\n        (pnVar10->narg).backquote = backquotelist;\n        if (((bVar2) && (pcVar12 = endofname(pcVar9), pcVar9 != pcVar12)) && (*pcVar12 == '=')) {\n          *ppnVar15 = pnVar10;\n          ppnVar15 = &(pnVar10->ncmd).assign;\n        }\n        else {\n          *ppnVar19 = pnVar10;\n          ppnVar19 = &(pnVar10->ncmd).assign;\n          bVar2 = false;\n        }\n        if (bVar3) {\n          checkkwd = '\x06';\n          iVar4 = readtoken();\n          tokpushback = '\x01';\n          if (0x19 < iVar4 - 3U) goto switchD_00150729_caseD_4;\n          bVar22 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U];\n          bVar24 = (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U] == 0xffe50350;\n          switch(iVar4) {\n          case 3:\n            lVar14 = 3;\n            pbVar17 = &DAT_001bc467;\n            pbVar18 = (byte *)wordtext;\n            goto code_r0x00150758;\n          default:\n            goto switchD_00150729_caseD_4;\n          case 9:\n            bVar3 = false;\n            break;\n          case 0xe:\n          case 0x15:\n          case 0x17:\n          case 0x1a:\n          case 0x1b:\n          case 0x1c:\n            goto switchD_001505ce_caseD_9;\n          }\n        }\n        break;" case number_literal : (expression_statement "pnVar10 = (node *)stzalloc(0x20);" (assignment_expression "pnVar10 = (node *)stzalloc(0x20)" identifier = (cast_expression "(node *)stzalloc(0x20)" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "stzalloc(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "pnVar10->type = '\x0f';" (assignment_expression "pnVar10->type = '\x0f'" (field_expression "pnVar10->type" identifier -> field_identifier) = (char_literal "'\x0f'" ' escape_sequence ')) ;) (expression_statement "pcVar9 = wordtext;" (assignment_expression "pcVar9 = wordtext" identifier = identifier) ;) (expression_statement "(pnVar10->narg).text = wordtext;" (assignment_expression "(pnVar10->narg).text = wordtext" (field_expression "(pnVar10->narg).text" (parenthesized_expression "(pnVar10->narg)" ( (field_expression "pnVar10->narg" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "lVar14 = 3;" (assignment_expression "lVar14 = 3" identifier = number_literal) ;) (expression_statement "pbVar17 = &DAT_001bc467;" (assignment_expression "pbVar17 = &DAT_001bc467" identifier = (pointer_expression "&DAT_001bc467" & identifier)) ;) (expression_statement "pbVar18 = (byte *)pcVar9;" (assignment_expression "pbVar18 = (byte *)pcVar9" identifier = (cast_expression "(byte *)pcVar9" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          uVar21 = *pbVar17 < *pbVar18;\n          uVar23 = *pbVar17 == *pbVar18;\n          pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n        } while ((bool)uVar23);" do (compound_statement "{\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          uVar21 = *pbVar17 < *pbVar18;\n          uVar23 = *pbVar17 == *pbVar18;\n          pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n        }" { (if_statement "if (lVar14 == 0) break;" if (parenthesized_expression "(lVar14 == 0)" ( (binary_expression "lVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar14 = lVar14 + -1;" (assignment_expression "lVar14 = lVar14 + -1" identifier = (binary_expression "lVar14 + -1" identifier + number_literal)) ;) (expression_statement "uVar21 = *pbVar17 < *pbVar18;" (assignment_expression "uVar21 = *pbVar17 < *pbVar18" identifier = (binary_expression "*pbVar17 < *pbVar18" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "uVar23 = *pbVar17 == *pbVar18;" (assignment_expression "uVar23 = *pbVar17 == *pbVar18" identifier = (binary_expression "*pbVar17 == *pbVar18" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar25 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (ulong)bVar25 * -2 + 1" (binary_expression "pbVar18 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar23)" ( (cast_expression "(bool)uVar23" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar24 = (!(bool)uVar21 && !(bool)uVar23) == (bool)uVar21;" (assignment_expression "bVar24 = (!(bool)uVar21 && !(bool)uVar23) == (bool)uVar21" identifier = (binary_expression "(!(bool)uVar21 && !(bool)uVar23) == (bool)uVar21" (parenthesized_expression "(!(bool)uVar21 && !(bool)uVar23)" ( (binary_expression "!(bool)uVar21 && !(bool)uVar23" (unary_expression "!(bool)uVar21" ! (cast_expression "(bool)uVar21" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar23" ! (cast_expression "(bool)uVar23" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar21" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar24) {\n          bVar1 = true;\n        }\n        else {\n          lVar14 = 3;\n          pbVar17 = (byte *)0x1bf6dc;\n          pbVar18 = (byte *)pcVar9;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar22 = *pbVar17 < *pbVar18;\n            bVar24 = *pbVar17 == *pbVar18;\n            pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n          } while (bVar24);\n          if ((!bVar22 && !bVar24) == bVar22) {\n            bVar1 = false;\n          }\n        }" if (parenthesized_expression "(bVar24)" ( identifier )) (compound_statement "{\n          bVar1 = true;\n        }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }) (else_clause "else {\n          lVar14 = 3;\n          pbVar17 = (byte *)0x1bf6dc;\n          pbVar18 = (byte *)pcVar9;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar22 = *pbVar17 < *pbVar18;\n            bVar24 = *pbVar17 == *pbVar18;\n            pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n          } while (bVar24);\n          if ((!bVar22 && !bVar24) == bVar22) {\n            bVar1 = false;\n          }\n        }" else (compound_statement "{\n          lVar14 = 3;\n          pbVar17 = (byte *)0x1bf6dc;\n          pbVar18 = (byte *)pcVar9;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar22 = *pbVar17 < *pbVar18;\n            bVar24 = *pbVar17 == *pbVar18;\n            pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n          } while (bVar24);\n          if ((!bVar22 && !bVar24) == bVar22) {\n            bVar1 = false;\n          }\n        }" { (expression_statement "lVar14 = 3;" (assignment_expression "lVar14 = 3" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)0x1bf6dc;" (assignment_expression "pbVar17 = (byte *)0x1bf6dc" identifier = (cast_expression "(byte *)0x1bf6dc" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar18 = (byte *)pcVar9;" (assignment_expression "pbVar18 = (byte *)pcVar9" identifier = (cast_expression "(byte *)pcVar9" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar22 = *pbVar17 < *pbVar18;\n            bVar24 = *pbVar17 == *pbVar18;\n            pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n          } while (bVar24);" do (compound_statement "{\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar22 = *pbVar17 < *pbVar18;\n            bVar24 = *pbVar17 == *pbVar18;\n            pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n          }" { (if_statement "if (lVar14 == 0) break;" if (parenthesized_expression "(lVar14 == 0)" ( (binary_expression "lVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar14 = lVar14 + -1;" (assignment_expression "lVar14 = lVar14 + -1" identifier = (binary_expression "lVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar17 < *pbVar18;" (assignment_expression "bVar22 = *pbVar17 < *pbVar18" identifier = (binary_expression "*pbVar17 < *pbVar18" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar24 = *pbVar17 == *pbVar18;" (assignment_expression "bVar24 = *pbVar17 == *pbVar18" identifier = (binary_expression "*pbVar17 == *pbVar18" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar25 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (ulong)bVar25 * -2 + 1" (binary_expression "pbVar18 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (if_statement "if ((!bVar22 && !bVar24) == bVar22) {\n            bVar1 = false;\n          }" if (parenthesized_expression "((!bVar22 && !bVar24) == bVar22)" ( (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" ( (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier) )) (compound_statement "{\n            bVar1 = false;\n          }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) })) }))) (expression_statement "(pnVar10->narg).backquote = backquotelist;" (assignment_expression "(pnVar10->narg).backquote = backquotelist" (field_expression "(pnVar10->narg).backquote" (parenthesized_expression "(pnVar10->narg)" ( (field_expression "pnVar10->narg" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (if_statement "if (((bVar2) && (pcVar12 = endofname(pcVar9), pcVar9 != pcVar12)) && (*pcVar12 == '=')) {\n          *ppnVar15 = pnVar10;\n          ppnVar15 = &(pnVar10->ncmd).assign;\n        }\n        else {\n          *ppnVar19 = pnVar10;\n          ppnVar19 = &(pnVar10->ncmd).assign;\n          bVar2 = false;\n        }" if (parenthesized_expression "(((bVar2) && (pcVar12 = endofname(pcVar9), pcVar9 != pcVar12)) && (*pcVar12 == '='))" ( (binary_expression "((bVar2) && (pcVar12 = endofname(pcVar9), pcVar9 != pcVar12)) && (*pcVar12 == '=')" (parenthesized_expression "((bVar2) && (pcVar12 = endofname(pcVar9), pcVar9 != pcVar12))" ( (binary_expression "(bVar2) && (pcVar12 = endofname(pcVar9), pcVar9 != pcVar12)" (parenthesized_expression "(bVar2)" ( identifier )) && (parenthesized_expression "(pcVar12 = endofname(pcVar9), pcVar9 != pcVar12)" ( (comma_expression "pcVar12 = endofname(pcVar9), pcVar9 != pcVar12" (assignment_expression "pcVar12 = endofname(pcVar9)" identifier = (call_expression "endofname(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier )))) , (binary_expression "pcVar9 != pcVar12" identifier != identifier)) ))) )) && (parenthesized_expression "(*pcVar12 == '=')" ( (binary_expression "*pcVar12 == '='" (pointer_expression "*pcVar12" * identifier) == (char_literal "'='" ' character ')) ))) )) (compound_statement "{\n          *ppnVar15 = pnVar10;\n          ppnVar15 = &(pnVar10->ncmd).assign;\n        }" { (expression_statement "*ppnVar15 = pnVar10;" (assignment_expression "*ppnVar15 = pnVar10" (pointer_expression "*ppnVar15" * identifier) = identifier) ;) (expression_statement "ppnVar15 = &(pnVar10->ncmd).assign;" (assignment_expression "ppnVar15 = &(pnVar10->ncmd).assign" identifier = (pointer_expression "&(pnVar10->ncmd).assign" & (field_expression "(pnVar10->ncmd).assign" (parenthesized_expression "(pnVar10->ncmd)" ( (field_expression "pnVar10->ncmd" identifier -> field_identifier) )) . field_identifier))) ;) }) (else_clause "else {\n          *ppnVar19 = pnVar10;\n          ppnVar19 = &(pnVar10->ncmd).assign;\n          bVar2 = false;\n        }" else (compound_statement "{\n          *ppnVar19 = pnVar10;\n          ppnVar19 = &(pnVar10->ncmd).assign;\n          bVar2 = false;\n        }" { (expression_statement "*ppnVar19 = pnVar10;" (assignment_expression "*ppnVar19 = pnVar10" (pointer_expression "*ppnVar19" * identifier) = identifier) ;) (expression_statement "ppnVar19 = &(pnVar10->ncmd).assign;" (assignment_expression "ppnVar19 = &(pnVar10->ncmd).assign" identifier = (pointer_expression "&(pnVar10->ncmd).assign" & (field_expression "(pnVar10->ncmd).assign" (parenthesized_expression "(pnVar10->ncmd)" ( (field_expression "pnVar10->ncmd" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) }))) (if_statement "if (bVar3) {\n          checkkwd = '\x06';\n          iVar4 = readtoken();\n          tokpushback = '\x01';\n          if (0x19 < iVar4 - 3U) goto switchD_00150729_caseD_4;\n          bVar22 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U];\n          bVar24 = (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U] == 0xffe50350;\n          switch(iVar4) {\n          case 3:\n            lVar14 = 3;\n            pbVar17 = &DAT_001bc467;\n            pbVar18 = (byte *)wordtext;\n            goto code_r0x00150758;\n          default:\n            goto switchD_00150729_caseD_4;\n          case 9:\n            bVar3 = false;\n            break;\n          case 0xe:\n          case 0x15:\n          case 0x17:\n          case 0x1a:\n          case 0x1b:\n          case 0x1c:\n            goto switchD_001505ce_caseD_9;\n          }\n        }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n          checkkwd = '\x06';\n          iVar4 = readtoken();\n          tokpushback = '\x01';\n          if (0x19 < iVar4 - 3U) goto switchD_00150729_caseD_4;\n          bVar22 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U];\n          bVar24 = (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U] == 0xffe50350;\n          switch(iVar4) {\n          case 3:\n            lVar14 = 3;\n            pbVar17 = &DAT_001bc467;\n            pbVar18 = (byte *)wordtext;\n            goto code_r0x00150758;\n          default:\n            goto switchD_00150729_caseD_4;\n          case 9:\n            bVar3 = false;\n            break;\n          case 0xe:\n          case 0x15:\n          case 0x17:\n          case 0x1a:\n          case 0x1b:\n          case 0x1c:\n            goto switchD_001505ce_caseD_9;\n          }\n        }" { (expression_statement "checkkwd = '\x06';" (assignment_expression "checkkwd = '\x06'" identifier = (char_literal "'\x06'" ' escape_sequence ')) ;) (expression_statement "iVar4 = readtoken();" (assignment_expression "iVar4 = readtoken()" identifier = (call_expression "readtoken()" identifier (argument_list "()" ( )))) ;) (expression_statement "tokpushback = '\x01';" (assignment_expression "tokpushback = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (if_statement "if (0x19 < iVar4 - 3U) goto switchD_00150729_caseD_4;" if (parenthesized_expression "(0x19 < iVar4 - 3U)" ( (binary_expression "0x19 < iVar4 - 3U" number_literal < (binary_expression "iVar4 - 3U" identifier - number_literal)) )) (goto_statement "goto switchD_00150729_caseD_4;" goto statement_identifier ;)) (expression_statement "bVar22 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U];" (assignment_expression "bVar22 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U]" identifier = (binary_expression "0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U]" number_literal < (subscript_expression "(&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U]" (parenthesized_expression "(&switchD_00150729::switchdataD_001afcb0)" ( (ERROR "&switchD_00150729::" (pointer_expression "&switchD_00150729" & identifier) : :) identifier )) [ (binary_expression "iVar4 - 3U" identifier - number_literal) ]))) ;) (expression_statement "bVar24 = (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U] == 0xffe50350;" (assignment_expression "bVar24 = (&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U] == 0xffe50350" identifier = (binary_expression "(&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U] == 0xffe50350" (subscript_expression "(&switchD_00150729::switchdataD_001afcb0)[iVar4 - 3U]" (parenthesized_expression "(&switchD_00150729::switchdataD_001afcb0)" ( (ERROR "&switchD_00150729::" (pointer_expression "&switchD_00150729" & identifier) : :) identifier )) [ (binary_expression "iVar4 - 3U" identifier - number_literal) ]) == number_literal)) ;) (switch_statement "switch(iVar4) {\n          case 3:\n            lVar14 = 3;\n            pbVar17 = &DAT_001bc467;\n            pbVar18 = (byte *)wordtext;\n            goto code_r0x00150758;\n          default:\n            goto switchD_00150729_caseD_4;\n          case 9:\n            bVar3 = false;\n            break;\n          case 0xe:\n          case 0x15:\n          case 0x17:\n          case 0x1a:\n          case 0x1b:\n          case 0x1c:\n            goto switchD_001505ce_caseD_9;\n          }" switch (parenthesized_expression "(iVar4)" ( identifier )) (compound_statement "{\n          case 3:\n            lVar14 = 3;\n            pbVar17 = &DAT_001bc467;\n            pbVar18 = (byte *)wordtext;\n            goto code_r0x00150758;\n          default:\n            goto switchD_00150729_caseD_4;\n          case 9:\n            bVar3 = false;\n            break;\n          case 0xe:\n          case 0x15:\n          case 0x17:\n          case 0x1a:\n          case 0x1b:\n          case 0x1c:\n            goto switchD_001505ce_caseD_9;\n          }" { (case_statement "case 3:\n            lVar14 = 3;\n            pbVar17 = &DAT_001bc467;\n            pbVar18 = (byte *)wordtext;\n            goto code_r0x00150758;" case number_literal : (expression_statement "lVar14 = 3;" (assignment_expression "lVar14 = 3" identifier = number_literal) ;) (expression_statement "pbVar17 = &DAT_001bc467;" (assignment_expression "pbVar17 = &DAT_001bc467" identifier = (pointer_expression "&DAT_001bc467" & identifier)) ;) (expression_statement "pbVar18 = (byte *)wordtext;" (assignment_expression "pbVar18 = (byte *)wordtext" identifier = (cast_expression "(byte *)wordtext" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto code_r0x00150758;" goto statement_identifier ;)) (case_statement "default:\n            goto switchD_00150729_caseD_4;" default : (goto_statement "goto switchD_00150729_caseD_4;" goto statement_identifier ;)) (case_statement "case 9:\n            bVar3 = false;\n            break;" case number_literal : (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (break_statement "break;" break ;)) (case_statement "case 0xe:" case number_literal :) (case_statement "case 0x15:" case number_literal :) (case_statement "case 0x17:" case number_literal :) (case_statement "case 0x1a:" case number_literal :) (case_statement "case 0x1b:" case number_literal :) (case_statement "case 0x1c:\n            goto switchD_001505ce_caseD_9;" case number_literal : (goto_statement "goto switchD_001505ce_caseD_9;" goto statement_identifier ;)) })) })) (break_statement "break;" break ;)) (case_statement "case 9:\n        goto switchD_001505ce_caseD_9;" case number_literal : (goto_statement "goto switchD_001505ce_caseD_9;" goto statement_identifier ;)) (case_statement "case 0x16:\n        goto switchD_001505ce_caseD_16;" case number_literal : (goto_statement "goto switchD_001505ce_caseD_16;" goto statement_identifier ;)) })) }))) (goto_statement "goto switchD_001505ce_caseD_0;" goto statement_identifier ;)) (case_statement "case 9:\n    pnVar11 = (node *)stzalloc(0x18);\n    pnVar11->type = '\x04';\n    (pnVar11->ncmd).linno = iVar7;\n    pnVar8 = list(0);\n    (pnVar11->ncmd).assign = pnVar8;\n    iVar4 = 10;\n    break;" case number_literal : (expression_statement "pnVar11 = (node *)stzalloc(0x18);" (assignment_expression "pnVar11 = (node *)stzalloc(0x18)" identifier = (cast_expression "(node *)stzalloc(0x18)" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "stzalloc(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "pnVar11->type = '\x04';" (assignment_expression "pnVar11->type = '\x04'" (field_expression "pnVar11->type" identifier -> field_identifier) = (char_literal "'\x04'" ' escape_sequence ')) ;) (expression_statement "(pnVar11->ncmd).linno = iVar7;" (assignment_expression "(pnVar11->ncmd).linno = iVar7" (field_expression "(pnVar11->ncmd).linno" (parenthesized_expression "(pnVar11->ncmd)" ( (field_expression "pnVar11->ncmd" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "pnVar8 = list(0);" (assignment_expression "pnVar8 = list(0)" identifier = (call_expression "list(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "(pnVar11->ncmd).assign = pnVar8;" (assignment_expression "(pnVar11->ncmd).assign = pnVar8" (field_expression "(pnVar11->ncmd).assign" (parenthesized_expression "(pnVar11->ncmd)" ( (field_expression "pnVar11->ncmd" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "iVar4 = 10;" (assignment_expression "iVar4 = 10" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0xe:\n    pnVar11 = (node *)stzalloc(0x18);\n    pnVar11->type = '\f';\n    (pnVar11->ncmd).linno = iVar7;\n    iVar4 = readtoken();\n    if (iVar4 != 3) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(3);\n    }\n    pcVar9 = (char *)stzalloc(0x20);\n    (pnVar11->ndefun).text = pcVar9;\n    *pcVar9 = '\x0f';\n    *(char **)(pcVar9 + 0x10) = wordtext;\n    *(nodelist **)(pcVar9 + 0x18) = backquotelist;\n    checkkwd = '\a';\n    iVar4 = readtoken();\n    if (iVar4 != 0x18) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0x18);\n    }\n    ppcVar16 = &(pnVar11->narg).text;\n    while( true ) {\n      checkkwd = '\x06';\n      iVar4 = readtoken();\n      if (iVar4 == 0x13) break;\n      if (lasttoken == '\t') {\n        readtoken();\n      }\n      pcVar9 = (char *)stzalloc(0x20);\n      *ppcVar16 = pcVar9;\n      *pcVar9 = '\r';\n      ppnVar15 = (node **)(pcVar9 + 0x10);\n      while( true ) {\n        pnVar8 = (node *)stzalloc(0x20);\n        *ppnVar15 = pnVar8;\n        pnVar8->type = '\x0f';\n        (pnVar8->narg).text = wordtext;\n        (pnVar8->narg).backquote = backquotelist;\n        ap = pnVar8;\n        iVar4 = readtoken();\n        if (iVar4 != 8) break;\n        ppnVar15 = &(pnVar8->ncmd).assign;\n        readtoken();\n      }\n      if (lasttoken != '\n') {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(10);\n      }\n      pnVar8 = list(2);\n      *(node **)(pcVar9 + 0x18) = pnVar8;\n      ppcVar16 = (char **)(pcVar9 + 8);\n      checkkwd = '\x06';\n      iVar4 = readtoken();\n      if (iVar4 == 0x13) break;\n      if (iVar4 != 0xb) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(0xb);\n      }\n    }\n    *ppcVar16 = (char *)0x0;\n    goto LAB_001504ae;" case number_literal : (expression_statement "pnVar11 = (node *)stzalloc(0x18);" (assignment_expression "pnVar11 = (node *)stzalloc(0x18)" identifier = (cast_expression "(node *)stzalloc(0x18)" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "stzalloc(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "pnVar11->type = '\f';" (assignment_expression "pnVar11->type = '\f'" (field_expression "pnVar11->type" identifier -> field_identifier) = (char_literal "'\f'" ' escape_sequence ')) ;) (expression_statement "(pnVar11->ncmd).linno = iVar7;" (assignment_expression "(pnVar11->ncmd).linno = iVar7" (field_expression "(pnVar11->ncmd).linno" (parenthesized_expression "(pnVar11->ncmd)" ( (field_expression "pnVar11->ncmd" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "iVar4 = readtoken();" (assignment_expression "iVar4 = readtoken()" identifier = (call_expression "readtoken()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 != 3) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(3);\n    }" if (parenthesized_expression "(iVar4 != 3)" ( (binary_expression "iVar4 != 3" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(3);\n    }" { comment (expression_statement "raise_error_unexpected_syntax(3);" (call_expression "raise_error_unexpected_syntax(3)" identifier (argument_list "(3)" ( number_literal ))) ;) })) (expression_statement "pcVar9 = (char *)stzalloc(0x20);" (assignment_expression "pcVar9 = (char *)stzalloc(0x20)" identifier = (cast_expression "(char *)stzalloc(0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "stzalloc(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "(pnVar11->ndefun).text = pcVar9;" (assignment_expression "(pnVar11->ndefun).text = pcVar9" (field_expression "(pnVar11->ndefun).text" (parenthesized_expression "(pnVar11->ndefun)" ( (field_expression "pnVar11->ndefun" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "*pcVar9 = '\x0f';" (assignment_expression "*pcVar9 = '\x0f'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'\x0f'" ' escape_sequence ')) ;) (expression_statement "*(char **)(pcVar9 + 0x10) = wordtext;" (assignment_expression "*(char **)(pcVar9 + 0x10) = wordtext" (pointer_expression "*(char **)(pcVar9 + 0x10)" * (cast_expression "(char **)(pcVar9 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x10)" ( (binary_expression "pcVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(nodelist **)(pcVar9 + 0x18) = backquotelist;" (assignment_expression "*(nodelist **)(pcVar9 + 0x18) = backquotelist" (pointer_expression "*(nodelist **)(pcVar9 + 0x18)" * (cast_expression "(nodelist **)(pcVar9 + 0x18)" ( (type_descriptor "nodelist **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x18)" ( (binary_expression "pcVar9 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "checkkwd = '\a';" (assignment_expression "checkkwd = '\a'" identifier = (char_literal "'\a'" ' escape_sequence ')) ;) (expression_statement "iVar4 = readtoken();" (assignment_expression "iVar4 = readtoken()" identifier = (call_expression "readtoken()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 != 0x18) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0x18);\n    }" if (parenthesized_expression "(iVar4 != 0x18)" ( (binary_expression "iVar4 != 0x18" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0x18);\n    }" { comment (expression_statement "raise_error_unexpected_syntax(0x18);" (call_expression "raise_error_unexpected_syntax(0x18)" identifier (argument_list "(0x18)" ( number_literal ))) ;) })) (expression_statement "ppcVar16 = &(pnVar11->narg).text;" (assignment_expression "ppcVar16 = &(pnVar11->narg).text" identifier = (pointer_expression "&(pnVar11->narg).text" & (field_expression "(pnVar11->narg).text" (parenthesized_expression "(pnVar11->narg)" ( (field_expression "pnVar11->narg" identifier -> field_identifier) )) . field_identifier))) ;) (while_statement "while( true ) {\n      checkkwd = '\x06';\n      iVar4 = readtoken();\n      if (iVar4 == 0x13) break;\n      if (lasttoken == '\t') {\n        readtoken();\n      }\n      pcVar9 = (char *)stzalloc(0x20);\n      *ppcVar16 = pcVar9;\n      *pcVar9 = '\r';\n      ppnVar15 = (node **)(pcVar9 + 0x10);\n      while( true ) {\n        pnVar8 = (node *)stzalloc(0x20);\n        *ppnVar15 = pnVar8;\n        pnVar8->type = '\x0f';\n        (pnVar8->narg).text = wordtext;\n        (pnVar8->narg).backquote = backquotelist;\n        ap = pnVar8;\n        iVar4 = readtoken();\n        if (iVar4 != 8) break;\n        ppnVar15 = &(pnVar8->ncmd).assign;\n        readtoken();\n      }\n      if (lasttoken != '\n') {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(10);\n      }\n      pnVar8 = list(2);\n      *(node **)(pcVar9 + 0x18) = pnVar8;\n      ppcVar16 = (char **)(pcVar9 + 8);\n      checkkwd = '\x06';\n      iVar4 = readtoken();\n      if (iVar4 == 0x13) break;\n      if (iVar4 != 0xb) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(0xb);\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      checkkwd = '\x06';\n      iVar4 = readtoken();\n      if (iVar4 == 0x13) break;\n      if (lasttoken == '\t') {\n        readtoken();\n      }\n      pcVar9 = (char *)stzalloc(0x20);\n      *ppcVar16 = pcVar9;\n      *pcVar9 = '\r';\n      ppnVar15 = (node **)(pcVar9 + 0x10);\n      while( true ) {\n        pnVar8 = (node *)stzalloc(0x20);\n        *ppnVar15 = pnVar8;\n        pnVar8->type = '\x0f';\n        (pnVar8->narg).text = wordtext;\n        (pnVar8->narg).backquote = backquotelist;\n        ap = pnVar8;\n        iVar4 = readtoken();\n        if (iVar4 != 8) break;\n        ppnVar15 = &(pnVar8->ncmd).assign;\n        readtoken();\n      }\n      if (lasttoken != '\n') {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(10);\n      }\n      pnVar8 = list(2);\n      *(node **)(pcVar9 + 0x18) = pnVar8;\n      ppcVar16 = (char **)(pcVar9 + 8);\n      checkkwd = '\x06';\n      iVar4 = readtoken();\n      if (iVar4 == 0x13) break;\n      if (iVar4 != 0xb) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(0xb);\n      }\n    }" { (expression_statement "checkkwd = '\x06';" (assignment_expression "checkkwd = '\x06'" identifier = (char_literal "'\x06'" ' escape_sequence ')) ;) (expression_statement "iVar4 = readtoken();" (assignment_expression "iVar4 = readtoken()" identifier = (call_expression "readtoken()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 == 0x13) break;" if (parenthesized_expression "(iVar4 == 0x13)" ( (binary_expression "iVar4 == 0x13" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (lasttoken == '\t') {\n        readtoken();\n      }" if (parenthesized_expression "(lasttoken == '\t')" ( (binary_expression "lasttoken == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) )) (compound_statement "{\n        readtoken();\n      }" { (expression_statement "readtoken();" (call_expression "readtoken()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "pcVar9 = (char *)stzalloc(0x20);" (assignment_expression "pcVar9 = (char *)stzalloc(0x20)" identifier = (cast_expression "(char *)stzalloc(0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "stzalloc(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*ppcVar16 = pcVar9;" (assignment_expression "*ppcVar16 = pcVar9" (pointer_expression "*ppcVar16" * identifier) = identifier) ;) (expression_statement "*pcVar9 = '\r';" (assignment_expression "*pcVar9 = '\r'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'\r'" ' escape_sequence ')) ;) (expression_statement "ppnVar15 = (node **)(pcVar9 + 0x10);" (assignment_expression "ppnVar15 = (node **)(pcVar9 + 0x10)" identifier = (cast_expression "(node **)(pcVar9 + 0x10)" ( (type_descriptor "node **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x10)" ( (binary_expression "pcVar9 + 0x10" identifier + number_literal) )))) ;) (while_statement "while( true ) {\n        pnVar8 = (node *)stzalloc(0x20);\n        *ppnVar15 = pnVar8;\n        pnVar8->type = '\x0f';\n        (pnVar8->narg).text = wordtext;\n        (pnVar8->narg).backquote = backquotelist;\n        ap = pnVar8;\n        iVar4 = readtoken();\n        if (iVar4 != 8) break;\n        ppnVar15 = &(pnVar8->ncmd).assign;\n        readtoken();\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        pnVar8 = (node *)stzalloc(0x20);\n        *ppnVar15 = pnVar8;\n        pnVar8->type = '\x0f';\n        (pnVar8->narg).text = wordtext;\n        (pnVar8->narg).backquote = backquotelist;\n        ap = pnVar8;\n        iVar4 = readtoken();\n        if (iVar4 != 8) break;\n        ppnVar15 = &(pnVar8->ncmd).assign;\n        readtoken();\n      }" { (expression_statement "pnVar8 = (node *)stzalloc(0x20);" (assignment_expression "pnVar8 = (node *)stzalloc(0x20)" identifier = (cast_expression "(node *)stzalloc(0x20)" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "stzalloc(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*ppnVar15 = pnVar8;" (assignment_expression "*ppnVar15 = pnVar8" (pointer_expression "*ppnVar15" * identifier) = identifier) ;) (expression_statement "pnVar8->type = '\x0f';" (assignment_expression "pnVar8->type = '\x0f'" (field_expression "pnVar8->type" identifier -> field_identifier) = (char_literal "'\x0f'" ' escape_sequence ')) ;) (expression_statement "(pnVar8->narg).text = wordtext;" (assignment_expression "(pnVar8->narg).text = wordtext" (field_expression "(pnVar8->narg).text" (parenthesized_expression "(pnVar8->narg)" ( (field_expression "pnVar8->narg" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pnVar8->narg).backquote = backquotelist;" (assignment_expression "(pnVar8->narg).backquote = backquotelist" (field_expression "(pnVar8->narg).backquote" (parenthesized_expression "(pnVar8->narg)" ( (field_expression "pnVar8->narg" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "ap = pnVar8;" (assignment_expression "ap = pnVar8" identifier = identifier) ;) (expression_statement "iVar4 = readtoken();" (assignment_expression "iVar4 = readtoken()" identifier = (call_expression "readtoken()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 != 8) break;" if (parenthesized_expression "(iVar4 != 8)" ( (binary_expression "iVar4 != 8" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "ppnVar15 = &(pnVar8->ncmd).assign;" (assignment_expression "ppnVar15 = &(pnVar8->ncmd).assign" identifier = (pointer_expression "&(pnVar8->ncmd).assign" & (field_expression "(pnVar8->ncmd).assign" (parenthesized_expression "(pnVar8->ncmd)" ( (field_expression "pnVar8->ncmd" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "readtoken();" (call_expression "readtoken()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (lasttoken != '\n') {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(10);\n      }" if (parenthesized_expression "(lasttoken != '\n')" ( (binary_expression "lasttoken != '\n'" identifier != (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(10);\n      }" { comment (expression_statement "raise_error_unexpected_syntax(10);" (call_expression "raise_error_unexpected_syntax(10)" identifier (argument_list "(10)" ( number_literal ))) ;) })) (expression_statement "pnVar8 = list(2);" (assignment_expression "pnVar8 = list(2)" identifier = (call_expression "list(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (expression_statement "*(node **)(pcVar9 + 0x18) = pnVar8;" (assignment_expression "*(node **)(pcVar9 + 0x18) = pnVar8" (pointer_expression "*(node **)(pcVar9 + 0x18)" * (cast_expression "(node **)(pcVar9 + 0x18)" ( (type_descriptor "node **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x18)" ( (binary_expression "pcVar9 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "ppcVar16 = (char **)(pcVar9 + 8);" (assignment_expression "ppcVar16 = (char **)(pcVar9 + 8)" identifier = (cast_expression "(char **)(pcVar9 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 8)" ( (binary_expression "pcVar9 + 8" identifier + number_literal) )))) ;) (expression_statement "checkkwd = '\x06';" (assignment_expression "checkkwd = '\x06'" identifier = (char_literal "'\x06'" ' escape_sequence ')) ;) (expression_statement "iVar4 = readtoken();" (assignment_expression "iVar4 = readtoken()" identifier = (call_expression "readtoken()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 == 0x13) break;" if (parenthesized_expression "(iVar4 == 0x13)" ( (binary_expression "iVar4 == 0x13" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (iVar4 != 0xb) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(0xb);\n      }" if (parenthesized_expression "(iVar4 != 0xb)" ( (binary_expression "iVar4 != 0xb" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(0xb);\n      }" { comment (expression_statement "raise_error_unexpected_syntax(0xb);" (call_expression "raise_error_unexpected_syntax(0xb)" identifier (argument_list "(0xb)" ( number_literal ))) ;) })) })) (expression_statement "*ppcVar16 = (char *)0x0;" (assignment_expression "*ppcVar16 = (char *)0x0" (pointer_expression "*ppcVar16" * identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_001504ae;" goto statement_identifier ;)) (case_statement "case 0x15:\n    iVar4 = readtoken();\n    if (((iVar4 != 3) || (quoteflag != '\0')) || (pcVar9 = endofname(wordtext), *pcVar9 != '\0')) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_syntax("bad for loop variable");\n    }\n    pnVar11 = (node *)stzalloc(0x20);\n    pnVar11->type = '\v';\n    (pnVar11->ncmd).linno = iVar7;\n    (pnVar11->nfor).var = wordtext;\n    checkkwd = '\a';\n    iVar4 = readtoken();\n    if (iVar4 == 0x18) {\n      ppnVar15 = &ap;\n      while (iVar4 = readtoken(), iVar4 == 3) {\n        pnVar8 = (node *)stzalloc(0x20);\n        pnVar8->type = '\x0f';\n        (pnVar8->narg).text = wordtext;\n        (pnVar8->narg).backquote = backquotelist;\n        *ppnVar15 = pnVar8;\n        ppnVar15 = &(pnVar8->ncmd).assign;\n      }\n      *ppnVar15 = (node *)0x0;\n      (pnVar11->ncmd).assign = ap;\n      if ((lasttoken != '\x01') && (lasttoken != '\x04')) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(-1);\n      }\n    }\n    else {\n      pcVar9 = (char *)stzalloc(0x20);\n      *pcVar9 = '\x0f';\n      *(char **)(pcVar9 + 0x10) = dolatstr;\n      (pnVar11->ndefun).text = pcVar9;\n      if (lasttoken != '\x04') {\n        tokpushback = '\x01';\n      }\n    }\n    checkkwd = '\a';\n    iVar4 = readtoken();\n    if (iVar4 != 0xf) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0xf);\n    }\n    pnVar8 = list(0);\n    (pnVar11->ncmd).args = pnVar8;\n    iVar4 = 0x10;\n    break;" case number_literal : (expression_statement "iVar4 = readtoken();" (assignment_expression "iVar4 = readtoken()" identifier = (call_expression "readtoken()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((iVar4 != 3) || (quoteflag != '\0')) || (pcVar9 = endofname(wordtext), *pcVar9 != '\0')) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_syntax("bad for loop variable");\n    }" if (parenthesized_expression "(((iVar4 != 3) || (quoteflag != '\0')) || (pcVar9 = endofname(wordtext), *pcVar9 != '\0'))" ( (binary_expression "((iVar4 != 3) || (quoteflag != '\0')) || (pcVar9 = endofname(wordtext), *pcVar9 != '\0')" (parenthesized_expression "((iVar4 != 3) || (quoteflag != '\0'))" ( (binary_expression "(iVar4 != 3) || (quoteflag != '\0')" (parenthesized_expression "(iVar4 != 3)" ( (binary_expression "iVar4 != 3" identifier != number_literal) )) || (parenthesized_expression "(quoteflag != '\0')" ( (binary_expression "quoteflag != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(pcVar9 = endofname(wordtext), *pcVar9 != '\0')" ( (comma_expression "pcVar9 = endofname(wordtext), *pcVar9 != '\0'" (assignment_expression "pcVar9 = endofname(wordtext)" identifier = (call_expression "endofname(wordtext)" identifier (argument_list "(wordtext)" ( identifier )))) , (binary_expression "*pcVar9 != '\0'" (pointer_expression "*pcVar9" * identifier) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      raise_error_syntax("bad for loop variable");\n    }" { comment (expression_statement "raise_error_syntax("bad for loop variable");" (call_expression "raise_error_syntax("bad for loop variable")" identifier (argument_list "("bad for loop variable")" ( (string_literal ""bad for loop variable"" " string_content ") ))) ;) })) (expression_statement "pnVar11 = (node *)stzalloc(0x20);" (assignment_expression "pnVar11 = (node *)stzalloc(0x20)" identifier = (cast_expression "(node *)stzalloc(0x20)" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "stzalloc(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "pnVar11->type = '\v';" (assignment_expression "pnVar11->type = '\v'" (field_expression "pnVar11->type" identifier -> field_identifier) = (char_literal "'\v'" ' escape_sequence ')) ;) (expression_statement "(pnVar11->ncmd).linno = iVar7;" (assignment_expression "(pnVar11->ncmd).linno = iVar7" (field_expression "(pnVar11->ncmd).linno" (parenthesized_expression "(pnVar11->ncmd)" ( (field_expression "pnVar11->ncmd" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pnVar11->nfor).var = wordtext;" (assignment_expression "(pnVar11->nfor).var = wordtext" (field_expression "(pnVar11->nfor).var" (parenthesized_expression "(pnVar11->nfor)" ( (field_expression "pnVar11->nfor" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "checkkwd = '\a';" (assignment_expression "checkkwd = '\a'" identifier = (char_literal "'\a'" ' escape_sequence ')) ;) (expression_statement "iVar4 = readtoken();" (assignment_expression "iVar4 = readtoken()" identifier = (call_expression "readtoken()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 == 0x18) {\n      ppnVar15 = &ap;\n      while (iVar4 = readtoken(), iVar4 == 3) {\n        pnVar8 = (node *)stzalloc(0x20);\n        pnVar8->type = '\x0f';\n        (pnVar8->narg).text = wordtext;\n        (pnVar8->narg).backquote = backquotelist;\n        *ppnVar15 = pnVar8;\n        ppnVar15 = &(pnVar8->ncmd).assign;\n      }\n      *ppnVar15 = (node *)0x0;\n      (pnVar11->ncmd).assign = ap;\n      if ((lasttoken != '\x01') && (lasttoken != '\x04')) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(-1);\n      }\n    }\n    else {\n      pcVar9 = (char *)stzalloc(0x20);\n      *pcVar9 = '\x0f';\n      *(char **)(pcVar9 + 0x10) = dolatstr;\n      (pnVar11->ndefun).text = pcVar9;\n      if (lasttoken != '\x04') {\n        tokpushback = '\x01';\n      }\n    }" if (parenthesized_expression "(iVar4 == 0x18)" ( (binary_expression "iVar4 == 0x18" identifier == number_literal) )) (compound_statement "{\n      ppnVar15 = &ap;\n      while (iVar4 = readtoken(), iVar4 == 3) {\n        pnVar8 = (node *)stzalloc(0x20);\n        pnVar8->type = '\x0f';\n        (pnVar8->narg).text = wordtext;\n        (pnVar8->narg).backquote = backquotelist;\n        *ppnVar15 = pnVar8;\n        ppnVar15 = &(pnVar8->ncmd).assign;\n      }\n      *ppnVar15 = (node *)0x0;\n      (pnVar11->ncmd).assign = ap;\n      if ((lasttoken != '\x01') && (lasttoken != '\x04')) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(-1);\n      }\n    }" { (expression_statement "ppnVar15 = &ap;" (assignment_expression "ppnVar15 = &ap" identifier = (pointer_expression "&ap" & identifier)) ;) (while_statement "while (iVar4 = readtoken(), iVar4 == 3) {\n        pnVar8 = (node *)stzalloc(0x20);\n        pnVar8->type = '\x0f';\n        (pnVar8->narg).text = wordtext;\n        (pnVar8->narg).backquote = backquotelist;\n        *ppnVar15 = pnVar8;\n        ppnVar15 = &(pnVar8->ncmd).assign;\n      }" while (parenthesized_expression "(iVar4 = readtoken(), iVar4 == 3)" ( (comma_expression "iVar4 = readtoken(), iVar4 == 3" (assignment_expression "iVar4 = readtoken()" identifier = (call_expression "readtoken()" identifier (argument_list "()" ( )))) , (binary_expression "iVar4 == 3" identifier == number_literal)) )) (compound_statement "{\n        pnVar8 = (node *)stzalloc(0x20);\n        pnVar8->type = '\x0f';\n        (pnVar8->narg).text = wordtext;\n        (pnVar8->narg).backquote = backquotelist;\n        *ppnVar15 = pnVar8;\n        ppnVar15 = &(pnVar8->ncmd).assign;\n      }" { (expression_statement "pnVar8 = (node *)stzalloc(0x20);" (assignment_expression "pnVar8 = (node *)stzalloc(0x20)" identifier = (cast_expression "(node *)stzalloc(0x20)" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "stzalloc(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "pnVar8->type = '\x0f';" (assignment_expression "pnVar8->type = '\x0f'" (field_expression "pnVar8->type" identifier -> field_identifier) = (char_literal "'\x0f'" ' escape_sequence ')) ;) (expression_statement "(pnVar8->narg).text = wordtext;" (assignment_expression "(pnVar8->narg).text = wordtext" (field_expression "(pnVar8->narg).text" (parenthesized_expression "(pnVar8->narg)" ( (field_expression "pnVar8->narg" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pnVar8->narg).backquote = backquotelist;" (assignment_expression "(pnVar8->narg).backquote = backquotelist" (field_expression "(pnVar8->narg).backquote" (parenthesized_expression "(pnVar8->narg)" ( (field_expression "pnVar8->narg" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "*ppnVar15 = pnVar8;" (assignment_expression "*ppnVar15 = pnVar8" (pointer_expression "*ppnVar15" * identifier) = identifier) ;) (expression_statement "ppnVar15 = &(pnVar8->ncmd).assign;" (assignment_expression "ppnVar15 = &(pnVar8->ncmd).assign" identifier = (pointer_expression "&(pnVar8->ncmd).assign" & (field_expression "(pnVar8->ncmd).assign" (parenthesized_expression "(pnVar8->ncmd)" ( (field_expression "pnVar8->ncmd" identifier -> field_identifier) )) . field_identifier))) ;) })) (expression_statement "*ppnVar15 = (node *)0x0;" (assignment_expression "*ppnVar15 = (node *)0x0" (pointer_expression "*ppnVar15" * identifier) = (cast_expression "(node *)0x0" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pnVar11->ncmd).assign = ap;" (assignment_expression "(pnVar11->ncmd).assign = ap" (field_expression "(pnVar11->ncmd).assign" (parenthesized_expression "(pnVar11->ncmd)" ( (field_expression "pnVar11->ncmd" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (if_statement "if ((lasttoken != '\x01') && (lasttoken != '\x04')) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(-1);\n      }" if (parenthesized_expression "((lasttoken != '\x01') && (lasttoken != '\x04'))" ( (binary_expression "(lasttoken != '\x01') && (lasttoken != '\x04')" (parenthesized_expression "(lasttoken != '\x01')" ( (binary_expression "lasttoken != '\x01'" identifier != (char_literal "'\x01'" ' escape_sequence ')) )) && (parenthesized_expression "(lasttoken != '\x04')" ( (binary_expression "lasttoken != '\x04'" identifier != (char_literal "'\x04'" ' escape_sequence ')) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(-1);\n      }" { comment (expression_statement "raise_error_unexpected_syntax(-1);" (call_expression "raise_error_unexpected_syntax(-1)" identifier (argument_list "(-1)" ( number_literal ))) ;) })) }) (else_clause "else {\n      pcVar9 = (char *)stzalloc(0x20);\n      *pcVar9 = '\x0f';\n      *(char **)(pcVar9 + 0x10) = dolatstr;\n      (pnVar11->ndefun).text = pcVar9;\n      if (lasttoken != '\x04') {\n        tokpushback = '\x01';\n      }\n    }" else (compound_statement "{\n      pcVar9 = (char *)stzalloc(0x20);\n      *pcVar9 = '\x0f';\n      *(char **)(pcVar9 + 0x10) = dolatstr;\n      (pnVar11->ndefun).text = pcVar9;\n      if (lasttoken != '\x04') {\n        tokpushback = '\x01';\n      }\n    }" { (expression_statement "pcVar9 = (char *)stzalloc(0x20);" (assignment_expression "pcVar9 = (char *)stzalloc(0x20)" identifier = (cast_expression "(char *)stzalloc(0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "stzalloc(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*pcVar9 = '\x0f';" (assignment_expression "*pcVar9 = '\x0f'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'\x0f'" ' escape_sequence ')) ;) (expression_statement "*(char **)(pcVar9 + 0x10) = dolatstr;" (assignment_expression "*(char **)(pcVar9 + 0x10) = dolatstr" (pointer_expression "*(char **)(pcVar9 + 0x10)" * (cast_expression "(char **)(pcVar9 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x10)" ( (binary_expression "pcVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "(pnVar11->ndefun).text = pcVar9;" (assignment_expression "(pnVar11->ndefun).text = pcVar9" (field_expression "(pnVar11->ndefun).text" (parenthesized_expression "(pnVar11->ndefun)" ( (field_expression "pnVar11->ndefun" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (if_statement "if (lasttoken != '\x04') {\n        tokpushback = '\x01';\n      }" if (parenthesized_expression "(lasttoken != '\x04')" ( (binary_expression "lasttoken != '\x04'" identifier != (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n        tokpushback = '\x01';\n      }" { (expression_statement "tokpushback = '\x01';" (assignment_expression "tokpushback = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) })) }))) (expression_statement "checkkwd = '\a';" (assignment_expression "checkkwd = '\a'" identifier = (char_literal "'\a'" ' escape_sequence ')) ;) (expression_statement "iVar4 = readtoken();" (assignment_expression "iVar4 = readtoken()" identifier = (call_expression "readtoken()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 != 0xf) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0xf);\n    }" if (parenthesized_expression "(iVar4 != 0xf)" ( (binary_expression "iVar4 != 0xf" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0xf);\n    }" { comment (expression_statement "raise_error_unexpected_syntax(0xf);" (call_expression "raise_error_unexpected_syntax(0xf)" identifier (argument_list "(0xf)" ( number_literal ))) ;) })) (expression_statement "pnVar8 = list(0);" (assignment_expression "pnVar8 = list(0)" identifier = (call_expression "list(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "(pnVar11->ncmd).args = pnVar8;" (assignment_expression "(pnVar11->ncmd).args = pnVar8" (field_expression "(pnVar11->ncmd).args" (parenthesized_expression "(pnVar11->ncmd)" ( (field_expression "pnVar11->ncmd" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "iVar4 = 0x10;" (assignment_expression "iVar4 = 0x10" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x17:\n    pnVar11 = (node *)stzalloc(0x20);\n    pnVar11->type = '\b';\n    pnVar8 = list(0);\n    (pnVar11->ncmd).assign = pnVar8;\n    iVar4 = readtoken();\n    if (iVar4 != 0x19) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0x19);\n    }\n    pnVar8 = list(0);\n    (pnVar11->ncmd).args = pnVar8;\n    pnVar8 = pnVar11;\n    while (iVar4 = readtoken(), iVar4 == 0x11) {\n      pnVar10 = (node *)stzalloc(0x20);\n      (pnVar8->narg).backquote = (nodelist *)pnVar10;\n      pnVar10->type = '\b';\n      pnVar8 = list(0);\n      (pnVar10->ncmd).assign = pnVar8;\n      iVar4 = readtoken();\n      if (iVar4 != 0x19) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(0x19);\n      }\n      pnVar8 = list(0);\n      (pnVar10->ncmd).args = pnVar8;\n      pnVar8 = pnVar10;\n    }\n    if (lasttoken == '\x12') {\n      pnVar10 = list(0);\n      (pnVar8->ncmd).redirect = pnVar10;\n      iVar4 = 0x14;\n    }\n    else {\n      (pnVar8->ncmd).redirect = (node *)0x0;\n      tokpushback = '\x01';\n      iVar4 = 0x14;\n    }\n    break;" case number_literal : (expression_statement "pnVar11 = (node *)stzalloc(0x20);" (assignment_expression "pnVar11 = (node *)stzalloc(0x20)" identifier = (cast_expression "(node *)stzalloc(0x20)" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "stzalloc(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "pnVar11->type = '\b';" (assignment_expression "pnVar11->type = '\b'" (field_expression "pnVar11->type" identifier -> field_identifier) = (char_literal "'\b'" ' escape_sequence ')) ;) (expression_statement "pnVar8 = list(0);" (assignment_expression "pnVar8 = list(0)" identifier = (call_expression "list(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "(pnVar11->ncmd).assign = pnVar8;" (assignment_expression "(pnVar11->ncmd).assign = pnVar8" (field_expression "(pnVar11->ncmd).assign" (parenthesized_expression "(pnVar11->ncmd)" ( (field_expression "pnVar11->ncmd" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "iVar4 = readtoken();" (assignment_expression "iVar4 = readtoken()" identifier = (call_expression "readtoken()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 != 0x19) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0x19);\n    }" if (parenthesized_expression "(iVar4 != 0x19)" ( (binary_expression "iVar4 != 0x19" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0x19);\n    }" { comment (expression_statement "raise_error_unexpected_syntax(0x19);" (call_expression "raise_error_unexpected_syntax(0x19)" identifier (argument_list "(0x19)" ( number_literal ))) ;) })) (expression_statement "pnVar8 = list(0);" (assignment_expression "pnVar8 = list(0)" identifier = (call_expression "list(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "(pnVar11->ncmd).args = pnVar8;" (assignment_expression "(pnVar11->ncmd).args = pnVar8" (field_expression "(pnVar11->ncmd).args" (parenthesized_expression "(pnVar11->ncmd)" ( (field_expression "pnVar11->ncmd" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "pnVar8 = pnVar11;" (assignment_expression "pnVar8 = pnVar11" identifier = identifier) ;) (while_statement "while (iVar4 = readtoken(), iVar4 == 0x11) {\n      pnVar10 = (node *)stzalloc(0x20);\n      (pnVar8->narg).backquote = (nodelist *)pnVar10;\n      pnVar10->type = '\b';\n      pnVar8 = list(0);\n      (pnVar10->ncmd).assign = pnVar8;\n      iVar4 = readtoken();\n      if (iVar4 != 0x19) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(0x19);\n      }\n      pnVar8 = list(0);\n      (pnVar10->ncmd).args = pnVar8;\n      pnVar8 = pnVar10;\n    }" while (parenthesized_expression "(iVar4 = readtoken(), iVar4 == 0x11)" ( (comma_expression "iVar4 = readtoken(), iVar4 == 0x11" (assignment_expression "iVar4 = readtoken()" identifier = (call_expression "readtoken()" identifier (argument_list "()" ( )))) , (binary_expression "iVar4 == 0x11" identifier == number_literal)) )) (compound_statement "{\n      pnVar10 = (node *)stzalloc(0x20);\n      (pnVar8->narg).backquote = (nodelist *)pnVar10;\n      pnVar10->type = '\b';\n      pnVar8 = list(0);\n      (pnVar10->ncmd).assign = pnVar8;\n      iVar4 = readtoken();\n      if (iVar4 != 0x19) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(0x19);\n      }\n      pnVar8 = list(0);\n      (pnVar10->ncmd).args = pnVar8;\n      pnVar8 = pnVar10;\n    }" { (expression_statement "pnVar10 = (node *)stzalloc(0x20);" (assignment_expression "pnVar10 = (node *)stzalloc(0x20)" identifier = (cast_expression "(node *)stzalloc(0x20)" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "stzalloc(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "(pnVar8->narg).backquote = (nodelist *)pnVar10;" (assignment_expression "(pnVar8->narg).backquote = (nodelist *)pnVar10" (field_expression "(pnVar8->narg).backquote" (parenthesized_expression "(pnVar8->narg)" ( (field_expression "pnVar8->narg" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(nodelist *)pnVar10" ( (type_descriptor "nodelist *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pnVar10->type = '\b';" (assignment_expression "pnVar10->type = '\b'" (field_expression "pnVar10->type" identifier -> field_identifier) = (char_literal "'\b'" ' escape_sequence ')) ;) (expression_statement "pnVar8 = list(0);" (assignment_expression "pnVar8 = list(0)" identifier = (call_expression "list(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "(pnVar10->ncmd).assign = pnVar8;" (assignment_expression "(pnVar10->ncmd).assign = pnVar8" (field_expression "(pnVar10->ncmd).assign" (parenthesized_expression "(pnVar10->ncmd)" ( (field_expression "pnVar10->ncmd" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "iVar4 = readtoken();" (assignment_expression "iVar4 = readtoken()" identifier = (call_expression "readtoken()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 != 0x19) {\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(0x19);\n      }" if (parenthesized_expression "(iVar4 != 0x19)" ( (binary_expression "iVar4 != 0x19" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        raise_error_unexpected_syntax(0x19);\n      }" { comment (expression_statement "raise_error_unexpected_syntax(0x19);" (call_expression "raise_error_unexpected_syntax(0x19)" identifier (argument_list "(0x19)" ( number_literal ))) ;) })) (expression_statement "pnVar8 = list(0);" (assignment_expression "pnVar8 = list(0)" identifier = (call_expression "list(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "(pnVar10->ncmd).args = pnVar8;" (assignment_expression "(pnVar10->ncmd).args = pnVar8" (field_expression "(pnVar10->ncmd).args" (parenthesized_expression "(pnVar10->ncmd)" ( (field_expression "pnVar10->ncmd" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "pnVar8 = pnVar10;" (assignment_expression "pnVar8 = pnVar10" identifier = identifier) ;) })) (if_statement "if (lasttoken == '\x12') {\n      pnVar10 = list(0);\n      (pnVar8->ncmd).redirect = pnVar10;\n      iVar4 = 0x14;\n    }\n    else {\n      (pnVar8->ncmd).redirect = (node *)0x0;\n      tokpushback = '\x01';\n      iVar4 = 0x14;\n    }" if (parenthesized_expression "(lasttoken == '\x12')" ( (binary_expression "lasttoken == '\x12'" identifier == (char_literal "'\x12'" ' escape_sequence ')) )) (compound_statement "{\n      pnVar10 = list(0);\n      (pnVar8->ncmd).redirect = pnVar10;\n      iVar4 = 0x14;\n    }" { (expression_statement "pnVar10 = list(0);" (assignment_expression "pnVar10 = list(0)" identifier = (call_expression "list(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "(pnVar8->ncmd).redirect = pnVar10;" (assignment_expression "(pnVar8->ncmd).redirect = pnVar10" (field_expression "(pnVar8->ncmd).redirect" (parenthesized_expression "(pnVar8->ncmd)" ( (field_expression "pnVar8->ncmd" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "iVar4 = 0x14;" (assignment_expression "iVar4 = 0x14" identifier = number_literal) ;) }) (else_clause "else {\n      (pnVar8->ncmd).redirect = (node *)0x0;\n      tokpushback = '\x01';\n      iVar4 = 0x14;\n    }" else (compound_statement "{\n      (pnVar8->ncmd).redirect = (node *)0x0;\n      tokpushback = '\x01';\n      iVar4 = 0x14;\n    }" { (expression_statement "(pnVar8->ncmd).redirect = (node *)0x0;" (assignment_expression "(pnVar8->ncmd).redirect = (node *)0x0" (field_expression "(pnVar8->ncmd).redirect" (parenthesized_expression "(pnVar8->ncmd)" ( (field_expression "pnVar8->ncmd" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(node *)0x0" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "tokpushback = '\x01';" (assignment_expression "tokpushback = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "iVar4 = 0x14;" (assignment_expression "iVar4 = 0x14" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x1a:" case number_literal :) (case_statement "case 0x1b:\n    pnVar11 = (node *)stzalloc(0x18);\n    pnVar11->type = (lasttoken != '\x1b') + '\t';\n    pnVar8 = list(0);\n    (pnVar11->ncmd).assign = pnVar8;\n    iVar4 = readtoken();\n    if (iVar4 != 0xf) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0xf);\n    }\n    pnVar8 = list(0);\n    (pnVar11->ncmd).args = pnVar8;\n    iVar4 = 0x10;\n    break;" case number_literal : (expression_statement "pnVar11 = (node *)stzalloc(0x18);" (assignment_expression "pnVar11 = (node *)stzalloc(0x18)" identifier = (cast_expression "(node *)stzalloc(0x18)" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "stzalloc(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "pnVar11->type = (lasttoken != '\x1b') + '\t';" (assignment_expression "pnVar11->type = (lasttoken != '\x1b') + '\t'" (field_expression "pnVar11->type" identifier -> field_identifier) = (binary_expression "(lasttoken != '\x1b') + '\t'" (parenthesized_expression "(lasttoken != '\x1b')" ( (binary_expression "lasttoken != '\x1b'" identifier != (char_literal "'\x1b'" ' escape_sequence ')) )) + (char_literal "'\t'" ' escape_sequence '))) ;) (expression_statement "pnVar8 = list(0);" (assignment_expression "pnVar8 = list(0)" identifier = (call_expression "list(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "(pnVar11->ncmd).assign = pnVar8;" (assignment_expression "(pnVar11->ncmd).assign = pnVar8" (field_expression "(pnVar11->ncmd).assign" (parenthesized_expression "(pnVar11->ncmd)" ( (field_expression "pnVar11->ncmd" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "iVar4 = readtoken();" (assignment_expression "iVar4 = readtoken()" identifier = (call_expression "readtoken()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 != 0xf) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0xf);\n    }" if (parenthesized_expression "(iVar4 != 0xf)" ( (binary_expression "iVar4 != 0xf" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(0xf);\n    }" { comment (expression_statement "raise_error_unexpected_syntax(0xf);" (call_expression "raise_error_unexpected_syntax(0xf)" identifier (argument_list "(0xf)" ( number_literal ))) ;) })) (expression_statement "pnVar8 = list(0);" (assignment_expression "pnVar8 = list(0)" identifier = (call_expression "list(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "(pnVar11->ncmd).args = pnVar8;" (assignment_expression "(pnVar11->ncmd).args = pnVar8" (field_expression "(pnVar11->ncmd).args" (parenthesized_expression "(pnVar11->ncmd)" ( (field_expression "pnVar11->ncmd" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "iVar4 = 0x10;" (assignment_expression "iVar4 = 0x10" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x1c:\n    pnVar11 = list(0);\n    iVar4 = 0x1d;" case number_literal : (expression_statement "pnVar11 = list(0);" (assignment_expression "pnVar11 = list(0)" identifier = (call_expression "list(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "iVar4 = 0x1d;" (assignment_expression "iVar4 = 0x1d" identifier = number_literal) ;)) })) (expression_statement "iVar5 = readtoken();" (assignment_expression "iVar5 = readtoken()" identifier = (call_expression "readtoken()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar5 != iVar4) {\n                    /* WARNING: Subroutine does not return */\n    raise_error_unexpected_syntax(iVar4);\n  }" if (parenthesized_expression "(iVar5 != iVar4)" ( (binary_expression "iVar5 != iVar4" identifier != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    raise_error_unexpected_syntax(iVar4);\n  }" { comment (expression_statement "raise_error_unexpected_syntax(iVar4);" (call_expression "raise_error_unexpected_syntax(iVar4)" identifier (argument_list "(iVar4)" ( identifier ))) ;) })) (labeled_statement "LAB_001504ae:\n  checkkwd = '\x03';" statement_identifier : (expression_statement "checkkwd = '\x03';" (assignment_expression "checkkwd = '\x03'" identifier = (char_literal "'\x03'" ' escape_sequence ')) ;)) (expression_statement "ppnVar15 = &redir;" (assignment_expression "ppnVar15 = &redir" identifier = (pointer_expression "&redir" & identifier)) ;) (while_statement "while (iVar4 = readtoken(), iVar4 == 2) {\n    *ppnVar15 = redirnode;\n    ppnVar15 = &(redirnode->ncmd).assign;\n    parsefname();\n  }" while (parenthesized_expression "(iVar4 = readtoken(), iVar4 == 2)" ( (comma_expression "iVar4 = readtoken(), iVar4 == 2" (assignment_expression "iVar4 = readtoken()" identifier = (call_expression "readtoken()" identifier (argument_list "()" ( )))) , (binary_expression "iVar4 == 2" identifier == number_literal)) )) (compound_statement "{\n    *ppnVar15 = redirnode;\n    ppnVar15 = &(redirnode->ncmd).assign;\n    parsefname();\n  }" { (expression_statement "*ppnVar15 = redirnode;" (assignment_expression "*ppnVar15 = redirnode" (pointer_expression "*ppnVar15" * identifier) = identifier) ;) (expression_statement "ppnVar15 = &(redirnode->ncmd).assign;" (assignment_expression "ppnVar15 = &(redirnode->ncmd).assign" identifier = (pointer_expression "&(redirnode->ncmd).assign" & (field_expression "(redirnode->ncmd).assign" (parenthesized_expression "(redirnode->ncmd)" ( (field_expression "redirnode->ncmd" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "parsefname();" (call_expression "parsefname()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "tokpushback = '\x01';" (assignment_expression "tokpushback = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "*ppnVar15 = (node *)0x0;" (assignment_expression "*ppnVar15 = (node *)0x0" (pointer_expression "*ppnVar15" * identifier) = (cast_expression "(node *)0x0" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pnVar8 = redir;" (assignment_expression "pnVar8 = redir" identifier = identifier) ;) (expression_statement "pnVar10 = pnVar11;" (assignment_expression "pnVar10 = pnVar11" identifier = identifier) ;) (if_statement "if (redir != (node *)0x0) {\n    if (pnVar11->type != '\x04') {\n      pnVar10 = (node *)stzalloc(0x18);\n      pnVar10->type = '\x02';\n      (pnVar10->ncmd).linno = iVar7;\n      (pnVar10->ncmd).assign = pnVar11;\n    }\n    (pnVar10->ncmd).args = pnVar8;\n  }" if (parenthesized_expression "(redir != (node *)0x0)" ( (binary_expression "redir != (node *)0x0" identifier != (cast_expression "(node *)0x0" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (pnVar11->type != '\x04') {\n      pnVar10 = (node *)stzalloc(0x18);\n      pnVar10->type = '\x02';\n      (pnVar10->ncmd).linno = iVar7;\n      (pnVar10->ncmd).assign = pnVar11;\n    }\n    (pnVar10->ncmd).args = pnVar8;\n  }" { (if_statement "if (pnVar11->type != '\x04') {\n      pnVar10 = (node *)stzalloc(0x18);\n      pnVar10->type = '\x02';\n      (pnVar10->ncmd).linno = iVar7;\n      (pnVar10->ncmd).assign = pnVar11;\n    }" if (parenthesized_expression "(pnVar11->type != '\x04')" ( (binary_expression "pnVar11->type != '\x04'" (field_expression "pnVar11->type" identifier -> field_identifier) != (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n      pnVar10 = (node *)stzalloc(0x18);\n      pnVar10->type = '\x02';\n      (pnVar10->ncmd).linno = iVar7;\n      (pnVar10->ncmd).assign = pnVar11;\n    }" { (expression_statement "pnVar10 = (node *)stzalloc(0x18);" (assignment_expression "pnVar10 = (node *)stzalloc(0x18)" identifier = (cast_expression "(node *)stzalloc(0x18)" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "stzalloc(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "pnVar10->type = '\x02';" (assignment_expression "pnVar10->type = '\x02'" (field_expression "pnVar10->type" identifier -> field_identifier) = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "(pnVar10->ncmd).linno = iVar7;" (assignment_expression "(pnVar10->ncmd).linno = iVar7" (field_expression "(pnVar10->ncmd).linno" (parenthesized_expression "(pnVar10->ncmd)" ( (field_expression "pnVar10->ncmd" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pnVar10->ncmd).assign = pnVar11;" (assignment_expression "(pnVar10->ncmd).assign = pnVar11" (field_expression "(pnVar10->ncmd).assign" (parenthesized_expression "(pnVar10->ncmd)" ( (field_expression "pnVar10->ncmd" identifier -> field_identifier) )) . field_identifier) = identifier) ;) })) (expression_statement "(pnVar10->ncmd).args = pnVar8;" (assignment_expression "(pnVar10->ncmd).args = pnVar8" (field_expression "(pnVar10->ncmd).args" (parenthesized_expression "(pnVar10->ncmd)" ( (field_expression "pnVar10->ncmd" identifier -> field_identifier) )) . field_identifier) = identifier) ;) })) (labeled_statement "LAB_0015082d:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return pnVar10;" return identifier ;) (labeled_statement "switchD_001505ce_caseD_16:\n  iVar4 = readtoken();" statement_identifier : (expression_statement "iVar4 = readtoken();" (assignment_expression "iVar4 = readtoken()" identifier = (call_expression "readtoken()" identifier (argument_list "()" ( )))) ;)) (expression_statement "tokpushback = '\x01';" (assignment_expression "tokpushback = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (if_statement "if (iVar4 != 3) {\n                    /* WARNING: Subroutine does not return */\n    raise_error_unexpected_syntax(3);\n  }" if (parenthesized_expression "(iVar4 != 3)" ( (binary_expression "iVar4 != 3" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    raise_error_unexpected_syntax(3);\n  }" { comment (expression_statement "raise_error_unexpected_syntax(3);" (call_expression "raise_error_unexpected_syntax(3)" identifier (argument_list "(3)" ( number_literal ))) ;) })) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (goto_statement "goto LAB_001505a5;" goto statement_identifier ;) (while_statement "while( true ) {\n    lVar14 = lVar14 + -1;\n    bVar22 = *pbVar17 < *pbVar18;\n    bVar24 = *pbVar17 == *pbVar18;\n    pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n    pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n    if (!bVar24) break;\ncode_r0x00150758:\n    if (lVar14 == 0) break;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    lVar14 = lVar14 + -1;\n    bVar22 = *pbVar17 < *pbVar18;\n    bVar24 = *pbVar17 == *pbVar18;\n    pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;\n    pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;\n    if (!bVar24) break;\ncode_r0x00150758:\n    if (lVar14 == 0) break;\n  }" { (expression_statement "lVar14 = lVar14 + -1;" (assignment_expression "lVar14 = lVar14 + -1" identifier = (binary_expression "lVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar17 < *pbVar18;" (assignment_expression "bVar22 = *pbVar17 < *pbVar18" identifier = (binary_expression "*pbVar17 < *pbVar18" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar24 = *pbVar17 == *pbVar18;" (assignment_expression "bVar24 = *pbVar17 == *pbVar18" identifier = (binary_expression "*pbVar17 == *pbVar18" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar25 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (ulong)bVar25 * -2 + 1" (binary_expression "pbVar18 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (if_statement "if (!bVar24) break;" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (break_statement "break;" break ;)) (labeled_statement "code_r0x00150758:\n    if (lVar14 == 0) break;" statement_identifier : (if_statement "if (lVar14 == 0) break;" if (parenthesized_expression "(lVar14 == 0)" ( (binary_expression "lVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;))) })) (if_statement "if ((!bVar22 && !bVar24) != bVar22) {\nswitchD_00150729_caseD_4:\n                    /* WARNING: Subroutine does not return */\n    raise_error_unexpected_syntax(-1);\n  }" if (parenthesized_expression "((!bVar22 && !bVar24) != bVar22)" ( (binary_expression "(!bVar22 && !bVar24) != bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" ( (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) != identifier) )) (compound_statement "{\nswitchD_00150729_caseD_4:\n                    /* WARNING: Subroutine does not return */\n    raise_error_unexpected_syntax(-1);\n  }" { (labeled_statement "switchD_00150729_caseD_4:\n                    /* WARNING: Subroutine does not return */\n    raise_error_unexpected_syntax(-1);" statement_identifier : comment (expression_statement "raise_error_unexpected_syntax(-1);" (call_expression "raise_error_unexpected_syntax(-1)" identifier (argument_list "(-1)" ( number_literal ))) ;)) })) (labeled_statement "switchD_001505ce_caseD_9:\n  if ((((args == (node *)0x0) || (ppnVar19 != &(args->ncmd).assign)) || (vars != (node *)0x0)) ||\n     (ap != (node *)0x0)) {\nswitchD_001505ce_caseD_0:\nLAB_00150605:\n    tokpushback = '\x01';\n    *ppnVar19 = (node *)0x0;\n    *ppnVar15 = (node *)0x0;\n    *ppnVar20 = (node *)0x0;\n    pnVar10 = (node *)stzalloc(0x20);\n    (pnVar10->ncmd).linno = iVar7;\n    (pnVar10->ncmd).args = args;\n    (pnVar10->ncmd).assign = vars;\n    (pnVar10->ncmd).redirect = ap;\n  }\n  else {\n    if ((!bVar3) && (iVar7 = readtoken(), iVar7 != 10)) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(10);\n    }\n    pcVar9 = (pnVar10->narg).text;\n    pcVar12 = endofname(pcVar9);\n    if ((*pcVar12 != '\0') ||\n       ((pbVar13 = find_builtin(pcVar9), pbVar13 != (builtincmd *)0x0 &&\n        ((*pbVar13->name & 1U) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_syntax("bad function name");\n    }\n    pnVar10->type = '\x0e';\n    checkkwd = '\a';\n    (pnVar10->ncmd).assign = (pnVar10->ncmd).args;\n    (pnVar10->ncmd).linno = g_parsefile->linno;\n    pnVar11 = parse_command();\n    (pnVar10->ncmd).args = pnVar11;\n  }" statement_identifier : (if_statement "if ((((args == (node *)0x0) || (ppnVar19 != &(args->ncmd).assign)) || (vars != (node *)0x0)) ||\n     (ap != (node *)0x0)) {\nswitchD_001505ce_caseD_0:\nLAB_00150605:\n    tokpushback = '\x01';\n    *ppnVar19 = (node *)0x0;\n    *ppnVar15 = (node *)0x0;\n    *ppnVar20 = (node *)0x0;\n    pnVar10 = (node *)stzalloc(0x20);\n    (pnVar10->ncmd).linno = iVar7;\n    (pnVar10->ncmd).args = args;\n    (pnVar10->ncmd).assign = vars;\n    (pnVar10->ncmd).redirect = ap;\n  }\n  else {\n    if ((!bVar3) && (iVar7 = readtoken(), iVar7 != 10)) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(10);\n    }\n    pcVar9 = (pnVar10->narg).text;\n    pcVar12 = endofname(pcVar9);\n    if ((*pcVar12 != '\0') ||\n       ((pbVar13 = find_builtin(pcVar9), pbVar13 != (builtincmd *)0x0 &&\n        ((*pbVar13->name & 1U) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_syntax("bad function name");\n    }\n    pnVar10->type = '\x0e';\n    checkkwd = '\a';\n    (pnVar10->ncmd).assign = (pnVar10->ncmd).args;\n    (pnVar10->ncmd).linno = g_parsefile->linno;\n    pnVar11 = parse_command();\n    (pnVar10->ncmd).args = pnVar11;\n  }" if (parenthesized_expression "((((args == (node *)0x0) || (ppnVar19 != &(args->ncmd).assign)) || (vars != (node *)0x0)) ||\n     (ap != (node *)0x0))" ( (binary_expression "(((args == (node *)0x0) || (ppnVar19 != &(args->ncmd).assign)) || (vars != (node *)0x0)) ||\n     (ap != (node *)0x0)" (parenthesized_expression "(((args == (node *)0x0) || (ppnVar19 != &(args->ncmd).assign)) || (vars != (node *)0x0))" ( (binary_expression "((args == (node *)0x0) || (ppnVar19 != &(args->ncmd).assign)) || (vars != (node *)0x0)" (parenthesized_expression "((args == (node *)0x0) || (ppnVar19 != &(args->ncmd).assign))" ( (binary_expression "(args == (node *)0x0) || (ppnVar19 != &(args->ncmd).assign)" (parenthesized_expression "(args == (node *)0x0)" ( (binary_expression "args == (node *)0x0" identifier == (cast_expression "(node *)0x0" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(ppnVar19 != &(args->ncmd).assign)" ( (binary_expression "ppnVar19 != &(args->ncmd).assign" identifier != (pointer_expression "&(args->ncmd).assign" & (field_expression "(args->ncmd).assign" (parenthesized_expression "(args->ncmd)" ( (field_expression "args->ncmd" identifier -> field_identifier) )) . field_identifier))) ))) )) || (parenthesized_expression "(vars != (node *)0x0)" ( (binary_expression "vars != (node *)0x0" identifier != (cast_expression "(node *)0x0" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "(ap != (node *)0x0)" ( (binary_expression "ap != (node *)0x0" identifier != (cast_expression "(node *)0x0" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\nswitchD_001505ce_caseD_0:\nLAB_00150605:\n    tokpushback = '\x01';\n    *ppnVar19 = (node *)0x0;\n    *ppnVar15 = (node *)0x0;\n    *ppnVar20 = (node *)0x0;\n    pnVar10 = (node *)stzalloc(0x20);\n    (pnVar10->ncmd).linno = iVar7;\n    (pnVar10->ncmd).args = args;\n    (pnVar10->ncmd).assign = vars;\n    (pnVar10->ncmd).redirect = ap;\n  }" { (labeled_statement "switchD_001505ce_caseD_0:\nLAB_00150605:\n    tokpushback = '\x01';" statement_identifier : (labeled_statement "LAB_00150605:\n    tokpushback = '\x01';" statement_identifier : (expression_statement "tokpushback = '\x01';" (assignment_expression "tokpushback = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;))) (expression_statement "*ppnVar19 = (node *)0x0;" (assignment_expression "*ppnVar19 = (node *)0x0" (pointer_expression "*ppnVar19" * identifier) = (cast_expression "(node *)0x0" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*ppnVar15 = (node *)0x0;" (assignment_expression "*ppnVar15 = (node *)0x0" (pointer_expression "*ppnVar15" * identifier) = (cast_expression "(node *)0x0" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*ppnVar20 = (node *)0x0;" (assignment_expression "*ppnVar20 = (node *)0x0" (pointer_expression "*ppnVar20" * identifier) = (cast_expression "(node *)0x0" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pnVar10 = (node *)stzalloc(0x20);" (assignment_expression "pnVar10 = (node *)stzalloc(0x20)" identifier = (cast_expression "(node *)stzalloc(0x20)" ( (type_descriptor "node *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "stzalloc(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "(pnVar10->ncmd).linno = iVar7;" (assignment_expression "(pnVar10->ncmd).linno = iVar7" (field_expression "(pnVar10->ncmd).linno" (parenthesized_expression "(pnVar10->ncmd)" ( (field_expression "pnVar10->ncmd" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pnVar10->ncmd).args = args;" (assignment_expression "(pnVar10->ncmd).args = args" (field_expression "(pnVar10->ncmd).args" (parenthesized_expression "(pnVar10->ncmd)" ( (field_expression "pnVar10->ncmd" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pnVar10->ncmd).assign = vars;" (assignment_expression "(pnVar10->ncmd).assign = vars" (field_expression "(pnVar10->ncmd).assign" (parenthesized_expression "(pnVar10->ncmd)" ( (field_expression "pnVar10->ncmd" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pnVar10->ncmd).redirect = ap;" (assignment_expression "(pnVar10->ncmd).redirect = ap" (field_expression "(pnVar10->ncmd).redirect" (parenthesized_expression "(pnVar10->ncmd)" ( (field_expression "pnVar10->ncmd" identifier -> field_identifier) )) . field_identifier) = identifier) ;) }) (else_clause "else {\n    if ((!bVar3) && (iVar7 = readtoken(), iVar7 != 10)) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(10);\n    }\n    pcVar9 = (pnVar10->narg).text;\n    pcVar12 = endofname(pcVar9);\n    if ((*pcVar12 != '\0') ||\n       ((pbVar13 = find_builtin(pcVar9), pbVar13 != (builtincmd *)0x0 &&\n        ((*pbVar13->name & 1U) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_syntax("bad function name");\n    }\n    pnVar10->type = '\x0e';\n    checkkwd = '\a';\n    (pnVar10->ncmd).assign = (pnVar10->ncmd).args;\n    (pnVar10->ncmd).linno = g_parsefile->linno;\n    pnVar11 = parse_command();\n    (pnVar10->ncmd).args = pnVar11;\n  }" else (compound_statement "{\n    if ((!bVar3) && (iVar7 = readtoken(), iVar7 != 10)) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(10);\n    }\n    pcVar9 = (pnVar10->narg).text;\n    pcVar12 = endofname(pcVar9);\n    if ((*pcVar12 != '\0') ||\n       ((pbVar13 = find_builtin(pcVar9), pbVar13 != (builtincmd *)0x0 &&\n        ((*pbVar13->name & 1U) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_syntax("bad function name");\n    }\n    pnVar10->type = '\x0e';\n    checkkwd = '\a';\n    (pnVar10->ncmd).assign = (pnVar10->ncmd).args;\n    (pnVar10->ncmd).linno = g_parsefile->linno;\n    pnVar11 = parse_command();\n    (pnVar10->ncmd).args = pnVar11;\n  }" { (if_statement "if ((!bVar3) && (iVar7 = readtoken(), iVar7 != 10)) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(10);\n    }" if (parenthesized_expression "((!bVar3) && (iVar7 = readtoken(), iVar7 != 10))" ( (binary_expression "(!bVar3) && (iVar7 = readtoken(), iVar7 != 10)" (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) )) && (parenthesized_expression "(iVar7 = readtoken(), iVar7 != 10)" ( (comma_expression "iVar7 = readtoken(), iVar7 != 10" (assignment_expression "iVar7 = readtoken()" identifier = (call_expression "readtoken()" identifier (argument_list "()" ( )))) , (binary_expression "iVar7 != 10" identifier != number_literal)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      raise_error_unexpected_syntax(10);\n    }" { comment (expression_statement "raise_error_unexpected_syntax(10);" (call_expression "raise_error_unexpected_syntax(10)" identifier (argument_list "(10)" ( number_literal ))) ;) })) (expression_statement "pcVar9 = (pnVar10->narg).text;" (assignment_expression "pcVar9 = (pnVar10->narg).text" identifier = (field_expression "(pnVar10->narg).text" (parenthesized_expression "(pnVar10->narg)" ( (field_expression "pnVar10->narg" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pcVar12 = endofname(pcVar9);" (assignment_expression "pcVar12 = endofname(pcVar9)" identifier = (call_expression "endofname(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier )))) ;) (if_statement "if ((*pcVar12 != '\0') ||\n       ((pbVar13 = find_builtin(pcVar9), pbVar13 != (builtincmd *)0x0 &&\n        ((*pbVar13->name & 1U) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n      raise_error_syntax("bad function name");\n    }" if (parenthesized_expression "((*pcVar12 != '\0') ||\n       ((pbVar13 = find_builtin(pcVar9), pbVar13 != (builtincmd *)0x0 &&\n        ((*pbVar13->name & 1U) != 0))))" ( (binary_expression "(*pcVar12 != '\0') ||\n       ((pbVar13 = find_builtin(pcVar9), pbVar13 != (builtincmd *)0x0 &&\n        ((*pbVar13->name & 1U) != 0)))" (parenthesized_expression "(*pcVar12 != '\0')" ( (binary_expression "*pcVar12 != '\0'" (pointer_expression "*pcVar12" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((pbVar13 = find_builtin(pcVar9), pbVar13 != (builtincmd *)0x0 &&\n        ((*pbVar13->name & 1U) != 0)))" ( (parenthesized_expression "(pbVar13 = find_builtin(pcVar9), pbVar13 != (builtincmd *)0x0 &&\n        ((*pbVar13->name & 1U) != 0))" ( (comma_expression "pbVar13 = find_builtin(pcVar9), pbVar13 != (builtincmd *)0x0 &&\n        ((*pbVar13->name & 1U) != 0)" (assignment_expression "pbVar13 = find_builtin(pcVar9)" identifier = (call_expression "find_builtin(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier )))) , (binary_expression "pbVar13 != (builtincmd *)0x0 &&\n        ((*pbVar13->name & 1U) != 0)" (binary_expression "pbVar13 != (builtincmd *)0x0" identifier != (cast_expression "(builtincmd *)0x0" ( (type_descriptor "builtincmd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "((*pbVar13->name & 1U) != 0)" ( (binary_expression "(*pbVar13->name & 1U) != 0" (parenthesized_expression "(*pbVar13->name & 1U)" ( (binary_expression "*pbVar13->name & 1U" (pointer_expression "*pbVar13->name" * (field_expression "pbVar13->name" identifier -> field_identifier)) & number_literal) )) != number_literal) )))) )) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      raise_error_syntax("bad function name");\n    }" { comment (expression_statement "raise_error_syntax("bad function name");" (call_expression "raise_error_syntax("bad function name")" identifier (argument_list "("bad function name")" ( (string_literal ""bad function name"" " string_content ") ))) ;) })) (expression_statement "pnVar10->type = '\x0e';" (assignment_expression "pnVar10->type = '\x0e'" (field_expression "pnVar10->type" identifier -> field_identifier) = (char_literal "'\x0e'" ' escape_sequence ')) ;) (expression_statement "checkkwd = '\a';" (assignment_expression "checkkwd = '\a'" identifier = (char_literal "'\a'" ' escape_sequence ')) ;) (expression_statement "(pnVar10->ncmd).assign = (pnVar10->ncmd).args;" (assignment_expression "(pnVar10->ncmd).assign = (pnVar10->ncmd).args" (field_expression "(pnVar10->ncmd).assign" (parenthesized_expression "(pnVar10->ncmd)" ( (field_expression "pnVar10->ncmd" identifier -> field_identifier) )) . field_identifier) = (field_expression "(pnVar10->ncmd).args" (parenthesized_expression "(pnVar10->ncmd)" ( (field_expression "pnVar10->ncmd" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(pnVar10->ncmd).linno = g_parsefile->linno;" (assignment_expression "(pnVar10->ncmd).linno = g_parsefile->linno" (field_expression "(pnVar10->ncmd).linno" (parenthesized_expression "(pnVar10->ncmd)" ( (field_expression "pnVar10->ncmd" identifier -> field_identifier) )) . field_identifier) = (field_expression "g_parsefile->linno" identifier -> field_identifier)) ;) (expression_statement "pnVar11 = parse_command();" (assignment_expression "pnVar11 = parse_command()" identifier = (call_expression "parse_command()" identifier (argument_list "()" ( )))) ;) (expression_statement "(pnVar10->ncmd).args = pnVar11;" (assignment_expression "(pnVar10->ncmd).args = pnVar11" (field_expression "(pnVar10->ncmd).args" (parenthesized_expression "(pnVar10->ncmd)" ( (field_expression "pnVar10->ncmd" identifier -> field_identifier) )) . field_identifier) = identifier) ;) })))) (goto_statement "goto LAB_0015082d;" goto statement_identifier ;) })))
(translation_unit "char * FUN_001500b6(void)\n\n{\n  undefined4 uVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  char *pcVar9;\n  undefined8 uVar10;\n  char *pcVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  byte *pbVar14;\n  undefined8 *puVar15;\n  long lVar16;\n  undefined1 **unaff_RBP;\n  long *plVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  char *unaff_R12;\n  long *plVar20;\n  undefined1 **ppuVar21;\n  long in_FS_OFFSET;\n  undefined1 uVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  byte bVar26;\n  long local_60;\n  long local_58;\n  long local_50;\n  undefined1 *local_48;\n  long local_40;\n  \n  bVar26 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_60 = 0;\n  uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n  uVar5 = FUN_0014ecf5();\n  switch(uVar5) {\n  default:\n    FUN_0014bd14(0xffffffff);\n  case 0x17:\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\b';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x19) {\n      FUN_0014bd14(0x19);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    pcVar11 = pcVar9;\n    do {\n      iVar6 = FUN_0014ecf5();\n      unaff_R12 = pcVar11;\n      if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }\n      pcVar11 = (char *)FUN_00149ab3(0x20);\n      *(char **)(unaff_R12 + 0x18) = pcVar11;\n      *pcVar11 = '\b';\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 8) = uVar10;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 0x10) = uVar10;\n    } while( true );\n  case 2:\n  case 3:\n  case 0x16:\n    DAT_001c65ad = 1;\n    local_58 = 0;\n    local_50 = 0;\n    local_48 = (undefined1 *)0x0;\n    uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n    bVar4 = false;\n    bVar2 = false;\n    bVar3 = true;\n    ppuVar21 = &local_48;\n    plVar17 = &local_50;\n    pcVar9 = (char *)0x0;\n    plVar20 = &local_58;\nLAB_001505a5:\n    DAT_001c65af = bVar3;\n    uVar8 = FUN_0014ecf5();\n    if (uVar8 < 0x17) {\n      uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];\n      uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;\n      switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }\n      goto LAB_001505a5;\n    }\nswitchD_001505ce_caseD_0:\nLAB_00150605:\n    DAT_001c65ad = 1;\n    *plVar20 = 0;\n    *plVar17 = 0;\n    *ppuVar21 = (undefined1 *)0x0;\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(long *)(pcVar9 + 0x10) = local_58;\n    *(long *)(pcVar9 + 8) = local_50;\n    *(undefined1 **)(pcVar9 + 0x18) = local_48;\n    break;\n  case 9:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\x04';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = 10;\n    goto LAB_00150178;\n  case 0xe:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\f';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 3) {\n      FUN_0014bd14(3);\n    }\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    *puVar12 = 0xf;\n    *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n    *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x18) {\n      FUN_0014bd14(0x18);\n    }\n    pcVar11 = pcVar9 + 0x10;\n    do {\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n      if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *(undefined1 **)pcVar11 = puVar12;\n      *puVar12 = 0xd;\n      puVar15 = (undefined8 *)(puVar12 + 0x10);\n      while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }\n      if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }\n      uVar10 = FUN_0014eeae(2);\n      *(undefined8 *)(puVar12 + 0x18) = uVar10;\n      pcVar11 = puVar12 + 8;\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n    } while (iVar6 == 0xb);\n    FUN_0014bd14(0xb);\nLAB_001504a6:\n    pcVar11[0] = '\0';\n    pcVar11[1] = '\0';\n    pcVar11[2] = '\0';\n    pcVar11[3] = '\0';\n    pcVar11[4] = '\0';\n    pcVar11[5] = '\0';\n    pcVar11[6] = '\0';\n    pcVar11[7] = '\0';\nLAB_001504ae:\n    DAT_001c65af = 3;\n    plVar17 = &local_60;\n    while (iVar6 = FUN_0014ecf5(), iVar6 == 2) {\n      *plVar17 = (long)DAT_001c6488;\n      plVar17 = (long *)(DAT_001c6488 + 8);\n      FUN_0014edac();\n    }\n    DAT_001c65ad = 1;\n    *plVar17 = 0;\n    lVar16 = local_60;\n    if (local_60 != 0) {\n      if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }\n      *(long *)(pcVar9 + 0x10) = lVar16;\n    }\n    break;\n  case 0x15:\n    iVar6 = FUN_0014ecf5();\n    if (((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')) {\n      FUN_001487a2("bad for loop variable");\n    }\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\v';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(byte **)(pcVar9 + 0x18) = DAT_001c6498;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0x18) goto LAB_00150350;\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *puVar12 = 0xf;\n    *(undefined **)(puVar12 + 0x10) = &DAT_001bc672;\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    if (DAT_001c65ab != '\x04') {\n      DAT_001c65ad = 1;\n    }\nLAB_001502d6:\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0xf) {\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n      iVar6 = 0x10;\n      goto LAB_00150178;\n    }\n    FUN_0014bd14(0xf);\n    do {\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *puVar12 = 0xf;\n      *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n      *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n      *unaff_RBP = puVar12;\n      unaff_RBP = (undefined1 **)(puVar12 + 8);\n      while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }\n    } while( true );\n  case 0x1a:\n  case 0x1b:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = (DAT_001c65ab != '\x1b') + '\t';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0xf) {\n      FUN_0014bd14(0xf);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    iVar6 = 0x10;\n    goto LAB_00150178;\n  case 0x1c:\n    pcVar9 = (char *)FUN_0014eeae(0);\n    iVar6 = 0x1d;\n    goto LAB_00150178;\n  }\nLAB_0015082d:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return pcVar9;\n}\n\n" (function_definition "char * FUN_001500b6(void)\n\n{\n  undefined4 uVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  char *pcVar9;\n  undefined8 uVar10;\n  char *pcVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  byte *pbVar14;\n  undefined8 *puVar15;\n  long lVar16;\n  undefined1 **unaff_RBP;\n  long *plVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  char *unaff_R12;\n  long *plVar20;\n  undefined1 **ppuVar21;\n  long in_FS_OFFSET;\n  undefined1 uVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  byte bVar26;\n  long local_60;\n  long local_58;\n  long local_50;\n  undefined1 *local_48;\n  long local_40;\n  \n  bVar26 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_60 = 0;\n  uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n  uVar5 = FUN_0014ecf5();\n  switch(uVar5) {\n  default:\n    FUN_0014bd14(0xffffffff);\n  case 0x17:\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\b';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x19) {\n      FUN_0014bd14(0x19);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    pcVar11 = pcVar9;\n    do {\n      iVar6 = FUN_0014ecf5();\n      unaff_R12 = pcVar11;\n      if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }\n      pcVar11 = (char *)FUN_00149ab3(0x20);\n      *(char **)(unaff_R12 + 0x18) = pcVar11;\n      *pcVar11 = '\b';\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 8) = uVar10;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 0x10) = uVar10;\n    } while( true );\n  case 2:\n  case 3:\n  case 0x16:\n    DAT_001c65ad = 1;\n    local_58 = 0;\n    local_50 = 0;\n    local_48 = (undefined1 *)0x0;\n    uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n    bVar4 = false;\n    bVar2 = false;\n    bVar3 = true;\n    ppuVar21 = &local_48;\n    plVar17 = &local_50;\n    pcVar9 = (char *)0x0;\n    plVar20 = &local_58;\nLAB_001505a5:\n    DAT_001c65af = bVar3;\n    uVar8 = FUN_0014ecf5();\n    if (uVar8 < 0x17) {\n      uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];\n      uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;\n      switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }\n      goto LAB_001505a5;\n    }\nswitchD_001505ce_caseD_0:\nLAB_00150605:\n    DAT_001c65ad = 1;\n    *plVar20 = 0;\n    *plVar17 = 0;\n    *ppuVar21 = (undefined1 *)0x0;\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(long *)(pcVar9 + 0x10) = local_58;\n    *(long *)(pcVar9 + 8) = local_50;\n    *(undefined1 **)(pcVar9 + 0x18) = local_48;\n    break;\n  case 9:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\x04';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = 10;\n    goto LAB_00150178;\n  case 0xe:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\f';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 3) {\n      FUN_0014bd14(3);\n    }\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    *puVar12 = 0xf;\n    *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n    *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x18) {\n      FUN_0014bd14(0x18);\n    }\n    pcVar11 = pcVar9 + 0x10;\n    do {\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n      if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *(undefined1 **)pcVar11 = puVar12;\n      *puVar12 = 0xd;\n      puVar15 = (undefined8 *)(puVar12 + 0x10);\n      while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }\n      if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }\n      uVar10 = FUN_0014eeae(2);\n      *(undefined8 *)(puVar12 + 0x18) = uVar10;\n      pcVar11 = puVar12 + 8;\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n    } while (iVar6 == 0xb);\n    FUN_0014bd14(0xb);\nLAB_001504a6:\n    pcVar11[0] = '\0';\n    pcVar11[1] = '\0';\n    pcVar11[2] = '\0';\n    pcVar11[3] = '\0';\n    pcVar11[4] = '\0';\n    pcVar11[5] = '\0';\n    pcVar11[6] = '\0';\n    pcVar11[7] = '\0';\nLAB_001504ae:\n    DAT_001c65af = 3;\n    plVar17 = &local_60;\n    while (iVar6 = FUN_0014ecf5(), iVar6 == 2) {\n      *plVar17 = (long)DAT_001c6488;\n      plVar17 = (long *)(DAT_001c6488 + 8);\n      FUN_0014edac();\n    }\n    DAT_001c65ad = 1;\n    *plVar17 = 0;\n    lVar16 = local_60;\n    if (local_60 != 0) {\n      if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }\n      *(long *)(pcVar9 + 0x10) = lVar16;\n    }\n    break;\n  case 0x15:\n    iVar6 = FUN_0014ecf5();\n    if (((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')) {\n      FUN_001487a2("bad for loop variable");\n    }\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\v';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(byte **)(pcVar9 + 0x18) = DAT_001c6498;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0x18) goto LAB_00150350;\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *puVar12 = 0xf;\n    *(undefined **)(puVar12 + 0x10) = &DAT_001bc672;\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    if (DAT_001c65ab != '\x04') {\n      DAT_001c65ad = 1;\n    }\nLAB_001502d6:\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0xf) {\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n      iVar6 = 0x10;\n      goto LAB_00150178;\n    }\n    FUN_0014bd14(0xf);\n    do {\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *puVar12 = 0xf;\n      *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n      *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n      *unaff_RBP = puVar12;\n      unaff_RBP = (undefined1 **)(puVar12 + 8);\n      while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }\n    } while( true );\n  case 0x1a:\n  case 0x1b:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = (DAT_001c65ab != '\x1b') + '\t';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0xf) {\n      FUN_0014bd14(0xf);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    iVar6 = 0x10;\n    goto LAB_00150178;\n  case 0x1c:\n    pcVar9 = (char *)FUN_0014eeae(0);\n    iVar6 = 0x1d;\n    goto LAB_00150178;\n  }\nLAB_0015082d:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return pcVar9;\n}" primitive_type (pointer_declarator "* FUN_001500b6(void)" * (function_declarator "FUN_001500b6(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n  undefined4 uVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  char *pcVar9;\n  undefined8 uVar10;\n  char *pcVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  byte *pbVar14;\n  undefined8 *puVar15;\n  long lVar16;\n  undefined1 **unaff_RBP;\n  long *plVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  char *unaff_R12;\n  long *plVar20;\n  undefined1 **ppuVar21;\n  long in_FS_OFFSET;\n  undefined1 uVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  byte bVar26;\n  long local_60;\n  long local_58;\n  long local_50;\n  undefined1 *local_48;\n  long local_40;\n  \n  bVar26 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_60 = 0;\n  uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n  uVar5 = FUN_0014ecf5();\n  switch(uVar5) {\n  default:\n    FUN_0014bd14(0xffffffff);\n  case 0x17:\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\b';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x19) {\n      FUN_0014bd14(0x19);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    pcVar11 = pcVar9;\n    do {\n      iVar6 = FUN_0014ecf5();\n      unaff_R12 = pcVar11;\n      if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }\n      pcVar11 = (char *)FUN_00149ab3(0x20);\n      *(char **)(unaff_R12 + 0x18) = pcVar11;\n      *pcVar11 = '\b';\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 8) = uVar10;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 0x10) = uVar10;\n    } while( true );\n  case 2:\n  case 3:\n  case 0x16:\n    DAT_001c65ad = 1;\n    local_58 = 0;\n    local_50 = 0;\n    local_48 = (undefined1 *)0x0;\n    uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n    bVar4 = false;\n    bVar2 = false;\n    bVar3 = true;\n    ppuVar21 = &local_48;\n    plVar17 = &local_50;\n    pcVar9 = (char *)0x0;\n    plVar20 = &local_58;\nLAB_001505a5:\n    DAT_001c65af = bVar3;\n    uVar8 = FUN_0014ecf5();\n    if (uVar8 < 0x17) {\n      uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];\n      uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;\n      switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }\n      goto LAB_001505a5;\n    }\nswitchD_001505ce_caseD_0:\nLAB_00150605:\n    DAT_001c65ad = 1;\n    *plVar20 = 0;\n    *plVar17 = 0;\n    *ppuVar21 = (undefined1 *)0x0;\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(long *)(pcVar9 + 0x10) = local_58;\n    *(long *)(pcVar9 + 8) = local_50;\n    *(undefined1 **)(pcVar9 + 0x18) = local_48;\n    break;\n  case 9:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\x04';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = 10;\n    goto LAB_00150178;\n  case 0xe:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\f';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 3) {\n      FUN_0014bd14(3);\n    }\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    *puVar12 = 0xf;\n    *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n    *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x18) {\n      FUN_0014bd14(0x18);\n    }\n    pcVar11 = pcVar9 + 0x10;\n    do {\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n      if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *(undefined1 **)pcVar11 = puVar12;\n      *puVar12 = 0xd;\n      puVar15 = (undefined8 *)(puVar12 + 0x10);\n      while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }\n      if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }\n      uVar10 = FUN_0014eeae(2);\n      *(undefined8 *)(puVar12 + 0x18) = uVar10;\n      pcVar11 = puVar12 + 8;\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n    } while (iVar6 == 0xb);\n    FUN_0014bd14(0xb);\nLAB_001504a6:\n    pcVar11[0] = '\0';\n    pcVar11[1] = '\0';\n    pcVar11[2] = '\0';\n    pcVar11[3] = '\0';\n    pcVar11[4] = '\0';\n    pcVar11[5] = '\0';\n    pcVar11[6] = '\0';\n    pcVar11[7] = '\0';\nLAB_001504ae:\n    DAT_001c65af = 3;\n    plVar17 = &local_60;\n    while (iVar6 = FUN_0014ecf5(), iVar6 == 2) {\n      *plVar17 = (long)DAT_001c6488;\n      plVar17 = (long *)(DAT_001c6488 + 8);\n      FUN_0014edac();\n    }\n    DAT_001c65ad = 1;\n    *plVar17 = 0;\n    lVar16 = local_60;\n    if (local_60 != 0) {\n      if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }\n      *(long *)(pcVar9 + 0x10) = lVar16;\n    }\n    break;\n  case 0x15:\n    iVar6 = FUN_0014ecf5();\n    if (((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')) {\n      FUN_001487a2("bad for loop variable");\n    }\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\v';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(byte **)(pcVar9 + 0x18) = DAT_001c6498;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0x18) goto LAB_00150350;\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *puVar12 = 0xf;\n    *(undefined **)(puVar12 + 0x10) = &DAT_001bc672;\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    if (DAT_001c65ab != '\x04') {\n      DAT_001c65ad = 1;\n    }\nLAB_001502d6:\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0xf) {\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n      iVar6 = 0x10;\n      goto LAB_00150178;\n    }\n    FUN_0014bd14(0xf);\n    do {\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *puVar12 = 0xf;\n      *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n      *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n      *unaff_RBP = puVar12;\n      unaff_RBP = (undefined1 **)(puVar12 + 8);\n      while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }\n    } while( true );\n  case 0x1a:\n  case 0x1b:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = (DAT_001c65ab != '\x1b') + '\t';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0xf) {\n      FUN_0014bd14(0xf);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    iVar6 = 0x10;\n    goto LAB_00150178;\n  case 0x1c:\n    pcVar9 = (char *)FUN_0014eeae(0);\n    iVar6 = 0x1d;\n    goto LAB_00150178;\n  }\nLAB_0015082d:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return pcVar9;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined8 uVar10;" type_identifier identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined1 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined1 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "undefined8 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 **unaff_RBP;" type_identifier (pointer_declarator "**unaff_RBP" * (pointer_declarator "*unaff_RBP" * identifier)) ;) (declaration "long *plVar17;" (sized_type_specifier "long" long) (pointer_declarator "*plVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "char *unaff_R12;" primitive_type (pointer_declarator "*unaff_R12" * identifier) ;) (declaration "long *plVar20;" (sized_type_specifier "long" long) (pointer_declarator "*plVar20" * identifier) ;) (declaration "undefined1 **ppuVar21;" type_identifier (pointer_declarator "**ppuVar21" * (pointer_declarator "*ppuVar21" * identifier)) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 uVar22;" type_identifier identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "undefined1 uVar24;" type_identifier identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "byte bVar26;" type_identifier identifier ;) (declaration "long local_60;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_58;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_50;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar26 = 0;" (assignment_expression "bVar26 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);" (assignment_expression "uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8)" identifier = (pointer_expression "*(undefined4 *)(PTR_DAT_001c6260 + 8)" * (cast_expression "(undefined4 *)(PTR_DAT_001c6260 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_001c6260 + 8)" ( (binary_expression "PTR_DAT_001c6260 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = FUN_0014ecf5();" (assignment_expression "uVar5 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (switch_statement "switch(uVar5) {\n  default:\n    FUN_0014bd14(0xffffffff);\n  case 0x17:\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\b';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x19) {\n      FUN_0014bd14(0x19);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    pcVar11 = pcVar9;\n    do {\n      iVar6 = FUN_0014ecf5();\n      unaff_R12 = pcVar11;\n      if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }\n      pcVar11 = (char *)FUN_00149ab3(0x20);\n      *(char **)(unaff_R12 + 0x18) = pcVar11;\n      *pcVar11 = '\b';\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 8) = uVar10;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 0x10) = uVar10;\n    } while( true );\n  case 2:\n  case 3:\n  case 0x16:\n    DAT_001c65ad = 1;\n    local_58 = 0;\n    local_50 = 0;\n    local_48 = (undefined1 *)0x0;\n    uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n    bVar4 = false;\n    bVar2 = false;\n    bVar3 = true;\n    ppuVar21 = &local_48;\n    plVar17 = &local_50;\n    pcVar9 = (char *)0x0;\n    plVar20 = &local_58;\nLAB_001505a5:\n    DAT_001c65af = bVar3;\n    uVar8 = FUN_0014ecf5();\n    if (uVar8 < 0x17) {\n      uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];\n      uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;\n      switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }\n      goto LAB_001505a5;\n    }\nswitchD_001505ce_caseD_0:\nLAB_00150605:\n    DAT_001c65ad = 1;\n    *plVar20 = 0;\n    *plVar17 = 0;\n    *ppuVar21 = (undefined1 *)0x0;\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(long *)(pcVar9 + 0x10) = local_58;\n    *(long *)(pcVar9 + 8) = local_50;\n    *(undefined1 **)(pcVar9 + 0x18) = local_48;\n    break;\n  case 9:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\x04';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = 10;\n    goto LAB_00150178;\n  case 0xe:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\f';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 3) {\n      FUN_0014bd14(3);\n    }\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    *puVar12 = 0xf;\n    *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n    *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x18) {\n      FUN_0014bd14(0x18);\n    }\n    pcVar11 = pcVar9 + 0x10;\n    do {\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n      if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *(undefined1 **)pcVar11 = puVar12;\n      *puVar12 = 0xd;\n      puVar15 = (undefined8 *)(puVar12 + 0x10);\n      while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }\n      if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }\n      uVar10 = FUN_0014eeae(2);\n      *(undefined8 *)(puVar12 + 0x18) = uVar10;\n      pcVar11 = puVar12 + 8;\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n    } while (iVar6 == 0xb);\n    FUN_0014bd14(0xb);\nLAB_001504a6:\n    pcVar11[0] = '\0';\n    pcVar11[1] = '\0';\n    pcVar11[2] = '\0';\n    pcVar11[3] = '\0';\n    pcVar11[4] = '\0';\n    pcVar11[5] = '\0';\n    pcVar11[6] = '\0';\n    pcVar11[7] = '\0';\nLAB_001504ae:\n    DAT_001c65af = 3;\n    plVar17 = &local_60;\n    while (iVar6 = FUN_0014ecf5(), iVar6 == 2) {\n      *plVar17 = (long)DAT_001c6488;\n      plVar17 = (long *)(DAT_001c6488 + 8);\n      FUN_0014edac();\n    }\n    DAT_001c65ad = 1;\n    *plVar17 = 0;\n    lVar16 = local_60;\n    if (local_60 != 0) {\n      if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }\n      *(long *)(pcVar9 + 0x10) = lVar16;\n    }\n    break;\n  case 0x15:\n    iVar6 = FUN_0014ecf5();\n    if (((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')) {\n      FUN_001487a2("bad for loop variable");\n    }\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\v';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(byte **)(pcVar9 + 0x18) = DAT_001c6498;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0x18) goto LAB_00150350;\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *puVar12 = 0xf;\n    *(undefined **)(puVar12 + 0x10) = &DAT_001bc672;\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    if (DAT_001c65ab != '\x04') {\n      DAT_001c65ad = 1;\n    }\nLAB_001502d6:\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0xf) {\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n      iVar6 = 0x10;\n      goto LAB_00150178;\n    }\n    FUN_0014bd14(0xf);\n    do {\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *puVar12 = 0xf;\n      *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n      *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n      *unaff_RBP = puVar12;\n      unaff_RBP = (undefined1 **)(puVar12 + 8);\n      while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }\n    } while( true );\n  case 0x1a:\n  case 0x1b:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = (DAT_001c65ab != '\x1b') + '\t';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0xf) {\n      FUN_0014bd14(0xf);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    iVar6 = 0x10;\n    goto LAB_00150178;\n  case 0x1c:\n    pcVar9 = (char *)FUN_0014eeae(0);\n    iVar6 = 0x1d;\n    goto LAB_00150178;\n  }" switch (parenthesized_expression "(uVar5)" ( identifier )) (compound_statement "{\n  default:\n    FUN_0014bd14(0xffffffff);\n  case 0x17:\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\b';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x19) {\n      FUN_0014bd14(0x19);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    pcVar11 = pcVar9;\n    do {\n      iVar6 = FUN_0014ecf5();\n      unaff_R12 = pcVar11;\n      if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }\n      pcVar11 = (char *)FUN_00149ab3(0x20);\n      *(char **)(unaff_R12 + 0x18) = pcVar11;\n      *pcVar11 = '\b';\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 8) = uVar10;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 0x10) = uVar10;\n    } while( true );\n  case 2:\n  case 3:\n  case 0x16:\n    DAT_001c65ad = 1;\n    local_58 = 0;\n    local_50 = 0;\n    local_48 = (undefined1 *)0x0;\n    uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n    bVar4 = false;\n    bVar2 = false;\n    bVar3 = true;\n    ppuVar21 = &local_48;\n    plVar17 = &local_50;\n    pcVar9 = (char *)0x0;\n    plVar20 = &local_58;\nLAB_001505a5:\n    DAT_001c65af = bVar3;\n    uVar8 = FUN_0014ecf5();\n    if (uVar8 < 0x17) {\n      uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];\n      uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;\n      switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }\n      goto LAB_001505a5;\n    }\nswitchD_001505ce_caseD_0:\nLAB_00150605:\n    DAT_001c65ad = 1;\n    *plVar20 = 0;\n    *plVar17 = 0;\n    *ppuVar21 = (undefined1 *)0x0;\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(long *)(pcVar9 + 0x10) = local_58;\n    *(long *)(pcVar9 + 8) = local_50;\n    *(undefined1 **)(pcVar9 + 0x18) = local_48;\n    break;\n  case 9:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\x04';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = 10;\n    goto LAB_00150178;\n  case 0xe:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\f';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 3) {\n      FUN_0014bd14(3);\n    }\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    *puVar12 = 0xf;\n    *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n    *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x18) {\n      FUN_0014bd14(0x18);\n    }\n    pcVar11 = pcVar9 + 0x10;\n    do {\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n      if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *(undefined1 **)pcVar11 = puVar12;\n      *puVar12 = 0xd;\n      puVar15 = (undefined8 *)(puVar12 + 0x10);\n      while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }\n      if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }\n      uVar10 = FUN_0014eeae(2);\n      *(undefined8 *)(puVar12 + 0x18) = uVar10;\n      pcVar11 = puVar12 + 8;\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n    } while (iVar6 == 0xb);\n    FUN_0014bd14(0xb);\nLAB_001504a6:\n    pcVar11[0] = '\0';\n    pcVar11[1] = '\0';\n    pcVar11[2] = '\0';\n    pcVar11[3] = '\0';\n    pcVar11[4] = '\0';\n    pcVar11[5] = '\0';\n    pcVar11[6] = '\0';\n    pcVar11[7] = '\0';\nLAB_001504ae:\n    DAT_001c65af = 3;\n    plVar17 = &local_60;\n    while (iVar6 = FUN_0014ecf5(), iVar6 == 2) {\n      *plVar17 = (long)DAT_001c6488;\n      plVar17 = (long *)(DAT_001c6488 + 8);\n      FUN_0014edac();\n    }\n    DAT_001c65ad = 1;\n    *plVar17 = 0;\n    lVar16 = local_60;\n    if (local_60 != 0) {\n      if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }\n      *(long *)(pcVar9 + 0x10) = lVar16;\n    }\n    break;\n  case 0x15:\n    iVar6 = FUN_0014ecf5();\n    if (((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')) {\n      FUN_001487a2("bad for loop variable");\n    }\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\v';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(byte **)(pcVar9 + 0x18) = DAT_001c6498;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0x18) goto LAB_00150350;\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *puVar12 = 0xf;\n    *(undefined **)(puVar12 + 0x10) = &DAT_001bc672;\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    if (DAT_001c65ab != '\x04') {\n      DAT_001c65ad = 1;\n    }\nLAB_001502d6:\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0xf) {\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n      iVar6 = 0x10;\n      goto LAB_00150178;\n    }\n    FUN_0014bd14(0xf);\n    do {\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *puVar12 = 0xf;\n      *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n      *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n      *unaff_RBP = puVar12;\n      unaff_RBP = (undefined1 **)(puVar12 + 8);\n      while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }\n    } while( true );\n  case 0x1a:\n  case 0x1b:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = (DAT_001c65ab != '\x1b') + '\t';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0xf) {\n      FUN_0014bd14(0xf);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    iVar6 = 0x10;\n    goto LAB_00150178;\n  case 0x1c:\n    pcVar9 = (char *)FUN_0014eeae(0);\n    iVar6 = 0x1d;\n    goto LAB_00150178;\n  }" { (case_statement "default:\n    FUN_0014bd14(0xffffffff);" default : (expression_statement "FUN_0014bd14(0xffffffff);" (call_expression "FUN_0014bd14(0xffffffff)" identifier (argument_list "(0xffffffff)" ( number_literal ))) ;)) (case_statement "case 0x17:\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\b';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x19) {\n      FUN_0014bd14(0x19);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    pcVar11 = pcVar9;\n    do {\n      iVar6 = FUN_0014ecf5();\n      unaff_R12 = pcVar11;\n      if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }\n      pcVar11 = (char *)FUN_00149ab3(0x20);\n      *(char **)(unaff_R12 + 0x18) = pcVar11;\n      *pcVar11 = '\b';\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 8) = uVar10;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 0x10) = uVar10;\n    } while( true );" case number_literal : (expression_statement "pcVar9 = (char *)FUN_00149ab3(0x20);" (assignment_expression "pcVar9 = (char *)FUN_00149ab3(0x20)" identifier = (cast_expression "(char *)FUN_00149ab3(0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*pcVar9 = '\b';" (assignment_expression "*pcVar9 = '\b'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'\b'" ' escape_sequence ')) ;) (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" identifier = (call_expression "FUN_0014eeae(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined8 *)(pcVar9 + 8) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar9 + 8) = uVar10" (pointer_expression "*(undefined8 *)(pcVar9 + 8)" * (cast_expression "(undefined8 *)(pcVar9 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 8)" ( (binary_expression "pcVar9 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 != 0x19) {\n      FUN_0014bd14(0x19);\n    }" if (parenthesized_expression "(iVar6 != 0x19)" ( (binary_expression "iVar6 != 0x19" identifier != number_literal) )) (compound_statement "{\n      FUN_0014bd14(0x19);\n    }" { (expression_statement "FUN_0014bd14(0x19);" (call_expression "FUN_0014bd14(0x19)" identifier (argument_list "(0x19)" ( number_literal ))) ;) })) (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" identifier = (call_expression "FUN_0014eeae(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined8 *)(pcVar9 + 0x10) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar9 + 0x10) = uVar10" (pointer_expression "*(undefined8 *)(pcVar9 + 0x10)" * (cast_expression "(undefined8 *)(pcVar9 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x10)" ( (binary_expression "pcVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar11 = pcVar9;" (assignment_expression "pcVar11 = pcVar9" identifier = identifier) ;) (do_statement "do {\n      iVar6 = FUN_0014ecf5();\n      unaff_R12 = pcVar11;\n      if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }\n      pcVar11 = (char *)FUN_00149ab3(0x20);\n      *(char **)(unaff_R12 + 0x18) = pcVar11;\n      *pcVar11 = '\b';\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 8) = uVar10;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 0x10) = uVar10;\n    } while( true );" do (compound_statement "{\n      iVar6 = FUN_0014ecf5();\n      unaff_R12 = pcVar11;\n      if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }\n      pcVar11 = (char *)FUN_00149ab3(0x20);\n      *(char **)(unaff_R12 + 0x18) = pcVar11;\n      *pcVar11 = '\b';\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 8) = uVar10;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 0x10) = uVar10;\n    }" { (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (expression_statement "unaff_R12 = pcVar11;" (assignment_expression "unaff_R12 = pcVar11" identifier = identifier) ;) (if_statement "if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }" if (parenthesized_expression "(iVar6 != 0x11)" ( (binary_expression "iVar6 != 0x11" identifier != number_literal) )) (compound_statement "{\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }" { (if_statement "if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }" if (parenthesized_expression "(DAT_001c65ab == '\x12')" ( (binary_expression "DAT_001c65ab == '\x12'" identifier == (char_literal "'\x12'" ' escape_sequence ')) )) (compound_statement "{\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }" { (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" identifier = (call_expression "FUN_0014eeae(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined8 *)(pcVar11 + 0x18) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar11 + 0x18) = uVar10" (pointer_expression "*(undefined8 *)(pcVar11 + 0x18)" * (cast_expression "(undefined8 *)(pcVar11 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x18)" ( (binary_expression "pcVar11 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = 0x14;" (assignment_expression "iVar6 = 0x14" identifier = number_literal) ;) }) (else_clause "else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }" else (compound_statement "{\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }" { (expression_statement "pcVar11[0x18] = '\0';" (assignment_expression "pcVar11[0x18] = '\0'" (subscript_expression "pcVar11[0x18]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[0x19] = '\0';" (assignment_expression "pcVar11[0x19] = '\0'" (subscript_expression "pcVar11[0x19]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[0x1a] = '\0';" (assignment_expression "pcVar11[0x1a] = '\0'" (subscript_expression "pcVar11[0x1a]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[0x1b] = '\0';" (assignment_expression "pcVar11[0x1b] = '\0'" (subscript_expression "pcVar11[0x1b]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[0x1c] = '\0';" (assignment_expression "pcVar11[0x1c] = '\0'" (subscript_expression "pcVar11[0x1c]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[0x1d] = '\0';" (assignment_expression "pcVar11[0x1d] = '\0'" (subscript_expression "pcVar11[0x1d]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[0x1e] = '\0';" (assignment_expression "pcVar11[0x1e] = '\0'" (subscript_expression "pcVar11[0x1e]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[0x1f] = '\0';" (assignment_expression "pcVar11[0x1f] = '\0'" (subscript_expression "pcVar11[0x1f]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "DAT_001c65ad = 1;" (assignment_expression "DAT_001c65ad = 1" identifier = number_literal) ;) (expression_statement "iVar6 = 0x14;" (assignment_expression "iVar6 = 0x14" identifier = number_literal) ;) }))) (labeled_statement "LAB_00150178:\n        iVar7 = FUN_0014ecf5();" statement_identifier : (expression_statement "iVar7 = FUN_0014ecf5();" (assignment_expression "iVar7 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar7 == iVar6) goto LAB_001504ae;" if (parenthesized_expression "(iVar7 == iVar6)" ( (binary_expression "iVar7 == iVar6" identifier == identifier) )) (goto_statement "goto LAB_001504ae;" goto statement_identifier ;)) (expression_statement "FUN_0014bd14(iVar6);" (call_expression "FUN_0014bd14(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) })) (expression_statement "pcVar11 = (char *)FUN_00149ab3(0x20);" (assignment_expression "pcVar11 = (char *)FUN_00149ab3(0x20)" identifier = (cast_expression "(char *)FUN_00149ab3(0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*(char **)(unaff_R12 + 0x18) = pcVar11;" (assignment_expression "*(char **)(unaff_R12 + 0x18) = pcVar11" (pointer_expression "*(char **)(unaff_R12 + 0x18)" * (cast_expression "(char **)(unaff_R12 + 0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_R12 + 0x18)" ( (binary_expression "unaff_R12 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*pcVar11 = '\b';" (assignment_expression "*pcVar11 = '\b'" (pointer_expression "*pcVar11" * identifier) = (char_literal "'\b'" ' escape_sequence ')) ;) (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" identifier = (call_expression "FUN_0014eeae(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined8 *)(pcVar11 + 8) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar11 + 8) = uVar10" (pointer_expression "*(undefined8 *)(pcVar11 + 8)" * (cast_expression "(undefined8 *)(pcVar11 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 8)" ( (binary_expression "pcVar11 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }" if (parenthesized_expression "(iVar6 != 0x19)" ( (binary_expression "iVar6 != 0x19" identifier != number_literal) )) (compound_statement "{\n        FUN_0014bd14(0x19);\n      }" { (expression_statement "FUN_0014bd14(0x19);" (call_expression "FUN_0014bd14(0x19)" identifier (argument_list "(0x19)" ( number_literal ))) ;) })) (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" identifier = (call_expression "FUN_0014eeae(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined8 *)(pcVar11 + 0x10) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar11 + 0x10) = uVar10" (pointer_expression "*(undefined8 *)(pcVar11 + 0x10)" * (cast_expression "(undefined8 *)(pcVar11 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x10)" ( (binary_expression "pcVar11 + 0x10" identifier + number_literal) )))) = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:" case number_literal :) (case_statement "case 0x16:\n    DAT_001c65ad = 1;\n    local_58 = 0;\n    local_50 = 0;\n    local_48 = (undefined1 *)0x0;\n    uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n    bVar4 = false;\n    bVar2 = false;\n    bVar3 = true;\n    ppuVar21 = &local_48;\n    plVar17 = &local_50;\n    pcVar9 = (char *)0x0;\n    plVar20 = &local_58;\nLAB_001505a5:\n    DAT_001c65af = bVar3;\n    uVar8 = FUN_0014ecf5();\n    if (uVar8 < 0x17) {\n      uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];\n      uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;\n      switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }\n      goto LAB_001505a5;\n    }\nswitchD_001505ce_caseD_0:\nLAB_00150605:\n    DAT_001c65ad = 1;\n    *plVar20 = 0;\n    *plVar17 = 0;\n    *ppuVar21 = (undefined1 *)0x0;\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(long *)(pcVar9 + 0x10) = local_58;\n    *(long *)(pcVar9 + 8) = local_50;\n    *(undefined1 **)(pcVar9 + 0x18) = local_48;\n    break;" case number_literal : (expression_statement "DAT_001c65ad = 1;" (assignment_expression "DAT_001c65ad = 1" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_48 = (undefined1 *)0x0;" (assignment_expression "local_48 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);" (assignment_expression "uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8)" identifier = (pointer_expression "*(undefined4 *)(PTR_DAT_001c6260 + 8)" * (cast_expression "(undefined4 *)(PTR_DAT_001c6260 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_001c6260 + 8)" ( (binary_expression "PTR_DAT_001c6260 + 8" identifier + number_literal) ))))) ;) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (expression_statement "ppuVar21 = &local_48;" (assignment_expression "ppuVar21 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (expression_statement "plVar17 = &local_50;" (assignment_expression "plVar17 = &local_50" identifier = (pointer_expression "&local_50" & identifier)) ;) (expression_statement "pcVar9 = (char *)0x0;" (assignment_expression "pcVar9 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar20 = &local_58;" (assignment_expression "plVar20 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) (labeled_statement "LAB_001505a5:\n    DAT_001c65af = bVar3;" statement_identifier : (expression_statement "DAT_001c65af = bVar3;" (assignment_expression "DAT_001c65af = bVar3" identifier = identifier) ;)) (expression_statement "uVar8 = FUN_0014ecf5();" (assignment_expression "uVar8 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (if_statement "if (uVar8 < 0x17) {\n      uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];\n      uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;\n      switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }\n      goto LAB_001505a5;\n    }" if (parenthesized_expression "(uVar8 < 0x17)" ( (binary_expression "uVar8 < 0x17" identifier < number_literal) )) (compound_statement "{\n      uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];\n      uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;\n      switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }\n      goto LAB_001505a5;\n    }" { (expression_statement "uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];" (assignment_expression "uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8]" identifier = (binary_expression "0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8]" number_literal < (subscript_expression "(&switchD_001505ce::switchdataD_001afc54)[uVar8]" (parenthesized_expression "(&switchD_001505ce::switchdataD_001afc54)" ( (ERROR "&switchD_001505ce::" (pointer_expression "&switchD_001505ce" & identifier) : :) identifier )) [ identifier ]))) ;) (expression_statement "uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;" (assignment_expression "uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac" identifier = (binary_expression "(&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac" (subscript_expression "(&switchD_001505ce::switchdataD_001afc54)[uVar8]" (parenthesized_expression "(&switchD_001505ce::switchdataD_001afc54)" ( (ERROR "&switchD_001505ce::" (pointer_expression "&switchD_001505ce" & identifier) : :) identifier )) [ identifier ]) == number_literal)) ;) (switch_statement "switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }" switch (parenthesized_expression "((ulong)uVar8)" ( (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) )) (compound_statement "{\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }" { (case_statement "default:\n        goto switchD_001505ce_caseD_0;" default : (goto_statement "goto switchD_001505ce_caseD_0;" goto statement_identifier ;)) (case_statement "case 2:\n        goto switchD_001505ce_caseD_2;" case number_literal : (goto_statement "goto switchD_001505ce_caseD_2;" goto statement_identifier ;)) (case_statement "case 6:" case number_literal :) (case_statement "case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }" case number_literal : (labeled_statement "switchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;" statement_identifier : (if_statement "if (!bVar2) goto LAB_00150605;" if (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) )) (goto_statement "goto LAB_00150605;" goto statement_identifier ;))) (expression_statement "uVar22 = uVar8 < 6;" (assignment_expression "uVar22 = uVar8 < 6" identifier = (binary_expression "uVar8 < 6" identifier < number_literal)) ;) (expression_statement "uVar24 = uVar8 == 6;" (assignment_expression "uVar24 = uVar8 == 6" identifier = (binary_expression "uVar8 == 6" identifier == number_literal)) ;) (expression_statement "DAT_001c6498 = (byte *)0x1c08af;" (assignment_expression "DAT_001c6498 = (byte *)0x1c08af" identifier = (cast_expression "(byte *)0x1c08af" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }" if (parenthesized_expression "(!(bool)uVar24)" ( (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n          DAT_001c6498 = &DAT_001bc1a5;\n        }" { (expression_statement "DAT_001c6498 = &DAT_001bc1a5;" (assignment_expression "DAT_001c6498 = &DAT_001bc1a5" identifier = (pointer_expression "&DAT_001bc1a5" & identifier)) ;) }))) (case_statement "case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;" case number_literal : (expression_statement "pcVar9 = (char *)FUN_00149ab3(0x20);" (assignment_expression "pcVar9 = (char *)FUN_00149ab3(0x20)" identifier = (cast_expression "(char *)FUN_00149ab3(0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*pcVar9 = '\x0f';" (assignment_expression "*pcVar9 = '\x0f'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'\x0f'" ' escape_sequence ')) ;) (expression_statement "pbVar18 = DAT_001c6498;" (assignment_expression "pbVar18 = DAT_001c6498" identifier = identifier) ;) (expression_statement "*(byte **)(pcVar9 + 0x10) = DAT_001c6498;" (assignment_expression "*(byte **)(pcVar9 + 0x10) = DAT_001c6498" (pointer_expression "*(byte **)(pcVar9 + 0x10)" * (cast_expression "(byte **)(pcVar9 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x10)" ( (binary_expression "pcVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "lVar16 = 3;" (assignment_expression "lVar16 = 3" identifier = number_literal) ;) (expression_statement "pbVar14 = &DAT_001bc467;" (assignment_expression "pbVar14 = &DAT_001bc467" identifier = (pointer_expression "&DAT_001bc467" & identifier)) ;) (expression_statement "pbVar19 = pbVar18;" (assignment_expression "pbVar19 = pbVar18" identifier = identifier) ;) (do_statement "do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);" do (compound_statement "{\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        }" { (if_statement "if (lVar16 == 0) break;" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar16 = lVar16 + -1;" (assignment_expression "lVar16 = lVar16 + -1" identifier = (binary_expression "lVar16 + -1" identifier + number_literal)) ;) (expression_statement "uVar22 = *pbVar14 < *pbVar19;" (assignment_expression "uVar22 = *pbVar14 < *pbVar19" identifier = (binary_expression "*pbVar14 < *pbVar19" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "uVar24 = *pbVar14 == *pbVar19;" (assignment_expression "uVar24 = *pbVar14 == *pbVar19" identifier = (binary_expression "*pbVar14 == *pbVar19" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar24)" ( (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;" (assignment_expression "bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22" identifier = (binary_expression "(!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22" (parenthesized_expression "(!(bool)uVar22 && !(bool)uVar24)" ( (binary_expression "!(bool)uVar22 && !(bool)uVar24" (unary_expression "!(bool)uVar22" ! (cast_expression "(bool)uVar22" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar22" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }" if (parenthesized_expression "(bVar25)" ( identifier )) (compound_statement "{\n          bVar2 = true;\n        }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) }) (else_clause "else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }" else (compound_statement "{\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }" { (expression_statement "lVar16 = 3;" (assignment_expression "lVar16 = 3" identifier = number_literal) ;) (expression_statement "pbVar14 = (byte *)0x1bf6dc;" (assignment_expression "pbVar14 = (byte *)0x1bf6dc" identifier = (cast_expression "(byte *)0x1bf6dc" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar19 = pbVar18;" (assignment_expression "pbVar19 = pbVar18" identifier = identifier) ;) (do_statement "do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);" do (compound_statement "{\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          }" { (if_statement "if (lVar16 == 0) break;" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar16 = lVar16 + -1;" (assignment_expression "lVar16 = lVar16 + -1" identifier = (binary_expression "lVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar14 < *pbVar19;" (assignment_expression "bVar23 = *pbVar14 < *pbVar19" identifier = (binary_expression "*pbVar14 < *pbVar19" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar25 = *pbVar14 == *pbVar19;" (assignment_expression "bVar25 = *pbVar14 == *pbVar19" identifier = (binary_expression "*pbVar14 == *pbVar19" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (if_statement "if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }" if (parenthesized_expression "((!bVar23 && !bVar25) == bVar23)" ( (binary_expression "(!bVar23 && !bVar25) == bVar23" (parenthesized_expression "(!bVar23 && !bVar25)" ( (binary_expression "!bVar23 && !bVar25" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier) )) (compound_statement "{\n            bVar2 = false;\n          }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) })) }))) (expression_statement "*(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;" (assignment_expression "*(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490" (pointer_expression "*(undefined8 *)(pcVar9 + 0x18)" * (cast_expression "(undefined8 *)(pcVar9 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x18)" ( (binary_expression "pcVar9 + 0x18" identifier + number_literal) )))) = identifier) ;) (if_statement "if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }" if (parenthesized_expression "(((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d))" ( (binary_expression "((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)" (parenthesized_expression "((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14))" ( (binary_expression "(bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)" (parenthesized_expression "(bVar3)" ( identifier )) && (parenthesized_expression "(pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)" ( (comma_expression "pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14" (assignment_expression "pbVar14 = (byte *)FUN_0019afcf(pbVar18)" identifier = (cast_expression "(byte *)FUN_0019afcf(pbVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0019afcf(pbVar18)" identifier (argument_list "(pbVar18)" ( identifier ))))) , (binary_expression "pbVar18 != pbVar14" identifier != identifier)) ))) )) && (parenthesized_expression "(*pbVar14 == 0x3d)" ( (binary_expression "*pbVar14 == 0x3d" (pointer_expression "*pbVar14" * identifier) == number_literal) ))) )) (compound_statement "{\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }" { (expression_statement "*plVar17 = (long)pcVar9;" (assignment_expression "*plVar17 = (long)pcVar9" (pointer_expression "*plVar17" * identifier) = (cast_expression "(long)pcVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "plVar17 = (long *)(pcVar9 + 8);" (assignment_expression "plVar17 = (long *)(pcVar9 + 8)" identifier = (cast_expression "(long *)(pcVar9 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 8)" ( (binary_expression "pcVar9 + 8" identifier + number_literal) )))) ;) }) (else_clause "else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }" else (compound_statement "{\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }" { (expression_statement "*plVar20 = (long)pcVar9;" (assignment_expression "*plVar20 = (long)pcVar9" (pointer_expression "*plVar20" * identifier) = (cast_expression "(long)pcVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "plVar20 = (long *)(pcVar9 + 8);" (assignment_expression "plVar20 = (long *)(pcVar9 + 8)" identifier = (cast_expression "(long *)(pcVar9 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 8)" ( (binary_expression "pcVar9 + 8" identifier + number_literal) )))) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) }))) (if_statement "if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }" if (parenthesized_expression "(bVar4)" ( identifier )) (compound_statement "{\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }" { (expression_statement "DAT_001c65af = 6;" (assignment_expression "DAT_001c65af = 6" identifier = number_literal) ;) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (expression_statement "DAT_001c65ad = 1;" (assignment_expression "DAT_001c65ad = 1" identifier = number_literal) ;) (if_statement "if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }" if (parenthesized_expression "(iVar6 - 3U < 0x1a)" ( (binary_expression "iVar6 - 3U < 0x1a" (binary_expression "iVar6 - 3U" identifier - number_literal) < number_literal) )) (compound_statement "{\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }" { (expression_statement "bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];" (assignment_expression "bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U]" identifier = (binary_expression "0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U]" number_literal < (subscript_expression "(&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U]" (parenthesized_expression "(&switchD_00150729::switchdataD_001afcb0)" ( (ERROR "&switchD_00150729::" (pointer_expression "&switchD_00150729" & identifier) : :) identifier )) [ (binary_expression "iVar6 - 3U" identifier - number_literal) ]))) ;) (expression_statement "bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;" (assignment_expression "bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350" identifier = (binary_expression "(&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350" (subscript_expression "(&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U]" (parenthesized_expression "(&switchD_00150729::switchdataD_001afcb0)" ( (ERROR "&switchD_00150729::" (pointer_expression "&switchD_00150729" & identifier) : :) identifier )) [ (binary_expression "iVar6 - 3U" identifier - number_literal) ]) == number_literal)) ;) (switch_statement "switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }" switch (parenthesized_expression "(iVar6)" ( identifier )) (compound_statement "{\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }" { (case_statement "case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;" case number_literal : (expression_statement "lVar16 = 3;" (assignment_expression "lVar16 = 3" identifier = number_literal) ;) (expression_statement "pbVar18 = &DAT_001bc467;" (assignment_expression "pbVar18 = &DAT_001bc467" identifier = (pointer_expression "&DAT_001bc467" & identifier)) ;) (expression_statement "pbVar14 = DAT_001c6498;" (assignment_expression "pbVar14 = DAT_001c6498" identifier = identifier) ;) (do_statement "do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);" do (compound_statement "{\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              }" { (if_statement "if (lVar16 == 0) break;" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar16 = lVar16 + -1;" (assignment_expression "lVar16 = lVar16 + -1" identifier = (binary_expression "lVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar18 < *pbVar14;" (assignment_expression "bVar23 = *pbVar18 < *pbVar14" identifier = (binary_expression "*pbVar18 < *pbVar14" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar25 = *pbVar18 == *pbVar14;" (assignment_expression "bVar25 = *pbVar18 == *pbVar14" identifier = (binary_expression "*pbVar18 == *pbVar14" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar18 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar18 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (if_statement "if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;" if (parenthesized_expression "((!bVar23 && !bVar25) == bVar23)" ( (binary_expression "(!bVar23 && !bVar25) == bVar23" (parenthesized_expression "(!bVar23 && !bVar25)" ( (binary_expression "!bVar23 && !bVar25" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier) )) (goto_statement "goto switchD_001505ce_caseD_9;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "case 9:\n              bVar4 = false;\n              goto LAB_001505a5;" case number_literal : (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (goto_statement "goto LAB_001505a5;" goto statement_identifier ;)) (case_statement "case 0xe:" case number_literal :) (case_statement "case 0x15:" case number_literal :) (case_statement "case 0x17:" case number_literal :) (case_statement "case 0x1a:" case number_literal :) (case_statement "case 0x1b:" case number_literal :) (case_statement "case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;" case number_literal : (labeled_statement "switchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }" statement_identifier : (if_statement "if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }" if (parenthesized_expression "((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0))" ( (binary_expression "(((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)" (parenthesized_expression "(((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0))" ( (binary_expression "((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)" (parenthesized_expression "((local_58 != 0) && (plVar20 == (long *)(local_58 + 8)))" ( (binary_expression "(local_58 != 0) && (plVar20 == (long *)(local_58 + 8))" (parenthesized_expression "(local_58 != 0)" ( (binary_expression "local_58 != 0" identifier != number_literal) )) && (parenthesized_expression "(plVar20 == (long *)(local_58 + 8))" ( (binary_expression "plVar20 == (long *)(local_58 + 8)" identifier == (cast_expression "(long *)(local_58 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 8)" ( (binary_expression "local_58 + 8" identifier + number_literal) )))) ))) )) && (parenthesized_expression "(local_50 == 0)" ( (binary_expression "local_50 == 0" identifier == number_literal) ))) )) && (parenthesized_expression "(local_48 == (undefined1 *)0x0)" ( (binary_expression "local_48 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }" { (if_statement "if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }" if (parenthesized_expression "((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10))" ( (binary_expression "(!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)" (parenthesized_expression "(!bVar4)" ( (unary_expression "!bVar4" ! identifier) )) && (parenthesized_expression "(iVar6 = FUN_0014ecf5(), iVar6 != 10)" ( (comma_expression "iVar6 = FUN_0014ecf5(), iVar6 != 10" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) , (binary_expression "iVar6 != 10" identifier != number_literal)) ))) )) (compound_statement "{\n                  FUN_0014bd14(10);\n                }" { (expression_statement "FUN_0014bd14(10);" (call_expression "FUN_0014bd14(10)" identifier (argument_list "(10)" ( number_literal ))) ;) })) (expression_statement "uVar10 = *(undefined8 *)(pcVar9 + 0x10);" (assignment_expression "uVar10 = *(undefined8 *)(pcVar9 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(pcVar9 + 0x10)" * (cast_expression "(undefined8 *)(pcVar9 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x10)" ( (binary_expression "pcVar9 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pcVar11 = (char *)FUN_0019afcf(uVar10);" (assignment_expression "pcVar11 = (char *)FUN_0019afcf(uVar10)" identifier = (cast_expression "(char *)FUN_0019afcf(uVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0019afcf(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))))) ;) (if_statement "if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }" if (parenthesized_expression "((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0))))" ( (binary_expression "(*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))" (parenthesized_expression "(*pcVar11 != '\0')" ( (binary_expression "*pcVar11 != '\0'" (pointer_expression "*pcVar11" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))" ( (parenthesized_expression "(puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0))" ( (comma_expression "puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)" (assignment_expression "puVar15 = (undefined8 *)FUN_001472bc(uVar10)" identifier = (cast_expression "(undefined8 *)FUN_001472bc(uVar10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001472bc(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))))) , (binary_expression "puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)" (binary_expression "puVar15 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "((*(byte *)*puVar15 & 1) != 0)" ( (binary_expression "(*(byte *)*puVar15 & 1) != 0" (parenthesized_expression "(*(byte *)*puVar15 & 1)" ( (binary_expression "*(byte *)*puVar15 & 1" (pointer_expression "*(byte *)*puVar15" * (cast_expression "(byte *)*puVar15" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) & number_literal) )) != number_literal) )))) )) ))) )) (compound_statement "{\n                  FUN_001487a2("bad function name");\n                }" { (expression_statement "FUN_001487a2("bad function name");" (call_expression "FUN_001487a2("bad function name")" identifier (argument_list "("bad function name")" ( (string_literal ""bad function name"" " string_content ") ))) ;) })) (expression_statement "*pcVar9 = '\x0e';" (assignment_expression "*pcVar9 = '\x0e'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'\x0e'" ' escape_sequence ')) ;) (expression_statement "DAT_001c65af = 7;" (assignment_expression "DAT_001c65af = 7" identifier = number_literal) ;) (expression_statement "*(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);" (assignment_expression "*(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10)" (pointer_expression "*(undefined8 *)(pcVar9 + 8)" * (cast_expression "(undefined8 *)(pcVar9 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 8)" ( (binary_expression "pcVar9 + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(pcVar9 + 0x10)" * (cast_expression "(undefined8 *)(pcVar9 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x10)" ( (binary_expression "pcVar9 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);" (assignment_expression "*(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8)" (pointer_expression "*(undefined4 *)(pcVar9 + 4)" * (cast_expression "(undefined4 *)(pcVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 4)" ( (binary_expression "pcVar9 + 4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(PTR_DAT_001c6260 + 8)" * (cast_expression "(undefined4 *)(PTR_DAT_001c6260 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_001c6260 + 8)" ( (binary_expression "PTR_DAT_001c6260 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = FUN_001500b6();" (assignment_expression "uVar10 = FUN_001500b6()" identifier = (call_expression "FUN_001500b6()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined8 *)(pcVar9 + 0x10) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar9 + 0x10) = uVar10" (pointer_expression "*(undefined8 *)(pcVar9 + 0x10)" * (cast_expression "(undefined8 *)(pcVar9 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x10)" ( (binary_expression "pcVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0015082d;" goto statement_identifier ;) }))) (goto_statement "goto switchD_001505ce_caseD_0;" goto statement_identifier ;)) })) })) (expression_statement "FUN_0014bd14(0xffffffff);" (call_expression "FUN_0014bd14(0xffffffff)" identifier (argument_list "(0xffffffff)" ( number_literal ))) ;) (labeled_statement "switchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;" statement_identifier : (expression_statement "pcVar9 = DAT_001c6488;" (assignment_expression "pcVar9 = DAT_001c6488" identifier = identifier) ;)) (expression_statement "*ppuVar21 = DAT_001c6488;" (assignment_expression "*ppuVar21 = DAT_001c6488" (pointer_expression "*ppuVar21" * identifier) = identifier) ;) (expression_statement "ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);" (assignment_expression "ppuVar21 = (undefined1 **)(DAT_001c6488 + 8)" identifier = (cast_expression "(undefined1 **)(DAT_001c6488 + 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_001c6488 + 8)" ( (binary_expression "DAT_001c6488 + 8" identifier + number_literal) )))) ;) (expression_statement "FUN_0014edac();" (call_expression "FUN_0014edac()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;) })) (break_statement "break;" break ;)) (case_statement "case 9:\n        goto switchD_001505ce_caseD_9;" case number_literal : (goto_statement "goto switchD_001505ce_caseD_9;" goto statement_identifier ;)) (case_statement "case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;" case number_literal : (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (expression_statement "DAT_001c65ad = 1;" (assignment_expression "DAT_001c65ad = 1" identifier = number_literal) ;) (if_statement "if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }" if (parenthesized_expression "(iVar6 != 3)" ( (binary_expression "iVar6 != 3" identifier != number_literal) )) (compound_statement "{\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }" { (expression_statement "uVar8 = FUN_0014bd14(3);" (assignment_expression "uVar8 = FUN_0014bd14(3)" identifier = (call_expression "FUN_0014bd14(3)" identifier (argument_list "(3)" ( number_literal )))) ;) (goto_statement "goto switchD_001505ce_caseD_6;" goto statement_identifier ;) })) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;)) })) (goto_statement "goto LAB_001505a5;" goto statement_identifier ;) })) (labeled_statement "switchD_001505ce_caseD_0:\nLAB_00150605:\n    DAT_001c65ad = 1;" statement_identifier : (labeled_statement "LAB_00150605:\n    DAT_001c65ad = 1;" statement_identifier : (expression_statement "DAT_001c65ad = 1;" (assignment_expression "DAT_001c65ad = 1" identifier = number_literal) ;))) (expression_statement "*plVar20 = 0;" (assignment_expression "*plVar20 = 0" (pointer_expression "*plVar20" * identifier) = number_literal) ;) (expression_statement "*plVar17 = 0;" (assignment_expression "*plVar17 = 0" (pointer_expression "*plVar17" * identifier) = number_literal) ;) (expression_statement "*ppuVar21 = (undefined1 *)0x0;" (assignment_expression "*ppuVar21 = (undefined1 *)0x0" (pointer_expression "*ppuVar21" * identifier) = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar9 = (char *)FUN_00149ab3(0x20);" (assignment_expression "pcVar9 = (char *)FUN_00149ab3(0x20)" identifier = (cast_expression "(char *)FUN_00149ab3(0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(pcVar9 + 4) = uVar1;" (assignment_expression "*(undefined4 *)(pcVar9 + 4) = uVar1" (pointer_expression "*(undefined4 *)(pcVar9 + 4)" * (cast_expression "(undefined4 *)(pcVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 4)" ( (binary_expression "pcVar9 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(long *)(pcVar9 + 0x10) = local_58;" (assignment_expression "*(long *)(pcVar9 + 0x10) = local_58" (pointer_expression "*(long *)(pcVar9 + 0x10)" * (cast_expression "(long *)(pcVar9 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x10)" ( (binary_expression "pcVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(long *)(pcVar9 + 8) = local_50;" (assignment_expression "*(long *)(pcVar9 + 8) = local_50" (pointer_expression "*(long *)(pcVar9 + 8)" * (cast_expression "(long *)(pcVar9 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 8)" ( (binary_expression "pcVar9 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(pcVar9 + 0x18) = local_48;" (assignment_expression "*(undefined1 **)(pcVar9 + 0x18) = local_48" (pointer_expression "*(undefined1 **)(pcVar9 + 0x18)" * (cast_expression "(undefined1 **)(pcVar9 + 0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x18)" ( (binary_expression "pcVar9 + 0x18" identifier + number_literal) )))) = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\x04';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = 10;\n    goto LAB_00150178;" case number_literal : (expression_statement "pcVar9 = (char *)FUN_00149ab3(0x18);" (assignment_expression "pcVar9 = (char *)FUN_00149ab3(0x18)" identifier = (cast_expression "(char *)FUN_00149ab3(0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "*pcVar9 = '\x04';" (assignment_expression "*pcVar9 = '\x04'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'\x04'" ' escape_sequence ')) ;) (expression_statement "*(undefined4 *)(pcVar9 + 4) = uVar1;" (assignment_expression "*(undefined4 *)(pcVar9 + 4) = uVar1" (pointer_expression "*(undefined4 *)(pcVar9 + 4)" * (cast_expression "(undefined4 *)(pcVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 4)" ( (binary_expression "pcVar9 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" identifier = (call_expression "FUN_0014eeae(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined8 *)(pcVar9 + 8) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar9 + 8) = uVar10" (pointer_expression "*(undefined8 *)(pcVar9 + 8)" * (cast_expression "(undefined8 *)(pcVar9 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 8)" ( (binary_expression "pcVar9 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = 10;" (assignment_expression "iVar6 = 10" identifier = number_literal) ;) (goto_statement "goto LAB_00150178;" goto statement_identifier ;)) (case_statement "case 0xe:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\f';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 3) {\n      FUN_0014bd14(3);\n    }\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    *puVar12 = 0xf;\n    *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n    *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x18) {\n      FUN_0014bd14(0x18);\n    }\n    pcVar11 = pcVar9 + 0x10;\n    do {\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n      if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *(undefined1 **)pcVar11 = puVar12;\n      *puVar12 = 0xd;\n      puVar15 = (undefined8 *)(puVar12 + 0x10);\n      while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }\n      if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }\n      uVar10 = FUN_0014eeae(2);\n      *(undefined8 *)(puVar12 + 0x18) = uVar10;\n      pcVar11 = puVar12 + 8;\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n    } while (iVar6 == 0xb);\n    FUN_0014bd14(0xb);\nLAB_001504a6:\n    pcVar11[0] = '\0';\n    pcVar11[1] = '\0';\n    pcVar11[2] = '\0';\n    pcVar11[3] = '\0';\n    pcVar11[4] = '\0';\n    pcVar11[5] = '\0';\n    pcVar11[6] = '\0';\n    pcVar11[7] = '\0';\nLAB_001504ae:\n    DAT_001c65af = 3;\n    plVar17 = &local_60;\n    while (iVar6 = FUN_0014ecf5(), iVar6 == 2) {\n      *plVar17 = (long)DAT_001c6488;\n      plVar17 = (long *)(DAT_001c6488 + 8);\n      FUN_0014edac();\n    }\n    DAT_001c65ad = 1;\n    *plVar17 = 0;\n    lVar16 = local_60;\n    if (local_60 != 0) {\n      if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }\n      *(long *)(pcVar9 + 0x10) = lVar16;\n    }\n    break;" case number_literal : (expression_statement "pcVar9 = (char *)FUN_00149ab3(0x18);" (assignment_expression "pcVar9 = (char *)FUN_00149ab3(0x18)" identifier = (cast_expression "(char *)FUN_00149ab3(0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "*pcVar9 = '\f';" (assignment_expression "*pcVar9 = '\f'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'\f'" ' escape_sequence ')) ;) (expression_statement "*(undefined4 *)(pcVar9 + 4) = uVar1;" (assignment_expression "*(undefined4 *)(pcVar9 + 4) = uVar1" (pointer_expression "*(undefined4 *)(pcVar9 + 4)" * (cast_expression "(undefined4 *)(pcVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 4)" ( (binary_expression "pcVar9 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 != 3) {\n      FUN_0014bd14(3);\n    }" if (parenthesized_expression "(iVar6 != 3)" ( (binary_expression "iVar6 != 3" identifier != number_literal) )) (compound_statement "{\n      FUN_0014bd14(3);\n    }" { (expression_statement "FUN_0014bd14(3);" (call_expression "FUN_0014bd14(3)" identifier (argument_list "(3)" ( number_literal ))) ;) })) (expression_statement "puVar12 = (undefined1 *)FUN_00149ab3(0x20);" (assignment_expression "puVar12 = (undefined1 *)FUN_00149ab3(0x20)" identifier = (cast_expression "(undefined1 *)FUN_00149ab3(0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*(undefined1 **)(pcVar9 + 8) = puVar12;" (assignment_expression "*(undefined1 **)(pcVar9 + 8) = puVar12" (pointer_expression "*(undefined1 **)(pcVar9 + 8)" * (cast_expression "(undefined1 **)(pcVar9 + 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 8)" ( (binary_expression "pcVar9 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*puVar12 = 0xf;" (assignment_expression "*puVar12 = 0xf" (pointer_expression "*puVar12" * identifier) = number_literal) ;) (expression_statement "*(byte **)(puVar12 + 0x10) = DAT_001c6498;" (assignment_expression "*(byte **)(puVar12 + 0x10) = DAT_001c6498" (pointer_expression "*(byte **)(puVar12 + 0x10)" * (cast_expression "(byte **)(puVar12 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x10)" ( (binary_expression "puVar12 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;" (assignment_expression "*(undefined8 *)(puVar12 + 0x18) = DAT_001c6490" (pointer_expression "*(undefined8 *)(puVar12 + 0x18)" * (cast_expression "(undefined8 *)(puVar12 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x18)" ( (binary_expression "puVar12 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "DAT_001c65af = 7;" (assignment_expression "DAT_001c65af = 7" identifier = number_literal) ;) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 != 0x18) {\n      FUN_0014bd14(0x18);\n    }" if (parenthesized_expression "(iVar6 != 0x18)" ( (binary_expression "iVar6 != 0x18" identifier != number_literal) )) (compound_statement "{\n      FUN_0014bd14(0x18);\n    }" { (expression_statement "FUN_0014bd14(0x18);" (call_expression "FUN_0014bd14(0x18)" identifier (argument_list "(0x18)" ( number_literal ))) ;) })) (expression_statement "pcVar11 = pcVar9 + 0x10;" (assignment_expression "pcVar11 = pcVar9 + 0x10" identifier = (binary_expression "pcVar9 + 0x10" identifier + number_literal)) ;) (do_statement "do {\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n      if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *(undefined1 **)pcVar11 = puVar12;\n      *puVar12 = 0xd;\n      puVar15 = (undefined8 *)(puVar12 + 0x10);\n      while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }\n      if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }\n      uVar10 = FUN_0014eeae(2);\n      *(undefined8 *)(puVar12 + 0x18) = uVar10;\n      pcVar11 = puVar12 + 8;\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n    } while (iVar6 == 0xb);" do (compound_statement "{\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n      if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *(undefined1 **)pcVar11 = puVar12;\n      *puVar12 = 0xd;\n      puVar15 = (undefined8 *)(puVar12 + 0x10);\n      while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }\n      if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }\n      uVar10 = FUN_0014eeae(2);\n      *(undefined8 *)(puVar12 + 0x18) = uVar10;\n      pcVar11 = puVar12 + 8;\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n    }" { (expression_statement "DAT_001c65af = 6;" (assignment_expression "DAT_001c65af = 6" identifier = number_literal) ;) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 == 0x13) goto LAB_001504a6;" if (parenthesized_expression "(iVar6 == 0x13)" ( (binary_expression "iVar6 == 0x13" identifier == number_literal) )) (goto_statement "goto LAB_001504a6;" goto statement_identifier ;)) (if_statement "if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }" if (parenthesized_expression "(DAT_001c65ab == '\t')" ( (binary_expression "DAT_001c65ab == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) )) (compound_statement "{\n        FUN_0014ecf5();\n      }" { (expression_statement "FUN_0014ecf5();" (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "puVar12 = (undefined1 *)FUN_00149ab3(0x20);" (assignment_expression "puVar12 = (undefined1 *)FUN_00149ab3(0x20)" identifier = (cast_expression "(undefined1 *)FUN_00149ab3(0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*(undefined1 **)pcVar11 = puVar12;" (assignment_expression "*(undefined1 **)pcVar11 = puVar12" (pointer_expression "*(undefined1 **)pcVar11" * (cast_expression "(undefined1 **)pcVar11" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*puVar12 = 0xd;" (assignment_expression "*puVar12 = 0xd" (pointer_expression "*puVar12" * identifier) = number_literal) ;) (expression_statement "puVar15 = (undefined8 *)(puVar12 + 0x10);" (assignment_expression "puVar15 = (undefined8 *)(puVar12 + 0x10)" identifier = (cast_expression "(undefined8 *)(puVar12 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x10)" ( (binary_expression "puVar12 + 0x10" identifier + number_literal) )))) ;) (while_statement "while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }" { (expression_statement "puVar13 = (undefined1 *)FUN_00149ab3(0x20);" (assignment_expression "puVar13 = (undefined1 *)FUN_00149ab3(0x20)" identifier = (cast_expression "(undefined1 *)FUN_00149ab3(0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*puVar15 = puVar13;" (assignment_expression "*puVar15 = puVar13" (pointer_expression "*puVar15" * identifier) = identifier) ;) (expression_statement "*puVar13 = 0xf;" (assignment_expression "*puVar13 = 0xf" (pointer_expression "*puVar13" * identifier) = number_literal) ;) (expression_statement "*(byte **)(puVar13 + 0x10) = DAT_001c6498;" (assignment_expression "*(byte **)(puVar13 + 0x10) = DAT_001c6498" (pointer_expression "*(byte **)(puVar13 + 0x10)" * (cast_expression "(byte **)(puVar13 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x10)" ( (binary_expression "puVar13 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;" (assignment_expression "*(undefined8 *)(puVar13 + 0x18) = DAT_001c6490" (pointer_expression "*(undefined8 *)(puVar13 + 0x18)" * (cast_expression "(undefined8 *)(puVar13 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x18)" ( (binary_expression "puVar13 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_48 = puVar13;" (assignment_expression "local_48 = puVar13" identifier = identifier) ;) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 != 8) break;" if (parenthesized_expression "(iVar6 != 8)" ( (binary_expression "iVar6 != 8" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "puVar15 = (undefined8 *)(puVar13 + 8);" (assignment_expression "puVar15 = (undefined8 *)(puVar13 + 8)" identifier = (cast_expression "(undefined8 *)(puVar13 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 8)" ( (binary_expression "puVar13 + 8" identifier + number_literal) )))) ;) (expression_statement "FUN_0014ecf5();" (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }" if (parenthesized_expression "(DAT_001c65ab != '\n')" ( (binary_expression "DAT_001c65ab != '\n'" identifier != (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n        FUN_0014bd14(10);\n      }" { (expression_statement "FUN_0014bd14(10);" (call_expression "FUN_0014bd14(10)" identifier (argument_list "(10)" ( number_literal ))) ;) })) (expression_statement "uVar10 = FUN_0014eeae(2);" (assignment_expression "uVar10 = FUN_0014eeae(2)" identifier = (call_expression "FUN_0014eeae(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar12 + 0x18) = uVar10;" (assignment_expression "*(undefined8 *)(puVar12 + 0x18) = uVar10" (pointer_expression "*(undefined8 *)(puVar12 + 0x18)" * (cast_expression "(undefined8 *)(puVar12 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x18)" ( (binary_expression "puVar12 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar11 = puVar12 + 8;" (assignment_expression "pcVar11 = puVar12 + 8" identifier = (binary_expression "puVar12 + 8" identifier + number_literal)) ;) (expression_statement "DAT_001c65af = 6;" (assignment_expression "DAT_001c65af = 6" identifier = number_literal) ;) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 == 0x13) goto LAB_001504a6;" if (parenthesized_expression "(iVar6 == 0x13)" ( (binary_expression "iVar6 == 0x13" identifier == number_literal) )) (goto_statement "goto LAB_001504a6;" goto statement_identifier ;)) }) while (parenthesized_expression "(iVar6 == 0xb)" ( (binary_expression "iVar6 == 0xb" identifier == number_literal) )) ;) (expression_statement "FUN_0014bd14(0xb);" (call_expression "FUN_0014bd14(0xb)" identifier (argument_list "(0xb)" ( number_literal ))) ;) (labeled_statement "LAB_001504a6:\n    pcVar11[0] = '\0';" statement_identifier : (expression_statement "pcVar11[0] = '\0';" (assignment_expression "pcVar11[0] = '\0'" (subscript_expression "pcVar11[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "pcVar11[1] = '\0';" (assignment_expression "pcVar11[1] = '\0'" (subscript_expression "pcVar11[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[2] = '\0';" (assignment_expression "pcVar11[2] = '\0'" (subscript_expression "pcVar11[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[3] = '\0';" (assignment_expression "pcVar11[3] = '\0'" (subscript_expression "pcVar11[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[4] = '\0';" (assignment_expression "pcVar11[4] = '\0'" (subscript_expression "pcVar11[4]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[5] = '\0';" (assignment_expression "pcVar11[5] = '\0'" (subscript_expression "pcVar11[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[6] = '\0';" (assignment_expression "pcVar11[6] = '\0'" (subscript_expression "pcVar11[6]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[7] = '\0';" (assignment_expression "pcVar11[7] = '\0'" (subscript_expression "pcVar11[7]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (labeled_statement "LAB_001504ae:\n    DAT_001c65af = 3;" statement_identifier : (expression_statement "DAT_001c65af = 3;" (assignment_expression "DAT_001c65af = 3" identifier = number_literal) ;)) (expression_statement "plVar17 = &local_60;" (assignment_expression "plVar17 = &local_60" identifier = (pointer_expression "&local_60" & identifier)) ;) (while_statement "while (iVar6 = FUN_0014ecf5(), iVar6 == 2) {\n      *plVar17 = (long)DAT_001c6488;\n      plVar17 = (long *)(DAT_001c6488 + 8);\n      FUN_0014edac();\n    }" while (parenthesized_expression "(iVar6 = FUN_0014ecf5(), iVar6 == 2)" ( (comma_expression "iVar6 = FUN_0014ecf5(), iVar6 == 2" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) , (binary_expression "iVar6 == 2" identifier == number_literal)) )) (compound_statement "{\n      *plVar17 = (long)DAT_001c6488;\n      plVar17 = (long *)(DAT_001c6488 + 8);\n      FUN_0014edac();\n    }" { (expression_statement "*plVar17 = (long)DAT_001c6488;" (assignment_expression "*plVar17 = (long)DAT_001c6488" (pointer_expression "*plVar17" * identifier) = (cast_expression "(long)DAT_001c6488" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "plVar17 = (long *)(DAT_001c6488 + 8);" (assignment_expression "plVar17 = (long *)(DAT_001c6488 + 8)" identifier = (cast_expression "(long *)(DAT_001c6488 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001c6488 + 8)" ( (binary_expression "DAT_001c6488 + 8" identifier + number_literal) )))) ;) (expression_statement "FUN_0014edac();" (call_expression "FUN_0014edac()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "DAT_001c65ad = 1;" (assignment_expression "DAT_001c65ad = 1" identifier = number_literal) ;) (expression_statement "*plVar17 = 0;" (assignment_expression "*plVar17 = 0" (pointer_expression "*plVar17" * identifier) = number_literal) ;) (expression_statement "lVar16 = local_60;" (assignment_expression "lVar16 = local_60" identifier = identifier) ;) (if_statement "if (local_60 != 0) {\n      if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }\n      *(long *)(pcVar9 + 0x10) = lVar16;\n    }" if (parenthesized_expression "(local_60 != 0)" ( (binary_expression "local_60 != 0" identifier != number_literal) )) (compound_statement "{\n      if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }\n      *(long *)(pcVar9 + 0x10) = lVar16;\n    }" { (if_statement "if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }" if (parenthesized_expression "(*pcVar9 != '\x04')" ( (binary_expression "*pcVar9 != '\x04'" (pointer_expression "*pcVar9" * identifier) != (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }" { (expression_statement "pcVar11 = (char *)FUN_00149ab3(0x18);" (assignment_expression "pcVar11 = (char *)FUN_00149ab3(0x18)" identifier = (cast_expression "(char *)FUN_00149ab3(0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "*pcVar11 = '\x02';" (assignment_expression "*pcVar11 = '\x02'" (pointer_expression "*pcVar11" * identifier) = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "*(undefined4 *)(pcVar11 + 4) = uVar1;" (assignment_expression "*(undefined4 *)(pcVar11 + 4) = uVar1" (pointer_expression "*(undefined4 *)(pcVar11 + 4)" * (cast_expression "(undefined4 *)(pcVar11 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 4)" ( (binary_expression "pcVar11 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(pcVar11 + 8) = pcVar9;" (assignment_expression "*(char **)(pcVar11 + 8) = pcVar9" (pointer_expression "*(char **)(pcVar11 + 8)" * (cast_expression "(char **)(pcVar11 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 8)" ( (binary_expression "pcVar11 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar9 = pcVar11;" (assignment_expression "pcVar9 = pcVar11" identifier = identifier) ;) })) (expression_statement "*(long *)(pcVar9 + 0x10) = lVar16;" (assignment_expression "*(long *)(pcVar9 + 0x10) = lVar16" (pointer_expression "*(long *)(pcVar9 + 0x10)" * (cast_expression "(long *)(pcVar9 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x10)" ( (binary_expression "pcVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x15:\n    iVar6 = FUN_0014ecf5();\n    if (((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')) {\n      FUN_001487a2("bad for loop variable");\n    }\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\v';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(byte **)(pcVar9 + 0x18) = DAT_001c6498;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0x18) goto LAB_00150350;\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *puVar12 = 0xf;\n    *(undefined **)(puVar12 + 0x10) = &DAT_001bc672;\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    if (DAT_001c65ab != '\x04') {\n      DAT_001c65ad = 1;\n    }\nLAB_001502d6:\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0xf) {\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n      iVar6 = 0x10;\n      goto LAB_00150178;\n    }\n    FUN_0014bd14(0xf);\n    do {\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *puVar12 = 0xf;\n      *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n      *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n      *unaff_RBP = puVar12;\n      unaff_RBP = (undefined1 **)(puVar12 + 8);\n      while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }\n    } while( true );" case number_literal : (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')) {\n      FUN_001487a2("bad for loop variable");\n    }" if (parenthesized_expression "(((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0'))" ( (binary_expression "((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')" (parenthesized_expression "((iVar6 != 3) || (DAT_001c65ac != '\0'))" ( (binary_expression "(iVar6 != 3) || (DAT_001c65ac != '\0')" (parenthesized_expression "(iVar6 != 3)" ( (binary_expression "iVar6 != 3" identifier != number_literal) )) || (parenthesized_expression "(DAT_001c65ac != '\0')" ( (binary_expression "DAT_001c65ac != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')" ( (comma_expression "pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0'" (assignment_expression "pcVar9 = (char *)FUN_0019afcf(DAT_001c6498)" identifier = (cast_expression "(char *)FUN_0019afcf(DAT_001c6498)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0019afcf(DAT_001c6498)" identifier (argument_list "(DAT_001c6498)" ( identifier ))))) , (binary_expression "*pcVar9 != '\0'" (pointer_expression "*pcVar9" * identifier) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      FUN_001487a2("bad for loop variable");\n    }" { (expression_statement "FUN_001487a2("bad for loop variable");" (call_expression "FUN_001487a2("bad for loop variable")" identifier (argument_list "("bad for loop variable")" ( (string_literal ""bad for loop variable"" " string_content ") ))) ;) })) (expression_statement "pcVar9 = (char *)FUN_00149ab3(0x20);" (assignment_expression "pcVar9 = (char *)FUN_00149ab3(0x20)" identifier = (cast_expression "(char *)FUN_00149ab3(0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*pcVar9 = '\v';" (assignment_expression "*pcVar9 = '\v'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'\v'" ' escape_sequence ')) ;) (expression_statement "*(undefined4 *)(pcVar9 + 4) = uVar1;" (assignment_expression "*(undefined4 *)(pcVar9 + 4) = uVar1" (pointer_expression "*(undefined4 *)(pcVar9 + 4)" * (cast_expression "(undefined4 *)(pcVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 4)" ( (binary_expression "pcVar9 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pcVar9 + 0x18) = DAT_001c6498;" (assignment_expression "*(byte **)(pcVar9 + 0x18) = DAT_001c6498" (pointer_expression "*(byte **)(pcVar9 + 0x18)" * (cast_expression "(byte **)(pcVar9 + 0x18)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0x18)" ( (binary_expression "pcVar9 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "DAT_001c65af = 7;" (assignment_expression "DAT_001c65af = 7" identifier = number_literal) ;) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 == 0x18) goto LAB_00150350;" if (parenthesized_expression "(iVar6 == 0x18)" ( (binary_expression "iVar6 == 0x18" identifier == number_literal) )) (goto_statement "goto LAB_00150350;" goto statement_identifier ;)) (expression_statement "puVar12 = (undefined1 *)FUN_00149ab3(0x20);" (assignment_expression "puVar12 = (undefined1 *)FUN_00149ab3(0x20)" identifier = (cast_expression "(undefined1 *)FUN_00149ab3(0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*puVar12 = 0xf;" (assignment_expression "*puVar12 = 0xf" (pointer_expression "*puVar12" * identifier) = number_literal) ;) (expression_statement "*(undefined **)(puVar12 + 0x10) = &DAT_001bc672;" (assignment_expression "*(undefined **)(puVar12 + 0x10) = &DAT_001bc672" (pointer_expression "*(undefined **)(puVar12 + 0x10)" * (cast_expression "(undefined **)(puVar12 + 0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x10)" ( (binary_expression "puVar12 + 0x10" identifier + number_literal) )))) = (pointer_expression "&DAT_001bc672" & identifier)) ;) (expression_statement "*(undefined1 **)(pcVar9 + 8) = puVar12;" (assignment_expression "*(undefined1 **)(pcVar9 + 8) = puVar12" (pointer_expression "*(undefined1 **)(pcVar9 + 8)" * (cast_expression "(undefined1 **)(pcVar9 + 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 8)" ( (binary_expression "pcVar9 + 8" identifier + number_literal) )))) = identifier) ;) (if_statement "if (DAT_001c65ab != '\x04') {\n      DAT_001c65ad = 1;\n    }" if (parenthesized_expression "(DAT_001c65ab != '\x04')" ( (binary_expression "DAT_001c65ab != '\x04'" identifier != (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n      DAT_001c65ad = 1;\n    }" { (expression_statement "DAT_001c65ad = 1;" (assignment_expression "DAT_001c65ad = 1" identifier = number_literal) ;) })) (labeled_statement "LAB_001502d6:\n    DAT_001c65af = 7;" statement_identifier : (expression_statement "DAT_001c65af = 7;" (assignment_expression "DAT_001c65af = 7" identifier = number_literal) ;)) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 == 0xf) {\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n      iVar6 = 0x10;\n      goto LAB_00150178;\n    }" if (parenthesized_expression "(iVar6 == 0xf)" ( (binary_expression "iVar6 == 0xf" identifier == number_literal) )) (compound_statement "{\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n      iVar6 = 0x10;\n      goto LAB_00150178;\n    }" { (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" identifier = (call_expression "FUN_0014eeae(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined8 *)(pcVar9 + 0x10) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar9 + 0x10) = uVar10" (pointer_expression "*(undefined8 *)(pcVar9 + 0x10)" * (cast_expression "(undefined8 *)(pcVar9 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x10)" ( (binary_expression "pcVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = 0x10;" (assignment_expression "iVar6 = 0x10" identifier = number_literal) ;) (goto_statement "goto LAB_00150178;" goto statement_identifier ;) })) (expression_statement "FUN_0014bd14(0xf);" (call_expression "FUN_0014bd14(0xf)" identifier (argument_list "(0xf)" ( number_literal ))) ;) (do_statement "do {\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *puVar12 = 0xf;\n      *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n      *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n      *unaff_RBP = puVar12;\n      unaff_RBP = (undefined1 **)(puVar12 + 8);\n      while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }\n    } while( true );" do (compound_statement "{\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *puVar12 = 0xf;\n      *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n      *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n      *unaff_RBP = puVar12;\n      unaff_RBP = (undefined1 **)(puVar12 + 8);\n      while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }\n    }" { (expression_statement "puVar12 = (undefined1 *)FUN_00149ab3(0x20);" (assignment_expression "puVar12 = (undefined1 *)FUN_00149ab3(0x20)" identifier = (cast_expression "(undefined1 *)FUN_00149ab3(0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "*puVar12 = 0xf;" (assignment_expression "*puVar12 = 0xf" (pointer_expression "*puVar12" * identifier) = number_literal) ;) (expression_statement "*(byte **)(puVar12 + 0x10) = DAT_001c6498;" (assignment_expression "*(byte **)(puVar12 + 0x10) = DAT_001c6498" (pointer_expression "*(byte **)(puVar12 + 0x10)" * (cast_expression "(byte **)(puVar12 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x10)" ( (binary_expression "puVar12 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;" (assignment_expression "*(undefined8 *)(puVar12 + 0x18) = DAT_001c6490" (pointer_expression "*(undefined8 *)(puVar12 + 0x18)" * (cast_expression "(undefined8 *)(puVar12 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x18)" ( (binary_expression "puVar12 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*unaff_RBP = puVar12;" (assignment_expression "*unaff_RBP = puVar12" (pointer_expression "*unaff_RBP" * identifier) = identifier) ;) (expression_statement "unaff_RBP = (undefined1 **)(puVar12 + 8);" (assignment_expression "unaff_RBP = (undefined1 **)(puVar12 + 8)" identifier = (cast_expression "(undefined1 **)(puVar12 + 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 8)" ( (binary_expression "puVar12 + 8" identifier + number_literal) )))) ;) (while_statement "while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }" while (parenthesized_expression "(iVar6 = FUN_0014ecf5(), iVar6 != 3)" ( (comma_expression "iVar6 = FUN_0014ecf5(), iVar6 != 3" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) , (binary_expression "iVar6 != 3" identifier != number_literal)) )) (compound_statement "{\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }" { (expression_statement "*unaff_RBP = (undefined1 *)0x0;" (assignment_expression "*unaff_RBP = (undefined1 *)0x0" (pointer_expression "*unaff_RBP" * identifier) = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined1 **)(pcVar9 + 8) = local_48;" (assignment_expression "*(undefined1 **)(pcVar9 + 8) = local_48" (pointer_expression "*(undefined1 **)(pcVar9 + 8)" * (cast_expression "(undefined1 **)(pcVar9 + 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 8)" ( (binary_expression "pcVar9 + 8" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;" if (parenthesized_expression "((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04'))" ( (binary_expression "(DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')" (parenthesized_expression "(DAT_001c65ab == '\x01')" ( (binary_expression "DAT_001c65ab == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) || (parenthesized_expression "(DAT_001c65ab == '\x04')" ( (binary_expression "DAT_001c65ab == '\x04'" identifier == (char_literal "'\x04'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_001502d6;" goto statement_identifier ;)) (expression_statement "FUN_0014bd14(0xffffffff);" (call_expression "FUN_0014bd14(0xffffffff)" identifier (argument_list "(0xffffffff)" ( number_literal ))) ;) (labeled_statement "LAB_00150350:\n        unaff_RBP = &local_48;" statement_identifier : (expression_statement "unaff_RBP = &local_48;" (assignment_expression "unaff_RBP = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;)) })) }) while (parenthesized_expression "( true )" ( true )) ;)) (case_statement "case 0x1a:" case number_literal :) (case_statement "case 0x1b:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = (DAT_001c65ab != '\x1b') + '\t';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0xf) {\n      FUN_0014bd14(0xf);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    iVar6 = 0x10;\n    goto LAB_00150178;" case number_literal : (expression_statement "pcVar9 = (char *)FUN_00149ab3(0x18);" (assignment_expression "pcVar9 = (char *)FUN_00149ab3(0x18)" identifier = (cast_expression "(char *)FUN_00149ab3(0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00149ab3(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "*pcVar9 = (DAT_001c65ab != '\x1b') + '\t';" (assignment_expression "*pcVar9 = (DAT_001c65ab != '\x1b') + '\t'" (pointer_expression "*pcVar9" * identifier) = (binary_expression "(DAT_001c65ab != '\x1b') + '\t'" (parenthesized_expression "(DAT_001c65ab != '\x1b')" ( (binary_expression "DAT_001c65ab != '\x1b'" identifier != (char_literal "'\x1b'" ' escape_sequence ')) )) + (char_literal "'\t'" ' escape_sequence '))) ;) (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" identifier = (call_expression "FUN_0014eeae(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined8 *)(pcVar9 + 8) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar9 + 8) = uVar10" (pointer_expression "*(undefined8 *)(pcVar9 + 8)" * (cast_expression "(undefined8 *)(pcVar9 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 8)" ( (binary_expression "pcVar9 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" identifier = (call_expression "FUN_0014ecf5()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 != 0xf) {\n      FUN_0014bd14(0xf);\n    }" if (parenthesized_expression "(iVar6 != 0xf)" ( (binary_expression "iVar6 != 0xf" identifier != number_literal) )) (compound_statement "{\n      FUN_0014bd14(0xf);\n    }" { (expression_statement "FUN_0014bd14(0xf);" (call_expression "FUN_0014bd14(0xf)" identifier (argument_list "(0xf)" ( number_literal ))) ;) })) (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" identifier = (call_expression "FUN_0014eeae(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined8 *)(pcVar9 + 0x10) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar9 + 0x10) = uVar10" (pointer_expression "*(undefined8 *)(pcVar9 + 0x10)" * (cast_expression "(undefined8 *)(pcVar9 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x10)" ( (binary_expression "pcVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = 0x10;" (assignment_expression "iVar6 = 0x10" identifier = number_literal) ;) (goto_statement "goto LAB_00150178;" goto statement_identifier ;)) (case_statement "case 0x1c:\n    pcVar9 = (char *)FUN_0014eeae(0);\n    iVar6 = 0x1d;\n    goto LAB_00150178;" case number_literal : (expression_statement "pcVar9 = (char *)FUN_0014eeae(0);" (assignment_expression "pcVar9 = (char *)FUN_0014eeae(0)" identifier = (cast_expression "(char *)FUN_0014eeae(0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0014eeae(0)" identifier (argument_list "(0)" ( number_literal ))))) ;) (expression_statement "iVar6 = 0x1d;" (assignment_expression "iVar6 = 0x1d" identifier = number_literal) ;) (goto_statement "goto LAB_00150178;" goto statement_identifier ;)) })) (labeled_statement "LAB_0015082d:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" { (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return pcVar9;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement default : (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) while (parenthesized_expression ( BOOL )) ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT < (subscript_expression (parenthesized_expression ( (ERROR (pointer_expression & IDENT) : :) IDENT )) [ IDENT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression (parenthesized_expression ( (ERROR (pointer_expression & IDENT) : :) IDENT )) [ IDENT ]) == LIT)) ;) (switch_statement switch (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) (compound_statement { (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;))) (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 ( (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }))) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = BOOL) ;) })) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) , (binary_expression IDENT != IDENT)) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT < (subscript_expression (parenthesized_expression ( (ERROR (pointer_expression & IDENT) : :) IDENT )) [ (binary_expression IDENT - LIT) ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression (parenthesized_expression ( (ERROR (pointer_expression & IDENT) : :) IDENT )) [ (binary_expression IDENT - LIT) ]) == LIT)) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 ;)) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) && (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (unary_expression ! IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) , (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) & LIT) )) != LIT) )))) )) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_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 IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) }))) (goto_statement goto statement_identifier ;)) })) })) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;) })) (break_statement break ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;)) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;))) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT == LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) , (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence '))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_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) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (labeled_statement 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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (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) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) })) }) while (parenthesized_expression ( BOOL )) ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) + (char_literal ' escape_sequence '))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "char * FUN_001500b6(void)\n\n{\n  undefined4 uVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  char *pcVar9;\n  undefined8 uVar10;\n  char *pcVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  byte *pbVar14;\n  undefined8 *puVar15;\n  long lVar16;\n  undefined1 **unaff_RBP;\n  long *plVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  char *unaff_R12;\n  long *plVar20;\n  undefined1 **ppuVar21;\n  long in_FS_OFFSET;\n  undefined1 uVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  byte bVar26;\n  long local_60;\n  long local_58;\n  long local_50;\n  undefined1 *local_48;\n  long local_40;\n  \n  bVar26 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_60 = 0;\n  uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n  uVar5 = FUN_0014ecf5();\n  switch(uVar5) {\n  default:\n    FUN_0014bd14(0xffffffff);\n  case 0x17:\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\b';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x19) {\n      FUN_0014bd14(0x19);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    pcVar11 = pcVar9;\n    do {\n      iVar6 = FUN_0014ecf5();\n      unaff_R12 = pcVar11;\n      if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }\n      pcVar11 = (char *)FUN_00149ab3(0x20);\n      *(char **)(unaff_R12 + 0x18) = pcVar11;\n      *pcVar11 = '\b';\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 8) = uVar10;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 0x10) = uVar10;\n    } while( true );\n  case 2:\n  case 3:\n  case 0x16:\n    DAT_001c65ad = 1;\n    local_58 = 0;\n    local_50 = 0;\n    local_48 = (undefined1 *)0x0;\n    uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n    bVar4 = false;\n    bVar2 = false;\n    bVar3 = true;\n    ppuVar21 = &local_48;\n    plVar17 = &local_50;\n    pcVar9 = (char *)0x0;\n    plVar20 = &local_58;\nLAB_001505a5:\n    DAT_001c65af = bVar3;\n    uVar8 = FUN_0014ecf5();\n    if (uVar8 < 0x17) {\n      uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];\n      uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;\n      switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }\n      goto LAB_001505a5;\n    }\nswitchD_001505ce_caseD_0:\nLAB_00150605:\n    DAT_001c65ad = 1;\n    *plVar20 = 0;\n    *plVar17 = 0;\n    *ppuVar21 = (undefined1 *)0x0;\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(long *)(pcVar9 + 0x10) = local_58;\n    *(long *)(pcVar9 + 8) = local_50;\n    *(undefined1 **)(pcVar9 + 0x18) = local_48;\n    break;\n  case 9:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\x04';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = 10;\n    goto LAB_00150178;\n  case 0xe:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\f';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 3) {\n      FUN_0014bd14(3);\n    }\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    *puVar12 = 0xf;\n    *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n    *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x18) {\n      FUN_0014bd14(0x18);\n    }\n    pcVar11 = pcVar9 + 0x10;\n    do {\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n      if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *(undefined1 **)pcVar11 = puVar12;\n      *puVar12 = 0xd;\n      puVar15 = (undefined8 *)(puVar12 + 0x10);\n      while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }\n      if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }\n      uVar10 = FUN_0014eeae(2);\n      *(undefined8 *)(puVar12 + 0x18) = uVar10;\n      pcVar11 = puVar12 + 8;\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n    } while (iVar6 == 0xb);\n    FUN_0014bd14(0xb);\nLAB_001504a6:\n    pcVar11[0] = '\0';\n    pcVar11[1] = '\0';\n    pcVar11[2] = '\0';\n    pcVar11[3] = '\0';\n    pcVar11[4] = '\0';\n    pcVar11[5] = '\0';\n    pcVar11[6] = '\0';\n    pcVar11[7] = '\0';\nLAB_001504ae:\n    DAT_001c65af = 3;\n    plVar17 = &local_60;\n    while (iVar6 = FUN_0014ecf5(), iVar6 == 2) {\n      *plVar17 = (long)DAT_001c6488;\n      plVar17 = (long *)(DAT_001c6488 + 8);\n      FUN_0014edac();\n    }\n    DAT_001c65ad = 1;\n    *plVar17 = 0;\n    lVar16 = local_60;\n    if (local_60 != 0) {\n      if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }\n      *(long *)(pcVar9 + 0x10) = lVar16;\n    }\n    break;\n  case 0x15:\n    iVar6 = FUN_0014ecf5();\n    if (((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')) {\n      FUN_001487a2("bad for loop variable");\n    }\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\v';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(byte **)(pcVar9 + 0x18) = DAT_001c6498;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0x18) goto LAB_00150350;\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *puVar12 = 0xf;\n    *(undefined **)(puVar12 + 0x10) = &DAT_001bc672;\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    if (DAT_001c65ab != '\x04') {\n      DAT_001c65ad = 1;\n    }\nLAB_001502d6:\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0xf) {\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n      iVar6 = 0x10;\n      goto LAB_00150178;\n    }\n    FUN_0014bd14(0xf);\n    do {\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *puVar12 = 0xf;\n      *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n      *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n      *unaff_RBP = puVar12;\n      unaff_RBP = (undefined1 **)(puVar12 + 8);\n      while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }\n    } while( true );\n  case 0x1a:\n  case 0x1b:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = (DAT_001c65ab != '\x1b') + '\t';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0xf) {\n      FUN_0014bd14(0xf);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    iVar6 = 0x10;\n    goto LAB_00150178;\n  case 0x1c:\n    pcVar9 = (char *)FUN_0014eeae(0);\n    iVar6 = 0x1d;\n    goto LAB_00150178;\n  }\nLAB_0015082d:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return pcVar9;\n}" (primitive_type "char") (pointer_declarator "* FUN_001500b6(void)" (* "*") (function_declarator "FUN_001500b6(void)" (identifier "FUN_001500b6") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")")))) (compound_statement "{\n  undefined4 uVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  char *pcVar9;\n  undefined8 uVar10;\n  char *pcVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  byte *pbVar14;\n  undefined8 *puVar15;\n  long lVar16;\n  undefined1 **unaff_RBP;\n  long *plVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  char *unaff_R12;\n  long *plVar20;\n  undefined1 **ppuVar21;\n  long in_FS_OFFSET;\n  undefined1 uVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  byte bVar26;\n  long local_60;\n  long local_58;\n  long local_50;\n  undefined1 *local_48;\n  long local_40;\n  \n  bVar26 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_60 = 0;\n  uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n  uVar5 = FUN_0014ecf5();\n  switch(uVar5) {\n  default:\n    FUN_0014bd14(0xffffffff);\n  case 0x17:\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\b';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x19) {\n      FUN_0014bd14(0x19);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    pcVar11 = pcVar9;\n    do {\n      iVar6 = FUN_0014ecf5();\n      unaff_R12 = pcVar11;\n      if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }\n      pcVar11 = (char *)FUN_00149ab3(0x20);\n      *(char **)(unaff_R12 + 0x18) = pcVar11;\n      *pcVar11 = '\b';\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 8) = uVar10;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 0x10) = uVar10;\n    } while( true );\n  case 2:\n  case 3:\n  case 0x16:\n    DAT_001c65ad = 1;\n    local_58 = 0;\n    local_50 = 0;\n    local_48 = (undefined1 *)0x0;\n    uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n    bVar4 = false;\n    bVar2 = false;\n    bVar3 = true;\n    ppuVar21 = &local_48;\n    plVar17 = &local_50;\n    pcVar9 = (char *)0x0;\n    plVar20 = &local_58;\nLAB_001505a5:\n    DAT_001c65af = bVar3;\n    uVar8 = FUN_0014ecf5();\n    if (uVar8 < 0x17) {\n      uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];\n      uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;\n      switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }\n      goto LAB_001505a5;\n    }\nswitchD_001505ce_caseD_0:\nLAB_00150605:\n    DAT_001c65ad = 1;\n    *plVar20 = 0;\n    *plVar17 = 0;\n    *ppuVar21 = (undefined1 *)0x0;\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(long *)(pcVar9 + 0x10) = local_58;\n    *(long *)(pcVar9 + 8) = local_50;\n    *(undefined1 **)(pcVar9 + 0x18) = local_48;\n    break;\n  case 9:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\x04';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = 10;\n    goto LAB_00150178;\n  case 0xe:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\f';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 3) {\n      FUN_0014bd14(3);\n    }\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    *puVar12 = 0xf;\n    *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n    *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x18) {\n      FUN_0014bd14(0x18);\n    }\n    pcVar11 = pcVar9 + 0x10;\n    do {\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n      if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *(undefined1 **)pcVar11 = puVar12;\n      *puVar12 = 0xd;\n      puVar15 = (undefined8 *)(puVar12 + 0x10);\n      while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }\n      if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }\n      uVar10 = FUN_0014eeae(2);\n      *(undefined8 *)(puVar12 + 0x18) = uVar10;\n      pcVar11 = puVar12 + 8;\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n    } while (iVar6 == 0xb);\n    FUN_0014bd14(0xb);\nLAB_001504a6:\n    pcVar11[0] = '\0';\n    pcVar11[1] = '\0';\n    pcVar11[2] = '\0';\n    pcVar11[3] = '\0';\n    pcVar11[4] = '\0';\n    pcVar11[5] = '\0';\n    pcVar11[6] = '\0';\n    pcVar11[7] = '\0';\nLAB_001504ae:\n    DAT_001c65af = 3;\n    plVar17 = &local_60;\n    while (iVar6 = FUN_0014ecf5(), iVar6 == 2) {\n      *plVar17 = (long)DAT_001c6488;\n      plVar17 = (long *)(DAT_001c6488 + 8);\n      FUN_0014edac();\n    }\n    DAT_001c65ad = 1;\n    *plVar17 = 0;\n    lVar16 = local_60;\n    if (local_60 != 0) {\n      if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }\n      *(long *)(pcVar9 + 0x10) = lVar16;\n    }\n    break;\n  case 0x15:\n    iVar6 = FUN_0014ecf5();\n    if (((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')) {\n      FUN_001487a2("bad for loop variable");\n    }\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\v';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(byte **)(pcVar9 + 0x18) = DAT_001c6498;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0x18) goto LAB_00150350;\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *puVar12 = 0xf;\n    *(undefined **)(puVar12 + 0x10) = &DAT_001bc672;\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    if (DAT_001c65ab != '\x04') {\n      DAT_001c65ad = 1;\n    }\nLAB_001502d6:\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0xf) {\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n      iVar6 = 0x10;\n      goto LAB_00150178;\n    }\n    FUN_0014bd14(0xf);\n    do {\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *puVar12 = 0xf;\n      *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n      *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n      *unaff_RBP = puVar12;\n      unaff_RBP = (undefined1 **)(puVar12 + 8);\n      while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }\n    } while( true );\n  case 0x1a:\n  case 0x1b:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = (DAT_001c65ab != '\x1b') + '\t';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0xf) {\n      FUN_0014bd14(0xf);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    iVar6 = 0x10;\n    goto LAB_00150178;\n  case 0x1c:\n    pcVar9 = (char *)FUN_0014eeae(0);\n    iVar6 = 0x1d;\n    goto LAB_00150178;\n  }\nLAB_0015082d:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return pcVar9;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "bool bVar3;" (primitive_type "bool") (identifier "bVar3") (; ";")) (declaration "bool bVar4;" (primitive_type "bool") (identifier "bVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "char *pcVar9;" (primitive_type "char") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "undefined8 uVar10;" (type_identifier "undefined8") (identifier "uVar10") (; ";")) (declaration "char *pcVar11;" (primitive_type "char") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "undefined1 *puVar12;" (type_identifier "undefined1") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "undefined1 *puVar13;" (type_identifier "undefined1") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "byte *pbVar14;" (type_identifier "byte") (pointer_declarator "*pbVar14" (* "*") (identifier "pbVar14")) (; ";")) (declaration "undefined8 *puVar15;" (type_identifier "undefined8") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "long lVar16;" (sized_type_specifier "long" (long "long")) (identifier "lVar16") (; ";")) (declaration "undefined1 **unaff_RBP;" (type_identifier "undefined1") (pointer_declarator "**unaff_RBP" (* "*") (pointer_declarator "*unaff_RBP" (* "*") (identifier "unaff_RBP"))) (; ";")) (declaration "long *plVar17;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar17" (* "*") (identifier "plVar17")) (; ";")) (declaration "byte *pbVar18;" (type_identifier "byte") (pointer_declarator "*pbVar18" (* "*") (identifier "pbVar18")) (; ";")) (declaration "byte *pbVar19;" (type_identifier "byte") (pointer_declarator "*pbVar19" (* "*") (identifier "pbVar19")) (; ";")) (declaration "char *unaff_R12;" (primitive_type "char") (pointer_declarator "*unaff_R12" (* "*") (identifier "unaff_R12")) (; ";")) (declaration "long *plVar20;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar20" (* "*") (identifier "plVar20")) (; ";")) (declaration "undefined1 **ppuVar21;" (type_identifier "undefined1") (pointer_declarator "**ppuVar21" (* "*") (pointer_declarator "*ppuVar21" (* "*") (identifier "ppuVar21"))) (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "undefined1 uVar22;" (type_identifier "undefined1") (identifier "uVar22") (; ";")) (declaration "bool bVar23;" (primitive_type "bool") (identifier "bVar23") (; ";")) (declaration "undefined1 uVar24;" (type_identifier "undefined1") (identifier "uVar24") (; ";")) (declaration "bool bVar25;" (primitive_type "bool") (identifier "bVar25") (; ";")) (declaration "byte bVar26;" (type_identifier "byte") (identifier "bVar26") (; ";")) (declaration "long local_60;" (sized_type_specifier "long" (long "long")) (identifier "local_60") (; ";")) (declaration "long local_58;" (sized_type_specifier "long" (long "long")) (identifier "local_58") (; ";")) (declaration "long local_50;" (sized_type_specifier "long" (long "long")) (identifier "local_50") (; ";")) (declaration "undefined1 *local_48;" (type_identifier "undefined1") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "bVar26 = 0;" (assignment_expression "bVar26 = 0" (identifier "bVar26") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);" (assignment_expression "uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined4 *)(PTR_DAT_001c6260 + 8)" (* "*") (cast_expression "(undefined4 *)(PTR_DAT_001c6260 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_001c6260 + 8)" (( "(") (binary_expression "PTR_DAT_001c6260 + 8" (identifier "PTR_DAT_001c6260") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar5 = FUN_0014ecf5();" (assignment_expression "uVar5 = FUN_0014ecf5()" (identifier "uVar5") (= "=") (call_expression "FUN_0014ecf5()" (identifier "FUN_0014ecf5") (argument_list "()" (( "(") () ")")))) (; ";")) (switch_statement "switch(uVar5) {\n  default:\n    FUN_0014bd14(0xffffffff);\n  case 0x17:\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\b';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x19) {\n      FUN_0014bd14(0x19);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    pcVar11 = pcVar9;\n    do {\n      iVar6 = FUN_0014ecf5();\n      unaff_R12 = pcVar11;\n      if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }\n      pcVar11 = (char *)FUN_00149ab3(0x20);\n      *(char **)(unaff_R12 + 0x18) = pcVar11;\n      *pcVar11 = '\b';\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 8) = uVar10;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 0x10) = uVar10;\n    } while( true );\n  case 2:\n  case 3:\n  case 0x16:\n    DAT_001c65ad = 1;\n    local_58 = 0;\n    local_50 = 0;\n    local_48 = (undefined1 *)0x0;\n    uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n    bVar4 = false;\n    bVar2 = false;\n    bVar3 = true;\n    ppuVar21 = &local_48;\n    plVar17 = &local_50;\n    pcVar9 = (char *)0x0;\n    plVar20 = &local_58;\nLAB_001505a5:\n    DAT_001c65af = bVar3;\n    uVar8 = FUN_0014ecf5();\n    if (uVar8 < 0x17) {\n      uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];\n      uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;\n      switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }\n      goto LAB_001505a5;\n    }\nswitchD_001505ce_caseD_0:\nLAB_00150605:\n    DAT_001c65ad = 1;\n    *plVar20 = 0;\n    *plVar17 = 0;\n    *ppuVar21 = (undefined1 *)0x0;\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(long *)(pcVar9 + 0x10) = local_58;\n    *(long *)(pcVar9 + 8) = local_50;\n    *(undefined1 **)(pcVar9 + 0x18) = local_48;\n    break;\n  case 9:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\x04';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = 10;\n    goto LAB_00150178;\n  case 0xe:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\f';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 3) {\n      FUN_0014bd14(3);\n    }\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    *puVar12 = 0xf;\n    *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n    *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x18) {\n      FUN_0014bd14(0x18);\n    }\n    pcVar11 = pcVar9 + 0x10;\n    do {\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n      if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *(undefined1 **)pcVar11 = puVar12;\n      *puVar12 = 0xd;\n      puVar15 = (undefined8 *)(puVar12 + 0x10);\n      while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }\n      if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }\n      uVar10 = FUN_0014eeae(2);\n      *(undefined8 *)(puVar12 + 0x18) = uVar10;\n      pcVar11 = puVar12 + 8;\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n    } while (iVar6 == 0xb);\n    FUN_0014bd14(0xb);\nLAB_001504a6:\n    pcVar11[0] = '\0';\n    pcVar11[1] = '\0';\n    pcVar11[2] = '\0';\n    pcVar11[3] = '\0';\n    pcVar11[4] = '\0';\n    pcVar11[5] = '\0';\n    pcVar11[6] = '\0';\n    pcVar11[7] = '\0';\nLAB_001504ae:\n    DAT_001c65af = 3;\n    plVar17 = &local_60;\n    while (iVar6 = FUN_0014ecf5(), iVar6 == 2) {\n      *plVar17 = (long)DAT_001c6488;\n      plVar17 = (long *)(DAT_001c6488 + 8);\n      FUN_0014edac();\n    }\n    DAT_001c65ad = 1;\n    *plVar17 = 0;\n    lVar16 = local_60;\n    if (local_60 != 0) {\n      if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }\n      *(long *)(pcVar9 + 0x10) = lVar16;\n    }\n    break;\n  case 0x15:\n    iVar6 = FUN_0014ecf5();\n    if (((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')) {\n      FUN_001487a2("bad for loop variable");\n    }\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\v';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(byte **)(pcVar9 + 0x18) = DAT_001c6498;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0x18) goto LAB_00150350;\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *puVar12 = 0xf;\n    *(undefined **)(puVar12 + 0x10) = &DAT_001bc672;\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    if (DAT_001c65ab != '\x04') {\n      DAT_001c65ad = 1;\n    }\nLAB_001502d6:\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0xf) {\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n      iVar6 = 0x10;\n      goto LAB_00150178;\n    }\n    FUN_0014bd14(0xf);\n    do {\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *puVar12 = 0xf;\n      *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n      *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n      *unaff_RBP = puVar12;\n      unaff_RBP = (undefined1 **)(puVar12 + 8);\n      while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }\n    } while( true );\n  case 0x1a:\n  case 0x1b:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = (DAT_001c65ab != '\x1b') + '\t';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0xf) {\n      FUN_0014bd14(0xf);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    iVar6 = 0x10;\n    goto LAB_00150178;\n  case 0x1c:\n    pcVar9 = (char *)FUN_0014eeae(0);\n    iVar6 = 0x1d;\n    goto LAB_00150178;\n  }" (switch "switch") (parenthesized_expression "(uVar5)" (( "(") (identifier "uVar5") () ")")) (compound_statement "{\n  default:\n    FUN_0014bd14(0xffffffff);\n  case 0x17:\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\b';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x19) {\n      FUN_0014bd14(0x19);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    pcVar11 = pcVar9;\n    do {\n      iVar6 = FUN_0014ecf5();\n      unaff_R12 = pcVar11;\n      if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }\n      pcVar11 = (char *)FUN_00149ab3(0x20);\n      *(char **)(unaff_R12 + 0x18) = pcVar11;\n      *pcVar11 = '\b';\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 8) = uVar10;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 0x10) = uVar10;\n    } while( true );\n  case 2:\n  case 3:\n  case 0x16:\n    DAT_001c65ad = 1;\n    local_58 = 0;\n    local_50 = 0;\n    local_48 = (undefined1 *)0x0;\n    uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n    bVar4 = false;\n    bVar2 = false;\n    bVar3 = true;\n    ppuVar21 = &local_48;\n    plVar17 = &local_50;\n    pcVar9 = (char *)0x0;\n    plVar20 = &local_58;\nLAB_001505a5:\n    DAT_001c65af = bVar3;\n    uVar8 = FUN_0014ecf5();\n    if (uVar8 < 0x17) {\n      uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];\n      uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;\n      switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }\n      goto LAB_001505a5;\n    }\nswitchD_001505ce_caseD_0:\nLAB_00150605:\n    DAT_001c65ad = 1;\n    *plVar20 = 0;\n    *plVar17 = 0;\n    *ppuVar21 = (undefined1 *)0x0;\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(long *)(pcVar9 + 0x10) = local_58;\n    *(long *)(pcVar9 + 8) = local_50;\n    *(undefined1 **)(pcVar9 + 0x18) = local_48;\n    break;\n  case 9:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\x04';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = 10;\n    goto LAB_00150178;\n  case 0xe:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\f';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 3) {\n      FUN_0014bd14(3);\n    }\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    *puVar12 = 0xf;\n    *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n    *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x18) {\n      FUN_0014bd14(0x18);\n    }\n    pcVar11 = pcVar9 + 0x10;\n    do {\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n      if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *(undefined1 **)pcVar11 = puVar12;\n      *puVar12 = 0xd;\n      puVar15 = (undefined8 *)(puVar12 + 0x10);\n      while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }\n      if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }\n      uVar10 = FUN_0014eeae(2);\n      *(undefined8 *)(puVar12 + 0x18) = uVar10;\n      pcVar11 = puVar12 + 8;\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n    } while (iVar6 == 0xb);\n    FUN_0014bd14(0xb);\nLAB_001504a6:\n    pcVar11[0] = '\0';\n    pcVar11[1] = '\0';\n    pcVar11[2] = '\0';\n    pcVar11[3] = '\0';\n    pcVar11[4] = '\0';\n    pcVar11[5] = '\0';\n    pcVar11[6] = '\0';\n    pcVar11[7] = '\0';\nLAB_001504ae:\n    DAT_001c65af = 3;\n    plVar17 = &local_60;\n    while (iVar6 = FUN_0014ecf5(), iVar6 == 2) {\n      *plVar17 = (long)DAT_001c6488;\n      plVar17 = (long *)(DAT_001c6488 + 8);\n      FUN_0014edac();\n    }\n    DAT_001c65ad = 1;\n    *plVar17 = 0;\n    lVar16 = local_60;\n    if (local_60 != 0) {\n      if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }\n      *(long *)(pcVar9 + 0x10) = lVar16;\n    }\n    break;\n  case 0x15:\n    iVar6 = FUN_0014ecf5();\n    if (((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')) {\n      FUN_001487a2("bad for loop variable");\n    }\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\v';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(byte **)(pcVar9 + 0x18) = DAT_001c6498;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0x18) goto LAB_00150350;\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *puVar12 = 0xf;\n    *(undefined **)(puVar12 + 0x10) = &DAT_001bc672;\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    if (DAT_001c65ab != '\x04') {\n      DAT_001c65ad = 1;\n    }\nLAB_001502d6:\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0xf) {\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n      iVar6 = 0x10;\n      goto LAB_00150178;\n    }\n    FUN_0014bd14(0xf);\n    do {\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *puVar12 = 0xf;\n      *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n      *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n      *unaff_RBP = puVar12;\n      unaff_RBP = (undefined1 **)(puVar12 + 8);\n      while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }\n    } while( true );\n  case 0x1a:\n  case 0x1b:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = (DAT_001c65ab != '\x1b') + '\t';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0xf) {\n      FUN_0014bd14(0xf);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    iVar6 = 0x10;\n    goto LAB_00150178;\n  case 0x1c:\n    pcVar9 = (char *)FUN_0014eeae(0);\n    iVar6 = 0x1d;\n    goto LAB_00150178;\n  }" ({ "{") (case_statement "default:\n    FUN_0014bd14(0xffffffff);" (default "default") (: ":") (expression_statement "FUN_0014bd14(0xffffffff);" (call_expression "FUN_0014bd14(0xffffffff)" (identifier "FUN_0014bd14") (argument_list "(0xffffffff)" (( "(") (number_literal "0xffffffff") () ")"))) (; ";"))) (case_statement "case 0x17:\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\b';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x19) {\n      FUN_0014bd14(0x19);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    pcVar11 = pcVar9;\n    do {\n      iVar6 = FUN_0014ecf5();\n      unaff_R12 = pcVar11;\n      if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }\n      pcVar11 = (char *)FUN_00149ab3(0x20);\n      *(char **)(unaff_R12 + 0x18) = pcVar11;\n      *pcVar11 = '\b';\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 8) = uVar10;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 0x10) = uVar10;\n    } while( true );" (case "case") (number_literal "0x17") (: ":") (expression_statement "pcVar9 = (char *)FUN_00149ab3(0x20);" (assignment_expression "pcVar9 = (char *)FUN_00149ab3(0x20)" (identifier "pcVar9") (= "=") (cast_expression "(char *)FUN_00149ab3(0x20)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00149ab3(0x20)" (identifier "FUN_00149ab3") (argument_list "(0x20)" (( "(") (number_literal "0x20") () ")"))))) (; ";")) (expression_statement "*pcVar9 = '\b';" (assignment_expression "*pcVar9 = '\b'" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (= "=") (char_literal "'\b'" (' "'") (escape_sequence "\b") (' "'"))) (; ";")) (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" (identifier "uVar10") (= "=") (call_expression "FUN_0014eeae(0)" (identifier "FUN_0014eeae") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(pcVar9 + 8) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar9 + 8) = uVar10" (pointer_expression "*(undefined8 *)(pcVar9 + 8)" (* "*") (cast_expression "(undefined8 *)(pcVar9 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 8)" (( "(") (binary_expression "pcVar9 + 8" (identifier "pcVar9") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" (identifier "iVar6") (= "=") (call_expression "FUN_0014ecf5()" (identifier "FUN_0014ecf5") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar6 != 0x19) {\n      FUN_0014bd14(0x19);\n    }" (if "if") (parenthesized_expression "(iVar6 != 0x19)" (( "(") (binary_expression "iVar6 != 0x19" (identifier "iVar6") (!= "!=") (number_literal "0x19")) () ")")) (compound_statement "{\n      FUN_0014bd14(0x19);\n    }" ({ "{") (expression_statement "FUN_0014bd14(0x19);" (call_expression "FUN_0014bd14(0x19)" (identifier "FUN_0014bd14") (argument_list "(0x19)" (( "(") (number_literal "0x19") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" (identifier "uVar10") (= "=") (call_expression "FUN_0014eeae(0)" (identifier "FUN_0014eeae") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(pcVar9 + 0x10) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar9 + 0x10) = uVar10" (pointer_expression "*(undefined8 *)(pcVar9 + 0x10)" (* "*") (cast_expression "(undefined8 *)(pcVar9 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x10)" (( "(") (binary_expression "pcVar9 + 0x10" (identifier "pcVar9") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "pcVar11 = pcVar9;" (assignment_expression "pcVar11 = pcVar9" (identifier "pcVar11") (= "=") (identifier "pcVar9")) (; ";")) (do_statement "do {\n      iVar6 = FUN_0014ecf5();\n      unaff_R12 = pcVar11;\n      if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }\n      pcVar11 = (char *)FUN_00149ab3(0x20);\n      *(char **)(unaff_R12 + 0x18) = pcVar11;\n      *pcVar11 = '\b';\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 8) = uVar10;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 0x10) = uVar10;\n    } while( true );" (do "do") (compound_statement "{\n      iVar6 = FUN_0014ecf5();\n      unaff_R12 = pcVar11;\n      if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }\n      pcVar11 = (char *)FUN_00149ab3(0x20);\n      *(char **)(unaff_R12 + 0x18) = pcVar11;\n      *pcVar11 = '\b';\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 8) = uVar10;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar11 + 0x10) = uVar10;\n    }" ({ "{") (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" (identifier "iVar6") (= "=") (call_expression "FUN_0014ecf5()" (identifier "FUN_0014ecf5") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "unaff_R12 = pcVar11;" (assignment_expression "unaff_R12 = pcVar11" (identifier "unaff_R12") (= "=") (identifier "pcVar11")) (; ";")) (if_statement "if (iVar6 != 0x11) {\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }" (if "if") (parenthesized_expression "(iVar6 != 0x11)" (( "(") (binary_expression "iVar6 != 0x11" (identifier "iVar6") (!= "!=") (number_literal "0x11")) () ")")) (compound_statement "{\n        if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }\nLAB_00150178:\n        iVar7 = FUN_0014ecf5();\n        if (iVar7 == iVar6) goto LAB_001504ae;\n        FUN_0014bd14(iVar6);\n      }" ({ "{") (if_statement "if (DAT_001c65ab == '\x12') {\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }\n        else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }" (if "if") (parenthesized_expression "(DAT_001c65ab == '\x12')" (( "(") (binary_expression "DAT_001c65ab == '\x12'" (identifier "DAT_001c65ab") (== "==") (char_literal "'\x12'" (' "'") (escape_sequence "\x12") (' "'"))) () ")")) (compound_statement "{\n          uVar10 = FUN_0014eeae(0);\n          *(undefined8 *)(pcVar11 + 0x18) = uVar10;\n          iVar6 = 0x14;\n        }" ({ "{") (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" (identifier "uVar10") (= "=") (call_expression "FUN_0014eeae(0)" (identifier "FUN_0014eeae") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(pcVar11 + 0x18) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar11 + 0x18) = uVar10" (pointer_expression "*(undefined8 *)(pcVar11 + 0x18)" (* "*") (cast_expression "(undefined8 *)(pcVar11 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x18)" (( "(") (binary_expression "pcVar11 + 0x18" (identifier "pcVar11") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "iVar6 = 0x14;" (assignment_expression "iVar6 = 0x14" (identifier "iVar6") (= "=") (number_literal "0x14")) (; ";")) (} "}")) (else_clause "else {\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }" (else "else") (compound_statement "{\n          pcVar11[0x18] = '\0';\n          pcVar11[0x19] = '\0';\n          pcVar11[0x1a] = '\0';\n          pcVar11[0x1b] = '\0';\n          pcVar11[0x1c] = '\0';\n          pcVar11[0x1d] = '\0';\n          pcVar11[0x1e] = '\0';\n          pcVar11[0x1f] = '\0';\n          DAT_001c65ad = 1;\n          iVar6 = 0x14;\n        }" ({ "{") (expression_statement "pcVar11[0x18] = '\0';" (assignment_expression "pcVar11[0x18] = '\0'" (subscript_expression "pcVar11[0x18]" (identifier "pcVar11") ([ "[") (number_literal "0x18") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar11[0x19] = '\0';" (assignment_expression "pcVar11[0x19] = '\0'" (subscript_expression "pcVar11[0x19]" (identifier "pcVar11") ([ "[") (number_literal "0x19") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar11[0x1a] = '\0';" (assignment_expression "pcVar11[0x1a] = '\0'" (subscript_expression "pcVar11[0x1a]" (identifier "pcVar11") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar11[0x1b] = '\0';" (assignment_expression "pcVar11[0x1b] = '\0'" (subscript_expression "pcVar11[0x1b]" (identifier "pcVar11") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar11[0x1c] = '\0';" (assignment_expression "pcVar11[0x1c] = '\0'" (subscript_expression "pcVar11[0x1c]" (identifier "pcVar11") ([ "[") (number_literal "0x1c") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar11[0x1d] = '\0';" (assignment_expression "pcVar11[0x1d] = '\0'" (subscript_expression "pcVar11[0x1d]" (identifier "pcVar11") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar11[0x1e] = '\0';" (assignment_expression "pcVar11[0x1e] = '\0'" (subscript_expression "pcVar11[0x1e]" (identifier "pcVar11") ([ "[") (number_literal "0x1e") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar11[0x1f] = '\0';" (assignment_expression "pcVar11[0x1f] = '\0'" (subscript_expression "pcVar11[0x1f]" (identifier "pcVar11") ([ "[") (number_literal "0x1f") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "DAT_001c65ad = 1;" (assignment_expression "DAT_001c65ad = 1" (identifier "DAT_001c65ad") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar6 = 0x14;" (assignment_expression "iVar6 = 0x14" (identifier "iVar6") (= "=") (number_literal "0x14")) (; ";")) (} "}")))) (labeled_statement "LAB_00150178:\n        iVar7 = FUN_0014ecf5();" (statement_identifier "LAB_00150178") (: ":") (expression_statement "iVar7 = FUN_0014ecf5();" (assignment_expression "iVar7 = FUN_0014ecf5()" (identifier "iVar7") (= "=") (call_expression "FUN_0014ecf5()" (identifier "FUN_0014ecf5") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (iVar7 == iVar6) goto LAB_001504ae;" (if "if") (parenthesized_expression "(iVar7 == iVar6)" (( "(") (binary_expression "iVar7 == iVar6" (identifier "iVar7") (== "==") (identifier "iVar6")) () ")")) (goto_statement "goto LAB_001504ae;" (goto "goto") (statement_identifier "LAB_001504ae") (; ";"))) (expression_statement "FUN_0014bd14(iVar6);" (call_expression "FUN_0014bd14(iVar6)" (identifier "FUN_0014bd14") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar11 = (char *)FUN_00149ab3(0x20);" (assignment_expression "pcVar11 = (char *)FUN_00149ab3(0x20)" (identifier "pcVar11") (= "=") (cast_expression "(char *)FUN_00149ab3(0x20)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00149ab3(0x20)" (identifier "FUN_00149ab3") (argument_list "(0x20)" (( "(") (number_literal "0x20") () ")"))))) (; ";")) (expression_statement "*(char **)(unaff_R12 + 0x18) = pcVar11;" (assignment_expression "*(char **)(unaff_R12 + 0x18) = pcVar11" (pointer_expression "*(char **)(unaff_R12 + 0x18)" (* "*") (cast_expression "(char **)(unaff_R12 + 0x18)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_R12 + 0x18)" (( "(") (binary_expression "unaff_R12 + 0x18" (identifier "unaff_R12") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "pcVar11")) (; ";")) (expression_statement "*pcVar11 = '\b';" (assignment_expression "*pcVar11 = '\b'" (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) (= "=") (char_literal "'\b'" (' "'") (escape_sequence "\b") (' "'"))) (; ";")) (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" (identifier "uVar10") (= "=") (call_expression "FUN_0014eeae(0)" (identifier "FUN_0014eeae") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(pcVar11 + 8) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar11 + 8) = uVar10" (pointer_expression "*(undefined8 *)(pcVar11 + 8)" (* "*") (cast_expression "(undefined8 *)(pcVar11 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 8)" (( "(") (binary_expression "pcVar11 + 8" (identifier "pcVar11") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" (identifier "iVar6") (= "=") (call_expression "FUN_0014ecf5()" (identifier "FUN_0014ecf5") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar6 != 0x19) {\n        FUN_0014bd14(0x19);\n      }" (if "if") (parenthesized_expression "(iVar6 != 0x19)" (( "(") (binary_expression "iVar6 != 0x19" (identifier "iVar6") (!= "!=") (number_literal "0x19")) () ")")) (compound_statement "{\n        FUN_0014bd14(0x19);\n      }" ({ "{") (expression_statement "FUN_0014bd14(0x19);" (call_expression "FUN_0014bd14(0x19)" (identifier "FUN_0014bd14") (argument_list "(0x19)" (( "(") (number_literal "0x19") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" (identifier "uVar10") (= "=") (call_expression "FUN_0014eeae(0)" (identifier "FUN_0014eeae") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(pcVar11 + 0x10) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar11 + 0x10) = uVar10" (pointer_expression "*(undefined8 *)(pcVar11 + 0x10)" (* "*") (cast_expression "(undefined8 *)(pcVar11 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x10)" (( "(") (binary_expression "pcVar11 + 0x10" (identifier "pcVar11") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:" (case "case") (number_literal "3") (: ":")) (case_statement "case 0x16:\n    DAT_001c65ad = 1;\n    local_58 = 0;\n    local_50 = 0;\n    local_48 = (undefined1 *)0x0;\n    uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n    bVar4 = false;\n    bVar2 = false;\n    bVar3 = true;\n    ppuVar21 = &local_48;\n    plVar17 = &local_50;\n    pcVar9 = (char *)0x0;\n    plVar20 = &local_58;\nLAB_001505a5:\n    DAT_001c65af = bVar3;\n    uVar8 = FUN_0014ecf5();\n    if (uVar8 < 0x17) {\n      uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];\n      uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;\n      switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }\n      goto LAB_001505a5;\n    }\nswitchD_001505ce_caseD_0:\nLAB_00150605:\n    DAT_001c65ad = 1;\n    *plVar20 = 0;\n    *plVar17 = 0;\n    *ppuVar21 = (undefined1 *)0x0;\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(long *)(pcVar9 + 0x10) = local_58;\n    *(long *)(pcVar9 + 8) = local_50;\n    *(undefined1 **)(pcVar9 + 0x18) = local_48;\n    break;" (case "case") (number_literal "0x16") (: ":") (expression_statement "DAT_001c65ad = 1;" (assignment_expression "DAT_001c65ad = 1" (identifier "DAT_001c65ad") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48 = (undefined1 *)0x0;" (assignment_expression "local_48 = (undefined1 *)0x0" (identifier "local_48") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);" (assignment_expression "uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined4 *)(PTR_DAT_001c6260 + 8)" (* "*") (cast_expression "(undefined4 *)(PTR_DAT_001c6260 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_001c6260 + 8)" (( "(") (binary_expression "PTR_DAT_001c6260 + 8" (identifier "PTR_DAT_001c6260") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" (identifier "bVar4") (= "=") (false "false")) (; ";")) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" (identifier "bVar3") (= "=") (true "true")) (; ";")) (expression_statement "ppuVar21 = &local_48;" (assignment_expression "ppuVar21 = &local_48" (identifier "ppuVar21") (= "=") (pointer_expression "&local_48" (& "&") (identifier "local_48"))) (; ";")) (expression_statement "plVar17 = &local_50;" (assignment_expression "plVar17 = &local_50" (identifier "plVar17") (= "=") (pointer_expression "&local_50" (& "&") (identifier "local_50"))) (; ";")) (expression_statement "pcVar9 = (char *)0x0;" (assignment_expression "pcVar9 = (char *)0x0" (identifier "pcVar9") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "plVar20 = &local_58;" (assignment_expression "plVar20 = &local_58" (identifier "plVar20") (= "=") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) (; ";")) (labeled_statement "LAB_001505a5:\n    DAT_001c65af = bVar3;" (statement_identifier "LAB_001505a5") (: ":") (expression_statement "DAT_001c65af = bVar3;" (assignment_expression "DAT_001c65af = bVar3" (identifier "DAT_001c65af") (= "=") (identifier "bVar3")) (; ";"))) (expression_statement "uVar8 = FUN_0014ecf5();" (assignment_expression "uVar8 = FUN_0014ecf5()" (identifier "uVar8") (= "=") (call_expression "FUN_0014ecf5()" (identifier "FUN_0014ecf5") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (uVar8 < 0x17) {\n      uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];\n      uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;\n      switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }\n      goto LAB_001505a5;\n    }" (if "if") (parenthesized_expression "(uVar8 < 0x17)" (( "(") (binary_expression "uVar8 < 0x17" (identifier "uVar8") (< "<") (number_literal "0x17")) () ")")) (compound_statement "{\n      uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];\n      uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;\n      switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }\n      goto LAB_001505a5;\n    }" ({ "{") (expression_statement "uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];" (assignment_expression "uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8]" (identifier "uVar22") (= "=") (binary_expression "0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8]" (number_literal "0xffe503ab") (< "<") (subscript_expression "(&switchD_001505ce::switchdataD_001afc54)[uVar8]" (parenthesized_expression "(&switchD_001505ce::switchdataD_001afc54)" (( "(") (ERROR "&switchD_001505ce::" (pointer_expression "&switchD_001505ce" (& "&") (identifier "switchD_001505ce")) (: ":") (: ":")) (identifier "switchdataD_001afc54") () ")")) ([ "[") (identifier "uVar8") (] "]")))) (; ";")) (expression_statement "uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;" (assignment_expression "uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac" (identifier "uVar24") (= "=") (binary_expression "(&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac" (subscript_expression "(&switchD_001505ce::switchdataD_001afc54)[uVar8]" (parenthesized_expression "(&switchD_001505ce::switchdataD_001afc54)" (( "(") (ERROR "&switchD_001505ce::" (pointer_expression "&switchD_001505ce" (& "&") (identifier "switchD_001505ce")) (: ":") (: ":")) (identifier "switchdataD_001afc54") () ")")) ([ "[") (identifier "uVar8") (] "]")) (== "==") (number_literal "0xffe503ac"))) (; ";")) (switch_statement "switch((ulong)uVar8) {\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }" (switch "switch") (parenthesized_expression "((ulong)uVar8)" (( "(") (cast_expression "(ulong)uVar8" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar8")) () ")")) (compound_statement "{\n      default:\n        goto switchD_001505ce_caseD_0;\n      case 2:\n        goto switchD_001505ce_caseD_2;\n      case 6:\n      case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }\n      case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;\n      case 9:\n        goto switchD_001505ce_caseD_9;\n      case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;\n      }" ({ "{") (case_statement "default:\n        goto switchD_001505ce_caseD_0;" (default "default") (: ":") (goto_statement "goto switchD_001505ce_caseD_0;" (goto "goto") (statement_identifier "switchD_001505ce_caseD_0") (; ";"))) (case_statement "case 2:\n        goto switchD_001505ce_caseD_2;" (case "case") (number_literal "2") (: ":") (goto_statement "goto switchD_001505ce_caseD_2;" (goto "goto") (statement_identifier "switchD_001505ce_caseD_2") (; ";"))) (case_statement "case 6:" (case "case") (number_literal "6") (: ":")) (case_statement "case 7:\nswitchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;\n        uVar22 = uVar8 < 6;\n        uVar24 = uVar8 == 6;\n        DAT_001c6498 = (byte *)0x1c08af;\n        if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }" (case "case") (number_literal "7") (: ":") (labeled_statement "switchD_001505ce_caseD_6:\n        if (!bVar2) goto LAB_00150605;" (statement_identifier "switchD_001505ce_caseD_6") (: ":") (if_statement "if (!bVar2) goto LAB_00150605;" (if "if") (parenthesized_expression "(!bVar2)" (( "(") (unary_expression "!bVar2" (! "!") (identifier "bVar2")) () ")")) (goto_statement "goto LAB_00150605;" (goto "goto") (statement_identifier "LAB_00150605") (; ";")))) (expression_statement "uVar22 = uVar8 < 6;" (assignment_expression "uVar22 = uVar8 < 6" (identifier "uVar22") (= "=") (binary_expression "uVar8 < 6" (identifier "uVar8") (< "<") (number_literal "6"))) (; ";")) (expression_statement "uVar24 = uVar8 == 6;" (assignment_expression "uVar24 = uVar8 == 6" (identifier "uVar24") (= "=") (binary_expression "uVar8 == 6" (identifier "uVar8") (== "==") (number_literal "6"))) (; ";")) (expression_statement "DAT_001c6498 = (byte *)0x1c08af;" (assignment_expression "DAT_001c6498 = (byte *)0x1c08af" (identifier "DAT_001c6498") (= "=") (cast_expression "(byte *)0x1c08af" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1c08af"))) (; ";")) (if_statement "if (!(bool)uVar24) {\n          DAT_001c6498 = &DAT_001bc1a5;\n        }" (if "if") (parenthesized_expression "(!(bool)uVar24)" (( "(") (unary_expression "!(bool)uVar24" (! "!") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24"))) () ")")) (compound_statement "{\n          DAT_001c6498 = &DAT_001bc1a5;\n        }" ({ "{") (expression_statement "DAT_001c6498 = &DAT_001bc1a5;" (assignment_expression "DAT_001c6498 = &DAT_001bc1a5" (identifier "DAT_001c6498") (= "=") (pointer_expression "&DAT_001bc1a5" (& "&") (identifier "DAT_001bc1a5"))) (; ";")) (} "}")))) (case_statement "case 3:\n        pcVar9 = (char *)FUN_00149ab3(0x20);\n        *pcVar9 = '\x0f';\n        pbVar18 = DAT_001c6498;\n        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;\n        lVar16 = 3;\n        pbVar14 = &DAT_001bc467;\n        pbVar19 = pbVar18;\n        do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);\n        bVar23 = false;\n        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;\n        if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }\n        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;\n        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }\n        if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }\n        break;" (case "case") (number_literal "3") (: ":") (expression_statement "pcVar9 = (char *)FUN_00149ab3(0x20);" (assignment_expression "pcVar9 = (char *)FUN_00149ab3(0x20)" (identifier "pcVar9") (= "=") (cast_expression "(char *)FUN_00149ab3(0x20)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00149ab3(0x20)" (identifier "FUN_00149ab3") (argument_list "(0x20)" (( "(") (number_literal "0x20") () ")"))))) (; ";")) (expression_statement "*pcVar9 = '\x0f';" (assignment_expression "*pcVar9 = '\x0f'" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (= "=") (char_literal "'\x0f'" (' "'") (escape_sequence "\x0f") (' "'"))) (; ";")) (expression_statement "pbVar18 = DAT_001c6498;" (assignment_expression "pbVar18 = DAT_001c6498" (identifier "pbVar18") (= "=") (identifier "DAT_001c6498")) (; ";")) (expression_statement "*(byte **)(pcVar9 + 0x10) = DAT_001c6498;" (assignment_expression "*(byte **)(pcVar9 + 0x10) = DAT_001c6498" (pointer_expression "*(byte **)(pcVar9 + 0x10)" (* "*") (cast_expression "(byte **)(pcVar9 + 0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x10)" (( "(") (binary_expression "pcVar9 + 0x10" (identifier "pcVar9") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "DAT_001c6498")) (; ";")) (expression_statement "lVar16 = 3;" (assignment_expression "lVar16 = 3" (identifier "lVar16") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar14 = &DAT_001bc467;" (assignment_expression "pbVar14 = &DAT_001bc467" (identifier "pbVar14") (= "=") (pointer_expression "&DAT_001bc467" (& "&") (identifier "DAT_001bc467"))) (; ";")) (expression_statement "pbVar19 = pbVar18;" (assignment_expression "pbVar19 = pbVar18" (identifier "pbVar19") (= "=") (identifier "pbVar18")) (; ";")) (do_statement "do {\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        } while ((bool)uVar24);" (do "do") (compound_statement "{\n          if (lVar16 == 0) break;\n          lVar16 = lVar16 + -1;\n          uVar22 = *pbVar14 < *pbVar19;\n          uVar24 = *pbVar14 == *pbVar19;\n          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n        }" ({ "{") (if_statement "if (lVar16 == 0) break;" (if "if") (parenthesized_expression "(lVar16 == 0)" (( "(") (binary_expression "lVar16 == 0" (identifier "lVar16") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar16 = lVar16 + -1;" (assignment_expression "lVar16 = lVar16 + -1" (identifier "lVar16") (= "=") (binary_expression "lVar16 + -1" (identifier "lVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar22 = *pbVar14 < *pbVar19;" (assignment_expression "uVar22 = *pbVar14 < *pbVar19" (identifier "uVar22") (= "=") (binary_expression "*pbVar14 < *pbVar19" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "uVar24 = *pbVar14 == *pbVar19;" (assignment_expression "uVar24 = *pbVar14 == *pbVar19" (identifier "uVar24") (= "=") (binary_expression "*pbVar14 == *pbVar19" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar26 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar26 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar24)" (( "(") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24")) () ")")) (; ";")) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (expression_statement "bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;" (assignment_expression "bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22" (identifier "bVar25") (= "=") (binary_expression "(!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22" (parenthesized_expression "(!(bool)uVar22 && !(bool)uVar24)" (( "(") (binary_expression "!(bool)uVar22 && !(bool)uVar24" (unary_expression "!(bool)uVar22" (! "!") (cast_expression "(bool)uVar22" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar22"))) (&& "&&") (unary_expression "!(bool)uVar24" (! "!") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24")))) () ")")) (== "==") (cast_expression "(bool)uVar22" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar22")))) (; ";")) (if_statement "if (bVar25) {\n          bVar2 = true;\n        }\n        else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }" (if "if") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (compound_statement "{\n          bVar2 = true;\n        }" ({ "{") (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (} "}")) (else_clause "else {\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }" (else "else") (compound_statement "{\n          lVar16 = 3;\n          pbVar14 = (byte *)0x1bf6dc;\n          pbVar19 = pbVar18;\n          do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);\n          if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }\n        }" ({ "{") (expression_statement "lVar16 = 3;" (assignment_expression "lVar16 = 3" (identifier "lVar16") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar14 = (byte *)0x1bf6dc;" (assignment_expression "pbVar14 = (byte *)0x1bf6dc" (identifier "pbVar14") (= "=") (cast_expression "(byte *)0x1bf6dc" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1bf6dc"))) (; ";")) (expression_statement "pbVar19 = pbVar18;" (assignment_expression "pbVar19 = pbVar18" (identifier "pbVar19") (= "=") (identifier "pbVar18")) (; ";")) (do_statement "do {\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          } while (bVar25);" (do "do") (compound_statement "{\n            if (lVar16 == 0) break;\n            lVar16 = lVar16 + -1;\n            bVar23 = *pbVar14 < *pbVar19;\n            bVar25 = *pbVar14 == *pbVar19;\n            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;\n          }" ({ "{") (if_statement "if (lVar16 == 0) break;" (if "if") (parenthesized_expression "(lVar16 == 0)" (( "(") (binary_expression "lVar16 == 0" (identifier "lVar16") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar16 = lVar16 + -1;" (assignment_expression "lVar16 = lVar16 + -1" (identifier "lVar16") (= "=") (binary_expression "lVar16 + -1" (identifier "lVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar23 = *pbVar14 < *pbVar19;" (assignment_expression "bVar23 = *pbVar14 < *pbVar19" (identifier "bVar23") (= "=") (binary_expression "*pbVar14 < *pbVar19" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "bVar25 = *pbVar14 == *pbVar19;" (assignment_expression "bVar25 = *pbVar14 == *pbVar19" (identifier "bVar25") (= "=") (binary_expression "*pbVar14 == *pbVar19" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar26 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar26 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (; ";")) (if_statement "if ((!bVar23 && !bVar25) == bVar23) {\n            bVar2 = false;\n          }" (if "if") (parenthesized_expression "((!bVar23 && !bVar25) == bVar23)" (( "(") (binary_expression "(!bVar23 && !bVar25) == bVar23" (parenthesized_expression "(!bVar23 && !bVar25)" (( "(") (binary_expression "!bVar23 && !bVar25" (unary_expression "!bVar23" (! "!") (identifier "bVar23")) (&& "&&") (unary_expression "!bVar25" (! "!") (identifier "bVar25"))) () ")")) (== "==") (identifier "bVar23")) () ")")) (compound_statement "{\n            bVar2 = false;\n          }" ({ "{") (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (} "}"))) (} "}")))) (expression_statement "*(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;" (assignment_expression "*(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490" (pointer_expression "*(undefined8 *)(pcVar9 + 0x18)" (* "*") (cast_expression "(undefined8 *)(pcVar9 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x18)" (( "(") (binary_expression "pcVar9 + 0x18" (identifier "pcVar9") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "DAT_001c6490")) (; ";")) (if_statement "if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)) {\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }\n        else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }" (if "if") (parenthesized_expression "(((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d))" (( "(") (binary_expression "((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&\n           (*pbVar14 == 0x3d)" (parenthesized_expression "((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14))" (( "(") (binary_expression "(bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)" (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (&& "&&") (parenthesized_expression "(pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)" (( "(") (comma_expression "pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14" (assignment_expression "pbVar14 = (byte *)FUN_0019afcf(pbVar18)" (identifier "pbVar14") (= "=") (cast_expression "(byte *)FUN_0019afcf(pbVar18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0019afcf(pbVar18)" (identifier "FUN_0019afcf") (argument_list "(pbVar18)" (( "(") (identifier "pbVar18") () ")"))))) (, ",") (binary_expression "pbVar18 != pbVar14" (identifier "pbVar18") (!= "!=") (identifier "pbVar14"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*pbVar14 == 0x3d)" (( "(") (binary_expression "*pbVar14 == 0x3d" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (== "==") (number_literal "0x3d")) () ")"))) () ")")) (compound_statement "{\n          *plVar17 = (long)pcVar9;\n          plVar17 = (long *)(pcVar9 + 8);\n        }" ({ "{") (expression_statement "*plVar17 = (long)pcVar9;" (assignment_expression "*plVar17 = (long)pcVar9" (pointer_expression "*plVar17" (* "*") (identifier "plVar17")) (= "=") (cast_expression "(long)pcVar9" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar9"))) (; ";")) (expression_statement "plVar17 = (long *)(pcVar9 + 8);" (assignment_expression "plVar17 = (long *)(pcVar9 + 8)" (identifier "plVar17") (= "=") (cast_expression "(long *)(pcVar9 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 8)" (( "(") (binary_expression "pcVar9 + 8" (identifier "pcVar9") (+ "+") (number_literal "8")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }" (else "else") (compound_statement "{\n          *plVar20 = (long)pcVar9;\n          plVar20 = (long *)(pcVar9 + 8);\n          bVar3 = false;\n        }" ({ "{") (expression_statement "*plVar20 = (long)pcVar9;" (assignment_expression "*plVar20 = (long)pcVar9" (pointer_expression "*plVar20" (* "*") (identifier "plVar20")) (= "=") (cast_expression "(long)pcVar9" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar9"))) (; ";")) (expression_statement "plVar20 = (long *)(pcVar9 + 8);" (assignment_expression "plVar20 = (long *)(pcVar9 + 8)" (identifier "plVar20") (= "=") (cast_expression "(long *)(pcVar9 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 8)" (( "(") (binary_expression "pcVar9 + 8" (identifier "pcVar9") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" (identifier "bVar3") (= "=") (false "false")) (; ";")) (} "}")))) (if_statement "if (bVar4) {\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }" (if "if") (parenthesized_expression "(bVar4)" (( "(") (identifier "bVar4") () ")")) (compound_statement "{\n          DAT_001c65af = 6;\n          iVar6 = FUN_0014ecf5();\n          DAT_001c65ad = 1;\n          if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }\n          FUN_0014bd14(0xffffffff);\nswitchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;\n          *ppuVar21 = DAT_001c6488;\n          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);\n          FUN_0014edac();\n          break;\n        }" ({ "{") (expression_statement "DAT_001c65af = 6;" (assignment_expression "DAT_001c65af = 6" (identifier "DAT_001c65af") (= "=") (number_literal "6")) (; ";")) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" (identifier "iVar6") (= "=") (call_expression "FUN_0014ecf5()" (identifier "FUN_0014ecf5") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "DAT_001c65ad = 1;" (assignment_expression "DAT_001c65ad = 1" (identifier "DAT_001c65ad") (= "=") (number_literal "1")) (; ";")) (if_statement "if (iVar6 - 3U < 0x1a) {\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }" (if "if") (parenthesized_expression "(iVar6 - 3U < 0x1a)" (( "(") (binary_expression "iVar6 - 3U < 0x1a" (binary_expression "iVar6 - 3U" (identifier "iVar6") (- "-") (number_literal "3U")) (< "<") (number_literal "0x1a")) () ")")) (compound_statement "{\n            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];\n            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;\n            switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }\n          }" ({ "{") (expression_statement "bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];" (assignment_expression "bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U]" (identifier "bVar23") (= "=") (binary_expression "0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U]" (number_literal "0xffe5034f") (< "<") (subscript_expression "(&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U]" (parenthesized_expression "(&switchD_00150729::switchdataD_001afcb0)" (( "(") (ERROR "&switchD_00150729::" (pointer_expression "&switchD_00150729" (& "&") (identifier "switchD_00150729")) (: ":") (: ":")) (identifier "switchdataD_001afcb0") () ")")) ([ "[") (binary_expression "iVar6 - 3U" (identifier "iVar6") (- "-") (number_literal "3U")) (] "]")))) (; ";")) (expression_statement "bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;" (assignment_expression "bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350" (identifier "bVar25") (= "=") (binary_expression "(&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350" (subscript_expression "(&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U]" (parenthesized_expression "(&switchD_00150729::switchdataD_001afcb0)" (( "(") (ERROR "&switchD_00150729::" (pointer_expression "&switchD_00150729" (& "&") (identifier "switchD_00150729")) (: ":") (: ":")) (identifier "switchdataD_001afcb0") () ")")) ([ "[") (binary_expression "iVar6 - 3U" (identifier "iVar6") (- "-") (number_literal "3U")) (] "]")) (== "==") (number_literal "0xffe50350"))) (; ";")) (switch_statement "switch(iVar6) {\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }" (switch "switch") (parenthesized_expression "(iVar6)" (( "(") (identifier "iVar6") () ")")) (compound_statement "{\n            case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;\n            case 9:\n              bVar4 = false;\n              goto LAB_001505a5;\n            case 0xe:\n            case 0x15:\n            case 0x17:\n            case 0x1a:\n            case 0x1b:\n            case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;\n            }" ({ "{") (case_statement "case 3:\n              lVar16 = 3;\n              pbVar18 = &DAT_001bc467;\n              pbVar14 = DAT_001c6498;\n              do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);\n              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;\n              break;" (case "case") (number_literal "3") (: ":") (expression_statement "lVar16 = 3;" (assignment_expression "lVar16 = 3" (identifier "lVar16") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar18 = &DAT_001bc467;" (assignment_expression "pbVar18 = &DAT_001bc467" (identifier "pbVar18") (= "=") (pointer_expression "&DAT_001bc467" (& "&") (identifier "DAT_001bc467"))) (; ";")) (expression_statement "pbVar14 = DAT_001c6498;" (assignment_expression "pbVar14 = DAT_001c6498" (identifier "pbVar14") (= "=") (identifier "DAT_001c6498")) (; ";")) (do_statement "do {\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              } while (bVar25);" (do "do") (compound_statement "{\n                if (lVar16 == 0) break;\n                lVar16 = lVar16 + -1;\n                bVar23 = *pbVar18 < *pbVar14;\n                bVar25 = *pbVar18 == *pbVar14;\n                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;\n                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;\n              }" ({ "{") (if_statement "if (lVar16 == 0) break;" (if "if") (parenthesized_expression "(lVar16 == 0)" (( "(") (binary_expression "lVar16 == 0" (identifier "lVar16") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar16 = lVar16 + -1;" (assignment_expression "lVar16 = lVar16 + -1" (identifier "lVar16") (= "=") (binary_expression "lVar16 + -1" (identifier "lVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar23 = *pbVar18 < *pbVar14;" (assignment_expression "bVar23 = *pbVar18 < *pbVar14" (identifier "bVar23") (= "=") (binary_expression "*pbVar18 < *pbVar14" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar25 = *pbVar18 == *pbVar14;" (assignment_expression "bVar25 = *pbVar18 == *pbVar14" (identifier "bVar25") (= "=") (binary_expression "*pbVar18 == *pbVar14" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar18 + (ulong)bVar26 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar26 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (; ";")) (if_statement "if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;" (if "if") (parenthesized_expression "((!bVar23 && !bVar25) == bVar23)" (( "(") (binary_expression "(!bVar23 && !bVar25) == bVar23" (parenthesized_expression "(!bVar23 && !bVar25)" (( "(") (binary_expression "!bVar23 && !bVar25" (unary_expression "!bVar23" (! "!") (identifier "bVar23")) (&& "&&") (unary_expression "!bVar25" (! "!") (identifier "bVar25"))) () ")")) (== "==") (identifier "bVar23")) () ")")) (goto_statement "goto switchD_001505ce_caseD_9;" (goto "goto") (statement_identifier "switchD_001505ce_caseD_9") (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 9:\n              bVar4 = false;\n              goto LAB_001505a5;" (case "case") (number_literal "9") (: ":") (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" (identifier "bVar4") (= "=") (false "false")) (; ";")) (goto_statement "goto LAB_001505a5;" (goto "goto") (statement_identifier "LAB_001505a5") (; ";"))) (case_statement "case 0xe:" (case "case") (number_literal "0xe") (: ":")) (case_statement "case 0x15:" (case "case") (number_literal "0x15") (: ":")) (case_statement "case 0x17:" (case "case") (number_literal "0x17") (: ":")) (case_statement "case 0x1a:" (case "case") (number_literal "0x1a") (: ":")) (case_statement "case 0x1b:" (case "case") (number_literal "0x1b") (: ":")) (case_statement "case 0x1c:\nswitchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }\n              goto switchD_001505ce_caseD_0;" (case "case") (number_literal "0x1c") (: ":") (labeled_statement "switchD_001505ce_caseD_9:\n              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }" (statement_identifier "switchD_001505ce_caseD_9") (: ":") (if_statement "if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)) {\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }" (if "if") (parenthesized_expression "((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0))" (( "(") (binary_expression "(((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&\n                 (local_48 == (undefined1 *)0x0)" (parenthesized_expression "(((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0))" (( "(") (binary_expression "((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)" (parenthesized_expression "((local_58 != 0) && (plVar20 == (long *)(local_58 + 8)))" (( "(") (binary_expression "(local_58 != 0) && (plVar20 == (long *)(local_58 + 8))" (parenthesized_expression "(local_58 != 0)" (( "(") (binary_expression "local_58 != 0" (identifier "local_58") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(plVar20 == (long *)(local_58 + 8))" (( "(") (binary_expression "plVar20 == (long *)(local_58 + 8)" (identifier "plVar20") (== "==") (cast_expression "(long *)(local_58 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_58 + 8)" (( "(") (binary_expression "local_58 + 8" (identifier "local_58") (+ "+") (number_literal "8")) () ")")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_50 == 0)" (( "(") (binary_expression "local_50 == 0" (identifier "local_50") (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_48 == (undefined1 *)0x0)" (( "(") (binary_expression "local_48 == (undefined1 *)0x0" (identifier "local_48") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }\n                uVar10 = *(undefined8 *)(pcVar9 + 0x10);\n                pcVar11 = (char *)FUN_0019afcf(uVar10);\n                if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }\n                *pcVar9 = '\x0e';\n                DAT_001c65af = 7;\n                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);\n                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);\n                uVar10 = FUN_001500b6();\n                *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n                goto LAB_0015082d;\n              }" ({ "{") (if_statement "if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {\n                  FUN_0014bd14(10);\n                }" (if "if") (parenthesized_expression "((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10))" (( "(") (binary_expression "(!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)" (parenthesized_expression "(!bVar4)" (( "(") (unary_expression "!bVar4" (! "!") (identifier "bVar4")) () ")")) (&& "&&") (parenthesized_expression "(iVar6 = FUN_0014ecf5(), iVar6 != 10)" (( "(") (comma_expression "iVar6 = FUN_0014ecf5(), iVar6 != 10" (assignment_expression "iVar6 = FUN_0014ecf5()" (identifier "iVar6") (= "=") (call_expression "FUN_0014ecf5()" (identifier "FUN_0014ecf5") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar6 != 10" (identifier "iVar6") (!= "!=") (number_literal "10"))) () ")"))) () ")")) (compound_statement "{\n                  FUN_0014bd14(10);\n                }" ({ "{") (expression_statement "FUN_0014bd14(10);" (call_expression "FUN_0014bd14(10)" (identifier "FUN_0014bd14") (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar10 = *(undefined8 *)(pcVar9 + 0x10);" (assignment_expression "uVar10 = *(undefined8 *)(pcVar9 + 0x10)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined8 *)(pcVar9 + 0x10)" (* "*") (cast_expression "(undefined8 *)(pcVar9 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x10)" (( "(") (binary_expression "pcVar9 + 0x10" (identifier "pcVar9") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "pcVar11 = (char *)FUN_0019afcf(uVar10);" (assignment_expression "pcVar11 = (char *)FUN_0019afcf(uVar10)" (identifier "pcVar11") (= "=") (cast_expression "(char *)FUN_0019afcf(uVar10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0019afcf(uVar10)" (identifier "FUN_0019afcf") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))))) (; ";")) (if_statement "if ((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))) {\n                  FUN_001487a2("bad function name");\n                }" (if "if") (parenthesized_expression "((*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0))))" (( "(") (binary_expression "(*pcVar11 != '\0') ||\n                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))" (parenthesized_expression "(*pcVar11 != '\0')" (( "(") (binary_expression "*pcVar11 != '\0'" (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)))" (( "(") (parenthesized_expression "(puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0))" (( "(") (comma_expression "puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)" (assignment_expression "puVar15 = (undefined8 *)FUN_001472bc(uVar10)" (identifier "puVar15") (= "=") (cast_expression "(undefined8 *)FUN_001472bc(uVar10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001472bc(uVar10)" (identifier "FUN_001472bc") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))))) (, ",") (binary_expression "puVar15 != (undefined8 *)0x0 &&\n                    ((*(byte *)*puVar15 & 1) != 0)" (binary_expression "puVar15 != (undefined8 *)0x0" (identifier "puVar15") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (parenthesized_expression "((*(byte *)*puVar15 & 1) != 0)" (( "(") (binary_expression "(*(byte *)*puVar15 & 1) != 0" (parenthesized_expression "(*(byte *)*puVar15 & 1)" (( "(") (binary_expression "*(byte *)*puVar15 & 1" (pointer_expression "*(byte *)*puVar15" (* "*") (cast_expression "(byte *)*puVar15" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar15" (* "*") (identifier "puVar15")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n                  FUN_001487a2("bad function name");\n                }" ({ "{") (expression_statement "FUN_001487a2("bad function name");" (call_expression "FUN_001487a2("bad function name")" (identifier "FUN_001487a2") (argument_list "("bad function name")" (( "(") (string_literal ""bad function name"" (" """) (string_content "bad function name") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "*pcVar9 = '\x0e';" (assignment_expression "*pcVar9 = '\x0e'" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (= "=") (char_literal "'\x0e'" (' "'") (escape_sequence "\x0e") (' "'"))) (; ";")) (expression_statement "DAT_001c65af = 7;" (assignment_expression "DAT_001c65af = 7" (identifier "DAT_001c65af") (= "=") (number_literal "7")) (; ";")) (expression_statement "*(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);" (assignment_expression "*(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10)" (pointer_expression "*(undefined8 *)(pcVar9 + 8)" (* "*") (cast_expression "(undefined8 *)(pcVar9 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 8)" (( "(") (binary_expression "pcVar9 + 8" (identifier "pcVar9") (+ "+") (number_literal "8")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)(pcVar9 + 0x10)" (* "*") (cast_expression "(undefined8 *)(pcVar9 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x10)" (( "(") (binary_expression "pcVar9 + 0x10" (identifier "pcVar9") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);" (assignment_expression "*(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8)" (pointer_expression "*(undefined4 *)(pcVar9 + 4)" (* "*") (cast_expression "(undefined4 *)(pcVar9 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 4)" (( "(") (binary_expression "pcVar9 + 4" (identifier "pcVar9") (+ "+") (number_literal "4")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(PTR_DAT_001c6260 + 8)" (* "*") (cast_expression "(undefined4 *)(PTR_DAT_001c6260 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_001c6260 + 8)" (( "(") (binary_expression "PTR_DAT_001c6260 + 8" (identifier "PTR_DAT_001c6260") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar10 = FUN_001500b6();" (assignment_expression "uVar10 = FUN_001500b6()" (identifier "uVar10") (= "=") (call_expression "FUN_001500b6()" (identifier "FUN_001500b6") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(pcVar9 + 0x10) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar9 + 0x10) = uVar10" (pointer_expression "*(undefined8 *)(pcVar9 + 0x10)" (* "*") (cast_expression "(undefined8 *)(pcVar9 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x10)" (( "(") (binary_expression "pcVar9 + 0x10" (identifier "pcVar9") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (goto_statement "goto LAB_0015082d;" (goto "goto") (statement_identifier "LAB_0015082d") (; ";")) (} "}")))) (goto_statement "goto switchD_001505ce_caseD_0;" (goto "goto") (statement_identifier "switchD_001505ce_caseD_0") (; ";"))) (} "}"))) (} "}"))) (expression_statement "FUN_0014bd14(0xffffffff);" (call_expression "FUN_0014bd14(0xffffffff)" (identifier "FUN_0014bd14") (argument_list "(0xffffffff)" (( "(") (number_literal "0xffffffff") () ")"))) (; ";")) (labeled_statement "switchD_001505ce_caseD_2:\n          pcVar9 = DAT_001c6488;" (statement_identifier "switchD_001505ce_caseD_2") (: ":") (expression_statement "pcVar9 = DAT_001c6488;" (assignment_expression "pcVar9 = DAT_001c6488" (identifier "pcVar9") (= "=") (identifier "DAT_001c6488")) (; ";"))) (expression_statement "*ppuVar21 = DAT_001c6488;" (assignment_expression "*ppuVar21 = DAT_001c6488" (pointer_expression "*ppuVar21" (* "*") (identifier "ppuVar21")) (= "=") (identifier "DAT_001c6488")) (; ";")) (expression_statement "ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);" (assignment_expression "ppuVar21 = (undefined1 **)(DAT_001c6488 + 8)" (identifier "ppuVar21") (= "=") (cast_expression "(undefined1 **)(DAT_001c6488 + 8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_001c6488 + 8)" (( "(") (binary_expression "DAT_001c6488 + 8" (identifier "DAT_001c6488") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "FUN_0014edac();" (call_expression "FUN_0014edac()" (identifier "FUN_0014edac") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 9:\n        goto switchD_001505ce_caseD_9;" (case "case") (number_literal "9") (: ":") (goto_statement "goto switchD_001505ce_caseD_9;" (goto "goto") (statement_identifier "switchD_001505ce_caseD_9") (; ";"))) (case_statement "case 0x16:\n        iVar6 = FUN_0014ecf5();\n        DAT_001c65ad = 1;\n        if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }\n        bVar4 = true;" (case "case") (number_literal "0x16") (: ":") (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" (identifier "iVar6") (= "=") (call_expression "FUN_0014ecf5()" (identifier "FUN_0014ecf5") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "DAT_001c65ad = 1;" (assignment_expression "DAT_001c65ad = 1" (identifier "DAT_001c65ad") (= "=") (number_literal "1")) (; ";")) (if_statement "if (iVar6 != 3) {\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }" (if "if") (parenthesized_expression "(iVar6 != 3)" (( "(") (binary_expression "iVar6 != 3" (identifier "iVar6") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n          uVar8 = FUN_0014bd14(3);\n          goto switchD_001505ce_caseD_6;\n        }" ({ "{") (expression_statement "uVar8 = FUN_0014bd14(3);" (assignment_expression "uVar8 = FUN_0014bd14(3)" (identifier "uVar8") (= "=") (call_expression "FUN_0014bd14(3)" (identifier "FUN_0014bd14") (argument_list "(3)" (( "(") (number_literal "3") () ")")))) (; ";")) (goto_statement "goto switchD_001505ce_caseD_6;" (goto "goto") (statement_identifier "switchD_001505ce_caseD_6") (; ";")) (} "}"))) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" (identifier "bVar4") (= "=") (true "true")) (; ";"))) (} "}"))) (goto_statement "goto LAB_001505a5;" (goto "goto") (statement_identifier "LAB_001505a5") (; ";")) (} "}"))) (labeled_statement "switchD_001505ce_caseD_0:\nLAB_00150605:\n    DAT_001c65ad = 1;" (statement_identifier "switchD_001505ce_caseD_0") (: ":") (labeled_statement "LAB_00150605:\n    DAT_001c65ad = 1;" (statement_identifier "LAB_00150605") (: ":") (expression_statement "DAT_001c65ad = 1;" (assignment_expression "DAT_001c65ad = 1" (identifier "DAT_001c65ad") (= "=") (number_literal "1")) (; ";")))) (expression_statement "*plVar20 = 0;" (assignment_expression "*plVar20 = 0" (pointer_expression "*plVar20" (* "*") (identifier "plVar20")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*plVar17 = 0;" (assignment_expression "*plVar17 = 0" (pointer_expression "*plVar17" (* "*") (identifier "plVar17")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*ppuVar21 = (undefined1 *)0x0;" (assignment_expression "*ppuVar21 = (undefined1 *)0x0" (pointer_expression "*ppuVar21" (* "*") (identifier "ppuVar21")) (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar9 = (char *)FUN_00149ab3(0x20);" (assignment_expression "pcVar9 = (char *)FUN_00149ab3(0x20)" (identifier "pcVar9") (= "=") (cast_expression "(char *)FUN_00149ab3(0x20)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00149ab3(0x20)" (identifier "FUN_00149ab3") (argument_list "(0x20)" (( "(") (number_literal "0x20") () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(pcVar9 + 4) = uVar1;" (assignment_expression "*(undefined4 *)(pcVar9 + 4) = uVar1" (pointer_expression "*(undefined4 *)(pcVar9 + 4)" (* "*") (cast_expression "(undefined4 *)(pcVar9 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 4)" (( "(") (binary_expression "pcVar9 + 4" (identifier "pcVar9") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "*(long *)(pcVar9 + 0x10) = local_58;" (assignment_expression "*(long *)(pcVar9 + 0x10) = local_58" (pointer_expression "*(long *)(pcVar9 + 0x10)" (* "*") (cast_expression "(long *)(pcVar9 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x10)" (( "(") (binary_expression "pcVar9 + 0x10" (identifier "pcVar9") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "local_58")) (; ";")) (expression_statement "*(long *)(pcVar9 + 8) = local_50;" (assignment_expression "*(long *)(pcVar9 + 8) = local_50" (pointer_expression "*(long *)(pcVar9 + 8)" (* "*") (cast_expression "(long *)(pcVar9 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 8)" (( "(") (binary_expression "pcVar9 + 8" (identifier "pcVar9") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (expression_statement "*(undefined1 **)(pcVar9 + 0x18) = local_48;" (assignment_expression "*(undefined1 **)(pcVar9 + 0x18) = local_48" (pointer_expression "*(undefined1 **)(pcVar9 + 0x18)" (* "*") (cast_expression "(undefined1 **)(pcVar9 + 0x18)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x18)" (( "(") (binary_expression "pcVar9 + 0x18" (identifier "pcVar9") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "local_48")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 9:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\x04';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = 10;\n    goto LAB_00150178;" (case "case") (number_literal "9") (: ":") (expression_statement "pcVar9 = (char *)FUN_00149ab3(0x18);" (assignment_expression "pcVar9 = (char *)FUN_00149ab3(0x18)" (identifier "pcVar9") (= "=") (cast_expression "(char *)FUN_00149ab3(0x18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00149ab3(0x18)" (identifier "FUN_00149ab3") (argument_list "(0x18)" (( "(") (number_literal "0x18") () ")"))))) (; ";")) (expression_statement "*pcVar9 = '\x04';" (assignment_expression "*pcVar9 = '\x04'" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (= "=") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) (; ";")) (expression_statement "*(undefined4 *)(pcVar9 + 4) = uVar1;" (assignment_expression "*(undefined4 *)(pcVar9 + 4) = uVar1" (pointer_expression "*(undefined4 *)(pcVar9 + 4)" (* "*") (cast_expression "(undefined4 *)(pcVar9 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 4)" (( "(") (binary_expression "pcVar9 + 4" (identifier "pcVar9") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" (identifier "uVar10") (= "=") (call_expression "FUN_0014eeae(0)" (identifier "FUN_0014eeae") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(pcVar9 + 8) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar9 + 8) = uVar10" (pointer_expression "*(undefined8 *)(pcVar9 + 8)" (* "*") (cast_expression "(undefined8 *)(pcVar9 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 8)" (( "(") (binary_expression "pcVar9 + 8" (identifier "pcVar9") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "iVar6 = 10;" (assignment_expression "iVar6 = 10" (identifier "iVar6") (= "=") (number_literal "10")) (; ";")) (goto_statement "goto LAB_00150178;" (goto "goto") (statement_identifier "LAB_00150178") (; ";"))) (case_statement "case 0xe:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = '\f';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 3) {\n      FUN_0014bd14(3);\n    }\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    *puVar12 = 0xf;\n    *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n    *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0x18) {\n      FUN_0014bd14(0x18);\n    }\n    pcVar11 = pcVar9 + 0x10;\n    do {\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n      if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *(undefined1 **)pcVar11 = puVar12;\n      *puVar12 = 0xd;\n      puVar15 = (undefined8 *)(puVar12 + 0x10);\n      while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }\n      if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }\n      uVar10 = FUN_0014eeae(2);\n      *(undefined8 *)(puVar12 + 0x18) = uVar10;\n      pcVar11 = puVar12 + 8;\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n    } while (iVar6 == 0xb);\n    FUN_0014bd14(0xb);\nLAB_001504a6:\n    pcVar11[0] = '\0';\n    pcVar11[1] = '\0';\n    pcVar11[2] = '\0';\n    pcVar11[3] = '\0';\n    pcVar11[4] = '\0';\n    pcVar11[5] = '\0';\n    pcVar11[6] = '\0';\n    pcVar11[7] = '\0';\nLAB_001504ae:\n    DAT_001c65af = 3;\n    plVar17 = &local_60;\n    while (iVar6 = FUN_0014ecf5(), iVar6 == 2) {\n      *plVar17 = (long)DAT_001c6488;\n      plVar17 = (long *)(DAT_001c6488 + 8);\n      FUN_0014edac();\n    }\n    DAT_001c65ad = 1;\n    *plVar17 = 0;\n    lVar16 = local_60;\n    if (local_60 != 0) {\n      if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }\n      *(long *)(pcVar9 + 0x10) = lVar16;\n    }\n    break;" (case "case") (number_literal "0xe") (: ":") (expression_statement "pcVar9 = (char *)FUN_00149ab3(0x18);" (assignment_expression "pcVar9 = (char *)FUN_00149ab3(0x18)" (identifier "pcVar9") (= "=") (cast_expression "(char *)FUN_00149ab3(0x18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00149ab3(0x18)" (identifier "FUN_00149ab3") (argument_list "(0x18)" (( "(") (number_literal "0x18") () ")"))))) (; ";")) (expression_statement "*pcVar9 = '\f';" (assignment_expression "*pcVar9 = '\f'" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (= "=") (char_literal "'\f'" (' "'") (escape_sequence "\f") (' "'"))) (; ";")) (expression_statement "*(undefined4 *)(pcVar9 + 4) = uVar1;" (assignment_expression "*(undefined4 *)(pcVar9 + 4) = uVar1" (pointer_expression "*(undefined4 *)(pcVar9 + 4)" (* "*") (cast_expression "(undefined4 *)(pcVar9 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 4)" (( "(") (binary_expression "pcVar9 + 4" (identifier "pcVar9") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" (identifier "iVar6") (= "=") (call_expression "FUN_0014ecf5()" (identifier "FUN_0014ecf5") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar6 != 3) {\n      FUN_0014bd14(3);\n    }" (if "if") (parenthesized_expression "(iVar6 != 3)" (( "(") (binary_expression "iVar6 != 3" (identifier "iVar6") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n      FUN_0014bd14(3);\n    }" ({ "{") (expression_statement "FUN_0014bd14(3);" (call_expression "FUN_0014bd14(3)" (identifier "FUN_0014bd14") (argument_list "(3)" (( "(") (number_literal "3") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar12 = (undefined1 *)FUN_00149ab3(0x20);" (assignment_expression "puVar12 = (undefined1 *)FUN_00149ab3(0x20)" (identifier "puVar12") (= "=") (cast_expression "(undefined1 *)FUN_00149ab3(0x20)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00149ab3(0x20)" (identifier "FUN_00149ab3") (argument_list "(0x20)" (( "(") (number_literal "0x20") () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(pcVar9 + 8) = puVar12;" (assignment_expression "*(undefined1 **)(pcVar9 + 8) = puVar12" (pointer_expression "*(undefined1 **)(pcVar9 + 8)" (* "*") (cast_expression "(undefined1 **)(pcVar9 + 8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 8)" (( "(") (binary_expression "pcVar9 + 8" (identifier "pcVar9") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "puVar12")) (; ";")) (expression_statement "*puVar12 = 0xf;" (assignment_expression "*puVar12 = 0xf" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (= "=") (number_literal "0xf")) (; ";")) (expression_statement "*(byte **)(puVar12 + 0x10) = DAT_001c6498;" (assignment_expression "*(byte **)(puVar12 + 0x10) = DAT_001c6498" (pointer_expression "*(byte **)(puVar12 + 0x10)" (* "*") (cast_expression "(byte **)(puVar12 + 0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x10)" (( "(") (binary_expression "puVar12 + 0x10" (identifier "puVar12") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "DAT_001c6498")) (; ";")) (expression_statement "*(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;" (assignment_expression "*(undefined8 *)(puVar12 + 0x18) = DAT_001c6490" (pointer_expression "*(undefined8 *)(puVar12 + 0x18)" (* "*") (cast_expression "(undefined8 *)(puVar12 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x18)" (( "(") (binary_expression "puVar12 + 0x18" (identifier "puVar12") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "DAT_001c6490")) (; ";")) (expression_statement "DAT_001c65af = 7;" (assignment_expression "DAT_001c65af = 7" (identifier "DAT_001c65af") (= "=") (number_literal "7")) (; ";")) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" (identifier "iVar6") (= "=") (call_expression "FUN_0014ecf5()" (identifier "FUN_0014ecf5") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar6 != 0x18) {\n      FUN_0014bd14(0x18);\n    }" (if "if") (parenthesized_expression "(iVar6 != 0x18)" (( "(") (binary_expression "iVar6 != 0x18" (identifier "iVar6") (!= "!=") (number_literal "0x18")) () ")")) (compound_statement "{\n      FUN_0014bd14(0x18);\n    }" ({ "{") (expression_statement "FUN_0014bd14(0x18);" (call_expression "FUN_0014bd14(0x18)" (identifier "FUN_0014bd14") (argument_list "(0x18)" (( "(") (number_literal "0x18") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar11 = pcVar9 + 0x10;" (assignment_expression "pcVar11 = pcVar9 + 0x10" (identifier "pcVar11") (= "=") (binary_expression "pcVar9 + 0x10" (identifier "pcVar9") (+ "+") (number_literal "0x10"))) (; ";")) (do_statement "do {\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n      if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *(undefined1 **)pcVar11 = puVar12;\n      *puVar12 = 0xd;\n      puVar15 = (undefined8 *)(puVar12 + 0x10);\n      while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }\n      if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }\n      uVar10 = FUN_0014eeae(2);\n      *(undefined8 *)(puVar12 + 0x18) = uVar10;\n      pcVar11 = puVar12 + 8;\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n    } while (iVar6 == 0xb);" (do "do") (compound_statement "{\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n      if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *(undefined1 **)pcVar11 = puVar12;\n      *puVar12 = 0xd;\n      puVar15 = (undefined8 *)(puVar12 + 0x10);\n      while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }\n      if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }\n      uVar10 = FUN_0014eeae(2);\n      *(undefined8 *)(puVar12 + 0x18) = uVar10;\n      pcVar11 = puVar12 + 8;\n      DAT_001c65af = 6;\n      iVar6 = FUN_0014ecf5();\n      if (iVar6 == 0x13) goto LAB_001504a6;\n    }" ({ "{") (expression_statement "DAT_001c65af = 6;" (assignment_expression "DAT_001c65af = 6" (identifier "DAT_001c65af") (= "=") (number_literal "6")) (; ";")) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" (identifier "iVar6") (= "=") (call_expression "FUN_0014ecf5()" (identifier "FUN_0014ecf5") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar6 == 0x13) goto LAB_001504a6;" (if "if") (parenthesized_expression "(iVar6 == 0x13)" (( "(") (binary_expression "iVar6 == 0x13" (identifier "iVar6") (== "==") (number_literal "0x13")) () ")")) (goto_statement "goto LAB_001504a6;" (goto "goto") (statement_identifier "LAB_001504a6") (; ";"))) (if_statement "if (DAT_001c65ab == '\t') {\n        FUN_0014ecf5();\n      }" (if "if") (parenthesized_expression "(DAT_001c65ab == '\t')" (( "(") (binary_expression "DAT_001c65ab == '\t'" (identifier "DAT_001c65ab") (== "==") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'"))) () ")")) (compound_statement "{\n        FUN_0014ecf5();\n      }" ({ "{") (expression_statement "FUN_0014ecf5();" (call_expression "FUN_0014ecf5()" (identifier "FUN_0014ecf5") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar12 = (undefined1 *)FUN_00149ab3(0x20);" (assignment_expression "puVar12 = (undefined1 *)FUN_00149ab3(0x20)" (identifier "puVar12") (= "=") (cast_expression "(undefined1 *)FUN_00149ab3(0x20)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00149ab3(0x20)" (identifier "FUN_00149ab3") (argument_list "(0x20)" (( "(") (number_literal "0x20") () ")"))))) (; ";")) (expression_statement "*(undefined1 **)pcVar11 = puVar12;" (assignment_expression "*(undefined1 **)pcVar11 = puVar12" (pointer_expression "*(undefined1 **)pcVar11" (* "*") (cast_expression "(undefined1 **)pcVar11" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pcVar11"))) (= "=") (identifier "puVar12")) (; ";")) (expression_statement "*puVar12 = 0xd;" (assignment_expression "*puVar12 = 0xd" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (= "=") (number_literal "0xd")) (; ";")) (expression_statement "puVar15 = (undefined8 *)(puVar12 + 0x10);" (assignment_expression "puVar15 = (undefined8 *)(puVar12 + 0x10)" (identifier "puVar15") (= "=") (cast_expression "(undefined8 *)(puVar12 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x10)" (( "(") (binary_expression "puVar12 + 0x10" (identifier "puVar12") (+ "+") (number_literal "0x10")) () ")")))) (; ";")) (while_statement "while( true ) {\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        puVar13 = (undefined1 *)FUN_00149ab3(0x20);\n        *puVar15 = puVar13;\n        *puVar13 = 0xf;\n        *(byte **)(puVar13 + 0x10) = DAT_001c6498;\n        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;\n        local_48 = puVar13;\n        iVar6 = FUN_0014ecf5();\n        if (iVar6 != 8) break;\n        puVar15 = (undefined8 *)(puVar13 + 8);\n        FUN_0014ecf5();\n      }" ({ "{") (expression_statement "puVar13 = (undefined1 *)FUN_00149ab3(0x20);" (assignment_expression "puVar13 = (undefined1 *)FUN_00149ab3(0x20)" (identifier "puVar13") (= "=") (cast_expression "(undefined1 *)FUN_00149ab3(0x20)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00149ab3(0x20)" (identifier "FUN_00149ab3") (argument_list "(0x20)" (( "(") (number_literal "0x20") () ")"))))) (; ";")) (expression_statement "*puVar15 = puVar13;" (assignment_expression "*puVar15 = puVar13" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (= "=") (identifier "puVar13")) (; ";")) (expression_statement "*puVar13 = 0xf;" (assignment_expression "*puVar13 = 0xf" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (number_literal "0xf")) (; ";")) (expression_statement "*(byte **)(puVar13 + 0x10) = DAT_001c6498;" (assignment_expression "*(byte **)(puVar13 + 0x10) = DAT_001c6498" (pointer_expression "*(byte **)(puVar13 + 0x10)" (* "*") (cast_expression "(byte **)(puVar13 + 0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x10)" (( "(") (binary_expression "puVar13 + 0x10" (identifier "puVar13") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "DAT_001c6498")) (; ";")) (expression_statement "*(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;" (assignment_expression "*(undefined8 *)(puVar13 + 0x18) = DAT_001c6490" (pointer_expression "*(undefined8 *)(puVar13 + 0x18)" (* "*") (cast_expression "(undefined8 *)(puVar13 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x18)" (( "(") (binary_expression "puVar13 + 0x18" (identifier "puVar13") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "DAT_001c6490")) (; ";")) (expression_statement "local_48 = puVar13;" (assignment_expression "local_48 = puVar13" (identifier "local_48") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" (identifier "iVar6") (= "=") (call_expression "FUN_0014ecf5()" (identifier "FUN_0014ecf5") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar6 != 8) break;" (if "if") (parenthesized_expression "(iVar6 != 8)" (( "(") (binary_expression "iVar6 != 8" (identifier "iVar6") (!= "!=") (number_literal "8")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar15 = (undefined8 *)(puVar13 + 8);" (assignment_expression "puVar15 = (undefined8 *)(puVar13 + 8)" (identifier "puVar15") (= "=") (cast_expression "(undefined8 *)(puVar13 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 8)" (( "(") (binary_expression "puVar13 + 8" (identifier "puVar13") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "FUN_0014ecf5();" (call_expression "FUN_0014ecf5()" (identifier "FUN_0014ecf5") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (DAT_001c65ab != '\n') {\n        FUN_0014bd14(10);\n      }" (if "if") (parenthesized_expression "(DAT_001c65ab != '\n')" (( "(") (binary_expression "DAT_001c65ab != '\n'" (identifier "DAT_001c65ab") (!= "!=") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")")) (compound_statement "{\n        FUN_0014bd14(10);\n      }" ({ "{") (expression_statement "FUN_0014bd14(10);" (call_expression "FUN_0014bd14(10)" (identifier "FUN_0014bd14") (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar10 = FUN_0014eeae(2);" (assignment_expression "uVar10 = FUN_0014eeae(2)" (identifier "uVar10") (= "=") (call_expression "FUN_0014eeae(2)" (identifier "FUN_0014eeae") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(puVar12 + 0x18) = uVar10;" (assignment_expression "*(undefined8 *)(puVar12 + 0x18) = uVar10" (pointer_expression "*(undefined8 *)(puVar12 + 0x18)" (* "*") (cast_expression "(undefined8 *)(puVar12 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x18)" (( "(") (binary_expression "puVar12 + 0x18" (identifier "puVar12") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "pcVar11 = puVar12 + 8;" (assignment_expression "pcVar11 = puVar12 + 8" (identifier "pcVar11") (= "=") (binary_expression "puVar12 + 8" (identifier "puVar12") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "DAT_001c65af = 6;" (assignment_expression "DAT_001c65af = 6" (identifier "DAT_001c65af") (= "=") (number_literal "6")) (; ";")) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" (identifier "iVar6") (= "=") (call_expression "FUN_0014ecf5()" (identifier "FUN_0014ecf5") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar6 == 0x13) goto LAB_001504a6;" (if "if") (parenthesized_expression "(iVar6 == 0x13)" (( "(") (binary_expression "iVar6 == 0x13" (identifier "iVar6") (== "==") (number_literal "0x13")) () ")")) (goto_statement "goto LAB_001504a6;" (goto "goto") (statement_identifier "LAB_001504a6") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(iVar6 == 0xb)" (( "(") (binary_expression "iVar6 == 0xb" (identifier "iVar6") (== "==") (number_literal "0xb")) () ")")) (; ";")) (expression_statement "FUN_0014bd14(0xb);" (call_expression "FUN_0014bd14(0xb)" (identifier "FUN_0014bd14") (argument_list "(0xb)" (( "(") (number_literal "0xb") () ")"))) (; ";")) (labeled_statement "LAB_001504a6:\n    pcVar11[0] = '\0';" (statement_identifier "LAB_001504a6") (: ":") (expression_statement "pcVar11[0] = '\0';" (assignment_expression "pcVar11[0] = '\0'" (subscript_expression "pcVar11[0]" (identifier "pcVar11") ([ "[") (number_literal "0") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";"))) (expression_statement "pcVar11[1] = '\0';" (assignment_expression "pcVar11[1] = '\0'" (subscript_expression "pcVar11[1]" (identifier "pcVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar11[2] = '\0';" (assignment_expression "pcVar11[2] = '\0'" (subscript_expression "pcVar11[2]" (identifier "pcVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar11[3] = '\0';" (assignment_expression "pcVar11[3] = '\0'" (subscript_expression "pcVar11[3]" (identifier "pcVar11") ([ "[") (number_literal "3") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar11[4] = '\0';" (assignment_expression "pcVar11[4] = '\0'" (subscript_expression "pcVar11[4]" (identifier "pcVar11") ([ "[") (number_literal "4") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar11[5] = '\0';" (assignment_expression "pcVar11[5] = '\0'" (subscript_expression "pcVar11[5]" (identifier "pcVar11") ([ "[") (number_literal "5") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar11[6] = '\0';" (assignment_expression "pcVar11[6] = '\0'" (subscript_expression "pcVar11[6]" (identifier "pcVar11") ([ "[") (number_literal "6") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar11[7] = '\0';" (assignment_expression "pcVar11[7] = '\0'" (subscript_expression "pcVar11[7]" (identifier "pcVar11") ([ "[") (number_literal "7") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (labeled_statement "LAB_001504ae:\n    DAT_001c65af = 3;" (statement_identifier "LAB_001504ae") (: ":") (expression_statement "DAT_001c65af = 3;" (assignment_expression "DAT_001c65af = 3" (identifier "DAT_001c65af") (= "=") (number_literal "3")) (; ";"))) (expression_statement "plVar17 = &local_60;" (assignment_expression "plVar17 = &local_60" (identifier "plVar17") (= "=") (pointer_expression "&local_60" (& "&") (identifier "local_60"))) (; ";")) (while_statement "while (iVar6 = FUN_0014ecf5(), iVar6 == 2) {\n      *plVar17 = (long)DAT_001c6488;\n      plVar17 = (long *)(DAT_001c6488 + 8);\n      FUN_0014edac();\n    }" (while "while") (parenthesized_expression "(iVar6 = FUN_0014ecf5(), iVar6 == 2)" (( "(") (comma_expression "iVar6 = FUN_0014ecf5(), iVar6 == 2" (assignment_expression "iVar6 = FUN_0014ecf5()" (identifier "iVar6") (= "=") (call_expression "FUN_0014ecf5()" (identifier "FUN_0014ecf5") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar6 == 2" (identifier "iVar6") (== "==") (number_literal "2"))) () ")")) (compound_statement "{\n      *plVar17 = (long)DAT_001c6488;\n      plVar17 = (long *)(DAT_001c6488 + 8);\n      FUN_0014edac();\n    }" ({ "{") (expression_statement "*plVar17 = (long)DAT_001c6488;" (assignment_expression "*plVar17 = (long)DAT_001c6488" (pointer_expression "*plVar17" (* "*") (identifier "plVar17")) (= "=") (cast_expression "(long)DAT_001c6488" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "DAT_001c6488"))) (; ";")) (expression_statement "plVar17 = (long *)(DAT_001c6488 + 8);" (assignment_expression "plVar17 = (long *)(DAT_001c6488 + 8)" (identifier "plVar17") (= "=") (cast_expression "(long *)(DAT_001c6488 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001c6488 + 8)" (( "(") (binary_expression "DAT_001c6488 + 8" (identifier "DAT_001c6488") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "FUN_0014edac();" (call_expression "FUN_0014edac()" (identifier "FUN_0014edac") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_001c65ad = 1;" (assignment_expression "DAT_001c65ad = 1" (identifier "DAT_001c65ad") (= "=") (number_literal "1")) (; ";")) (expression_statement "*plVar17 = 0;" (assignment_expression "*plVar17 = 0" (pointer_expression "*plVar17" (* "*") (identifier "plVar17")) (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar16 = local_60;" (assignment_expression "lVar16 = local_60" (identifier "lVar16") (= "=") (identifier "local_60")) (; ";")) (if_statement "if (local_60 != 0) {\n      if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }\n      *(long *)(pcVar9 + 0x10) = lVar16;\n    }" (if "if") (parenthesized_expression "(local_60 != 0)" (( "(") (binary_expression "local_60 != 0" (identifier "local_60") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }\n      *(long *)(pcVar9 + 0x10) = lVar16;\n    }" ({ "{") (if_statement "if (*pcVar9 != '\x04') {\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }" (if "if") (parenthesized_expression "(*pcVar9 != '\x04')" (( "(") (binary_expression "*pcVar9 != '\x04'" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (!= "!=") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) () ")")) (compound_statement "{\n        pcVar11 = (char *)FUN_00149ab3(0x18);\n        *pcVar11 = '\x02';\n        *(undefined4 *)(pcVar11 + 4) = uVar1;\n        *(char **)(pcVar11 + 8) = pcVar9;\n        pcVar9 = pcVar11;\n      }" ({ "{") (expression_statement "pcVar11 = (char *)FUN_00149ab3(0x18);" (assignment_expression "pcVar11 = (char *)FUN_00149ab3(0x18)" (identifier "pcVar11") (= "=") (cast_expression "(char *)FUN_00149ab3(0x18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00149ab3(0x18)" (identifier "FUN_00149ab3") (argument_list "(0x18)" (( "(") (number_literal "0x18") () ")"))))) (; ";")) (expression_statement "*pcVar11 = '\x02';" (assignment_expression "*pcVar11 = '\x02'" (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) (= "=") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) (; ";")) (expression_statement "*(undefined4 *)(pcVar11 + 4) = uVar1;" (assignment_expression "*(undefined4 *)(pcVar11 + 4) = uVar1" (pointer_expression "*(undefined4 *)(pcVar11 + 4)" (* "*") (cast_expression "(undefined4 *)(pcVar11 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 4)" (( "(") (binary_expression "pcVar11 + 4" (identifier "pcVar11") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "*(char **)(pcVar11 + 8) = pcVar9;" (assignment_expression "*(char **)(pcVar11 + 8) = pcVar9" (pointer_expression "*(char **)(pcVar11 + 8)" (* "*") (cast_expression "(char **)(pcVar11 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 8)" (( "(") (binary_expression "pcVar11 + 8" (identifier "pcVar11") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "pcVar9")) (; ";")) (expression_statement "pcVar9 = pcVar11;" (assignment_expression "pcVar9 = pcVar11" (identifier "pcVar9") (= "=") (identifier "pcVar11")) (; ";")) (} "}"))) (expression_statement "*(long *)(pcVar9 + 0x10) = lVar16;" (assignment_expression "*(long *)(pcVar9 + 0x10) = lVar16" (pointer_expression "*(long *)(pcVar9 + 0x10)" (* "*") (cast_expression "(long *)(pcVar9 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x10)" (( "(") (binary_expression "pcVar9 + 0x10" (identifier "pcVar9") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "lVar16")) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x15:\n    iVar6 = FUN_0014ecf5();\n    if (((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')) {\n      FUN_001487a2("bad for loop variable");\n    }\n    pcVar9 = (char *)FUN_00149ab3(0x20);\n    *pcVar9 = '\v';\n    *(undefined4 *)(pcVar9 + 4) = uVar1;\n    *(byte **)(pcVar9 + 0x18) = DAT_001c6498;\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0x18) goto LAB_00150350;\n    puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n    *puVar12 = 0xf;\n    *(undefined **)(puVar12 + 0x10) = &DAT_001bc672;\n    *(undefined1 **)(pcVar9 + 8) = puVar12;\n    if (DAT_001c65ab != '\x04') {\n      DAT_001c65ad = 1;\n    }\nLAB_001502d6:\n    DAT_001c65af = 7;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 == 0xf) {\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n      iVar6 = 0x10;\n      goto LAB_00150178;\n    }\n    FUN_0014bd14(0xf);\n    do {\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *puVar12 = 0xf;\n      *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n      *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n      *unaff_RBP = puVar12;\n      unaff_RBP = (undefined1 **)(puVar12 + 8);\n      while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }\n    } while( true );" (case "case") (number_literal "0x15") (: ":") (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" (identifier "iVar6") (= "=") (call_expression "FUN_0014ecf5()" (identifier "FUN_0014ecf5") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')) {\n      FUN_001487a2("bad for loop variable");\n    }" (if "if") (parenthesized_expression "(((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0'))" (( "(") (binary_expression "((iVar6 != 3) || (DAT_001c65ac != '\0')) ||\n       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')" (parenthesized_expression "((iVar6 != 3) || (DAT_001c65ac != '\0'))" (( "(") (binary_expression "(iVar6 != 3) || (DAT_001c65ac != '\0')" (parenthesized_expression "(iVar6 != 3)" (( "(") (binary_expression "iVar6 != 3" (identifier "iVar6") (!= "!=") (number_literal "3")) () ")")) (|| "||") (parenthesized_expression "(DAT_001c65ac != '\0')" (( "(") (binary_expression "DAT_001c65ac != '\0'" (identifier "DAT_001c65ac") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')" (( "(") (comma_expression "pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0'" (assignment_expression "pcVar9 = (char *)FUN_0019afcf(DAT_001c6498)" (identifier "pcVar9") (= "=") (cast_expression "(char *)FUN_0019afcf(DAT_001c6498)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0019afcf(DAT_001c6498)" (identifier "FUN_0019afcf") (argument_list "(DAT_001c6498)" (( "(") (identifier "DAT_001c6498") () ")"))))) (, ",") (binary_expression "*pcVar9 != '\0'" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n      FUN_001487a2("bad for loop variable");\n    }" ({ "{") (expression_statement "FUN_001487a2("bad for loop variable");" (call_expression "FUN_001487a2("bad for loop variable")" (identifier "FUN_001487a2") (argument_list "("bad for loop variable")" (( "(") (string_literal ""bad for loop variable"" (" """) (string_content "bad for loop variable") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar9 = (char *)FUN_00149ab3(0x20);" (assignment_expression "pcVar9 = (char *)FUN_00149ab3(0x20)" (identifier "pcVar9") (= "=") (cast_expression "(char *)FUN_00149ab3(0x20)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00149ab3(0x20)" (identifier "FUN_00149ab3") (argument_list "(0x20)" (( "(") (number_literal "0x20") () ")"))))) (; ";")) (expression_statement "*pcVar9 = '\v';" (assignment_expression "*pcVar9 = '\v'" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (= "=") (char_literal "'\v'" (' "'") (escape_sequence "\v") (' "'"))) (; ";")) (expression_statement "*(undefined4 *)(pcVar9 + 4) = uVar1;" (assignment_expression "*(undefined4 *)(pcVar9 + 4) = uVar1" (pointer_expression "*(undefined4 *)(pcVar9 + 4)" (* "*") (cast_expression "(undefined4 *)(pcVar9 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 4)" (( "(") (binary_expression "pcVar9 + 4" (identifier "pcVar9") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "*(byte **)(pcVar9 + 0x18) = DAT_001c6498;" (assignment_expression "*(byte **)(pcVar9 + 0x18) = DAT_001c6498" (pointer_expression "*(byte **)(pcVar9 + 0x18)" (* "*") (cast_expression "(byte **)(pcVar9 + 0x18)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0x18)" (( "(") (binary_expression "pcVar9 + 0x18" (identifier "pcVar9") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "DAT_001c6498")) (; ";")) (expression_statement "DAT_001c65af = 7;" (assignment_expression "DAT_001c65af = 7" (identifier "DAT_001c65af") (= "=") (number_literal "7")) (; ";")) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" (identifier "iVar6") (= "=") (call_expression "FUN_0014ecf5()" (identifier "FUN_0014ecf5") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar6 == 0x18) goto LAB_00150350;" (if "if") (parenthesized_expression "(iVar6 == 0x18)" (( "(") (binary_expression "iVar6 == 0x18" (identifier "iVar6") (== "==") (number_literal "0x18")) () ")")) (goto_statement "goto LAB_00150350;" (goto "goto") (statement_identifier "LAB_00150350") (; ";"))) (expression_statement "puVar12 = (undefined1 *)FUN_00149ab3(0x20);" (assignment_expression "puVar12 = (undefined1 *)FUN_00149ab3(0x20)" (identifier "puVar12") (= "=") (cast_expression "(undefined1 *)FUN_00149ab3(0x20)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00149ab3(0x20)" (identifier "FUN_00149ab3") (argument_list "(0x20)" (( "(") (number_literal "0x20") () ")"))))) (; ";")) (expression_statement "*puVar12 = 0xf;" (assignment_expression "*puVar12 = 0xf" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (= "=") (number_literal "0xf")) (; ";")) (expression_statement "*(undefined **)(puVar12 + 0x10) = &DAT_001bc672;" (assignment_expression "*(undefined **)(puVar12 + 0x10) = &DAT_001bc672" (pointer_expression "*(undefined **)(puVar12 + 0x10)" (* "*") (cast_expression "(undefined **)(puVar12 + 0x10)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x10)" (( "(") (binary_expression "puVar12 + 0x10" (identifier "puVar12") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (pointer_expression "&DAT_001bc672" (& "&") (identifier "DAT_001bc672"))) (; ";")) (expression_statement "*(undefined1 **)(pcVar9 + 8) = puVar12;" (assignment_expression "*(undefined1 **)(pcVar9 + 8) = puVar12" (pointer_expression "*(undefined1 **)(pcVar9 + 8)" (* "*") (cast_expression "(undefined1 **)(pcVar9 + 8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 8)" (( "(") (binary_expression "pcVar9 + 8" (identifier "pcVar9") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "puVar12")) (; ";")) (if_statement "if (DAT_001c65ab != '\x04') {\n      DAT_001c65ad = 1;\n    }" (if "if") (parenthesized_expression "(DAT_001c65ab != '\x04')" (( "(") (binary_expression "DAT_001c65ab != '\x04'" (identifier "DAT_001c65ab") (!= "!=") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) () ")")) (compound_statement "{\n      DAT_001c65ad = 1;\n    }" ({ "{") (expression_statement "DAT_001c65ad = 1;" (assignment_expression "DAT_001c65ad = 1" (identifier "DAT_001c65ad") (= "=") (number_literal "1")) (; ";")) (} "}"))) (labeled_statement "LAB_001502d6:\n    DAT_001c65af = 7;" (statement_identifier "LAB_001502d6") (: ":") (expression_statement "DAT_001c65af = 7;" (assignment_expression "DAT_001c65af = 7" (identifier "DAT_001c65af") (= "=") (number_literal "7")) (; ";"))) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" (identifier "iVar6") (= "=") (call_expression "FUN_0014ecf5()" (identifier "FUN_0014ecf5") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar6 == 0xf) {\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n      iVar6 = 0x10;\n      goto LAB_00150178;\n    }" (if "if") (parenthesized_expression "(iVar6 == 0xf)" (( "(") (binary_expression "iVar6 == 0xf" (identifier "iVar6") (== "==") (number_literal "0xf")) () ")")) (compound_statement "{\n      uVar10 = FUN_0014eeae(0);\n      *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n      iVar6 = 0x10;\n      goto LAB_00150178;\n    }" ({ "{") (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" (identifier "uVar10") (= "=") (call_expression "FUN_0014eeae(0)" (identifier "FUN_0014eeae") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(pcVar9 + 0x10) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar9 + 0x10) = uVar10" (pointer_expression "*(undefined8 *)(pcVar9 + 0x10)" (* "*") (cast_expression "(undefined8 *)(pcVar9 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x10)" (( "(") (binary_expression "pcVar9 + 0x10" (identifier "pcVar9") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "iVar6 = 0x10;" (assignment_expression "iVar6 = 0x10" (identifier "iVar6") (= "=") (number_literal "0x10")) (; ";")) (goto_statement "goto LAB_00150178;" (goto "goto") (statement_identifier "LAB_00150178") (; ";")) (} "}"))) (expression_statement "FUN_0014bd14(0xf);" (call_expression "FUN_0014bd14(0xf)" (identifier "FUN_0014bd14") (argument_list "(0xf)" (( "(") (number_literal "0xf") () ")"))) (; ";")) (do_statement "do {\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *puVar12 = 0xf;\n      *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n      *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n      *unaff_RBP = puVar12;\n      unaff_RBP = (undefined1 **)(puVar12 + 8);\n      while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }\n    } while( true );" (do "do") (compound_statement "{\n      puVar12 = (undefined1 *)FUN_00149ab3(0x20);\n      *puVar12 = 0xf;\n      *(byte **)(puVar12 + 0x10) = DAT_001c6498;\n      *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;\n      *unaff_RBP = puVar12;\n      unaff_RBP = (undefined1 **)(puVar12 + 8);\n      while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }\n    }" ({ "{") (expression_statement "puVar12 = (undefined1 *)FUN_00149ab3(0x20);" (assignment_expression "puVar12 = (undefined1 *)FUN_00149ab3(0x20)" (identifier "puVar12") (= "=") (cast_expression "(undefined1 *)FUN_00149ab3(0x20)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00149ab3(0x20)" (identifier "FUN_00149ab3") (argument_list "(0x20)" (( "(") (number_literal "0x20") () ")"))))) (; ";")) (expression_statement "*puVar12 = 0xf;" (assignment_expression "*puVar12 = 0xf" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (= "=") (number_literal "0xf")) (; ";")) (expression_statement "*(byte **)(puVar12 + 0x10) = DAT_001c6498;" (assignment_expression "*(byte **)(puVar12 + 0x10) = DAT_001c6498" (pointer_expression "*(byte **)(puVar12 + 0x10)" (* "*") (cast_expression "(byte **)(puVar12 + 0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x10)" (( "(") (binary_expression "puVar12 + 0x10" (identifier "puVar12") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "DAT_001c6498")) (; ";")) (expression_statement "*(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;" (assignment_expression "*(undefined8 *)(puVar12 + 0x18) = DAT_001c6490" (pointer_expression "*(undefined8 *)(puVar12 + 0x18)" (* "*") (cast_expression "(undefined8 *)(puVar12 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x18)" (( "(") (binary_expression "puVar12 + 0x18" (identifier "puVar12") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "DAT_001c6490")) (; ";")) (expression_statement "*unaff_RBP = puVar12;" (assignment_expression "*unaff_RBP = puVar12" (pointer_expression "*unaff_RBP" (* "*") (identifier "unaff_RBP")) (= "=") (identifier "puVar12")) (; ";")) (expression_statement "unaff_RBP = (undefined1 **)(puVar12 + 8);" (assignment_expression "unaff_RBP = (undefined1 **)(puVar12 + 8)" (identifier "unaff_RBP") (= "=") (cast_expression "(undefined1 **)(puVar12 + 8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 8)" (( "(") (binary_expression "puVar12 + 8" (identifier "puVar12") (+ "+") (number_literal "8")) () ")")))) (; ";")) (while_statement "while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }" (while "while") (parenthesized_expression "(iVar6 = FUN_0014ecf5(), iVar6 != 3)" (( "(") (comma_expression "iVar6 = FUN_0014ecf5(), iVar6 != 3" (assignment_expression "iVar6 = FUN_0014ecf5()" (identifier "iVar6") (= "=") (call_expression "FUN_0014ecf5()" (identifier "FUN_0014ecf5") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar6 != 3" (identifier "iVar6") (!= "!=") (number_literal "3"))) () ")")) (compound_statement "{\n        *unaff_RBP = (undefined1 *)0x0;\n        *(undefined1 **)(pcVar9 + 8) = local_48;\n        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;\n        FUN_0014bd14(0xffffffff);\nLAB_00150350:\n        unaff_RBP = &local_48;\n      }" ({ "{") (expression_statement "*unaff_RBP = (undefined1 *)0x0;" (assignment_expression "*unaff_RBP = (undefined1 *)0x0" (pointer_expression "*unaff_RBP" (* "*") (identifier "unaff_RBP")) (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined1 **)(pcVar9 + 8) = local_48;" (assignment_expression "*(undefined1 **)(pcVar9 + 8) = local_48" (pointer_expression "*(undefined1 **)(pcVar9 + 8)" (* "*") (cast_expression "(undefined1 **)(pcVar9 + 8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 8)" (( "(") (binary_expression "pcVar9 + 8" (identifier "pcVar9") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "local_48")) (; ";")) (if_statement "if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;" (if "if") (parenthesized_expression "((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04'))" (( "(") (binary_expression "(DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')" (parenthesized_expression "(DAT_001c65ab == '\x01')" (( "(") (binary_expression "DAT_001c65ab == '\x01'" (identifier "DAT_001c65ab") (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(DAT_001c65ab == '\x04')" (( "(") (binary_expression "DAT_001c65ab == '\x04'" (identifier "DAT_001c65ab") (== "==") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_001502d6;" (goto "goto") (statement_identifier "LAB_001502d6") (; ";"))) (expression_statement "FUN_0014bd14(0xffffffff);" (call_expression "FUN_0014bd14(0xffffffff)" (identifier "FUN_0014bd14") (argument_list "(0xffffffff)" (( "(") (number_literal "0xffffffff") () ")"))) (; ";")) (labeled_statement "LAB_00150350:\n        unaff_RBP = &local_48;" (statement_identifier "LAB_00150350") (: ":") (expression_statement "unaff_RBP = &local_48;" (assignment_expression "unaff_RBP = &local_48" (identifier "unaff_RBP") (= "=") (pointer_expression "&local_48" (& "&") (identifier "local_48"))) (; ";"))) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (case_statement "case 0x1a:" (case "case") (number_literal "0x1a") (: ":")) (case_statement "case 0x1b:\n    pcVar9 = (char *)FUN_00149ab3(0x18);\n    *pcVar9 = (DAT_001c65ab != '\x1b') + '\t';\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 8) = uVar10;\n    iVar6 = FUN_0014ecf5();\n    if (iVar6 != 0xf) {\n      FUN_0014bd14(0xf);\n    }\n    uVar10 = FUN_0014eeae(0);\n    *(undefined8 *)(pcVar9 + 0x10) = uVar10;\n    iVar6 = 0x10;\n    goto LAB_00150178;" (case "case") (number_literal "0x1b") (: ":") (expression_statement "pcVar9 = (char *)FUN_00149ab3(0x18);" (assignment_expression "pcVar9 = (char *)FUN_00149ab3(0x18)" (identifier "pcVar9") (= "=") (cast_expression "(char *)FUN_00149ab3(0x18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00149ab3(0x18)" (identifier "FUN_00149ab3") (argument_list "(0x18)" (( "(") (number_literal "0x18") () ")"))))) (; ";")) (expression_statement "*pcVar9 = (DAT_001c65ab != '\x1b') + '\t';" (assignment_expression "*pcVar9 = (DAT_001c65ab != '\x1b') + '\t'" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (= "=") (binary_expression "(DAT_001c65ab != '\x1b') + '\t'" (parenthesized_expression "(DAT_001c65ab != '\x1b')" (( "(") (binary_expression "DAT_001c65ab != '\x1b'" (identifier "DAT_001c65ab") (!= "!=") (char_literal "'\x1b'" (' "'") (escape_sequence "\x1b") (' "'"))) () ")")) (+ "+") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'")))) (; ";")) (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" (identifier "uVar10") (= "=") (call_expression "FUN_0014eeae(0)" (identifier "FUN_0014eeae") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(pcVar9 + 8) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar9 + 8) = uVar10" (pointer_expression "*(undefined8 *)(pcVar9 + 8)" (* "*") (cast_expression "(undefined8 *)(pcVar9 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 8)" (( "(") (binary_expression "pcVar9 + 8" (identifier "pcVar9") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "iVar6 = FUN_0014ecf5();" (assignment_expression "iVar6 = FUN_0014ecf5()" (identifier "iVar6") (= "=") (call_expression "FUN_0014ecf5()" (identifier "FUN_0014ecf5") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar6 != 0xf) {\n      FUN_0014bd14(0xf);\n    }" (if "if") (parenthesized_expression "(iVar6 != 0xf)" (( "(") (binary_expression "iVar6 != 0xf" (identifier "iVar6") (!= "!=") (number_literal "0xf")) () ")")) (compound_statement "{\n      FUN_0014bd14(0xf);\n    }" ({ "{") (expression_statement "FUN_0014bd14(0xf);" (call_expression "FUN_0014bd14(0xf)" (identifier "FUN_0014bd14") (argument_list "(0xf)" (( "(") (number_literal "0xf") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar10 = FUN_0014eeae(0);" (assignment_expression "uVar10 = FUN_0014eeae(0)" (identifier "uVar10") (= "=") (call_expression "FUN_0014eeae(0)" (identifier "FUN_0014eeae") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(pcVar9 + 0x10) = uVar10;" (assignment_expression "*(undefined8 *)(pcVar9 + 0x10) = uVar10" (pointer_expression "*(undefined8 *)(pcVar9 + 0x10)" (* "*") (cast_expression "(undefined8 *)(pcVar9 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x10)" (( "(") (binary_expression "pcVar9 + 0x10" (identifier "pcVar9") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "iVar6 = 0x10;" (assignment_expression "iVar6 = 0x10" (identifier "iVar6") (= "=") (number_literal "0x10")) (; ";")) (goto_statement "goto LAB_00150178;" (goto "goto") (statement_identifier "LAB_00150178") (; ";"))) (case_statement "case 0x1c:\n    pcVar9 = (char *)FUN_0014eeae(0);\n    iVar6 = 0x1d;\n    goto LAB_00150178;" (case "case") (number_literal "0x1c") (: ":") (expression_statement "pcVar9 = (char *)FUN_0014eeae(0);" (assignment_expression "pcVar9 = (char *)FUN_0014eeae(0)" (identifier "pcVar9") (= "=") (cast_expression "(char *)FUN_0014eeae(0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0014eeae(0)" (identifier "FUN_0014eeae") (argument_list "(0)" (( "(") (number_literal "0") () ")"))))) (; ";")) (expression_statement "iVar6 = 0x1d;" (assignment_expression "iVar6 = 0x1d" (identifier "iVar6") (= "=") (number_literal "0x1d")) (; ";")) (goto_statement "goto LAB_00150178;" (goto "goto") (statement_identifier "LAB_00150178") (; ";"))) (} "}"))) (labeled_statement "LAB_0015082d:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (statement_identifier "LAB_0015082d") (: ":") (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (if "if") (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (!= "!=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" ({ "{") (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return pcVar9;" (return "return") (identifier "pcVar9") (; ";")) (} "}")))

/* WARNING: Unknown calling convention */

type_1 * function_1(void)

{
  bool bVar1;
  bool bVar2;
  bool bVar3;
  int var_14;
  int var_19;
  type_2 var_4;
  int var_27;
  type_1 *pnVar8;
  char *var_12;
  type_1 *pnVar10;
  type_1 *pnVar11;
  char *var_13;
  type_3 *var_29;
  long var_7;
  type_1 **ppnVar15;
  char **ppcVar16;
  type_4 *var_8;
  type_4 *var_9;
  type_1 **var_24;
  type_1 **ppnVar20;
  long var_1;
  type_5 uVar21;
  bool var_10;
  type_5 uVar23;
  bool bVar24;
  type_4 bVar25;
  type_1 *var_20;
  type_1 *var_23;
  type_1 *var_25;
  type_1 *var_26;
  long var_21;
  
  bVar25 = 0;
  var_21 = *(long *)(var_1 + 0x28);
  var_20 = (type_1 *)0x0;
  var_27 = g_parsefile->linno;
  var_14 = var_2();
  switch(var_14) {
  default:
                    /* WARNING: Subroutine does not return */
    var_3(-1);
  case 2:
  case 3:
  case 0x16:
    tokpushback = '\x01';
    var_23 = (type_1 *)0x0;
    var_25 = (type_1 *)0x0;
    var_26 = (type_1 *)0x0;
    var_27 = g_parsefile->linno;
    bVar3 = false;
    bVar1 = false;
    bVar2 = true;
    ppnVar20 = &var_26;
    ppnVar15 = &var_25;
    var_24 = &var_23;
    pnVar10 = (type_1 *)0x0;
LAB_001505a5:
    while (checkkwd = bVar2, var_4 = var_2(), pnVar11 = redirnode, var_4 < 0x17) {
      uVar21 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[var_4];
      uVar23 = (&switchD_001505ce::switchdataD_001afc54)[var_4] == 0xffe503ac;
      switch(var_4) {
      default:
        goto switchD_001505ce_caseD_0;
      case 2:
        *ppnVar20 = redirnode;
        ppnVar20 = &(redirnode->ncmd).assign;
        var_5();
        pnVar10 = pnVar11;
        break;
      case 6:
      case 7:
        if (!bVar1) goto LAB_00150605;
        uVar21 = var_4 < 6;
        uVar23 = var_4 == 6;
        wordtext = "-a";
        if (!(bool)uVar23) {
          wordtext = "-o";
        }
      case 3:
        pnVar10 = (type_1 *)var_6(0x20);
        pnVar10->type = '\x0f';
        var_12 = wordtext;
        (pnVar10->narg).text = wordtext;
        var_7 = 3;
        var_8 = &DAT_001bc467;
        var_9 = (type_4 *)var_12;
        do {
          if (var_7 == 0) break;
          var_7 = var_7 + -1;
          uVar21 = *var_8 < *var_9;
          uVar23 = *var_8 == *var_9;
          var_8 = var_8 + (type_6)bVar25 * -2 + 1;
          var_9 = var_9 + (type_6)bVar25 * -2 + 1;
        } while ((bool)uVar23);
        var_10 = false;
        bVar24 = (!(bool)uVar21 && !(bool)uVar23) == (bool)uVar21;
        if (bVar24) {
          bVar1 = true;
        }
        else {
          var_7 = 3;
          var_8 = (type_4 *)0x1bf6dc;
          var_9 = (type_4 *)var_12;
          do {
            if (var_7 == 0) break;
            var_7 = var_7 + -1;
            var_10 = *var_8 < *var_9;
            bVar24 = *var_8 == *var_9;
            var_8 = var_8 + (type_6)bVar25 * -2 + 1;
            var_9 = var_9 + (type_6)bVar25 * -2 + 1;
          } while (bVar24);
          if ((!var_10 && !bVar24) == var_10) {
            bVar1 = false;
          }
        }
        (pnVar10->narg).backquote = backquotelist;
        if (((bVar2) && (var_13 = var_11(var_12), var_12 != var_13)) && (*var_13 == '=')) {
          *ppnVar15 = pnVar10;
          ppnVar15 = &(pnVar10->ncmd).assign;
        }
        else {
          *var_24 = pnVar10;
          var_24 = &(pnVar10->ncmd).assign;
          bVar2 = false;
        }
        if (bVar3) {
          checkkwd = '\x06';
          var_14 = var_2();
          tokpushback = '\x01';
          if (0x19 < var_14 - 3U) goto switchD_00150729_caseD_4;
          var_10 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[var_14 - 3U];
          bVar24 = (&switchD_00150729::switchdataD_001afcb0)[var_14 - 3U] == 0xffe50350;
          switch(var_14) {
          case 3:
            var_7 = 3;
            var_8 = &DAT_001bc467;
            var_9 = (type_4 *)wordtext;
            goto code_r0x00150758;
          default:
            goto switchD_00150729_caseD_4;
          case 9:
            bVar3 = false;
            break;
          case 0xe:
          case 0x15:
          case 0x17:
          case 0x1a:
          case 0x1b:
          case 0x1c:
            goto switchD_001505ce_caseD_9;
          }
        }
        break;
      case 9:
        goto switchD_001505ce_caseD_9;
      case 0x16:
        goto switchD_001505ce_caseD_16;
      }
    }
    goto switchD_001505ce_caseD_0;
  case 9:
    pnVar11 = (type_1 *)var_6(0x18);
    pnVar11->type = '\x04';
    (pnVar11->ncmd).linno = var_27;
    pnVar8 = var_15(0);
    (pnVar11->ncmd).assign = pnVar8;
    var_14 = 10;
    break;
  case 0xe:
    pnVar11 = (type_1 *)var_6(0x18);
    pnVar11->type = '\f';
    (pnVar11->ncmd).linno = var_27;
    var_14 = var_2();
    if (var_14 != 3) {
                    /* WARNING: Subroutine does not return */
      var_3(3);
    }
    var_12 = (char *)var_6(0x20);
    (pnVar11->ndefun).text = var_12;
    *var_12 = '\x0f';
    *(char **)(var_12 + 0x10) = wordtext;
    *(type_7 **)(var_12 + 0x18) = backquotelist;
    checkkwd = '\a';
    var_14 = var_2();
    if (var_14 != 0x18) {
                    /* WARNING: Subroutine does not return */
      var_3(0x18);
    }
    ppcVar16 = &(pnVar11->narg).text;
    while( true ) {
      checkkwd = '\x06';
      var_14 = var_2();
      if (var_14 == 0x13) break;
      if (var_16 == '\t') {
        var_2();
      }
      var_12 = (char *)var_6(0x20);
      *ppcVar16 = var_12;
      *var_12 = '\r';
      ppnVar15 = (type_1 **)(var_12 + 0x10);
      while( true ) {
        pnVar8 = (type_1 *)var_6(0x20);
        *ppnVar15 = pnVar8;
        pnVar8->type = '\x0f';
        (pnVar8->narg).text = wordtext;
        (pnVar8->narg).backquote = backquotelist;
        var_26 = pnVar8;
        var_14 = var_2();
        if (var_14 != 8) break;
        ppnVar15 = &(pnVar8->ncmd).assign;
        var_2();
      }
      if (var_16 != '\n') {
                    /* WARNING: Subroutine does not return */
        var_3(10);
      }
      pnVar8 = var_15(2);
      *(type_1 **)(var_12 + 0x18) = pnVar8;
      ppcVar16 = (char **)(var_12 + 8);
      checkkwd = '\x06';
      var_14 = var_2();
      if (var_14 == 0x13) break;
      if (var_14 != 0xb) {
                    /* WARNING: Subroutine does not return */
        var_3(0xb);
      }
    }
    *ppcVar16 = (char *)0x0;
    goto LAB_001504ae;
  case 0x15:
    var_14 = var_2();
    if (((var_14 != 3) || (var_17 != '\0')) || (var_12 = var_11(wordtext), *var_12 != '\0')) {
                    /* WARNING: Subroutine does not return */
      var_18("bad for loop variable");
    }
    pnVar11 = (type_1 *)var_6(0x20);
    pnVar11->type = '\v';
    (pnVar11->ncmd).linno = var_27;
    (pnVar11->nfor).var = wordtext;
    checkkwd = '\a';
    var_14 = var_2();
    if (var_14 == 0x18) {
      ppnVar15 = &var_26;
      while (var_14 = var_2(), var_14 == 3) {
        pnVar8 = (type_1 *)var_6(0x20);
        pnVar8->type = '\x0f';
        (pnVar8->narg).text = wordtext;
        (pnVar8->narg).backquote = backquotelist;
        *ppnVar15 = pnVar8;
        ppnVar15 = &(pnVar8->ncmd).assign;
      }
      *ppnVar15 = (type_1 *)0x0;
      (pnVar11->ncmd).assign = var_26;
      if ((var_16 != '\x01') && (var_16 != '\x04')) {
                    /* WARNING: Subroutine does not return */
        var_3(-1);
      }
    }
    else {
      var_12 = (char *)var_6(0x20);
      *var_12 = '\x0f';
      *(char **)(var_12 + 0x10) = dolatstr;
      (pnVar11->ndefun).text = var_12;
      if (var_16 != '\x04') {
        tokpushback = '\x01';
      }
    }
    checkkwd = '\a';
    var_14 = var_2();
    if (var_14 != 0xf) {
                    /* WARNING: Subroutine does not return */
      var_3(0xf);
    }
    pnVar8 = var_15(0);
    (pnVar11->ncmd).var_23 = pnVar8;
    var_14 = 0x10;
    break;
  case 0x17:
    pnVar11 = (type_1 *)var_6(0x20);
    pnVar11->type = '\b';
    pnVar8 = var_15(0);
    (pnVar11->ncmd).assign = pnVar8;
    var_14 = var_2();
    if (var_14 != 0x19) {
                    /* WARNING: Subroutine does not return */
      var_3(0x19);
    }
    pnVar8 = var_15(0);
    (pnVar11->ncmd).var_23 = pnVar8;
    pnVar8 = pnVar11;
    while (var_14 = var_2(), var_14 == 0x11) {
      pnVar10 = (type_1 *)var_6(0x20);
      (pnVar8->narg).backquote = (type_7 *)pnVar10;
      pnVar10->type = '\b';
      pnVar8 = var_15(0);
      (pnVar10->ncmd).assign = pnVar8;
      var_14 = var_2();
      if (var_14 != 0x19) {
                    /* WARNING: Subroutine does not return */
        var_3(0x19);
      }
      pnVar8 = var_15(0);
      (pnVar10->ncmd).var_23 = pnVar8;
      pnVar8 = pnVar10;
    }
    if (var_16 == '\x12') {
      pnVar10 = var_15(0);
      (pnVar8->ncmd).redirect = pnVar10;
      var_14 = 0x14;
    }
    else {
      (pnVar8->ncmd).redirect = (type_1 *)0x0;
      tokpushback = '\x01';
      var_14 = 0x14;
    }
    break;
  case 0x1a:
  case 0x1b:
    pnVar11 = (type_1 *)var_6(0x18);
    pnVar11->type = (var_16 != '\x1b') + '\t';
    pnVar8 = var_15(0);
    (pnVar11->ncmd).assign = pnVar8;
    var_14 = var_2();
    if (var_14 != 0xf) {
                    /* WARNING: Subroutine does not return */
      var_3(0xf);
    }
    pnVar8 = var_15(0);
    (pnVar11->ncmd).var_23 = pnVar8;
    var_14 = 0x10;
    break;
  case 0x1c:
    pnVar11 = var_15(0);
    var_14 = 0x1d;
  }
  var_19 = var_2();
  if (var_19 != var_14) {
                    /* WARNING: Subroutine does not return */
    var_3(var_14);
  }
LAB_001504ae:
  checkkwd = '\x03';
  ppnVar15 = &var_20;
  while (var_14 = var_2(), var_14 == 2) {
    *ppnVar15 = redirnode;
    ppnVar15 = &(redirnode->ncmd).assign;
    var_5();
  }
  tokpushback = '\x01';
  *ppnVar15 = (type_1 *)0x0;
  pnVar8 = var_20;
  pnVar10 = pnVar11;
  if (var_20 != (type_1 *)0x0) {
    if (pnVar11->type != '\x04') {
      pnVar10 = (type_1 *)var_6(0x18);
      pnVar10->type = '\x02';
      (pnVar10->ncmd).linno = var_27;
      (pnVar10->ncmd).assign = pnVar11;
    }
    (pnVar10->ncmd).var_23 = pnVar8;
  }
LAB_0015082d:
  if (var_21 != *(long *)(var_1 + 0x28)) {
                    /* WARNING: Subroutine does not return */
    var_22();
  }
  return pnVar10;
switchD_001505ce_caseD_16:
  var_14 = var_2();
  tokpushback = '\x01';
  if (var_14 != 3) {
                    /* WARNING: Subroutine does not return */
    var_3(3);
  }
  bVar3 = true;
  goto LAB_001505a5;
  while( true ) {
    var_7 = var_7 + -1;
    var_10 = *var_8 < *var_9;
    bVar24 = *var_8 == *var_9;
    var_8 = var_8 + (type_6)bVar25 * -2 + 1;
    var_9 = var_9 + (type_6)bVar25 * -2 + 1;
    if (!bVar24) break;
code_r0x00150758:
    if (var_7 == 0) break;
  }
  if ((!var_10 && !bVar24) != var_10) {
switchD_00150729_caseD_4:
                    /* WARNING: Subroutine does not return */
    var_3(-1);
  }
switchD_001505ce_caseD_9:
  if ((((var_23 == (type_1 *)0x0) || (var_24 != &(var_23->ncmd).assign)) || (var_25 != (type_1 *)0x0)) ||
     (var_26 != (type_1 *)0x0)) {
switchD_001505ce_caseD_0:
LAB_00150605:
    tokpushback = '\x01';
    *var_24 = (type_1 *)0x0;
    *ppnVar15 = (type_1 *)0x0;
    *ppnVar20 = (type_1 *)0x0;
    pnVar10 = (type_1 *)var_6(0x20);
    (pnVar10->ncmd).linno = var_27;
    (pnVar10->ncmd).var_23 = var_23;
    (pnVar10->ncmd).assign = var_25;
    (pnVar10->ncmd).redirect = var_26;
  }
  else {
    if ((!bVar3) && (var_27 = var_2(), var_27 != 10)) {
                    /* WARNING: Subroutine does not return */
      var_3(10);
    }
    var_12 = (pnVar10->narg).text;
    var_13 = var_11(var_12);
    if ((*var_13 != '\0') ||
       ((var_29 = var_28(var_12), var_29 != (type_3 *)0x0 &&
        ((*var_29->name & 1U) != 0)))) {
                    /* WARNING: Subroutine does not return */
      var_18("bad function name");
    }
    pnVar10->type = '\x0e';
    checkkwd = '\a';
    (pnVar10->ncmd).assign = (pnVar10->ncmd).var_23;
    (pnVar10->ncmd).linno = g_parsefile->linno;
    pnVar11 = function_1();
    (pnVar10->ncmd).var_23 = pnVar11;
  }
  goto LAB_0015082d;
}


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

char * MASKED(void)

{
  undefined4 uVar1;
  bool bVar2;
  bool bVar3;
  bool bVar4;
  undefined4 uVar5;
  int iVar6;
  int iVar7;
  uint uVar8;
  char *pcVar9;
  undefined8 uVar10;
  char *pcVar11;
  undefined1 *puVar12;
  undefined1 *puVar13;
  byte *pbVar14;
  undefined8 *puVar15;
  long lVar16;
  undefined1 **unaff_RBP;
  long *plVar17;
  byte *pbVar18;
  byte *pbVar19;
  char *unaff_R12;
  long *plVar20;
  undefined1 **ppuVar21;
  long in_FS_OFFSET;
  undefined1 uVar22;
  bool bVar23;
  undefined1 uVar24;
  bool bVar25;
  byte bVar26;
  long local_60;
  long local_58;
  long local_50;
  undefined1 *local_48;
  long local_40;
  
  bVar26 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  local_60 = 0;
  uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);
  uVar5 = FUN_0014ecf5();
  switch(uVar5) {
  default:
    FUN_0014bd14(0xffffffff);
  case 0x17:
    pcVar9 = (char *)FUN_00149ab3(0x20);
    *pcVar9 = '\b';
    uVar10 = FUN_0014eeae(0);
    *(undefined8 *)(pcVar9 + 8) = uVar10;
    iVar6 = FUN_0014ecf5();
    if (iVar6 != 0x19) {
      FUN_0014bd14(0x19);
    }
    uVar10 = FUN_0014eeae(0);
    *(undefined8 *)(pcVar9 + 0x10) = uVar10;
    pcVar11 = pcVar9;
    do {
      iVar6 = FUN_0014ecf5();
      unaff_R12 = pcVar11;
      if (iVar6 != 0x11) {
        if (DAT_001c65ab == '\x12') {
          uVar10 = FUN_0014eeae(0);
          *(undefined8 *)(pcVar11 + 0x18) = uVar10;
          iVar6 = 0x14;
        }
        else {
          pcVar11[0x18] = '\0';
          pcVar11[0x19] = '\0';
          pcVar11[0x1a] = '\0';
          pcVar11[0x1b] = '\0';
          pcVar11[0x1c] = '\0';
          pcVar11[0x1d] = '\0';
          pcVar11[0x1e] = '\0';
          pcVar11[0x1f] = '\0';
          DAT_001c65ad = 1;
          iVar6 = 0x14;
        }
LAB_00150178:
        iVar7 = FUN_0014ecf5();
        if (iVar7 == iVar6) goto LAB_001504ae;
        FUN_0014bd14(iVar6);
      }
      pcVar11 = (char *)FUN_00149ab3(0x20);
      *(char **)(unaff_R12 + 0x18) = pcVar11;
      *pcVar11 = '\b';
      uVar10 = FUN_0014eeae(0);
      *(undefined8 *)(pcVar11 + 8) = uVar10;
      iVar6 = FUN_0014ecf5();
      if (iVar6 != 0x19) {
        FUN_0014bd14(0x19);
      }
      uVar10 = FUN_0014eeae(0);
      *(undefined8 *)(pcVar11 + 0x10) = uVar10;
    } while( true );
  case 2:
  case 3:
  case 0x16:
    DAT_001c65ad = 1;
    local_58 = 0;
    local_50 = 0;
    local_48 = (undefined1 *)0x0;
    uVar1 = *(undefined4 *)(PTR_DAT_001c6260 + 8);
    bVar4 = false;
    bVar2 = false;
    bVar3 = true;
    ppuVar21 = &local_48;
    plVar17 = &local_50;
    pcVar9 = (char *)0x0;
    plVar20 = &local_58;
LAB_001505a5:
    DAT_001c65af = bVar3;
    uVar8 = FUN_0014ecf5();
    if (uVar8 < 0x17) {
      uVar22 = 0xffe503ab < (&switchD_001505ce::switchdataD_001afc54)[uVar8];
      uVar24 = (&switchD_001505ce::switchdataD_001afc54)[uVar8] == 0xffe503ac;
      switch((ulong)uVar8) {
      default:
        goto switchD_001505ce_caseD_0;
      case 2:
        goto switchD_001505ce_caseD_2;
      case 6:
      case 7:
switchD_001505ce_caseD_6:
        if (!bVar2) goto LAB_00150605;
        uVar22 = uVar8 < 6;
        uVar24 = uVar8 == 6;
        DAT_001c6498 = (byte *)0x1c08af;
        if (!(bool)uVar24) {
          DAT_001c6498 = &DAT_001bc1a5;
        }
      case 3:
        pcVar9 = (char *)FUN_00149ab3(0x20);
        *pcVar9 = '\x0f';
        pbVar18 = DAT_001c6498;
        *(byte **)(pcVar9 + 0x10) = DAT_001c6498;
        lVar16 = 3;
        pbVar14 = &DAT_001bc467;
        pbVar19 = pbVar18;
        do {
          if (lVar16 == 0) break;
          lVar16 = lVar16 + -1;
          uVar22 = *pbVar14 < *pbVar19;
          uVar24 = *pbVar14 == *pbVar19;
          pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;
          pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;
        } while ((bool)uVar24);
        bVar23 = false;
        bVar25 = (!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22;
        if (bVar25) {
          bVar2 = true;
        }
        else {
          lVar16 = 3;
          pbVar14 = (byte *)0x1bf6dc;
          pbVar19 = pbVar18;
          do {
            if (lVar16 == 0) break;
            lVar16 = lVar16 + -1;
            bVar23 = *pbVar14 < *pbVar19;
            bVar25 = *pbVar14 == *pbVar19;
            pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;
            pbVar19 = pbVar19 + (ulong)bVar26 * -2 + 1;
          } while (bVar25);
          if ((!bVar23 && !bVar25) == bVar23) {
            bVar2 = false;
          }
        }
        *(undefined8 *)(pcVar9 + 0x18) = DAT_001c6490;
        if (((bVar3) && (pbVar14 = (byte *)FUN_0019afcf(pbVar18), pbVar18 != pbVar14)) &&
           (*pbVar14 == 0x3d)) {
          *plVar17 = (long)pcVar9;
          plVar17 = (long *)(pcVar9 + 8);
        }
        else {
          *plVar20 = (long)pcVar9;
          plVar20 = (long *)(pcVar9 + 8);
          bVar3 = false;
        }
        if (bVar4) {
          DAT_001c65af = 6;
          iVar6 = FUN_0014ecf5();
          DAT_001c65ad = 1;
          if (iVar6 - 3U < 0x1a) {
            bVar23 = 0xffe5034f < (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U];
            bVar25 = (&switchD_00150729::switchdataD_001afcb0)[iVar6 - 3U] == 0xffe50350;
            switch(iVar6) {
            case 3:
              lVar16 = 3;
              pbVar18 = &DAT_001bc467;
              pbVar14 = DAT_001c6498;
              do {
                if (lVar16 == 0) break;
                lVar16 = lVar16 + -1;
                bVar23 = *pbVar18 < *pbVar14;
                bVar25 = *pbVar18 == *pbVar14;
                pbVar18 = pbVar18 + (ulong)bVar26 * -2 + 1;
                pbVar14 = pbVar14 + (ulong)bVar26 * -2 + 1;
              } while (bVar25);
              if ((!bVar23 && !bVar25) == bVar23) goto switchD_001505ce_caseD_9;
              break;
            case 9:
              bVar4 = false;
              goto LAB_001505a5;
            case 0xe:
            case 0x15:
            case 0x17:
            case 0x1a:
            case 0x1b:
            case 0x1c:
switchD_001505ce_caseD_9:
              if ((((local_58 != 0) && (plVar20 == (long *)(local_58 + 8))) && (local_50 == 0)) &&
                 (local_48 == (undefined1 *)0x0)) {
                if ((!bVar4) && (iVar6 = FUN_0014ecf5(), iVar6 != 10)) {
                  FUN_0014bd14(10);
                }
                uVar10 = *(undefined8 *)(pcVar9 + 0x10);
                pcVar11 = (char *)FUN_0019afcf(uVar10);
                if ((*pcVar11 != '\0') ||
                   ((puVar15 = (undefined8 *)FUN_001472bc(uVar10), puVar15 != (undefined8 *)0x0 &&
                    ((*(byte *)*puVar15 & 1) != 0)))) {
                  FUN_001487a2("bad function name");
                }
                *pcVar9 = '\x0e';
                DAT_001c65af = 7;
                *(undefined8 *)(pcVar9 + 8) = *(undefined8 *)(pcVar9 + 0x10);
                *(undefined4 *)(pcVar9 + 4) = *(undefined4 *)(PTR_DAT_001c6260 + 8);
                uVar10 = MASKED();
                *(undefined8 *)(pcVar9 + 0x10) = uVar10;
                goto LAB_0015082d;
              }
              goto switchD_001505ce_caseD_0;
            }
          }
          FUN_0014bd14(0xffffffff);
switchD_001505ce_caseD_2:
          pcVar9 = DAT_001c6488;
          *ppuVar21 = DAT_001c6488;
          ppuVar21 = (undefined1 **)(DAT_001c6488 + 8);
          FUN_0014edac();
          break;
        }
        break;
      case 9:
        goto switchD_001505ce_caseD_9;
      case 0x16:
        iVar6 = FUN_0014ecf5();
        DAT_001c65ad = 1;
        if (iVar6 != 3) {
          uVar8 = FUN_0014bd14(3);
          goto switchD_001505ce_caseD_6;
        }
        bVar4 = true;
      }
      goto LAB_001505a5;
    }
switchD_001505ce_caseD_0:
LAB_00150605:
    DAT_001c65ad = 1;
    *plVar20 = 0;
    *plVar17 = 0;
    *ppuVar21 = (undefined1 *)0x0;
    pcVar9 = (char *)FUN_00149ab3(0x20);
    *(undefined4 *)(pcVar9 + 4) = uVar1;
    *(long *)(pcVar9 + 0x10) = local_58;
    *(long *)(pcVar9 + 8) = local_50;
    *(undefined1 **)(pcVar9 + 0x18) = local_48;
    break;
  case 9:
    pcVar9 = (char *)FUN_00149ab3(0x18);
    *pcVar9 = '\x04';
    *(undefined4 *)(pcVar9 + 4) = uVar1;
    uVar10 = FUN_0014eeae(0);
    *(undefined8 *)(pcVar9 + 8) = uVar10;
    iVar6 = 10;
    goto LAB_00150178;
  case 0xe:
    pcVar9 = (char *)FUN_00149ab3(0x18);
    *pcVar9 = '\f';
    *(undefined4 *)(pcVar9 + 4) = uVar1;
    iVar6 = FUN_0014ecf5();
    if (iVar6 != 3) {
      FUN_0014bd14(3);
    }
    puVar12 = (undefined1 *)FUN_00149ab3(0x20);
    *(undefined1 **)(pcVar9 + 8) = puVar12;
    *puVar12 = 0xf;
    *(byte **)(puVar12 + 0x10) = DAT_001c6498;
    *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;
    DAT_001c65af = 7;
    iVar6 = FUN_0014ecf5();
    if (iVar6 != 0x18) {
      FUN_0014bd14(0x18);
    }
    pcVar11 = pcVar9 + 0x10;
    do {
      DAT_001c65af = 6;
      iVar6 = FUN_0014ecf5();
      if (iVar6 == 0x13) goto LAB_001504a6;
      if (DAT_001c65ab == '\t') {
        FUN_0014ecf5();
      }
      puVar12 = (undefined1 *)FUN_00149ab3(0x20);
      *(undefined1 **)pcVar11 = puVar12;
      *puVar12 = 0xd;
      puVar15 = (undefined8 *)(puVar12 + 0x10);
      while( true ) {
        puVar13 = (undefined1 *)FUN_00149ab3(0x20);
        *puVar15 = puVar13;
        *puVar13 = 0xf;
        *(byte **)(puVar13 + 0x10) = DAT_001c6498;
        *(undefined8 *)(puVar13 + 0x18) = DAT_001c6490;
        local_48 = puVar13;
        iVar6 = FUN_0014ecf5();
        if (iVar6 != 8) break;
        puVar15 = (undefined8 *)(puVar13 + 8);
        FUN_0014ecf5();
      }
      if (DAT_001c65ab != '\n') {
        FUN_0014bd14(10);
      }
      uVar10 = FUN_0014eeae(2);
      *(undefined8 *)(puVar12 + 0x18) = uVar10;
      pcVar11 = puVar12 + 8;
      DAT_001c65af = 6;
      iVar6 = FUN_0014ecf5();
      if (iVar6 == 0x13) goto LAB_001504a6;
    } while (iVar6 == 0xb);
    FUN_0014bd14(0xb);
LAB_001504a6:
    pcVar11[0] = '\0';
    pcVar11[1] = '\0';
    pcVar11[2] = '\0';
    pcVar11[3] = '\0';
    pcVar11[4] = '\0';
    pcVar11[5] = '\0';
    pcVar11[6] = '\0';
    pcVar11[7] = '\0';
LAB_001504ae:
    DAT_001c65af = 3;
    plVar17 = &local_60;
    while (iVar6 = FUN_0014ecf5(), iVar6 == 2) {
      *plVar17 = (long)DAT_001c6488;
      plVar17 = (long *)(DAT_001c6488 + 8);
      FUN_0014edac();
    }
    DAT_001c65ad = 1;
    *plVar17 = 0;
    lVar16 = local_60;
    if (local_60 != 0) {
      if (*pcVar9 != '\x04') {
        pcVar11 = (char *)FUN_00149ab3(0x18);
        *pcVar11 = '\x02';
        *(undefined4 *)(pcVar11 + 4) = uVar1;
        *(char **)(pcVar11 + 8) = pcVar9;
        pcVar9 = pcVar11;
      }
      *(long *)(pcVar9 + 0x10) = lVar16;
    }
    break;
  case 0x15:
    iVar6 = FUN_0014ecf5();
    if (((iVar6 != 3) || (DAT_001c65ac != '\0')) ||
       (pcVar9 = (char *)FUN_0019afcf(DAT_001c6498), *pcVar9 != '\0')) {
      FUN_001487a2("bad for loop variable");
    }
    pcVar9 = (char *)FUN_00149ab3(0x20);
    *pcVar9 = '\v';
    *(undefined4 *)(pcVar9 + 4) = uVar1;
    *(byte **)(pcVar9 + 0x18) = DAT_001c6498;
    DAT_001c65af = 7;
    iVar6 = FUN_0014ecf5();
    if (iVar6 == 0x18) goto LAB_00150350;
    puVar12 = (undefined1 *)FUN_00149ab3(0x20);
    *puVar12 = 0xf;
    *(undefined **)(puVar12 + 0x10) = &DAT_001bc672;
    *(undefined1 **)(pcVar9 + 8) = puVar12;
    if (DAT_001c65ab != '\x04') {
      DAT_001c65ad = 1;
    }
LAB_001502d6:
    DAT_001c65af = 7;
    iVar6 = FUN_0014ecf5();
    if (iVar6 == 0xf) {
      uVar10 = FUN_0014eeae(0);
      *(undefined8 *)(pcVar9 + 0x10) = uVar10;
      iVar6 = 0x10;
      goto LAB_00150178;
    }
    FUN_0014bd14(0xf);
    do {
      puVar12 = (undefined1 *)FUN_00149ab3(0x20);
      *puVar12 = 0xf;
      *(byte **)(puVar12 + 0x10) = DAT_001c6498;
      *(undefined8 *)(puVar12 + 0x18) = DAT_001c6490;
      *unaff_RBP = puVar12;
      unaff_RBP = (undefined1 **)(puVar12 + 8);
      while (iVar6 = FUN_0014ecf5(), iVar6 != 3) {
        *unaff_RBP = (undefined1 *)0x0;
        *(undefined1 **)(pcVar9 + 8) = local_48;
        if ((DAT_001c65ab == '\x01') || (DAT_001c65ab == '\x04')) goto LAB_001502d6;
        FUN_0014bd14(0xffffffff);
LAB_00150350:
        unaff_RBP = &local_48;
      }
    } while( true );
  case 0x1a:
  case 0x1b:
    pcVar9 = (char *)FUN_00149ab3(0x18);
    *pcVar9 = (DAT_001c65ab != '\x1b') + '\t';
    uVar10 = FUN_0014eeae(0);
    *(undefined8 *)(pcVar9 + 8) = uVar10;
    iVar6 = FUN_0014ecf5();
    if (iVar6 != 0xf) {
      FUN_0014bd14(0xf);
    }
    uVar10 = FUN_0014eeae(0);
    *(undefined8 *)(pcVar9 + 0x10) = uVar10;
    iVar6 = 0x10;
    goto LAB_00150178;
  case 0x1c:
    pcVar9 = (char *)FUN_0014eeae(0);
    iVar6 = 0x1d;
    goto LAB_00150178;
  }
LAB_0015082d:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return pcVar9;
}

